aws-cdk-lib 2.200.2__py3-none-any.whl → 2.224.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

Files changed (569) hide show
  1. aws_cdk/__init__.py +1349 -373
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.200.2.jsii.tgz → aws-cdk-lib@2.224.0.jsii.tgz} +0 -0
  4. aws_cdk/alexa_ask/__init__.py +12 -2
  5. aws_cdk/aws_accessanalyzer/__init__.py +323 -6
  6. aws_cdk/aws_acmpca/__init__.py +53 -10
  7. aws_cdk/aws_aiops/__init__.py +1019 -0
  8. aws_cdk/aws_amazonmq/__init__.py +357 -313
  9. aws_cdk/aws_amplify/__init__.py +173 -17
  10. aws_cdk/aws_amplifyuibuilder/__init__.py +35 -6
  11. aws_cdk/aws_apigateway/__init__.py +1017 -155
  12. aws_cdk/aws_apigatewayv2/__init__.py +2796 -379
  13. aws_cdk/aws_apigatewayv2_integrations/__init__.py +94 -16
  14. aws_cdk/aws_appconfig/__init__.py +298 -43
  15. aws_cdk/aws_appflow/__init__.py +151 -6
  16. aws_cdk/aws_appintegrations/__init__.py +546 -6
  17. aws_cdk/aws_applicationautoscaling/__init__.py +29 -6
  18. aws_cdk/aws_applicationinsights/__init__.py +13 -2
  19. aws_cdk/aws_applicationsignals/__init__.py +374 -6
  20. aws_cdk/aws_appmesh/__init__.py +94 -26
  21. aws_cdk/aws_apprunner/__init__.py +66 -18
  22. aws_cdk/aws_appstream/__init__.py +309 -55
  23. aws_cdk/aws_appsync/__init__.py +227 -53
  24. aws_cdk/aws_apptest/__init__.py +71 -2
  25. aws_cdk/aws_aps/__init__.py +1875 -132
  26. aws_cdk/aws_arcregionswitch/__init__.py +5095 -0
  27. aws_cdk/aws_arczonalshift/__init__.py +39 -12
  28. aws_cdk/aws_athena/__init__.py +365 -29
  29. aws_cdk/aws_auditmanager/__init__.py +71 -2
  30. aws_cdk/aws_autoscaling/__init__.py +135 -55
  31. aws_cdk/aws_autoscaling_common/__init__.py +3 -0
  32. aws_cdk/aws_autoscalingplans/__init__.py +13 -2
  33. aws_cdk/aws_b2bi/__init__.py +1819 -99
  34. aws_cdk/aws_backup/__init__.py +317 -28
  35. aws_cdk/aws_backupgateway/__init__.py +13 -2
  36. aws_cdk/aws_batch/__init__.py +1405 -178
  37. aws_cdk/aws_bcmdataexports/__init__.py +21 -2
  38. aws_cdk/aws_bedrock/__init__.py +6747 -627
  39. aws_cdk/aws_bedrockagentcore/__init__.py +10425 -0
  40. aws_cdk/aws_billingconductor/__init__.py +197 -11
  41. aws_cdk/aws_budgets/__init__.py +42 -4
  42. aws_cdk/aws_cassandra/__init__.py +247 -6
  43. aws_cdk/aws_ce/__init__.py +35 -6
  44. aws_cdk/aws_certificatemanager/__init__.py +237 -32
  45. aws_cdk/aws_chatbot/__init__.py +70 -6
  46. aws_cdk/aws_cleanrooms/__init__.py +709 -206
  47. aws_cdk/aws_cleanroomsml/__init__.py +13 -2
  48. aws_cdk/aws_cloud9/__init__.py +13 -2
  49. aws_cdk/aws_cloudformation/__init__.py +345 -166
  50. aws_cdk/aws_cloudfront/__init__.py +2101 -680
  51. aws_cdk/aws_cloudfront/experimental/__init__.py +108 -16
  52. aws_cdk/aws_cloudfront_origins/__init__.py +614 -73
  53. aws_cdk/aws_cloudtrail/__init__.py +301 -17
  54. aws_cdk/aws_cloudwatch/__init__.py +1414 -153
  55. aws_cdk/aws_codeartifact/__init__.py +35 -6
  56. aws_cdk/aws_codebuild/__init__.py +1103 -118
  57. aws_cdk/aws_codecommit/__init__.py +23 -9
  58. aws_cdk/aws_codeconnections/__init__.py +13 -2
  59. aws_cdk/aws_codedeploy/__init__.py +67 -6
  60. aws_cdk/aws_codeguruprofiler/__init__.py +74 -2
  61. aws_cdk/aws_codegurureviewer/__init__.py +13 -2
  62. aws_cdk/aws_codepipeline/__init__.py +127 -64
  63. aws_cdk/aws_codepipeline_actions/__init__.py +749 -0
  64. aws_cdk/aws_codestar/__init__.py +13 -2
  65. aws_cdk/aws_codestarconnections/__init__.py +35 -6
  66. aws_cdk/aws_codestarnotifications/__init__.py +16 -2
  67. aws_cdk/aws_cognito/__init__.py +814 -80
  68. aws_cdk/aws_cognito_identitypool/__init__.py +17 -12
  69. aws_cdk/aws_comprehend/__init__.py +24 -4
  70. aws_cdk/aws_config/__init__.py +191 -30
  71. aws_cdk/aws_connect/__init__.py +2736 -191
  72. aws_cdk/aws_connectcampaigns/__init__.py +13 -2
  73. aws_cdk/aws_connectcampaignsv2/__init__.py +268 -6
  74. aws_cdk/aws_controltower/__init__.py +35 -6
  75. aws_cdk/aws_cur/__init__.py +100 -4
  76. aws_cdk/aws_customerprofiles/__init__.py +617 -27
  77. aws_cdk/aws_databrew/__init__.py +68 -12
  78. aws_cdk/aws_datapipeline/__init__.py +42 -2
  79. aws_cdk/aws_datasync/__init__.py +723 -203
  80. aws_cdk/aws_datazone/__init__.py +4425 -608
  81. aws_cdk/aws_dax/__init__.py +83 -6
  82. aws_cdk/aws_deadline/__init__.py +321 -32
  83. aws_cdk/aws_detective/__init__.py +35 -6
  84. aws_cdk/aws_devicefarm/__init__.py +68 -12
  85. aws_cdk/aws_devopsguru/__init__.py +37 -6
  86. aws_cdk/aws_directoryservice/__init__.py +53 -4
  87. aws_cdk/aws_dlm/__init__.py +13 -2
  88. aws_cdk/aws_dms/__init__.py +184 -27
  89. aws_cdk/aws_docdb/__init__.py +323 -46
  90. aws_cdk/aws_docdbelastic/__init__.py +13 -2
  91. aws_cdk/aws_dsql/__init__.py +340 -12
  92. aws_cdk/aws_dynamodb/__init__.py +1463 -166
  93. aws_cdk/aws_ec2/__init__.py +9636 -1120
  94. aws_cdk/aws_ecr/__init__.py +631 -43
  95. aws_cdk/aws_ecr_assets/__init__.py +4 -0
  96. aws_cdk/aws_ecs/__init__.py +6524 -497
  97. aws_cdk/aws_ecs_patterns/__init__.py +2 -0
  98. aws_cdk/aws_efs/__init__.py +264 -24
  99. aws_cdk/aws_eks/__init__.py +1050 -218
  100. aws_cdk/aws_elasticache/__init__.py +373 -20
  101. aws_cdk/aws_elasticbeanstalk/__init__.py +75 -8
  102. aws_cdk/aws_elasticloadbalancing/__init__.py +16 -2
  103. aws_cdk/aws_elasticloadbalancingv2/__init__.py +1670 -106
  104. aws_cdk/aws_elasticsearch/__init__.py +282 -9
  105. aws_cdk/aws_emr/__init__.py +187 -20
  106. aws_cdk/aws_emrcontainers/__init__.py +71 -2
  107. aws_cdk/aws_emrserverless/__init__.py +188 -3
  108. aws_cdk/aws_entityresolution/__init__.py +585 -58
  109. aws_cdk/aws_events/__init__.py +969 -124
  110. aws_cdk/aws_events_targets/__init__.py +310 -54
  111. aws_cdk/aws_eventschemas/__init__.py +46 -8
  112. aws_cdk/aws_evidently/__init__.py +57 -10
  113. aws_cdk/aws_evs/__init__.py +2244 -0
  114. aws_cdk/aws_finspace/__init__.py +71 -2
  115. aws_cdk/aws_fis/__init__.py +26 -4
  116. aws_cdk/aws_fms/__init__.py +35 -6
  117. aws_cdk/aws_forecast/__init__.py +24 -4
  118. aws_cdk/aws_frauddetector/__init__.py +79 -14
  119. aws_cdk/aws_fsx/__init__.py +1236 -142
  120. aws_cdk/aws_gamelift/__init__.py +653 -78
  121. aws_cdk/aws_gameliftstreams/__init__.py +38 -16
  122. aws_cdk/aws_globalaccelerator/__init__.py +55 -14
  123. aws_cdk/aws_glue/__init__.py +1368 -320
  124. aws_cdk/aws_grafana/__init__.py +13 -2
  125. aws_cdk/aws_greengrass/__init__.py +654 -32
  126. aws_cdk/aws_greengrassv2/__init__.py +53 -4
  127. aws_cdk/aws_groundstation/__init__.py +122 -6
  128. aws_cdk/aws_guardduty/__init__.py +1613 -123
  129. aws_cdk/aws_healthimaging/__init__.py +71 -2
  130. aws_cdk/aws_healthlake/__init__.py +42 -2
  131. aws_cdk/aws_iam/__init__.py +480 -140
  132. aws_cdk/aws_identitystore/__init__.py +24 -4
  133. aws_cdk/aws_imagebuilder/__init__.py +1433 -183
  134. aws_cdk/aws_inspector/__init__.py +38 -6
  135. aws_cdk/aws_inspectorv2/__init__.py +2285 -243
  136. aws_cdk/aws_internetmonitor/__init__.py +71 -2
  137. aws_cdk/aws_invoicing/__init__.py +13 -2
  138. aws_cdk/aws_iot/__init__.py +1730 -86
  139. aws_cdk/aws_iotanalytics/__init__.py +162 -8
  140. aws_cdk/aws_iotcoredeviceadvisor/__init__.py +106 -40
  141. aws_cdk/aws_iotevents/__init__.py +122 -6
  142. aws_cdk/aws_iotfleethub/__init__.py +71 -2
  143. aws_cdk/aws_iotfleetwise/__init__.py +195 -14
  144. aws_cdk/aws_iotsitewise/__init__.py +1837 -89
  145. aws_cdk/aws_iotthingsgraph/__init__.py +13 -2
  146. aws_cdk/aws_iottwinmaker/__init__.py +115 -10
  147. aws_cdk/aws_iotwireless/__init__.py +649 -22
  148. aws_cdk/aws_ivs/__init__.py +561 -57
  149. aws_cdk/aws_ivschat/__init__.py +24 -4
  150. aws_cdk/aws_kafkaconnect/__init__.py +35 -6
  151. aws_cdk/aws_kendra/__init__.py +120 -28
  152. aws_cdk/aws_kendraranking/__init__.py +13 -2
  153. aws_cdk/aws_kinesis/__init__.py +622 -22
  154. aws_cdk/aws_kinesisanalytics/__init__.py +467 -94
  155. aws_cdk/aws_kinesisanalyticsv2/__init__.py +201 -11
  156. aws_cdk/aws_kinesisfirehose/__init__.py +3077 -295
  157. aws_cdk/aws_kinesisvideo/__init__.py +24 -4
  158. aws_cdk/aws_kms/__init__.py +188 -41
  159. aws_cdk/aws_lakeformation/__init__.py +80 -15
  160. aws_cdk/aws_lambda/__init__.py +2101 -252
  161. aws_cdk/aws_lambda_event_sources/__init__.py +638 -1
  162. aws_cdk/aws_lambda_nodejs/__init__.py +63 -24
  163. aws_cdk/aws_launchwizard/__init__.py +13 -2
  164. aws_cdk/aws_lex/__init__.py +871 -8
  165. aws_cdk/aws_licensemanager/__init__.py +24 -4
  166. aws_cdk/aws_lightsail/__init__.py +2159 -975
  167. aws_cdk/aws_location/__init__.py +618 -14
  168. aws_cdk/aws_logs/__init__.py +5904 -956
  169. aws_cdk/aws_lookoutequipment/__init__.py +13 -2
  170. aws_cdk/aws_lookoutmetrics/__init__.py +38 -6
  171. aws_cdk/aws_lookoutvision/__init__.py +71 -2
  172. aws_cdk/aws_m2/__init__.py +94 -19
  173. aws_cdk/aws_macie/__init__.py +49 -11
  174. aws_cdk/aws_managedblockchain/__init__.py +180 -6
  175. aws_cdk/aws_mediaconnect/__init__.py +101 -18
  176. aws_cdk/aws_mediaconvert/__init__.py +35 -6
  177. aws_cdk/aws_medialive/__init__.py +1239 -35
  178. aws_cdk/aws_mediapackage/__init__.py +59 -12
  179. aws_cdk/aws_mediapackagev2/__init__.py +1607 -225
  180. aws_cdk/aws_mediastore/__init__.py +13 -2
  181. aws_cdk/aws_mediatailor/__init__.py +583 -12
  182. aws_cdk/aws_memorydb/__init__.py +271 -12
  183. aws_cdk/aws_mpa/__init__.py +1495 -0
  184. aws_cdk/aws_msk/__init__.py +104 -18
  185. aws_cdk/aws_mwaa/__init__.py +121 -9
  186. aws_cdk/aws_neptune/__init__.py +290 -78
  187. aws_cdk/aws_neptunegraph/__init__.py +24 -4
  188. aws_cdk/aws_networkfirewall/__init__.py +1289 -273
  189. aws_cdk/aws_networkmanager/__init__.py +349 -33
  190. aws_cdk/aws_nimblestudio/__init__.py +75 -8
  191. aws_cdk/aws_notifications/__init__.py +317 -12
  192. aws_cdk/aws_notificationscontacts/__init__.py +13 -2
  193. aws_cdk/aws_oam/__init__.py +24 -4
  194. aws_cdk/aws_observabilityadmin/__init__.py +2561 -0
  195. aws_cdk/aws_odb/__init__.py +5872 -0
  196. aws_cdk/aws_omics/__init__.py +2495 -529
  197. aws_cdk/aws_opensearchserverless/__init__.py +312 -37
  198. aws_cdk/aws_opensearchservice/__init__.py +495 -19
  199. aws_cdk/aws_opsworks/__init__.py +235 -139
  200. aws_cdk/aws_opsworkscm/__init__.py +16 -52
  201. aws_cdk/aws_organizations/__init__.py +70 -10
  202. aws_cdk/aws_osis/__init__.py +167 -2
  203. aws_cdk/aws_panorama/__init__.py +151 -6
  204. aws_cdk/aws_paymentcryptography/__init__.py +24 -4
  205. aws_cdk/aws_pcaconnectorad/__init__.py +59 -10
  206. aws_cdk/aws_pcaconnectorscep/__init__.py +24 -4
  207. aws_cdk/aws_pcs/__init__.py +387 -68
  208. aws_cdk/aws_personalize/__init__.py +46 -8
  209. aws_cdk/aws_pinpoint/__init__.py +329 -38
  210. aws_cdk/aws_pinpointemail/__init__.py +48 -8
  211. aws_cdk/aws_pipes/__init__.py +12 -2
  212. aws_cdk/aws_proton/__init__.py +37 -6
  213. aws_cdk/aws_qbusiness/__init__.py +635 -34
  214. aws_cdk/aws_qldb/__init__.py +24 -4
  215. aws_cdk/aws_quicksight/__init__.py +7900 -1160
  216. aws_cdk/aws_ram/__init__.py +24 -4
  217. aws_cdk/aws_rbin/__init__.py +12 -2
  218. aws_cdk/aws_rds/__init__.py +3345 -512
  219. aws_cdk/aws_redshift/__init__.py +143 -20
  220. aws_cdk/aws_redshiftserverless/__init__.py +692 -4
  221. aws_cdk/aws_refactorspaces/__init__.py +64 -14
  222. aws_cdk/aws_rekognition/__init__.py +93 -6
  223. aws_cdk/aws_resiliencehub/__init__.py +24 -4
  224. aws_cdk/aws_resourceexplorer2/__init__.py +35 -6
  225. aws_cdk/aws_resourcegroups/__init__.py +82 -4
  226. aws_cdk/aws_robomaker/__init__.py +72 -12
  227. aws_cdk/aws_rolesanywhere/__init__.py +180 -6
  228. aws_cdk/aws_route53/__init__.py +3273 -1442
  229. aws_cdk/aws_route53_targets/__init__.py +3 -0
  230. aws_cdk/aws_route53profiles/__init__.py +37 -6
  231. aws_cdk/aws_route53recoverycontrol/__init__.py +46 -8
  232. aws_cdk/aws_route53recoveryreadiness/__init__.py +104 -8
  233. aws_cdk/aws_route53resolver/__init__.py +226 -36
  234. aws_cdk/aws_rtbfabric/__init__.py +3498 -0
  235. aws_cdk/aws_rum/__init__.py +13 -2
  236. aws_cdk/aws_s3/__init__.py +1291 -158
  237. aws_cdk/aws_s3_assets/__init__.py +11 -11
  238. aws_cdk/aws_s3_deployment/__init__.py +147 -11
  239. aws_cdk/aws_s3_notifications/__init__.py +7 -7
  240. aws_cdk/aws_s3express/__init__.py +266 -8
  241. aws_cdk/aws_s3objectlambda/__init__.py +68 -16
  242. aws_cdk/aws_s3outposts/__init__.py +46 -8
  243. aws_cdk/aws_s3tables/__init__.py +2000 -323
  244. aws_cdk/aws_s3vectors/__init__.py +1378 -0
  245. aws_cdk/aws_sagemaker/__init__.py +6617 -363
  246. aws_cdk/aws_sam/__init__.py +79 -14
  247. aws_cdk/aws_scheduler/__init__.py +237 -4
  248. aws_cdk/aws_sdb/__init__.py +12 -2
  249. aws_cdk/aws_secretsmanager/__init__.py +170 -14
  250. aws_cdk/aws_securityhub/__init__.py +3121 -176
  251. aws_cdk/aws_securitylake/__init__.py +46 -8
  252. aws_cdk/aws_servicecatalog/__init__.py +405 -246
  253. aws_cdk/aws_servicecatalogappregistry/__init__.py +164 -8
  254. aws_cdk/aws_servicediscovery/__init__.py +140 -47
  255. aws_cdk/aws_ses/__init__.py +1231 -140
  256. aws_cdk/aws_shield/__init__.py +46 -8
  257. aws_cdk/aws_signer/__init__.py +27 -4
  258. aws_cdk/aws_simspaceweaver/__init__.py +42 -2
  259. aws_cdk/aws_smsvoice/__init__.py +4716 -0
  260. aws_cdk/aws_sns/__init__.py +245 -29
  261. aws_cdk/aws_sns_subscriptions/__init__.py +3 -1
  262. aws_cdk/aws_sqs/__init__.py +211 -14
  263. aws_cdk/aws_ssm/__init__.py +401 -58
  264. aws_cdk/aws_ssmcontacts/__init__.py +46 -8
  265. aws_cdk/aws_ssmguiconnect/__init__.py +13 -2
  266. aws_cdk/aws_ssmincidents/__init__.py +24 -4
  267. aws_cdk/aws_ssmquicksetup/__init__.py +383 -6
  268. aws_cdk/aws_sso/__init__.py +70 -12
  269. aws_cdk/aws_stepfunctions/__init__.py +615 -70
  270. aws_cdk/aws_stepfunctions_tasks/__init__.py +781 -144
  271. aws_cdk/aws_supportapp/__init__.py +39 -6
  272. aws_cdk/aws_synthetics/__init__.py +861 -75
  273. aws_cdk/aws_systemsmanagersap/__init__.py +13 -2
  274. aws_cdk/aws_timestream/__init__.py +104 -8
  275. aws_cdk/aws_transfer/__init__.py +784 -87
  276. aws_cdk/aws_verifiedpermissions/__init__.py +145 -17
  277. aws_cdk/aws_voiceid/__init__.py +41 -2
  278. aws_cdk/aws_vpclattice/__init__.py +376 -30
  279. aws_cdk/aws_waf/__init__.py +79 -14
  280. aws_cdk/aws_wafregional/__init__.py +123 -22
  281. aws_cdk/aws_wafv2/__init__.py +1179 -60
  282. aws_cdk/aws_wisdom/__init__.py +1401 -90
  283. aws_cdk/aws_workspaces/__init__.py +93 -6
  284. aws_cdk/aws_workspacesinstances/__init__.py +3940 -0
  285. aws_cdk/aws_workspacesthinclient/__init__.py +79 -10
  286. aws_cdk/aws_workspacesweb/__init__.py +1057 -141
  287. aws_cdk/aws_xray/__init__.py +48 -8
  288. aws_cdk/cloud_assembly_schema/__init__.py +231 -6
  289. aws_cdk/custom_resources/__init__.py +40 -12
  290. aws_cdk/cx_api/__init__.py +85 -14
  291. aws_cdk/interfaces/__init__.py +739 -0
  292. aws_cdk/interfaces/alexa_ask/__init__.py +146 -0
  293. aws_cdk/interfaces/aws_accessanalyzer/__init__.py +146 -0
  294. aws_cdk/interfaces/aws_acmpca/__init__.py +501 -0
  295. aws_cdk/interfaces/aws_aiops/__init__.py +146 -0
  296. aws_cdk/interfaces/aws_amazonmq/__init__.py +386 -0
  297. aws_cdk/interfaces/aws_amplify/__init__.py +352 -0
  298. aws_cdk/interfaces/aws_amplifyuibuilder/__init__.py +454 -0
  299. aws_cdk/interfaces/aws_apigateway/__init__.py +2486 -0
  300. aws_cdk/interfaces/aws_apigatewayv2/__init__.py +1651 -0
  301. aws_cdk/interfaces/aws_appconfig/__init__.py +1020 -0
  302. aws_cdk/interfaces/aws_appflow/__init__.py +404 -0
  303. aws_cdk/interfaces/aws_appintegrations/__init__.py +396 -0
  304. aws_cdk/interfaces/aws_applicationautoscaling/__init__.py +307 -0
  305. aws_cdk/interfaces/aws_applicationinsights/__init__.py +148 -0
  306. aws_cdk/interfaces/aws_applicationsignals/__init__.py +358 -0
  307. aws_cdk/interfaces/aws_appmesh/__init__.py +888 -0
  308. aws_cdk/interfaces/aws_apprunner/__init__.py +564 -0
  309. aws_cdk/interfaces/aws_appstream/__init__.py +1482 -0
  310. aws_cdk/interfaces/aws_appsync/__init__.py +1326 -0
  311. aws_cdk/interfaces/aws_apptest/__init__.py +163 -0
  312. aws_cdk/interfaces/aws_aps/__init__.py +558 -0
  313. aws_cdk/interfaces/aws_arcregionswitch/__init__.py +146 -0
  314. aws_cdk/interfaces/aws_arczonalshift/__init__.py +273 -0
  315. aws_cdk/interfaces/aws_athena/__init__.py +575 -0
  316. aws_cdk/interfaces/aws_auditmanager/__init__.py +163 -0
  317. aws_cdk/interfaces/aws_autoscaling/__init__.py +705 -0
  318. aws_cdk/interfaces/aws_autoscalingplans/__init__.py +148 -0
  319. aws_cdk/interfaces/aws_b2bi/__init__.py +524 -0
  320. aws_cdk/interfaces/aws_backup/__init__.py +955 -0
  321. aws_cdk/interfaces/aws_backupgateway/__init__.py +146 -0
  322. aws_cdk/interfaces/aws_batch/__init__.py +681 -0
  323. aws_cdk/interfaces/aws_bcmdataexports/__init__.py +146 -0
  324. aws_cdk/interfaces/aws_bedrock/__init__.py +1942 -0
  325. aws_cdk/interfaces/aws_bedrockagentcore/__init__.py +934 -0
  326. aws_cdk/interfaces/aws_billing/__init__.py +146 -0
  327. aws_cdk/interfaces/aws_billingconductor/__init__.py +463 -0
  328. aws_cdk/interfaces/aws_budgets/__init__.py +261 -0
  329. aws_cdk/interfaces/aws_cassandra/__init__.py +381 -0
  330. aws_cdk/interfaces/aws_ce/__init__.py +352 -0
  331. aws_cdk/interfaces/aws_certificatemanager/__init__.py +251 -0
  332. aws_cdk/interfaces/aws_chatbot/__init__.py +366 -0
  333. aws_cdk/interfaces/aws_cleanrooms/__init__.py +1103 -0
  334. aws_cdk/interfaces/aws_cleanroomsml/__init__.py +148 -0
  335. aws_cdk/interfaces/aws_cloud9/__init__.py +166 -0
  336. aws_cdk/interfaces/aws_cloudformation/__init__.py +1919 -0
  337. aws_cdk/interfaces/aws_cloudfront/__init__.py +1998 -0
  338. aws_cdk/interfaces/aws_cloudtrail/__init__.py +570 -0
  339. aws_cdk/interfaces/aws_cloudwatch/__init__.py +733 -0
  340. aws_cdk/interfaces/aws_codeartifact/__init__.py +352 -0
  341. aws_cdk/interfaces/aws_codebuild/__init__.py +487 -0
  342. aws_cdk/interfaces/aws_codecommit/__init__.py +163 -0
  343. aws_cdk/interfaces/aws_codeconnections/__init__.py +146 -0
  344. aws_cdk/interfaces/aws_codedeploy/__init__.py +352 -0
  345. aws_cdk/interfaces/aws_codeguruprofiler/__init__.py +168 -0
  346. aws_cdk/interfaces/aws_codegurureviewer/__init__.py +148 -0
  347. aws_cdk/interfaces/aws_codepipeline/__init__.py +388 -0
  348. aws_cdk/interfaces/aws_codestar/__init__.py +146 -0
  349. aws_cdk/interfaces/aws_codestarconnections/__init__.py +370 -0
  350. aws_cdk/interfaces/aws_codestarnotifications/__init__.py +148 -0
  351. aws_cdk/interfaces/aws_cognito/__init__.py +1929 -0
  352. aws_cdk/interfaces/aws_comprehend/__init__.py +251 -0
  353. aws_cdk/interfaces/aws_config/__init__.py +1165 -0
  354. aws_cdk/interfaces/aws_connect/__init__.py +2949 -0
  355. aws_cdk/interfaces/aws_connectcampaigns/__init__.py +146 -0
  356. aws_cdk/interfaces/aws_connectcampaignsv2/__init__.py +146 -0
  357. aws_cdk/interfaces/aws_controltower/__init__.py +394 -0
  358. aws_cdk/interfaces/aws_cur/__init__.py +146 -0
  359. aws_cdk/interfaces/aws_customerprofiles/__init__.py +915 -0
  360. aws_cdk/interfaces/aws_databrew/__init__.py +661 -0
  361. aws_cdk/interfaces/aws_datapipeline/__init__.py +146 -0
  362. aws_cdk/interfaces/aws_datasync/__init__.py +1384 -0
  363. aws_cdk/interfaces/aws_datazone/__init__.py +2238 -0
  364. aws_cdk/interfaces/aws_dax/__init__.py +364 -0
  365. aws_cdk/interfaces/aws_deadline/__init__.py +1303 -0
  366. aws_cdk/interfaces/aws_detective/__init__.py +364 -0
  367. aws_cdk/interfaces/aws_devicefarm/__init__.py +663 -0
  368. aws_cdk/interfaces/aws_devopsguru/__init__.py +362 -0
  369. aws_cdk/interfaces/aws_directoryservice/__init__.py +251 -0
  370. aws_cdk/interfaces/aws_dlm/__init__.py +166 -0
  371. aws_cdk/interfaces/aws_dms/__init__.py +1176 -0
  372. aws_cdk/interfaces/aws_docdb/__init__.py +560 -0
  373. aws_cdk/interfaces/aws_docdbelastic/__init__.py +146 -0
  374. aws_cdk/interfaces/aws_dsql/__init__.py +146 -0
  375. aws_cdk/interfaces/aws_dynamodb/__init__.py +278 -0
  376. aws_cdk/interfaces/aws_ec2/__init__.py +11963 -0
  377. aws_cdk/interfaces/aws_ecr/__init__.py +814 -0
  378. aws_cdk/interfaces/aws_ecs/__init__.py +845 -0
  379. aws_cdk/interfaces/aws_efs/__init__.py +392 -0
  380. aws_cdk/interfaces/aws_eks/__init__.py +948 -0
  381. aws_cdk/interfaces/aws_elasticache/__init__.py +1108 -0
  382. aws_cdk/interfaces/aws_elasticbeanstalk/__init__.py +503 -0
  383. aws_cdk/interfaces/aws_elasticloadbalancing/__init__.py +148 -0
  384. aws_cdk/interfaces/aws_elasticloadbalancingv2/__init__.py +795 -0
  385. aws_cdk/interfaces/aws_elasticsearch/__init__.py +158 -0
  386. aws_cdk/interfaces/aws_emr/__init__.py +913 -0
  387. aws_cdk/interfaces/aws_emrcontainers/__init__.py +168 -0
  388. aws_cdk/interfaces/aws_emrserverless/__init__.py +166 -0
  389. aws_cdk/interfaces/aws_entityresolution/__init__.py +608 -0
  390. aws_cdk/interfaces/aws_events/__init__.py +872 -0
  391. aws_cdk/interfaces/aws_eventschemas/__init__.py +455 -0
  392. aws_cdk/interfaces/aws_evidently/__init__.py +558 -0
  393. aws_cdk/interfaces/aws_evs/__init__.py +166 -0
  394. aws_cdk/interfaces/aws_finspace/__init__.py +166 -0
  395. aws_cdk/interfaces/aws_fis/__init__.py +271 -0
  396. aws_cdk/interfaces/aws_fms/__init__.py +364 -0
  397. aws_cdk/interfaces/aws_forecast/__init__.py +249 -0
  398. aws_cdk/interfaces/aws_frauddetector/__init__.py +764 -0
  399. aws_cdk/interfaces/aws_fsx/__init__.py +663 -0
  400. aws_cdk/interfaces/aws_gamelift/__init__.py +1325 -0
  401. aws_cdk/interfaces/aws_gameliftstreams/__init__.py +249 -0
  402. aws_cdk/interfaces/aws_globalaccelerator/__init__.py +461 -0
  403. aws_cdk/interfaces/aws_glue/__init__.py +2377 -0
  404. aws_cdk/interfaces/aws_grafana/__init__.py +146 -0
  405. aws_cdk/interfaces/aws_greengrass/__init__.py +1871 -0
  406. aws_cdk/interfaces/aws_greengrassv2/__init__.py +251 -0
  407. aws_cdk/interfaces/aws_groundstation/__init__.py +396 -0
  408. aws_cdk/interfaces/aws_guardduty/__init__.py +1225 -0
  409. aws_cdk/interfaces/aws_healthimaging/__init__.py +163 -0
  410. aws_cdk/interfaces/aws_healthlake/__init__.py +146 -0
  411. aws_cdk/interfaces/aws_iam/__init__.py +1803 -0
  412. aws_cdk/interfaces/aws_identitystore/__init__.py +288 -0
  413. aws_cdk/interfaces/aws_imagebuilder/__init__.py +984 -0
  414. aws_cdk/interfaces/aws_inspector/__init__.py +354 -0
  415. aws_cdk/interfaces/aws_inspectorv2/__init__.py +467 -0
  416. aws_cdk/interfaces/aws_internetmonitor/__init__.py +163 -0
  417. aws_cdk/interfaces/aws_invoicing/__init__.py +146 -0
  418. aws_cdk/interfaces/aws_iot/__init__.py +3483 -0
  419. aws_cdk/interfaces/aws_iotanalytics/__init__.py +455 -0
  420. aws_cdk/interfaces/aws_iotcoredeviceadvisor/__init__.py +168 -0
  421. aws_cdk/interfaces/aws_iotevents/__init__.py +352 -0
  422. aws_cdk/interfaces/aws_iotfleethub/__init__.py +166 -0
  423. aws_cdk/interfaces/aws_iotfleetwise/__init__.py +892 -0
  424. aws_cdk/interfaces/aws_iotsitewise/__init__.py +1097 -0
  425. aws_cdk/interfaces/aws_iotthingsgraph/__init__.py +146 -0
  426. aws_cdk/interfaces/aws_iottwinmaker/__init__.py +711 -0
  427. aws_cdk/interfaces/aws_iotwireless/__init__.py +1401 -0
  428. aws_cdk/interfaces/aws_ivs/__init__.py +1075 -0
  429. aws_cdk/interfaces/aws_ivschat/__init__.py +251 -0
  430. aws_cdk/interfaces/aws_kafkaconnect/__init__.py +354 -0
  431. aws_cdk/interfaces/aws_kendra/__init__.py +428 -0
  432. aws_cdk/interfaces/aws_kendraranking/__init__.py +166 -0
  433. aws_cdk/interfaces/aws_kinesis/__init__.py +364 -0
  434. aws_cdk/interfaces/aws_kinesisanalytics/__init__.py +364 -0
  435. aws_cdk/interfaces/aws_kinesisanalyticsv2/__init__.py +479 -0
  436. aws_cdk/interfaces/aws_kinesisfirehose/__init__.py +168 -0
  437. aws_cdk/interfaces/aws_kinesisvideo/__init__.py +283 -0
  438. aws_cdk/interfaces/aws_kms/__init__.py +376 -0
  439. aws_cdk/interfaces/aws_lakeformation/__init__.py +860 -0
  440. aws_cdk/interfaces/aws_lambda/__init__.py +1141 -0
  441. aws_cdk/interfaces/aws_launchwizard/__init__.py +146 -0
  442. aws_cdk/interfaces/aws_lex/__init__.py +513 -0
  443. aws_cdk/interfaces/aws_licensemanager/__init__.py +249 -0
  444. aws_cdk/interfaces/aws_lightsail/__init__.py +1744 -0
  445. aws_cdk/interfaces/aws_location/__init__.py +879 -0
  446. aws_cdk/interfaces/aws_logs/__init__.py +1667 -0
  447. aws_cdk/interfaces/aws_lookoutequipment/__init__.py +168 -0
  448. aws_cdk/interfaces/aws_lookoutmetrics/__init__.py +251 -0
  449. aws_cdk/interfaces/aws_lookoutvision/__init__.py +163 -0
  450. aws_cdk/interfaces/aws_m2/__init__.py +352 -0
  451. aws_cdk/interfaces/aws_macie/__init__.py +512 -0
  452. aws_cdk/interfaces/aws_managedblockchain/__init__.py +381 -0
  453. aws_cdk/interfaces/aws_mediaconnect/__init__.py +1028 -0
  454. aws_cdk/interfaces/aws_mediaconvert/__init__.py +396 -0
  455. aws_cdk/interfaces/aws_medialive/__init__.py +1755 -0
  456. aws_cdk/interfaces/aws_mediapackage/__init__.py +644 -0
  457. aws_cdk/interfaces/aws_mediapackagev2/__init__.py +618 -0
  458. aws_cdk/interfaces/aws_mediastore/__init__.py +146 -0
  459. aws_cdk/interfaces/aws_mediatailor/__init__.py +788 -0
  460. aws_cdk/interfaces/aws_memorydb/__init__.py +685 -0
  461. aws_cdk/interfaces/aws_mpa/__init__.py +249 -0
  462. aws_cdk/interfaces/aws_msk/__init__.py +764 -0
  463. aws_cdk/interfaces/aws_mwaa/__init__.py +166 -0
  464. aws_cdk/interfaces/aws_neptune/__init__.py +663 -0
  465. aws_cdk/interfaces/aws_neptunegraph/__init__.py +265 -0
  466. aws_cdk/interfaces/aws_networkfirewall/__init__.py +669 -0
  467. aws_cdk/interfaces/aws_networkmanager/__init__.py +1832 -0
  468. aws_cdk/interfaces/aws_nimblestudio/__init__.py +388 -0
  469. aws_cdk/interfaces/aws_notifications/__init__.py +868 -0
  470. aws_cdk/interfaces/aws_notificationscontacts/__init__.py +148 -0
  471. aws_cdk/interfaces/aws_oam/__init__.py +249 -0
  472. aws_cdk/interfaces/aws_observabilityadmin/__init__.py +362 -0
  473. aws_cdk/interfaces/aws_odb/__init__.py +562 -0
  474. aws_cdk/interfaces/aws_omics/__init__.py +838 -0
  475. aws_cdk/interfaces/aws_opensearchserverless/__init__.py +859 -0
  476. aws_cdk/interfaces/aws_opensearchservice/__init__.py +283 -0
  477. aws_cdk/interfaces/aws_opsworks/__init__.py +772 -0
  478. aws_cdk/interfaces/aws_opsworkscm/__init__.py +146 -0
  479. aws_cdk/interfaces/aws_organizations/__init__.py +646 -0
  480. aws_cdk/interfaces/aws_osis/__init__.py +146 -0
  481. aws_cdk/interfaces/aws_panorama/__init__.py +420 -0
  482. aws_cdk/interfaces/aws_paymentcryptography/__init__.py +249 -0
  483. aws_cdk/interfaces/aws_pcaconnectorad/__init__.py +608 -0
  484. aws_cdk/interfaces/aws_pcaconnectorscep/__init__.py +249 -0
  485. aws_cdk/interfaces/aws_pcs/__init__.py +352 -0
  486. aws_cdk/interfaces/aws_personalize/__init__.py +455 -0
  487. aws_cdk/interfaces/aws_pinpoint/__init__.py +2125 -0
  488. aws_cdk/interfaces/aws_pinpointemail/__init__.py +467 -0
  489. aws_cdk/interfaces/aws_pipes/__init__.py +158 -0
  490. aws_cdk/interfaces/aws_proton/__init__.py +360 -0
  491. aws_cdk/interfaces/aws_qbusiness/__init__.py +1122 -0
  492. aws_cdk/interfaces/aws_qldb/__init__.py +283 -0
  493. aws_cdk/interfaces/aws_quicksight/__init__.py +1566 -0
  494. aws_cdk/interfaces/aws_ram/__init__.py +249 -0
  495. aws_cdk/interfaces/aws_rbin/__init__.py +146 -0
  496. aws_cdk/interfaces/aws_rds/__init__.py +1780 -0
  497. aws_cdk/interfaces/aws_redshift/__init__.py +1104 -0
  498. aws_cdk/interfaces/aws_redshiftserverless/__init__.py +356 -0
  499. aws_cdk/interfaces/aws_refactorspaces/__init__.py +605 -0
  500. aws_cdk/interfaces/aws_rekognition/__init__.py +406 -0
  501. aws_cdk/interfaces/aws_resiliencehub/__init__.py +251 -0
  502. aws_cdk/interfaces/aws_resourceexplorer2/__init__.py +354 -0
  503. aws_cdk/interfaces/aws_resourcegroups/__init__.py +261 -0
  504. aws_cdk/interfaces/aws_robomaker/__init__.py +673 -0
  505. aws_cdk/interfaces/aws_rolesanywhere/__init__.py +384 -0
  506. aws_cdk/interfaces/aws_route53/__init__.py +804 -0
  507. aws_cdk/interfaces/aws_route53profiles/__init__.py +368 -0
  508. aws_cdk/interfaces/aws_route53recoverycontrol/__init__.py +463 -0
  509. aws_cdk/interfaces/aws_route53recoveryreadiness/__init__.py +535 -0
  510. aws_cdk/interfaces/aws_route53resolver/__init__.py +1356 -0
  511. aws_cdk/interfaces/aws_rtbfabric/__init__.py +352 -0
  512. aws_cdk/interfaces/aws_rum/__init__.py +146 -0
  513. aws_cdk/interfaces/aws_s3/__init__.py +1171 -0
  514. aws_cdk/interfaces/aws_s3express/__init__.py +392 -0
  515. aws_cdk/interfaces/aws_s3objectlambda/__init__.py +271 -0
  516. aws_cdk/interfaces/aws_s3outposts/__init__.py +455 -0
  517. aws_cdk/interfaces/aws_s3tables/__init__.py +575 -0
  518. aws_cdk/interfaces/aws_s3vectors/__init__.py +354 -0
  519. aws_cdk/interfaces/aws_sagemaker/__init__.py +3797 -0
  520. aws_cdk/interfaces/aws_sam/__init__.py +603 -0
  521. aws_cdk/interfaces/aws_scheduler/__init__.py +286 -0
  522. aws_cdk/interfaces/aws_sdb/__init__.py +146 -0
  523. aws_cdk/interfaces/aws_secretsmanager/__init__.py +461 -0
  524. aws_cdk/interfaces/aws_securityhub/__init__.py +1499 -0
  525. aws_cdk/interfaces/aws_securitylake/__init__.py +474 -0
  526. aws_cdk/interfaces/aws_servicecatalog/__init__.py +1829 -0
  527. aws_cdk/interfaces/aws_servicecatalogappregistry/__init__.py +557 -0
  528. aws_cdk/interfaces/aws_servicediscovery/__init__.py +636 -0
  529. aws_cdk/interfaces/aws_ses/__init__.py +2018 -0
  530. aws_cdk/interfaces/aws_shield/__init__.py +455 -0
  531. aws_cdk/interfaces/aws_signer/__init__.py +266 -0
  532. aws_cdk/interfaces/aws_simspaceweaver/__init__.py +146 -0
  533. aws_cdk/interfaces/aws_smsvoice/__init__.py +892 -0
  534. aws_cdk/interfaces/aws_sns/__init__.py +455 -0
  535. aws_cdk/interfaces/aws_sqs/__init__.py +364 -0
  536. aws_cdk/interfaces/aws_ssm/__init__.py +982 -0
  537. aws_cdk/interfaces/aws_ssmcontacts/__init__.py +455 -0
  538. aws_cdk/interfaces/aws_ssmguiconnect/__init__.py +146 -0
  539. aws_cdk/interfaces/aws_ssmincidents/__init__.py +249 -0
  540. aws_cdk/interfaces/aws_ssmquicksetup/__init__.py +253 -0
  541. aws_cdk/interfaces/aws_sso/__init__.py +797 -0
  542. aws_cdk/interfaces/aws_stepfunctions/__init__.py +459 -0
  543. aws_cdk/interfaces/aws_supportapp/__init__.py +372 -0
  544. aws_cdk/interfaces/aws_synthetics/__init__.py +249 -0
  545. aws_cdk/interfaces/aws_systemsmanagersap/__init__.py +148 -0
  546. aws_cdk/interfaces/aws_timestream/__init__.py +526 -0
  547. aws_cdk/interfaces/aws_transfer/__init__.py +967 -0
  548. aws_cdk/interfaces/aws_verifiedpermissions/__init__.py +538 -0
  549. aws_cdk/interfaces/aws_voiceid/__init__.py +146 -0
  550. aws_cdk/interfaces/aws_vpclattice/__init__.py +1418 -0
  551. aws_cdk/interfaces/aws_waf/__init__.py +764 -0
  552. aws_cdk/interfaces/aws_wafregional/__init__.py +1182 -0
  553. aws_cdk/interfaces/aws_wafv2/__init__.py +870 -0
  554. aws_cdk/interfaces/aws_wisdom/__init__.py +1556 -0
  555. aws_cdk/interfaces/aws_workspaces/__init__.py +352 -0
  556. aws_cdk/interfaces/aws_workspacesinstances/__init__.py +390 -0
  557. aws_cdk/interfaces/aws_workspacesthinclient/__init__.py +168 -0
  558. aws_cdk/interfaces/aws_workspacesweb/__init__.py +1085 -0
  559. aws_cdk/interfaces/aws_xray/__init__.py +457 -0
  560. aws_cdk/pipelines/__init__.py +192 -42
  561. aws_cdk/region_info/__init__.py +3 -0
  562. aws_cdk/triggers/__init__.py +60 -18
  563. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/METADATA +338 -16
  564. aws_cdk_lib-2.224.0.dist-info/RECORD +584 -0
  565. aws_cdk_lib-2.200.2.dist-info/RECORD +0 -304
  566. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/LICENSE +0 -0
  567. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/NOTICE +0 -0
  568. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/WHEEL +0 -0
  569. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,4716 @@
1
+ r'''
2
+ # AWS::SMSVOICE Construct Library
3
+
4
+ <!--BEGIN STABILITY BANNER-->---
5
+
6
+
7
+ ![cfn-resources: Stable](https://img.shields.io/badge/cfn--resources-stable-success.svg?style=for-the-badge)
8
+
9
+ > All classes with the `Cfn` prefix in this module ([CFN Resources](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) are always stable and safe to use.
10
+
11
+ ---
12
+ <!--END STABILITY BANNER-->
13
+
14
+ This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.
15
+
16
+ ```python
17
+ import aws_cdk.aws_smsvoice as smsvoice
18
+ ```
19
+
20
+ <!--BEGIN CFNONLY DISCLAIMER-->
21
+
22
+ There are no official hand-written ([L2](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) constructs for this service yet. Here are some suggestions on how to proceed:
23
+
24
+ * Search [Construct Hub for SMSVOICE construct libraries](https://constructs.dev/search?q=smsvoice)
25
+ * Use the automatically generated [L1](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_l1_using) constructs, in the same way you would use [the CloudFormation AWS::SMSVOICE resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SMSVOICE.html) directly.
26
+
27
+ <!--BEGIN CFNONLY DISCLAIMER-->
28
+
29
+ There are no hand-written ([L2](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) constructs for this service yet.
30
+ However, you can still use the automatically generated [L1](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_l1_using) constructs, and use this service exactly as you would using CloudFormation directly.
31
+
32
+ For more information on the resources and properties available for this service, see the [CloudFormation documentation for AWS::SMSVOICE](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SMSVOICE.html).
33
+
34
+ (Read the [CDK Contributing Guide](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and submit an RFC if you are interested in contributing to this construct library.)
35
+
36
+ <!--END CFNONLY DISCLAIMER-->
37
+ '''
38
+ from pkgutil import extend_path
39
+ __path__ = extend_path(__path__, __name__)
40
+
41
+ import abc
42
+ import builtins
43
+ import datetime
44
+ import enum
45
+ import typing
46
+
47
+ import jsii
48
+ import publication
49
+ import typing_extensions
50
+
51
+ import typeguard
52
+ from importlib.metadata import version as _metadata_package_version
53
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
54
+
55
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
56
+ if TYPEGUARD_MAJOR_VERSION <= 2:
57
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
58
+ else:
59
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
60
+ pass
61
+ else:
62
+ if TYPEGUARD_MAJOR_VERSION == 3:
63
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
64
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
65
+ else:
66
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
67
+
68
+ from .._jsii import *
69
+
70
+ import constructs as _constructs_77d1e7e8
71
+ from .. import (
72
+ CfnResource as _CfnResource_9df397a6,
73
+ CfnTag as _CfnTag_f6864754,
74
+ IInspectable as _IInspectable_c2943556,
75
+ IResolvable as _IResolvable_da3f097b,
76
+ ITaggableV2 as _ITaggableV2_4e6798f8,
77
+ TagManager as _TagManager_0a598cb3,
78
+ TreeInspector as _TreeInspector_488e0dd5,
79
+ )
80
+ from ..interfaces.aws_smsvoice import (
81
+ ConfigurationSetReference as _ConfigurationSetReference_540b1fe3,
82
+ IConfigurationSetRef as _IConfigurationSetRef_be3ec7c2,
83
+ IOptOutListRef as _IOptOutListRef_1d44f5f8,
84
+ IPhoneNumberRef as _IPhoneNumberRef_7c6c9ced,
85
+ IPoolRef as _IPoolRef_897848fa,
86
+ IProtectConfigurationRef as _IProtectConfigurationRef_e1ab5693,
87
+ IResourcePolicyRef as _IResourcePolicyRef_99a2534c,
88
+ ISenderIdRef as _ISenderIdRef_c6023099,
89
+ OptOutListReference as _OptOutListReference_e0a13902,
90
+ PhoneNumberReference as _PhoneNumberReference_c338f1b9,
91
+ PoolReference as _PoolReference_a27a62c2,
92
+ ProtectConfigurationReference as _ProtectConfigurationReference_c0c38d05,
93
+ ResourcePolicyReference as _ResourcePolicyReference_b377e19e,
94
+ SenderIdReference as _SenderIdReference_10c27954,
95
+ )
96
+
97
+
98
+ @jsii.implements(_IInspectable_c2943556, _IConfigurationSetRef_be3ec7c2, _ITaggableV2_4e6798f8)
99
+ class CfnConfigurationSet(
100
+ _CfnResource_9df397a6,
101
+ metaclass=jsii.JSIIMeta,
102
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnConfigurationSet",
103
+ ):
104
+ '''Creates a new configuration set.
105
+
106
+ After you create the configuration set, you can add one or more event destinations to it.
107
+
108
+ A configuration set is a set of rules that you apply to the SMS and voice messages that you send.
109
+
110
+ When you send a message, you can optionally specify a single configuration set.
111
+
112
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html
113
+ :cloudformationResource: AWS::SMSVOICE::ConfigurationSet
114
+ :exampleMetadata: fixture=_generated
115
+
116
+ Example::
117
+
118
+ # The code below shows an example of how to instantiate this type.
119
+ # The values are placeholders you should change.
120
+ from aws_cdk import aws_smsvoice as smsvoice
121
+
122
+ cfn_configuration_set = smsvoice.CfnConfigurationSet(self, "MyCfnConfigurationSet",
123
+ configuration_set_name="configurationSetName",
124
+ default_sender_id="defaultSenderId",
125
+ event_destinations=[smsvoice.CfnConfigurationSet.EventDestinationProperty(
126
+ enabled=False,
127
+ event_destination_name="eventDestinationName",
128
+ matching_event_types=["matchingEventTypes"],
129
+
130
+ # the properties below are optional
131
+ cloud_watch_logs_destination=smsvoice.CfnConfigurationSet.CloudWatchLogsDestinationProperty(
132
+ iam_role_arn="iamRoleArn",
133
+ log_group_arn="logGroupArn"
134
+ ),
135
+ kinesis_firehose_destination=smsvoice.CfnConfigurationSet.KinesisFirehoseDestinationProperty(
136
+ delivery_stream_arn="deliveryStreamArn",
137
+ iam_role_arn="iamRoleArn"
138
+ ),
139
+ sns_destination=smsvoice.CfnConfigurationSet.SnsDestinationProperty(
140
+ topic_arn="topicArn"
141
+ )
142
+ )],
143
+ message_feedback_enabled=False,
144
+ protect_configuration_id="protectConfigurationId",
145
+ tags=[CfnTag(
146
+ key="key",
147
+ value="value"
148
+ )]
149
+ )
150
+ '''
151
+
152
+ def __init__(
153
+ self,
154
+ scope: _constructs_77d1e7e8.Construct,
155
+ id: builtins.str,
156
+ *,
157
+ configuration_set_name: typing.Optional[builtins.str] = None,
158
+ default_sender_id: typing.Optional[builtins.str] = None,
159
+ event_destinations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnConfigurationSet.EventDestinationProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
160
+ message_feedback_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
161
+ protect_configuration_id: typing.Optional[builtins.str] = None,
162
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
163
+ ) -> None:
164
+ '''Create a new ``AWS::SMSVOICE::ConfigurationSet``.
165
+
166
+ :param scope: Scope in which this resource is defined.
167
+ :param id: Construct identifier for this resource (unique in its scope).
168
+ :param configuration_set_name: The name of the ConfigurationSet.
169
+ :param default_sender_id: The default sender ID used by the ConfigurationSet.
170
+ :param event_destinations: An array of EventDestination objects that describe any events to log and where to log them.
171
+ :param message_feedback_enabled: Set to true to enable feedback for the message.
172
+ :param protect_configuration_id: The unique identifier for the protect configuration.
173
+ :param tags: An array of key and value pair tags that's associated with the new configuration set.
174
+ '''
175
+ if __debug__:
176
+ type_hints = typing.get_type_hints(_typecheckingstub__40dfc64df6dc2c0a72f2a15a90352d0f45df52177e2673d853e93c45f6ff9bfe)
177
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
178
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
179
+ props = CfnConfigurationSetProps(
180
+ configuration_set_name=configuration_set_name,
181
+ default_sender_id=default_sender_id,
182
+ event_destinations=event_destinations,
183
+ message_feedback_enabled=message_feedback_enabled,
184
+ protect_configuration_id=protect_configuration_id,
185
+ tags=tags,
186
+ )
187
+
188
+ jsii.create(self.__class__, self, [scope, id, props])
189
+
190
+ @jsii.member(jsii_name="fromConfigurationSetArn")
191
+ @builtins.classmethod
192
+ def from_configuration_set_arn(
193
+ cls,
194
+ scope: _constructs_77d1e7e8.Construct,
195
+ id: builtins.str,
196
+ arn: builtins.str,
197
+ ) -> _IConfigurationSetRef_be3ec7c2:
198
+ '''Creates a new IConfigurationSetRef from an ARN.
199
+
200
+ :param scope: -
201
+ :param id: -
202
+ :param arn: -
203
+ '''
204
+ if __debug__:
205
+ type_hints = typing.get_type_hints(_typecheckingstub__bd09a8e0a95f96b6bf6ade58869d230ef8c16df306e2dba74636ef174182860e)
206
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
207
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
208
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
209
+ return typing.cast(_IConfigurationSetRef_be3ec7c2, jsii.sinvoke(cls, "fromConfigurationSetArn", [scope, id, arn]))
210
+
211
+ @jsii.member(jsii_name="fromConfigurationSetName")
212
+ @builtins.classmethod
213
+ def from_configuration_set_name(
214
+ cls,
215
+ scope: _constructs_77d1e7e8.Construct,
216
+ id: builtins.str,
217
+ configuration_set_name: builtins.str,
218
+ ) -> _IConfigurationSetRef_be3ec7c2:
219
+ '''Creates a new IConfigurationSetRef from a configurationSetName.
220
+
221
+ :param scope: -
222
+ :param id: -
223
+ :param configuration_set_name: -
224
+ '''
225
+ if __debug__:
226
+ type_hints = typing.get_type_hints(_typecheckingstub__b2808c7d63f3da460cc51d6d5193de4fa41ad6dd91676f0cdf055c67e7f58e61)
227
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
228
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
229
+ check_type(argname="argument configuration_set_name", value=configuration_set_name, expected_type=type_hints["configuration_set_name"])
230
+ return typing.cast(_IConfigurationSetRef_be3ec7c2, jsii.sinvoke(cls, "fromConfigurationSetName", [scope, id, configuration_set_name]))
231
+
232
+ @jsii.member(jsii_name="inspect")
233
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
234
+ '''Examines the CloudFormation resource and discloses attributes.
235
+
236
+ :param inspector: tree inspector to collect and process attributes.
237
+ '''
238
+ if __debug__:
239
+ type_hints = typing.get_type_hints(_typecheckingstub__0b8914b55c8c9175cb9d85ebbc19bd9b2ce8ee1fa9391da5cfe4b1d45d0285f4)
240
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
241
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
242
+
243
+ @jsii.member(jsii_name="renderProperties")
244
+ def _render_properties(
245
+ self,
246
+ props: typing.Mapping[builtins.str, typing.Any],
247
+ ) -> typing.Mapping[builtins.str, typing.Any]:
248
+ '''
249
+ :param props: -
250
+ '''
251
+ if __debug__:
252
+ type_hints = typing.get_type_hints(_typecheckingstub__b90e7a4776972d39f70067111684f2db6512204052e5e5368d9053b54bac6e9e)
253
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
254
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
255
+
256
+ @jsii.python.classproperty
257
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
258
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
259
+ '''The CloudFormation resource type name for this resource class.'''
260
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
261
+
262
+ @builtins.property
263
+ @jsii.member(jsii_name="attrArn")
264
+ def attr_arn(self) -> builtins.str:
265
+ '''The Amazon Resource Name (ARN) of the ConfigurationSet.
266
+
267
+ :cloudformationAttribute: Arn
268
+ '''
269
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
270
+
271
+ @builtins.property
272
+ @jsii.member(jsii_name="cdkTagManager")
273
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
274
+ '''Tag Manager which manages the tags for this resource.'''
275
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
276
+
277
+ @builtins.property
278
+ @jsii.member(jsii_name="cfnProperties")
279
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
280
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
281
+
282
+ @builtins.property
283
+ @jsii.member(jsii_name="configurationSetRef")
284
+ def configuration_set_ref(self) -> _ConfigurationSetReference_540b1fe3:
285
+ '''A reference to a ConfigurationSet resource.'''
286
+ return typing.cast(_ConfigurationSetReference_540b1fe3, jsii.get(self, "configurationSetRef"))
287
+
288
+ @builtins.property
289
+ @jsii.member(jsii_name="configurationSetName")
290
+ def configuration_set_name(self) -> typing.Optional[builtins.str]:
291
+ '''The name of the ConfigurationSet.'''
292
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "configurationSetName"))
293
+
294
+ @configuration_set_name.setter
295
+ def configuration_set_name(self, value: typing.Optional[builtins.str]) -> None:
296
+ if __debug__:
297
+ type_hints = typing.get_type_hints(_typecheckingstub__9544d5ead16000fe8542a97ab4304b9e73471d41cf77a7fcc7c28d0bf4588e3e)
298
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
299
+ jsii.set(self, "configurationSetName", value) # pyright: ignore[reportArgumentType]
300
+
301
+ @builtins.property
302
+ @jsii.member(jsii_name="defaultSenderId")
303
+ def default_sender_id(self) -> typing.Optional[builtins.str]:
304
+ '''The default sender ID used by the ConfigurationSet.'''
305
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "defaultSenderId"))
306
+
307
+ @default_sender_id.setter
308
+ def default_sender_id(self, value: typing.Optional[builtins.str]) -> None:
309
+ if __debug__:
310
+ type_hints = typing.get_type_hints(_typecheckingstub__186ea9a50af63ea8848866e4b7a25b25d580298e214617e976cdc49fd323660a)
311
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
312
+ jsii.set(self, "defaultSenderId", value) # pyright: ignore[reportArgumentType]
313
+
314
+ @builtins.property
315
+ @jsii.member(jsii_name="eventDestinations")
316
+ def event_destinations(
317
+ self,
318
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnConfigurationSet.EventDestinationProperty"]]]]:
319
+ '''An array of EventDestination objects that describe any events to log and where to log them.'''
320
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnConfigurationSet.EventDestinationProperty"]]]], jsii.get(self, "eventDestinations"))
321
+
322
+ @event_destinations.setter
323
+ def event_destinations(
324
+ self,
325
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnConfigurationSet.EventDestinationProperty"]]]],
326
+ ) -> None:
327
+ if __debug__:
328
+ type_hints = typing.get_type_hints(_typecheckingstub__2057faf5fb512456c4bc44fe35430b7693158df99536b671cd30ec082b564004)
329
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
330
+ jsii.set(self, "eventDestinations", value) # pyright: ignore[reportArgumentType]
331
+
332
+ @builtins.property
333
+ @jsii.member(jsii_name="messageFeedbackEnabled")
334
+ def message_feedback_enabled(
335
+ self,
336
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
337
+ '''Set to true to enable feedback for the message.'''
338
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "messageFeedbackEnabled"))
339
+
340
+ @message_feedback_enabled.setter
341
+ def message_feedback_enabled(
342
+ self,
343
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
344
+ ) -> None:
345
+ if __debug__:
346
+ type_hints = typing.get_type_hints(_typecheckingstub__1700a269dd97f8f5889c42356bc0625812eb38d345cd6ab0a47dc65604b9ef5c)
347
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
348
+ jsii.set(self, "messageFeedbackEnabled", value) # pyright: ignore[reportArgumentType]
349
+
350
+ @builtins.property
351
+ @jsii.member(jsii_name="protectConfigurationId")
352
+ def protect_configuration_id(self) -> typing.Optional[builtins.str]:
353
+ '''The unique identifier for the protect configuration.'''
354
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "protectConfigurationId"))
355
+
356
+ @protect_configuration_id.setter
357
+ def protect_configuration_id(self, value: typing.Optional[builtins.str]) -> None:
358
+ if __debug__:
359
+ type_hints = typing.get_type_hints(_typecheckingstub__33df2949530ac82bfead10df97e9fd3007e7ef3723aea6ac4426bd0d08d7c469)
360
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
361
+ jsii.set(self, "protectConfigurationId", value) # pyright: ignore[reportArgumentType]
362
+
363
+ @builtins.property
364
+ @jsii.member(jsii_name="tags")
365
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
366
+ '''An array of key and value pair tags that's associated with the new configuration set.'''
367
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
368
+
369
+ @tags.setter
370
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
371
+ if __debug__:
372
+ type_hints = typing.get_type_hints(_typecheckingstub__7aeb00cd60ff4e73014460e95c4362f82c1d73f0b45e4e453a05465afef34da6)
373
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
374
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
375
+
376
+ @jsii.data_type(
377
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnConfigurationSet.CloudWatchLogsDestinationProperty",
378
+ jsii_struct_bases=[],
379
+ name_mapping={"iam_role_arn": "iamRoleArn", "log_group_arn": "logGroupArn"},
380
+ )
381
+ class CloudWatchLogsDestinationProperty:
382
+ def __init__(
383
+ self,
384
+ *,
385
+ iam_role_arn: builtins.str,
386
+ log_group_arn: builtins.str,
387
+ ) -> None:
388
+ '''Contains the destination configuration to use when publishing message sending events.
389
+
390
+ :param iam_role_arn: The Amazon Resource Name (ARN) of an AWS Identity and Access Management role that is able to write event data to an Amazon CloudWatch destination.
391
+ :param log_group_arn: The name of the Amazon CloudWatch log group that you want to record events in.
392
+
393
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-cloudwatchlogsdestination.html
394
+ :exampleMetadata: fixture=_generated
395
+
396
+ Example::
397
+
398
+ # The code below shows an example of how to instantiate this type.
399
+ # The values are placeholders you should change.
400
+ from aws_cdk import aws_smsvoice as smsvoice
401
+
402
+ cloud_watch_logs_destination_property = smsvoice.CfnConfigurationSet.CloudWatchLogsDestinationProperty(
403
+ iam_role_arn="iamRoleArn",
404
+ log_group_arn="logGroupArn"
405
+ )
406
+ '''
407
+ if __debug__:
408
+ type_hints = typing.get_type_hints(_typecheckingstub__24be119a3ef65de30f1eb147ba1a3eac5f2a81fdd8f8285d98a680dc254f34e1)
409
+ check_type(argname="argument iam_role_arn", value=iam_role_arn, expected_type=type_hints["iam_role_arn"])
410
+ check_type(argname="argument log_group_arn", value=log_group_arn, expected_type=type_hints["log_group_arn"])
411
+ self._values: typing.Dict[builtins.str, typing.Any] = {
412
+ "iam_role_arn": iam_role_arn,
413
+ "log_group_arn": log_group_arn,
414
+ }
415
+
416
+ @builtins.property
417
+ def iam_role_arn(self) -> builtins.str:
418
+ '''The Amazon Resource Name (ARN) of an AWS Identity and Access Management role that is able to write event data to an Amazon CloudWatch destination.
419
+
420
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-cloudwatchlogsdestination.html#cfn-smsvoice-configurationset-cloudwatchlogsdestination-iamrolearn
421
+ '''
422
+ result = self._values.get("iam_role_arn")
423
+ assert result is not None, "Required property 'iam_role_arn' is missing"
424
+ return typing.cast(builtins.str, result)
425
+
426
+ @builtins.property
427
+ def log_group_arn(self) -> builtins.str:
428
+ '''The name of the Amazon CloudWatch log group that you want to record events in.
429
+
430
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-cloudwatchlogsdestination.html#cfn-smsvoice-configurationset-cloudwatchlogsdestination-loggrouparn
431
+ '''
432
+ result = self._values.get("log_group_arn")
433
+ assert result is not None, "Required property 'log_group_arn' is missing"
434
+ return typing.cast(builtins.str, result)
435
+
436
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
437
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
438
+
439
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
440
+ return not (rhs == self)
441
+
442
+ def __repr__(self) -> str:
443
+ return "CloudWatchLogsDestinationProperty(%s)" % ", ".join(
444
+ k + "=" + repr(v) for k, v in self._values.items()
445
+ )
446
+
447
+ @jsii.data_type(
448
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnConfigurationSet.EventDestinationProperty",
449
+ jsii_struct_bases=[],
450
+ name_mapping={
451
+ "enabled": "enabled",
452
+ "event_destination_name": "eventDestinationName",
453
+ "matching_event_types": "matchingEventTypes",
454
+ "cloud_watch_logs_destination": "cloudWatchLogsDestination",
455
+ "kinesis_firehose_destination": "kinesisFirehoseDestination",
456
+ "sns_destination": "snsDestination",
457
+ },
458
+ )
459
+ class EventDestinationProperty:
460
+ def __init__(
461
+ self,
462
+ *,
463
+ enabled: typing.Union[builtins.bool, _IResolvable_da3f097b],
464
+ event_destination_name: builtins.str,
465
+ matching_event_types: typing.Sequence[builtins.str],
466
+ cloud_watch_logs_destination: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnConfigurationSet.CloudWatchLogsDestinationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
467
+ kinesis_firehose_destination: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnConfigurationSet.KinesisFirehoseDestinationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
468
+ sns_destination: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnConfigurationSet.SnsDestinationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
469
+ ) -> None:
470
+ '''Contains information about an event destination.
471
+
472
+ Event destinations are associated with configuration sets, which enable you to publish message sending events to CloudWatch, Firehose, or Amazon SNS.
473
+
474
+ :param enabled: When set to true events will be logged.
475
+ :param event_destination_name: The name of the EventDestination.
476
+ :param matching_event_types: An array of event types that determine which events to log. .. epigraph:: The ``TEXT_SENT`` event type is not supported.
477
+ :param cloud_watch_logs_destination: An object that contains information about an event destination that sends logging events to Amazon CloudWatch logs.
478
+ :param kinesis_firehose_destination: An object that contains information about an event destination for logging to Amazon Data Firehose.
479
+ :param sns_destination: An object that contains information about an event destination that sends logging events to Amazon SNS.
480
+
481
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-eventdestination.html
482
+ :exampleMetadata: fixture=_generated
483
+
484
+ Example::
485
+
486
+ # The code below shows an example of how to instantiate this type.
487
+ # The values are placeholders you should change.
488
+ from aws_cdk import aws_smsvoice as smsvoice
489
+
490
+ event_destination_property = smsvoice.CfnConfigurationSet.EventDestinationProperty(
491
+ enabled=False,
492
+ event_destination_name="eventDestinationName",
493
+ matching_event_types=["matchingEventTypes"],
494
+
495
+ # the properties below are optional
496
+ cloud_watch_logs_destination=smsvoice.CfnConfigurationSet.CloudWatchLogsDestinationProperty(
497
+ iam_role_arn="iamRoleArn",
498
+ log_group_arn="logGroupArn"
499
+ ),
500
+ kinesis_firehose_destination=smsvoice.CfnConfigurationSet.KinesisFirehoseDestinationProperty(
501
+ delivery_stream_arn="deliveryStreamArn",
502
+ iam_role_arn="iamRoleArn"
503
+ ),
504
+ sns_destination=smsvoice.CfnConfigurationSet.SnsDestinationProperty(
505
+ topic_arn="topicArn"
506
+ )
507
+ )
508
+ '''
509
+ if __debug__:
510
+ type_hints = typing.get_type_hints(_typecheckingstub__136edfd45f7d2c0b5dbe4db8977656e8be370d61eec90532e5a6d3d075f0d814)
511
+ check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
512
+ check_type(argname="argument event_destination_name", value=event_destination_name, expected_type=type_hints["event_destination_name"])
513
+ check_type(argname="argument matching_event_types", value=matching_event_types, expected_type=type_hints["matching_event_types"])
514
+ check_type(argname="argument cloud_watch_logs_destination", value=cloud_watch_logs_destination, expected_type=type_hints["cloud_watch_logs_destination"])
515
+ check_type(argname="argument kinesis_firehose_destination", value=kinesis_firehose_destination, expected_type=type_hints["kinesis_firehose_destination"])
516
+ check_type(argname="argument sns_destination", value=sns_destination, expected_type=type_hints["sns_destination"])
517
+ self._values: typing.Dict[builtins.str, typing.Any] = {
518
+ "enabled": enabled,
519
+ "event_destination_name": event_destination_name,
520
+ "matching_event_types": matching_event_types,
521
+ }
522
+ if cloud_watch_logs_destination is not None:
523
+ self._values["cloud_watch_logs_destination"] = cloud_watch_logs_destination
524
+ if kinesis_firehose_destination is not None:
525
+ self._values["kinesis_firehose_destination"] = kinesis_firehose_destination
526
+ if sns_destination is not None:
527
+ self._values["sns_destination"] = sns_destination
528
+
529
+ @builtins.property
530
+ def enabled(self) -> typing.Union[builtins.bool, _IResolvable_da3f097b]:
531
+ '''When set to true events will be logged.
532
+
533
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-eventdestination.html#cfn-smsvoice-configurationset-eventdestination-enabled
534
+ '''
535
+ result = self._values.get("enabled")
536
+ assert result is not None, "Required property 'enabled' is missing"
537
+ return typing.cast(typing.Union[builtins.bool, _IResolvable_da3f097b], result)
538
+
539
+ @builtins.property
540
+ def event_destination_name(self) -> builtins.str:
541
+ '''The name of the EventDestination.
542
+
543
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-eventdestination.html#cfn-smsvoice-configurationset-eventdestination-eventdestinationname
544
+ '''
545
+ result = self._values.get("event_destination_name")
546
+ assert result is not None, "Required property 'event_destination_name' is missing"
547
+ return typing.cast(builtins.str, result)
548
+
549
+ @builtins.property
550
+ def matching_event_types(self) -> typing.List[builtins.str]:
551
+ '''An array of event types that determine which events to log.
552
+
553
+ .. epigraph::
554
+
555
+ The ``TEXT_SENT`` event type is not supported.
556
+
557
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-eventdestination.html#cfn-smsvoice-configurationset-eventdestination-matchingeventtypes
558
+ '''
559
+ result = self._values.get("matching_event_types")
560
+ assert result is not None, "Required property 'matching_event_types' is missing"
561
+ return typing.cast(typing.List[builtins.str], result)
562
+
563
+ @builtins.property
564
+ def cloud_watch_logs_destination(
565
+ self,
566
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnConfigurationSet.CloudWatchLogsDestinationProperty"]]:
567
+ '''An object that contains information about an event destination that sends logging events to Amazon CloudWatch logs.
568
+
569
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-eventdestination.html#cfn-smsvoice-configurationset-eventdestination-cloudwatchlogsdestination
570
+ '''
571
+ result = self._values.get("cloud_watch_logs_destination")
572
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnConfigurationSet.CloudWatchLogsDestinationProperty"]], result)
573
+
574
+ @builtins.property
575
+ def kinesis_firehose_destination(
576
+ self,
577
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnConfigurationSet.KinesisFirehoseDestinationProperty"]]:
578
+ '''An object that contains information about an event destination for logging to Amazon Data Firehose.
579
+
580
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-eventdestination.html#cfn-smsvoice-configurationset-eventdestination-kinesisfirehosedestination
581
+ '''
582
+ result = self._values.get("kinesis_firehose_destination")
583
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnConfigurationSet.KinesisFirehoseDestinationProperty"]], result)
584
+
585
+ @builtins.property
586
+ def sns_destination(
587
+ self,
588
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnConfigurationSet.SnsDestinationProperty"]]:
589
+ '''An object that contains information about an event destination that sends logging events to Amazon SNS.
590
+
591
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-eventdestination.html#cfn-smsvoice-configurationset-eventdestination-snsdestination
592
+ '''
593
+ result = self._values.get("sns_destination")
594
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnConfigurationSet.SnsDestinationProperty"]], result)
595
+
596
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
597
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
598
+
599
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
600
+ return not (rhs == self)
601
+
602
+ def __repr__(self) -> str:
603
+ return "EventDestinationProperty(%s)" % ", ".join(
604
+ k + "=" + repr(v) for k, v in self._values.items()
605
+ )
606
+
607
+ @jsii.data_type(
608
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnConfigurationSet.KinesisFirehoseDestinationProperty",
609
+ jsii_struct_bases=[],
610
+ name_mapping={
611
+ "delivery_stream_arn": "deliveryStreamArn",
612
+ "iam_role_arn": "iamRoleArn",
613
+ },
614
+ )
615
+ class KinesisFirehoseDestinationProperty:
616
+ def __init__(
617
+ self,
618
+ *,
619
+ delivery_stream_arn: builtins.str,
620
+ iam_role_arn: builtins.str,
621
+ ) -> None:
622
+ '''Contains the delivery stream Amazon Resource Name (ARN), and the ARN of the AWS Identity and Access Management (IAM) role associated with a Firehose event destination.
623
+
624
+ Event destinations, such as Firehose, are associated with configuration sets, which enable you to publish message sending events.
625
+
626
+ :param delivery_stream_arn: The Amazon Resource Name (ARN) of the delivery stream.
627
+ :param iam_role_arn: The ARN of an AWS Identity and Access Management role that is able to write event data to an Amazon Data Firehose destination.
628
+
629
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-kinesisfirehosedestination.html
630
+ :exampleMetadata: fixture=_generated
631
+
632
+ Example::
633
+
634
+ # The code below shows an example of how to instantiate this type.
635
+ # The values are placeholders you should change.
636
+ from aws_cdk import aws_smsvoice as smsvoice
637
+
638
+ kinesis_firehose_destination_property = smsvoice.CfnConfigurationSet.KinesisFirehoseDestinationProperty(
639
+ delivery_stream_arn="deliveryStreamArn",
640
+ iam_role_arn="iamRoleArn"
641
+ )
642
+ '''
643
+ if __debug__:
644
+ type_hints = typing.get_type_hints(_typecheckingstub__58b63fc19b4a1791f46cfa02c2314f7bd36e3c4e54eceb6eb28919afd11059d7)
645
+ check_type(argname="argument delivery_stream_arn", value=delivery_stream_arn, expected_type=type_hints["delivery_stream_arn"])
646
+ check_type(argname="argument iam_role_arn", value=iam_role_arn, expected_type=type_hints["iam_role_arn"])
647
+ self._values: typing.Dict[builtins.str, typing.Any] = {
648
+ "delivery_stream_arn": delivery_stream_arn,
649
+ "iam_role_arn": iam_role_arn,
650
+ }
651
+
652
+ @builtins.property
653
+ def delivery_stream_arn(self) -> builtins.str:
654
+ '''The Amazon Resource Name (ARN) of the delivery stream.
655
+
656
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-kinesisfirehosedestination.html#cfn-smsvoice-configurationset-kinesisfirehosedestination-deliverystreamarn
657
+ '''
658
+ result = self._values.get("delivery_stream_arn")
659
+ assert result is not None, "Required property 'delivery_stream_arn' is missing"
660
+ return typing.cast(builtins.str, result)
661
+
662
+ @builtins.property
663
+ def iam_role_arn(self) -> builtins.str:
664
+ '''The ARN of an AWS Identity and Access Management role that is able to write event data to an Amazon Data Firehose destination.
665
+
666
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-kinesisfirehosedestination.html#cfn-smsvoice-configurationset-kinesisfirehosedestination-iamrolearn
667
+ '''
668
+ result = self._values.get("iam_role_arn")
669
+ assert result is not None, "Required property 'iam_role_arn' is missing"
670
+ return typing.cast(builtins.str, result)
671
+
672
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
673
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
674
+
675
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
676
+ return not (rhs == self)
677
+
678
+ def __repr__(self) -> str:
679
+ return "KinesisFirehoseDestinationProperty(%s)" % ", ".join(
680
+ k + "=" + repr(v) for k, v in self._values.items()
681
+ )
682
+
683
+ @jsii.data_type(
684
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnConfigurationSet.SnsDestinationProperty",
685
+ jsii_struct_bases=[],
686
+ name_mapping={"topic_arn": "topicArn"},
687
+ )
688
+ class SnsDestinationProperty:
689
+ def __init__(self, *, topic_arn: builtins.str) -> None:
690
+ '''An object that defines an Amazon SNS destination for events.
691
+
692
+ You can use Amazon SNS to send notification when certain events occur.
693
+
694
+ :param topic_arn: The Amazon Resource Name (ARN) of the Amazon SNS topic that you want to publish events to.
695
+
696
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-snsdestination.html
697
+ :exampleMetadata: fixture=_generated
698
+
699
+ Example::
700
+
701
+ # The code below shows an example of how to instantiate this type.
702
+ # The values are placeholders you should change.
703
+ from aws_cdk import aws_smsvoice as smsvoice
704
+
705
+ sns_destination_property = smsvoice.CfnConfigurationSet.SnsDestinationProperty(
706
+ topic_arn="topicArn"
707
+ )
708
+ '''
709
+ if __debug__:
710
+ type_hints = typing.get_type_hints(_typecheckingstub__e91819987879ee4dec183c370f8f16a53dffc5fa977336312072fb1db406fdaa)
711
+ check_type(argname="argument topic_arn", value=topic_arn, expected_type=type_hints["topic_arn"])
712
+ self._values: typing.Dict[builtins.str, typing.Any] = {
713
+ "topic_arn": topic_arn,
714
+ }
715
+
716
+ @builtins.property
717
+ def topic_arn(self) -> builtins.str:
718
+ '''The Amazon Resource Name (ARN) of the Amazon SNS topic that you want to publish events to.
719
+
720
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-snsdestination.html#cfn-smsvoice-configurationset-snsdestination-topicarn
721
+ '''
722
+ result = self._values.get("topic_arn")
723
+ assert result is not None, "Required property 'topic_arn' is missing"
724
+ return typing.cast(builtins.str, result)
725
+
726
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
727
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
728
+
729
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
730
+ return not (rhs == self)
731
+
732
+ def __repr__(self) -> str:
733
+ return "SnsDestinationProperty(%s)" % ", ".join(
734
+ k + "=" + repr(v) for k, v in self._values.items()
735
+ )
736
+
737
+
738
+ @jsii.data_type(
739
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnConfigurationSetProps",
740
+ jsii_struct_bases=[],
741
+ name_mapping={
742
+ "configuration_set_name": "configurationSetName",
743
+ "default_sender_id": "defaultSenderId",
744
+ "event_destinations": "eventDestinations",
745
+ "message_feedback_enabled": "messageFeedbackEnabled",
746
+ "protect_configuration_id": "protectConfigurationId",
747
+ "tags": "tags",
748
+ },
749
+ )
750
+ class CfnConfigurationSetProps:
751
+ def __init__(
752
+ self,
753
+ *,
754
+ configuration_set_name: typing.Optional[builtins.str] = None,
755
+ default_sender_id: typing.Optional[builtins.str] = None,
756
+ event_destinations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnConfigurationSet.EventDestinationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
757
+ message_feedback_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
758
+ protect_configuration_id: typing.Optional[builtins.str] = None,
759
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
760
+ ) -> None:
761
+ '''Properties for defining a ``CfnConfigurationSet``.
762
+
763
+ :param configuration_set_name: The name of the ConfigurationSet.
764
+ :param default_sender_id: The default sender ID used by the ConfigurationSet.
765
+ :param event_destinations: An array of EventDestination objects that describe any events to log and where to log them.
766
+ :param message_feedback_enabled: Set to true to enable feedback for the message.
767
+ :param protect_configuration_id: The unique identifier for the protect configuration.
768
+ :param tags: An array of key and value pair tags that's associated with the new configuration set.
769
+
770
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html
771
+ :exampleMetadata: fixture=_generated
772
+
773
+ Example::
774
+
775
+ # The code below shows an example of how to instantiate this type.
776
+ # The values are placeholders you should change.
777
+ from aws_cdk import aws_smsvoice as smsvoice
778
+
779
+ cfn_configuration_set_props = smsvoice.CfnConfigurationSetProps(
780
+ configuration_set_name="configurationSetName",
781
+ default_sender_id="defaultSenderId",
782
+ event_destinations=[smsvoice.CfnConfigurationSet.EventDestinationProperty(
783
+ enabled=False,
784
+ event_destination_name="eventDestinationName",
785
+ matching_event_types=["matchingEventTypes"],
786
+
787
+ # the properties below are optional
788
+ cloud_watch_logs_destination=smsvoice.CfnConfigurationSet.CloudWatchLogsDestinationProperty(
789
+ iam_role_arn="iamRoleArn",
790
+ log_group_arn="logGroupArn"
791
+ ),
792
+ kinesis_firehose_destination=smsvoice.CfnConfigurationSet.KinesisFirehoseDestinationProperty(
793
+ delivery_stream_arn="deliveryStreamArn",
794
+ iam_role_arn="iamRoleArn"
795
+ ),
796
+ sns_destination=smsvoice.CfnConfigurationSet.SnsDestinationProperty(
797
+ topic_arn="topicArn"
798
+ )
799
+ )],
800
+ message_feedback_enabled=False,
801
+ protect_configuration_id="protectConfigurationId",
802
+ tags=[CfnTag(
803
+ key="key",
804
+ value="value"
805
+ )]
806
+ )
807
+ '''
808
+ if __debug__:
809
+ type_hints = typing.get_type_hints(_typecheckingstub__259d6b5c44c463276b6d9a529504479acbd49524ef7bd8a0d1d913ca2d1a58a3)
810
+ check_type(argname="argument configuration_set_name", value=configuration_set_name, expected_type=type_hints["configuration_set_name"])
811
+ check_type(argname="argument default_sender_id", value=default_sender_id, expected_type=type_hints["default_sender_id"])
812
+ check_type(argname="argument event_destinations", value=event_destinations, expected_type=type_hints["event_destinations"])
813
+ check_type(argname="argument message_feedback_enabled", value=message_feedback_enabled, expected_type=type_hints["message_feedback_enabled"])
814
+ check_type(argname="argument protect_configuration_id", value=protect_configuration_id, expected_type=type_hints["protect_configuration_id"])
815
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
816
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
817
+ if configuration_set_name is not None:
818
+ self._values["configuration_set_name"] = configuration_set_name
819
+ if default_sender_id is not None:
820
+ self._values["default_sender_id"] = default_sender_id
821
+ if event_destinations is not None:
822
+ self._values["event_destinations"] = event_destinations
823
+ if message_feedback_enabled is not None:
824
+ self._values["message_feedback_enabled"] = message_feedback_enabled
825
+ if protect_configuration_id is not None:
826
+ self._values["protect_configuration_id"] = protect_configuration_id
827
+ if tags is not None:
828
+ self._values["tags"] = tags
829
+
830
+ @builtins.property
831
+ def configuration_set_name(self) -> typing.Optional[builtins.str]:
832
+ '''The name of the ConfigurationSet.
833
+
834
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html#cfn-smsvoice-configurationset-configurationsetname
835
+ '''
836
+ result = self._values.get("configuration_set_name")
837
+ return typing.cast(typing.Optional[builtins.str], result)
838
+
839
+ @builtins.property
840
+ def default_sender_id(self) -> typing.Optional[builtins.str]:
841
+ '''The default sender ID used by the ConfigurationSet.
842
+
843
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html#cfn-smsvoice-configurationset-defaultsenderid
844
+ '''
845
+ result = self._values.get("default_sender_id")
846
+ return typing.cast(typing.Optional[builtins.str], result)
847
+
848
+ @builtins.property
849
+ def event_destinations(
850
+ self,
851
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnConfigurationSet.EventDestinationProperty]]]]:
852
+ '''An array of EventDestination objects that describe any events to log and where to log them.
853
+
854
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html#cfn-smsvoice-configurationset-eventdestinations
855
+ '''
856
+ result = self._values.get("event_destinations")
857
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnConfigurationSet.EventDestinationProperty]]]], result)
858
+
859
+ @builtins.property
860
+ def message_feedback_enabled(
861
+ self,
862
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
863
+ '''Set to true to enable feedback for the message.
864
+
865
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html#cfn-smsvoice-configurationset-messagefeedbackenabled
866
+ '''
867
+ result = self._values.get("message_feedback_enabled")
868
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
869
+
870
+ @builtins.property
871
+ def protect_configuration_id(self) -> typing.Optional[builtins.str]:
872
+ '''The unique identifier for the protect configuration.
873
+
874
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html#cfn-smsvoice-configurationset-protectconfigurationid
875
+ '''
876
+ result = self._values.get("protect_configuration_id")
877
+ return typing.cast(typing.Optional[builtins.str], result)
878
+
879
+ @builtins.property
880
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
881
+ '''An array of key and value pair tags that's associated with the new configuration set.
882
+
883
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html#cfn-smsvoice-configurationset-tags
884
+ '''
885
+ result = self._values.get("tags")
886
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
887
+
888
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
889
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
890
+
891
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
892
+ return not (rhs == self)
893
+
894
+ def __repr__(self) -> str:
895
+ return "CfnConfigurationSetProps(%s)" % ", ".join(
896
+ k + "=" + repr(v) for k, v in self._values.items()
897
+ )
898
+
899
+
900
+ @jsii.implements(_IInspectable_c2943556, _IOptOutListRef_1d44f5f8, _ITaggableV2_4e6798f8)
901
+ class CfnOptOutList(
902
+ _CfnResource_9df397a6,
903
+ metaclass=jsii.JSIIMeta,
904
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnOptOutList",
905
+ ):
906
+ '''Creates a new opt-out list.
907
+
908
+ If the opt-out list name already exists, an error is returned.
909
+
910
+ An opt-out list is a list of phone numbers that are opted out, meaning you can't send SMS or voice messages to them. If end user replies with the keyword "STOP," an entry for the phone number is added to the opt-out list. In addition to STOP, your recipients can use any supported opt-out keyword, such as CANCEL or OPTOUT. For a list of supported opt-out keywords, see `SMS opt out <https://docs.aws.amazon.com/sms-voice/latest/userguide/opt-out-list-keywords.html>`_ in the End User Messaging User Guide.
911
+
912
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-optoutlist.html
913
+ :cloudformationResource: AWS::SMSVOICE::OptOutList
914
+ :exampleMetadata: fixture=_generated
915
+
916
+ Example::
917
+
918
+ # The code below shows an example of how to instantiate this type.
919
+ # The values are placeholders you should change.
920
+ from aws_cdk import aws_smsvoice as smsvoice
921
+
922
+ cfn_opt_out_list = smsvoice.CfnOptOutList(self, "MyCfnOptOutList",
923
+ opt_out_list_name="optOutListName",
924
+ tags=[CfnTag(
925
+ key="key",
926
+ value="value"
927
+ )]
928
+ )
929
+ '''
930
+
931
+ def __init__(
932
+ self,
933
+ scope: _constructs_77d1e7e8.Construct,
934
+ id: builtins.str,
935
+ *,
936
+ opt_out_list_name: typing.Optional[builtins.str] = None,
937
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
938
+ ) -> None:
939
+ '''Create a new ``AWS::SMSVOICE::OptOutList``.
940
+
941
+ :param scope: Scope in which this resource is defined.
942
+ :param id: Construct identifier for this resource (unique in its scope).
943
+ :param opt_out_list_name: The name of the OptOutList.
944
+ :param tags: An array of tags (key and value pairs) to associate with the new OptOutList.
945
+ '''
946
+ if __debug__:
947
+ type_hints = typing.get_type_hints(_typecheckingstub__ea38a41fadafddeabec02441f39c67873aa2e47aa1a61c10bd392305083031cc)
948
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
949
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
950
+ props = CfnOptOutListProps(opt_out_list_name=opt_out_list_name, tags=tags)
951
+
952
+ jsii.create(self.__class__, self, [scope, id, props])
953
+
954
+ @jsii.member(jsii_name="fromOptOutListArn")
955
+ @builtins.classmethod
956
+ def from_opt_out_list_arn(
957
+ cls,
958
+ scope: _constructs_77d1e7e8.Construct,
959
+ id: builtins.str,
960
+ arn: builtins.str,
961
+ ) -> _IOptOutListRef_1d44f5f8:
962
+ '''Creates a new IOptOutListRef from an ARN.
963
+
964
+ :param scope: -
965
+ :param id: -
966
+ :param arn: -
967
+ '''
968
+ if __debug__:
969
+ type_hints = typing.get_type_hints(_typecheckingstub__124a7f8a72ebe536ef9b7171326a8506b93040fca900f1f72574cfb0fcf6615a)
970
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
971
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
972
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
973
+ return typing.cast(_IOptOutListRef_1d44f5f8, jsii.sinvoke(cls, "fromOptOutListArn", [scope, id, arn]))
974
+
975
+ @jsii.member(jsii_name="fromOptOutListName")
976
+ @builtins.classmethod
977
+ def from_opt_out_list_name(
978
+ cls,
979
+ scope: _constructs_77d1e7e8.Construct,
980
+ id: builtins.str,
981
+ opt_out_list_name: builtins.str,
982
+ ) -> _IOptOutListRef_1d44f5f8:
983
+ '''Creates a new IOptOutListRef from a optOutListName.
984
+
985
+ :param scope: -
986
+ :param id: -
987
+ :param opt_out_list_name: -
988
+ '''
989
+ if __debug__:
990
+ type_hints = typing.get_type_hints(_typecheckingstub__622c503ac8ae593c9642ed89cd09ede46c174901d31e6df008c2338639830854)
991
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
992
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
993
+ check_type(argname="argument opt_out_list_name", value=opt_out_list_name, expected_type=type_hints["opt_out_list_name"])
994
+ return typing.cast(_IOptOutListRef_1d44f5f8, jsii.sinvoke(cls, "fromOptOutListName", [scope, id, opt_out_list_name]))
995
+
996
+ @jsii.member(jsii_name="inspect")
997
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
998
+ '''Examines the CloudFormation resource and discloses attributes.
999
+
1000
+ :param inspector: tree inspector to collect and process attributes.
1001
+ '''
1002
+ if __debug__:
1003
+ type_hints = typing.get_type_hints(_typecheckingstub__5630a2d0159373226ec89552708a8f793a351be99f553dcc655511073c80a14d)
1004
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
1005
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
1006
+
1007
+ @jsii.member(jsii_name="renderProperties")
1008
+ def _render_properties(
1009
+ self,
1010
+ props: typing.Mapping[builtins.str, typing.Any],
1011
+ ) -> typing.Mapping[builtins.str, typing.Any]:
1012
+ '''
1013
+ :param props: -
1014
+ '''
1015
+ if __debug__:
1016
+ type_hints = typing.get_type_hints(_typecheckingstub__b2c7567ba9b82c785acaef7a9a31d670d66d6324b4250270a7b78caf5a610f3f)
1017
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
1018
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
1019
+
1020
+ @jsii.python.classproperty
1021
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
1022
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
1023
+ '''The CloudFormation resource type name for this resource class.'''
1024
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
1025
+
1026
+ @builtins.property
1027
+ @jsii.member(jsii_name="attrArn")
1028
+ def attr_arn(self) -> builtins.str:
1029
+ '''The Amazon Resource Name (ARN) for the ``OptOutList`` .
1030
+
1031
+ :cloudformationAttribute: Arn
1032
+ '''
1033
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
1034
+
1035
+ @builtins.property
1036
+ @jsii.member(jsii_name="cdkTagManager")
1037
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
1038
+ '''Tag Manager which manages the tags for this resource.'''
1039
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
1040
+
1041
+ @builtins.property
1042
+ @jsii.member(jsii_name="cfnProperties")
1043
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1044
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1045
+
1046
+ @builtins.property
1047
+ @jsii.member(jsii_name="optOutListRef")
1048
+ def opt_out_list_ref(self) -> _OptOutListReference_e0a13902:
1049
+ '''A reference to a OptOutList resource.'''
1050
+ return typing.cast(_OptOutListReference_e0a13902, jsii.get(self, "optOutListRef"))
1051
+
1052
+ @builtins.property
1053
+ @jsii.member(jsii_name="optOutListName")
1054
+ def opt_out_list_name(self) -> typing.Optional[builtins.str]:
1055
+ '''The name of the OptOutList.'''
1056
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "optOutListName"))
1057
+
1058
+ @opt_out_list_name.setter
1059
+ def opt_out_list_name(self, value: typing.Optional[builtins.str]) -> None:
1060
+ if __debug__:
1061
+ type_hints = typing.get_type_hints(_typecheckingstub__6977ae7d56495d20d799b91baa1ff8181a6a95f332ee17575071e0fb1eb4e0c5)
1062
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1063
+ jsii.set(self, "optOutListName", value) # pyright: ignore[reportArgumentType]
1064
+
1065
+ @builtins.property
1066
+ @jsii.member(jsii_name="tags")
1067
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
1068
+ '''An array of tags (key and value pairs) to associate with the new OptOutList.'''
1069
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
1070
+
1071
+ @tags.setter
1072
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
1073
+ if __debug__:
1074
+ type_hints = typing.get_type_hints(_typecheckingstub__35f7671a5586fbcab6fa7a0f53bc16a7df7f5b446336ced45e9ee9df5e1ba997)
1075
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1076
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
1077
+
1078
+
1079
+ @jsii.data_type(
1080
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnOptOutListProps",
1081
+ jsii_struct_bases=[],
1082
+ name_mapping={"opt_out_list_name": "optOutListName", "tags": "tags"},
1083
+ )
1084
+ class CfnOptOutListProps:
1085
+ def __init__(
1086
+ self,
1087
+ *,
1088
+ opt_out_list_name: typing.Optional[builtins.str] = None,
1089
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1090
+ ) -> None:
1091
+ '''Properties for defining a ``CfnOptOutList``.
1092
+
1093
+ :param opt_out_list_name: The name of the OptOutList.
1094
+ :param tags: An array of tags (key and value pairs) to associate with the new OptOutList.
1095
+
1096
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-optoutlist.html
1097
+ :exampleMetadata: fixture=_generated
1098
+
1099
+ Example::
1100
+
1101
+ # The code below shows an example of how to instantiate this type.
1102
+ # The values are placeholders you should change.
1103
+ from aws_cdk import aws_smsvoice as smsvoice
1104
+
1105
+ cfn_opt_out_list_props = smsvoice.CfnOptOutListProps(
1106
+ opt_out_list_name="optOutListName",
1107
+ tags=[CfnTag(
1108
+ key="key",
1109
+ value="value"
1110
+ )]
1111
+ )
1112
+ '''
1113
+ if __debug__:
1114
+ type_hints = typing.get_type_hints(_typecheckingstub__05e14e4fd94b66cfd8dd4c43fcb451f3af9853476744da6a554feeac6fa9de3e)
1115
+ check_type(argname="argument opt_out_list_name", value=opt_out_list_name, expected_type=type_hints["opt_out_list_name"])
1116
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
1117
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1118
+ if opt_out_list_name is not None:
1119
+ self._values["opt_out_list_name"] = opt_out_list_name
1120
+ if tags is not None:
1121
+ self._values["tags"] = tags
1122
+
1123
+ @builtins.property
1124
+ def opt_out_list_name(self) -> typing.Optional[builtins.str]:
1125
+ '''The name of the OptOutList.
1126
+
1127
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-optoutlist.html#cfn-smsvoice-optoutlist-optoutlistname
1128
+ '''
1129
+ result = self._values.get("opt_out_list_name")
1130
+ return typing.cast(typing.Optional[builtins.str], result)
1131
+
1132
+ @builtins.property
1133
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
1134
+ '''An array of tags (key and value pairs) to associate with the new OptOutList.
1135
+
1136
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-optoutlist.html#cfn-smsvoice-optoutlist-tags
1137
+ '''
1138
+ result = self._values.get("tags")
1139
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
1140
+
1141
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1142
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1143
+
1144
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1145
+ return not (rhs == self)
1146
+
1147
+ def __repr__(self) -> str:
1148
+ return "CfnOptOutListProps(%s)" % ", ".join(
1149
+ k + "=" + repr(v) for k, v in self._values.items()
1150
+ )
1151
+
1152
+
1153
+ @jsii.implements(_IInspectable_c2943556, _IPhoneNumberRef_7c6c9ced, _ITaggableV2_4e6798f8)
1154
+ class CfnPhoneNumber(
1155
+ _CfnResource_9df397a6,
1156
+ metaclass=jsii.JSIIMeta,
1157
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnPhoneNumber",
1158
+ ):
1159
+ '''Request an origination phone number for use in your account.
1160
+
1161
+ For more information on phone number request see `Request a phone number <https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request.html>`_ in the *End User Messaging User Guide* .
1162
+ .. epigraph::
1163
+
1164
+ Registering phone numbers is not supported by AWS CloudFormation . You can import phone numbers and sender IDs that are automatically provisioned at registration.
1165
+
1166
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html
1167
+ :cloudformationResource: AWS::SMSVOICE::PhoneNumber
1168
+ :exampleMetadata: fixture=_generated
1169
+
1170
+ Example::
1171
+
1172
+ # The code below shows an example of how to instantiate this type.
1173
+ # The values are placeholders you should change.
1174
+ from aws_cdk import aws_smsvoice as smsvoice
1175
+
1176
+ cfn_phone_number = smsvoice.CfnPhoneNumber(self, "MyCfnPhoneNumber",
1177
+ iso_country_code="isoCountryCode",
1178
+ mandatory_keywords=smsvoice.CfnPhoneNumber.MandatoryKeywordsProperty(
1179
+ help=smsvoice.CfnPhoneNumber.MandatoryKeywordProperty(
1180
+ message="message"
1181
+ ),
1182
+ stop=smsvoice.CfnPhoneNumber.MandatoryKeywordProperty(
1183
+ message="message"
1184
+ )
1185
+ ),
1186
+ number_capabilities=["numberCapabilities"],
1187
+ number_type="numberType",
1188
+
1189
+ # the properties below are optional
1190
+ deletion_protection_enabled=False,
1191
+ optional_keywords=[smsvoice.CfnPhoneNumber.OptionalKeywordProperty(
1192
+ action="action",
1193
+ keyword="keyword",
1194
+ message="message"
1195
+ )],
1196
+ opt_out_list_name="optOutListName",
1197
+ self_managed_opt_outs_enabled=False,
1198
+ tags=[CfnTag(
1199
+ key="key",
1200
+ value="value"
1201
+ )],
1202
+ two_way=smsvoice.CfnPhoneNumber.TwoWayProperty(
1203
+ enabled=False,
1204
+
1205
+ # the properties below are optional
1206
+ channel_arn="channelArn",
1207
+ channel_role="channelRole"
1208
+ )
1209
+ )
1210
+ '''
1211
+
1212
+ def __init__(
1213
+ self,
1214
+ scope: _constructs_77d1e7e8.Construct,
1215
+ id: builtins.str,
1216
+ *,
1217
+ iso_country_code: builtins.str,
1218
+ mandatory_keywords: typing.Union[_IResolvable_da3f097b, typing.Union["CfnPhoneNumber.MandatoryKeywordsProperty", typing.Dict[builtins.str, typing.Any]]],
1219
+ number_capabilities: typing.Sequence[builtins.str],
1220
+ number_type: builtins.str,
1221
+ deletion_protection_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1222
+ optional_keywords: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnPhoneNumber.OptionalKeywordProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
1223
+ opt_out_list_name: typing.Optional[builtins.str] = None,
1224
+ self_managed_opt_outs_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1225
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1226
+ two_way: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnPhoneNumber.TwoWayProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1227
+ ) -> None:
1228
+ '''Create a new ``AWS::SMSVOICE::PhoneNumber``.
1229
+
1230
+ :param scope: Scope in which this resource is defined.
1231
+ :param id: Construct identifier for this resource (unique in its scope).
1232
+ :param iso_country_code: The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.
1233
+ :param mandatory_keywords: Creates or updates a ``MandatoryKeyword`` configuration on an origination phone number For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
1234
+ :param number_capabilities: Indicates if the phone number will be used for text messages, voice messages, or both.
1235
+ :param number_type: The type of phone number to request. .. epigraph:: The ``ShortCode`` number type is not supported in AWS CloudFormation .
1236
+ :param deletion_protection_enabled: By default this is set to false. When set to true the phone number can't be deleted.
1237
+ :param optional_keywords: A keyword is a word that you can search for on a particular phone number or pool. It is also a specific word or phrase that an end user can send to your number to elicit a response, such as an informational message or a special offer. When your number receives a message that begins with a keyword, End User Messaging responds with a customizable message. Optional keywords are differentiated from mandatory keywords. For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
1238
+ :param opt_out_list_name: The name of the OptOutList associated with the phone number.
1239
+ :param self_managed_opt_outs_enabled: When set to false and an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, End User Messaging automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out request. For more information see `Self-managed opt-outs <https://docs.aws.amazon.com/sms-voice/latest/userguide/opt-out-list-self-managed.html>`_
1240
+ :param tags: An array of tags (key and value pairs) to associate with the requested phone number.
1241
+ :param two_way: Describes the two-way SMS configuration for a phone number. For more information, see `Two-way SMS messaging <https://docs.aws.amazon.com/sms-voice/latest/userguide/two-way-sms.html>`_ in the End User Messaging User Guide.
1242
+ '''
1243
+ if __debug__:
1244
+ type_hints = typing.get_type_hints(_typecheckingstub__32252c96682ee51fe1d1c58cae6b6350f48d46d59b1d32994ea66401975b964d)
1245
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1246
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1247
+ props = CfnPhoneNumberProps(
1248
+ iso_country_code=iso_country_code,
1249
+ mandatory_keywords=mandatory_keywords,
1250
+ number_capabilities=number_capabilities,
1251
+ number_type=number_type,
1252
+ deletion_protection_enabled=deletion_protection_enabled,
1253
+ optional_keywords=optional_keywords,
1254
+ opt_out_list_name=opt_out_list_name,
1255
+ self_managed_opt_outs_enabled=self_managed_opt_outs_enabled,
1256
+ tags=tags,
1257
+ two_way=two_way,
1258
+ )
1259
+
1260
+ jsii.create(self.__class__, self, [scope, id, props])
1261
+
1262
+ @jsii.member(jsii_name="fromPhoneNumberArn")
1263
+ @builtins.classmethod
1264
+ def from_phone_number_arn(
1265
+ cls,
1266
+ scope: _constructs_77d1e7e8.Construct,
1267
+ id: builtins.str,
1268
+ arn: builtins.str,
1269
+ ) -> _IPhoneNumberRef_7c6c9ced:
1270
+ '''Creates a new IPhoneNumberRef from an ARN.
1271
+
1272
+ :param scope: -
1273
+ :param id: -
1274
+ :param arn: -
1275
+ '''
1276
+ if __debug__:
1277
+ type_hints = typing.get_type_hints(_typecheckingstub__5dfc18d9f79d711e366b295b9bc0e833aa10566992f8cba470cdf07bb5e180e7)
1278
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1279
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1280
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
1281
+ return typing.cast(_IPhoneNumberRef_7c6c9ced, jsii.sinvoke(cls, "fromPhoneNumberArn", [scope, id, arn]))
1282
+
1283
+ @jsii.member(jsii_name="fromPhoneNumberId")
1284
+ @builtins.classmethod
1285
+ def from_phone_number_id(
1286
+ cls,
1287
+ scope: _constructs_77d1e7e8.Construct,
1288
+ id: builtins.str,
1289
+ phone_number_id: builtins.str,
1290
+ ) -> _IPhoneNumberRef_7c6c9ced:
1291
+ '''Creates a new IPhoneNumberRef from a phoneNumberId.
1292
+
1293
+ :param scope: -
1294
+ :param id: -
1295
+ :param phone_number_id: -
1296
+ '''
1297
+ if __debug__:
1298
+ type_hints = typing.get_type_hints(_typecheckingstub__1f23d5045dfaa44877e6d3c4cb6efd3e609dbb687fa2b056b6a62d4ef75a4f62)
1299
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1300
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1301
+ check_type(argname="argument phone_number_id", value=phone_number_id, expected_type=type_hints["phone_number_id"])
1302
+ return typing.cast(_IPhoneNumberRef_7c6c9ced, jsii.sinvoke(cls, "fromPhoneNumberId", [scope, id, phone_number_id]))
1303
+
1304
+ @jsii.member(jsii_name="inspect")
1305
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
1306
+ '''Examines the CloudFormation resource and discloses attributes.
1307
+
1308
+ :param inspector: tree inspector to collect and process attributes.
1309
+ '''
1310
+ if __debug__:
1311
+ type_hints = typing.get_type_hints(_typecheckingstub__3790bd7e3f6d7b04591d9b408e55b3ef461fabc7e864e5952080929d0ba44a15)
1312
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
1313
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
1314
+
1315
+ @jsii.member(jsii_name="renderProperties")
1316
+ def _render_properties(
1317
+ self,
1318
+ props: typing.Mapping[builtins.str, typing.Any],
1319
+ ) -> typing.Mapping[builtins.str, typing.Any]:
1320
+ '''
1321
+ :param props: -
1322
+ '''
1323
+ if __debug__:
1324
+ type_hints = typing.get_type_hints(_typecheckingstub__40e9d59fae1d01e88a2819b8b9178800aed746c4dce8d3f2966540129b00b0a1)
1325
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
1326
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
1327
+
1328
+ @jsii.python.classproperty
1329
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
1330
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
1331
+ '''The CloudFormation resource type name for this resource class.'''
1332
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
1333
+
1334
+ @builtins.property
1335
+ @jsii.member(jsii_name="attrArn")
1336
+ def attr_arn(self) -> builtins.str:
1337
+ '''The ``PhoneNumber`` 's Amazon Resource Name (ARN).
1338
+
1339
+ :cloudformationAttribute: Arn
1340
+ '''
1341
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
1342
+
1343
+ @builtins.property
1344
+ @jsii.member(jsii_name="attrPhoneNumber")
1345
+ def attr_phone_number(self) -> builtins.str:
1346
+ '''The phone number in E.164 format.
1347
+
1348
+ :cloudformationAttribute: PhoneNumber
1349
+ '''
1350
+ return typing.cast(builtins.str, jsii.get(self, "attrPhoneNumber"))
1351
+
1352
+ @builtins.property
1353
+ @jsii.member(jsii_name="attrPhoneNumberId")
1354
+ def attr_phone_number_id(self) -> builtins.str:
1355
+ '''The unique identifier for the phone number.
1356
+
1357
+ :cloudformationAttribute: PhoneNumberId
1358
+ '''
1359
+ return typing.cast(builtins.str, jsii.get(self, "attrPhoneNumberId"))
1360
+
1361
+ @builtins.property
1362
+ @jsii.member(jsii_name="cdkTagManager")
1363
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
1364
+ '''Tag Manager which manages the tags for this resource.'''
1365
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
1366
+
1367
+ @builtins.property
1368
+ @jsii.member(jsii_name="cfnProperties")
1369
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1370
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1371
+
1372
+ @builtins.property
1373
+ @jsii.member(jsii_name="phoneNumberRef")
1374
+ def phone_number_ref(self) -> _PhoneNumberReference_c338f1b9:
1375
+ '''A reference to a PhoneNumber resource.'''
1376
+ return typing.cast(_PhoneNumberReference_c338f1b9, jsii.get(self, "phoneNumberRef"))
1377
+
1378
+ @builtins.property
1379
+ @jsii.member(jsii_name="isoCountryCode")
1380
+ def iso_country_code(self) -> builtins.str:
1381
+ '''The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.'''
1382
+ return typing.cast(builtins.str, jsii.get(self, "isoCountryCode"))
1383
+
1384
+ @iso_country_code.setter
1385
+ def iso_country_code(self, value: builtins.str) -> None:
1386
+ if __debug__:
1387
+ type_hints = typing.get_type_hints(_typecheckingstub__c3daefae7d41f3fa1c90cfb87146384791ee02c03a5d3a0408e3e5de6616d27f)
1388
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1389
+ jsii.set(self, "isoCountryCode", value) # pyright: ignore[reportArgumentType]
1390
+
1391
+ @builtins.property
1392
+ @jsii.member(jsii_name="mandatoryKeywords")
1393
+ def mandatory_keywords(
1394
+ self,
1395
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnPhoneNumber.MandatoryKeywordsProperty"]:
1396
+ '''Creates or updates a ``MandatoryKeyword`` configuration on an origination phone number For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.'''
1397
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnPhoneNumber.MandatoryKeywordsProperty"], jsii.get(self, "mandatoryKeywords"))
1398
+
1399
+ @mandatory_keywords.setter
1400
+ def mandatory_keywords(
1401
+ self,
1402
+ value: typing.Union[_IResolvable_da3f097b, "CfnPhoneNumber.MandatoryKeywordsProperty"],
1403
+ ) -> None:
1404
+ if __debug__:
1405
+ type_hints = typing.get_type_hints(_typecheckingstub__6ad292d2f30a2e7553a75e0648343c13f6d37e2c991e6ccfd9770c6cea89b4e3)
1406
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1407
+ jsii.set(self, "mandatoryKeywords", value) # pyright: ignore[reportArgumentType]
1408
+
1409
+ @builtins.property
1410
+ @jsii.member(jsii_name="numberCapabilities")
1411
+ def number_capabilities(self) -> typing.List[builtins.str]:
1412
+ '''Indicates if the phone number will be used for text messages, voice messages, or both.'''
1413
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "numberCapabilities"))
1414
+
1415
+ @number_capabilities.setter
1416
+ def number_capabilities(self, value: typing.List[builtins.str]) -> None:
1417
+ if __debug__:
1418
+ type_hints = typing.get_type_hints(_typecheckingstub__0e9985ae1545495747fd53a2ed838fb3cbdfd61c9c5bbd83714551bb40074671)
1419
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1420
+ jsii.set(self, "numberCapabilities", value) # pyright: ignore[reportArgumentType]
1421
+
1422
+ @builtins.property
1423
+ @jsii.member(jsii_name="numberType")
1424
+ def number_type(self) -> builtins.str:
1425
+ '''The type of phone number to request.'''
1426
+ return typing.cast(builtins.str, jsii.get(self, "numberType"))
1427
+
1428
+ @number_type.setter
1429
+ def number_type(self, value: builtins.str) -> None:
1430
+ if __debug__:
1431
+ type_hints = typing.get_type_hints(_typecheckingstub__20e8aed3a5492034d382aada9cca5055d1a5f90debfb0ada0b8ecbd5f6a1f4a9)
1432
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1433
+ jsii.set(self, "numberType", value) # pyright: ignore[reportArgumentType]
1434
+
1435
+ @builtins.property
1436
+ @jsii.member(jsii_name="deletionProtectionEnabled")
1437
+ def deletion_protection_enabled(
1438
+ self,
1439
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
1440
+ '''By default this is set to false.'''
1441
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "deletionProtectionEnabled"))
1442
+
1443
+ @deletion_protection_enabled.setter
1444
+ def deletion_protection_enabled(
1445
+ self,
1446
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
1447
+ ) -> None:
1448
+ if __debug__:
1449
+ type_hints = typing.get_type_hints(_typecheckingstub__4ce7c946e28467484eeaef46ab5c378bc4d7cf5fabda1308e46f327ee70c4e86)
1450
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1451
+ jsii.set(self, "deletionProtectionEnabled", value) # pyright: ignore[reportArgumentType]
1452
+
1453
+ @builtins.property
1454
+ @jsii.member(jsii_name="optionalKeywords")
1455
+ def optional_keywords(
1456
+ self,
1457
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnPhoneNumber.OptionalKeywordProperty"]]]]:
1458
+ '''A keyword is a word that you can search for on a particular phone number or pool.'''
1459
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnPhoneNumber.OptionalKeywordProperty"]]]], jsii.get(self, "optionalKeywords"))
1460
+
1461
+ @optional_keywords.setter
1462
+ def optional_keywords(
1463
+ self,
1464
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnPhoneNumber.OptionalKeywordProperty"]]]],
1465
+ ) -> None:
1466
+ if __debug__:
1467
+ type_hints = typing.get_type_hints(_typecheckingstub__2775cd03531ef2f5f4bb38b83c1e7e323c18a0def6ec05b2c4d012ace1ee4d30)
1468
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1469
+ jsii.set(self, "optionalKeywords", value) # pyright: ignore[reportArgumentType]
1470
+
1471
+ @builtins.property
1472
+ @jsii.member(jsii_name="optOutListName")
1473
+ def opt_out_list_name(self) -> typing.Optional[builtins.str]:
1474
+ '''The name of the OptOutList associated with the phone number.'''
1475
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "optOutListName"))
1476
+
1477
+ @opt_out_list_name.setter
1478
+ def opt_out_list_name(self, value: typing.Optional[builtins.str]) -> None:
1479
+ if __debug__:
1480
+ type_hints = typing.get_type_hints(_typecheckingstub__56421d9c352121c21655ab5960b103facff7e83cb1168aa10daabb27bea523e0)
1481
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1482
+ jsii.set(self, "optOutListName", value) # pyright: ignore[reportArgumentType]
1483
+
1484
+ @builtins.property
1485
+ @jsii.member(jsii_name="selfManagedOptOutsEnabled")
1486
+ def self_managed_opt_outs_enabled(
1487
+ self,
1488
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
1489
+ '''When set to false and an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, End User Messaging automatically replies with a customizable message and adds the end recipient to the OptOutList.'''
1490
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "selfManagedOptOutsEnabled"))
1491
+
1492
+ @self_managed_opt_outs_enabled.setter
1493
+ def self_managed_opt_outs_enabled(
1494
+ self,
1495
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
1496
+ ) -> None:
1497
+ if __debug__:
1498
+ type_hints = typing.get_type_hints(_typecheckingstub__04bf768fe622599912b3a021c396ad4d893de46bcad374eb200ccebe72a3dfd4)
1499
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1500
+ jsii.set(self, "selfManagedOptOutsEnabled", value) # pyright: ignore[reportArgumentType]
1501
+
1502
+ @builtins.property
1503
+ @jsii.member(jsii_name="tags")
1504
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
1505
+ '''An array of tags (key and value pairs) to associate with the requested phone number.'''
1506
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
1507
+
1508
+ @tags.setter
1509
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
1510
+ if __debug__:
1511
+ type_hints = typing.get_type_hints(_typecheckingstub__a29c798a3abd770efeb946661639d64644ab5a22b5c349f873ed430dd74b78c6)
1512
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1513
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
1514
+
1515
+ @builtins.property
1516
+ @jsii.member(jsii_name="twoWay")
1517
+ def two_way(
1518
+ self,
1519
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnPhoneNumber.TwoWayProperty"]]:
1520
+ '''Describes the two-way SMS configuration for a phone number.'''
1521
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnPhoneNumber.TwoWayProperty"]], jsii.get(self, "twoWay"))
1522
+
1523
+ @two_way.setter
1524
+ def two_way(
1525
+ self,
1526
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnPhoneNumber.TwoWayProperty"]],
1527
+ ) -> None:
1528
+ if __debug__:
1529
+ type_hints = typing.get_type_hints(_typecheckingstub__9d4007552b2a5c50d580a9b5ece55fcd38284b10f7943be06e671add40a07f4c)
1530
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1531
+ jsii.set(self, "twoWay", value) # pyright: ignore[reportArgumentType]
1532
+
1533
+ @jsii.data_type(
1534
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnPhoneNumber.MandatoryKeywordProperty",
1535
+ jsii_struct_bases=[],
1536
+ name_mapping={"message": "message"},
1537
+ )
1538
+ class MandatoryKeywordProperty:
1539
+ def __init__(self, *, message: builtins.str) -> None:
1540
+ '''The keywords ``HELP`` and ``STOP`` are mandatory keywords that each phone number must have.
1541
+
1542
+ For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
1543
+
1544
+ :param message: The message associated with the keyword.
1545
+
1546
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-mandatorykeyword.html
1547
+ :exampleMetadata: fixture=_generated
1548
+
1549
+ Example::
1550
+
1551
+ # The code below shows an example of how to instantiate this type.
1552
+ # The values are placeholders you should change.
1553
+ from aws_cdk import aws_smsvoice as smsvoice
1554
+
1555
+ mandatory_keyword_property = smsvoice.CfnPhoneNumber.MandatoryKeywordProperty(
1556
+ message="message"
1557
+ )
1558
+ '''
1559
+ if __debug__:
1560
+ type_hints = typing.get_type_hints(_typecheckingstub__a5e074639964bff18f1f8daf8a4ed0ce8129ab17f01eb32a431c9c79a86d1255)
1561
+ check_type(argname="argument message", value=message, expected_type=type_hints["message"])
1562
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1563
+ "message": message,
1564
+ }
1565
+
1566
+ @builtins.property
1567
+ def message(self) -> builtins.str:
1568
+ '''The message associated with the keyword.
1569
+
1570
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-mandatorykeyword.html#cfn-smsvoice-phonenumber-mandatorykeyword-message
1571
+ '''
1572
+ result = self._values.get("message")
1573
+ assert result is not None, "Required property 'message' is missing"
1574
+ return typing.cast(builtins.str, result)
1575
+
1576
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1577
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1578
+
1579
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1580
+ return not (rhs == self)
1581
+
1582
+ def __repr__(self) -> str:
1583
+ return "MandatoryKeywordProperty(%s)" % ", ".join(
1584
+ k + "=" + repr(v) for k, v in self._values.items()
1585
+ )
1586
+
1587
+ @jsii.data_type(
1588
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnPhoneNumber.MandatoryKeywordsProperty",
1589
+ jsii_struct_bases=[],
1590
+ name_mapping={"help": "help", "stop": "stop"},
1591
+ )
1592
+ class MandatoryKeywordsProperty:
1593
+ def __init__(
1594
+ self,
1595
+ *,
1596
+ help: typing.Union[_IResolvable_da3f097b, typing.Union["CfnPhoneNumber.MandatoryKeywordProperty", typing.Dict[builtins.str, typing.Any]]],
1597
+ stop: typing.Union[_IResolvable_da3f097b, typing.Union["CfnPhoneNumber.MandatoryKeywordProperty", typing.Dict[builtins.str, typing.Any]]],
1598
+ ) -> None:
1599
+ '''The keywords ``HELP`` and ``STOP`` are mandatory keywords that each phone number must have.
1600
+
1601
+ For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
1602
+
1603
+ :param help: Specifies the ``HELP`` keyword that customers use to obtain customer support for this phone number. For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
1604
+ :param stop: Specifies the ``STOP`` keyword that customers use to opt out of receiving messages from this phone number. For more information, see `Required opt-out keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords-required.html>`_ in the End User Messaging User Guide.
1605
+
1606
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-mandatorykeywords.html
1607
+ :exampleMetadata: fixture=_generated
1608
+
1609
+ Example::
1610
+
1611
+ # The code below shows an example of how to instantiate this type.
1612
+ # The values are placeholders you should change.
1613
+ from aws_cdk import aws_smsvoice as smsvoice
1614
+
1615
+ mandatory_keywords_property = smsvoice.CfnPhoneNumber.MandatoryKeywordsProperty(
1616
+ help=smsvoice.CfnPhoneNumber.MandatoryKeywordProperty(
1617
+ message="message"
1618
+ ),
1619
+ stop=smsvoice.CfnPhoneNumber.MandatoryKeywordProperty(
1620
+ message="message"
1621
+ )
1622
+ )
1623
+ '''
1624
+ if __debug__:
1625
+ type_hints = typing.get_type_hints(_typecheckingstub__fa76e2295a1af1a67472d918d805b489816187f735ec76ae1339b5a83284d30d)
1626
+ check_type(argname="argument help", value=help, expected_type=type_hints["help"])
1627
+ check_type(argname="argument stop", value=stop, expected_type=type_hints["stop"])
1628
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1629
+ "help": help,
1630
+ "stop": stop,
1631
+ }
1632
+
1633
+ @builtins.property
1634
+ def help(
1635
+ self,
1636
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnPhoneNumber.MandatoryKeywordProperty"]:
1637
+ '''Specifies the ``HELP`` keyword that customers use to obtain customer support for this phone number.
1638
+
1639
+ For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
1640
+
1641
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-mandatorykeywords.html#cfn-smsvoice-phonenumber-mandatorykeywords-help
1642
+ '''
1643
+ result = self._values.get("help")
1644
+ assert result is not None, "Required property 'help' is missing"
1645
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnPhoneNumber.MandatoryKeywordProperty"], result)
1646
+
1647
+ @builtins.property
1648
+ def stop(
1649
+ self,
1650
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnPhoneNumber.MandatoryKeywordProperty"]:
1651
+ '''Specifies the ``STOP`` keyword that customers use to opt out of receiving messages from this phone number.
1652
+
1653
+ For more information, see `Required opt-out keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords-required.html>`_ in the End User Messaging User Guide.
1654
+
1655
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-mandatorykeywords.html#cfn-smsvoice-phonenumber-mandatorykeywords-stop
1656
+ '''
1657
+ result = self._values.get("stop")
1658
+ assert result is not None, "Required property 'stop' is missing"
1659
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnPhoneNumber.MandatoryKeywordProperty"], result)
1660
+
1661
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1662
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1663
+
1664
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1665
+ return not (rhs == self)
1666
+
1667
+ def __repr__(self) -> str:
1668
+ return "MandatoryKeywordsProperty(%s)" % ", ".join(
1669
+ k + "=" + repr(v) for k, v in self._values.items()
1670
+ )
1671
+
1672
+ @jsii.data_type(
1673
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnPhoneNumber.OptionalKeywordProperty",
1674
+ jsii_struct_bases=[],
1675
+ name_mapping={"action": "action", "keyword": "keyword", "message": "message"},
1676
+ )
1677
+ class OptionalKeywordProperty:
1678
+ def __init__(
1679
+ self,
1680
+ *,
1681
+ action: builtins.str,
1682
+ keyword: builtins.str,
1683
+ message: builtins.str,
1684
+ ) -> None:
1685
+ '''The ``OptionalKeyword`` configuration.
1686
+
1687
+ For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
1688
+
1689
+ :param action: The action to perform when the keyword is used.
1690
+ :param keyword: The new keyword to add.
1691
+ :param message: The message associated with the keyword.
1692
+
1693
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-optionalkeyword.html
1694
+ :exampleMetadata: fixture=_generated
1695
+
1696
+ Example::
1697
+
1698
+ # The code below shows an example of how to instantiate this type.
1699
+ # The values are placeholders you should change.
1700
+ from aws_cdk import aws_smsvoice as smsvoice
1701
+
1702
+ optional_keyword_property = smsvoice.CfnPhoneNumber.OptionalKeywordProperty(
1703
+ action="action",
1704
+ keyword="keyword",
1705
+ message="message"
1706
+ )
1707
+ '''
1708
+ if __debug__:
1709
+ type_hints = typing.get_type_hints(_typecheckingstub__9808c2e33055bb3bc02e4746aeecf872f1d29195fd50764e4cf01373eb6e2164)
1710
+ check_type(argname="argument action", value=action, expected_type=type_hints["action"])
1711
+ check_type(argname="argument keyword", value=keyword, expected_type=type_hints["keyword"])
1712
+ check_type(argname="argument message", value=message, expected_type=type_hints["message"])
1713
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1714
+ "action": action,
1715
+ "keyword": keyword,
1716
+ "message": message,
1717
+ }
1718
+
1719
+ @builtins.property
1720
+ def action(self) -> builtins.str:
1721
+ '''The action to perform when the keyword is used.
1722
+
1723
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-optionalkeyword.html#cfn-smsvoice-phonenumber-optionalkeyword-action
1724
+ '''
1725
+ result = self._values.get("action")
1726
+ assert result is not None, "Required property 'action' is missing"
1727
+ return typing.cast(builtins.str, result)
1728
+
1729
+ @builtins.property
1730
+ def keyword(self) -> builtins.str:
1731
+ '''The new keyword to add.
1732
+
1733
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-optionalkeyword.html#cfn-smsvoice-phonenumber-optionalkeyword-keyword
1734
+ '''
1735
+ result = self._values.get("keyword")
1736
+ assert result is not None, "Required property 'keyword' is missing"
1737
+ return typing.cast(builtins.str, result)
1738
+
1739
+ @builtins.property
1740
+ def message(self) -> builtins.str:
1741
+ '''The message associated with the keyword.
1742
+
1743
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-optionalkeyword.html#cfn-smsvoice-phonenumber-optionalkeyword-message
1744
+ '''
1745
+ result = self._values.get("message")
1746
+ assert result is not None, "Required property 'message' is missing"
1747
+ return typing.cast(builtins.str, result)
1748
+
1749
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1750
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1751
+
1752
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1753
+ return not (rhs == self)
1754
+
1755
+ def __repr__(self) -> str:
1756
+ return "OptionalKeywordProperty(%s)" % ", ".join(
1757
+ k + "=" + repr(v) for k, v in self._values.items()
1758
+ )
1759
+
1760
+ @jsii.data_type(
1761
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnPhoneNumber.TwoWayProperty",
1762
+ jsii_struct_bases=[],
1763
+ name_mapping={
1764
+ "enabled": "enabled",
1765
+ "channel_arn": "channelArn",
1766
+ "channel_role": "channelRole",
1767
+ },
1768
+ )
1769
+ class TwoWayProperty:
1770
+ def __init__(
1771
+ self,
1772
+ *,
1773
+ enabled: typing.Union[builtins.bool, _IResolvable_da3f097b],
1774
+ channel_arn: typing.Optional[builtins.str] = None,
1775
+ channel_role: typing.Optional[builtins.str] = None,
1776
+ ) -> None:
1777
+ '''The phone number's two-way SMS configuration object.
1778
+
1779
+ :param enabled: By default this is set to false. When set to true you can receive incoming text messages from your end recipients using the TwoWayChannelArn.
1780
+ :param channel_arn: The Amazon Resource Name (ARN) of the two way channel.
1781
+ :param channel_role: An optional IAM Role Arn for a service to assume, to be able to post inbound SMS messages.
1782
+
1783
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-twoway.html
1784
+ :exampleMetadata: fixture=_generated
1785
+
1786
+ Example::
1787
+
1788
+ # The code below shows an example of how to instantiate this type.
1789
+ # The values are placeholders you should change.
1790
+ from aws_cdk import aws_smsvoice as smsvoice
1791
+
1792
+ two_way_property = smsvoice.CfnPhoneNumber.TwoWayProperty(
1793
+ enabled=False,
1794
+
1795
+ # the properties below are optional
1796
+ channel_arn="channelArn",
1797
+ channel_role="channelRole"
1798
+ )
1799
+ '''
1800
+ if __debug__:
1801
+ type_hints = typing.get_type_hints(_typecheckingstub__67ff2e896f2988f660e4ee2793f64f4dc62d209cbf013b2753d3b0347a66ee8c)
1802
+ check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
1803
+ check_type(argname="argument channel_arn", value=channel_arn, expected_type=type_hints["channel_arn"])
1804
+ check_type(argname="argument channel_role", value=channel_role, expected_type=type_hints["channel_role"])
1805
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1806
+ "enabled": enabled,
1807
+ }
1808
+ if channel_arn is not None:
1809
+ self._values["channel_arn"] = channel_arn
1810
+ if channel_role is not None:
1811
+ self._values["channel_role"] = channel_role
1812
+
1813
+ @builtins.property
1814
+ def enabled(self) -> typing.Union[builtins.bool, _IResolvable_da3f097b]:
1815
+ '''By default this is set to false.
1816
+
1817
+ When set to true you can receive incoming text messages from your end recipients using the TwoWayChannelArn.
1818
+
1819
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-twoway.html#cfn-smsvoice-phonenumber-twoway-enabled
1820
+ '''
1821
+ result = self._values.get("enabled")
1822
+ assert result is not None, "Required property 'enabled' is missing"
1823
+ return typing.cast(typing.Union[builtins.bool, _IResolvable_da3f097b], result)
1824
+
1825
+ @builtins.property
1826
+ def channel_arn(self) -> typing.Optional[builtins.str]:
1827
+ '''The Amazon Resource Name (ARN) of the two way channel.
1828
+
1829
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-twoway.html#cfn-smsvoice-phonenumber-twoway-channelarn
1830
+ '''
1831
+ result = self._values.get("channel_arn")
1832
+ return typing.cast(typing.Optional[builtins.str], result)
1833
+
1834
+ @builtins.property
1835
+ def channel_role(self) -> typing.Optional[builtins.str]:
1836
+ '''An optional IAM Role Arn for a service to assume, to be able to post inbound SMS messages.
1837
+
1838
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-twoway.html#cfn-smsvoice-phonenumber-twoway-channelrole
1839
+ '''
1840
+ result = self._values.get("channel_role")
1841
+ return typing.cast(typing.Optional[builtins.str], result)
1842
+
1843
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1844
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1845
+
1846
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1847
+ return not (rhs == self)
1848
+
1849
+ def __repr__(self) -> str:
1850
+ return "TwoWayProperty(%s)" % ", ".join(
1851
+ k + "=" + repr(v) for k, v in self._values.items()
1852
+ )
1853
+
1854
+
1855
+ @jsii.data_type(
1856
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnPhoneNumberProps",
1857
+ jsii_struct_bases=[],
1858
+ name_mapping={
1859
+ "iso_country_code": "isoCountryCode",
1860
+ "mandatory_keywords": "mandatoryKeywords",
1861
+ "number_capabilities": "numberCapabilities",
1862
+ "number_type": "numberType",
1863
+ "deletion_protection_enabled": "deletionProtectionEnabled",
1864
+ "optional_keywords": "optionalKeywords",
1865
+ "opt_out_list_name": "optOutListName",
1866
+ "self_managed_opt_outs_enabled": "selfManagedOptOutsEnabled",
1867
+ "tags": "tags",
1868
+ "two_way": "twoWay",
1869
+ },
1870
+ )
1871
+ class CfnPhoneNumberProps:
1872
+ def __init__(
1873
+ self,
1874
+ *,
1875
+ iso_country_code: builtins.str,
1876
+ mandatory_keywords: typing.Union[_IResolvable_da3f097b, typing.Union[CfnPhoneNumber.MandatoryKeywordsProperty, typing.Dict[builtins.str, typing.Any]]],
1877
+ number_capabilities: typing.Sequence[builtins.str],
1878
+ number_type: builtins.str,
1879
+ deletion_protection_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1880
+ optional_keywords: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnPhoneNumber.OptionalKeywordProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
1881
+ opt_out_list_name: typing.Optional[builtins.str] = None,
1882
+ self_managed_opt_outs_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1883
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1884
+ two_way: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnPhoneNumber.TwoWayProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1885
+ ) -> None:
1886
+ '''Properties for defining a ``CfnPhoneNumber``.
1887
+
1888
+ :param iso_country_code: The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.
1889
+ :param mandatory_keywords: Creates or updates a ``MandatoryKeyword`` configuration on an origination phone number For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
1890
+ :param number_capabilities: Indicates if the phone number will be used for text messages, voice messages, or both.
1891
+ :param number_type: The type of phone number to request. .. epigraph:: The ``ShortCode`` number type is not supported in AWS CloudFormation .
1892
+ :param deletion_protection_enabled: By default this is set to false. When set to true the phone number can't be deleted.
1893
+ :param optional_keywords: A keyword is a word that you can search for on a particular phone number or pool. It is also a specific word or phrase that an end user can send to your number to elicit a response, such as an informational message or a special offer. When your number receives a message that begins with a keyword, End User Messaging responds with a customizable message. Optional keywords are differentiated from mandatory keywords. For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
1894
+ :param opt_out_list_name: The name of the OptOutList associated with the phone number.
1895
+ :param self_managed_opt_outs_enabled: When set to false and an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, End User Messaging automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out request. For more information see `Self-managed opt-outs <https://docs.aws.amazon.com/sms-voice/latest/userguide/opt-out-list-self-managed.html>`_
1896
+ :param tags: An array of tags (key and value pairs) to associate with the requested phone number.
1897
+ :param two_way: Describes the two-way SMS configuration for a phone number. For more information, see `Two-way SMS messaging <https://docs.aws.amazon.com/sms-voice/latest/userguide/two-way-sms.html>`_ in the End User Messaging User Guide.
1898
+
1899
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html
1900
+ :exampleMetadata: fixture=_generated
1901
+
1902
+ Example::
1903
+
1904
+ # The code below shows an example of how to instantiate this type.
1905
+ # The values are placeholders you should change.
1906
+ from aws_cdk import aws_smsvoice as smsvoice
1907
+
1908
+ cfn_phone_number_props = smsvoice.CfnPhoneNumberProps(
1909
+ iso_country_code="isoCountryCode",
1910
+ mandatory_keywords=smsvoice.CfnPhoneNumber.MandatoryKeywordsProperty(
1911
+ help=smsvoice.CfnPhoneNumber.MandatoryKeywordProperty(
1912
+ message="message"
1913
+ ),
1914
+ stop=smsvoice.CfnPhoneNumber.MandatoryKeywordProperty(
1915
+ message="message"
1916
+ )
1917
+ ),
1918
+ number_capabilities=["numberCapabilities"],
1919
+ number_type="numberType",
1920
+
1921
+ # the properties below are optional
1922
+ deletion_protection_enabled=False,
1923
+ optional_keywords=[smsvoice.CfnPhoneNumber.OptionalKeywordProperty(
1924
+ action="action",
1925
+ keyword="keyword",
1926
+ message="message"
1927
+ )],
1928
+ opt_out_list_name="optOutListName",
1929
+ self_managed_opt_outs_enabled=False,
1930
+ tags=[CfnTag(
1931
+ key="key",
1932
+ value="value"
1933
+ )],
1934
+ two_way=smsvoice.CfnPhoneNumber.TwoWayProperty(
1935
+ enabled=False,
1936
+
1937
+ # the properties below are optional
1938
+ channel_arn="channelArn",
1939
+ channel_role="channelRole"
1940
+ )
1941
+ )
1942
+ '''
1943
+ if __debug__:
1944
+ type_hints = typing.get_type_hints(_typecheckingstub__b70b72342e4afd37b29a5920f6cf7f0c27b8afc2a3cf6820cba50a42c515dbed)
1945
+ check_type(argname="argument iso_country_code", value=iso_country_code, expected_type=type_hints["iso_country_code"])
1946
+ check_type(argname="argument mandatory_keywords", value=mandatory_keywords, expected_type=type_hints["mandatory_keywords"])
1947
+ check_type(argname="argument number_capabilities", value=number_capabilities, expected_type=type_hints["number_capabilities"])
1948
+ check_type(argname="argument number_type", value=number_type, expected_type=type_hints["number_type"])
1949
+ check_type(argname="argument deletion_protection_enabled", value=deletion_protection_enabled, expected_type=type_hints["deletion_protection_enabled"])
1950
+ check_type(argname="argument optional_keywords", value=optional_keywords, expected_type=type_hints["optional_keywords"])
1951
+ check_type(argname="argument opt_out_list_name", value=opt_out_list_name, expected_type=type_hints["opt_out_list_name"])
1952
+ check_type(argname="argument self_managed_opt_outs_enabled", value=self_managed_opt_outs_enabled, expected_type=type_hints["self_managed_opt_outs_enabled"])
1953
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
1954
+ check_type(argname="argument two_way", value=two_way, expected_type=type_hints["two_way"])
1955
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1956
+ "iso_country_code": iso_country_code,
1957
+ "mandatory_keywords": mandatory_keywords,
1958
+ "number_capabilities": number_capabilities,
1959
+ "number_type": number_type,
1960
+ }
1961
+ if deletion_protection_enabled is not None:
1962
+ self._values["deletion_protection_enabled"] = deletion_protection_enabled
1963
+ if optional_keywords is not None:
1964
+ self._values["optional_keywords"] = optional_keywords
1965
+ if opt_out_list_name is not None:
1966
+ self._values["opt_out_list_name"] = opt_out_list_name
1967
+ if self_managed_opt_outs_enabled is not None:
1968
+ self._values["self_managed_opt_outs_enabled"] = self_managed_opt_outs_enabled
1969
+ if tags is not None:
1970
+ self._values["tags"] = tags
1971
+ if two_way is not None:
1972
+ self._values["two_way"] = two_way
1973
+
1974
+ @builtins.property
1975
+ def iso_country_code(self) -> builtins.str:
1976
+ '''The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.
1977
+
1978
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-isocountrycode
1979
+ '''
1980
+ result = self._values.get("iso_country_code")
1981
+ assert result is not None, "Required property 'iso_country_code' is missing"
1982
+ return typing.cast(builtins.str, result)
1983
+
1984
+ @builtins.property
1985
+ def mandatory_keywords(
1986
+ self,
1987
+ ) -> typing.Union[_IResolvable_da3f097b, CfnPhoneNumber.MandatoryKeywordsProperty]:
1988
+ '''Creates or updates a ``MandatoryKeyword`` configuration on an origination phone number For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
1989
+
1990
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-mandatorykeywords
1991
+ '''
1992
+ result = self._values.get("mandatory_keywords")
1993
+ assert result is not None, "Required property 'mandatory_keywords' is missing"
1994
+ return typing.cast(typing.Union[_IResolvable_da3f097b, CfnPhoneNumber.MandatoryKeywordsProperty], result)
1995
+
1996
+ @builtins.property
1997
+ def number_capabilities(self) -> typing.List[builtins.str]:
1998
+ '''Indicates if the phone number will be used for text messages, voice messages, or both.
1999
+
2000
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-numbercapabilities
2001
+ '''
2002
+ result = self._values.get("number_capabilities")
2003
+ assert result is not None, "Required property 'number_capabilities' is missing"
2004
+ return typing.cast(typing.List[builtins.str], result)
2005
+
2006
+ @builtins.property
2007
+ def number_type(self) -> builtins.str:
2008
+ '''The type of phone number to request.
2009
+
2010
+ .. epigraph::
2011
+
2012
+ The ``ShortCode`` number type is not supported in AWS CloudFormation .
2013
+
2014
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-numbertype
2015
+ '''
2016
+ result = self._values.get("number_type")
2017
+ assert result is not None, "Required property 'number_type' is missing"
2018
+ return typing.cast(builtins.str, result)
2019
+
2020
+ @builtins.property
2021
+ def deletion_protection_enabled(
2022
+ self,
2023
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
2024
+ '''By default this is set to false.
2025
+
2026
+ When set to true the phone number can't be deleted.
2027
+
2028
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-deletionprotectionenabled
2029
+ '''
2030
+ result = self._values.get("deletion_protection_enabled")
2031
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
2032
+
2033
+ @builtins.property
2034
+ def optional_keywords(
2035
+ self,
2036
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnPhoneNumber.OptionalKeywordProperty]]]]:
2037
+ '''A keyword is a word that you can search for on a particular phone number or pool.
2038
+
2039
+ It is also a specific word or phrase that an end user can send to your number to elicit a response, such as an informational message or a special offer. When your number receives a message that begins with a keyword, End User Messaging responds with a customizable message. Optional keywords are differentiated from mandatory keywords. For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
2040
+
2041
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-optionalkeywords
2042
+ '''
2043
+ result = self._values.get("optional_keywords")
2044
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnPhoneNumber.OptionalKeywordProperty]]]], result)
2045
+
2046
+ @builtins.property
2047
+ def opt_out_list_name(self) -> typing.Optional[builtins.str]:
2048
+ '''The name of the OptOutList associated with the phone number.
2049
+
2050
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-optoutlistname
2051
+ '''
2052
+ result = self._values.get("opt_out_list_name")
2053
+ return typing.cast(typing.Optional[builtins.str], result)
2054
+
2055
+ @builtins.property
2056
+ def self_managed_opt_outs_enabled(
2057
+ self,
2058
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
2059
+ '''When set to false and an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, End User Messaging automatically replies with a customizable message and adds the end recipient to the OptOutList.
2060
+
2061
+ When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out request. For more information see `Self-managed opt-outs <https://docs.aws.amazon.com/sms-voice/latest/userguide/opt-out-list-self-managed.html>`_
2062
+
2063
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-selfmanagedoptoutsenabled
2064
+ '''
2065
+ result = self._values.get("self_managed_opt_outs_enabled")
2066
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
2067
+
2068
+ @builtins.property
2069
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
2070
+ '''An array of tags (key and value pairs) to associate with the requested phone number.
2071
+
2072
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-tags
2073
+ '''
2074
+ result = self._values.get("tags")
2075
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
2076
+
2077
+ @builtins.property
2078
+ def two_way(
2079
+ self,
2080
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnPhoneNumber.TwoWayProperty]]:
2081
+ '''Describes the two-way SMS configuration for a phone number.
2082
+
2083
+ For more information, see `Two-way SMS messaging <https://docs.aws.amazon.com/sms-voice/latest/userguide/two-way-sms.html>`_ in the End User Messaging User Guide.
2084
+
2085
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-twoway
2086
+ '''
2087
+ result = self._values.get("two_way")
2088
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnPhoneNumber.TwoWayProperty]], result)
2089
+
2090
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2091
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2092
+
2093
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2094
+ return not (rhs == self)
2095
+
2096
+ def __repr__(self) -> str:
2097
+ return "CfnPhoneNumberProps(%s)" % ", ".join(
2098
+ k + "=" + repr(v) for k, v in self._values.items()
2099
+ )
2100
+
2101
+
2102
+ @jsii.implements(_IInspectable_c2943556, _IPoolRef_897848fa, _ITaggableV2_4e6798f8)
2103
+ class CfnPool(
2104
+ _CfnResource_9df397a6,
2105
+ metaclass=jsii.JSIIMeta,
2106
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnPool",
2107
+ ):
2108
+ '''Creates a new pool and associates the specified origination identity to the pool.
2109
+
2110
+ A pool can include one or more phone numbers and SenderIds that are associated with your AWS account.
2111
+
2112
+ The new pool inherits its configuration from the specified origination identity. This includes keywords, message type, opt-out list, two-way configuration, and self-managed opt-out configuration. Deletion protection isn't inherited from the origination identity and defaults to false.
2113
+
2114
+ If the origination identity is a phone number and is already associated with another pool, an error is returned. A sender ID can be associated with multiple pools.
2115
+
2116
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html
2117
+ :cloudformationResource: AWS::SMSVOICE::Pool
2118
+ :exampleMetadata: fixture=_generated
2119
+
2120
+ Example::
2121
+
2122
+ # The code below shows an example of how to instantiate this type.
2123
+ # The values are placeholders you should change.
2124
+ from aws_cdk import aws_smsvoice as smsvoice
2125
+
2126
+ cfn_pool = smsvoice.CfnPool(self, "MyCfnPool",
2127
+ mandatory_keywords=smsvoice.CfnPool.MandatoryKeywordsProperty(
2128
+ help=smsvoice.CfnPool.MandatoryKeywordProperty(
2129
+ message="message"
2130
+ ),
2131
+ stop=smsvoice.CfnPool.MandatoryKeywordProperty(
2132
+ message="message"
2133
+ )
2134
+ ),
2135
+ origination_identities=["originationIdentities"],
2136
+
2137
+ # the properties below are optional
2138
+ deletion_protection_enabled=False,
2139
+ optional_keywords=[smsvoice.CfnPool.OptionalKeywordProperty(
2140
+ action="action",
2141
+ keyword="keyword",
2142
+ message="message"
2143
+ )],
2144
+ opt_out_list_name="optOutListName",
2145
+ self_managed_opt_outs_enabled=False,
2146
+ shared_routes_enabled=False,
2147
+ tags=[CfnTag(
2148
+ key="key",
2149
+ value="value"
2150
+ )],
2151
+ two_way=smsvoice.CfnPool.TwoWayProperty(
2152
+ enabled=False,
2153
+
2154
+ # the properties below are optional
2155
+ channel_arn="channelArn",
2156
+ channel_role="channelRole"
2157
+ )
2158
+ )
2159
+ '''
2160
+
2161
+ def __init__(
2162
+ self,
2163
+ scope: _constructs_77d1e7e8.Construct,
2164
+ id: builtins.str,
2165
+ *,
2166
+ mandatory_keywords: typing.Union[_IResolvable_da3f097b, typing.Union["CfnPool.MandatoryKeywordsProperty", typing.Dict[builtins.str, typing.Any]]],
2167
+ origination_identities: typing.Sequence[builtins.str],
2168
+ deletion_protection_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
2169
+ optional_keywords: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnPool.OptionalKeywordProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
2170
+ opt_out_list_name: typing.Optional[builtins.str] = None,
2171
+ self_managed_opt_outs_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
2172
+ shared_routes_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
2173
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
2174
+ two_way: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnPool.TwoWayProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2175
+ ) -> None:
2176
+ '''Create a new ``AWS::SMSVOICE::Pool``.
2177
+
2178
+ :param scope: Scope in which this resource is defined.
2179
+ :param id: Construct identifier for this resource (unique in its scope).
2180
+ :param mandatory_keywords: Creates or updates the pool's ``MandatoryKeyword`` configuration. For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
2181
+ :param origination_identities: The list of origination identities to apply to the pool, either ``PhoneNumberArn`` or ``SenderIdArn`` . For more information, see `Registrations <https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html>`_ in the End User Messaging User Guide. .. epigraph:: If you are using a shared End User Messaging resource then you must use the full Amazon Resource Name (ARN).
2182
+ :param deletion_protection_enabled: When set to true the pool can't be deleted.
2183
+ :param optional_keywords: Specifies any optional keywords to associate with the pool. For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
2184
+ :param opt_out_list_name: The name of the OptOutList associated with the pool.
2185
+ :param self_managed_opt_outs_enabled: When set to false, an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, End User Messaging automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. For more information see `Self-managed opt-outs <https://docs.aws.amazon.com//pinpoint/latest/userguide/settings-sms-managing.html#settings-account-sms-self-managed-opt-out>`_
2186
+ :param shared_routes_enabled: Allows you to enable shared routes on your pool. By default, this is set to ``False`` . If you set this value to ``True`` , your messages are sent using phone numbers or sender IDs (depending on the country) that are shared with other users. In some countries, such as the United States, senders aren't allowed to use shared routes and must use a dedicated phone number or short code.
2187
+ :param tags: An array of tags (key and value pairs) associated with the pool.
2188
+ :param two_way: Describes the two-way SMS configuration for a phone number. For more information, see `Two-way SMS messaging <https://docs.aws.amazon.com/sms-voice/latest/userguide/two-way-sms.html>`_ in the End User Messaging User Guide.
2189
+ '''
2190
+ if __debug__:
2191
+ type_hints = typing.get_type_hints(_typecheckingstub__59ec152307c1b9f9d8e2674741d58c16f421e0af6e557203e2d5863f8dd4ec54)
2192
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2193
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
2194
+ props = CfnPoolProps(
2195
+ mandatory_keywords=mandatory_keywords,
2196
+ origination_identities=origination_identities,
2197
+ deletion_protection_enabled=deletion_protection_enabled,
2198
+ optional_keywords=optional_keywords,
2199
+ opt_out_list_name=opt_out_list_name,
2200
+ self_managed_opt_outs_enabled=self_managed_opt_outs_enabled,
2201
+ shared_routes_enabled=shared_routes_enabled,
2202
+ tags=tags,
2203
+ two_way=two_way,
2204
+ )
2205
+
2206
+ jsii.create(self.__class__, self, [scope, id, props])
2207
+
2208
+ @jsii.member(jsii_name="fromPoolArn")
2209
+ @builtins.classmethod
2210
+ def from_pool_arn(
2211
+ cls,
2212
+ scope: _constructs_77d1e7e8.Construct,
2213
+ id: builtins.str,
2214
+ arn: builtins.str,
2215
+ ) -> _IPoolRef_897848fa:
2216
+ '''Creates a new IPoolRef from an ARN.
2217
+
2218
+ :param scope: -
2219
+ :param id: -
2220
+ :param arn: -
2221
+ '''
2222
+ if __debug__:
2223
+ type_hints = typing.get_type_hints(_typecheckingstub__44b74b415a2e8fb8ef92df3df07db6ad2cc85726f2444e9b9d644550e1c607ba)
2224
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2225
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
2226
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
2227
+ return typing.cast(_IPoolRef_897848fa, jsii.sinvoke(cls, "fromPoolArn", [scope, id, arn]))
2228
+
2229
+ @jsii.member(jsii_name="fromPoolId")
2230
+ @builtins.classmethod
2231
+ def from_pool_id(
2232
+ cls,
2233
+ scope: _constructs_77d1e7e8.Construct,
2234
+ id: builtins.str,
2235
+ pool_id: builtins.str,
2236
+ ) -> _IPoolRef_897848fa:
2237
+ '''Creates a new IPoolRef from a poolId.
2238
+
2239
+ :param scope: -
2240
+ :param id: -
2241
+ :param pool_id: -
2242
+ '''
2243
+ if __debug__:
2244
+ type_hints = typing.get_type_hints(_typecheckingstub__5ce42e7a80b4b0868c7483a5f4ddc88ae813c01332c1d0dba0f0e1977d2a9e8f)
2245
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2246
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
2247
+ check_type(argname="argument pool_id", value=pool_id, expected_type=type_hints["pool_id"])
2248
+ return typing.cast(_IPoolRef_897848fa, jsii.sinvoke(cls, "fromPoolId", [scope, id, pool_id]))
2249
+
2250
+ @jsii.member(jsii_name="inspect")
2251
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
2252
+ '''Examines the CloudFormation resource and discloses attributes.
2253
+
2254
+ :param inspector: tree inspector to collect and process attributes.
2255
+ '''
2256
+ if __debug__:
2257
+ type_hints = typing.get_type_hints(_typecheckingstub__646191d64123d913d9874d1256f9666fa44f2c2849e5f6977d435e871d608fea)
2258
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
2259
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
2260
+
2261
+ @jsii.member(jsii_name="renderProperties")
2262
+ def _render_properties(
2263
+ self,
2264
+ props: typing.Mapping[builtins.str, typing.Any],
2265
+ ) -> typing.Mapping[builtins.str, typing.Any]:
2266
+ '''
2267
+ :param props: -
2268
+ '''
2269
+ if __debug__:
2270
+ type_hints = typing.get_type_hints(_typecheckingstub__1ac43d06983df817c39af941ddbd3c6b1c117b5abd772a788ebb97e746ebe6f7)
2271
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
2272
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
2273
+
2274
+ @jsii.python.classproperty
2275
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
2276
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
2277
+ '''The CloudFormation resource type name for this resource class.'''
2278
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
2279
+
2280
+ @builtins.property
2281
+ @jsii.member(jsii_name="attrArn")
2282
+ def attr_arn(self) -> builtins.str:
2283
+ '''The Amazon Resource Name of the ``Pool`` .
2284
+
2285
+ :cloudformationAttribute: Arn
2286
+ '''
2287
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
2288
+
2289
+ @builtins.property
2290
+ @jsii.member(jsii_name="attrPoolId")
2291
+ def attr_pool_id(self) -> builtins.str:
2292
+ '''The unique identifier for the pool.
2293
+
2294
+ :cloudformationAttribute: PoolId
2295
+ '''
2296
+ return typing.cast(builtins.str, jsii.get(self, "attrPoolId"))
2297
+
2298
+ @builtins.property
2299
+ @jsii.member(jsii_name="cdkTagManager")
2300
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
2301
+ '''Tag Manager which manages the tags for this resource.'''
2302
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
2303
+
2304
+ @builtins.property
2305
+ @jsii.member(jsii_name="cfnProperties")
2306
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
2307
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
2308
+
2309
+ @builtins.property
2310
+ @jsii.member(jsii_name="poolRef")
2311
+ def pool_ref(self) -> _PoolReference_a27a62c2:
2312
+ '''A reference to a Pool resource.'''
2313
+ return typing.cast(_PoolReference_a27a62c2, jsii.get(self, "poolRef"))
2314
+
2315
+ @builtins.property
2316
+ @jsii.member(jsii_name="mandatoryKeywords")
2317
+ def mandatory_keywords(
2318
+ self,
2319
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnPool.MandatoryKeywordsProperty"]:
2320
+ '''Creates or updates the pool's ``MandatoryKeyword`` configuration.'''
2321
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnPool.MandatoryKeywordsProperty"], jsii.get(self, "mandatoryKeywords"))
2322
+
2323
+ @mandatory_keywords.setter
2324
+ def mandatory_keywords(
2325
+ self,
2326
+ value: typing.Union[_IResolvable_da3f097b, "CfnPool.MandatoryKeywordsProperty"],
2327
+ ) -> None:
2328
+ if __debug__:
2329
+ type_hints = typing.get_type_hints(_typecheckingstub__bfd14c3ecd877946c0643f80a4e0a099266dc357dd1c9f2fded20c2ed6068511)
2330
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2331
+ jsii.set(self, "mandatoryKeywords", value) # pyright: ignore[reportArgumentType]
2332
+
2333
+ @builtins.property
2334
+ @jsii.member(jsii_name="originationIdentities")
2335
+ def origination_identities(self) -> typing.List[builtins.str]:
2336
+ '''The list of origination identities to apply to the pool, either ``PhoneNumberArn`` or ``SenderIdArn`` .'''
2337
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "originationIdentities"))
2338
+
2339
+ @origination_identities.setter
2340
+ def origination_identities(self, value: typing.List[builtins.str]) -> None:
2341
+ if __debug__:
2342
+ type_hints = typing.get_type_hints(_typecheckingstub__909ac003d5ef554f022f835ef0908ed75231f120d614c558f2c5f51d5395a2ff)
2343
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2344
+ jsii.set(self, "originationIdentities", value) # pyright: ignore[reportArgumentType]
2345
+
2346
+ @builtins.property
2347
+ @jsii.member(jsii_name="deletionProtectionEnabled")
2348
+ def deletion_protection_enabled(
2349
+ self,
2350
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
2351
+ '''When set to true the pool can't be deleted.'''
2352
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "deletionProtectionEnabled"))
2353
+
2354
+ @deletion_protection_enabled.setter
2355
+ def deletion_protection_enabled(
2356
+ self,
2357
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
2358
+ ) -> None:
2359
+ if __debug__:
2360
+ type_hints = typing.get_type_hints(_typecheckingstub__5a973c88578554a2711f55af1a74d5bf3a851e51c2372e0b21001f10f4008325)
2361
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2362
+ jsii.set(self, "deletionProtectionEnabled", value) # pyright: ignore[reportArgumentType]
2363
+
2364
+ @builtins.property
2365
+ @jsii.member(jsii_name="optionalKeywords")
2366
+ def optional_keywords(
2367
+ self,
2368
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnPool.OptionalKeywordProperty"]]]]:
2369
+ '''Specifies any optional keywords to associate with the pool.'''
2370
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnPool.OptionalKeywordProperty"]]]], jsii.get(self, "optionalKeywords"))
2371
+
2372
+ @optional_keywords.setter
2373
+ def optional_keywords(
2374
+ self,
2375
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnPool.OptionalKeywordProperty"]]]],
2376
+ ) -> None:
2377
+ if __debug__:
2378
+ type_hints = typing.get_type_hints(_typecheckingstub__7b2ca5a55c40a8062edab9da92a8bb55730ecbfd143187de51da50b4e36607bd)
2379
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2380
+ jsii.set(self, "optionalKeywords", value) # pyright: ignore[reportArgumentType]
2381
+
2382
+ @builtins.property
2383
+ @jsii.member(jsii_name="optOutListName")
2384
+ def opt_out_list_name(self) -> typing.Optional[builtins.str]:
2385
+ '''The name of the OptOutList associated with the pool.'''
2386
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "optOutListName"))
2387
+
2388
+ @opt_out_list_name.setter
2389
+ def opt_out_list_name(self, value: typing.Optional[builtins.str]) -> None:
2390
+ if __debug__:
2391
+ type_hints = typing.get_type_hints(_typecheckingstub__0921e48fa38e4645222261d2452034ec6e83d8e11c7f323b339eb5394183aa57)
2392
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2393
+ jsii.set(self, "optOutListName", value) # pyright: ignore[reportArgumentType]
2394
+
2395
+ @builtins.property
2396
+ @jsii.member(jsii_name="selfManagedOptOutsEnabled")
2397
+ def self_managed_opt_outs_enabled(
2398
+ self,
2399
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
2400
+ '''When set to false, an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, End User Messaging automatically replies with a customizable message and adds the end recipient to the OptOutList.'''
2401
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "selfManagedOptOutsEnabled"))
2402
+
2403
+ @self_managed_opt_outs_enabled.setter
2404
+ def self_managed_opt_outs_enabled(
2405
+ self,
2406
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
2407
+ ) -> None:
2408
+ if __debug__:
2409
+ type_hints = typing.get_type_hints(_typecheckingstub__50cb9c95473e3f15cee6cae1601c885f0fc786075af4a6607253cea1cc7c1057)
2410
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2411
+ jsii.set(self, "selfManagedOptOutsEnabled", value) # pyright: ignore[reportArgumentType]
2412
+
2413
+ @builtins.property
2414
+ @jsii.member(jsii_name="sharedRoutesEnabled")
2415
+ def shared_routes_enabled(
2416
+ self,
2417
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
2418
+ '''Allows you to enable shared routes on your pool.'''
2419
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "sharedRoutesEnabled"))
2420
+
2421
+ @shared_routes_enabled.setter
2422
+ def shared_routes_enabled(
2423
+ self,
2424
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
2425
+ ) -> None:
2426
+ if __debug__:
2427
+ type_hints = typing.get_type_hints(_typecheckingstub__acfab5fb52186d7cf51c246789b7a8942e05a66e5b635a2323438e15ebf3a85c)
2428
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2429
+ jsii.set(self, "sharedRoutesEnabled", value) # pyright: ignore[reportArgumentType]
2430
+
2431
+ @builtins.property
2432
+ @jsii.member(jsii_name="tags")
2433
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
2434
+ '''An array of tags (key and value pairs) associated with the pool.'''
2435
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
2436
+
2437
+ @tags.setter
2438
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
2439
+ if __debug__:
2440
+ type_hints = typing.get_type_hints(_typecheckingstub__80c94b1b39a42b8df6f133aad39a3eaf660a2fa0ae43777c636d9f46c4f0fbf8)
2441
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2442
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
2443
+
2444
+ @builtins.property
2445
+ @jsii.member(jsii_name="twoWay")
2446
+ def two_way(
2447
+ self,
2448
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnPool.TwoWayProperty"]]:
2449
+ '''Describes the two-way SMS configuration for a phone number.'''
2450
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnPool.TwoWayProperty"]], jsii.get(self, "twoWay"))
2451
+
2452
+ @two_way.setter
2453
+ def two_way(
2454
+ self,
2455
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnPool.TwoWayProperty"]],
2456
+ ) -> None:
2457
+ if __debug__:
2458
+ type_hints = typing.get_type_hints(_typecheckingstub__98c3832bba752985f1cbf4bfdbf7efe14a8cf5d35ff7b69c2bc40a36bdc85123)
2459
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2460
+ jsii.set(self, "twoWay", value) # pyright: ignore[reportArgumentType]
2461
+
2462
+ @jsii.data_type(
2463
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnPool.MandatoryKeywordProperty",
2464
+ jsii_struct_bases=[],
2465
+ name_mapping={"message": "message"},
2466
+ )
2467
+ class MandatoryKeywordProperty:
2468
+ def __init__(self, *, message: builtins.str) -> None:
2469
+ '''The keywords ``HELP`` and ``STOP`` are mandatory keywords that each phone number must have.
2470
+
2471
+ For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
2472
+
2473
+ :param message: The message associated with the keyword.
2474
+
2475
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-mandatorykeyword.html
2476
+ :exampleMetadata: fixture=_generated
2477
+
2478
+ Example::
2479
+
2480
+ # The code below shows an example of how to instantiate this type.
2481
+ # The values are placeholders you should change.
2482
+ from aws_cdk import aws_smsvoice as smsvoice
2483
+
2484
+ mandatory_keyword_property = smsvoice.CfnPool.MandatoryKeywordProperty(
2485
+ message="message"
2486
+ )
2487
+ '''
2488
+ if __debug__:
2489
+ type_hints = typing.get_type_hints(_typecheckingstub__ec4eab2ae9eab5ae372f5d39ce690d92ced957d23383cb67280aa740d1c77965)
2490
+ check_type(argname="argument message", value=message, expected_type=type_hints["message"])
2491
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2492
+ "message": message,
2493
+ }
2494
+
2495
+ @builtins.property
2496
+ def message(self) -> builtins.str:
2497
+ '''The message associated with the keyword.
2498
+
2499
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-mandatorykeyword.html#cfn-smsvoice-pool-mandatorykeyword-message
2500
+ '''
2501
+ result = self._values.get("message")
2502
+ assert result is not None, "Required property 'message' is missing"
2503
+ return typing.cast(builtins.str, result)
2504
+
2505
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2506
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2507
+
2508
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2509
+ return not (rhs == self)
2510
+
2511
+ def __repr__(self) -> str:
2512
+ return "MandatoryKeywordProperty(%s)" % ", ".join(
2513
+ k + "=" + repr(v) for k, v in self._values.items()
2514
+ )
2515
+
2516
+ @jsii.data_type(
2517
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnPool.MandatoryKeywordsProperty",
2518
+ jsii_struct_bases=[],
2519
+ name_mapping={"help": "help", "stop": "stop"},
2520
+ )
2521
+ class MandatoryKeywordsProperty:
2522
+ def __init__(
2523
+ self,
2524
+ *,
2525
+ help: typing.Union[_IResolvable_da3f097b, typing.Union["CfnPool.MandatoryKeywordProperty", typing.Dict[builtins.str, typing.Any]]],
2526
+ stop: typing.Union[_IResolvable_da3f097b, typing.Union["CfnPool.MandatoryKeywordProperty", typing.Dict[builtins.str, typing.Any]]],
2527
+ ) -> None:
2528
+ '''The manadatory keywords, ``HELP`` and ``STOP`` to add to the pool.
2529
+
2530
+ For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
2531
+
2532
+ :param help: Specifies the pool's ``HELP`` keyword. For more information, see `Opt out list required keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/opt-out-list-keywords.html>`_ in the End User Messaging User Guide.
2533
+ :param stop: Specifies the pool's opt-out keyword. For more information, see `Required opt-out keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords-required.html>`_ in the End User Messaging User Guide.
2534
+
2535
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-mandatorykeywords.html
2536
+ :exampleMetadata: fixture=_generated
2537
+
2538
+ Example::
2539
+
2540
+ # The code below shows an example of how to instantiate this type.
2541
+ # The values are placeholders you should change.
2542
+ from aws_cdk import aws_smsvoice as smsvoice
2543
+
2544
+ mandatory_keywords_property = smsvoice.CfnPool.MandatoryKeywordsProperty(
2545
+ help=smsvoice.CfnPool.MandatoryKeywordProperty(
2546
+ message="message"
2547
+ ),
2548
+ stop=smsvoice.CfnPool.MandatoryKeywordProperty(
2549
+ message="message"
2550
+ )
2551
+ )
2552
+ '''
2553
+ if __debug__:
2554
+ type_hints = typing.get_type_hints(_typecheckingstub__5d7eb7bde31c4c3c5dd4d55c4b13717b0ee740b2f78679df8f186da6740203bc)
2555
+ check_type(argname="argument help", value=help, expected_type=type_hints["help"])
2556
+ check_type(argname="argument stop", value=stop, expected_type=type_hints["stop"])
2557
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2558
+ "help": help,
2559
+ "stop": stop,
2560
+ }
2561
+
2562
+ @builtins.property
2563
+ def help(
2564
+ self,
2565
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnPool.MandatoryKeywordProperty"]:
2566
+ '''Specifies the pool's ``HELP`` keyword.
2567
+
2568
+ For more information, see `Opt out list required keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/opt-out-list-keywords.html>`_ in the End User Messaging User Guide.
2569
+
2570
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-mandatorykeywords.html#cfn-smsvoice-pool-mandatorykeywords-help
2571
+ '''
2572
+ result = self._values.get("help")
2573
+ assert result is not None, "Required property 'help' is missing"
2574
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnPool.MandatoryKeywordProperty"], result)
2575
+
2576
+ @builtins.property
2577
+ def stop(
2578
+ self,
2579
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnPool.MandatoryKeywordProperty"]:
2580
+ '''Specifies the pool's opt-out keyword.
2581
+
2582
+ For more information, see `Required opt-out keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords-required.html>`_ in the End User Messaging User Guide.
2583
+
2584
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-mandatorykeywords.html#cfn-smsvoice-pool-mandatorykeywords-stop
2585
+ '''
2586
+ result = self._values.get("stop")
2587
+ assert result is not None, "Required property 'stop' is missing"
2588
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnPool.MandatoryKeywordProperty"], result)
2589
+
2590
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2591
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2592
+
2593
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2594
+ return not (rhs == self)
2595
+
2596
+ def __repr__(self) -> str:
2597
+ return "MandatoryKeywordsProperty(%s)" % ", ".join(
2598
+ k + "=" + repr(v) for k, v in self._values.items()
2599
+ )
2600
+
2601
+ @jsii.data_type(
2602
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnPool.OptionalKeywordProperty",
2603
+ jsii_struct_bases=[],
2604
+ name_mapping={"action": "action", "keyword": "keyword", "message": "message"},
2605
+ )
2606
+ class OptionalKeywordProperty:
2607
+ def __init__(
2608
+ self,
2609
+ *,
2610
+ action: builtins.str,
2611
+ keyword: builtins.str,
2612
+ message: builtins.str,
2613
+ ) -> None:
2614
+ '''The pool's ``OptionalKeyword`` configuration.
2615
+
2616
+ For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
2617
+
2618
+ :param action: The action to perform when the keyword is used.
2619
+ :param keyword: The new keyword to add.
2620
+ :param message: The message associated with the keyword.
2621
+
2622
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-optionalkeyword.html
2623
+ :exampleMetadata: fixture=_generated
2624
+
2625
+ Example::
2626
+
2627
+ # The code below shows an example of how to instantiate this type.
2628
+ # The values are placeholders you should change.
2629
+ from aws_cdk import aws_smsvoice as smsvoice
2630
+
2631
+ optional_keyword_property = smsvoice.CfnPool.OptionalKeywordProperty(
2632
+ action="action",
2633
+ keyword="keyword",
2634
+ message="message"
2635
+ )
2636
+ '''
2637
+ if __debug__:
2638
+ type_hints = typing.get_type_hints(_typecheckingstub__a53e8a8737df62937a61e4bdd29555e45b8fb476b28f08a4c6a174843bbc0f89)
2639
+ check_type(argname="argument action", value=action, expected_type=type_hints["action"])
2640
+ check_type(argname="argument keyword", value=keyword, expected_type=type_hints["keyword"])
2641
+ check_type(argname="argument message", value=message, expected_type=type_hints["message"])
2642
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2643
+ "action": action,
2644
+ "keyword": keyword,
2645
+ "message": message,
2646
+ }
2647
+
2648
+ @builtins.property
2649
+ def action(self) -> builtins.str:
2650
+ '''The action to perform when the keyword is used.
2651
+
2652
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-optionalkeyword.html#cfn-smsvoice-pool-optionalkeyword-action
2653
+ '''
2654
+ result = self._values.get("action")
2655
+ assert result is not None, "Required property 'action' is missing"
2656
+ return typing.cast(builtins.str, result)
2657
+
2658
+ @builtins.property
2659
+ def keyword(self) -> builtins.str:
2660
+ '''The new keyword to add.
2661
+
2662
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-optionalkeyword.html#cfn-smsvoice-pool-optionalkeyword-keyword
2663
+ '''
2664
+ result = self._values.get("keyword")
2665
+ assert result is not None, "Required property 'keyword' is missing"
2666
+ return typing.cast(builtins.str, result)
2667
+
2668
+ @builtins.property
2669
+ def message(self) -> builtins.str:
2670
+ '''The message associated with the keyword.
2671
+
2672
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-optionalkeyword.html#cfn-smsvoice-pool-optionalkeyword-message
2673
+ '''
2674
+ result = self._values.get("message")
2675
+ assert result is not None, "Required property 'message' is missing"
2676
+ return typing.cast(builtins.str, result)
2677
+
2678
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2679
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2680
+
2681
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2682
+ return not (rhs == self)
2683
+
2684
+ def __repr__(self) -> str:
2685
+ return "OptionalKeywordProperty(%s)" % ", ".join(
2686
+ k + "=" + repr(v) for k, v in self._values.items()
2687
+ )
2688
+
2689
+ @jsii.data_type(
2690
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnPool.TwoWayProperty",
2691
+ jsii_struct_bases=[],
2692
+ name_mapping={
2693
+ "enabled": "enabled",
2694
+ "channel_arn": "channelArn",
2695
+ "channel_role": "channelRole",
2696
+ },
2697
+ )
2698
+ class TwoWayProperty:
2699
+ def __init__(
2700
+ self,
2701
+ *,
2702
+ enabled: typing.Union[builtins.bool, _IResolvable_da3f097b],
2703
+ channel_arn: typing.Optional[builtins.str] = None,
2704
+ channel_role: typing.Optional[builtins.str] = None,
2705
+ ) -> None:
2706
+ '''The pool's two-way SMS configuration object.
2707
+
2708
+ :param enabled: By default this is set to false. When set to true you can receive incoming text messages from your end recipients using the TwoWayChannelArn.
2709
+ :param channel_arn: The Amazon Resource Name (ARN) of the two way channel.
2710
+ :param channel_role: An optional IAM Role Arn for a service to assume, to be able to post inbound SMS messages.
2711
+
2712
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-twoway.html
2713
+ :exampleMetadata: fixture=_generated
2714
+
2715
+ Example::
2716
+
2717
+ # The code below shows an example of how to instantiate this type.
2718
+ # The values are placeholders you should change.
2719
+ from aws_cdk import aws_smsvoice as smsvoice
2720
+
2721
+ two_way_property = smsvoice.CfnPool.TwoWayProperty(
2722
+ enabled=False,
2723
+
2724
+ # the properties below are optional
2725
+ channel_arn="channelArn",
2726
+ channel_role="channelRole"
2727
+ )
2728
+ '''
2729
+ if __debug__:
2730
+ type_hints = typing.get_type_hints(_typecheckingstub__9e85b91eb6b2f50f5a971419d7521040342911deee5fc2d8e19a9a52d3f97c44)
2731
+ check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
2732
+ check_type(argname="argument channel_arn", value=channel_arn, expected_type=type_hints["channel_arn"])
2733
+ check_type(argname="argument channel_role", value=channel_role, expected_type=type_hints["channel_role"])
2734
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2735
+ "enabled": enabled,
2736
+ }
2737
+ if channel_arn is not None:
2738
+ self._values["channel_arn"] = channel_arn
2739
+ if channel_role is not None:
2740
+ self._values["channel_role"] = channel_role
2741
+
2742
+ @builtins.property
2743
+ def enabled(self) -> typing.Union[builtins.bool, _IResolvable_da3f097b]:
2744
+ '''By default this is set to false.
2745
+
2746
+ When set to true you can receive incoming text messages from your end recipients using the TwoWayChannelArn.
2747
+
2748
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-twoway.html#cfn-smsvoice-pool-twoway-enabled
2749
+ '''
2750
+ result = self._values.get("enabled")
2751
+ assert result is not None, "Required property 'enabled' is missing"
2752
+ return typing.cast(typing.Union[builtins.bool, _IResolvable_da3f097b], result)
2753
+
2754
+ @builtins.property
2755
+ def channel_arn(self) -> typing.Optional[builtins.str]:
2756
+ '''The Amazon Resource Name (ARN) of the two way channel.
2757
+
2758
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-twoway.html#cfn-smsvoice-pool-twoway-channelarn
2759
+ '''
2760
+ result = self._values.get("channel_arn")
2761
+ return typing.cast(typing.Optional[builtins.str], result)
2762
+
2763
+ @builtins.property
2764
+ def channel_role(self) -> typing.Optional[builtins.str]:
2765
+ '''An optional IAM Role Arn for a service to assume, to be able to post inbound SMS messages.
2766
+
2767
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-twoway.html#cfn-smsvoice-pool-twoway-channelrole
2768
+ '''
2769
+ result = self._values.get("channel_role")
2770
+ return typing.cast(typing.Optional[builtins.str], result)
2771
+
2772
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2773
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2774
+
2775
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2776
+ return not (rhs == self)
2777
+
2778
+ def __repr__(self) -> str:
2779
+ return "TwoWayProperty(%s)" % ", ".join(
2780
+ k + "=" + repr(v) for k, v in self._values.items()
2781
+ )
2782
+
2783
+
2784
+ @jsii.data_type(
2785
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnPoolProps",
2786
+ jsii_struct_bases=[],
2787
+ name_mapping={
2788
+ "mandatory_keywords": "mandatoryKeywords",
2789
+ "origination_identities": "originationIdentities",
2790
+ "deletion_protection_enabled": "deletionProtectionEnabled",
2791
+ "optional_keywords": "optionalKeywords",
2792
+ "opt_out_list_name": "optOutListName",
2793
+ "self_managed_opt_outs_enabled": "selfManagedOptOutsEnabled",
2794
+ "shared_routes_enabled": "sharedRoutesEnabled",
2795
+ "tags": "tags",
2796
+ "two_way": "twoWay",
2797
+ },
2798
+ )
2799
+ class CfnPoolProps:
2800
+ def __init__(
2801
+ self,
2802
+ *,
2803
+ mandatory_keywords: typing.Union[_IResolvable_da3f097b, typing.Union[CfnPool.MandatoryKeywordsProperty, typing.Dict[builtins.str, typing.Any]]],
2804
+ origination_identities: typing.Sequence[builtins.str],
2805
+ deletion_protection_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
2806
+ optional_keywords: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnPool.OptionalKeywordProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
2807
+ opt_out_list_name: typing.Optional[builtins.str] = None,
2808
+ self_managed_opt_outs_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
2809
+ shared_routes_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
2810
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
2811
+ two_way: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnPool.TwoWayProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2812
+ ) -> None:
2813
+ '''Properties for defining a ``CfnPool``.
2814
+
2815
+ :param mandatory_keywords: Creates or updates the pool's ``MandatoryKeyword`` configuration. For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
2816
+ :param origination_identities: The list of origination identities to apply to the pool, either ``PhoneNumberArn`` or ``SenderIdArn`` . For more information, see `Registrations <https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html>`_ in the End User Messaging User Guide. .. epigraph:: If you are using a shared End User Messaging resource then you must use the full Amazon Resource Name (ARN).
2817
+ :param deletion_protection_enabled: When set to true the pool can't be deleted.
2818
+ :param optional_keywords: Specifies any optional keywords to associate with the pool. For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
2819
+ :param opt_out_list_name: The name of the OptOutList associated with the pool.
2820
+ :param self_managed_opt_outs_enabled: When set to false, an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, End User Messaging automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. For more information see `Self-managed opt-outs <https://docs.aws.amazon.com//pinpoint/latest/userguide/settings-sms-managing.html#settings-account-sms-self-managed-opt-out>`_
2821
+ :param shared_routes_enabled: Allows you to enable shared routes on your pool. By default, this is set to ``False`` . If you set this value to ``True`` , your messages are sent using phone numbers or sender IDs (depending on the country) that are shared with other users. In some countries, such as the United States, senders aren't allowed to use shared routes and must use a dedicated phone number or short code.
2822
+ :param tags: An array of tags (key and value pairs) associated with the pool.
2823
+ :param two_way: Describes the two-way SMS configuration for a phone number. For more information, see `Two-way SMS messaging <https://docs.aws.amazon.com/sms-voice/latest/userguide/two-way-sms.html>`_ in the End User Messaging User Guide.
2824
+
2825
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html
2826
+ :exampleMetadata: fixture=_generated
2827
+
2828
+ Example::
2829
+
2830
+ # The code below shows an example of how to instantiate this type.
2831
+ # The values are placeholders you should change.
2832
+ from aws_cdk import aws_smsvoice as smsvoice
2833
+
2834
+ cfn_pool_props = smsvoice.CfnPoolProps(
2835
+ mandatory_keywords=smsvoice.CfnPool.MandatoryKeywordsProperty(
2836
+ help=smsvoice.CfnPool.MandatoryKeywordProperty(
2837
+ message="message"
2838
+ ),
2839
+ stop=smsvoice.CfnPool.MandatoryKeywordProperty(
2840
+ message="message"
2841
+ )
2842
+ ),
2843
+ origination_identities=["originationIdentities"],
2844
+
2845
+ # the properties below are optional
2846
+ deletion_protection_enabled=False,
2847
+ optional_keywords=[smsvoice.CfnPool.OptionalKeywordProperty(
2848
+ action="action",
2849
+ keyword="keyword",
2850
+ message="message"
2851
+ )],
2852
+ opt_out_list_name="optOutListName",
2853
+ self_managed_opt_outs_enabled=False,
2854
+ shared_routes_enabled=False,
2855
+ tags=[CfnTag(
2856
+ key="key",
2857
+ value="value"
2858
+ )],
2859
+ two_way=smsvoice.CfnPool.TwoWayProperty(
2860
+ enabled=False,
2861
+
2862
+ # the properties below are optional
2863
+ channel_arn="channelArn",
2864
+ channel_role="channelRole"
2865
+ )
2866
+ )
2867
+ '''
2868
+ if __debug__:
2869
+ type_hints = typing.get_type_hints(_typecheckingstub__9949eaef09160ab08c0556130c6a54f66b5bab92951d0608bd8f05d3071a5abd)
2870
+ check_type(argname="argument mandatory_keywords", value=mandatory_keywords, expected_type=type_hints["mandatory_keywords"])
2871
+ check_type(argname="argument origination_identities", value=origination_identities, expected_type=type_hints["origination_identities"])
2872
+ check_type(argname="argument deletion_protection_enabled", value=deletion_protection_enabled, expected_type=type_hints["deletion_protection_enabled"])
2873
+ check_type(argname="argument optional_keywords", value=optional_keywords, expected_type=type_hints["optional_keywords"])
2874
+ check_type(argname="argument opt_out_list_name", value=opt_out_list_name, expected_type=type_hints["opt_out_list_name"])
2875
+ check_type(argname="argument self_managed_opt_outs_enabled", value=self_managed_opt_outs_enabled, expected_type=type_hints["self_managed_opt_outs_enabled"])
2876
+ check_type(argname="argument shared_routes_enabled", value=shared_routes_enabled, expected_type=type_hints["shared_routes_enabled"])
2877
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
2878
+ check_type(argname="argument two_way", value=two_way, expected_type=type_hints["two_way"])
2879
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2880
+ "mandatory_keywords": mandatory_keywords,
2881
+ "origination_identities": origination_identities,
2882
+ }
2883
+ if deletion_protection_enabled is not None:
2884
+ self._values["deletion_protection_enabled"] = deletion_protection_enabled
2885
+ if optional_keywords is not None:
2886
+ self._values["optional_keywords"] = optional_keywords
2887
+ if opt_out_list_name is not None:
2888
+ self._values["opt_out_list_name"] = opt_out_list_name
2889
+ if self_managed_opt_outs_enabled is not None:
2890
+ self._values["self_managed_opt_outs_enabled"] = self_managed_opt_outs_enabled
2891
+ if shared_routes_enabled is not None:
2892
+ self._values["shared_routes_enabled"] = shared_routes_enabled
2893
+ if tags is not None:
2894
+ self._values["tags"] = tags
2895
+ if two_way is not None:
2896
+ self._values["two_way"] = two_way
2897
+
2898
+ @builtins.property
2899
+ def mandatory_keywords(
2900
+ self,
2901
+ ) -> typing.Union[_IResolvable_da3f097b, CfnPool.MandatoryKeywordsProperty]:
2902
+ '''Creates or updates the pool's ``MandatoryKeyword`` configuration.
2903
+
2904
+ For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
2905
+
2906
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-mandatorykeywords
2907
+ '''
2908
+ result = self._values.get("mandatory_keywords")
2909
+ assert result is not None, "Required property 'mandatory_keywords' is missing"
2910
+ return typing.cast(typing.Union[_IResolvable_da3f097b, CfnPool.MandatoryKeywordsProperty], result)
2911
+
2912
+ @builtins.property
2913
+ def origination_identities(self) -> typing.List[builtins.str]:
2914
+ '''The list of origination identities to apply to the pool, either ``PhoneNumberArn`` or ``SenderIdArn`` .
2915
+
2916
+ For more information, see `Registrations <https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html>`_ in the End User Messaging User Guide.
2917
+ .. epigraph::
2918
+
2919
+ If you are using a shared End User Messaging resource then you must use the full Amazon Resource Name (ARN).
2920
+
2921
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-originationidentities
2922
+ '''
2923
+ result = self._values.get("origination_identities")
2924
+ assert result is not None, "Required property 'origination_identities' is missing"
2925
+ return typing.cast(typing.List[builtins.str], result)
2926
+
2927
+ @builtins.property
2928
+ def deletion_protection_enabled(
2929
+ self,
2930
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
2931
+ '''When set to true the pool can't be deleted.
2932
+
2933
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-deletionprotectionenabled
2934
+ '''
2935
+ result = self._values.get("deletion_protection_enabled")
2936
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
2937
+
2938
+ @builtins.property
2939
+ def optional_keywords(
2940
+ self,
2941
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnPool.OptionalKeywordProperty]]]]:
2942
+ '''Specifies any optional keywords to associate with the pool.
2943
+
2944
+ For more information, see `Keywords <https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html>`_ in the End User Messaging User Guide.
2945
+
2946
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-optionalkeywords
2947
+ '''
2948
+ result = self._values.get("optional_keywords")
2949
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnPool.OptionalKeywordProperty]]]], result)
2950
+
2951
+ @builtins.property
2952
+ def opt_out_list_name(self) -> typing.Optional[builtins.str]:
2953
+ '''The name of the OptOutList associated with the pool.
2954
+
2955
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-optoutlistname
2956
+ '''
2957
+ result = self._values.get("opt_out_list_name")
2958
+ return typing.cast(typing.Optional[builtins.str], result)
2959
+
2960
+ @builtins.property
2961
+ def self_managed_opt_outs_enabled(
2962
+ self,
2963
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
2964
+ '''When set to false, an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, End User Messaging automatically replies with a customizable message and adds the end recipient to the OptOutList.
2965
+
2966
+ When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. For more information see `Self-managed opt-outs <https://docs.aws.amazon.com//pinpoint/latest/userguide/settings-sms-managing.html#settings-account-sms-self-managed-opt-out>`_
2967
+
2968
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-selfmanagedoptoutsenabled
2969
+ '''
2970
+ result = self._values.get("self_managed_opt_outs_enabled")
2971
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
2972
+
2973
+ @builtins.property
2974
+ def shared_routes_enabled(
2975
+ self,
2976
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
2977
+ '''Allows you to enable shared routes on your pool.
2978
+
2979
+ By default, this is set to ``False`` . If you set this value to ``True`` , your messages are sent using phone numbers or sender IDs (depending on the country) that are shared with other users. In some countries, such as the United States, senders aren't allowed to use shared routes and must use a dedicated phone number or short code.
2980
+
2981
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-sharedroutesenabled
2982
+ '''
2983
+ result = self._values.get("shared_routes_enabled")
2984
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
2985
+
2986
+ @builtins.property
2987
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
2988
+ '''An array of tags (key and value pairs) associated with the pool.
2989
+
2990
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-tags
2991
+ '''
2992
+ result = self._values.get("tags")
2993
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
2994
+
2995
+ @builtins.property
2996
+ def two_way(
2997
+ self,
2998
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnPool.TwoWayProperty]]:
2999
+ '''Describes the two-way SMS configuration for a phone number.
3000
+
3001
+ For more information, see `Two-way SMS messaging <https://docs.aws.amazon.com/sms-voice/latest/userguide/two-way-sms.html>`_ in the End User Messaging User Guide.
3002
+
3003
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-twoway
3004
+ '''
3005
+ result = self._values.get("two_way")
3006
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnPool.TwoWayProperty]], result)
3007
+
3008
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3009
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3010
+
3011
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3012
+ return not (rhs == self)
3013
+
3014
+ def __repr__(self) -> str:
3015
+ return "CfnPoolProps(%s)" % ", ".join(
3016
+ k + "=" + repr(v) for k, v in self._values.items()
3017
+ )
3018
+
3019
+
3020
+ @jsii.implements(_IInspectable_c2943556, _IProtectConfigurationRef_e1ab5693, _ITaggableV2_4e6798f8)
3021
+ class CfnProtectConfiguration(
3022
+ _CfnResource_9df397a6,
3023
+ metaclass=jsii.JSIIMeta,
3024
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnProtectConfiguration",
3025
+ ):
3026
+ '''Create a new protect configuration.
3027
+
3028
+ By default all country rule sets for each capability are set to ``ALLOW`` . A protect configurations name is stored as a Tag with the key set to ``Name`` and value as the name of the protect configuration.
3029
+
3030
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-protectconfiguration.html
3031
+ :cloudformationResource: AWS::SMSVOICE::ProtectConfiguration
3032
+ :exampleMetadata: fixture=_generated
3033
+
3034
+ Example::
3035
+
3036
+ # The code below shows an example of how to instantiate this type.
3037
+ # The values are placeholders you should change.
3038
+ from aws_cdk import aws_smsvoice as smsvoice
3039
+
3040
+ cfn_protect_configuration = smsvoice.CfnProtectConfiguration(self, "MyCfnProtectConfiguration",
3041
+ country_rule_set=smsvoice.CfnProtectConfiguration.CountryRuleSetProperty(
3042
+ mms=[smsvoice.CfnProtectConfiguration.CountryRuleProperty(
3043
+ country_code="countryCode",
3044
+ protect_status="protectStatus"
3045
+ )],
3046
+ sms=[smsvoice.CfnProtectConfiguration.CountryRuleProperty(
3047
+ country_code="countryCode",
3048
+ protect_status="protectStatus"
3049
+ )],
3050
+ voice=[smsvoice.CfnProtectConfiguration.CountryRuleProperty(
3051
+ country_code="countryCode",
3052
+ protect_status="protectStatus"
3053
+ )]
3054
+ ),
3055
+ deletion_protection_enabled=False,
3056
+ tags=[CfnTag(
3057
+ key="key",
3058
+ value="value"
3059
+ )]
3060
+ )
3061
+ '''
3062
+
3063
+ def __init__(
3064
+ self,
3065
+ scope: _constructs_77d1e7e8.Construct,
3066
+ id: builtins.str,
3067
+ *,
3068
+ country_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnProtectConfiguration.CountryRuleSetProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3069
+ deletion_protection_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
3070
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
3071
+ ) -> None:
3072
+ '''Create a new ``AWS::SMSVOICE::ProtectConfiguration``.
3073
+
3074
+ :param scope: Scope in which this resource is defined.
3075
+ :param id: Construct identifier for this resource (unique in its scope).
3076
+ :param country_rule_set: The set of ``CountryRules`` you specify to control which countries End User Messaging can send your messages to.
3077
+ :param deletion_protection_enabled: The status of deletion protection for the protect configuration. When set to true deletion protection is enabled. By default this is set to false.
3078
+ :param tags: An array of key and value pair tags that are associated with the resource.
3079
+ '''
3080
+ if __debug__:
3081
+ type_hints = typing.get_type_hints(_typecheckingstub__3395de3209762a050f467d1fe0a98e4e81c55a9fa41d448e97b764225b94b11b)
3082
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3083
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3084
+ props = CfnProtectConfigurationProps(
3085
+ country_rule_set=country_rule_set,
3086
+ deletion_protection_enabled=deletion_protection_enabled,
3087
+ tags=tags,
3088
+ )
3089
+
3090
+ jsii.create(self.__class__, self, [scope, id, props])
3091
+
3092
+ @jsii.member(jsii_name="fromProtectConfigurationArn")
3093
+ @builtins.classmethod
3094
+ def from_protect_configuration_arn(
3095
+ cls,
3096
+ scope: _constructs_77d1e7e8.Construct,
3097
+ id: builtins.str,
3098
+ arn: builtins.str,
3099
+ ) -> _IProtectConfigurationRef_e1ab5693:
3100
+ '''Creates a new IProtectConfigurationRef from an ARN.
3101
+
3102
+ :param scope: -
3103
+ :param id: -
3104
+ :param arn: -
3105
+ '''
3106
+ if __debug__:
3107
+ type_hints = typing.get_type_hints(_typecheckingstub__30a9d4af727d92ea133d23d5c13cb27130f80d90393dc02c481aa8e3278db26b)
3108
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3109
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3110
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
3111
+ return typing.cast(_IProtectConfigurationRef_e1ab5693, jsii.sinvoke(cls, "fromProtectConfigurationArn", [scope, id, arn]))
3112
+
3113
+ @jsii.member(jsii_name="fromProtectConfigurationId")
3114
+ @builtins.classmethod
3115
+ def from_protect_configuration_id(
3116
+ cls,
3117
+ scope: _constructs_77d1e7e8.Construct,
3118
+ id: builtins.str,
3119
+ protect_configuration_id: builtins.str,
3120
+ ) -> _IProtectConfigurationRef_e1ab5693:
3121
+ '''Creates a new IProtectConfigurationRef from a protectConfigurationId.
3122
+
3123
+ :param scope: -
3124
+ :param id: -
3125
+ :param protect_configuration_id: -
3126
+ '''
3127
+ if __debug__:
3128
+ type_hints = typing.get_type_hints(_typecheckingstub__fa99a78e7c983e2ce15b9de8f681c35d2e97ff106cdb14797363208ff8fa2678)
3129
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3130
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3131
+ check_type(argname="argument protect_configuration_id", value=protect_configuration_id, expected_type=type_hints["protect_configuration_id"])
3132
+ return typing.cast(_IProtectConfigurationRef_e1ab5693, jsii.sinvoke(cls, "fromProtectConfigurationId", [scope, id, protect_configuration_id]))
3133
+
3134
+ @jsii.member(jsii_name="inspect")
3135
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
3136
+ '''Examines the CloudFormation resource and discloses attributes.
3137
+
3138
+ :param inspector: tree inspector to collect and process attributes.
3139
+ '''
3140
+ if __debug__:
3141
+ type_hints = typing.get_type_hints(_typecheckingstub__f6093fb47c5b0a611eabf40e86a7bee9346024756d80420e8a57fe0de5453a18)
3142
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
3143
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
3144
+
3145
+ @jsii.member(jsii_name="renderProperties")
3146
+ def _render_properties(
3147
+ self,
3148
+ props: typing.Mapping[builtins.str, typing.Any],
3149
+ ) -> typing.Mapping[builtins.str, typing.Any]:
3150
+ '''
3151
+ :param props: -
3152
+ '''
3153
+ if __debug__:
3154
+ type_hints = typing.get_type_hints(_typecheckingstub__126400bcb940604c8cd58c2f9c800cc69399e0f1fa7e9c15c3691a17e178d223)
3155
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
3156
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
3157
+
3158
+ @jsii.python.classproperty
3159
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
3160
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
3161
+ '''The CloudFormation resource type name for this resource class.'''
3162
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
3163
+
3164
+ @builtins.property
3165
+ @jsii.member(jsii_name="attrArn")
3166
+ def attr_arn(self) -> builtins.str:
3167
+ '''The Amazon Resource Name (ARN) of the protect configuration.
3168
+
3169
+ :cloudformationAttribute: Arn
3170
+ '''
3171
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
3172
+
3173
+ @builtins.property
3174
+ @jsii.member(jsii_name="attrProtectConfigurationId")
3175
+ def attr_protect_configuration_id(self) -> builtins.str:
3176
+ '''The unique identifier for the protect configuration.
3177
+
3178
+ :cloudformationAttribute: ProtectConfigurationId
3179
+ '''
3180
+ return typing.cast(builtins.str, jsii.get(self, "attrProtectConfigurationId"))
3181
+
3182
+ @builtins.property
3183
+ @jsii.member(jsii_name="cdkTagManager")
3184
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
3185
+ '''Tag Manager which manages the tags for this resource.'''
3186
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
3187
+
3188
+ @builtins.property
3189
+ @jsii.member(jsii_name="cfnProperties")
3190
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
3191
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
3192
+
3193
+ @builtins.property
3194
+ @jsii.member(jsii_name="protectConfigurationRef")
3195
+ def protect_configuration_ref(self) -> _ProtectConfigurationReference_c0c38d05:
3196
+ '''A reference to a ProtectConfiguration resource.'''
3197
+ return typing.cast(_ProtectConfigurationReference_c0c38d05, jsii.get(self, "protectConfigurationRef"))
3198
+
3199
+ @builtins.property
3200
+ @jsii.member(jsii_name="countryRuleSet")
3201
+ def country_rule_set(
3202
+ self,
3203
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnProtectConfiguration.CountryRuleSetProperty"]]:
3204
+ '''The set of ``CountryRules`` you specify to control which countries End User Messaging can send your messages to.'''
3205
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnProtectConfiguration.CountryRuleSetProperty"]], jsii.get(self, "countryRuleSet"))
3206
+
3207
+ @country_rule_set.setter
3208
+ def country_rule_set(
3209
+ self,
3210
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnProtectConfiguration.CountryRuleSetProperty"]],
3211
+ ) -> None:
3212
+ if __debug__:
3213
+ type_hints = typing.get_type_hints(_typecheckingstub__f7688334aed3a536c2764f4570242ec488d7d2c28ffdc2e8acbe59bb8451f565)
3214
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3215
+ jsii.set(self, "countryRuleSet", value) # pyright: ignore[reportArgumentType]
3216
+
3217
+ @builtins.property
3218
+ @jsii.member(jsii_name="deletionProtectionEnabled")
3219
+ def deletion_protection_enabled(
3220
+ self,
3221
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
3222
+ '''The status of deletion protection for the protect configuration.'''
3223
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "deletionProtectionEnabled"))
3224
+
3225
+ @deletion_protection_enabled.setter
3226
+ def deletion_protection_enabled(
3227
+ self,
3228
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
3229
+ ) -> None:
3230
+ if __debug__:
3231
+ type_hints = typing.get_type_hints(_typecheckingstub__3dbdba6d79324e688bba9234d140d000e34ef557e1f8ce69b4c2334f65476a8b)
3232
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3233
+ jsii.set(self, "deletionProtectionEnabled", value) # pyright: ignore[reportArgumentType]
3234
+
3235
+ @builtins.property
3236
+ @jsii.member(jsii_name="tags")
3237
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
3238
+ '''An array of key and value pair tags that are associated with the resource.'''
3239
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
3240
+
3241
+ @tags.setter
3242
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
3243
+ if __debug__:
3244
+ type_hints = typing.get_type_hints(_typecheckingstub__426d023d6055eb2207d58490fb47ae5f69dff7c3c65aeea366fd1f204322407d)
3245
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3246
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
3247
+
3248
+ @jsii.data_type(
3249
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnProtectConfiguration.CountryRuleProperty",
3250
+ jsii_struct_bases=[],
3251
+ name_mapping={
3252
+ "country_code": "countryCode",
3253
+ "protect_status": "protectStatus",
3254
+ },
3255
+ )
3256
+ class CountryRuleProperty:
3257
+ def __init__(
3258
+ self,
3259
+ *,
3260
+ country_code: builtins.str,
3261
+ protect_status: builtins.str,
3262
+ ) -> None:
3263
+ '''Specifies the type of protection to use for a country.
3264
+
3265
+ For example, to set Canada as allowed, the ``CountryRule`` would be formatted as follows:
3266
+
3267
+ ``{ "CountryCode": "CA", "ProtectStatus": "ALLOW" }``
3268
+
3269
+ :param country_code: The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.
3270
+ :param protect_status: The types of protection that can be used.
3271
+
3272
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-protectconfiguration-countryrule.html
3273
+ :exampleMetadata: fixture=_generated
3274
+
3275
+ Example::
3276
+
3277
+ # The code below shows an example of how to instantiate this type.
3278
+ # The values are placeholders you should change.
3279
+ from aws_cdk import aws_smsvoice as smsvoice
3280
+
3281
+ country_rule_property = smsvoice.CfnProtectConfiguration.CountryRuleProperty(
3282
+ country_code="countryCode",
3283
+ protect_status="protectStatus"
3284
+ )
3285
+ '''
3286
+ if __debug__:
3287
+ type_hints = typing.get_type_hints(_typecheckingstub__7b78ebb9a5c2b273433377393613fec8c11697888ad94acc7f2c5eed1017f30a)
3288
+ check_type(argname="argument country_code", value=country_code, expected_type=type_hints["country_code"])
3289
+ check_type(argname="argument protect_status", value=protect_status, expected_type=type_hints["protect_status"])
3290
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3291
+ "country_code": country_code,
3292
+ "protect_status": protect_status,
3293
+ }
3294
+
3295
+ @builtins.property
3296
+ def country_code(self) -> builtins.str:
3297
+ '''The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.
3298
+
3299
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-protectconfiguration-countryrule.html#cfn-smsvoice-protectconfiguration-countryrule-countrycode
3300
+ '''
3301
+ result = self._values.get("country_code")
3302
+ assert result is not None, "Required property 'country_code' is missing"
3303
+ return typing.cast(builtins.str, result)
3304
+
3305
+ @builtins.property
3306
+ def protect_status(self) -> builtins.str:
3307
+ '''The types of protection that can be used.
3308
+
3309
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-protectconfiguration-countryrule.html#cfn-smsvoice-protectconfiguration-countryrule-protectstatus
3310
+ '''
3311
+ result = self._values.get("protect_status")
3312
+ assert result is not None, "Required property 'protect_status' is missing"
3313
+ return typing.cast(builtins.str, result)
3314
+
3315
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3316
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3317
+
3318
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3319
+ return not (rhs == self)
3320
+
3321
+ def __repr__(self) -> str:
3322
+ return "CountryRuleProperty(%s)" % ", ".join(
3323
+ k + "=" + repr(v) for k, v in self._values.items()
3324
+ )
3325
+
3326
+ @jsii.data_type(
3327
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnProtectConfiguration.CountryRuleSetProperty",
3328
+ jsii_struct_bases=[],
3329
+ name_mapping={"mms": "mms", "sms": "sms", "voice": "voice"},
3330
+ )
3331
+ class CountryRuleSetProperty:
3332
+ def __init__(
3333
+ self,
3334
+ *,
3335
+ mms: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnProtectConfiguration.CountryRuleProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
3336
+ sms: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnProtectConfiguration.CountryRuleProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
3337
+ voice: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnProtectConfiguration.CountryRuleProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
3338
+ ) -> None:
3339
+ '''The set of ``CountryRules`` you specify to control which countries End User Messaging can send your messages to.
3340
+
3341
+ .. epigraph::
3342
+
3343
+ If you don't specify all available ISO country codes in the ``CountryRuleSet`` for each number capability, the AWS CloudFormation drift detection feature will detect drift. This is because End User Messaging always returns all country codes.
3344
+
3345
+ :param mms: The set of ``CountryRule`` s to control which destination countries End User Messaging can send your MMS messages to.
3346
+ :param sms: The set of ``CountryRule`` s to control which destination countries End User Messaging can send your SMS messages to.
3347
+ :param voice: The set of ``CountryRule`` s to control which destination countries End User Messaging can send your VOICE messages to.
3348
+
3349
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-protectconfiguration-countryruleset.html
3350
+ :exampleMetadata: fixture=_generated
3351
+
3352
+ Example::
3353
+
3354
+ # The code below shows an example of how to instantiate this type.
3355
+ # The values are placeholders you should change.
3356
+ from aws_cdk import aws_smsvoice as smsvoice
3357
+
3358
+ country_rule_set_property = smsvoice.CfnProtectConfiguration.CountryRuleSetProperty(
3359
+ mms=[smsvoice.CfnProtectConfiguration.CountryRuleProperty(
3360
+ country_code="countryCode",
3361
+ protect_status="protectStatus"
3362
+ )],
3363
+ sms=[smsvoice.CfnProtectConfiguration.CountryRuleProperty(
3364
+ country_code="countryCode",
3365
+ protect_status="protectStatus"
3366
+ )],
3367
+ voice=[smsvoice.CfnProtectConfiguration.CountryRuleProperty(
3368
+ country_code="countryCode",
3369
+ protect_status="protectStatus"
3370
+ )]
3371
+ )
3372
+ '''
3373
+ if __debug__:
3374
+ type_hints = typing.get_type_hints(_typecheckingstub__81f93bccabab2bfa8d607d10049ef5df87296c85f8ebd25e0c1c13ee505638ff)
3375
+ check_type(argname="argument mms", value=mms, expected_type=type_hints["mms"])
3376
+ check_type(argname="argument sms", value=sms, expected_type=type_hints["sms"])
3377
+ check_type(argname="argument voice", value=voice, expected_type=type_hints["voice"])
3378
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3379
+ if mms is not None:
3380
+ self._values["mms"] = mms
3381
+ if sms is not None:
3382
+ self._values["sms"] = sms
3383
+ if voice is not None:
3384
+ self._values["voice"] = voice
3385
+
3386
+ @builtins.property
3387
+ def mms(
3388
+ self,
3389
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnProtectConfiguration.CountryRuleProperty"]]]]:
3390
+ '''The set of ``CountryRule`` s to control which destination countries End User Messaging can send your MMS messages to.
3391
+
3392
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-protectconfiguration-countryruleset.html#cfn-smsvoice-protectconfiguration-countryruleset-mms
3393
+ '''
3394
+ result = self._values.get("mms")
3395
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnProtectConfiguration.CountryRuleProperty"]]]], result)
3396
+
3397
+ @builtins.property
3398
+ def sms(
3399
+ self,
3400
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnProtectConfiguration.CountryRuleProperty"]]]]:
3401
+ '''The set of ``CountryRule`` s to control which destination countries End User Messaging can send your SMS messages to.
3402
+
3403
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-protectconfiguration-countryruleset.html#cfn-smsvoice-protectconfiguration-countryruleset-sms
3404
+ '''
3405
+ result = self._values.get("sms")
3406
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnProtectConfiguration.CountryRuleProperty"]]]], result)
3407
+
3408
+ @builtins.property
3409
+ def voice(
3410
+ self,
3411
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnProtectConfiguration.CountryRuleProperty"]]]]:
3412
+ '''The set of ``CountryRule`` s to control which destination countries End User Messaging can send your VOICE messages to.
3413
+
3414
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-protectconfiguration-countryruleset.html#cfn-smsvoice-protectconfiguration-countryruleset-voice
3415
+ '''
3416
+ result = self._values.get("voice")
3417
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnProtectConfiguration.CountryRuleProperty"]]]], result)
3418
+
3419
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3420
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3421
+
3422
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3423
+ return not (rhs == self)
3424
+
3425
+ def __repr__(self) -> str:
3426
+ return "CountryRuleSetProperty(%s)" % ", ".join(
3427
+ k + "=" + repr(v) for k, v in self._values.items()
3428
+ )
3429
+
3430
+
3431
+ @jsii.data_type(
3432
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnProtectConfigurationProps",
3433
+ jsii_struct_bases=[],
3434
+ name_mapping={
3435
+ "country_rule_set": "countryRuleSet",
3436
+ "deletion_protection_enabled": "deletionProtectionEnabled",
3437
+ "tags": "tags",
3438
+ },
3439
+ )
3440
+ class CfnProtectConfigurationProps:
3441
+ def __init__(
3442
+ self,
3443
+ *,
3444
+ country_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnProtectConfiguration.CountryRuleSetProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
3445
+ deletion_protection_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
3446
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
3447
+ ) -> None:
3448
+ '''Properties for defining a ``CfnProtectConfiguration``.
3449
+
3450
+ :param country_rule_set: The set of ``CountryRules`` you specify to control which countries End User Messaging can send your messages to.
3451
+ :param deletion_protection_enabled: The status of deletion protection for the protect configuration. When set to true deletion protection is enabled. By default this is set to false.
3452
+ :param tags: An array of key and value pair tags that are associated with the resource.
3453
+
3454
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-protectconfiguration.html
3455
+ :exampleMetadata: fixture=_generated
3456
+
3457
+ Example::
3458
+
3459
+ # The code below shows an example of how to instantiate this type.
3460
+ # The values are placeholders you should change.
3461
+ from aws_cdk import aws_smsvoice as smsvoice
3462
+
3463
+ cfn_protect_configuration_props = smsvoice.CfnProtectConfigurationProps(
3464
+ country_rule_set=smsvoice.CfnProtectConfiguration.CountryRuleSetProperty(
3465
+ mms=[smsvoice.CfnProtectConfiguration.CountryRuleProperty(
3466
+ country_code="countryCode",
3467
+ protect_status="protectStatus"
3468
+ )],
3469
+ sms=[smsvoice.CfnProtectConfiguration.CountryRuleProperty(
3470
+ country_code="countryCode",
3471
+ protect_status="protectStatus"
3472
+ )],
3473
+ voice=[smsvoice.CfnProtectConfiguration.CountryRuleProperty(
3474
+ country_code="countryCode",
3475
+ protect_status="protectStatus"
3476
+ )]
3477
+ ),
3478
+ deletion_protection_enabled=False,
3479
+ tags=[CfnTag(
3480
+ key="key",
3481
+ value="value"
3482
+ )]
3483
+ )
3484
+ '''
3485
+ if __debug__:
3486
+ type_hints = typing.get_type_hints(_typecheckingstub__78062d029c984e0fa8e4c182345051e18cb19671a3a88fec3a04ea748b2d3ea8)
3487
+ check_type(argname="argument country_rule_set", value=country_rule_set, expected_type=type_hints["country_rule_set"])
3488
+ check_type(argname="argument deletion_protection_enabled", value=deletion_protection_enabled, expected_type=type_hints["deletion_protection_enabled"])
3489
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
3490
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3491
+ if country_rule_set is not None:
3492
+ self._values["country_rule_set"] = country_rule_set
3493
+ if deletion_protection_enabled is not None:
3494
+ self._values["deletion_protection_enabled"] = deletion_protection_enabled
3495
+ if tags is not None:
3496
+ self._values["tags"] = tags
3497
+
3498
+ @builtins.property
3499
+ def country_rule_set(
3500
+ self,
3501
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnProtectConfiguration.CountryRuleSetProperty]]:
3502
+ '''The set of ``CountryRules`` you specify to control which countries End User Messaging can send your messages to.
3503
+
3504
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-protectconfiguration.html#cfn-smsvoice-protectconfiguration-countryruleset
3505
+ '''
3506
+ result = self._values.get("country_rule_set")
3507
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnProtectConfiguration.CountryRuleSetProperty]], result)
3508
+
3509
+ @builtins.property
3510
+ def deletion_protection_enabled(
3511
+ self,
3512
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
3513
+ '''The status of deletion protection for the protect configuration.
3514
+
3515
+ When set to true deletion protection is enabled. By default this is set to false.
3516
+
3517
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-protectconfiguration.html#cfn-smsvoice-protectconfiguration-deletionprotectionenabled
3518
+ '''
3519
+ result = self._values.get("deletion_protection_enabled")
3520
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
3521
+
3522
+ @builtins.property
3523
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
3524
+ '''An array of key and value pair tags that are associated with the resource.
3525
+
3526
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-protectconfiguration.html#cfn-smsvoice-protectconfiguration-tags
3527
+ '''
3528
+ result = self._values.get("tags")
3529
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
3530
+
3531
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3532
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3533
+
3534
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3535
+ return not (rhs == self)
3536
+
3537
+ def __repr__(self) -> str:
3538
+ return "CfnProtectConfigurationProps(%s)" % ", ".join(
3539
+ k + "=" + repr(v) for k, v in self._values.items()
3540
+ )
3541
+
3542
+
3543
+ @jsii.implements(_IInspectable_c2943556, _IResourcePolicyRef_99a2534c)
3544
+ class CfnResourcePolicy(
3545
+ _CfnResource_9df397a6,
3546
+ metaclass=jsii.JSIIMeta,
3547
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnResourcePolicy",
3548
+ ):
3549
+ '''Attaches a resource-based policy to a End User Messaging resource(phone number, sender Id, phone poll, or opt-out list) that is used for sharing the resource.
3550
+
3551
+ A shared resource can be a Pool, Opt-out list, Sender Id, or Phone number. For more information about resource-based policies, see `Working with shared resources <https://docs.aws.amazon.com/sms-voice/latest/userguide/shared-resources.html>`_ in the *End User Messaging User Guide* .
3552
+
3553
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-resourcepolicy.html
3554
+ :cloudformationResource: AWS::SMSVOICE::ResourcePolicy
3555
+ :exampleMetadata: fixture=_generated
3556
+
3557
+ Example::
3558
+
3559
+ # The code below shows an example of how to instantiate this type.
3560
+ # The values are placeholders you should change.
3561
+ from aws_cdk import aws_smsvoice as smsvoice
3562
+
3563
+ # policy_document: Any
3564
+
3565
+ cfn_resource_policy = smsvoice.CfnResourcePolicy(self, "MyCfnResourcePolicy",
3566
+ policy_document=policy_document,
3567
+ resource_arn="resourceArn"
3568
+ )
3569
+ '''
3570
+
3571
+ def __init__(
3572
+ self,
3573
+ scope: _constructs_77d1e7e8.Construct,
3574
+ id: builtins.str,
3575
+ *,
3576
+ policy_document: typing.Any,
3577
+ resource_arn: builtins.str,
3578
+ ) -> None:
3579
+ '''Create a new ``AWS::SMSVOICE::ResourcePolicy``.
3580
+
3581
+ :param scope: Scope in which this resource is defined.
3582
+ :param id: Construct identifier for this resource (unique in its scope).
3583
+ :param policy_document: The JSON formatted resource-based policy to attach.
3584
+ :param resource_arn: The Amazon Resource Name (ARN) of the End User Messaging resource attached to the resource-based policy.
3585
+ '''
3586
+ if __debug__:
3587
+ type_hints = typing.get_type_hints(_typecheckingstub__c761f216c3c857d8d515932ebd2444a6befe013279fe63864342547680d1115d)
3588
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3589
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3590
+ props = CfnResourcePolicyProps(
3591
+ policy_document=policy_document, resource_arn=resource_arn
3592
+ )
3593
+
3594
+ jsii.create(self.__class__, self, [scope, id, props])
3595
+
3596
+ @jsii.member(jsii_name="inspect")
3597
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
3598
+ '''Examines the CloudFormation resource and discloses attributes.
3599
+
3600
+ :param inspector: tree inspector to collect and process attributes.
3601
+ '''
3602
+ if __debug__:
3603
+ type_hints = typing.get_type_hints(_typecheckingstub__44a964822d891ae695297d7c3a58540daae45f123040853e030d7ffb06387086)
3604
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
3605
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
3606
+
3607
+ @jsii.member(jsii_name="renderProperties")
3608
+ def _render_properties(
3609
+ self,
3610
+ props: typing.Mapping[builtins.str, typing.Any],
3611
+ ) -> typing.Mapping[builtins.str, typing.Any]:
3612
+ '''
3613
+ :param props: -
3614
+ '''
3615
+ if __debug__:
3616
+ type_hints = typing.get_type_hints(_typecheckingstub__635deb5e16af752b1c299ada1d1bfd632b9ca21f34fd295d69073e5d2416ce83)
3617
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
3618
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
3619
+
3620
+ @jsii.python.classproperty
3621
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
3622
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
3623
+ '''The CloudFormation resource type name for this resource class.'''
3624
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
3625
+
3626
+ @builtins.property
3627
+ @jsii.member(jsii_name="cfnProperties")
3628
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
3629
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
3630
+
3631
+ @builtins.property
3632
+ @jsii.member(jsii_name="resourcePolicyRef")
3633
+ def resource_policy_ref(self) -> _ResourcePolicyReference_b377e19e:
3634
+ '''A reference to a ResourcePolicy resource.'''
3635
+ return typing.cast(_ResourcePolicyReference_b377e19e, jsii.get(self, "resourcePolicyRef"))
3636
+
3637
+ @builtins.property
3638
+ @jsii.member(jsii_name="policyDocument")
3639
+ def policy_document(self) -> typing.Any:
3640
+ '''The JSON formatted resource-based policy to attach.'''
3641
+ return typing.cast(typing.Any, jsii.get(self, "policyDocument"))
3642
+
3643
+ @policy_document.setter
3644
+ def policy_document(self, value: typing.Any) -> None:
3645
+ if __debug__:
3646
+ type_hints = typing.get_type_hints(_typecheckingstub__4a78fbd4533c352d8648be0f639d4450452998ccf2ffac29dc1b66dc02d207b3)
3647
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3648
+ jsii.set(self, "policyDocument", value) # pyright: ignore[reportArgumentType]
3649
+
3650
+ @builtins.property
3651
+ @jsii.member(jsii_name="resourceArn")
3652
+ def resource_arn(self) -> builtins.str:
3653
+ '''The Amazon Resource Name (ARN) of the End User Messaging resource attached to the resource-based policy.'''
3654
+ return typing.cast(builtins.str, jsii.get(self, "resourceArn"))
3655
+
3656
+ @resource_arn.setter
3657
+ def resource_arn(self, value: builtins.str) -> None:
3658
+ if __debug__:
3659
+ type_hints = typing.get_type_hints(_typecheckingstub__8aa28206c4f9b177dc462240fc0847f3c51410a6c2d2d6e506145ebcaad78170)
3660
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3661
+ jsii.set(self, "resourceArn", value) # pyright: ignore[reportArgumentType]
3662
+
3663
+
3664
+ @jsii.data_type(
3665
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnResourcePolicyProps",
3666
+ jsii_struct_bases=[],
3667
+ name_mapping={"policy_document": "policyDocument", "resource_arn": "resourceArn"},
3668
+ )
3669
+ class CfnResourcePolicyProps:
3670
+ def __init__(
3671
+ self,
3672
+ *,
3673
+ policy_document: typing.Any,
3674
+ resource_arn: builtins.str,
3675
+ ) -> None:
3676
+ '''Properties for defining a ``CfnResourcePolicy``.
3677
+
3678
+ :param policy_document: The JSON formatted resource-based policy to attach.
3679
+ :param resource_arn: The Amazon Resource Name (ARN) of the End User Messaging resource attached to the resource-based policy.
3680
+
3681
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-resourcepolicy.html
3682
+ :exampleMetadata: fixture=_generated
3683
+
3684
+ Example::
3685
+
3686
+ # The code below shows an example of how to instantiate this type.
3687
+ # The values are placeholders you should change.
3688
+ from aws_cdk import aws_smsvoice as smsvoice
3689
+
3690
+ # policy_document: Any
3691
+
3692
+ cfn_resource_policy_props = smsvoice.CfnResourcePolicyProps(
3693
+ policy_document=policy_document,
3694
+ resource_arn="resourceArn"
3695
+ )
3696
+ '''
3697
+ if __debug__:
3698
+ type_hints = typing.get_type_hints(_typecheckingstub__52e1771fac2c1d0d2462745e3a14b0f3c7951b49866b77d8397eb55313b71662)
3699
+ check_type(argname="argument policy_document", value=policy_document, expected_type=type_hints["policy_document"])
3700
+ check_type(argname="argument resource_arn", value=resource_arn, expected_type=type_hints["resource_arn"])
3701
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3702
+ "policy_document": policy_document,
3703
+ "resource_arn": resource_arn,
3704
+ }
3705
+
3706
+ @builtins.property
3707
+ def policy_document(self) -> typing.Any:
3708
+ '''The JSON formatted resource-based policy to attach.
3709
+
3710
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-resourcepolicy.html#cfn-smsvoice-resourcepolicy-policydocument
3711
+ '''
3712
+ result = self._values.get("policy_document")
3713
+ assert result is not None, "Required property 'policy_document' is missing"
3714
+ return typing.cast(typing.Any, result)
3715
+
3716
+ @builtins.property
3717
+ def resource_arn(self) -> builtins.str:
3718
+ '''The Amazon Resource Name (ARN) of the End User Messaging resource attached to the resource-based policy.
3719
+
3720
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-resourcepolicy.html#cfn-smsvoice-resourcepolicy-resourcearn
3721
+ '''
3722
+ result = self._values.get("resource_arn")
3723
+ assert result is not None, "Required property 'resource_arn' is missing"
3724
+ return typing.cast(builtins.str, result)
3725
+
3726
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3727
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3728
+
3729
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3730
+ return not (rhs == self)
3731
+
3732
+ def __repr__(self) -> str:
3733
+ return "CfnResourcePolicyProps(%s)" % ", ".join(
3734
+ k + "=" + repr(v) for k, v in self._values.items()
3735
+ )
3736
+
3737
+
3738
+ @jsii.implements(_IInspectable_c2943556, _ISenderIdRef_c6023099, _ITaggableV2_4e6798f8)
3739
+ class CfnSenderId(
3740
+ _CfnResource_9df397a6,
3741
+ metaclass=jsii.JSIIMeta,
3742
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnSenderId",
3743
+ ):
3744
+ '''Request a new sender ID that doesn't require registration.
3745
+
3746
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-senderid.html
3747
+ :cloudformationResource: AWS::SMSVOICE::SenderId
3748
+ :exampleMetadata: fixture=_generated
3749
+
3750
+ Example::
3751
+
3752
+ # The code below shows an example of how to instantiate this type.
3753
+ # The values are placeholders you should change.
3754
+ from aws_cdk import aws_smsvoice as smsvoice
3755
+
3756
+ cfn_sender_id = smsvoice.CfnSenderId(self, "MyCfnSenderId",
3757
+ iso_country_code="isoCountryCode",
3758
+ sender_id="senderId",
3759
+
3760
+ # the properties below are optional
3761
+ deletion_protection_enabled=False,
3762
+ tags=[CfnTag(
3763
+ key="key",
3764
+ value="value"
3765
+ )]
3766
+ )
3767
+ '''
3768
+
3769
+ def __init__(
3770
+ self,
3771
+ scope: _constructs_77d1e7e8.Construct,
3772
+ id: builtins.str,
3773
+ *,
3774
+ iso_country_code: builtins.str,
3775
+ sender_id: builtins.str,
3776
+ deletion_protection_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
3777
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
3778
+ ) -> None:
3779
+ '''Create a new ``AWS::SMSVOICE::SenderId``.
3780
+
3781
+ :param scope: Scope in which this resource is defined.
3782
+ :param id: Construct identifier for this resource (unique in its scope).
3783
+ :param iso_country_code: The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.
3784
+ :param sender_id: The sender ID string to request.
3785
+ :param deletion_protection_enabled: By default this is set to false. When set to true the sender ID can't be deleted.
3786
+ :param tags: An array of tags (key and value pairs) to associate with the sender ID.
3787
+ '''
3788
+ if __debug__:
3789
+ type_hints = typing.get_type_hints(_typecheckingstub__579e8861eeec43305720b40c1d4cd3b273ca5261f965f0fa1cc4ee0e0a84e828)
3790
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3791
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3792
+ props = CfnSenderIdProps(
3793
+ iso_country_code=iso_country_code,
3794
+ sender_id=sender_id,
3795
+ deletion_protection_enabled=deletion_protection_enabled,
3796
+ tags=tags,
3797
+ )
3798
+
3799
+ jsii.create(self.__class__, self, [scope, id, props])
3800
+
3801
+ @jsii.member(jsii_name="inspect")
3802
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
3803
+ '''Examines the CloudFormation resource and discloses attributes.
3804
+
3805
+ :param inspector: tree inspector to collect and process attributes.
3806
+ '''
3807
+ if __debug__:
3808
+ type_hints = typing.get_type_hints(_typecheckingstub__824bd75372c0cb805352438204088f4be0bdaf1e2b369e61edb178255f394f92)
3809
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
3810
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
3811
+
3812
+ @jsii.member(jsii_name="renderProperties")
3813
+ def _render_properties(
3814
+ self,
3815
+ props: typing.Mapping[builtins.str, typing.Any],
3816
+ ) -> typing.Mapping[builtins.str, typing.Any]:
3817
+ '''
3818
+ :param props: -
3819
+ '''
3820
+ if __debug__:
3821
+ type_hints = typing.get_type_hints(_typecheckingstub__1804375aac96c7387e0282832029782ac01dfd43c99ec449a00918e05bac9bb1)
3822
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
3823
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
3824
+
3825
+ @jsii.python.classproperty
3826
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
3827
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
3828
+ '''The CloudFormation resource type name for this resource class.'''
3829
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
3830
+
3831
+ @builtins.property
3832
+ @jsii.member(jsii_name="attrArn")
3833
+ def attr_arn(self) -> builtins.str:
3834
+ '''The Amazon Resource Name of the ``SenderId`` .
3835
+
3836
+ :cloudformationAttribute: Arn
3837
+ '''
3838
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
3839
+
3840
+ @builtins.property
3841
+ @jsii.member(jsii_name="cdkTagManager")
3842
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
3843
+ '''Tag Manager which manages the tags for this resource.'''
3844
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
3845
+
3846
+ @builtins.property
3847
+ @jsii.member(jsii_name="cfnProperties")
3848
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
3849
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
3850
+
3851
+ @builtins.property
3852
+ @jsii.member(jsii_name="senderIdRef")
3853
+ def sender_id_ref(self) -> _SenderIdReference_10c27954:
3854
+ '''A reference to a SenderId resource.'''
3855
+ return typing.cast(_SenderIdReference_10c27954, jsii.get(self, "senderIdRef"))
3856
+
3857
+ @builtins.property
3858
+ @jsii.member(jsii_name="isoCountryCode")
3859
+ def iso_country_code(self) -> builtins.str:
3860
+ '''The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.'''
3861
+ return typing.cast(builtins.str, jsii.get(self, "isoCountryCode"))
3862
+
3863
+ @iso_country_code.setter
3864
+ def iso_country_code(self, value: builtins.str) -> None:
3865
+ if __debug__:
3866
+ type_hints = typing.get_type_hints(_typecheckingstub__504871ed12b07cce4e2a7fb88d40940361b5a8458ac4310092d47e2989d57d6e)
3867
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3868
+ jsii.set(self, "isoCountryCode", value) # pyright: ignore[reportArgumentType]
3869
+
3870
+ @builtins.property
3871
+ @jsii.member(jsii_name="senderId")
3872
+ def sender_id(self) -> builtins.str:
3873
+ '''The sender ID string to request.'''
3874
+ return typing.cast(builtins.str, jsii.get(self, "senderId"))
3875
+
3876
+ @sender_id.setter
3877
+ def sender_id(self, value: builtins.str) -> None:
3878
+ if __debug__:
3879
+ type_hints = typing.get_type_hints(_typecheckingstub__78c3b032bfb2bfb0c519137cf645e257ba65541833202fa1c11e4de0df7a78b8)
3880
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3881
+ jsii.set(self, "senderId", value) # pyright: ignore[reportArgumentType]
3882
+
3883
+ @builtins.property
3884
+ @jsii.member(jsii_name="deletionProtectionEnabled")
3885
+ def deletion_protection_enabled(
3886
+ self,
3887
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
3888
+ '''By default this is set to false.'''
3889
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "deletionProtectionEnabled"))
3890
+
3891
+ @deletion_protection_enabled.setter
3892
+ def deletion_protection_enabled(
3893
+ self,
3894
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
3895
+ ) -> None:
3896
+ if __debug__:
3897
+ type_hints = typing.get_type_hints(_typecheckingstub__91773bda3ac0eb8138096da1ce6b25e2934b8604161e1ed8b5b998a2e2a57883)
3898
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3899
+ jsii.set(self, "deletionProtectionEnabled", value) # pyright: ignore[reportArgumentType]
3900
+
3901
+ @builtins.property
3902
+ @jsii.member(jsii_name="tags")
3903
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
3904
+ '''An array of tags (key and value pairs) to associate with the sender ID.'''
3905
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
3906
+
3907
+ @tags.setter
3908
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
3909
+ if __debug__:
3910
+ type_hints = typing.get_type_hints(_typecheckingstub__032142149c9722a7758daf53b4af657dc1c49bbf0817db09eaabeb3076cf7c07)
3911
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3912
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
3913
+
3914
+
3915
+ @jsii.data_type(
3916
+ jsii_type="aws-cdk-lib.aws_smsvoice.CfnSenderIdProps",
3917
+ jsii_struct_bases=[],
3918
+ name_mapping={
3919
+ "iso_country_code": "isoCountryCode",
3920
+ "sender_id": "senderId",
3921
+ "deletion_protection_enabled": "deletionProtectionEnabled",
3922
+ "tags": "tags",
3923
+ },
3924
+ )
3925
+ class CfnSenderIdProps:
3926
+ def __init__(
3927
+ self,
3928
+ *,
3929
+ iso_country_code: builtins.str,
3930
+ sender_id: builtins.str,
3931
+ deletion_protection_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
3932
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
3933
+ ) -> None:
3934
+ '''Properties for defining a ``CfnSenderId``.
3935
+
3936
+ :param iso_country_code: The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.
3937
+ :param sender_id: The sender ID string to request.
3938
+ :param deletion_protection_enabled: By default this is set to false. When set to true the sender ID can't be deleted.
3939
+ :param tags: An array of tags (key and value pairs) to associate with the sender ID.
3940
+
3941
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-senderid.html
3942
+ :exampleMetadata: fixture=_generated
3943
+
3944
+ Example::
3945
+
3946
+ # The code below shows an example of how to instantiate this type.
3947
+ # The values are placeholders you should change.
3948
+ from aws_cdk import aws_smsvoice as smsvoice
3949
+
3950
+ cfn_sender_id_props = smsvoice.CfnSenderIdProps(
3951
+ iso_country_code="isoCountryCode",
3952
+ sender_id="senderId",
3953
+
3954
+ # the properties below are optional
3955
+ deletion_protection_enabled=False,
3956
+ tags=[CfnTag(
3957
+ key="key",
3958
+ value="value"
3959
+ )]
3960
+ )
3961
+ '''
3962
+ if __debug__:
3963
+ type_hints = typing.get_type_hints(_typecheckingstub__e4efc3bfced2a81fa707bcebc646c7b881da4e547ba3c3005837a6b500a365e2)
3964
+ check_type(argname="argument iso_country_code", value=iso_country_code, expected_type=type_hints["iso_country_code"])
3965
+ check_type(argname="argument sender_id", value=sender_id, expected_type=type_hints["sender_id"])
3966
+ check_type(argname="argument deletion_protection_enabled", value=deletion_protection_enabled, expected_type=type_hints["deletion_protection_enabled"])
3967
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
3968
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3969
+ "iso_country_code": iso_country_code,
3970
+ "sender_id": sender_id,
3971
+ }
3972
+ if deletion_protection_enabled is not None:
3973
+ self._values["deletion_protection_enabled"] = deletion_protection_enabled
3974
+ if tags is not None:
3975
+ self._values["tags"] = tags
3976
+
3977
+ @builtins.property
3978
+ def iso_country_code(self) -> builtins.str:
3979
+ '''The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.
3980
+
3981
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-senderid.html#cfn-smsvoice-senderid-isocountrycode
3982
+ '''
3983
+ result = self._values.get("iso_country_code")
3984
+ assert result is not None, "Required property 'iso_country_code' is missing"
3985
+ return typing.cast(builtins.str, result)
3986
+
3987
+ @builtins.property
3988
+ def sender_id(self) -> builtins.str:
3989
+ '''The sender ID string to request.
3990
+
3991
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-senderid.html#cfn-smsvoice-senderid-senderid
3992
+ '''
3993
+ result = self._values.get("sender_id")
3994
+ assert result is not None, "Required property 'sender_id' is missing"
3995
+ return typing.cast(builtins.str, result)
3996
+
3997
+ @builtins.property
3998
+ def deletion_protection_enabled(
3999
+ self,
4000
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
4001
+ '''By default this is set to false.
4002
+
4003
+ When set to true the sender ID can't be deleted.
4004
+
4005
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-senderid.html#cfn-smsvoice-senderid-deletionprotectionenabled
4006
+ '''
4007
+ result = self._values.get("deletion_protection_enabled")
4008
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
4009
+
4010
+ @builtins.property
4011
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
4012
+ '''An array of tags (key and value pairs) to associate with the sender ID.
4013
+
4014
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-senderid.html#cfn-smsvoice-senderid-tags
4015
+ '''
4016
+ result = self._values.get("tags")
4017
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
4018
+
4019
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4020
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4021
+
4022
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4023
+ return not (rhs == self)
4024
+
4025
+ def __repr__(self) -> str:
4026
+ return "CfnSenderIdProps(%s)" % ", ".join(
4027
+ k + "=" + repr(v) for k, v in self._values.items()
4028
+ )
4029
+
4030
+
4031
+ __all__ = [
4032
+ "CfnConfigurationSet",
4033
+ "CfnConfigurationSetProps",
4034
+ "CfnOptOutList",
4035
+ "CfnOptOutListProps",
4036
+ "CfnPhoneNumber",
4037
+ "CfnPhoneNumberProps",
4038
+ "CfnPool",
4039
+ "CfnPoolProps",
4040
+ "CfnProtectConfiguration",
4041
+ "CfnProtectConfigurationProps",
4042
+ "CfnResourcePolicy",
4043
+ "CfnResourcePolicyProps",
4044
+ "CfnSenderId",
4045
+ "CfnSenderIdProps",
4046
+ ]
4047
+
4048
+ publication.publish()
4049
+
4050
+ def _typecheckingstub__40dfc64df6dc2c0a72f2a15a90352d0f45df52177e2673d853e93c45f6ff9bfe(
4051
+ scope: _constructs_77d1e7e8.Construct,
4052
+ id: builtins.str,
4053
+ *,
4054
+ configuration_set_name: typing.Optional[builtins.str] = None,
4055
+ default_sender_id: typing.Optional[builtins.str] = None,
4056
+ event_destinations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnConfigurationSet.EventDestinationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
4057
+ message_feedback_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4058
+ protect_configuration_id: typing.Optional[builtins.str] = None,
4059
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4060
+ ) -> None:
4061
+ """Type checking stubs"""
4062
+ pass
4063
+
4064
+ def _typecheckingstub__bd09a8e0a95f96b6bf6ade58869d230ef8c16df306e2dba74636ef174182860e(
4065
+ scope: _constructs_77d1e7e8.Construct,
4066
+ id: builtins.str,
4067
+ arn: builtins.str,
4068
+ ) -> None:
4069
+ """Type checking stubs"""
4070
+ pass
4071
+
4072
+ def _typecheckingstub__b2808c7d63f3da460cc51d6d5193de4fa41ad6dd91676f0cdf055c67e7f58e61(
4073
+ scope: _constructs_77d1e7e8.Construct,
4074
+ id: builtins.str,
4075
+ configuration_set_name: builtins.str,
4076
+ ) -> None:
4077
+ """Type checking stubs"""
4078
+ pass
4079
+
4080
+ def _typecheckingstub__0b8914b55c8c9175cb9d85ebbc19bd9b2ce8ee1fa9391da5cfe4b1d45d0285f4(
4081
+ inspector: _TreeInspector_488e0dd5,
4082
+ ) -> None:
4083
+ """Type checking stubs"""
4084
+ pass
4085
+
4086
+ def _typecheckingstub__b90e7a4776972d39f70067111684f2db6512204052e5e5368d9053b54bac6e9e(
4087
+ props: typing.Mapping[builtins.str, typing.Any],
4088
+ ) -> None:
4089
+ """Type checking stubs"""
4090
+ pass
4091
+
4092
+ def _typecheckingstub__9544d5ead16000fe8542a97ab4304b9e73471d41cf77a7fcc7c28d0bf4588e3e(
4093
+ value: typing.Optional[builtins.str],
4094
+ ) -> None:
4095
+ """Type checking stubs"""
4096
+ pass
4097
+
4098
+ def _typecheckingstub__186ea9a50af63ea8848866e4b7a25b25d580298e214617e976cdc49fd323660a(
4099
+ value: typing.Optional[builtins.str],
4100
+ ) -> None:
4101
+ """Type checking stubs"""
4102
+ pass
4103
+
4104
+ def _typecheckingstub__2057faf5fb512456c4bc44fe35430b7693158df99536b671cd30ec082b564004(
4105
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnConfigurationSet.EventDestinationProperty]]]],
4106
+ ) -> None:
4107
+ """Type checking stubs"""
4108
+ pass
4109
+
4110
+ def _typecheckingstub__1700a269dd97f8f5889c42356bc0625812eb38d345cd6ab0a47dc65604b9ef5c(
4111
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
4112
+ ) -> None:
4113
+ """Type checking stubs"""
4114
+ pass
4115
+
4116
+ def _typecheckingstub__33df2949530ac82bfead10df97e9fd3007e7ef3723aea6ac4426bd0d08d7c469(
4117
+ value: typing.Optional[builtins.str],
4118
+ ) -> None:
4119
+ """Type checking stubs"""
4120
+ pass
4121
+
4122
+ def _typecheckingstub__7aeb00cd60ff4e73014460e95c4362f82c1d73f0b45e4e453a05465afef34da6(
4123
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
4124
+ ) -> None:
4125
+ """Type checking stubs"""
4126
+ pass
4127
+
4128
+ def _typecheckingstub__24be119a3ef65de30f1eb147ba1a3eac5f2a81fdd8f8285d98a680dc254f34e1(
4129
+ *,
4130
+ iam_role_arn: builtins.str,
4131
+ log_group_arn: builtins.str,
4132
+ ) -> None:
4133
+ """Type checking stubs"""
4134
+ pass
4135
+
4136
+ def _typecheckingstub__136edfd45f7d2c0b5dbe4db8977656e8be370d61eec90532e5a6d3d075f0d814(
4137
+ *,
4138
+ enabled: typing.Union[builtins.bool, _IResolvable_da3f097b],
4139
+ event_destination_name: builtins.str,
4140
+ matching_event_types: typing.Sequence[builtins.str],
4141
+ cloud_watch_logs_destination: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnConfigurationSet.CloudWatchLogsDestinationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
4142
+ kinesis_firehose_destination: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnConfigurationSet.KinesisFirehoseDestinationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
4143
+ sns_destination: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnConfigurationSet.SnsDestinationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
4144
+ ) -> None:
4145
+ """Type checking stubs"""
4146
+ pass
4147
+
4148
+ def _typecheckingstub__58b63fc19b4a1791f46cfa02c2314f7bd36e3c4e54eceb6eb28919afd11059d7(
4149
+ *,
4150
+ delivery_stream_arn: builtins.str,
4151
+ iam_role_arn: builtins.str,
4152
+ ) -> None:
4153
+ """Type checking stubs"""
4154
+ pass
4155
+
4156
+ def _typecheckingstub__e91819987879ee4dec183c370f8f16a53dffc5fa977336312072fb1db406fdaa(
4157
+ *,
4158
+ topic_arn: builtins.str,
4159
+ ) -> None:
4160
+ """Type checking stubs"""
4161
+ pass
4162
+
4163
+ def _typecheckingstub__259d6b5c44c463276b6d9a529504479acbd49524ef7bd8a0d1d913ca2d1a58a3(
4164
+ *,
4165
+ configuration_set_name: typing.Optional[builtins.str] = None,
4166
+ default_sender_id: typing.Optional[builtins.str] = None,
4167
+ event_destinations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnConfigurationSet.EventDestinationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
4168
+ message_feedback_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4169
+ protect_configuration_id: typing.Optional[builtins.str] = None,
4170
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4171
+ ) -> None:
4172
+ """Type checking stubs"""
4173
+ pass
4174
+
4175
+ def _typecheckingstub__ea38a41fadafddeabec02441f39c67873aa2e47aa1a61c10bd392305083031cc(
4176
+ scope: _constructs_77d1e7e8.Construct,
4177
+ id: builtins.str,
4178
+ *,
4179
+ opt_out_list_name: typing.Optional[builtins.str] = None,
4180
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4181
+ ) -> None:
4182
+ """Type checking stubs"""
4183
+ pass
4184
+
4185
+ def _typecheckingstub__124a7f8a72ebe536ef9b7171326a8506b93040fca900f1f72574cfb0fcf6615a(
4186
+ scope: _constructs_77d1e7e8.Construct,
4187
+ id: builtins.str,
4188
+ arn: builtins.str,
4189
+ ) -> None:
4190
+ """Type checking stubs"""
4191
+ pass
4192
+
4193
+ def _typecheckingstub__622c503ac8ae593c9642ed89cd09ede46c174901d31e6df008c2338639830854(
4194
+ scope: _constructs_77d1e7e8.Construct,
4195
+ id: builtins.str,
4196
+ opt_out_list_name: builtins.str,
4197
+ ) -> None:
4198
+ """Type checking stubs"""
4199
+ pass
4200
+
4201
+ def _typecheckingstub__5630a2d0159373226ec89552708a8f793a351be99f553dcc655511073c80a14d(
4202
+ inspector: _TreeInspector_488e0dd5,
4203
+ ) -> None:
4204
+ """Type checking stubs"""
4205
+ pass
4206
+
4207
+ def _typecheckingstub__b2c7567ba9b82c785acaef7a9a31d670d66d6324b4250270a7b78caf5a610f3f(
4208
+ props: typing.Mapping[builtins.str, typing.Any],
4209
+ ) -> None:
4210
+ """Type checking stubs"""
4211
+ pass
4212
+
4213
+ def _typecheckingstub__6977ae7d56495d20d799b91baa1ff8181a6a95f332ee17575071e0fb1eb4e0c5(
4214
+ value: typing.Optional[builtins.str],
4215
+ ) -> None:
4216
+ """Type checking stubs"""
4217
+ pass
4218
+
4219
+ def _typecheckingstub__35f7671a5586fbcab6fa7a0f53bc16a7df7f5b446336ced45e9ee9df5e1ba997(
4220
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
4221
+ ) -> None:
4222
+ """Type checking stubs"""
4223
+ pass
4224
+
4225
+ def _typecheckingstub__05e14e4fd94b66cfd8dd4c43fcb451f3af9853476744da6a554feeac6fa9de3e(
4226
+ *,
4227
+ opt_out_list_name: typing.Optional[builtins.str] = None,
4228
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4229
+ ) -> None:
4230
+ """Type checking stubs"""
4231
+ pass
4232
+
4233
+ def _typecheckingstub__32252c96682ee51fe1d1c58cae6b6350f48d46d59b1d32994ea66401975b964d(
4234
+ scope: _constructs_77d1e7e8.Construct,
4235
+ id: builtins.str,
4236
+ *,
4237
+ iso_country_code: builtins.str,
4238
+ mandatory_keywords: typing.Union[_IResolvable_da3f097b, typing.Union[CfnPhoneNumber.MandatoryKeywordsProperty, typing.Dict[builtins.str, typing.Any]]],
4239
+ number_capabilities: typing.Sequence[builtins.str],
4240
+ number_type: builtins.str,
4241
+ deletion_protection_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4242
+ optional_keywords: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnPhoneNumber.OptionalKeywordProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
4243
+ opt_out_list_name: typing.Optional[builtins.str] = None,
4244
+ self_managed_opt_outs_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4245
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4246
+ two_way: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnPhoneNumber.TwoWayProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
4247
+ ) -> None:
4248
+ """Type checking stubs"""
4249
+ pass
4250
+
4251
+ def _typecheckingstub__5dfc18d9f79d711e366b295b9bc0e833aa10566992f8cba470cdf07bb5e180e7(
4252
+ scope: _constructs_77d1e7e8.Construct,
4253
+ id: builtins.str,
4254
+ arn: builtins.str,
4255
+ ) -> None:
4256
+ """Type checking stubs"""
4257
+ pass
4258
+
4259
+ def _typecheckingstub__1f23d5045dfaa44877e6d3c4cb6efd3e609dbb687fa2b056b6a62d4ef75a4f62(
4260
+ scope: _constructs_77d1e7e8.Construct,
4261
+ id: builtins.str,
4262
+ phone_number_id: builtins.str,
4263
+ ) -> None:
4264
+ """Type checking stubs"""
4265
+ pass
4266
+
4267
+ def _typecheckingstub__3790bd7e3f6d7b04591d9b408e55b3ef461fabc7e864e5952080929d0ba44a15(
4268
+ inspector: _TreeInspector_488e0dd5,
4269
+ ) -> None:
4270
+ """Type checking stubs"""
4271
+ pass
4272
+
4273
+ def _typecheckingstub__40e9d59fae1d01e88a2819b8b9178800aed746c4dce8d3f2966540129b00b0a1(
4274
+ props: typing.Mapping[builtins.str, typing.Any],
4275
+ ) -> None:
4276
+ """Type checking stubs"""
4277
+ pass
4278
+
4279
+ def _typecheckingstub__c3daefae7d41f3fa1c90cfb87146384791ee02c03a5d3a0408e3e5de6616d27f(
4280
+ value: builtins.str,
4281
+ ) -> None:
4282
+ """Type checking stubs"""
4283
+ pass
4284
+
4285
+ def _typecheckingstub__6ad292d2f30a2e7553a75e0648343c13f6d37e2c991e6ccfd9770c6cea89b4e3(
4286
+ value: typing.Union[_IResolvable_da3f097b, CfnPhoneNumber.MandatoryKeywordsProperty],
4287
+ ) -> None:
4288
+ """Type checking stubs"""
4289
+ pass
4290
+
4291
+ def _typecheckingstub__0e9985ae1545495747fd53a2ed838fb3cbdfd61c9c5bbd83714551bb40074671(
4292
+ value: typing.List[builtins.str],
4293
+ ) -> None:
4294
+ """Type checking stubs"""
4295
+ pass
4296
+
4297
+ def _typecheckingstub__20e8aed3a5492034d382aada9cca5055d1a5f90debfb0ada0b8ecbd5f6a1f4a9(
4298
+ value: builtins.str,
4299
+ ) -> None:
4300
+ """Type checking stubs"""
4301
+ pass
4302
+
4303
+ def _typecheckingstub__4ce7c946e28467484eeaef46ab5c378bc4d7cf5fabda1308e46f327ee70c4e86(
4304
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
4305
+ ) -> None:
4306
+ """Type checking stubs"""
4307
+ pass
4308
+
4309
+ def _typecheckingstub__2775cd03531ef2f5f4bb38b83c1e7e323c18a0def6ec05b2c4d012ace1ee4d30(
4310
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnPhoneNumber.OptionalKeywordProperty]]]],
4311
+ ) -> None:
4312
+ """Type checking stubs"""
4313
+ pass
4314
+
4315
+ def _typecheckingstub__56421d9c352121c21655ab5960b103facff7e83cb1168aa10daabb27bea523e0(
4316
+ value: typing.Optional[builtins.str],
4317
+ ) -> None:
4318
+ """Type checking stubs"""
4319
+ pass
4320
+
4321
+ def _typecheckingstub__04bf768fe622599912b3a021c396ad4d893de46bcad374eb200ccebe72a3dfd4(
4322
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
4323
+ ) -> None:
4324
+ """Type checking stubs"""
4325
+ pass
4326
+
4327
+ def _typecheckingstub__a29c798a3abd770efeb946661639d64644ab5a22b5c349f873ed430dd74b78c6(
4328
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
4329
+ ) -> None:
4330
+ """Type checking stubs"""
4331
+ pass
4332
+
4333
+ def _typecheckingstub__9d4007552b2a5c50d580a9b5ece55fcd38284b10f7943be06e671add40a07f4c(
4334
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnPhoneNumber.TwoWayProperty]],
4335
+ ) -> None:
4336
+ """Type checking stubs"""
4337
+ pass
4338
+
4339
+ def _typecheckingstub__a5e074639964bff18f1f8daf8a4ed0ce8129ab17f01eb32a431c9c79a86d1255(
4340
+ *,
4341
+ message: builtins.str,
4342
+ ) -> None:
4343
+ """Type checking stubs"""
4344
+ pass
4345
+
4346
+ def _typecheckingstub__fa76e2295a1af1a67472d918d805b489816187f735ec76ae1339b5a83284d30d(
4347
+ *,
4348
+ help: typing.Union[_IResolvable_da3f097b, typing.Union[CfnPhoneNumber.MandatoryKeywordProperty, typing.Dict[builtins.str, typing.Any]]],
4349
+ stop: typing.Union[_IResolvable_da3f097b, typing.Union[CfnPhoneNumber.MandatoryKeywordProperty, typing.Dict[builtins.str, typing.Any]]],
4350
+ ) -> None:
4351
+ """Type checking stubs"""
4352
+ pass
4353
+
4354
+ def _typecheckingstub__9808c2e33055bb3bc02e4746aeecf872f1d29195fd50764e4cf01373eb6e2164(
4355
+ *,
4356
+ action: builtins.str,
4357
+ keyword: builtins.str,
4358
+ message: builtins.str,
4359
+ ) -> None:
4360
+ """Type checking stubs"""
4361
+ pass
4362
+
4363
+ def _typecheckingstub__67ff2e896f2988f660e4ee2793f64f4dc62d209cbf013b2753d3b0347a66ee8c(
4364
+ *,
4365
+ enabled: typing.Union[builtins.bool, _IResolvable_da3f097b],
4366
+ channel_arn: typing.Optional[builtins.str] = None,
4367
+ channel_role: typing.Optional[builtins.str] = None,
4368
+ ) -> None:
4369
+ """Type checking stubs"""
4370
+ pass
4371
+
4372
+ def _typecheckingstub__b70b72342e4afd37b29a5920f6cf7f0c27b8afc2a3cf6820cba50a42c515dbed(
4373
+ *,
4374
+ iso_country_code: builtins.str,
4375
+ mandatory_keywords: typing.Union[_IResolvable_da3f097b, typing.Union[CfnPhoneNumber.MandatoryKeywordsProperty, typing.Dict[builtins.str, typing.Any]]],
4376
+ number_capabilities: typing.Sequence[builtins.str],
4377
+ number_type: builtins.str,
4378
+ deletion_protection_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4379
+ optional_keywords: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnPhoneNumber.OptionalKeywordProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
4380
+ opt_out_list_name: typing.Optional[builtins.str] = None,
4381
+ self_managed_opt_outs_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4382
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4383
+ two_way: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnPhoneNumber.TwoWayProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
4384
+ ) -> None:
4385
+ """Type checking stubs"""
4386
+ pass
4387
+
4388
+ def _typecheckingstub__59ec152307c1b9f9d8e2674741d58c16f421e0af6e557203e2d5863f8dd4ec54(
4389
+ scope: _constructs_77d1e7e8.Construct,
4390
+ id: builtins.str,
4391
+ *,
4392
+ mandatory_keywords: typing.Union[_IResolvable_da3f097b, typing.Union[CfnPool.MandatoryKeywordsProperty, typing.Dict[builtins.str, typing.Any]]],
4393
+ origination_identities: typing.Sequence[builtins.str],
4394
+ deletion_protection_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4395
+ optional_keywords: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnPool.OptionalKeywordProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
4396
+ opt_out_list_name: typing.Optional[builtins.str] = None,
4397
+ self_managed_opt_outs_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4398
+ shared_routes_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4399
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4400
+ two_way: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnPool.TwoWayProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
4401
+ ) -> None:
4402
+ """Type checking stubs"""
4403
+ pass
4404
+
4405
+ def _typecheckingstub__44b74b415a2e8fb8ef92df3df07db6ad2cc85726f2444e9b9d644550e1c607ba(
4406
+ scope: _constructs_77d1e7e8.Construct,
4407
+ id: builtins.str,
4408
+ arn: builtins.str,
4409
+ ) -> None:
4410
+ """Type checking stubs"""
4411
+ pass
4412
+
4413
+ def _typecheckingstub__5ce42e7a80b4b0868c7483a5f4ddc88ae813c01332c1d0dba0f0e1977d2a9e8f(
4414
+ scope: _constructs_77d1e7e8.Construct,
4415
+ id: builtins.str,
4416
+ pool_id: builtins.str,
4417
+ ) -> None:
4418
+ """Type checking stubs"""
4419
+ pass
4420
+
4421
+ def _typecheckingstub__646191d64123d913d9874d1256f9666fa44f2c2849e5f6977d435e871d608fea(
4422
+ inspector: _TreeInspector_488e0dd5,
4423
+ ) -> None:
4424
+ """Type checking stubs"""
4425
+ pass
4426
+
4427
+ def _typecheckingstub__1ac43d06983df817c39af941ddbd3c6b1c117b5abd772a788ebb97e746ebe6f7(
4428
+ props: typing.Mapping[builtins.str, typing.Any],
4429
+ ) -> None:
4430
+ """Type checking stubs"""
4431
+ pass
4432
+
4433
+ def _typecheckingstub__bfd14c3ecd877946c0643f80a4e0a099266dc357dd1c9f2fded20c2ed6068511(
4434
+ value: typing.Union[_IResolvable_da3f097b, CfnPool.MandatoryKeywordsProperty],
4435
+ ) -> None:
4436
+ """Type checking stubs"""
4437
+ pass
4438
+
4439
+ def _typecheckingstub__909ac003d5ef554f022f835ef0908ed75231f120d614c558f2c5f51d5395a2ff(
4440
+ value: typing.List[builtins.str],
4441
+ ) -> None:
4442
+ """Type checking stubs"""
4443
+ pass
4444
+
4445
+ def _typecheckingstub__5a973c88578554a2711f55af1a74d5bf3a851e51c2372e0b21001f10f4008325(
4446
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
4447
+ ) -> None:
4448
+ """Type checking stubs"""
4449
+ pass
4450
+
4451
+ def _typecheckingstub__7b2ca5a55c40a8062edab9da92a8bb55730ecbfd143187de51da50b4e36607bd(
4452
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnPool.OptionalKeywordProperty]]]],
4453
+ ) -> None:
4454
+ """Type checking stubs"""
4455
+ pass
4456
+
4457
+ def _typecheckingstub__0921e48fa38e4645222261d2452034ec6e83d8e11c7f323b339eb5394183aa57(
4458
+ value: typing.Optional[builtins.str],
4459
+ ) -> None:
4460
+ """Type checking stubs"""
4461
+ pass
4462
+
4463
+ def _typecheckingstub__50cb9c95473e3f15cee6cae1601c885f0fc786075af4a6607253cea1cc7c1057(
4464
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
4465
+ ) -> None:
4466
+ """Type checking stubs"""
4467
+ pass
4468
+
4469
+ def _typecheckingstub__acfab5fb52186d7cf51c246789b7a8942e05a66e5b635a2323438e15ebf3a85c(
4470
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
4471
+ ) -> None:
4472
+ """Type checking stubs"""
4473
+ pass
4474
+
4475
+ def _typecheckingstub__80c94b1b39a42b8df6f133aad39a3eaf660a2fa0ae43777c636d9f46c4f0fbf8(
4476
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
4477
+ ) -> None:
4478
+ """Type checking stubs"""
4479
+ pass
4480
+
4481
+ def _typecheckingstub__98c3832bba752985f1cbf4bfdbf7efe14a8cf5d35ff7b69c2bc40a36bdc85123(
4482
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnPool.TwoWayProperty]],
4483
+ ) -> None:
4484
+ """Type checking stubs"""
4485
+ pass
4486
+
4487
+ def _typecheckingstub__ec4eab2ae9eab5ae372f5d39ce690d92ced957d23383cb67280aa740d1c77965(
4488
+ *,
4489
+ message: builtins.str,
4490
+ ) -> None:
4491
+ """Type checking stubs"""
4492
+ pass
4493
+
4494
+ def _typecheckingstub__5d7eb7bde31c4c3c5dd4d55c4b13717b0ee740b2f78679df8f186da6740203bc(
4495
+ *,
4496
+ help: typing.Union[_IResolvable_da3f097b, typing.Union[CfnPool.MandatoryKeywordProperty, typing.Dict[builtins.str, typing.Any]]],
4497
+ stop: typing.Union[_IResolvable_da3f097b, typing.Union[CfnPool.MandatoryKeywordProperty, typing.Dict[builtins.str, typing.Any]]],
4498
+ ) -> None:
4499
+ """Type checking stubs"""
4500
+ pass
4501
+
4502
+ def _typecheckingstub__a53e8a8737df62937a61e4bdd29555e45b8fb476b28f08a4c6a174843bbc0f89(
4503
+ *,
4504
+ action: builtins.str,
4505
+ keyword: builtins.str,
4506
+ message: builtins.str,
4507
+ ) -> None:
4508
+ """Type checking stubs"""
4509
+ pass
4510
+
4511
+ def _typecheckingstub__9e85b91eb6b2f50f5a971419d7521040342911deee5fc2d8e19a9a52d3f97c44(
4512
+ *,
4513
+ enabled: typing.Union[builtins.bool, _IResolvable_da3f097b],
4514
+ channel_arn: typing.Optional[builtins.str] = None,
4515
+ channel_role: typing.Optional[builtins.str] = None,
4516
+ ) -> None:
4517
+ """Type checking stubs"""
4518
+ pass
4519
+
4520
+ def _typecheckingstub__9949eaef09160ab08c0556130c6a54f66b5bab92951d0608bd8f05d3071a5abd(
4521
+ *,
4522
+ mandatory_keywords: typing.Union[_IResolvable_da3f097b, typing.Union[CfnPool.MandatoryKeywordsProperty, typing.Dict[builtins.str, typing.Any]]],
4523
+ origination_identities: typing.Sequence[builtins.str],
4524
+ deletion_protection_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4525
+ optional_keywords: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnPool.OptionalKeywordProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
4526
+ opt_out_list_name: typing.Optional[builtins.str] = None,
4527
+ self_managed_opt_outs_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4528
+ shared_routes_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4529
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4530
+ two_way: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnPool.TwoWayProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
4531
+ ) -> None:
4532
+ """Type checking stubs"""
4533
+ pass
4534
+
4535
+ def _typecheckingstub__3395de3209762a050f467d1fe0a98e4e81c55a9fa41d448e97b764225b94b11b(
4536
+ scope: _constructs_77d1e7e8.Construct,
4537
+ id: builtins.str,
4538
+ *,
4539
+ country_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnProtectConfiguration.CountryRuleSetProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
4540
+ deletion_protection_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4541
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4542
+ ) -> None:
4543
+ """Type checking stubs"""
4544
+ pass
4545
+
4546
+ def _typecheckingstub__30a9d4af727d92ea133d23d5c13cb27130f80d90393dc02c481aa8e3278db26b(
4547
+ scope: _constructs_77d1e7e8.Construct,
4548
+ id: builtins.str,
4549
+ arn: builtins.str,
4550
+ ) -> None:
4551
+ """Type checking stubs"""
4552
+ pass
4553
+
4554
+ def _typecheckingstub__fa99a78e7c983e2ce15b9de8f681c35d2e97ff106cdb14797363208ff8fa2678(
4555
+ scope: _constructs_77d1e7e8.Construct,
4556
+ id: builtins.str,
4557
+ protect_configuration_id: builtins.str,
4558
+ ) -> None:
4559
+ """Type checking stubs"""
4560
+ pass
4561
+
4562
+ def _typecheckingstub__f6093fb47c5b0a611eabf40e86a7bee9346024756d80420e8a57fe0de5453a18(
4563
+ inspector: _TreeInspector_488e0dd5,
4564
+ ) -> None:
4565
+ """Type checking stubs"""
4566
+ pass
4567
+
4568
+ def _typecheckingstub__126400bcb940604c8cd58c2f9c800cc69399e0f1fa7e9c15c3691a17e178d223(
4569
+ props: typing.Mapping[builtins.str, typing.Any],
4570
+ ) -> None:
4571
+ """Type checking stubs"""
4572
+ pass
4573
+
4574
+ def _typecheckingstub__f7688334aed3a536c2764f4570242ec488d7d2c28ffdc2e8acbe59bb8451f565(
4575
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnProtectConfiguration.CountryRuleSetProperty]],
4576
+ ) -> None:
4577
+ """Type checking stubs"""
4578
+ pass
4579
+
4580
+ def _typecheckingstub__3dbdba6d79324e688bba9234d140d000e34ef557e1f8ce69b4c2334f65476a8b(
4581
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
4582
+ ) -> None:
4583
+ """Type checking stubs"""
4584
+ pass
4585
+
4586
+ def _typecheckingstub__426d023d6055eb2207d58490fb47ae5f69dff7c3c65aeea366fd1f204322407d(
4587
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
4588
+ ) -> None:
4589
+ """Type checking stubs"""
4590
+ pass
4591
+
4592
+ def _typecheckingstub__7b78ebb9a5c2b273433377393613fec8c11697888ad94acc7f2c5eed1017f30a(
4593
+ *,
4594
+ country_code: builtins.str,
4595
+ protect_status: builtins.str,
4596
+ ) -> None:
4597
+ """Type checking stubs"""
4598
+ pass
4599
+
4600
+ def _typecheckingstub__81f93bccabab2bfa8d607d10049ef5df87296c85f8ebd25e0c1c13ee505638ff(
4601
+ *,
4602
+ mms: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnProtectConfiguration.CountryRuleProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
4603
+ sms: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnProtectConfiguration.CountryRuleProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
4604
+ voice: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnProtectConfiguration.CountryRuleProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
4605
+ ) -> None:
4606
+ """Type checking stubs"""
4607
+ pass
4608
+
4609
+ def _typecheckingstub__78062d029c984e0fa8e4c182345051e18cb19671a3a88fec3a04ea748b2d3ea8(
4610
+ *,
4611
+ country_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnProtectConfiguration.CountryRuleSetProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
4612
+ deletion_protection_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4613
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4614
+ ) -> None:
4615
+ """Type checking stubs"""
4616
+ pass
4617
+
4618
+ def _typecheckingstub__c761f216c3c857d8d515932ebd2444a6befe013279fe63864342547680d1115d(
4619
+ scope: _constructs_77d1e7e8.Construct,
4620
+ id: builtins.str,
4621
+ *,
4622
+ policy_document: typing.Any,
4623
+ resource_arn: builtins.str,
4624
+ ) -> None:
4625
+ """Type checking stubs"""
4626
+ pass
4627
+
4628
+ def _typecheckingstub__44a964822d891ae695297d7c3a58540daae45f123040853e030d7ffb06387086(
4629
+ inspector: _TreeInspector_488e0dd5,
4630
+ ) -> None:
4631
+ """Type checking stubs"""
4632
+ pass
4633
+
4634
+ def _typecheckingstub__635deb5e16af752b1c299ada1d1bfd632b9ca21f34fd295d69073e5d2416ce83(
4635
+ props: typing.Mapping[builtins.str, typing.Any],
4636
+ ) -> None:
4637
+ """Type checking stubs"""
4638
+ pass
4639
+
4640
+ def _typecheckingstub__4a78fbd4533c352d8648be0f639d4450452998ccf2ffac29dc1b66dc02d207b3(
4641
+ value: typing.Any,
4642
+ ) -> None:
4643
+ """Type checking stubs"""
4644
+ pass
4645
+
4646
+ def _typecheckingstub__8aa28206c4f9b177dc462240fc0847f3c51410a6c2d2d6e506145ebcaad78170(
4647
+ value: builtins.str,
4648
+ ) -> None:
4649
+ """Type checking stubs"""
4650
+ pass
4651
+
4652
+ def _typecheckingstub__52e1771fac2c1d0d2462745e3a14b0f3c7951b49866b77d8397eb55313b71662(
4653
+ *,
4654
+ policy_document: typing.Any,
4655
+ resource_arn: builtins.str,
4656
+ ) -> None:
4657
+ """Type checking stubs"""
4658
+ pass
4659
+
4660
+ def _typecheckingstub__579e8861eeec43305720b40c1d4cd3b273ca5261f965f0fa1cc4ee0e0a84e828(
4661
+ scope: _constructs_77d1e7e8.Construct,
4662
+ id: builtins.str,
4663
+ *,
4664
+ iso_country_code: builtins.str,
4665
+ sender_id: builtins.str,
4666
+ deletion_protection_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4667
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4668
+ ) -> None:
4669
+ """Type checking stubs"""
4670
+ pass
4671
+
4672
+ def _typecheckingstub__824bd75372c0cb805352438204088f4be0bdaf1e2b369e61edb178255f394f92(
4673
+ inspector: _TreeInspector_488e0dd5,
4674
+ ) -> None:
4675
+ """Type checking stubs"""
4676
+ pass
4677
+
4678
+ def _typecheckingstub__1804375aac96c7387e0282832029782ac01dfd43c99ec449a00918e05bac9bb1(
4679
+ props: typing.Mapping[builtins.str, typing.Any],
4680
+ ) -> None:
4681
+ """Type checking stubs"""
4682
+ pass
4683
+
4684
+ def _typecheckingstub__504871ed12b07cce4e2a7fb88d40940361b5a8458ac4310092d47e2989d57d6e(
4685
+ value: builtins.str,
4686
+ ) -> None:
4687
+ """Type checking stubs"""
4688
+ pass
4689
+
4690
+ def _typecheckingstub__78c3b032bfb2bfb0c519137cf645e257ba65541833202fa1c11e4de0df7a78b8(
4691
+ value: builtins.str,
4692
+ ) -> None:
4693
+ """Type checking stubs"""
4694
+ pass
4695
+
4696
+ def _typecheckingstub__91773bda3ac0eb8138096da1ce6b25e2934b8604161e1ed8b5b998a2e2a57883(
4697
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
4698
+ ) -> None:
4699
+ """Type checking stubs"""
4700
+ pass
4701
+
4702
+ def _typecheckingstub__032142149c9722a7758daf53b4af657dc1c49bbf0817db09eaabeb3076cf7c07(
4703
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
4704
+ ) -> None:
4705
+ """Type checking stubs"""
4706
+ pass
4707
+
4708
+ def _typecheckingstub__e4efc3bfced2a81fa707bcebc646c7b881da4e547ba3c3005837a6b500a365e2(
4709
+ *,
4710
+ iso_country_code: builtins.str,
4711
+ sender_id: builtins.str,
4712
+ deletion_protection_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4713
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4714
+ ) -> None:
4715
+ """Type checking stubs"""
4716
+ pass