diff --git a/aws_client/CHANGELOG.md b/aws_client/CHANGELOG.md
index 640eaf892..5a93a8fbe 100644
--- a/aws_client/CHANGELOG.md
+++ b/aws_client/CHANGELOG.md
@@ -1,5 +1,9 @@
# Changelog
+## 0.5.0
+
+- Generate all the APIs with version v2.1635.0 of the AWS SDK
+
## 0.4.3
- Updated `pubspec.yaml`.
diff --git a/aws_client/README.md b/aws_client/README.md
index 93a9cf1c5..53f68595a 100644
--- a/aws_client/README.md
+++ b/aws_client/README.md
@@ -180,6 +180,7 @@ The following is a list of APIs that are currently available inside this package
- AmazonApiGatewayV2 (`package:aws_client/api_gateway_v2`)
- Amazon AppConfig (`package:aws_client/app_config`)
- AWS AppConfig Data (`package:aws_client/app_config_data`)
+- AppFabric (`package:aws_client/app_fabric`)
- Amazon Appflow (`package:aws_client/appflow`)
- Amazon AppIntegrations Service (`package:aws_client/app_integrations`)
- Application Auto Scaling (`package:aws_client/application_auto_scaling`)
@@ -190,18 +191,26 @@ The following is a list of APIs that are currently available inside this package
- Amazon AppStream (`package:aws_client/app_stream`)
- AWS AppSync (`package:aws_client/app_sync`)
- AWS ARC - Zonal Shift (`package:aws_client/arc_zonal_shift`)
+- AWS Artifact (`package:aws_client/artifact`)
- Amazon Athena (`package:aws_client/athena`)
- AWS Audit Manager (`package:aws_client/audit_manager`)
- Auto Scaling (`package:aws_client/auto_scaling`)
- AWS Auto Scaling Plans (`package:aws_client/auto_scaling_plans`)
+- AWS B2B Data Interchange (`package:aws_client/b2_bi`)
- AWS Backup (`package:aws_client/backup`)
- AWS Backup Gateway (`package:aws_client/backup_gateway`)
- AWS Backup Storage (`package:aws_client/backup_storage`)
- AWS Batch (`package:aws_client/batch`)
+- AWS Billing and Cost Management Data Exports (`package:aws_client/bcm_data_exports`)
+- Amazon Bedrock (`package:aws_client/bedrock`)
+- Agents for Amazon Bedrock (`package:aws_client/bedrock_agent`)
+- Agents for Amazon Bedrock Runtime (`package:aws_client/bedrock_agent_runtime`)
+- Amazon Bedrock Runtime (`package:aws_client/bedrock_runtime`)
- AWSBillingConductor (`package:aws_client/billingconductor`)
- Braket (`package:aws_client/braket`)
- AWS Budgets (`package:aws_client/budgets`)
- AWS Cost Explorer Service (`package:aws_client/cost_explorer`)
+- AWS Chatbot (`package:aws_client/chatbot`)
- Amazon Chime (`package:aws_client/chime`)
- Amazon Chime SDK Identity (`package:aws_client/chime_sdk_identity`)
- Amazon Chime SDK Media Pipelines (`package:aws_client/chime_sdk_media_pipelines`)
@@ -209,6 +218,7 @@ The following is a list of APIs that are currently available inside this package
- Amazon Chime SDK Messaging (`package:aws_client/chime_sdk_messaging`)
- Amazon Chime SDK Voice (`package:aws_client/chime_sdk_voice`)
- AWS Clean Rooms Service (`package:aws_client/clean_rooms`)
+- AWS Clean Rooms ML (`package:aws_client/clean_rooms_ml`)
- AWS Cloud9 (`package:aws_client/cloud9`)
- AWS Cloud Control API (`package:aws_client/cloud_control`)
- Amazon CloudDirectory (`package:aws_client/cloud_directory`)
@@ -224,8 +234,10 @@ The following is a list of APIs that are currently available inside this package
- AWS CodeBuild (`package:aws_client/code_build`)
- Amazon CodeCatalyst (`package:aws_client/code_catalyst`)
- AWS CodeCommit (`package:aws_client/code_commit`)
+- AWS CodeConnections (`package:aws_client/code_connections`)
- AWS CodeDeploy (`package:aws_client/code_deploy`)
- Amazon CodeGuru Reviewer (`package:aws_client/code_guru_reviewer`)
+- Amazon CodeGuru Security (`package:aws_client/code_guru_security`)
- Amazon CodeGuru Profiler (`package:aws_client/code_guru_profiler`)
- AWS CodePipeline (`package:aws_client/code_pipeline`)
- AWS CodeStar (`package:aws_client/code_star`)
@@ -243,14 +255,18 @@ The following is a list of APIs that are currently available inside this package
- AmazonConnectCampaignService (`package:aws_client/connect_campaigns`)
- Amazon Connect Cases (`package:aws_client/connect_cases`)
- Amazon Connect Participant Service (`package:aws_client/connect_participant`)
+- AWS Control Catalog (`package:aws_client/control_catalog`)
- AWS Control Tower (`package:aws_client/control_tower`)
+- Cost Optimization Hub (`package:aws_client/cost_optimization_hub`)
- AWS Cost and Usage Report Service (`package:aws_client/cost_and_usage_report_service`)
- Amazon Connect Customer Profiles (`package:aws_client/customer_profiles`)
- AWS Glue DataBrew (`package:aws_client/data_brew`)
- AWS Data Exchange (`package:aws_client/data_exchange`)
- AWS Data Pipeline (`package:aws_client/data_pipeline`)
- AWS DataSync (`package:aws_client/data_sync`)
+- Amazon DataZone (`package:aws_client/data_zone`)
- Amazon DynamoDB Accelerator (DAX) (`package:aws_client/dax`)
+- AWSDeadlineCloud (`package:aws_client/deadline`)
- Amazon Detective (`package:aws_client/detective`)
- AWS Device Farm (`package:aws_client/device_farm`)
- Amazon DevOps Guru (`package:aws_client/dev_ops_guru`)
@@ -270,6 +286,7 @@ The following is a list of APIs that are currently available inside this package
- Amazon Elastic Container Registry Public (`package:aws_client/ecr_public`)
- Amazon EC2 Container Service (`package:aws_client/ecs`)
- Amazon Elastic Kubernetes Service (`package:aws_client/eks`)
+- Amazon EKS Auth (`package:aws_client/eks_auth`)
- Amazon Elastic Inference (`package:aws_client/elastic_inference`)
- Amazon ElastiCache (`package:aws_client/elasti_cache`)
- AWS Elastic Beanstalk (`package:aws_client/elastic_beanstalk`)
@@ -282,6 +299,7 @@ The following is a list of APIs that are currently available inside this package
- Amazon EMR Containers (`package:aws_client/emr_containers`)
- EMR Serverless (`package:aws_client/emr_serverless`)
- AWS Marketplace Entitlement Service (`package:aws_client/marketplace_entitlement_service`)
+- AWS EntityResolution (`package:aws_client/entity_resolution`)
- Amazon Elasticsearch Service (`package:aws_client/elasticsearch_service`)
- Amazon EventBridge (`package:aws_client/event_bridge`)
- Amazon CloudWatch Events (`package:aws_client/cloud_watch_events`)
@@ -294,6 +312,7 @@ The following is a list of APIs that are currently available inside this package
- Amazon Forecast Service (`package:aws_client/forecast`)
- Amazon Forecast Query Service (`package:aws_client/forecastquery`)
- Amazon Fraud Detector (`package:aws_client/fraud_detector`)
+- AWS Free Tier (`package:aws_client/free_tier`)
- Amazon FSx (`package:aws_client/f_sx`)
- Amazon GameLift (`package:aws_client/game_lift`)
- GameSparks (`package:aws_client/game_sparks`)
@@ -313,6 +332,7 @@ The following is a list of APIs that are currently available inside this package
- EC2 Image Builder (`package:aws_client/imagebuilder`)
- AWS Import/Export (`package:aws_client/import_export`)
- Amazon Inspector (`package:aws_client/inspector`)
+- Inspector Scan (`package:aws_client/inspector_scan`)
- Inspector2 (`package:aws_client/inspector2`)
- Amazon CloudWatch Internet Monitor (`package:aws_client/internet_monitor`)
- AWS IoT (`package:aws_client/iot`)
@@ -351,6 +371,7 @@ The following is a list of APIs that are currently available inside this package
- AWS Key Management Service (`package:aws_client/kms`)
- AWS Lake Formation (`package:aws_client/lake_formation`)
- AWS Lambda (`package:aws_client/lambda`)
+- AWS Launch Wizard (`package:aws_client/launch_wizard`)
- Amazon Lex Model Building Service (`package:aws_client/lex_model_building_service`)
- AWS License Manager (`package:aws_client/license_manager`)
- AWS License Manager Linux Subscriptions (`package:aws_client/license_manager_linux_subscriptions`)
@@ -365,8 +386,12 @@ The following is a list of APIs that are currently available inside this package
- Amazon Machine Learning (`package:aws_client/machine_learning`)
- Amazon Macie (`package:aws_client/macie`)
- Amazon Macie 2 (`package:aws_client/macie2`)
+- MailManager (`package:aws_client/mail_manager`)
- Amazon Managed Blockchain (`package:aws_client/managed_blockchain`)
+- Amazon Managed Blockchain Query (`package:aws_client/managed_blockchain_query`)
+- AWS Marketplace Agreement Service (`package:aws_client/marketplace_agreement`)
- AWS Marketplace Catalog Service (`package:aws_client/marketplace_catalog`)
+- AWS Marketplace Deployment Service (`package:aws_client/marketplace_deployment`)
- AWS Marketplace Commerce Analytics (`package:aws_client/marketplace_commerce_analytics`)
- AWS MediaConnect (`package:aws_client/media_connect`)
- AWS Elemental MediaConvert (`package:aws_client/media_convert`)
@@ -377,6 +402,7 @@ The following is a list of APIs that are currently available inside this package
- AWS Elemental MediaStore (`package:aws_client/media_store`)
- AWS Elemental MediaStore Data Plane (`package:aws_client/media_store_data`)
- AWS MediaTailor (`package:aws_client/media_tailor`)
+- AWS Health Imaging (`package:aws_client/medical_imaging`)
- Amazon MemoryDB (`package:aws_client/memory_db`)
- AWSMarketplace Metering (`package:aws_client/marketplace_metering`)
- Application Migration Service (`package:aws_client/mgn`)
@@ -392,8 +418,10 @@ The following is a list of APIs that are currently available inside this package
- Amazon Mechanical Turk (`package:aws_client/m_turk`)
- AmazonMWAA (`package:aws_client/mwaa`)
- Amazon Neptune (`package:aws_client/neptune`)
+- Amazon NeptuneData (`package:aws_client/neptunedata`)
- AWS Network Firewall (`package:aws_client/network_firewall`)
- AWS Network Manager (`package:aws_client/network_manager`)
+- Amazon CloudWatch Network Monitor (`package:aws_client/network_monitor`)
- AmazonNimbleStudio (`package:aws_client/nimble`)
- CloudWatch Observability Access Manager (`package:aws_client/oam`)
- Amazon Omics (`package:aws_client/omics`)
@@ -405,6 +433,9 @@ The following is a list of APIs that are currently available inside this package
- Amazon OpenSearch Ingestion (`package:aws_client/osis`)
- AWS Outposts (`package:aws_client/outposts`)
- AWS Panorama (`package:aws_client/panorama`)
+- Payment Cryptography Control Plane (`package:aws_client/payment_cryptography`)
+- Payment Cryptography Data Plane (`package:aws_client/payment_cryptography_data`)
+- PcaConnectorAd (`package:aws_client/pca_connector_ad`)
- Amazon Personalize (`package:aws_client/personalize`)
- Amazon Personalize Events (`package:aws_client/personalize_events`)
- Amazon Personalize Runtime (`package:aws_client/personalize_runtime`)
@@ -417,6 +448,8 @@ The following is a list of APIs that are currently available inside this package
- AWS Price List Service (`package:aws_client/pricing`)
- AWS Private 5G (`package:aws_client/private_networks`)
- AWS Proton (`package:aws_client/proton`)
+- QBusiness (`package:aws_client/q_business`)
+- Amazon Q Connect (`package:aws_client/q_connect`)
- Amazon QLDB (`package:aws_client/qldb`)
- Amazon QLDB Session (`package:aws_client/qldb_session`)
- Amazon QuickSight (`package:aws_client/quick_sight`)
@@ -428,6 +461,7 @@ The following is a list of APIs that are currently available inside this package
- Redshift Data API Service (`package:aws_client/redshift_data`)
- Redshift Serverless (`package:aws_client/redshift_serverless`)
- Amazon Rekognition (`package:aws_client/rekognition`)
+- AWS re:Post Private (`package:aws_client/repostspace`)
- AWS Resilience Hub (`package:aws_client/resiliencehub`)
- AWS Resource Explorer (`package:aws_client/resource_explorer_2`)
- AWS Resource Groups (`package:aws_client/resource_groups`)
@@ -439,6 +473,7 @@ The following is a list of APIs that are currently available inside this package
- AWS Route53 Recovery Control Config (`package:aws_client/route_53_recovery_control_config`)
- AWS Route53 Recovery Readiness (`package:aws_client/route_53_recovery_readiness`)
- Amazon Route 53 Domains (`package:aws_client/route_53_domains`)
+- Route 53 Profiles (`package:aws_client/route_53_profiles`)
- Amazon Route 53 Resolver (`package:aws_client/route_53_resolver`)
- CloudWatch RUM (`package:aws_client/rum`)
- Amazon Lex Runtime Service (`package:aws_client/lex_runtime_service`)
@@ -486,17 +521,22 @@ The following is a list of APIs that are currently available inside this package
- AWS Storage Gateway (`package:aws_client/storage_gateway`)
- Amazon DynamoDB Streams (`package:aws_client/dynamo_db_streams`)
- AWS Security Token Service (`package:aws_client/sts`)
+- AWS Supply Chain (`package:aws_client/supply_chain`)
- AWS Support (`package:aws_client/support`)
- AWS Support App (`package:aws_client/support_app`)
- Amazon Simple Workflow Service (`package:aws_client/swf`)
- Synthetics (`package:aws_client/synthetics`)
+- Tax Settings (`package:aws_client/tax_settings`)
- Amazon Textract (`package:aws_client/textract`)
+- Timestream InfluxDB (`package:aws_client/timestream_influx_db`)
- Amazon Timestream Query (`package:aws_client/timestream_query`)
- Amazon Timestream Write (`package:aws_client/timestream_write`)
- AWS Telco Network Builder (`package:aws_client/tnb`)
- Amazon Transcribe Service (`package:aws_client/transcribe`)
- AWS Transfer Family (`package:aws_client/transfer`)
- Amazon Translate (`package:aws_client/translate`)
+- TrustedAdvisor Public API (`package:aws_client/trusted_advisor`)
+- Amazon Verified Permissions (`package:aws_client/verified_permissions`)
- Amazon Voice ID (`package:aws_client/voice_id`)
- Amazon VPC Lattice (`package:aws_client/vpc_lattice`)
- AWS WAF (`package:aws_client/waf`)
@@ -509,5 +549,6 @@ The following is a list of APIs that are currently available inside this package
- Amazon WorkMail (`package:aws_client/work_mail`)
- Amazon WorkMail Message Flow (`package:aws_client/work_mail_message_flow`)
- Amazon WorkSpaces (`package:aws_client/work_spaces`)
+- Amazon WorkSpaces Thin Client (`package:aws_client/work_spaces_thin_client`)
- Amazon WorkSpaces Web (`package:aws_client/work_spaces_web`)
- AWS X-Ray (`package:aws_client/x_ray`)
\ No newline at end of file
diff --git a/aws_client/lib/app_fabric_2023_05_19.dart b/aws_client/lib/app_fabric_2023_05_19.dart
new file mode 100644
index 000000000..0f232ae3b
--- /dev/null
+++ b/aws_client/lib/app_fabric_2023_05_19.dart
@@ -0,0 +1 @@
+export '../src/generated/app_fabric/v2023_05_19.dart';
diff --git a/aws_client/lib/artifact_2018_05_10.dart b/aws_client/lib/artifact_2018_05_10.dart
new file mode 100644
index 000000000..699e8119e
--- /dev/null
+++ b/aws_client/lib/artifact_2018_05_10.dart
@@ -0,0 +1 @@
+export '../src/generated/artifact/v2018_05_10.dart';
diff --git a/aws_client/lib/b2_bi_2022_06_23.dart b/aws_client/lib/b2_bi_2022_06_23.dart
new file mode 100644
index 000000000..ff3398892
--- /dev/null
+++ b/aws_client/lib/b2_bi_2022_06_23.dart
@@ -0,0 +1 @@
+export '../src/generated/b2_bi/v2022_06_23.dart';
diff --git a/aws_client/lib/bcm_data_exports_2023_11_26.dart b/aws_client/lib/bcm_data_exports_2023_11_26.dart
new file mode 100644
index 000000000..196a7d76c
--- /dev/null
+++ b/aws_client/lib/bcm_data_exports_2023_11_26.dart
@@ -0,0 +1 @@
+export '../src/generated/bcm_data_exports/v2023_11_26.dart';
diff --git a/aws_client/lib/bedrock_2023_04_20.dart b/aws_client/lib/bedrock_2023_04_20.dart
new file mode 100644
index 000000000..3dd4b0e27
--- /dev/null
+++ b/aws_client/lib/bedrock_2023_04_20.dart
@@ -0,0 +1 @@
+export '../src/generated/bedrock/v2023_04_20.dart';
diff --git a/aws_client/lib/bedrock_agent_2023_06_05.dart b/aws_client/lib/bedrock_agent_2023_06_05.dart
new file mode 100644
index 000000000..bc8d0cd7e
--- /dev/null
+++ b/aws_client/lib/bedrock_agent_2023_06_05.dart
@@ -0,0 +1 @@
+export '../src/generated/bedrock_agent/v2023_06_05.dart';
diff --git a/aws_client/lib/bedrock_agent_runtime_2023_07_26.dart b/aws_client/lib/bedrock_agent_runtime_2023_07_26.dart
new file mode 100644
index 000000000..70f6f61df
--- /dev/null
+++ b/aws_client/lib/bedrock_agent_runtime_2023_07_26.dart
@@ -0,0 +1 @@
+export '../src/generated/bedrock_agent_runtime/v2023_07_26.dart';
diff --git a/aws_client/lib/bedrock_runtime_2023_09_30.dart b/aws_client/lib/bedrock_runtime_2023_09_30.dart
new file mode 100644
index 000000000..cce51c429
--- /dev/null
+++ b/aws_client/lib/bedrock_runtime_2023_09_30.dart
@@ -0,0 +1 @@
+export '../src/generated/bedrock_runtime/v2023_09_30.dart';
diff --git a/aws_client/lib/chatbot_2017_10_11.dart b/aws_client/lib/chatbot_2017_10_11.dart
new file mode 100644
index 000000000..a09ff377f
--- /dev/null
+++ b/aws_client/lib/chatbot_2017_10_11.dart
@@ -0,0 +1 @@
+export '../src/generated/chatbot/v2017_10_11.dart';
diff --git a/aws_client/lib/clean_rooms_ml_2023_09_06.dart b/aws_client/lib/clean_rooms_ml_2023_09_06.dart
new file mode 100644
index 000000000..1c47722cd
--- /dev/null
+++ b/aws_client/lib/clean_rooms_ml_2023_09_06.dart
@@ -0,0 +1 @@
+export '../src/generated/clean_rooms_ml/v2023_09_06.dart';
diff --git a/aws_client/lib/code_connections_2023_12_01.dart b/aws_client/lib/code_connections_2023_12_01.dart
new file mode 100644
index 000000000..78518e7c9
--- /dev/null
+++ b/aws_client/lib/code_connections_2023_12_01.dart
@@ -0,0 +1 @@
+export '../src/generated/code_connections/v2023_12_01.dart';
diff --git a/aws_client/lib/code_guru_security_2018_05_10.dart b/aws_client/lib/code_guru_security_2018_05_10.dart
new file mode 100644
index 000000000..b9f155840
--- /dev/null
+++ b/aws_client/lib/code_guru_security_2018_05_10.dart
@@ -0,0 +1 @@
+export '../src/generated/code_guru_security/v2018_05_10.dart';
diff --git a/aws_client/lib/control_catalog_2018_05_10.dart b/aws_client/lib/control_catalog_2018_05_10.dart
new file mode 100644
index 000000000..ef248f544
--- /dev/null
+++ b/aws_client/lib/control_catalog_2018_05_10.dart
@@ -0,0 +1 @@
+export '../src/generated/control_catalog/v2018_05_10.dart';
diff --git a/aws_client/lib/cost_optimization_hub_2022_07_26.dart b/aws_client/lib/cost_optimization_hub_2022_07_26.dart
new file mode 100644
index 000000000..5f0c43602
--- /dev/null
+++ b/aws_client/lib/cost_optimization_hub_2022_07_26.dart
@@ -0,0 +1 @@
+export '../src/generated/cost_optimization_hub/v2022_07_26.dart';
diff --git a/aws_client/lib/data_zone_2018_05_10.dart b/aws_client/lib/data_zone_2018_05_10.dart
new file mode 100644
index 000000000..e132ee12e
--- /dev/null
+++ b/aws_client/lib/data_zone_2018_05_10.dart
@@ -0,0 +1 @@
+export '../src/generated/data_zone/v2018_05_10.dart';
diff --git a/aws_client/lib/deadline_2023_10_12.dart b/aws_client/lib/deadline_2023_10_12.dart
new file mode 100644
index 000000000..8bf874ce9
--- /dev/null
+++ b/aws_client/lib/deadline_2023_10_12.dart
@@ -0,0 +1 @@
+export '../src/generated/deadline/v2023_10_12.dart';
diff --git a/aws_client/lib/eks_auth_2023_11_26.dart b/aws_client/lib/eks_auth_2023_11_26.dart
new file mode 100644
index 000000000..b9be23325
--- /dev/null
+++ b/aws_client/lib/eks_auth_2023_11_26.dart
@@ -0,0 +1 @@
+export '../src/generated/eks_auth/v2023_11_26.dart';
diff --git a/aws_client/lib/entity_resolution_2018_05_10.dart b/aws_client/lib/entity_resolution_2018_05_10.dart
new file mode 100644
index 000000000..6efb45c47
--- /dev/null
+++ b/aws_client/lib/entity_resolution_2018_05_10.dart
@@ -0,0 +1 @@
+export '../src/generated/entity_resolution/v2018_05_10.dart';
diff --git a/aws_client/lib/free_tier_2023_09_07.dart b/aws_client/lib/free_tier_2023_09_07.dart
new file mode 100644
index 000000000..98cc698d4
--- /dev/null
+++ b/aws_client/lib/free_tier_2023_09_07.dart
@@ -0,0 +1 @@
+export '../src/generated/free_tier/v2023_09_07.dart';
diff --git a/aws_client/lib/inspector_scan_2023_08_08.dart b/aws_client/lib/inspector_scan_2023_08_08.dart
new file mode 100644
index 000000000..9ccbb6305
--- /dev/null
+++ b/aws_client/lib/inspector_scan_2023_08_08.dart
@@ -0,0 +1 @@
+export '../src/generated/inspector_scan/v2023_08_08.dart';
diff --git a/aws_client/lib/launch_wizard_2018_05_10.dart b/aws_client/lib/launch_wizard_2018_05_10.dart
new file mode 100644
index 000000000..3f236cc91
--- /dev/null
+++ b/aws_client/lib/launch_wizard_2018_05_10.dart
@@ -0,0 +1 @@
+export '../src/generated/launch_wizard/v2018_05_10.dart';
diff --git a/aws_client/lib/mail_manager_2023_10_17.dart b/aws_client/lib/mail_manager_2023_10_17.dart
new file mode 100644
index 000000000..8782b8dbb
--- /dev/null
+++ b/aws_client/lib/mail_manager_2023_10_17.dart
@@ -0,0 +1 @@
+export '../src/generated/mail_manager/v2023_10_17.dart';
diff --git a/aws_client/lib/managed_blockchain_query_2023_05_04.dart b/aws_client/lib/managed_blockchain_query_2023_05_04.dart
new file mode 100644
index 000000000..5ab06bd65
--- /dev/null
+++ b/aws_client/lib/managed_blockchain_query_2023_05_04.dart
@@ -0,0 +1 @@
+export '../src/generated/managed_blockchain_query/v2023_05_04.dart';
diff --git a/aws_client/lib/marketplace_agreement_2020_03_01.dart b/aws_client/lib/marketplace_agreement_2020_03_01.dart
new file mode 100644
index 000000000..ddbd1845e
--- /dev/null
+++ b/aws_client/lib/marketplace_agreement_2020_03_01.dart
@@ -0,0 +1 @@
+export '../src/generated/marketplace_agreement/v2020_03_01.dart';
diff --git a/aws_client/lib/marketplace_deployment_2023_01_25.dart b/aws_client/lib/marketplace_deployment_2023_01_25.dart
new file mode 100644
index 000000000..e30403f95
--- /dev/null
+++ b/aws_client/lib/marketplace_deployment_2023_01_25.dart
@@ -0,0 +1 @@
+export '../src/generated/marketplace_deployment/v2023_01_25.dart';
diff --git a/aws_client/lib/medical_imaging_2023_07_19.dart b/aws_client/lib/medical_imaging_2023_07_19.dart
new file mode 100644
index 000000000..c0b87f3fa
--- /dev/null
+++ b/aws_client/lib/medical_imaging_2023_07_19.dart
@@ -0,0 +1 @@
+export '../src/generated/medical_imaging/v2023_07_19.dart';
diff --git a/aws_client/lib/neptunedata_2023_08_01.dart b/aws_client/lib/neptunedata_2023_08_01.dart
new file mode 100644
index 000000000..6985ebde7
--- /dev/null
+++ b/aws_client/lib/neptunedata_2023_08_01.dart
@@ -0,0 +1 @@
+export '../src/generated/neptunedata/v2023_08_01.dart';
diff --git a/aws_client/lib/network_monitor_2023_08_01.dart b/aws_client/lib/network_monitor_2023_08_01.dart
new file mode 100644
index 000000000..b4c46a483
--- /dev/null
+++ b/aws_client/lib/network_monitor_2023_08_01.dart
@@ -0,0 +1 @@
+export '../src/generated/network_monitor/v2023_08_01.dart';
diff --git a/aws_client/lib/payment_cryptography_2021_09_14.dart b/aws_client/lib/payment_cryptography_2021_09_14.dart
new file mode 100644
index 000000000..764c9dba0
--- /dev/null
+++ b/aws_client/lib/payment_cryptography_2021_09_14.dart
@@ -0,0 +1 @@
+export '../src/generated/payment_cryptography/v2021_09_14.dart';
diff --git a/aws_client/lib/payment_cryptography_data_2022_02_03.dart b/aws_client/lib/payment_cryptography_data_2022_02_03.dart
new file mode 100644
index 000000000..c0e322004
--- /dev/null
+++ b/aws_client/lib/payment_cryptography_data_2022_02_03.dart
@@ -0,0 +1 @@
+export '../src/generated/payment_cryptography_data/v2022_02_03.dart';
diff --git a/aws_client/lib/pca_connector_ad_2018_05_10.dart b/aws_client/lib/pca_connector_ad_2018_05_10.dart
new file mode 100644
index 000000000..887b0fc6c
--- /dev/null
+++ b/aws_client/lib/pca_connector_ad_2018_05_10.dart
@@ -0,0 +1 @@
+export '../src/generated/pca_connector_ad/v2018_05_10.dart';
diff --git a/aws_client/lib/q_business_2023_11_27.dart b/aws_client/lib/q_business_2023_11_27.dart
new file mode 100644
index 000000000..b4d0e67cb
--- /dev/null
+++ b/aws_client/lib/q_business_2023_11_27.dart
@@ -0,0 +1 @@
+export '../src/generated/q_business/v2023_11_27.dart';
diff --git a/aws_client/lib/q_connect_2020_10_19.dart b/aws_client/lib/q_connect_2020_10_19.dart
new file mode 100644
index 000000000..44e564665
--- /dev/null
+++ b/aws_client/lib/q_connect_2020_10_19.dart
@@ -0,0 +1 @@
+export '../src/generated/q_connect/v2020_10_19.dart';
diff --git a/aws_client/lib/repostspace_2022_05_13.dart b/aws_client/lib/repostspace_2022_05_13.dart
new file mode 100644
index 000000000..1f8221291
--- /dev/null
+++ b/aws_client/lib/repostspace_2022_05_13.dart
@@ -0,0 +1 @@
+export '../src/generated/repostspace/v2022_05_13.dart';
diff --git a/aws_client/lib/route_53_profiles_2018_05_10.dart b/aws_client/lib/route_53_profiles_2018_05_10.dart
new file mode 100644
index 000000000..7775f000f
--- /dev/null
+++ b/aws_client/lib/route_53_profiles_2018_05_10.dart
@@ -0,0 +1 @@
+export '../src/generated/route_53_profiles/v2018_05_10.dart';
diff --git a/aws_client/lib/src/generated/access_analyzer/v2019_11_01.dart b/aws_client/lib/src/generated/access_analyzer/v2019_11_01.dart
index 338b6c82d..62d48ca5c 100644
--- a/aws_client/lib/src/generated/access_analyzer/v2019_11_01.dart
+++ b/aws_client/lib/src/generated/access_analyzer/v2019_11_01.dart
@@ -19,21 +19,37 @@ import '../../shared/shared.dart'
export '../../shared/shared.dart' show AwsClientCredentials;
-/// Identity and Access Management Access Analyzer helps identify potential
-/// resource-access risks by enabling you to identify any policies that grant
+/// Identity and Access Management Access Analyzer helps you to set, verify, and
+/// refine your IAM policies by providing a suite of capabilities. Its features
+/// include findings for external and unused access, basic and custom policy
+/// checks for validating policies, and policy generation to generate
+/// fine-grained policies. To start using IAM Access Analyzer to identify
+/// external or unused access, you first need to create an analyzer.
+///
+/// External access analyzers help identify potential risks of accessing
+/// resources by enabling you to identify any resource policies that grant
/// access to an external principal. It does this by using logic-based reasoning
/// to analyze resource-based policies in your Amazon Web Services environment.
/// An external principal can be another Amazon Web Services account, a root
/// user, an IAM user or role, a federated user, an Amazon Web Services service,
-/// or an anonymous user. You can also use IAM Access Analyzer to preview and
-/// validate public and cross-account access to your resources before deploying
-/// permissions changes. This guide describes the Identity and Access Management
-/// Access Analyzer operations that you can call programmatically. For general
-/// information about IAM Access Analyzer, see Unused access analyzers help identify potential identity access risks
+/// by enabling you to identify unused IAM roles, unused access keys, unused
+/// console passwords, and IAM principals with unused service and action-level
+/// permissions.
+///
+/// Beyond findings, IAM Access Analyzer provides basic and custom policy checks
+/// to validate IAM policies before deploying permissions changes. You can use
+/// policy generation to refine permissions by attaching a policy generated
+/// using access activity logged in CloudTrail logs.
+///
+/// This guide describes the IAM Access Analyzer operations that you can call
+/// programmatically. For general information about IAM Access Analyzer, see Identity
/// and Access Management Access Analyzer in the IAM User Guide.
-///
-/// To start using IAM Access Analyzer, you first need to create an analyzer.
class AccessAnalyzer {
final _s.RestJsonProtocol _protocol;
AccessAnalyzer({
@@ -122,6 +138,103 @@ class AccessAnalyzer {
);
}
+ /// Checks whether the specified access isn't allowed by a policy.
+ ///
+ /// May throw [ValidationException].
+ /// May throw [InternalServerException].
+ /// May throw [InvalidParameterException].
+ /// May throw [UnprocessableEntityException].
+ /// May throw [ThrottlingException].
+ /// May throw [AccessDeniedException].
+ ///
+ /// Parameter [access] :
+ /// An access object containing the permissions that shouldn't be granted by
+ /// the specified policy.
+ ///
+ /// Parameter [policyDocument] :
+ /// The JSON policy document to use as the content for the policy.
+ ///
+ /// Parameter [policyType] :
+ /// The type of policy. Identity policies grant permissions to IAM principals.
+ /// Identity policies include managed and inline policies for IAM roles,
+ /// users, and groups.
+ ///
+ /// Resource policies grant permissions on Amazon Web Services resources.
+ /// Resource policies include trust policies for IAM roles and bucket policies
+ /// for Amazon S3 buckets. You can provide a generic input such as identity
+ /// policy or resource policy or a specific input such as managed policy or
+ /// Amazon S3 bucket policy.
+ Future checkAccessNotGranted({
+ required List access,
+ required String policyDocument,
+ required AccessCheckPolicyType policyType,
+ }) async {
+ final $payload = {
+ 'access': access,
+ 'policyDocument': policyDocument,
+ 'policyType': policyType.toValue(),
+ };
+ final response = await _protocol.send(
+ payload: $payload,
+ method: 'POST',
+ requestUri: '/policy/check-access-not-granted',
+ exceptionFnMap: _exceptionFns,
+ );
+ return CheckAccessNotGrantedResponse.fromJson(response);
+ }
+
+ /// Checks whether new access is allowed for an updated policy when compared
+ /// to the existing policy.
+ ///
+ /// You can find examples for reference policies and learn how to set up and
+ /// run a custom policy check for new access in the IAM
+ /// Access Analyzer custom policy checks samples repository on GitHub. The
+ /// reference policies in this repository are meant to be passed to the
+ /// existingPolicyDocument
request parameter.
+ ///
+ /// May throw [ValidationException].
+ /// May throw [InternalServerException].
+ /// May throw [InvalidParameterException].
+ /// May throw [UnprocessableEntityException].
+ /// May throw [ThrottlingException].
+ /// May throw [AccessDeniedException].
+ ///
+ /// Parameter [existingPolicyDocument] :
+ /// The JSON policy document to use as the content for the existing policy.
+ ///
+ /// Parameter [newPolicyDocument] :
+ /// The JSON policy document to use as the content for the updated policy.
+ ///
+ /// Parameter [policyType] :
+ /// The type of policy to compare. Identity policies grant permissions to IAM
+ /// principals. Identity policies include managed and inline policies for IAM
+ /// roles, users, and groups.
+ ///
+ /// Resource policies grant permissions on Amazon Web Services resources.
+ /// Resource policies include trust policies for IAM roles and bucket policies
+ /// for Amazon S3 buckets. You can provide a generic input such as identity
+ /// policy or resource policy or a specific input such as managed policy or
+ /// Amazon S3 bucket policy.
+ Future checkNoNewAccess({
+ required String existingPolicyDocument,
+ required String newPolicyDocument,
+ required AccessCheckPolicyType policyType,
+ }) async {
+ final $payload = {
+ 'existingPolicyDocument': existingPolicyDocument,
+ 'newPolicyDocument': newPolicyDocument,
+ 'policyType': policyType.toValue(),
+ };
+ final response = await _protocol.send(
+ payload: $payload,
+ method: 'POST',
+ requestUri: '/policy/check-no-new-access',
+ exceptionFnMap: _exceptionFns,
+ );
+ return CheckNoNewAccessResponse.fromJson(response);
+ }
+
/// Creates an access preview that allows you to preview IAM Access Analyzer
/// findings for your resource before deploying resource permissions.
///
@@ -180,9 +293,11 @@ class AccessAnalyzer {
/// The name of the analyzer to create.
///
/// Parameter [type] :
- /// The type of analyzer to create. Only ACCOUNT and ORGANIZATION analyzers
- /// are supported. You can create only one analyzer per account per Region.
- /// You can create up to 5 analyzers per organization per Region.
+ /// The type of analyzer to create. Only ACCOUNT
,
+ /// ORGANIZATION
, ACCOUNT_UNUSED_ACCESS
, and
+ /// ORGANIZATION_UNUSED_ACCESS
analyzers are supported. You can
+ /// create only one analyzer per account per Region. You can create up to 5
+ /// analyzers per organization per Region.
///
/// Parameter [archiveRules] :
/// Specifies the archive rules to add for the analyzer. Archive rules
@@ -192,13 +307,20 @@ class AccessAnalyzer {
/// Parameter [clientToken] :
/// A client token.
///
+ /// Parameter [configuration] :
+ /// Specifies the configuration of the analyzer. If the analyzer is an unused
+ /// access analyzer, the specified scope of unused access is used for the
+ /// configuration. If the analyzer is an external access analyzer, this field
+ /// is not used.
+ ///
/// Parameter [tags] :
- /// The tags to apply to the analyzer.
+ /// An array of key-value pairs to apply to the analyzer.
Future createAnalyzer({
required String analyzerName,
required Type type,
List? archiveRules,
String? clientToken,
+ AnalyzerConfiguration? configuration,
Map? tags,
}) async {
final $payload = {
@@ -206,6 +328,7 @@ class AccessAnalyzer {
'type': type.toValue(),
if (archiveRules != null) 'archiveRules': archiveRules,
'clientToken': clientToken ?? _s.generateIdempotencyToken(),
+ if (configuration != null) 'configuration': configuration,
if (tags != null) 'tags': tags,
};
final response = await _protocol.send(
@@ -449,7 +572,10 @@ class AccessAnalyzer {
return GetArchiveRuleResponse.fromJson(response);
}
- /// Retrieves information about the specified finding.
+ /// Retrieves information about the specified finding. GetFinding and
+ /// GetFindingV2 both use access-analyzer:GetFinding
in the
+ /// Action
element of an IAM policy statement. You must have
+ /// permission to perform the access-analyzer:GetFinding
action.
///
/// May throw [ResourceNotFoundException].
/// May throw [ValidationException].
@@ -481,6 +607,51 @@ class AccessAnalyzer {
return GetFindingResponse.fromJson(response);
}
+ /// Retrieves information about the specified finding. GetFinding and
+ /// GetFindingV2 both use access-analyzer:GetFinding
in the
+ /// Action
element of an IAM policy statement. You must have
+ /// permission to perform the access-analyzer:GetFinding
action.
+ ///
+ /// May throw [ResourceNotFoundException].
+ /// May throw [ValidationException].
+ /// May throw [InternalServerException].
+ /// May throw [ThrottlingException].
+ /// May throw [AccessDeniedException].
+ ///
+ /// Parameter [analyzerArn] :
+ /// The ARN
+ /// of the analyzer that generated the finding.
+ ///
+ /// Parameter [id] :
+ /// The ID of the finding to retrieve.
+ ///
+ /// Parameter [maxResults] :
+ /// The maximum number of results to return in the response.
+ ///
+ /// Parameter [nextToken] :
+ /// A token used for pagination of results returned.
+ Future getFindingV2({
+ required String analyzerArn,
+ required String id,
+ int? maxResults,
+ String? nextToken,
+ }) async {
+ final $query = >{
+ 'analyzerArn': [analyzerArn],
+ if (maxResults != null) 'maxResults': [maxResults.toString()],
+ if (nextToken != null) 'nextToken': [nextToken],
+ };
+ final response = await _protocol.send(
+ payload: null,
+ method: 'GET',
+ requestUri: '/findingv2/${Uri.encodeComponent(id)}',
+ queryParams: $query,
+ exceptionFnMap: _exceptionFns,
+ );
+ return GetFindingV2Response.fromJson(response);
+ }
+
/// Retrieves the policy that was generated using
/// StartPolicyGeneration
.
///
@@ -620,7 +791,8 @@ class AccessAnalyzer {
}
/// Retrieves a list of resources of the specified type that have been
- /// analyzed by the specified analyzer..
+ /// analyzed by the specified external access analyzer. This action is not
+ /// supported for unused access analyzers.
///
/// May throw [ResourceNotFoundException].
/// May throw [ValidationException].
@@ -732,6 +904,10 @@ class AccessAnalyzer {
}
/// Retrieves a list of findings generated by the specified analyzer.
+ /// ListFindings and ListFindingsV2 both use
+ /// access-analyzer:ListFindings
in the Action
+ /// element of an IAM policy statement. You must have permission to perform
+ /// the access-analyzer:ListFindings
action.
///
/// To learn about filter keys that you can use to retrieve a list of
/// findings, see access-analyzer:ListFindings in the Action
+ /// element of an IAM policy statement. You must have permission to perform
+ /// the access-analyzer:ListFindings
action.
+ ///
+ /// To learn about filter keys that you can use to retrieve a list of
+ /// findings, see IAM
+ /// Access Analyzer filter keys in the IAM User Guide.
+ ///
+ /// May throw [ResourceNotFoundException].
+ /// May throw [ValidationException].
+ /// May throw [InternalServerException].
+ /// May throw [ThrottlingException].
+ /// May throw [AccessDeniedException].
+ ///
+ /// Parameter [analyzerArn] :
+ /// The ARN
+ /// of the analyzer to retrieve findings from.
+ ///
+ /// Parameter [filter] :
+ /// A filter to match for the findings to return.
+ ///
+ /// Parameter [maxResults] :
+ /// The maximum number of results to return in the response.
+ ///
+ /// Parameter [nextToken] :
+ /// A token used for pagination of results returned.
+ Future listFindingsV2({
+ required String analyzerArn,
+ Map? filter,
+ int? maxResults,
+ String? nextToken,
+ SortCriteria? sort,
+ }) async {
+ final $payload = {
+ 'analyzerArn': analyzerArn,
+ if (filter != null) 'filter': filter,
+ if (maxResults != null) 'maxResults': maxResults,
+ if (nextToken != null) 'nextToken': nextToken,
+ if (sort != null) 'sort': sort,
+ };
+ final response = await _protocol.send(
+ payload: $payload,
+ method: 'POST',
+ requestUri: '/findingv2',
+ exceptionFnMap: _exceptionFns,
+ );
+ return ListFindingsV2Response.fromJson(response);
+ }
+
/// Lists all of the policy generations requested in the last seven days.
///
/// May throw [ValidationException].
@@ -1096,9 +1325,7 @@ class AccessAnalyzer {
/// Parameter [policyType] :
/// The type of policy to validate. Identity policies grant permissions to IAM
/// principals. Identity policies include managed and inline policies for IAM
- /// roles, users, and groups. They also include service-control policies
- /// (SCPs) that are attached to an Amazon Web Services organization,
- /// organizational unit (OU), or an account.
+ /// roles, users, and groups.
///
/// Resource policies grant permissions on Amazon Web Services resources.
/// Resource policies include trust policies for IAM roles and bucket policies
@@ -1106,6 +1333,10 @@ class AccessAnalyzer {
/// policy or resource policy or a specific input such as managed policy or
/// Amazon S3 bucket policy.
///
+ /// Service control policies (SCPs) are a type of organization policy attached
+ /// to an Amazon Web Services organization, organizational unit (OU), or an
+ /// account.
+ ///
/// Parameter [locale] :
/// The locale to use for localizing the findings.
///
@@ -1157,6 +1388,53 @@ class AccessAnalyzer {
}
}
+/// Contains information about actions that define permissions to check against
+/// a policy.
+class Access {
+ /// A list of actions for the access permissions. Any strings that can be used
+ /// as an action in an IAM policy can be used in the list of actions to check.
+ final List actions;
+
+ Access({
+ required this.actions,
+ });
+
+ Map toJson() {
+ final actions = this.actions;
+ return {
+ 'actions': actions,
+ };
+ }
+}
+
+enum AccessCheckPolicyType {
+ identityPolicy,
+ resourcePolicy,
+}
+
+extension AccessCheckPolicyTypeValueExtension on AccessCheckPolicyType {
+ String toValue() {
+ switch (this) {
+ case AccessCheckPolicyType.identityPolicy:
+ return 'IDENTITY_POLICY';
+ case AccessCheckPolicyType.resourcePolicy:
+ return 'RESOURCE_POLICY';
+ }
+ }
+}
+
+extension AccessCheckPolicyTypeFromString on String {
+ AccessCheckPolicyType toAccessCheckPolicyType() {
+ switch (this) {
+ case 'IDENTITY_POLICY':
+ return AccessCheckPolicyType.identityPolicy;
+ case 'RESOURCE_POLICY':
+ return AccessCheckPolicyType.resourcePolicy;
+ }
+ throw Exception('$this is not known in enum AccessCheckPolicyType');
+ }
+}
+
/// Contains information about an access preview.
class AccessPreview {
/// The ARN of the analyzer used to generate the access preview.
@@ -1770,6 +2048,35 @@ class AnalyzedResourceSummary {
}
}
+/// Contains information about the configuration of an unused access analyzer
+/// for an Amazon Web Services organization or account.
+class AnalyzerConfiguration {
+ /// Specifies the configuration of an unused access analyzer for an Amazon Web
+ /// Services organization or account. External access analyzers do not support
+ /// any configuration.
+ final UnusedAccessConfiguration? unusedAccess;
+
+ AnalyzerConfiguration({
+ this.unusedAccess,
+ });
+
+ factory AnalyzerConfiguration.fromJson(Map json) {
+ return AnalyzerConfiguration(
+ unusedAccess: json['unusedAccess'] != null
+ ? UnusedAccessConfiguration.fromJson(
+ json['unusedAccess'] as Map)
+ : null,
+ );
+ }
+
+ Map toJson() {
+ final unusedAccess = this.unusedAccess;
+ return {
+ if (unusedAccess != null) 'unusedAccess': unusedAccess,
+ };
+ }
+}
+
enum AnalyzerStatus {
active,
creating,
@@ -1832,6 +2139,10 @@ class AnalyzerSummary {
/// analyzer.
final Type type;
+ /// Specifies whether the analyzer is an external access or unused access
+ /// analyzer.
+ final AnalyzerConfiguration? configuration;
+
/// The resource that was most recently analyzed by the analyzer.
final String? lastResourceAnalyzed;
@@ -1855,6 +2166,7 @@ class AnalyzerSummary {
required this.name,
required this.status,
required this.type,
+ this.configuration,
this.lastResourceAnalyzed,
this.lastResourceAnalyzedAt,
this.statusReason,
@@ -1868,6 +2180,10 @@ class AnalyzerSummary {
name: json['name'] as String,
status: (json['status'] as String).toAnalyzerStatus(),
type: (json['type'] as String).toType(),
+ configuration: json['configuration'] != null
+ ? AnalyzerConfiguration.fromJson(
+ json['configuration'] as Map)
+ : null,
lastResourceAnalyzed: json['lastResourceAnalyzed'] as String?,
lastResourceAnalyzedAt: timeStampFromJson(json['lastResourceAnalyzedAt']),
statusReason: json['statusReason'] != null
@@ -1884,6 +2200,7 @@ class AnalyzerSummary {
final name = this.name;
final status = this.status;
final type = this.type;
+ final configuration = this.configuration;
final lastResourceAnalyzed = this.lastResourceAnalyzed;
final lastResourceAnalyzedAt = this.lastResourceAnalyzedAt;
final statusReason = this.statusReason;
@@ -1894,6 +2211,7 @@ class AnalyzerSummary {
'name': name,
'status': status.toValue(),
'type': type.toValue(),
+ if (configuration != null) 'configuration': configuration,
if (lastResourceAnalyzed != null)
'lastResourceAnalyzed': lastResourceAnalyzed,
if (lastResourceAnalyzedAt != null)
@@ -1961,6 +2279,147 @@ class CancelPolicyGenerationResponse {
}
}
+class CheckAccessNotGrantedResponse {
+ /// The message indicating whether the specified access is allowed.
+ final String? message;
+
+ /// A description of the reasoning of the result.
+ final List? reasons;
+
+ /// The result of the check for whether the access is allowed. If the result is
+ /// PASS
, the specified policy doesn't allow any of the specified
+ /// permissions in the access object. If the result is FAIL
, the
+ /// specified policy might allow some or all of the permissions in the access
+ /// object.
+ final CheckAccessNotGrantedResult? result;
+
+ CheckAccessNotGrantedResponse({
+ this.message,
+ this.reasons,
+ this.result,
+ });
+
+ factory CheckAccessNotGrantedResponse.fromJson(Map json) {
+ return CheckAccessNotGrantedResponse(
+ message: json['message'] as String?,
+ reasons: (json['reasons'] as List?)
+ ?.whereNotNull()
+ .map((e) => ReasonSummary.fromJson(e as Map))
+ .toList(),
+ result: (json['result'] as String?)?.toCheckAccessNotGrantedResult(),
+ );
+ }
+
+ Map toJson() {
+ final message = this.message;
+ final reasons = this.reasons;
+ final result = this.result;
+ return {
+ if (message != null) 'message': message,
+ if (reasons != null) 'reasons': reasons,
+ if (result != null) 'result': result.toValue(),
+ };
+ }
+}
+
+enum CheckAccessNotGrantedResult {
+ pass,
+ fail,
+}
+
+extension CheckAccessNotGrantedResultValueExtension
+ on CheckAccessNotGrantedResult {
+ String toValue() {
+ switch (this) {
+ case CheckAccessNotGrantedResult.pass:
+ return 'PASS';
+ case CheckAccessNotGrantedResult.fail:
+ return 'FAIL';
+ }
+ }
+}
+
+extension CheckAccessNotGrantedResultFromString on String {
+ CheckAccessNotGrantedResult toCheckAccessNotGrantedResult() {
+ switch (this) {
+ case 'PASS':
+ return CheckAccessNotGrantedResult.pass;
+ case 'FAIL':
+ return CheckAccessNotGrantedResult.fail;
+ }
+ throw Exception('$this is not known in enum CheckAccessNotGrantedResult');
+ }
+}
+
+class CheckNoNewAccessResponse {
+ /// The message indicating whether the updated policy allows new access.
+ final String? message;
+
+ /// A description of the reasoning of the result.
+ final List? reasons;
+
+ /// The result of the check for new access. If the result is PASS
,
+ /// no new access is allowed by the updated policy. If the result is
+ /// FAIL
, the updated policy might allow new access.
+ final CheckNoNewAccessResult? result;
+
+ CheckNoNewAccessResponse({
+ this.message,
+ this.reasons,
+ this.result,
+ });
+
+ factory CheckNoNewAccessResponse.fromJson(Map json) {
+ return CheckNoNewAccessResponse(
+ message: json['message'] as String?,
+ reasons: (json['reasons'] as List?)
+ ?.whereNotNull()
+ .map((e) => ReasonSummary.fromJson(e as Map))
+ .toList(),
+ result: (json['result'] as String?)?.toCheckNoNewAccessResult(),
+ );
+ }
+
+ Map toJson() {
+ final message = this.message;
+ final reasons = this.reasons;
+ final result = this.result;
+ return {
+ if (message != null) 'message': message,
+ if (reasons != null) 'reasons': reasons,
+ if (result != null) 'result': result.toValue(),
+ };
+ }
+}
+
+enum CheckNoNewAccessResult {
+ pass,
+ fail,
+}
+
+extension CheckNoNewAccessResultValueExtension on CheckNoNewAccessResult {
+ String toValue() {
+ switch (this) {
+ case CheckNoNewAccessResult.pass:
+ return 'PASS';
+ case CheckNoNewAccessResult.fail:
+ return 'FAIL';
+ }
+ }
+}
+
+extension CheckNoNewAccessResultFromString on String {
+ CheckNoNewAccessResult toCheckNoNewAccessResult() {
+ switch (this) {
+ case 'PASS':
+ return CheckNoNewAccessResult.pass;
+ case 'FAIL':
+ return CheckNoNewAccessResult.fail;
+ }
+ throw Exception('$this is not known in enum CheckNoNewAccessResult');
+ }
+}
+
/// Contains information about CloudTrail access.
class CloudTrailDetails {
/// The ARN of the service role that IAM Access Analyzer uses to access your
@@ -2052,6 +2511,12 @@ class CloudTrailProperties {
/// configuration as a type-value pair. You can specify only one type of access
/// control configuration.
class Configuration {
+ /// The access control configuration is for a DynamoDB stream.
+ final DynamodbStreamConfiguration? dynamodbStream;
+
+ /// The access control configuration is for a DynamoDB table or index.
+ final DynamodbTableConfiguration? dynamodbTable;
+
/// The access control configuration is for an Amazon EBS volume snapshot.
final EbsSnapshotConfiguration? ebsSnapshot;
@@ -2073,9 +2538,12 @@ class Configuration {
/// The access control configuration is for an Amazon RDS DB snapshot.
final RdsDbSnapshotConfiguration? rdsDbSnapshot;
- /// The access control configuration is for an Amazon S3 Bucket.
+ /// The access control configuration is for an Amazon S3 bucket.
final S3BucketConfiguration? s3Bucket;
+ /// The access control configuration is for an Amazon S3 directory bucket.
+ final S3ExpressDirectoryBucketConfiguration? s3ExpressDirectoryBucket;
+
/// The access control configuration is for a Secrets Manager secret.
final SecretsManagerSecretConfiguration? secretsManagerSecret;
@@ -2086,6 +2554,8 @@ class Configuration {
final SqsQueueConfiguration? sqsQueue;
Configuration({
+ this.dynamodbStream,
+ this.dynamodbTable,
this.ebsSnapshot,
this.ecrRepository,
this.efsFileSystem,
@@ -2094,6 +2564,7 @@ class Configuration {
this.rdsDbClusterSnapshot,
this.rdsDbSnapshot,
this.s3Bucket,
+ this.s3ExpressDirectoryBucket,
this.secretsManagerSecret,
this.snsTopic,
this.sqsQueue,
@@ -2101,6 +2572,14 @@ class Configuration {
factory Configuration.fromJson(Map json) {
return Configuration(
+ dynamodbStream: json['dynamodbStream'] != null
+ ? DynamodbStreamConfiguration.fromJson(
+ json['dynamodbStream'] as Map)
+ : null,
+ dynamodbTable: json['dynamodbTable'] != null
+ ? DynamodbTableConfiguration.fromJson(
+ json['dynamodbTable'] as Map)
+ : null,
ebsSnapshot: json['ebsSnapshot'] != null
? EbsSnapshotConfiguration.fromJson(
json['ebsSnapshot'] as Map)
@@ -2132,6 +2611,10 @@ class Configuration {
? S3BucketConfiguration.fromJson(
json['s3Bucket'] as Map)
: null,
+ s3ExpressDirectoryBucket: json['s3ExpressDirectoryBucket'] != null
+ ? S3ExpressDirectoryBucketConfiguration.fromJson(
+ json['s3ExpressDirectoryBucket'] as Map)
+ : null,
secretsManagerSecret: json['secretsManagerSecret'] != null
? SecretsManagerSecretConfiguration.fromJson(
json['secretsManagerSecret'] as Map)
@@ -2148,6 +2631,8 @@ class Configuration {
}
Map toJson() {
+ final dynamodbStream = this.dynamodbStream;
+ final dynamodbTable = this.dynamodbTable;
final ebsSnapshot = this.ebsSnapshot;
final ecrRepository = this.ecrRepository;
final efsFileSystem = this.efsFileSystem;
@@ -2156,10 +2641,13 @@ class Configuration {
final rdsDbClusterSnapshot = this.rdsDbClusterSnapshot;
final rdsDbSnapshot = this.rdsDbSnapshot;
final s3Bucket = this.s3Bucket;
+ final s3ExpressDirectoryBucket = this.s3ExpressDirectoryBucket;
final secretsManagerSecret = this.secretsManagerSecret;
final snsTopic = this.snsTopic;
final sqsQueue = this.sqsQueue;
return {
+ if (dynamodbStream != null) 'dynamodbStream': dynamodbStream,
+ if (dynamodbTable != null) 'dynamodbTable': dynamodbTable,
if (ebsSnapshot != null) 'ebsSnapshot': ebsSnapshot,
if (ecrRepository != null) 'ecrRepository': ecrRepository,
if (efsFileSystem != null) 'efsFileSystem': efsFileSystem,
@@ -2169,6 +2657,8 @@ class Configuration {
'rdsDbClusterSnapshot': rdsDbClusterSnapshot,
if (rdsDbSnapshot != null) 'rdsDbSnapshot': rdsDbSnapshot,
if (s3Bucket != null) 's3Bucket': s3Bucket,
+ if (s3ExpressDirectoryBucket != null)
+ 's3ExpressDirectoryBucket': s3ExpressDirectoryBucket,
if (secretsManagerSecret != null)
'secretsManagerSecret': secretsManagerSecret,
if (snsTopic != null) 'snsTopic': snsTopic,
@@ -2278,6 +2768,94 @@ class Criterion {
}
}
+/// The proposed access control configuration for a DynamoDB stream. You can
+/// propose a configuration for a new DynamoDB stream or an existing DynamoDB
+/// stream that you own by specifying the policy for the DynamoDB stream. For
+/// more information, see PutResourcePolicy.
+///
+///
+/// -
+/// If the configuration is for an existing DynamoDB stream and you do not
+/// specify the DynamoDB policy, then the access preview uses the existing
+/// DynamoDB policy for the stream.
+///
+/// -
+/// If the access preview is for a new resource and you do not specify the
+/// policy, then the access preview assumes a DynamoDB stream without a policy.
+///
+/// -
+/// To propose deletion of an existing DynamoDB stream policy, you can specify
+/// an empty string for the DynamoDB policy.
+///
+///
+class DynamodbStreamConfiguration {
+ /// The proposed resource policy defining who can access or manage the DynamoDB
+ /// stream.
+ final String? streamPolicy;
+
+ DynamodbStreamConfiguration({
+ this.streamPolicy,
+ });
+
+ factory DynamodbStreamConfiguration.fromJson(Map json) {
+ return DynamodbStreamConfiguration(
+ streamPolicy: json['streamPolicy'] as String?,
+ );
+ }
+
+ Map toJson() {
+ final streamPolicy = this.streamPolicy;
+ return {
+ if (streamPolicy != null) 'streamPolicy': streamPolicy,
+ };
+ }
+}
+
+/// The proposed access control configuration for a DynamoDB table or index. You
+/// can propose a configuration for a new DynamoDB table or index or an existing
+/// DynamoDB table or index that you own by specifying the policy for the
+/// DynamoDB table or index. For more information, see PutResourcePolicy.
+///
+///
+/// -
+/// If the configuration is for an existing DynamoDB table or index and you do
+/// not specify the DynamoDB policy, then the access preview uses the existing
+/// DynamoDB policy for the table or index.
+///
+/// -
+/// If the access preview is for a new resource and you do not specify the
+/// policy, then the access preview assumes a DynamoDB table without a policy.
+///
+/// -
+/// To propose deletion of an existing DynamoDB table or index policy, you can
+/// specify an empty string for the DynamoDB policy.
+///
+///
+class DynamodbTableConfiguration {
+ /// The proposed resource policy defining who can access or manage the DynamoDB
+ /// table.
+ final String? tablePolicy;
+
+ DynamodbTableConfiguration({
+ this.tablePolicy,
+ });
+
+ factory DynamodbTableConfiguration.fromJson(Map json) {
+ return DynamodbTableConfiguration(
+ tablePolicy: json['tablePolicy'] as String?,
+ );
+ }
+
+ Map toJson() {
+ final tablePolicy = this.tablePolicy;
+ return {
+ if (tablePolicy != null) 'tablePolicy': tablePolicy,
+ };
+ }
+}
+
/// The proposed access control configuration for an Amazon EBS volume snapshot.
/// You can propose a configuration for a new Amazon EBS volume snapshot or an
/// Amazon EBS volume snapshot that you own by specifying the user IDs, groups,
@@ -2473,6 +3051,70 @@ class EfsFileSystemConfiguration {
}
}
+/// Contains information about an external access finding.
+class ExternalAccessDetails {
+ /// The condition in the analyzed policy statement that resulted in an external
+ /// access finding.
+ final Map condition;
+
+ /// The action in the analyzed policy statement that an external principal has
+ /// permission to use.
+ final List? action;
+
+ /// Specifies whether the external access finding is public.
+ final bool? isPublic;
+
+ /// The external principal that has access to a resource within the zone of
+ /// trust.
+ final Map? principal;
+
+ /// The sources of the external access finding. This indicates how the access
+ /// that generated the finding is granted. It is populated for Amazon S3 bucket
+ /// findings.
+ final List? sources;
+
+ ExternalAccessDetails({
+ required this.condition,
+ this.action,
+ this.isPublic,
+ this.principal,
+ this.sources,
+ });
+
+ factory ExternalAccessDetails.fromJson(Map json) {
+ return ExternalAccessDetails(
+ condition: (json['condition'] as Map)
+ .map((k, e) => MapEntry(k, e as String)),
+ action: (json['action'] as List?)
+ ?.whereNotNull()
+ .map((e) => e as String)
+ .toList(),
+ isPublic: json['isPublic'] as bool?,
+ principal: (json['principal'] as Map?)
+ ?.map((k, e) => MapEntry(k, e as String)),
+ sources: (json['sources'] as List?)
+ ?.whereNotNull()
+ .map((e) => FindingSource.fromJson(e as Map))
+ .toList(),
+ );
+ }
+
+ Map toJson() {
+ final condition = this.condition;
+ final action = this.action;
+ final isPublic = this.isPublic;
+ final principal = this.principal;
+ final sources = this.sources;
+ return {
+ 'condition': condition,
+ if (action != null) 'action': action,
+ if (isPublic != null) 'isPublic': isPublic,
+ if (principal != null) 'principal': principal,
+ if (sources != null) 'sources': sources,
+ };
+ }
+}
+
/// Contains information about a finding.
class Finding {
/// The time at which the resource was analyzed.
@@ -2510,7 +3152,8 @@ class Finding {
/// to the resource.
final bool? isPublic;
- /// The external principal that access to a resource within the zone of trust.
+ /// The external principal that has access to a resource within the zone of
+ /// trust.
final Map? principal;
/// The resource that an external principal has access to.
@@ -2631,6 +3274,83 @@ extension FindingChangeTypeFromString on String {
}
}
+/// Contains information about an external access or unused access finding. Only
+/// one parameter can be used in a FindingDetails
object.
+class FindingDetails {
+ /// The details for an external access analyzer finding.
+ final ExternalAccessDetails? externalAccessDetails;
+
+ /// The details for an unused access analyzer finding with an unused IAM role
+ /// finding type.
+ final UnusedIamRoleDetails? unusedIamRoleDetails;
+
+ /// The details for an unused access analyzer finding with an unused IAM user
+ /// access key finding type.
+ final UnusedIamUserAccessKeyDetails? unusedIamUserAccessKeyDetails;
+
+ /// The details for an unused access analyzer finding with an unused IAM user
+ /// password finding type.
+ final UnusedIamUserPasswordDetails? unusedIamUserPasswordDetails;
+
+ /// The details for an unused access analyzer finding with an unused permission
+ /// finding type.
+ final UnusedPermissionDetails? unusedPermissionDetails;
+
+ FindingDetails({
+ this.externalAccessDetails,
+ this.unusedIamRoleDetails,
+ this.unusedIamUserAccessKeyDetails,
+ this.unusedIamUserPasswordDetails,
+ this.unusedPermissionDetails,
+ });
+
+ factory FindingDetails.fromJson(Map json) {
+ return FindingDetails(
+ externalAccessDetails: json['externalAccessDetails'] != null
+ ? ExternalAccessDetails.fromJson(
+ json['externalAccessDetails'] as Map)
+ : null,
+ unusedIamRoleDetails: json['unusedIamRoleDetails'] != null
+ ? UnusedIamRoleDetails.fromJson(
+ json['unusedIamRoleDetails'] as Map)
+ : null,
+ unusedIamUserAccessKeyDetails:
+ json['unusedIamUserAccessKeyDetails'] != null
+ ? UnusedIamUserAccessKeyDetails.fromJson(
+ json['unusedIamUserAccessKeyDetails'] as Map)
+ : null,
+ unusedIamUserPasswordDetails: json['unusedIamUserPasswordDetails'] != null
+ ? UnusedIamUserPasswordDetails.fromJson(
+ json['unusedIamUserPasswordDetails'] as Map)
+ : null,
+ unusedPermissionDetails: json['unusedPermissionDetails'] != null
+ ? UnusedPermissionDetails.fromJson(
+ json['unusedPermissionDetails'] as Map)
+ : null,
+ );
+ }
+
+ Map toJson() {
+ final externalAccessDetails = this.externalAccessDetails;
+ final unusedIamRoleDetails = this.unusedIamRoleDetails;
+ final unusedIamUserAccessKeyDetails = this.unusedIamUserAccessKeyDetails;
+ final unusedIamUserPasswordDetails = this.unusedIamUserPasswordDetails;
+ final unusedPermissionDetails = this.unusedPermissionDetails;
+ return {
+ if (externalAccessDetails != null)
+ 'externalAccessDetails': externalAccessDetails,
+ if (unusedIamRoleDetails != null)
+ 'unusedIamRoleDetails': unusedIamRoleDetails,
+ if (unusedIamUserAccessKeyDetails != null)
+ 'unusedIamUserAccessKeyDetails': unusedIamUserAccessKeyDetails,
+ if (unusedIamUserPasswordDetails != null)
+ 'unusedIamUserPasswordDetails': unusedIamUserPasswordDetails,
+ if (unusedPermissionDetails != null)
+ 'unusedPermissionDetails': unusedPermissionDetails,
+ };
+ }
+}
+
/// The source of the finding. This indicates how the access that generated the
/// finding is granted. It is populated for Amazon S3 bucket findings.
class FindingSource {
@@ -2904,26 +3624,156 @@ class FindingSummary {
final isPublic = this.isPublic;
final principal = this.principal;
final resource = this.resource;
- final sources = this.sources;
+ final sources = this.sources;
+ return {
+ 'analyzedAt': iso8601ToJson(analyzedAt),
+ 'condition': condition,
+ 'createdAt': iso8601ToJson(createdAt),
+ 'id': id,
+ 'resourceOwnerAccount': resourceOwnerAccount,
+ 'resourceType': resourceType.toValue(),
+ 'status': status.toValue(),
+ 'updatedAt': iso8601ToJson(updatedAt),
+ if (action != null) 'action': action,
+ if (error != null) 'error': error,
+ if (isPublic != null) 'isPublic': isPublic,
+ if (principal != null) 'principal': principal,
+ if (resource != null) 'resource': resource,
+ if (sources != null) 'sources': sources,
+ };
+ }
+}
+
+/// Contains information about a finding.
+class FindingSummaryV2 {
+ /// The time at which the resource-based policy or IAM entity that generated the
+ /// finding was analyzed.
+ final DateTime analyzedAt;
+
+ /// The time at which the finding was created.
+ final DateTime createdAt;
+
+ /// The ID of the finding.
+ final String id;
+
+ /// The Amazon Web Services account ID that owns the resource.
+ final String resourceOwnerAccount;
+
+ /// The type of the resource that the external principal has access to.
+ final ResourceType resourceType;
+
+ /// The status of the finding.
+ final FindingStatus status;
+
+ /// The time at which the finding was most recently updated.
+ final DateTime updatedAt;
+
+ /// The error that resulted in an Error finding.
+ final String? error;
+
+ /// The type of the external access or unused access finding.
+ final FindingType? findingType;
+
+ /// The resource that the external principal has access to.
+ final String? resource;
+
+ FindingSummaryV2({
+ required this.analyzedAt,
+ required this.createdAt,
+ required this.id,
+ required this.resourceOwnerAccount,
+ required this.resourceType,
+ required this.status,
+ required this.updatedAt,
+ this.error,
+ this.findingType,
+ this.resource,
+ });
+
+ factory FindingSummaryV2.fromJson(Map json) {
+ return FindingSummaryV2(
+ analyzedAt: nonNullableTimeStampFromJson(json['analyzedAt'] as Object),
+ createdAt: nonNullableTimeStampFromJson(json['createdAt'] as Object),
+ id: json['id'] as String,
+ resourceOwnerAccount: json['resourceOwnerAccount'] as String,
+ resourceType: (json['resourceType'] as String).toResourceType(),
+ status: (json['status'] as String).toFindingStatus(),
+ updatedAt: nonNullableTimeStampFromJson(json['updatedAt'] as Object),
+ error: json['error'] as String?,
+ findingType: (json['findingType'] as String?)?.toFindingType(),
+ resource: json['resource'] as String?,
+ );
+ }
+
+ Map toJson() {
+ final analyzedAt = this.analyzedAt;
+ final createdAt = this.createdAt;
+ final id = this.id;
+ final resourceOwnerAccount = this.resourceOwnerAccount;
+ final resourceType = this.resourceType;
+ final status = this.status;
+ final updatedAt = this.updatedAt;
+ final error = this.error;
+ final findingType = this.findingType;
+ final resource = this.resource;
return {
'analyzedAt': iso8601ToJson(analyzedAt),
- 'condition': condition,
'createdAt': iso8601ToJson(createdAt),
'id': id,
'resourceOwnerAccount': resourceOwnerAccount,
'resourceType': resourceType.toValue(),
'status': status.toValue(),
'updatedAt': iso8601ToJson(updatedAt),
- if (action != null) 'action': action,
if (error != null) 'error': error,
- if (isPublic != null) 'isPublic': isPublic,
- if (principal != null) 'principal': principal,
+ if (findingType != null) 'findingType': findingType.toValue(),
if (resource != null) 'resource': resource,
- if (sources != null) 'sources': sources,
};
}
}
+enum FindingType {
+ externalAccess,
+ unusedIAMRole,
+ unusedIAMUserAccessKey,
+ unusedIAMUserPassword,
+ unusedPermission,
+}
+
+extension FindingTypeValueExtension on FindingType {
+ String toValue() {
+ switch (this) {
+ case FindingType.externalAccess:
+ return 'ExternalAccess';
+ case FindingType.unusedIAMRole:
+ return 'UnusedIAMRole';
+ case FindingType.unusedIAMUserAccessKey:
+ return 'UnusedIAMUserAccessKey';
+ case FindingType.unusedIAMUserPassword:
+ return 'UnusedIAMUserPassword';
+ case FindingType.unusedPermission:
+ return 'UnusedPermission';
+ }
+ }
+}
+
+extension FindingTypeFromString on String {
+ FindingType toFindingType() {
+ switch (this) {
+ case 'ExternalAccess':
+ return FindingType.externalAccess;
+ case 'UnusedIAMRole':
+ return FindingType.unusedIAMRole;
+ case 'UnusedIAMUserAccessKey':
+ return FindingType.unusedIAMUserAccessKey;
+ case 'UnusedIAMUserPassword':
+ return FindingType.unusedIAMUserPassword;
+ case 'UnusedPermission':
+ return FindingType.unusedPermission;
+ }
+ throw Exception('$this is not known in enum FindingType');
+ }
+}
+
/// Contains the text for the generated policy.
class GeneratedPolicy {
/// The text to use as the content for the new policy. The policy is created
@@ -3154,6 +4004,113 @@ class GetFindingResponse {
}
}
+class GetFindingV2Response {
+ /// The time at which the resource-based policy or IAM entity that generated the
+ /// finding was analyzed.
+ final DateTime analyzedAt;
+
+ /// The time at which the finding was created.
+ final DateTime createdAt;
+
+ /// A localized message that explains the finding and provides guidance on how
+ /// to address it.
+ final List findingDetails;
+
+ /// The ID of the finding to retrieve.
+ final String id;
+
+ /// Tye Amazon Web Services account ID that owns the resource.
+ final String resourceOwnerAccount;
+
+ /// The type of the resource identified in the finding.
+ final ResourceType resourceType;
+
+ /// The status of the finding.
+ final FindingStatus status;
+
+ /// The time at which the finding was updated.
+ final DateTime updatedAt;
+
+ /// An error.
+ final String? error;
+
+ /// The type of the finding. For external access analyzers, the type is
+ /// ExternalAccess
. For unused access analyzers, the type can be
+ /// UnusedIAMRole
, UnusedIAMUserAccessKey
,
+ /// UnusedIAMUserPassword
, or UnusedPermission
.
+ final FindingType? findingType;
+
+ /// A token used for pagination of results returned.
+ final String? nextToken;
+
+ /// The resource that generated the finding.
+ final String? resource;
+
+ GetFindingV2Response({
+ required this.analyzedAt,
+ required this.createdAt,
+ required this.findingDetails,
+ required this.id,
+ required this.resourceOwnerAccount,
+ required this.resourceType,
+ required this.status,
+ required this.updatedAt,
+ this.error,
+ this.findingType,
+ this.nextToken,
+ this.resource,
+ });
+
+ factory GetFindingV2Response.fromJson(Map json) {
+ return GetFindingV2Response(
+ analyzedAt: nonNullableTimeStampFromJson(json['analyzedAt'] as Object),
+ createdAt: nonNullableTimeStampFromJson(json['createdAt'] as Object),
+ findingDetails: (json['findingDetails'] as List)
+ .whereNotNull()
+ .map((e) => FindingDetails.fromJson(e as Map))
+ .toList(),
+ id: json['id'] as String,
+ resourceOwnerAccount: json['resourceOwnerAccount'] as String,
+ resourceType: (json['resourceType'] as String).toResourceType(),
+ status: (json['status'] as String).toFindingStatus(),
+ updatedAt: nonNullableTimeStampFromJson(json['updatedAt'] as Object),
+ error: json['error'] as String?,
+ findingType: (json['findingType'] as String?)?.toFindingType(),
+ nextToken: json['nextToken'] as String?,
+ resource: json['resource'] as String?,
+ );
+ }
+
+ Map toJson() {
+ final analyzedAt = this.analyzedAt;
+ final createdAt = this.createdAt;
+ final findingDetails = this.findingDetails;
+ final id = this.id;
+ final resourceOwnerAccount = this.resourceOwnerAccount;
+ final resourceType = this.resourceType;
+ final status = this.status;
+ final updatedAt = this.updatedAt;
+ final error = this.error;
+ final findingType = this.findingType;
+ final nextToken = this.nextToken;
+ final resource = this.resource;
+ return {
+ 'analyzedAt': iso8601ToJson(analyzedAt),
+ 'createdAt': iso8601ToJson(createdAt),
+ 'findingDetails': findingDetails,
+ 'id': id,
+ 'resourceOwnerAccount': resourceOwnerAccount,
+ 'resourceType': resourceType.toValue(),
+ 'status': status.toValue(),
+ 'updatedAt': iso8601ToJson(updatedAt),
+ if (error != null) 'error': error,
+ if (findingType != null) 'findingType': findingType.toValue(),
+ if (nextToken != null) 'nextToken': nextToken,
+ if (resource != null) 'resource': resource,
+ };
+ }
+}
+
class GetGeneratedPolicyResponse {
/// A GeneratedPolicyResult
object that contains the generated
/// policies and associated details.
@@ -3881,6 +4838,39 @@ class ListFindingsResponse {
}
}
+class ListFindingsV2Response {
+ /// A list of findings retrieved from the analyzer that match the filter
+ /// criteria specified, if any.
+ final List findings;
+
+ /// A token used for pagination of results returned.
+ final String? nextToken;
+
+ ListFindingsV2Response({
+ required this.findings,
+ this.nextToken,
+ });
+
+ factory ListFindingsV2Response.fromJson(Map json) {
+ return ListFindingsV2Response(
+ findings: (json['findings'] as List)
+ .whereNotNull()
+ .map((e) => FindingSummaryV2.fromJson(e as Map))
+ .toList(),
+ nextToken: json['nextToken'] as String?,
+ );
+ }
+
+ Map toJson() {
+ final findings = this.findings;
+ final nextToken = this.nextToken;
+ return {
+ 'findings': findings,
+ if (nextToken != null) 'nextToken': nextToken,
+ };
+ }
+}
+
class ListPolicyGenerationsResponse {
/// A PolicyGeneration
object that contains details about the
/// generated policy.
@@ -4556,6 +5546,44 @@ extension ReasonCodeFromString on String {
}
}
+/// Contains information about the reasoning why a check for access passed or
+/// failed.
+class ReasonSummary {
+ /// A description of the reasoning of a result of checking for access.
+ final String? description;
+
+ /// The identifier for the reason statement.
+ final String? statementId;
+
+ /// The index number of the reason statement.
+ final int? statementIndex;
+
+ ReasonSummary({
+ this.description,
+ this.statementId,
+ this.statementIndex,
+ });
+
+ factory ReasonSummary.fromJson(Map json) {
+ return ReasonSummary(
+ description: json['description'] as String?,
+ statementId: json['statementId'] as String?,
+ statementIndex: json['statementIndex'] as int?,
+ );
+ }
+
+ Map toJson() {
+ final description = this.description;
+ final statementId = this.statementId;
+ final statementIndex = this.statementIndex;
+ return {
+ if (description != null) 'description': description,
+ if (statementId != null) 'statementId': statementId,
+ if (statementIndex != null) 'statementIndex': statementIndex,
+ };
+ }
+}
+
enum ResourceType {
awsS3Bucket,
awsIamRole,
@@ -4570,6 +5598,9 @@ enum ResourceType {
awsRdsDBSnapshot,
awsRdsDBClusterSnapshot,
awsSnsTopic,
+ awsS3ExpressDirectoryBucket,
+ awsDynamoDBTable,
+ awsDynamoDBStream,
}
extension ResourceTypeValueExtension on ResourceType {
@@ -4601,6 +5632,12 @@ extension ResourceTypeValueExtension on ResourceType {
return 'AWS::RDS::DBClusterSnapshot';
case ResourceType.awsSnsTopic:
return 'AWS::SNS::Topic';
+ case ResourceType.awsS3ExpressDirectoryBucket:
+ return 'AWS::S3Express::DirectoryBucket';
+ case ResourceType.awsDynamoDBTable:
+ return 'AWS::DynamoDB::Table';
+ case ResourceType.awsDynamoDBStream:
+ return 'AWS::DynamoDB::Stream';
}
}
}
@@ -4634,6 +5671,12 @@ extension ResourceTypeFromString on String {
return ResourceType.awsRdsDBClusterSnapshot;
case 'AWS::SNS::Topic':
return ResourceType.awsSnsTopic;
+ case 'AWS::S3Express::DirectoryBucket':
+ return ResourceType.awsS3ExpressDirectoryBucket;
+ case 'AWS::DynamoDB::Table':
+ return ResourceType.awsDynamoDBTable;
+ case 'AWS::DynamoDB::Stream':
+ return ResourceType.awsDynamoDBStream;
}
throw Exception('$this is not known in enum ResourceType');
}
@@ -4804,6 +5847,42 @@ class S3BucketConfiguration {
}
}
+/// Proposed access control configuration for an Amazon S3 directory bucket. You
+/// can propose a configuration for a new Amazon S3 directory bucket or an
+/// existing Amazon S3 directory bucket that you own by specifying the Amazon S3
+/// bucket policy. If the configuration is for an existing Amazon S3 directory
+/// bucket and you do not specify the Amazon S3 bucket policy, the access
+/// preview uses the existing policy attached to the directory bucket. If the
+/// access preview is for a new resource and you do not specify the Amazon S3
+/// bucket policy, the access preview assumes an directory bucket without a
+/// policy. To propose deletion of an existing bucket policy, you can specify an
+/// empty string. For more information about Amazon S3 directory bucket
+/// policies, see Example
+/// directory bucket policies for S3 Express One Zone.
+class S3ExpressDirectoryBucketConfiguration {
+ /// The proposed bucket policy for the Amazon S3 directory bucket.
+ final String? bucketPolicy;
+
+ S3ExpressDirectoryBucketConfiguration({
+ this.bucketPolicy,
+ });
+
+ factory S3ExpressDirectoryBucketConfiguration.fromJson(
+ Map json) {
+ return S3ExpressDirectoryBucketConfiguration(
+ bucketPolicy: json['bucketPolicy'] as String?,
+ );
+ }
+
+ Map toJson() {
+ final bucketPolicy = this.bucketPolicy;
+ return {
+ if (bucketPolicy != null) 'bucketPolicy': bucketPolicy,
+ };
+ }
+}
+
/// The PublicAccessBlock
configuration to apply to this Amazon S3
/// bucket. If the proposed configuration is for an existing Amazon S3 bucket
/// and the configuration is not specified, the access preview uses the existing
@@ -5194,6 +6273,8 @@ class TrailProperties {
enum Type {
account,
organization,
+ accountUnusedAccess,
+ organizationUnusedAccess,
}
extension TypeValueExtension on Type {
@@ -5203,6 +6284,10 @@ extension TypeValueExtension on Type {
return 'ACCOUNT';
case Type.organization:
return 'ORGANIZATION';
+ case Type.accountUnusedAccess:
+ return 'ACCOUNT_UNUSED_ACCESS';
+ case Type.organizationUnusedAccess:
+ return 'ORGANIZATION_UNUSED_ACCESS';
}
}
}
@@ -5214,6 +6299,10 @@ extension TypeFromString on String {
return Type.account;
case 'ORGANIZATION':
return Type.organization;
+ case 'ACCOUNT_UNUSED_ACCESS':
+ return Type.accountUnusedAccess;
+ case 'ORGANIZATION_UNUSED_ACCESS':
+ return Type.organizationUnusedAccess;
}
throw Exception('$this is not known in enum Type');
}
@@ -5232,6 +6321,202 @@ class UntagResourceResponse {
}
}
+/// Contains information about an unused access analyzer.
+class UnusedAccessConfiguration {
+ /// The specified access age in days for which to generate findings for unused
+ /// access. For example, if you specify 90 days, the analyzer will generate
+ /// findings for IAM entities within the accounts of the selected organization
+ /// for any access that hasn't been used in 90 or more days since the analyzer's
+ /// last scan. You can choose a value between 1 and 180 days.
+ final int? unusedAccessAge;
+
+ UnusedAccessConfiguration({
+ this.unusedAccessAge,
+ });
+
+ factory UnusedAccessConfiguration.fromJson(Map json) {
+ return UnusedAccessConfiguration(
+ unusedAccessAge: json['unusedAccessAge'] as int?,
+ );
+ }
+
+ Map toJson() {
+ final unusedAccessAge = this.unusedAccessAge;
+ return {
+ if (unusedAccessAge != null) 'unusedAccessAge': unusedAccessAge,
+ };
+ }
+}
+
+/// Contains information about an unused access finding for an action. IAM
+/// Access Analyzer charges for unused access analysis based on the number of
+/// IAM roles and users analyzed per month. For more details on pricing, see IAM Access
+/// Analyzer pricing.
+class UnusedAction {
+ /// The action for which the unused access finding was generated.
+ final String action;
+
+ /// The time at which the action was last accessed.
+ final DateTime? lastAccessed;
+
+ UnusedAction({
+ required this.action,
+ this.lastAccessed,
+ });
+
+ factory UnusedAction.fromJson(Map json) {
+ return UnusedAction(
+ action: json['action'] as String,
+ lastAccessed: timeStampFromJson(json['lastAccessed']),
+ );
+ }
+
+ Map toJson() {
+ final action = this.action;
+ final lastAccessed = this.lastAccessed;
+ return {
+ 'action': action,
+ if (lastAccessed != null) 'lastAccessed': iso8601ToJson(lastAccessed),
+ };
+ }
+}
+
+/// Contains information about an unused access finding for an IAM role. IAM
+/// Access Analyzer charges for unused access analysis based on the number of
+/// IAM roles and users analyzed per month. For more details on pricing, see IAM Access
+/// Analyzer pricing.
+class UnusedIamRoleDetails {
+ /// The time at which the role was last accessed.
+ final DateTime? lastAccessed;
+
+ UnusedIamRoleDetails({
+ this.lastAccessed,
+ });
+
+ factory UnusedIamRoleDetails.fromJson(Map json) {
+ return UnusedIamRoleDetails(
+ lastAccessed: timeStampFromJson(json['lastAccessed']),
+ );
+ }
+
+ Map toJson() {
+ final lastAccessed = this.lastAccessed;
+ return {
+ if (lastAccessed != null) 'lastAccessed': iso8601ToJson(lastAccessed),
+ };
+ }
+}
+
+/// Contains information about an unused access finding for an IAM user access
+/// key. IAM Access Analyzer charges for unused access analysis based on the
+/// number of IAM roles and users analyzed per month. For more details on
+/// pricing, see IAM Access
+/// Analyzer pricing.
+class UnusedIamUserAccessKeyDetails {
+ /// The ID of the access key for which the unused access finding was generated.
+ final String accessKeyId;
+
+ /// The time at which the access key was last accessed.
+ final DateTime? lastAccessed;
+
+ UnusedIamUserAccessKeyDetails({
+ required this.accessKeyId,
+ this.lastAccessed,
+ });
+
+ factory UnusedIamUserAccessKeyDetails.fromJson(Map json) {
+ return UnusedIamUserAccessKeyDetails(
+ accessKeyId: json['accessKeyId'] as String,
+ lastAccessed: timeStampFromJson(json['lastAccessed']),
+ );
+ }
+
+ Map toJson() {
+ final accessKeyId = this.accessKeyId;
+ final lastAccessed = this.lastAccessed;
+ return {
+ 'accessKeyId': accessKeyId,
+ if (lastAccessed != null) 'lastAccessed': iso8601ToJson(lastAccessed),
+ };
+ }
+}
+
+/// Contains information about an unused access finding for an IAM user
+/// password. IAM Access Analyzer charges for unused access analysis based on
+/// the number of IAM roles and users analyzed per month. For more details on
+/// pricing, see IAM Access
+/// Analyzer pricing.
+class UnusedIamUserPasswordDetails {
+ /// The time at which the password was last accessed.
+ final DateTime? lastAccessed;
+
+ UnusedIamUserPasswordDetails({
+ this.lastAccessed,
+ });
+
+ factory UnusedIamUserPasswordDetails.fromJson(Map json) {
+ return UnusedIamUserPasswordDetails(
+ lastAccessed: timeStampFromJson(json['lastAccessed']),
+ );
+ }
+
+ Map toJson() {
+ final lastAccessed = this.lastAccessed;
+ return {
+ if (lastAccessed != null) 'lastAccessed': iso8601ToJson(lastAccessed),
+ };
+ }
+}
+
+/// Contains information about an unused access finding for a permission. IAM
+/// Access Analyzer charges for unused access analysis based on the number of
+/// IAM roles and users analyzed per month. For more details on pricing, see IAM Access
+/// Analyzer pricing.
+class UnusedPermissionDetails {
+ /// The namespace of the Amazon Web Services service that contains the unused
+ /// actions.
+ final String serviceNamespace;
+
+ /// A list of unused actions for which the unused access finding was generated.
+ final List? actions;
+
+ /// The time at which the permission last accessed.
+ final DateTime? lastAccessed;
+
+ UnusedPermissionDetails({
+ required this.serviceNamespace,
+ this.actions,
+ this.lastAccessed,
+ });
+
+ factory UnusedPermissionDetails.fromJson(Map json) {
+ return UnusedPermissionDetails(
+ serviceNamespace: json['serviceNamespace'] as String,
+ actions: (json['actions'] as List?)
+ ?.whereNotNull()
+ .map((e) => UnusedAction.fromJson(e as Map))
+ .toList(),
+ lastAccessed: timeStampFromJson(json['lastAccessed']),
+ );
+ }
+
+ Map toJson() {
+ final serviceNamespace = this.serviceNamespace;
+ final actions = this.actions;
+ final lastAccessed = this.lastAccessed;
+ return {
+ 'serviceNamespace': serviceNamespace,
+ if (actions != null) 'actions': actions,
+ if (lastAccessed != null) 'lastAccessed': iso8601ToJson(lastAccessed),
+ };
+ }
+}
+
/// A finding in a policy. Each finding is an actionable recommendation that can
/// be used to improve the policy.
class ValidatePolicyFinding {
@@ -5347,6 +6632,7 @@ enum ValidatePolicyResourceType {
awsS3MultiRegionAccessPoint,
awsS3ObjectLambdaAccessPoint,
awsIamAssumeRolePolicyDocument,
+ awsDynamoDBTable,
}
extension ValidatePolicyResourceTypeValueExtension
@@ -5363,6 +6649,8 @@ extension ValidatePolicyResourceTypeValueExtension
return 'AWS::S3ObjectLambda::AccessPoint';
case ValidatePolicyResourceType.awsIamAssumeRolePolicyDocument:
return 'AWS::IAM::AssumeRolePolicyDocument';
+ case ValidatePolicyResourceType.awsDynamoDBTable:
+ return 'AWS::DynamoDB::Table';
}
}
}
@@ -5380,6 +6668,8 @@ extension ValidatePolicyResourceTypeFromString on String {
return ValidatePolicyResourceType.awsS3ObjectLambdaAccessPoint;
case 'AWS::IAM::AssumeRolePolicyDocument':
return ValidatePolicyResourceType.awsIamAssumeRolePolicyDocument;
+ case 'AWS::DynamoDB::Table':
+ return ValidatePolicyResourceType.awsDynamoDBTable;
}
throw Exception('$this is not known in enum ValidatePolicyResourceType');
}
@@ -5460,6 +6750,11 @@ class InternalServerException extends _s.GenericAwsException {
: super(type: type, code: 'InternalServerException', message: message);
}
+class InvalidParameterException extends _s.GenericAwsException {
+ InvalidParameterException({String? type, String? message})
+ : super(type: type, code: 'InvalidParameterException', message: message);
+}
+
class ResourceNotFoundException extends _s.GenericAwsException {
ResourceNotFoundException({String? type, String? message})
: super(type: type, code: 'ResourceNotFoundException', message: message);
@@ -5478,6 +6773,12 @@ class ThrottlingException extends _s.GenericAwsException {
: super(type: type, code: 'ThrottlingException', message: message);
}
+class UnprocessableEntityException extends _s.GenericAwsException {
+ UnprocessableEntityException({String? type, String? message})
+ : super(
+ type: type, code: 'UnprocessableEntityException', message: message);
+}
+
class ValidationException extends _s.GenericAwsException {
ValidationException({String? type, String? message})
: super(type: type, code: 'ValidationException', message: message);
@@ -5490,12 +6791,16 @@ final _exceptionFns = {
ConflictException(type: type, message: message),
'InternalServerException': (type, message) =>
InternalServerException(type: type, message: message),
+ 'InvalidParameterException': (type, message) =>
+ InvalidParameterException(type: type, message: message),
'ResourceNotFoundException': (type, message) =>
ResourceNotFoundException(type: type, message: message),
'ServiceQuotaExceededException': (type, message) =>
ServiceQuotaExceededException(type: type, message: message),
'ThrottlingException': (type, message) =>
ThrottlingException(type: type, message: message),
+ 'UnprocessableEntityException': (type, message) =>
+ UnprocessableEntityException(type: type, message: message),
'ValidationException': (type, message) =>
ValidationException(type: type, message: message),
};
diff --git a/aws_client/lib/src/generated/acm_pca/v2017_08_22.dart b/aws_client/lib/src/generated/acm_pca/v2017_08_22.dart
index 63664b6bf..fae38d3c5 100644
--- a/aws_client/lib/src/generated/acm_pca/v2017_08_22.dart
+++ b/aws_client/lib/src/generated/acm_pca/v2017_08_22.dart
@@ -37,7 +37,7 @@ export '../../shared/shared.dart' show AwsClientCredentials;
/// Private CA rejects an otherwise valid request because the request exceeds
/// the operation's quota for the number of requests per second. When a request
/// is throttled, Amazon Web Services Private CA returns a ThrottlingException
+/// href="https://docs.aws.amazon.com/privateca/latest/APIReference/CommonErrors.html">ThrottlingException
/// error. Amazon Web Services Private CA does not guarantee a minimum request
/// rate for APIs.
///
@@ -127,25 +127,21 @@ class AcmPca {
/// handling CA keys.
///
/// Default: FIPS_140_2_LEVEL_3_OR_HIGHER
- ///
- /// Note: FIPS_140_2_LEVEL_3_OR_HIGHER
is not supported in
- /// the following Regions:
- ///
- ///
- /// -
- /// ap-northeast-3
- ///
- /// -
- /// ap-southeast-3
- ///
- ///
- /// When creating a CA in these Regions, you must provide
+ ///
+ /// Some Amazon Web Services Regions do not support the default. When creating
+ /// a CA in these Regions, you must provide
/// FIPS_140_2_LEVEL_2_OR_HIGHER
as the argument for
/// KeyStorageSecurityStandard
. Failure to do this results in an
/// InvalidArgsException
with the message, "A certificate
/// authority cannot be created in this region with the specified security
/// standard."
///
+ /// For information about security standard support in various Regions, see Storage
+ /// and security compliance of Amazon Web Services Private CA private
+ /// keys.
+ ///
+ ///
/// Parameter [revocationConfiguration] :
/// Contains information to enable Online Certificate Status Protocol (OCSP)
/// support, to enable a certificate revocation list (CRL), to enable both, or
@@ -1193,7 +1189,7 @@ class AcmPca {
/// SigningAlgorithm
parameter used to sign a CSR in the
/// CreateCertificateAuthority
action.
///
- /// The specified signing algorithm family (RSA or ECDSA) much match the
+ /// The specified signing algorithm family (RSA or ECDSA) must match the
/// algorithm family of the CA's secret key.
///
///
@@ -1233,12 +1229,12 @@ class AcmPca {
/// Parameter [idempotencyToken] :
/// Alphanumeric string that can be used to distinguish between calls to the
/// IssueCertificate action. Idempotency tokens for
- /// IssueCertificate time out after one minute. Therefore, if you call
- /// IssueCertificate multiple times with the same idempotency token
- /// within one minute, Amazon Web Services Private CA recognizes that you are
- /// requesting only one certificate and will issue only one. If you change the
- /// idempotency token for each call, Amazon Web Services Private CA recognizes
- /// that you are requesting multiple certificates.
+ /// IssueCertificate time out after five minutes. Therefore, if you
+ /// call IssueCertificate multiple times with the same idempotency
+ /// token within five minutes, Amazon Web Services Private CA recognizes that
+ /// you are requesting only one certificate and will issue only one. If you
+ /// change the idempotency token for each call, Amazon Web Services Private CA
+ /// recognizes that you are requesting multiple certificates.
///
/// Parameter [templateArn] :
/// Specifies a custom configuration template to use when issuing a
@@ -1275,7 +1271,7 @@ class AcmPca {
/// The ValidityNotBefore
value is expressed as an explicit date
/// and time, using the Validity
type value
/// ABSOLUTE
. For more information, see Validity
+ /// href="https://docs.aws.amazon.com/privateca/latest/APIReference/API_Validity.html">Validity
/// in this API reference and Validity
/// in RFC 5280.
@@ -1327,6 +1323,9 @@ class AcmPca {
/// in the response. Use this NextToken
value in a subsequent
/// request to retrieve additional items.
///
+ /// Although the maximum value is 1000, the action only returns a maximum of
+ /// 100 items.
+ ///
/// Parameter [nextToken] :
/// Use this parameter when paginating results in a subsequent request after
/// you receive a response with truncated results. Set it to the value of the
@@ -2733,10 +2732,12 @@ class CreateCertificateAuthorityResponse {
/// setting the Enabled parameter to true
. Your private CA
/// writes CRLs to an S3 bucket that you specify in the S3BucketName
/// parameter. You can hide the name of your bucket by specifying a value for
-/// the CustomCname parameter. Your private CA copies the CNAME or the S3
-/// bucket name to the CRL Distribution Points extension of each
-/// certificate it issues. Your S3 bucket policy must give write permission to
-/// Amazon Web Services Private CA.
+/// the CustomCname parameter. Your private CA by default copies the
+/// CNAME or the S3 bucket name to the CRL Distribution Points extension
+/// of each certificate it issues. If you want to configure this default
+/// behavior to be something different, you can set the
+/// CrlDistributionPointExtensionConfiguration parameter. Your S3 bucket
+/// policy must give write permission to Amazon Web Services Private CA.
///
/// Amazon Web Services Private CA assets that are stored in Amazon S3 can be
/// protected with encryption. For more information, see CRL Distribution Points extension
/// that enables the use of an alias for the CRL distribution point. Use this
/// value if you don't want the name of your S3 bucket to be public.
@@ -2887,6 +2895,7 @@ class CrlConfiguration {
CrlConfiguration({
required this.enabled,
+ this.crlDistributionPointExtensionConfiguration,
this.customCname,
this.expirationInDays,
this.s3BucketName,
@@ -2896,6 +2905,12 @@ class CrlConfiguration {
factory CrlConfiguration.fromJson(Map json) {
return CrlConfiguration(
enabled: json['Enabled'] as bool,
+ crlDistributionPointExtensionConfiguration:
+ json['CrlDistributionPointExtensionConfiguration'] != null
+ ? CrlDistributionPointExtensionConfiguration.fromJson(
+ json['CrlDistributionPointExtensionConfiguration']
+ as Map)
+ : null,
customCname: json['CustomCname'] as String?,
expirationInDays: json['ExpirationInDays'] as int?,
s3BucketName: json['S3BucketName'] as String?,
@@ -2905,12 +2920,17 @@ class CrlConfiguration {
Map toJson() {
final enabled = this.enabled;
+ final crlDistributionPointExtensionConfiguration =
+ this.crlDistributionPointExtensionConfiguration;
final customCname = this.customCname;
final expirationInDays = this.expirationInDays;
final s3BucketName = this.s3BucketName;
final s3ObjectAcl = this.s3ObjectAcl;
return {
'Enabled': enabled,
+ if (crlDistributionPointExtensionConfiguration != null)
+ 'CrlDistributionPointExtensionConfiguration':
+ crlDistributionPointExtensionConfiguration,
if (customCname != null) 'CustomCname': customCname,
if (expirationInDays != null) 'ExpirationInDays': expirationInDays,
if (s3BucketName != null) 'S3BucketName': s3BucketName,
@@ -2919,6 +2939,45 @@ class CrlConfiguration {
}
}
+/// Contains configuration information for the default behavior of the CRL
+/// Distribution Point (CDP) extension in certificates issued by your CA. This
+/// extension contains a link to download the CRL, so you can check whether a
+/// certificate has been revoked. To choose whether you want this extension
+/// omitted or not in certificates issued by your CA, you can set the
+/// OmitExtension parameter.
+class CrlDistributionPointExtensionConfiguration {
+ /// Configures whether the CRL Distribution Point extension should be populated
+ /// with the default URL to the CRL. If set to true
, then the CDP
+ /// extension will not be present in any certificates issued by that CA unless
+ /// otherwise specified through CSR or API passthrough.
+ ///
+ /// Only set this if you have another way to distribute the CRL Distribution
+ /// Points ffor certificates issued by your CA, such as the Matter Distributed
+ /// Compliance Ledger
+ ///
+ /// This configuration cannot be enabled with a custom CNAME set.
+ ///
+ final bool omitExtension;
+
+ CrlDistributionPointExtensionConfiguration({
+ required this.omitExtension,
+ });
+
+ factory CrlDistributionPointExtensionConfiguration.fromJson(
+ Map json) {
+ return CrlDistributionPointExtensionConfiguration(
+ omitExtension: json['OmitExtension'] as bool,
+ );
+ }
+
+ Map toJson() {
+ final omitExtension = this.omitExtension;
+ return {
+ 'OmitExtension': omitExtension,
+ };
+ }
+}
+
/// Describes the certificate extensions to be added to the certificate signing
/// request (CSR).
class CsrExtensions {
diff --git a/aws_client/lib/src/generated/amp/v2020_08_01.dart b/aws_client/lib/src/generated/amp/v2020_08_01.dart
index ba28b6a78..4bfc07e56 100644
--- a/aws_client/lib/src/generated/amp/v2020_08_01.dart
+++ b/aws_client/lib/src/generated/amp/v2020_08_01.dart
@@ -19,7 +19,32 @@ import '../../shared/shared.dart'
export '../../shared/shared.dart' show AwsClientCredentials;
-/// Amazon Managed Service for Prometheus
+/// Amazon Managed Service for Prometheus is a serverless, Prometheus-compatible
+/// monitoring service for container metrics that makes it easier to securely
+/// monitor container environments at scale. With Amazon Managed Service for
+/// Prometheus, you can use the same open-source Prometheus data model and query
+/// language that you use today to monitor the performance of your containerized
+/// workloads, and also enjoy improved scalability, availability, and security
+/// without having to manage the underlying infrastructure.
+///
+/// For more information about Amazon Managed Service for Prometheus, see the Amazon
+/// Managed Service for Prometheus User Guide.
+///
+/// Amazon Managed Service for Prometheus includes two APIs.
+///
+///
+/// -
+/// Use the Amazon Web Services API described in this guide to manage Amazon
+/// Managed Service for Prometheus resources, such as workspaces, rule groups,
+/// and alert managers.
+///
+/// -
+/// Use the Prometheus-compatible
+/// API to work within your Prometheus workspace.
+///
+///
class Prometheus {
final _s.RestJsonProtocol _protocol;
Prometheus({
@@ -49,7 +74,10 @@ class Prometheus {
_protocol.close();
}
- /// Create an alert manager definition.
+ /// The CreateAlertManagerDefinition
operation creates the alert
+ /// manager definition in a workspace. If a workspace already has an alert
+ /// manager definition, don't use this operation to update it. Instead, use
+ /// PutAlertManagerDefinition
.
///
/// May throw [ThrottlingException].
/// May throw [ConflictException].
@@ -60,14 +88,18 @@ class Prometheus {
/// May throw [ServiceQuotaExceededException].
///
/// Parameter [data] :
- /// The alert manager definition data.
+ /// The alert manager definition to add. A base64-encoded version of the YAML
+ /// alert manager definition file.
+ ///
+ /// For details about the alert manager definition, see AlertManagedDefinitionData.
///
/// Parameter [workspaceId] :
- /// The ID of the workspace in which to create the alert manager definition.
+ /// The ID of the workspace to add the alert manager definition to.
///
/// Parameter [clientToken] :
- /// Optional, unique, case-sensitive, user-provided identifier to ensure the
- /// idempotency of the request.
+ /// A unique identifier that you can provide to ensure the idempotency of the
+ /// request. Case-sensitive.
Future createAlertManagerDefinition({
required Uint8List data,
required String workspaceId,
@@ -87,7 +119,9 @@ class Prometheus {
return CreateAlertManagerDefinitionResponse.fromJson(response);
}
- /// Create logging configuration.
+ /// The CreateLoggingConfiguration
operation creates a logging
+ /// configuration for the workspace. Use this operation to set the CloudWatch
+ /// log group to which the logs will be published to.
///
/// May throw [ValidationException].
/// May throw [ResourceNotFoundException].
@@ -95,15 +129,15 @@ class Prometheus {
/// May throw [InternalServerException].
///
/// Parameter [logGroupArn] :
- /// The ARN of the CW log group to which the vended log data will be
- /// published.
+ /// The ARN of the CloudWatch log group to which the vended log data will be
+ /// published. This log group must exist prior to calling this API.
///
/// Parameter [workspaceId] :
- /// The ID of the workspace to vend logs to.
+ /// The ID of the workspace to create the logging configuration for.
///
/// Parameter [clientToken] :
- /// Optional, unique, case-sensitive, user-provided identifier to ensure the
- /// idempotency of the request.
+ /// A unique identifier that you can provide to ensure the idempotency of the
+ /// request. Case-sensitive.
Future createLoggingConfiguration({
required String logGroupArn,
required String workspaceId,
@@ -122,7 +156,13 @@ class Prometheus {
return CreateLoggingConfigurationResponse.fromJson(response);
}
- /// Create a rule group namespace.
+ /// The CreateRuleGroupsNamespace
operation creates a rule groups
+ /// namespace within a workspace. A rule groups namespace is associated with
+ /// exactly one rules file. A workspace can have multiple rule groups
+ /// namespaces.
+ ///
+ /// Use this operation only to create new rule groups namespaces. To update an
+ /// existing rule groups namespace, use PutRuleGroupsNamespace
.
///
/// May throw [ThrottlingException].
/// May throw [ConflictException].
@@ -133,20 +173,26 @@ class Prometheus {
/// May throw [ServiceQuotaExceededException].
///
/// Parameter [data] :
- /// The namespace data that define the rule groups.
+ /// The rules file to use in the new namespace.
+ ///
+ /// Contains the base64-encoded version of the YAML rules file.
+ ///
+ /// For details about the rule groups namespace structure, see RuleGroupsNamespaceData.
///
/// Parameter [name] :
- /// The rule groups namespace name.
+ /// The name for the new rule groups namespace.
///
/// Parameter [workspaceId] :
- /// The ID of the workspace in which to create the rule group namespace.
+ /// The ID of the workspace to add the rule groups namespace.
///
/// Parameter [clientToken] :
- /// Optional, unique, case-sensitive, user-provided identifier to ensure the
- /// idempotency of the request.
+ /// A unique identifier that you can provide to ensure the idempotency of the
+ /// request. Case-sensitive.
///
/// Parameter [tags] :
- /// Optional, user-provided tags for this rule groups namespace.
+ /// The list of tag keys and values to associate with the rule groups
+ /// namespace.
Future createRuleGroupsNamespace({
required Uint8List data,
required String name,
@@ -170,7 +216,92 @@ class Prometheus {
return CreateRuleGroupsNamespaceResponse.fromJson(response);
}
- /// Creates a new AMP workspace.
+ /// The CreateScraper
operation creates a scraper to collect
+ /// metrics. A scraper pulls metrics from Prometheus-compatible sources within
+ /// an Amazon EKS cluster, and sends them to your Amazon Managed Service for
+ /// Prometheus workspace. You can configure the scraper to control what
+ /// metrics are collected, and what transformations are applied prior to
+ /// sending them to your workspace.
+ ///
+ /// If needed, an IAM role will be created for you that gives Amazon Managed
+ /// Service for Prometheus access to the metrics in your cluster. For more
+ /// information, see Using
+ /// roles for scraping metrics from EKS in the Amazon Managed Service
+ /// for Prometheus User Guide.
+ ///
+ /// You cannot update a scraper. If you want to change the configuration of
+ /// the scraper, create a new scraper and delete the old one.
+ ///
+ /// The scrapeConfiguration
parameter contains the base64-encoded
+ /// version of the YAML configuration file.
+ ///
+ /// For more information about collectors, including what metrics are
+ /// collected, and how to configure the scraper, see Amazon
+ /// Web Services managed collectors in the Amazon Managed Service for
+ /// Prometheus User Guide.
+ ///
+ ///
+ /// May throw [ThrottlingException].
+ /// May throw [ConflictException].
+ /// May throw [ValidationException].
+ /// May throw [ResourceNotFoundException].
+ /// May throw [AccessDeniedException].
+ /// May throw [InternalServerException].
+ /// May throw [ServiceQuotaExceededException].
+ ///
+ /// Parameter [destination] :
+ /// The Amazon Managed Service for Prometheus workspace to send metrics to.
+ ///
+ /// Parameter [scrapeConfiguration] :
+ /// The configuration file to use in the new scraper. For more information,
+ /// see Scraper
+ /// configuration in the Amazon Managed Service for Prometheus User
+ /// Guide.
+ ///
+ /// Parameter [source] :
+ /// The Amazon EKS cluster from which the scraper will collect metrics.
+ ///
+ /// Parameter [alias] :
+ /// (optional) a name to associate with the scraper. This is for your use, and
+ /// does not need to be unique.
+ ///
+ /// Parameter [clientToken] :
+ /// (Optional) A unique, case-sensitive identifier that you can provide to
+ /// ensure the idempotency of the request.
+ ///
+ /// Parameter [tags] :
+ /// (Optional) The list of tag keys and values to associate with the scraper.
+ Future createScraper({
+ required Destination destination,
+ required ScrapeConfiguration scrapeConfiguration,
+ required Source source,
+ String? alias,
+ String? clientToken,
+ Map? tags,
+ }) async {
+ final $payload = {
+ 'destination': destination,
+ 'scrapeConfiguration': scrapeConfiguration,
+ 'source': source,
+ if (alias != null) 'alias': alias,
+ 'clientToken': clientToken ?? _s.generateIdempotencyToken(),
+ if (tags != null) 'tags': tags,
+ };
+ final response = await _protocol.send(
+ payload: $payload,
+ method: 'POST',
+ requestUri: '/scrapers',
+ exceptionFnMap: _exceptionFns,
+ );
+ return CreateScraperResponse.fromJson(response);
+ }
+
+ /// Creates a Prometheus workspace. A workspace is a logical space dedicated
+ /// to the storage and querying of Prometheus metrics. You can have one or
+ /// more workspaces in each Region in your account.
///
/// May throw [ThrottlingException].
/// May throw [ConflictException].
@@ -180,23 +311,36 @@ class Prometheus {
/// May throw [ServiceQuotaExceededException].
///
/// Parameter [alias] :
- /// An optional user-assigned alias for this workspace. This alias is for user
- /// reference and does not need to be unique.
+ /// An alias that you assign to this workspace to help you identify it. It
+ /// does not need to be unique.
+ ///
+ /// Blank spaces at the beginning or end of the alias that you specify will be
+ /// trimmed from the value used.
///
/// Parameter [clientToken] :
- /// Optional, unique, case-sensitive, user-provided identifier to ensure the
- /// idempotency of the request.
+ /// A unique identifier that you can provide to ensure the idempotency of the
+ /// request. Case-sensitive.
+ ///
+ /// Parameter [kmsKeyArn] :
+ /// (optional) The ARN for a customer managed KMS key to use for encrypting
+ /// data within your workspace. For more information about using your own key
+ /// in your workspace, see Encryption
+ /// at rest in the Amazon Managed Service for Prometheus User
+ /// Guide.
///
/// Parameter [tags] :
- /// Optional, user-provided tags for this workspace.
+ /// The list of tag keys and values to associate with the workspace.
Future createWorkspace({
String? alias,
String? clientToken,
+ String? kmsKeyArn,
Map? tags,
}) async {
final $payload = {
if (alias != null) 'alias': alias,
'clientToken': clientToken ?? _s.generateIdempotencyToken(),
+ if (kmsKeyArn != null) 'kmsKeyArn': kmsKeyArn,
if (tags != null) 'tags': tags,
};
final response = await _protocol.send(
@@ -208,7 +352,7 @@ class Prometheus {
return CreateWorkspaceResponse.fromJson(response);
}
- /// Deletes an alert manager definition.
+ /// Deletes the alert manager definition from a workspace.
///
/// May throw [ThrottlingException].
/// May throw [ConflictException].
@@ -218,11 +362,11 @@ class Prometheus {
/// May throw [InternalServerException].
///
/// Parameter [workspaceId] :
- /// The ID of the workspace in which to delete the alert manager definition.
+ /// The ID of the workspace to delete the alert manager definition from.
///
/// Parameter [clientToken] :
- /// Optional, unique, case-sensitive, user-provided identifier to ensure the
- /// idempotency of the request.
+ /// A unique identifier that you can provide to ensure the idempotency of the
+ /// request. Case-sensitive.
Future deleteAlertManagerDefinition({
required String workspaceId,
String? clientToken,
@@ -240,7 +384,7 @@ class Prometheus {
);
}
- /// Delete logging configuration.
+ /// Deletes the logging configuration for a workspace.
///
/// May throw [ConflictException].
/// May throw [ValidationException].
@@ -249,11 +393,11 @@ class Prometheus {
/// May throw [InternalServerException].
///
/// Parameter [workspaceId] :
- /// The ID of the workspace to vend logs to.
+ /// The ID of the workspace containing the logging configuration to delete.
///
/// Parameter [clientToken] :
- /// Optional, unique, case-sensitive, user-provided identifier to ensure the
- /// idempotency of the request.
+ /// A unique identifier that you can provide to ensure the idempotency of the
+ /// request. Case-sensitive.
Future deleteLoggingConfiguration({
required String workspaceId,
String? clientToken,
@@ -270,7 +414,8 @@ class Prometheus {
);
}
- /// Delete a rule groups namespace.
+ /// Deletes one rule groups namespace and its associated rule groups
+ /// definition.
///
/// May throw [ThrottlingException].
/// May throw [ConflictException].
@@ -280,14 +425,15 @@ class Prometheus {
/// May throw [InternalServerException].
///
/// Parameter [name] :
- /// The rule groups namespace name.
+ /// The name of the rule groups namespace to delete.
///
/// Parameter [workspaceId] :
- /// The ID of the workspace to delete rule group definition.
+ /// The ID of the workspace containing the rule groups namespace and
+ /// definition to delete.
///
/// Parameter [clientToken] :
- /// Optional, unique, case-sensitive, user-provided identifier to ensure the
- /// idempotency of the request.
+ /// A unique identifier that you can provide to ensure the idempotency of the
+ /// request. Case-sensitive.
Future deleteRuleGroupsNamespace({
required String name,
required String workspaceId,
@@ -306,7 +452,44 @@ class Prometheus {
);
}
- /// Deletes an AMP workspace.
+ /// The DeleteScraper
operation deletes one scraper, and stops
+ /// any metrics collection that the scraper performs.
+ ///
+ /// May throw [ThrottlingException].
+ /// May throw [ConflictException].
+ /// May throw [ValidationException].
+ /// May throw [ResourceNotFoundException].
+ /// May throw [AccessDeniedException].
+ /// May throw [InternalServerException].
+ ///
+ /// Parameter [scraperId] :
+ /// The ID of the scraper to delete.
+ ///
+ /// Parameter [clientToken] :
+ /// (Optional) A unique, case-sensitive identifier that you can provide to
+ /// ensure the idempotency of the request.
+ Future deleteScraper({
+ required String scraperId,
+ String? clientToken,
+ }) async {
+ final $query = >{
+ if (clientToken != null) 'clientToken': [clientToken],
+ };
+ final response = await _protocol.send(
+ payload: null,
+ method: 'DELETE',
+ requestUri: '/scrapers/${Uri.encodeComponent(scraperId)}',
+ queryParams: $query,
+ exceptionFnMap: _exceptionFns,
+ );
+ return DeleteScraperResponse.fromJson(response);
+ }
+
+ /// Deletes an existing workspace.
+ ///
+ /// When you delete a workspace, the data that has been ingested into it is
+ /// not immediately deleted. It will be permanently deleted within one month.
+ ///
///
/// May throw [ThrottlingException].
/// May throw [ConflictException].
@@ -319,8 +502,8 @@ class Prometheus {
/// The ID of the workspace to delete.
///
/// Parameter [clientToken] :
- /// Optional, unique, case-sensitive, user-provided identifier to ensure the
- /// idempotency of the request.
+ /// A unique identifier that you can provide to ensure the idempotency of the
+ /// request. Case-sensitive.
Future deleteWorkspace({
required String workspaceId,
String? clientToken,
@@ -337,7 +520,8 @@ class Prometheus {
);
}
- /// Describes an alert manager definition.
+ /// Retrieves the full information about the alert manager definition for a
+ /// workspace.
///
/// May throw [ThrottlingException].
/// May throw [ValidationException].
@@ -346,7 +530,7 @@ class Prometheus {
/// May throw [InternalServerException].
///
/// Parameter [workspaceId] :
- /// The ID of the workspace to describe.
+ /// The ID of the workspace to retrieve the alert manager definition from.
Future
describeAlertManagerDefinition({
required String workspaceId,
@@ -361,7 +545,8 @@ class Prometheus {
return DescribeAlertManagerDefinitionResponse.fromJson(response);
}
- /// Describes logging configuration.
+ /// Returns complete information about the current logging configuration of
+ /// the workspace.
///
/// May throw [ValidationException].
/// May throw [ResourceNotFoundException].
@@ -369,7 +554,7 @@ class Prometheus {
/// May throw [InternalServerException].
///
/// Parameter [workspaceId] :
- /// The ID of the workspace to vend logs to.
+ /// The ID of the workspace to describe the logging configuration for.
Future describeLoggingConfiguration({
required String workspaceId,
}) async {
@@ -382,7 +567,9 @@ class Prometheus {
return DescribeLoggingConfigurationResponse.fromJson(response);
}
- /// Describe a rule groups namespace.
+ /// Returns complete information about one rule groups namespace. To retrieve
+ /// a list of rule groups namespaces, use
+ /// ListRuleGroupsNamespaces
.
///
/// May throw [ThrottlingException].
/// May throw [ValidationException].
@@ -391,10 +578,10 @@ class Prometheus {
/// May throw [InternalServerException].
///
/// Parameter [name] :
- /// The rule groups namespace.
+ /// The name of the rule groups namespace that you want information for.
///
/// Parameter [workspaceId] :
- /// The ID of the workspace to describe.
+ /// The ID of the workspace containing the rule groups namespace.
Future describeRuleGroupsNamespace({
required String name,
required String workspaceId,
@@ -409,7 +596,30 @@ class Prometheus {
return DescribeRuleGroupsNamespaceResponse.fromJson(response);
}
- /// Describes an existing AMP workspace.
+ /// The DescribeScraper
operation displays information about an
+ /// existing scraper.
+ ///
+ /// May throw [ThrottlingException].
+ /// May throw [ValidationException].
+ /// May throw [ResourceNotFoundException].
+ /// May throw [AccessDeniedException].
+ /// May throw [InternalServerException].
+ ///
+ /// Parameter [scraperId] :
+ /// The ID of the scraper to describe.
+ Future describeScraper({
+ required String scraperId,
+ }) async {
+ final response = await _protocol.send(
+ payload: null,
+ method: 'GET',
+ requestUri: '/scrapers/${Uri.encodeComponent(scraperId)}',
+ exceptionFnMap: _exceptionFns,
+ );
+ return DescribeScraperResponse.fromJson(response);
+ }
+
+ /// Returns information about an existing workspace.
///
/// May throw [ThrottlingException].
/// May throw [ValidationException].
@@ -431,7 +641,25 @@ class Prometheus {
return DescribeWorkspaceResponse.fromJson(response);
}
- /// Lists rule groups namespaces.
+ /// The GetDefaultScraperConfiguration
operation returns the
+ /// default scraper configuration used when Amazon EKS creates a scraper for
+ /// you.
+ ///
+ /// May throw [ThrottlingException].
+ /// May throw [AccessDeniedException].
+ /// May throw [InternalServerException].
+ Future
+ getDefaultScraperConfiguration() async {
+ final response = await _protocol.send(
+ payload: null,
+ method: 'GET',
+ requestUri: '/scraperconfiguration',
+ exceptionFnMap: _exceptionFns,
+ );
+ return GetDefaultScraperConfigurationResponse.fromJson(response);
+ }
+
+ /// Returns a list of rule groups namespaces in a workspace.
///
/// May throw [ThrottlingException].
/// May throw [ValidationException].
@@ -440,19 +668,25 @@ class Prometheus {
/// May throw [InternalServerException].
///
/// Parameter [workspaceId] :
- /// The ID of the workspace.
+ /// The ID of the workspace containing the rule groups namespaces.
///
/// Parameter [maxResults] :
- /// Maximum results to return in response (default=100, maximum=1000).
+ /// The maximum number of results to return. The default is 100.
///
/// Parameter [name] :
- /// Optional filter for rule groups namespace name. Only the rule groups
- /// namespace that begin with this value will be returned.
+ /// Use this parameter to filter the rule groups namespaces that are returned.
+ /// Only the namespaces with names that begin with the value that you specify
+ /// are returned.
///
/// Parameter [nextToken] :
- /// Pagination token to request the next page in a paginated list. This token
- /// is obtained from the output of the previous ListRuleGroupsNamespaces
- /// request.
+ /// The token for the next set of items to return. You receive this token from
+ /// a previous call, and use it to get the next page of results. The other
+ /// parameters must be the same as the initial call.
+ ///
+ /// For example, if your initial request has maxResults
of 10,
+ /// and there are 12 rule groups namespaces to return, then your initial
+ /// request will return 10 and a nextToken
. Using the next token
+ /// in a subsequent call will return the remaining 2 namespaces.
Future listRuleGroupsNamespaces({
required String workspaceId,
int? maxResults,
@@ -481,7 +715,75 @@ class Prometheus {
return ListRuleGroupsNamespacesResponse.fromJson(response);
}
- /// Lists the tags you have assigned to the resource.
+ /// The ListScrapers
operation lists all of the scrapers in your
+ /// account. This includes scrapers being created or deleted. You can
+ /// optionally filter the returned list.
+ ///
+ /// May throw [ThrottlingException].
+ /// May throw [ValidationException].
+ /// May throw [AccessDeniedException].
+ /// May throw [InternalServerException].
+ ///
+ /// Parameter [filters] :
+ /// (Optional) A list of key-value pairs to filter the list of scrapers
+ /// returned. Keys include status
, sourceArn
,
+ /// destinationArn
, and alias
.
+ ///
+ /// Filters on the same key are OR
'd together, and filters on
+ /// different keys are AND
'd together. For example,
+ /// status=ACTIVE&status=CREATING&alias=Test
, will return
+ /// all scrapers that have the alias Test, and are either in status ACTIVE or
+ /// CREATING.
+ ///
+ /// To find all active scrapers that are sending metrics to a specific Amazon
+ /// Managed Service for Prometheus workspace, you would use the ARN of the
+ /// workspace in a query:
+ ///
+ /// status=ACTIVE&destinationArn=arn:aws:aps:us-east-1:123456789012:workspace/ws-example1-1234-abcd-56ef-123456789012
+ ///
+ /// If this is included, it filters the results to only the scrapers that
+ /// match the filter.
+ ///
+ /// Parameter [maxResults] :
+ /// Optional) The maximum number of scrapers to return in one
+ /// ListScrapers
operation. The range is 1-1000.
+ ///
+ /// If you omit this parameter, the default of 100 is used.
+ ///
+ /// Parameter [nextToken] :
+ /// (Optional) The token for the next set of items to return. (You received
+ /// this token from a previous call.)
+ Future listScrapers({
+ Map>? filters,
+ int? maxResults,
+ String? nextToken,
+ }) async {
+ _s.validateNumRange(
+ 'maxResults',
+ maxResults,
+ 1,
+ 1000,
+ );
+ final $query = >{
+ if (filters != null)
+ for (var e in filters.entries) e.key: e.value,
+ if (maxResults != null) 'maxResults': [maxResults.toString()],
+ if (nextToken != null) 'nextToken': [nextToken],
+ };
+ final response = await _protocol.send(
+ payload: null,
+ method: 'GET',
+ requestUri: '/scrapers',
+ queryParams: $query,
+ exceptionFnMap: _exceptionFns,
+ );
+ return ListScrapersResponse.fromJson(response);
+ }
+
+ /// The ListTagsForResource
operation returns the tags that are
+ /// associated with an Amazon Managed Service for Prometheus resource.
+ /// Currently, the only resources that can be tagged are workspaces and rule
+ /// groups namespaces.
///
/// May throw [ThrottlingException].
/// May throw [ValidationException].
@@ -490,7 +792,8 @@ class Prometheus {
/// May throw [InternalServerException].
///
/// Parameter [resourceArn] :
- /// The ARN of the resource.
+ /// The ARN of the resource to list tages for. Must be a workspace or rule
+ /// groups namespace resource.
Future listTagsForResource({
required String resourceArn,
}) async {
@@ -503,7 +806,8 @@ class Prometheus {
return ListTagsForResourceResponse.fromJson(response);
}
- /// Lists all AMP workspaces, including workspaces being created or deleted.
+ /// Lists all of the Amazon Managed Service for Prometheus workspaces in your
+ /// account. This includes workspaces being created or deleted.
///
/// May throw [ThrottlingException].
/// May throw [ValidationException].
@@ -511,15 +815,25 @@ class Prometheus {
/// May throw [InternalServerException].
///
/// Parameter [alias] :
- /// Optional filter for workspace alias. Only the workspaces with aliases that
- /// begin with this value will be returned.
+ /// If this is included, it filters the results to only the workspaces with
+ /// names that start with the value that you specify here.
+ ///
+ /// Amazon Managed Service for Prometheus will automatically strip any blank
+ /// spaces from the beginning and end of the alias that you specify.
///
/// Parameter [maxResults] :
- /// Maximum results to return in response (default=100, maximum=1000).
+ /// The maximum number of workspaces to return per request. The default is
+ /// 100.
///
/// Parameter [nextToken] :
- /// Pagination token to request the next page in a paginated list. This token
- /// is obtained from the output of the previous ListWorkspaces request.
+ /// The token for the next set of items to return. You receive this token from
+ /// a previous call, and use it to get the next page of results. The other
+ /// parameters must be the same as the initial call.
+ ///
+ /// For example, if your initial request has maxResults
of 10,
+ /// and there are 12 workspaces to return, then your initial request will
+ /// return 10 and a nextToken
. Using the next token in a
+ /// subsequent call will return the remaining 2 workspaces.
Future listWorkspaces({
String? alias,
int? maxResults,
@@ -546,7 +860,10 @@ class Prometheus {
return ListWorkspacesResponse.fromJson(response);
}
- /// Update an alert manager definition.
+ /// Updates an existing alert manager definition in a workspace. If the
+ /// workspace does not already have an alert manager definition, don't use
+ /// this operation to create it. Instead, use
+ /// CreateAlertManagerDefinition
.
///
/// May throw [ThrottlingException].
/// May throw [ConflictException].
@@ -557,14 +874,18 @@ class Prometheus {
/// May throw [ServiceQuotaExceededException].
///
/// Parameter [data] :
- /// The alert manager definition data.
+ /// The alert manager definition to use. A base64-encoded version of the YAML
+ /// alert manager definition file.
+ ///
+ /// For details about the alert manager definition, see AlertManagedDefinitionData.
///
/// Parameter [workspaceId] :
- /// The ID of the workspace in which to update the alert manager definition.
+ /// The ID of the workspace to update the alert manager definition in.
///
/// Parameter [clientToken] :
- /// Optional, unique, case-sensitive, user-provided identifier to ensure the
- /// idempotency of the request.
+ /// A unique identifier that you can provide to ensure the idempotency of the
+ /// request. Case-sensitive.
Future putAlertManagerDefinition({
required Uint8List data,
required String workspaceId,
@@ -584,7 +905,16 @@ class Prometheus {
return PutAlertManagerDefinitionResponse.fromJson(response);
}
- /// Update a rule groups namespace.
+ /// Updates an existing rule groups namespace within a workspace. A rule
+ /// groups namespace is associated with exactly one rules file. A workspace
+ /// can have multiple rule groups namespaces.
+ ///
+ /// Use this operation only to update existing rule groups namespaces. To
+ /// create a new rule groups namespace, use
+ /// CreateRuleGroupsNamespace
.
+ ///
+ /// You can't use this operation to add tags to an existing rule groups
+ /// namespace. Instead, use TagResource
.
///
/// May throw [ThrottlingException].
/// May throw [ConflictException].
@@ -595,17 +925,21 @@ class Prometheus {
/// May throw [ServiceQuotaExceededException].
///
/// Parameter [data] :
- /// The namespace data that define the rule groups.
+ /// The new rules file to use in the namespace. A base64-encoded version of
+ /// the YAML rule groups file.
+ ///
+ /// For details about the rule groups namespace structure, see RuleGroupsNamespaceData.
///
/// Parameter [name] :
- /// The rule groups namespace name.
+ /// The name of the rule groups namespace that you are updating.
///
/// Parameter [workspaceId] :
- /// The ID of the workspace in which to update the rule group namespace.
+ /// The ID of the workspace where you are updating the rule groups namespace.
///
/// Parameter [clientToken] :
- /// Optional, unique, case-sensitive, user-provided identifier to ensure the
- /// idempotency of the request.
+ /// A unique identifier that you can provide to ensure the idempotency of the
+ /// request. Case-sensitive.
Future putRuleGroupsNamespace({
required Uint8List data,
required String name,
@@ -626,7 +960,14 @@ class Prometheus {
return PutRuleGroupsNamespaceResponse.fromJson(response);
}
- /// Creates tags for the specified resource.
+ /// The TagResource
operation associates tags with an Amazon
+ /// Managed Service for Prometheus resource. The only resources that can be
+ /// tagged are workspaces and rule groups namespaces.
+ ///
+ /// If you specify a new tag key for the resource, this tag is appended to the
+ /// list of tags associated with the resource. If you specify a tag key that
+ /// is already associated with the resource, the new tag value that you
+ /// specify replaces the previous value for that tag.
///
/// May throw [ThrottlingException].
/// May throw [ValidationException].
@@ -635,7 +976,12 @@ class Prometheus {
/// May throw [InternalServerException].
///
/// Parameter [resourceArn] :
- /// The ARN of the resource.
+ /// The ARN of the workspace or rule groups namespace to apply tags to.
+ ///
+ /// Parameter [tags] :
+ /// The list of tag keys and values to associate with the resource.
+ ///
+ /// Keys may not begin with aws:
.
Future tagResource({
required String resourceArn,
required Map tags,
@@ -651,7 +997,9 @@ class Prometheus {
);
}
- /// Deletes tags from the specified resource.
+ /// Removes the specified tags from an Amazon Managed Service for Prometheus
+ /// resource. The only resources that can be tagged are workspaces and rule
+ /// groups namespaces.
///
/// May throw [ThrottlingException].
/// May throw [ValidationException].
@@ -660,10 +1008,10 @@ class Prometheus {
/// May throw [InternalServerException].
///
/// Parameter [resourceArn] :
- /// The ARN of the resource.
+ /// The ARN of the workspace or rule groups namespace.
///
/// Parameter [tagKeys] :
- /// One or more tag keys
+ /// The keys of the tags to remove.
Future untagResource({
required String resourceArn,
required List tagKeys,
@@ -680,7 +1028,8 @@ class Prometheus {
);
}
- /// Update logging configuration.
+ /// Updates the log group ARN or the workspace ID of the current logging
+ /// configuration.
///
/// May throw [ConflictException].
/// May throw [ValidationException].
@@ -689,15 +1038,15 @@ class Prometheus {
/// May throw [InternalServerException].
///
/// Parameter [logGroupArn] :
- /// The ARN of the CW log group to which the vended log data will be
+ /// The ARN of the CloudWatch log group to which the vended log data will be
/// published.
///
/// Parameter [workspaceId] :
- /// The ID of the workspace to vend logs to.
+ /// The ID of the workspace to update the logging configuration for.
///
/// Parameter [clientToken] :
- /// Optional, unique, case-sensitive, user-provided identifier to ensure the
- /// idempotency of the request.
+ /// A unique identifier that you can provide to ensure the idempotency of the
+ /// request. Case-sensitive.
Future updateLoggingConfiguration({
required String logGroupArn,
required String workspaceId,
@@ -716,7 +1065,7 @@ class Prometheus {
return UpdateLoggingConfigurationResponse.fromJson(response);
}
- /// Updates an AMP workspace alias.
+ /// Updates the alias of an existing workspace.
///
/// May throw [ThrottlingException].
/// May throw [ConflictException].
@@ -727,14 +1076,17 @@ class Prometheus {
/// May throw [ServiceQuotaExceededException].
///
/// Parameter [workspaceId] :
- /// The ID of the workspace being updated.
+ /// The ID of the workspace to update.
///
/// Parameter [alias] :
- /// The new alias of the workspace.
+ /// The new alias for the workspace. It does not need to be unique.
+ ///
+ /// Amazon Managed Service for Prometheus will automatically strip any blank
+ /// spaces from the beginning and end of the alias that you specify.
///
/// Parameter [clientToken] :
- /// Optional, unique, case-sensitive, user-provided identifier to ensure the
- /// idempotency of the request.
+ /// A unique identifier that you can provide to ensure the idempotency of the
+ /// request. Case-sensitive.
Future updateWorkspaceAlias({
required String workspaceId,
String? alias,
@@ -753,18 +1105,23 @@ class Prometheus {
}
}
-/// Represents the properties of an alert manager definition.
+/// The details of an alert manager definition.
class AlertManagerDefinitionDescription {
- /// The time when the alert manager definition was created.
+ /// The date and time that the alert manager definition was created.
final DateTime createdAt;
- /// The alert manager definition.
+ /// The actual alert manager definition.
+ ///
+ /// For details about the alert manager definition, see AlertManagedDefinitionData.
final Uint8List data;
- /// The time when the alert manager definition was modified.
+ /// The date and time that the alert manager definition was most recently
+ /// changed.
final DateTime modifiedAt;
- /// The status of alert manager definition.
+ /// A structure that displays the current status of the alert manager
+ /// definition..
final AlertManagerDefinitionStatus status;
AlertManagerDefinitionDescription({
@@ -799,12 +1156,12 @@ class AlertManagerDefinitionDescription {
}
}
-/// Represents the status of a definition.
+/// The status of the alert manager.
class AlertManagerDefinitionStatus {
- /// Status code of this definition.
+ /// The current status of the alert manager.
final AlertManagerDefinitionStatusCode statusCode;
- /// The reason for failure if any.
+ /// If there is a failure, the reason for the failure.
final String? statusReason;
AlertManagerDefinitionStatus({
@@ -830,7 +1187,7 @@ class AlertManagerDefinitionStatus {
}
}
-/// State of an alert manager definition.
+/// State of an AlertManagerDefinition
.
enum AlertManagerDefinitionStatusCode {
creating,
active,
@@ -881,9 +1238,35 @@ extension AlertManagerDefinitionStatusCodeFromString on String {
}
}
-/// Represents the output of a CreateAlertManagerDefinition operation.
+/// The AmpConfiguration
structure defines the Amazon Managed
+/// Service for Prometheus instance a scraper should send metrics to.
+class AmpConfiguration {
+ /// ARN of the Amazon Managed Service for Prometheus workspace.
+ final String workspaceArn;
+
+ AmpConfiguration({
+ required this.workspaceArn,
+ });
+
+ factory AmpConfiguration.fromJson(Map json) {
+ return AmpConfiguration(
+ workspaceArn: json['workspaceArn'] as String,
+ );
+ }
+
+ Map toJson() {
+ final workspaceArn = this.workspaceArn;
+ return {
+ 'workspaceArn': workspaceArn,
+ };
+ }
+}
+
+/// Represents the output of a CreateAlertManagerDefinition
+/// operation.
class CreateAlertManagerDefinitionResponse {
- /// The status of alert manager definition.
+ /// A structure that displays the current status of the alert manager
+ /// definition.
final AlertManagerDefinitionStatus status;
CreateAlertManagerDefinitionResponse({
@@ -906,9 +1289,10 @@ class CreateAlertManagerDefinitionResponse {
}
}
-/// Represents the output of a CreateLoggingConfiguration operation.
+/// Represents the output of a CreateLoggingConfiguration
+/// operation.
class CreateLoggingConfigurationResponse {
- /// The status of the logging configuration.
+ /// A structure that displays the current status of the logging configuration.
final LoggingConfigurationStatus status;
CreateLoggingConfigurationResponse({
@@ -931,18 +1315,18 @@ class CreateLoggingConfigurationResponse {
}
}
-/// Represents the output of a CreateRuleGroupsNamespace operation.
+/// Represents the output of a CreateRuleGroupsNamespace
operation.
class CreateRuleGroupsNamespaceResponse {
- /// The Amazon Resource Name (ARN) of this rule groups namespace.
+ /// The Amazon Resource Name (ARN) of the new rule groups namespace.
final String arn;
- /// The rule groups namespace name.
+ /// The name of the new rule groups namespace.
final String name;
- /// The status of rule groups namespace.
+ /// A structure that returns the current status of the rule groups namespace.
final RuleGroupsNamespaceStatus status;
- /// The tags of this rule groups namespace.
+ /// The list of tag keys and values that are associated with the namespace.
final Map? tags;
CreateRuleGroupsNamespaceResponse({
@@ -978,24 +1362,75 @@ class CreateRuleGroupsNamespaceResponse {
}
}
-/// Represents the output of a CreateWorkspace operation.
+/// Represents the output of a CreateScraper
operation.
+class CreateScraperResponse {
+ /// The Amazon Resource Name (ARN) of the new scraper.
+ final String arn;
+
+ /// The ID of the new scraper.
+ final String scraperId;
+
+ /// A structure that displays the current status of the scraper.
+ final ScraperStatus status;
+
+ /// The list of tag keys and values that are associated with the scraper.
+ final Map? tags;
+
+ CreateScraperResponse({
+ required this.arn,
+ required this.scraperId,
+ required this.status,
+ this.tags,
+ });
+
+ factory CreateScraperResponse.fromJson(Map json) {
+ return CreateScraperResponse(
+ arn: json['arn'] as String,
+ scraperId: json['scraperId'] as String,
+ status: ScraperStatus.fromJson(json['status'] as Map),
+ tags: (json['tags'] as Map?)
+ ?.map((k, e) => MapEntry(k, e as String)),
+ );
+ }
+
+ Map toJson() {
+ final arn = this.arn;
+ final scraperId = this.scraperId;
+ final status = this.status;
+ final tags = this.tags;
+ return {
+ 'arn': arn,
+ 'scraperId': scraperId,
+ 'status': status,
+ if (tags != null) 'tags': tags,
+ };
+ }
+}
+
+/// Represents the output of a CreateWorkspace
operation.
class CreateWorkspaceResponse {
- /// The ARN of the workspace that was just created.
+ /// The ARN for the new workspace.
final String arn;
- /// The status of the workspace that was just created (usually CREATING).
+ /// The current status of the new workspace. Immediately after you create the
+ /// workspace, the status is usually CREATING
.
final WorkspaceStatus status;
- /// The generated ID of the workspace that was just created.
+ /// The unique ID for the new workspace.
final String workspaceId;
- /// The tags of this workspace.
+ /// (optional) If the workspace was created with a customer managed KMS key, the
+ /// ARN for the key used.
+ final String? kmsKeyArn;
+
+ /// The list of tag keys and values that are associated with the workspace.
final Map? tags;
CreateWorkspaceResponse({
required this.arn,
required this.status,
required this.workspaceId,
+ this.kmsKeyArn,
this.tags,
});
@@ -1004,6 +1439,7 @@ class CreateWorkspaceResponse {
arn: json['arn'] as String,
status: WorkspaceStatus.fromJson(json['status'] as Map),
workspaceId: json['workspaceId'] as String,
+ kmsKeyArn: json['kmsKeyArn'] as String?,
tags: (json['tags'] as Map?)
?.map((k, e) => MapEntry(k, e as String)),
);
@@ -1013,19 +1449,52 @@ class CreateWorkspaceResponse {
final arn = this.arn;
final status = this.status;
final workspaceId = this.workspaceId;
+ final kmsKeyArn = this.kmsKeyArn;
final tags = this.tags;
return {
'arn': arn,
'status': status,
'workspaceId': workspaceId,
+ if (kmsKeyArn != null) 'kmsKeyArn': kmsKeyArn,
if (tags != null) 'tags': tags,
};
}
}
-/// Represents the output of a DescribeAlertManagerDefinition operation.
+/// Represents the output of a DeleteScraper
operation.
+class DeleteScraperResponse {
+ /// The ID of the scraper to delete.
+ final String scraperId;
+
+ /// The current status of the scraper.
+ final ScraperStatus status;
+
+ DeleteScraperResponse({
+ required this.scraperId,
+ required this.status,
+ });
+
+ factory DeleteScraperResponse.fromJson(Map json) {
+ return DeleteScraperResponse(
+ scraperId: json['scraperId'] as String,
+ status: ScraperStatus.fromJson(json['status'] as Map),
+ );
+ }
+
+ Map toJson() {
+ final scraperId = this.scraperId;
+ final status = this.status;
+ return {
+ 'scraperId': scraperId,
+ 'status': status,
+ };
+ }
+}
+
+/// Represents the output of a DescribeAlertManagerDefinition
+/// operation.
class DescribeAlertManagerDefinitionResponse {
- /// The properties of the selected workspace's alert manager definition.
+ /// The alert manager definition.
final AlertManagerDefinitionDescription alertManagerDefinition;
DescribeAlertManagerDefinitionResponse({
@@ -1048,10 +1517,10 @@ class DescribeAlertManagerDefinitionResponse {
}
}
-/// Represents the output of a DescribeLoggingConfiguration operation.
+/// Represents the output of a DescribeLoggingConfiguration
+/// operation.
class DescribeLoggingConfigurationResponse {
- /// Metadata object containing information about the logging configuration of a
- /// workspace.
+ /// A structure that displays the information about the logging configuration.
final LoggingConfigurationMetadata loggingConfiguration;
DescribeLoggingConfigurationResponse({
@@ -1074,9 +1543,10 @@ class DescribeLoggingConfigurationResponse {
}
}
-/// Represents the output of a DescribeRuleGroupsNamespace operation.
+/// Represents the output of a DescribeRuleGroupsNamespace
+/// operation.
class DescribeRuleGroupsNamespaceResponse {
- /// The selected rule groups namespace.
+ /// The information about the rule groups namespace.
final RuleGroupsNamespaceDescription ruleGroupsNamespace;
DescribeRuleGroupsNamespaceResponse({
@@ -1099,9 +1569,33 @@ class DescribeRuleGroupsNamespaceResponse {
}
}
-/// Represents the output of a DescribeWorkspace operation.
+/// Represents the output of a DescribeScraper
operation.
+class DescribeScraperResponse {
+ /// Contains details about the scraper.
+ final ScraperDescription scraper;
+
+ DescribeScraperResponse({
+ required this.scraper,
+ });
+
+ factory DescribeScraperResponse.fromJson(Map json) {
+ return DescribeScraperResponse(
+ scraper:
+ ScraperDescription.fromJson(json['scraper'] as Map),
+ );
+ }
+
+ Map toJson() {
+ final scraper = this.scraper;
+ return {
+ 'scraper': scraper,
+ };
+ }
+}
+
+/// Represents the output of a DescribeWorkspace
operation.
class DescribeWorkspaceResponse {
- /// The properties of the selected workspace.
+ /// A structure that contains details about the workspace.
final WorkspaceDescription workspace;
DescribeWorkspaceResponse({
@@ -1123,12 +1617,113 @@ class DescribeWorkspaceResponse {
}
}
-/// Represents the output of a ListRuleGroupsNamespaces operation.
+/// Where to send the metrics from a scraper.
+class Destination {
+ /// The Amazon Managed Service for Prometheusworkspace to send metrics to.
+ final AmpConfiguration? ampConfiguration;
+
+ Destination({
+ this.ampConfiguration,
+ });
+
+ factory Destination.fromJson(Map json) {
+ return Destination(
+ ampConfiguration: json['ampConfiguration'] != null
+ ? AmpConfiguration.fromJson(
+ json['ampConfiguration'] as Map)
+ : null,
+ );
+ }
+
+ Map toJson() {
+ final ampConfiguration = this.ampConfiguration;
+ return {
+ if (ampConfiguration != null) 'ampConfiguration': ampConfiguration,
+ };
+ }
+}
+
+/// The EksConfiguration
structure describes the connection to the
+/// Amazon EKS cluster from which a scraper collects metrics.
+class EksConfiguration {
+ /// ARN of the Amazon EKS cluster.
+ final String clusterArn;
+
+ /// A list of subnet IDs for the Amazon EKS cluster VPC configuration.
+ final List subnetIds;
+
+ /// A list of the security group IDs for the Amazon EKS cluster VPC
+ /// configuration.
+ final List? securityGroupIds;
+
+ EksConfiguration({
+ required this.clusterArn,
+ required this.subnetIds,
+ this.securityGroupIds,
+ });
+
+ factory EksConfiguration.fromJson(Map json) {
+ return EksConfiguration(
+ clusterArn: json['clusterArn'] as String,
+ subnetIds: (json['subnetIds'] as List)
+ .whereNotNull()
+ .map((e) => e as String)
+ .toList(),
+ securityGroupIds: (json['securityGroupIds'] as List?)
+ ?.whereNotNull()
+ .map((e) => e as String)
+ .toList(),
+ );
+ }
+
+ Map toJson() {
+ final clusterArn = this.clusterArn;
+ final subnetIds = this.subnetIds;
+ final securityGroupIds = this.securityGroupIds;
+ return {
+ 'clusterArn': clusterArn,
+ 'subnetIds': subnetIds,
+ if (securityGroupIds != null) 'securityGroupIds': securityGroupIds,
+ };
+ }
+}
+
+/// Represents the output of a GetDefaultScraperConfiguration
+/// operation.
+class GetDefaultScraperConfigurationResponse {
+ /// The configuration file. Base 64 encoded. For more information, see Scraper
+ /// configurationin the Amazon Managed Service for Prometheus User
+ /// Guide.
+ final Uint8List configuration;
+
+ GetDefaultScraperConfigurationResponse({
+ required this.configuration,
+ });
+
+ factory GetDefaultScraperConfigurationResponse.fromJson(
+ Map json) {
+ return GetDefaultScraperConfigurationResponse(
+ configuration: _s.decodeUint8List(json['configuration']! as String),
+ );
+ }
+
+ Map toJson() {
+ final configuration = this.configuration;
+ return {
+ 'configuration': base64Encode(configuration),
+ };
+ }
+}
+
+/// Represents the output of a ListRuleGroupsNamespaces
operation.
class ListRuleGroupsNamespacesResponse {
- /// The list of the selected rule groups namespaces.
+ /// The returned list of rule groups namespaces.
final List ruleGroupsNamespaces;
- /// Pagination token to use when requesting the next page in this list.
+ /// A token indicating that there are more results to retrieve. You can use this
+ /// token as part of your next ListRuleGroupsNamespaces
request to
+ /// retrieve those results.
final String? nextToken;
ListRuleGroupsNamespacesResponse({
@@ -1157,7 +1752,44 @@ class ListRuleGroupsNamespacesResponse {
}
}
+/// Represents the output of a ListScrapers
operation.
+class ListScrapersResponse {
+ /// A list of ScraperSummary
structures giving information about
+ /// scrapers in the account that match the filters provided.
+ final List scrapers;
+
+ /// A token indicating that there are more results to retrieve. You can use this
+ /// token as part of your next ListScrapers
operation to retrieve
+ /// those results.
+ final String? nextToken;
+
+ ListScrapersResponse({
+ required this.scrapers,
+ this.nextToken,
+ });
+
+ factory ListScrapersResponse.fromJson(Map json) {
+ return ListScrapersResponse(
+ scrapers: (json['scrapers'] as List)
+ .whereNotNull()
+ .map((e) => ScraperSummary.fromJson(e as Map))
+ .toList(),
+ nextToken: json['nextToken'] as String?,
+ );
+ }
+
+ Map toJson() {
+ final scrapers = this.scrapers;
+ final nextToken = this.nextToken;
+ return {
+ 'scrapers': scrapers,
+ if (nextToken != null) 'nextToken': nextToken,
+ };
+ }
+}
+
class ListTagsForResourceResponse {
+ /// The list of tag keys and values associated with the resource.
final Map? tags;
ListTagsForResourceResponse({
@@ -1179,13 +1811,15 @@ class ListTagsForResourceResponse {
}
}
-/// Represents the output of a ListWorkspaces operation.
+/// Represents the output of a ListWorkspaces
operation.
class ListWorkspacesResponse {
- /// The list of existing workspaces, including those undergoing creation or
- /// deletion.
+ /// An array of WorkspaceSummary
structures containing information
+ /// about the workspaces requested.
final List workspaces;
- /// Pagination token to use when requesting the next page in this list.
+ /// A token indicating that there are more results to retrieve. You can use this
+ /// token as part of your next ListWorkspaces
request to retrieve
+ /// those results.
final String? nextToken;
ListWorkspacesResponse({
@@ -1213,21 +1847,22 @@ class ListWorkspacesResponse {
}
}
-/// Represents the properties of a logging configuration metadata.
+/// Contains information about the logging configuration.
class LoggingConfigurationMetadata {
- /// The time when the logging configuration was created.
+ /// The date and time that the logging configuration was created.
final DateTime createdAt;
- /// The ARN of the CW log group to which the vended log data will be published.
+ /// The ARN of the CloudWatch log group to which the vended log data will be
+ /// published.
final String logGroupArn;
- /// The time when the logging configuration was modified.
+ /// The date and time that the logging configuration was most recently changed.
final DateTime modifiedAt;
- /// The status of the logging configuration.
+ /// The current status of the logging configuration.
final LoggingConfigurationStatus status;
- /// The workspace where the logging configuration exists.
+ /// The ID of the workspace the logging configuration is for.
final String workspace;
LoggingConfigurationMetadata({
@@ -1265,12 +1900,12 @@ class LoggingConfigurationMetadata {
}
}
-/// Represents the status of a logging configuration.
+/// The status of the logging configuration.
class LoggingConfigurationStatus {
- /// Status code of the logging configuration.
+ /// The current status of the logging configuration.
final LoggingConfigurationStatusCode statusCode;
- /// The reason for failure if any.
+ /// If failed, the reason for the failure.
final String? statusReason;
LoggingConfigurationStatus({
@@ -1347,9 +1982,9 @@ extension LoggingConfigurationStatusCodeFromString on String {
}
}
-/// Represents the output of a PutAlertManagerDefinition operation.
+/// Represents the output of a PutAlertManagerDefinition
operation.
class PutAlertManagerDefinitionResponse {
- /// The status of alert manager definition.
+ /// A structure that returns the current status of the alert manager definition.
final AlertManagerDefinitionStatus status;
PutAlertManagerDefinitionResponse({
@@ -1372,18 +2007,18 @@ class PutAlertManagerDefinitionResponse {
}
}
-/// Represents the output of a PutRuleGroupsNamespace operation.
+/// Represents the output of a PutRuleGroupsNamespace
operation.
class PutRuleGroupsNamespaceResponse {
- /// The Amazon Resource Name (ARN) of this rule groups namespace.
+ /// The ARN of the rule groups namespace.
final String arn;
- /// The rule groups namespace name.
+ /// The name of the rule groups namespace that was updated.
final String name;
- /// The status of rule groups namespace.
+ /// A structure that includes the current status of the rule groups namespace.
final RuleGroupsNamespaceStatus status;
- /// The tags of this rule groups namespace.
+ /// The list of tag keys and values that are associated with the namespace.
final Map? tags;
PutRuleGroupsNamespaceResponse({
@@ -1418,27 +2053,31 @@ class PutRuleGroupsNamespaceResponse {
}
}
-/// Represents a description of the rule groups namespace.
+/// The details about one rule groups namespace.
class RuleGroupsNamespaceDescription {
- /// The Amazon Resource Name (ARN) of this rule groups namespace.
+ /// The ARN of the rule groups namespace.
final String arn;
- /// The time when the rule groups namespace was created.
+ /// The date and time that the rule groups namespace was created.
final DateTime createdAt;
- /// The rule groups namespace data.
+ /// The rule groups file used in the namespace.
+ ///
+ /// For details about the rule groups namespace structure, see RuleGroupsNamespaceData.
final Uint8List data;
- /// The time when the rule groups namespace was modified.
+ /// The date and time that the rule groups namespace was most recently changed.
final DateTime modifiedAt;
- /// The rule groups namespace name.
+ /// The name of the rule groups namespace.
final String name;
- /// The status of rule groups namespace.
+ /// The current status of the rule groups namespace.
final RuleGroupsNamespaceStatus status;
- /// The tags of this rule groups namespace.
+ /// The list of tag keys and values that are associated with the rule groups
+ /// namespace.
final Map? tags;
RuleGroupsNamespaceDescription({
@@ -1485,12 +2124,12 @@ class RuleGroupsNamespaceDescription {
}
}
-/// Represents the status of a namespace.
+/// The status information about a rule groups namespace.
class RuleGroupsNamespaceStatus {
- /// Status code of this namespace.
+ /// The current status of the namespace.
final RuleGroupsNamespaceStatusCode statusCode;
- /// The reason for failure if any.
+ /// The reason for the failure, if any.
final String? statusReason;
RuleGroupsNamespaceStatus({
@@ -1566,24 +2205,26 @@ extension RuleGroupsNamespaceStatusCodeFromString on String {
}
}
-/// Represents a summary of the rule groups namespace.
+/// The high-level information about a rule groups namespace. To retrieve more
+/// information, use DescribeRuleGroupsNamespace
.
class RuleGroupsNamespaceSummary {
- /// The Amazon Resource Name (ARN) of this rule groups namespace.
+ /// The ARN of the rule groups namespace.
final String arn;
- /// The time when the rule groups namespace was created.
+ /// The date and time that the rule groups namespace was created.
final DateTime createdAt;
- /// The time when the rule groups namespace was modified.
+ /// The date and time that the rule groups namespace was most recently changed.
final DateTime modifiedAt;
- /// The rule groups namespace name.
+ /// The name of the rule groups namespace.
final String name;
- /// The status of rule groups namespace.
+ /// A structure that displays the current status of the rule groups namespace.
final RuleGroupsNamespaceStatus status;
- /// The tags of this rule groups namespace.
+ /// The list of tag keys and values that are associated with the rule groups
+ /// namespace.
final Map? tags;
RuleGroupsNamespaceSummary({
@@ -1626,6 +2267,335 @@ class RuleGroupsNamespaceSummary {
}
}
+/// A scrape configuration for a scraper, base 64 encoded. For more information,
+/// see Scraper
+/// configuration in the Amazon Managed Service for Prometheus User
+/// Guide.
+class ScrapeConfiguration {
+ /// The base 64 encoded scrape configuration file.
+ final Uint8List? configurationBlob;
+
+ ScrapeConfiguration({
+ this.configurationBlob,
+ });
+
+ factory ScrapeConfiguration.fromJson(Map json) {
+ return ScrapeConfiguration(
+ configurationBlob:
+ _s.decodeNullableUint8List(json['configurationBlob'] as String?),
+ );
+ }
+
+ Map toJson() {
+ final configurationBlob = this.configurationBlob;
+ return {
+ if (configurationBlob != null)
+ 'configurationBlob': base64Encode(configurationBlob),
+ };
+ }
+}
+
+/// The ScraperDescription
structure contains the full details
+/// about one scraper in your account.
+class ScraperDescription {
+ /// The Amazon Resource Name (ARN) of the scraper.
+ final String arn;
+
+ /// The date and time that the scraper was created.
+ final DateTime createdAt;
+
+ /// The Amazon Managed Service for Prometheus workspace the scraper sends
+ /// metrics to.
+ final Destination destination;
+
+ /// The date and time that the scraper was last modified.
+ final DateTime lastModifiedAt;
+
+ /// The Amazon Resource Name (ARN) of the IAM role that provides permissions for
+ /// the scraper to discover and collect metrics on your behalf.
+ final String roleArn;
+
+ /// The configuration file in use by the scraper.
+ final ScrapeConfiguration scrapeConfiguration;
+
+ /// The ID of the scraper.
+ final String scraperId;
+
+ /// The Amazon EKS cluster from which the scraper collects metrics.
+ final Source source;
+
+ /// A structure that contains the current status of the scraper.
+ final ScraperStatus status;
+
+ /// (Optional) A name associated with the scraper.
+ final String? alias;
+
+ /// If there is a failure, the reason for the failure.
+ final String? statusReason;
+
+ /// (Optional) The list of tag keys and values associated with the scraper.
+ final Map? tags;
+
+ ScraperDescription({
+ required this.arn,
+ required this.createdAt,
+ required this.destination,
+ required this.lastModifiedAt,
+ required this.roleArn,
+ required this.scrapeConfiguration,
+ required this.scraperId,
+ required this.source,
+ required this.status,
+ this.alias,
+ this.statusReason,
+ this.tags,
+ });
+
+ factory ScraperDescription.fromJson(Map json) {
+ return ScraperDescription(
+ arn: json['arn'] as String,
+ createdAt: nonNullableTimeStampFromJson(json['createdAt'] as Object),
+ destination:
+ Destination.fromJson(json['destination'] as Map),
+ lastModifiedAt:
+ nonNullableTimeStampFromJson(json['lastModifiedAt'] as Object),
+ roleArn: json['roleArn'] as String,
+ scrapeConfiguration: ScrapeConfiguration.fromJson(
+ json['scrapeConfiguration'] as Map),
+ scraperId: json['scraperId'] as String,
+ source: Source.fromJson(json['source'] as Map),
+ status: ScraperStatus.fromJson(json['status'] as Map),
+ alias: json['alias'] as String?,
+ statusReason: json['statusReason'] as String?,
+ tags: (json['tags'] as Map?)
+ ?.map((k, e) => MapEntry(k, e as String)),
+ );
+ }
+
+ Map toJson() {
+ final arn = this.arn;
+ final createdAt = this.createdAt;
+ final destination = this.destination;
+ final lastModifiedAt = this.lastModifiedAt;
+ final roleArn = this.roleArn;
+ final scrapeConfiguration = this.scrapeConfiguration;
+ final scraperId = this.scraperId;
+ final source = this.source;
+ final status = this.status;
+ final alias = this.alias;
+ final statusReason = this.statusReason;
+ final tags = this.tags;
+ return {
+ 'arn': arn,
+ 'createdAt': unixTimestampToJson(createdAt),
+ 'destination': destination,
+ 'lastModifiedAt': unixTimestampToJson(lastModifiedAt),
+ 'roleArn': roleArn,
+ 'scrapeConfiguration': scrapeConfiguration,
+ 'scraperId': scraperId,
+ 'source': source,
+ 'status': status,
+ if (alias != null) 'alias': alias,
+ if (statusReason != null) 'statusReason': statusReason,
+ if (tags != null) 'tags': tags,
+ };
+ }
+}
+
+/// The ScraperStatus
structure contains status information about
+/// the scraper.
+class ScraperStatus {
+ /// The current status of the scraper.
+ final ScraperStatusCode statusCode;
+
+ ScraperStatus({
+ required this.statusCode,
+ });
+
+ factory ScraperStatus.fromJson(Map json) {
+ return ScraperStatus(
+ statusCode: (json['statusCode'] as String).toScraperStatusCode(),
+ );
+ }
+
+ Map toJson() {
+ final statusCode = this.statusCode;
+ return {
+ 'statusCode': statusCode.toValue(),
+ };
+ }
+}
+
+/// State of a scraper.
+enum ScraperStatusCode {
+ creating,
+ active,
+ deleting,
+ creationFailed,
+ deletionFailed,
+}
+
+extension ScraperStatusCodeValueExtension on ScraperStatusCode {
+ String toValue() {
+ switch (this) {
+ case ScraperStatusCode.creating:
+ return 'CREATING';
+ case ScraperStatusCode.active:
+ return 'ACTIVE';
+ case ScraperStatusCode.deleting:
+ return 'DELETING';
+ case ScraperStatusCode.creationFailed:
+ return 'CREATION_FAILED';
+ case ScraperStatusCode.deletionFailed:
+ return 'DELETION_FAILED';
+ }
+ }
+}
+
+extension ScraperStatusCodeFromString on String {
+ ScraperStatusCode toScraperStatusCode() {
+ switch (this) {
+ case 'CREATING':
+ return ScraperStatusCode.creating;
+ case 'ACTIVE':
+ return ScraperStatusCode.active;
+ case 'DELETING':
+ return ScraperStatusCode.deleting;
+ case 'CREATION_FAILED':
+ return ScraperStatusCode.creationFailed;
+ case 'DELETION_FAILED':
+ return ScraperStatusCode.deletionFailed;
+ }
+ throw Exception('$this is not known in enum ScraperStatusCode');
+ }
+}
+
+/// The ScraperSummary
structure contains a summary of the details
+/// about one scraper in your account.
+class ScraperSummary {
+ /// The Amazon Resource Name (ARN) of the scraper.
+ final String arn;
+
+ /// The date and time that the scraper was created.
+ final DateTime createdAt;
+
+ /// The Amazon Managed Service for Prometheus workspace the scraper sends
+ /// metrics to.
+ final Destination destination;
+
+ /// The date and time that the scraper was last modified.
+ final DateTime lastModifiedAt;
+
+ /// The Amazon Resource Name (ARN) of the IAM role that provides permissions for
+ /// the scraper to discover and collect metrics on your behalf.
+ final String roleArn;
+
+ /// The ID of the scraper.
+ final String scraperId;
+
+ /// The Amazon EKS cluster from which the scraper collects metrics.
+ final Source source;
+
+ /// A structure that contains the current status of the scraper.
+ final ScraperStatus status;
+
+ /// (Optional) A name associated with the scraper.
+ final String? alias;
+
+ /// If there is a failure, the reason for the failure.
+ final String? statusReason;
+
+ /// (Optional) The list of tag keys and values associated with the scraper.
+ final Map? tags;
+
+ ScraperSummary({
+ required this.arn,
+ required this.createdAt,
+ required this.destination,
+ required this.lastModifiedAt,
+ required this.roleArn,
+ required this.scraperId,
+ required this.source,
+ required this.status,
+ this.alias,
+ this.statusReason,
+ this.tags,
+ });
+
+ factory ScraperSummary.fromJson(Map json) {
+ return ScraperSummary(
+ arn: json['arn'] as String,
+ createdAt: nonNullableTimeStampFromJson(json['createdAt'] as Object),
+ destination:
+ Destination.fromJson(json['destination'] as Map),
+ lastModifiedAt:
+ nonNullableTimeStampFromJson(json['lastModifiedAt'] as Object),
+ roleArn: json['roleArn'] as String,
+ scraperId: json['scraperId'] as String,
+ source: Source.fromJson(json['source'] as Map),
+ status: ScraperStatus.fromJson(json['status'] as Map),
+ alias: json['alias'] as String?,
+ statusReason: json['statusReason'] as String?,
+ tags: (json['tags'] as Map?)
+ ?.map((k, e) => MapEntry(k, e as String)),
+ );
+ }
+
+ Map toJson() {
+ final arn = this.arn;
+ final createdAt = this.createdAt;
+ final destination = this.destination;
+ final lastModifiedAt = this.lastModifiedAt;
+ final roleArn = this.roleArn;
+ final scraperId = this.scraperId;
+ final source = this.source;
+ final status = this.status;
+ final alias = this.alias;
+ final statusReason = this.statusReason;
+ final tags = this.tags;
+ return {
+ 'arn': arn,
+ 'createdAt': unixTimestampToJson(createdAt),
+ 'destination': destination,
+ 'lastModifiedAt': unixTimestampToJson(lastModifiedAt),
+ 'roleArn': roleArn,
+ 'scraperId': scraperId,
+ 'source': source,
+ 'status': status,
+ if (alias != null) 'alias': alias,
+ if (statusReason != null) 'statusReason': statusReason,
+ if (tags != null) 'tags': tags,
+ };
+ }
+}
+
+/// The source of collected metrics for a scraper.
+class Source {
+ /// The Amazon EKS cluster from which a scraper collects metrics.
+ final EksConfiguration? eksConfiguration;
+
+ Source({
+ this.eksConfiguration,
+ });
+
+ factory Source.fromJson(Map json) {
+ return Source(
+ eksConfiguration: json['eksConfiguration'] != null
+ ? EksConfiguration.fromJson(
+ json['eksConfiguration'] as Map)
+ : null,
+ );
+ }
+
+ Map toJson() {
+ final eksConfiguration = this.eksConfiguration;
+ return {
+ if (eksConfiguration != null) 'eksConfiguration': eksConfiguration,
+ };
+ }
+}
+
class TagResourceResponse {
TagResourceResponse();
@@ -1650,9 +2620,10 @@ class UntagResourceResponse {
}
}
-/// Represents the output of an UpdateLoggingConfiguration operation.
+/// Represents the output of an UpdateLoggingConfiguration
+/// operation.
class UpdateLoggingConfigurationResponse {
- /// The status of the logging configuration.
+ /// A structure that contains the current status of the logging configuration.
final LoggingConfigurationStatus status;
UpdateLoggingConfigurationResponse({
@@ -1675,27 +2646,33 @@ class UpdateLoggingConfigurationResponse {
}
}
-/// Represents the properties of a workspace.
+/// The full details about one Amazon Managed Service for Prometheus workspace
+/// in your account.
class WorkspaceDescription {
- /// The Amazon Resource Name (ARN) of this workspace.
+ /// The ARN of the workspace.
final String arn;
- /// The time when the workspace was created.
+ /// The date and time that the workspace was created.
final DateTime createdAt;
- /// The status of this workspace.
+ /// The current status of the workspace.
final WorkspaceStatus status;
- /// Unique string identifying this workspace.
+ /// The unique ID for the workspace.
final String workspaceId;
- /// Alias of this workspace.
+ /// The alias that is assigned to this workspace to help identify it. It may not
+ /// be unique.
final String? alias;
- /// Prometheus endpoint URI.
+ /// (optional) If the workspace was created with a customer managed KMS key, the
+ /// ARN for the key used.
+ final String? kmsKeyArn;
+
+ /// The Prometheus endpoint available for this workspace.
final String? prometheusEndpoint;
- /// The tags of this workspace.
+ /// The list of tag keys and values that are associated with the workspace.
final Map? tags;
WorkspaceDescription({
@@ -1704,6 +2681,7 @@ class WorkspaceDescription {
required this.status,
required this.workspaceId,
this.alias,
+ this.kmsKeyArn,
this.prometheusEndpoint,
this.tags,
});
@@ -1715,6 +2693,7 @@ class WorkspaceDescription {
status: WorkspaceStatus.fromJson(json['status'] as Map),
workspaceId: json['workspaceId'] as String,
alias: json['alias'] as String?,
+ kmsKeyArn: json['kmsKeyArn'] as String?,
prometheusEndpoint: json['prometheusEndpoint'] as String?,
tags: (json['tags'] as Map?)
?.map((k, e) => MapEntry(k, e as String)),
@@ -1727,6 +2706,7 @@ class WorkspaceDescription {
final status = this.status;
final workspaceId = this.workspaceId;
final alias = this.alias;
+ final kmsKeyArn = this.kmsKeyArn;
final prometheusEndpoint = this.prometheusEndpoint;
final tags = this.tags;
return {
@@ -1735,15 +2715,16 @@ class WorkspaceDescription {
'status': status,
'workspaceId': workspaceId,
if (alias != null) 'alias': alias,
+ if (kmsKeyArn != null) 'kmsKeyArn': kmsKeyArn,
if (prometheusEndpoint != null) 'prometheusEndpoint': prometheusEndpoint,
if (tags != null) 'tags': tags,
};
}
}
-/// Represents the status of a workspace.
+/// The status of the workspace.
class WorkspaceStatus {
- /// Status code of this workspace.
+ /// The current status of the workspace.
final WorkspaceStatusCode statusCode;
WorkspaceStatus({
@@ -1808,24 +2789,30 @@ extension WorkspaceStatusCodeFromString on String {
}
}
-/// Represents a summary of the properties of a workspace.
+/// The information about one Amazon Managed Service for Prometheus workspace in
+/// your account.
class WorkspaceSummary {
- /// The AmazonResourceName of this workspace.
+ /// The ARN of the workspace.
final String arn;
- /// The time when the workspace was created.
+ /// The date and time that the workspace was created.
final DateTime createdAt;
- /// The status of this workspace.
+ /// The current status of the workspace.
final WorkspaceStatus status;
- /// Unique string identifying this workspace.
+ /// The unique ID for the workspace.
final String workspaceId;
- /// Alias of this workspace.
+ /// The alias that is assigned to this workspace to help identify it. It may not
+ /// be unique.
final String? alias;
- /// The tags of this workspace.
+ /// (optional) If the workspace was created with a customer managed KMS key, the
+ /// ARN for the key used.
+ final String? kmsKeyArn;
+
+ /// The list of tag keys and values that are associated with the workspace.
final Map? tags;
WorkspaceSummary({
@@ -1834,6 +2821,7 @@ class WorkspaceSummary {
required this.status,
required this.workspaceId,
this.alias,
+ this.kmsKeyArn,
this.tags,
});
@@ -1844,6 +2832,7 @@ class WorkspaceSummary {
status: WorkspaceStatus.fromJson(json['status'] as Map),
workspaceId: json['workspaceId'] as String,
alias: json['alias'] as String?,
+ kmsKeyArn: json['kmsKeyArn'] as String?,
tags: (json['tags'] as Map?)
?.map((k, e) => MapEntry(k, e as String)),
);
@@ -1855,6 +2844,7 @@ class WorkspaceSummary {
final status = this.status;
final workspaceId = this.workspaceId;
final alias = this.alias;
+ final kmsKeyArn = this.kmsKeyArn;
final tags = this.tags;
return {
'arn': arn,
@@ -1862,6 +2852,7 @@ class WorkspaceSummary {
'status': status,
'workspaceId': workspaceId,
if (alias != null) 'alias': alias,
+ if (kmsKeyArn != null) 'kmsKeyArn': kmsKeyArn,
if (tags != null) 'tags': tags,
};
}
diff --git a/aws_client/lib/src/generated/amplify/v2017_07_25.dart b/aws_client/lib/src/generated/amplify/v2017_07_25.dart
index d0a42cdf5..1b6dfcce6 100644
--- a/aws_client/lib/src/generated/amplify/v2017_07_25.dart
+++ b/aws_client/lib/src/generated/amplify/v2017_07_25.dart
@@ -20,10 +20,10 @@ import '../../shared/shared.dart'
export '../../shared/shared.dart' show AwsClientCredentials;
/// Amplify enables developers to develop and deploy cloud-powered mobile and
-/// web apps. The Amplify Console provides a continuous delivery and hosting
-/// service for web applications. For more information, see the Amplify
-/// Console User Guide. The Amplify Framework is a comprehensive set of
+/// Hosting User Guide. The Amplify Framework is a comprehensive set of
/// SDKs, libraries, tools, and documentation for client app development. For
/// more information, see the Amplify
/// Framework.
@@ -65,7 +65,7 @@ class Amplify {
/// May throw [DependentServiceFailureException].
///
/// Parameter [name] :
- /// The name for an Amplify app.
+ /// The name of the Amplify app.
///
/// Parameter [accessToken] :
/// The personal access token for a GitHub repository for an Amplify app. The
@@ -82,7 +82,7 @@ class Amplify {
/// Existing Amplify apps deployed from a GitHub repository using OAuth
/// continue to work with CI/CD. However, we strongly recommend that you
/// migrate these apps to use the GitHub App. For more information, see Migrating
+ /// href="https://docs.aws.amazon.com/amplify/latest/userguide/setting-up-GitHub-access.html#migrating-to-github-app-auth">Migrating
/// an existing OAuth app to the Amplify GitHub App in the Amplify User
/// Guide .
///
@@ -107,7 +107,7 @@ class Amplify {
/// The custom rewrite and redirect rules for an Amplify app.
///
/// Parameter [description] :
- /// The description for an Amplify app.
+ /// The description of the Amplify app.
///
/// Parameter [enableAutoBranchCreation] :
/// Enables automated branch creation for an Amplify app.
@@ -120,12 +120,17 @@ class Amplify {
/// Enables the auto building of branches for an Amplify app.
///
/// Parameter [enableBranchAutoDeletion] :
- /// Automatically disconnects a branch in the Amplify Console when you delete
+ /// Automatically disconnects a branch in the Amplify console when you delete
/// a branch from your Git repository.
///
/// Parameter [environmentVariables] :
/// The environment variables map for an Amplify app.
///
+ /// For a list of the environment variables that are accessible to Amplify by
+ /// default, see Amplify
+ /// Environment variables in the Amplify Hosting User Guide.
+ ///
/// Parameter [iamServiceRoleArn] :
/// The AWS Identity and Access Management (IAM) service role for an Amplify
/// app.
@@ -145,7 +150,7 @@ class Amplify {
/// Existing Amplify apps deployed from a GitHub repository using OAuth
/// continue to work with CI/CD. However, we strongly recommend that you
/// migrate these apps to use the GitHub App. For more information, see Migrating
+ /// href="https://docs.aws.amazon.com/amplify/latest/userguide/setting-up-GitHub-access.html#migrating-to-github-app-auth">Migrating
/// an existing OAuth app to the Amplify GitHub App in the Amplify User
/// Guide .
///
@@ -157,7 +162,7 @@ class Amplify {
/// WEB_DYNAMIC
.
///
/// Parameter [repository] :
- /// The repository for an Amplify app.
+ /// The Git repository for the Amplify app.
///
/// Parameter [tags] :
/// The tag for an Amplify app.
@@ -221,6 +226,12 @@ class Amplify {
/// Creates a new backend environment for an Amplify app.
///
+ /// This API is available only to Amplify Gen 1 applications where the backend
+ /// is created using Amplify Studio or the Amplify command line interface
+ /// (CLI). This API isn’t available to Amplify Gen 2 applications. When you
+ /// deploy an application with Amplify Gen 2, you provision the app's backend
+ /// infrastructure using Typescript code.
+ ///
/// May throw [BadRequestException].
/// May throw [UnauthorizedException].
/// May throw [NotFoundException].
@@ -274,9 +285,20 @@ class Amplify {
/// Parameter [branchName] :
/// The name for the branch.
///
+ /// Parameter [backend] :
+ /// The backend for a Branch
of an Amplify app. Use for a backend
+ /// created from an CloudFormation stack.
+ ///
+ /// This field is available to Amplify Gen 2 apps only. When you deploy an
+ /// application with Amplify Gen 2, you provision the app's backend
+ /// infrastructure using Typescript code.
+ ///
/// Parameter [backendEnvironmentArn] :
- /// The Amazon Resource Name (ARN) for a backend environment that is part of
- /// an Amplify app.
+ /// The Amazon Resource Name (ARN) for a backend environment that is part of a
+ /// Gen 1 Amplify app.
+ ///
+ /// This field is available to Amplify Gen 1 apps only where the backend is
+ /// created using Amplify Studio or the Amplify command line interface (CLI).
///
/// Parameter [basicAuthCredentials] :
/// The basic authorization credentials for the branch. You must base64-encode
@@ -332,6 +354,7 @@ class Amplify {
Future createBranch({
required String appId,
required String branchName,
+ Backend? backend,
String? backendEnvironmentArn,
String? basicAuthCredentials,
String? buildSpec,
@@ -351,6 +374,7 @@ class Amplify {
}) async {
final $payload = {
'branchName': branchName,
+ if (backend != null) 'backend': backend,
if (backendEnvironmentArn != null)
'backendEnvironmentArn': backendEnvironmentArn,
if (basicAuthCredentials != null)
@@ -386,6 +410,11 @@ class Amplify {
/// Creates a deployment for a manually deployed Amplify app. Manually
/// deployed apps are not connected to a repository.
///
+ /// The maximum duration between the CreateDeployment
call and
+ /// the StartDeployment
call cannot exceed 8 hours. If the
+ /// duration exceeds 8 hours, the StartDeployment
call and the
+ /// associated Job
will fail.
+ ///
/// May throw [BadRequestException].
/// May throw [UnauthorizedException].
/// May throw [InternalFailureException].
@@ -395,7 +424,7 @@ class Amplify {
/// The unique ID for an Amplify app.
///
/// Parameter [branchName] :
- /// The name for the branch, for the job.
+ /// The name of the branch to use for the job.
///
/// Parameter [fileMap] :
/// An optional file map that contains the file name as the key and the file
@@ -446,6 +475,11 @@ class Amplify {
/// The required AWS Identity and Access Management (IAM) service role for the
/// Amazon Resource Name (ARN) for automatically creating subdomains.
///
+ /// Parameter [certificateSettings] :
+ /// The type of SSL/TLS certificate to use for your custom domain. If you
+ /// don't specify a certificate type, Amplify uses the default certificate
+ /// that it provisions and manages for you.
+ ///
/// Parameter [enableAutoSubDomain] :
/// Enables the automated creation of subdomains for branches.
Future createDomainAssociation({
@@ -454,6 +488,7 @@ class Amplify {
required List subDomainSettings,
List? autoSubDomainCreationPatterns,
String? autoSubDomainIAMRole,
+ CertificateSettings? certificateSettings,
bool? enableAutoSubDomain,
}) async {
final $payload = {
@@ -463,6 +498,8 @@ class Amplify {
'autoSubDomainCreationPatterns': autoSubDomainCreationPatterns,
if (autoSubDomainIAMRole != null)
'autoSubDomainIAMRole': autoSubDomainIAMRole,
+ if (certificateSettings != null)
+ 'certificateSettings': certificateSettings,
if (enableAutoSubDomain != null)
'enableAutoSubDomain': enableAutoSubDomain,
};
@@ -534,6 +571,12 @@ class Amplify {
/// Deletes a backend environment for an Amplify app.
///
+ /// This API is available only to Amplify Gen 1 applications where the backend
+ /// is created using Amplify Studio or the Amplify command line interface
+ /// (CLI). This API isn’t available to Amplify Gen 2 applications. When you
+ /// deploy an application with Amplify Gen 2, you provision the app's backend
+ /// infrastructure using Typescript code.
+ ///
/// May throw [BadRequestException].
/// May throw [UnauthorizedException].
/// May throw [NotFoundException].
@@ -571,7 +614,7 @@ class Amplify {
/// The unique ID for an Amplify app.
///
/// Parameter [branchName] :
- /// The name for the branch.
+ /// The name of the branch.
Future deleteBranch({
required String appId,
required String branchName,
@@ -625,7 +668,7 @@ class Amplify {
/// The unique ID for an Amplify app.
///
/// Parameter [branchName] :
- /// The name for the branch, for the job.
+ /// The name of the branch to use for the job.
///
/// Parameter [jobId] :
/// The unique ID for the job.
@@ -707,7 +750,7 @@ class Amplify {
return GenerateAccessLogsResult.fromJson(response);
}
- /// Returns an existing Amplify app by appID.
+ /// Returns an existing Amplify app specified by an app ID.
///
/// May throw [BadRequestException].
/// May throw [NotFoundException].
@@ -752,6 +795,12 @@ class Amplify {
/// Returns a backend environment for an Amplify app.
///
+ /// This API is available only to Amplify Gen 1 applications where the backend
+ /// is created using Amplify Studio or the Amplify command line interface
+ /// (CLI). This API isn’t available to Amplify Gen 2 applications. When you
+ /// deploy an application with Amplify Gen 2, you provision the app's backend
+ /// infrastructure using Typescript code.
+ ///
/// May throw [BadRequestException].
/// May throw [UnauthorizedException].
/// May throw [NotFoundException].
@@ -787,7 +836,7 @@ class Amplify {
/// The unique ID for an Amplify app.
///
/// Parameter [branchName] :
- /// The name for the branch.
+ /// The name of the branch.
Future getBranch({
required String appId,
required String branchName,
@@ -840,7 +889,7 @@ class Amplify {
/// The unique ID for an Amplify app.
///
/// Parameter [branchName] :
- /// The branch name for the job.
+ /// The name of the branch to use for the job.
///
/// Parameter [jobId] :
/// The unique ID for the job.
@@ -952,7 +1001,7 @@ class Amplify {
'maxResults',
maxResults,
0,
- 100,
+ 50,
);
final $query = >{
if (maxResults != null) 'maxResults': [maxResults.toString()],
@@ -971,6 +1020,12 @@ class Amplify {
/// Lists the backend environments for an Amplify app.
///
+ /// This API is available only to Amplify Gen 1 applications where the backend
+ /// is created using Amplify Studio or the Amplify command line interface
+ /// (CLI). This API isn’t available to Amplify Gen 2 applications. When you
+ /// deploy an application with Amplify Gen 2, you provision the app's backend
+ /// infrastructure using Typescript code.
+ ///
/// May throw [BadRequestException].
/// May throw [UnauthorizedException].
/// May throw [InternalFailureException].
@@ -998,7 +1053,7 @@ class Amplify {
'maxResults',
maxResults,
0,
- 100,
+ 50,
);
final $query = >{
if (environmentName != null) 'environmentName': [environmentName],
@@ -1040,7 +1095,7 @@ class Amplify {
'maxResults',
maxResults,
0,
- 100,
+ 50,
);
final $query = >{
if (maxResults != null) 'maxResults': [maxResults.toString()],
@@ -1081,7 +1136,7 @@ class Amplify {
'maxResults',
maxResults,
0,
- 100,
+ 50,
);
final $query = >{
if (maxResults != null) 'maxResults': [maxResults.toString()],
@@ -1108,7 +1163,7 @@ class Amplify {
/// The unique ID for an Amplify app.
///
/// Parameter [branchName] :
- /// The name for a branch.
+ /// The name of the branch to use for the request.
///
/// Parameter [maxResults] :
/// The maximum number of records to list in a single response.
@@ -1127,7 +1182,7 @@ class Amplify {
'maxResults',
maxResults,
0,
- 100,
+ 50,
);
final $query = >{
if (maxResults != null) 'maxResults': [maxResults.toString()],
@@ -1190,7 +1245,7 @@ class Amplify {
'maxResults',
maxResults,
0,
- 100,
+ 50,
);
final $query = >{
if (maxResults != null) 'maxResults': [maxResults.toString()],
@@ -1209,6 +1264,11 @@ class Amplify {
/// Starts a deployment for a manually deployed app. Manually deployed apps
/// are not connected to a repository.
///
+ /// The maximum duration between the CreateDeployment
call and
+ /// the StartDeployment
call cannot exceed 8 hours. If the
+ /// duration exceeds 8 hours, the StartDeployment
call and the
+ /// associated Job
will fail.
+ ///
/// May throw [BadRequestException].
/// May throw [UnauthorizedException].
/// May throw [InternalFailureException].
@@ -1219,7 +1279,7 @@ class Amplify {
/// The unique ID for an Amplify app.
///
/// Parameter [branchName] :
- /// The name for the branch, for the job.
+ /// The name of the branch to use for the job.
///
/// Parameter [jobId] :
/// The job ID for this deployment, generated by the create deployment
@@ -1261,14 +1321,15 @@ class Amplify {
/// The unique ID for an Amplify app.
///
/// Parameter [branchName] :
- /// The branch name for the job.
+ /// The name of the branch to use for the job.
///
/// Parameter [jobType] :
/// Describes the type for the job. The job type RELEASE
starts a
/// new job with the latest change from the specified branch. This value is
- /// available only for apps that are connected to a repository. The job type
- /// RETRY
retries an existing job. If the job type value is
- /// RETRY
, the jobId
is also required.
+ /// available only for apps that are connected to a repository.
+ ///
+ /// The job type RETRY
retries an existing job. If the job type
+ /// value is RETRY
, the jobId
is also required.
///
/// Parameter [commitId] :
/// The commit ID from a third-party repository provider for the job.
@@ -1284,7 +1345,7 @@ class Amplify {
/// jobType
is RETRY
.
///
/// Parameter [jobReason] :
- /// A descriptive reason for starting this job.
+ /// A descriptive reason for starting the job.
Future startJob({
required String appId,
required String branchName,
@@ -1325,7 +1386,7 @@ class Amplify {
/// The unique ID for an Amplify app.
///
/// Parameter [branchName] :
- /// The name for the branch, for the job.
+ /// The name of the branch to use for the stop job request.
///
/// Parameter [jobId] :
/// The unique id for the job.
@@ -1422,7 +1483,7 @@ class Amplify {
/// Existing Amplify apps deployed from a GitHub repository using OAuth
/// continue to work with CI/CD. However, we strongly recommend that you
/// migrate these apps to use the GitHub App. For more information, see Migrating
+ /// href="https://docs.aws.amazon.com/amplify/latest/userguide/setting-up-GitHub-access.html#migrating-to-github-app-auth">Migrating
/// an existing OAuth app to the Amplify GitHub App in the Amplify User
/// Guide .
///
@@ -1459,7 +1520,7 @@ class Amplify {
/// Enables branch auto-building for an Amplify app.
///
/// Parameter [enableBranchAutoDeletion] :
- /// Automatically disconnects a branch in the Amplify Console when you delete
+ /// Automatically disconnects a branch in the Amplify console when you delete
/// a branch from your Git repository.
///
/// Parameter [environmentVariables] :
@@ -1489,7 +1550,7 @@ class Amplify {
/// Existing Amplify apps deployed from a GitHub repository using OAuth
/// continue to work with CI/CD. However, we strongly recommend that you
/// migrate these apps to use the GitHub App. For more information, see Migrating
+ /// href="https://docs.aws.amazon.com/amplify/latest/userguide/setting-up-GitHub-access.html#migrating-to-github-app-auth">Migrating
/// an existing OAuth app to the Amplify GitHub App in the Amplify User
/// Guide .
///
@@ -1501,7 +1562,7 @@ class Amplify {
/// WEB_DYNAMIC
.
///
/// Parameter [repository] :
- /// The name of the repository for an Amplify app
+ /// The name of the Git repository for an Amplify app.
Future updateApp({
required String appId,
String? accessToken,
@@ -1571,11 +1632,22 @@ class Amplify {
/// The unique ID for an Amplify app.
///
/// Parameter [branchName] :
- /// The name for the branch.
+ /// The name of the branch.
+ ///
+ /// Parameter [backend] :
+ /// The backend for a Branch
of an Amplify app. Use for a backend
+ /// created from an CloudFormation stack.
+ ///
+ /// This field is available to Amplify Gen 2 apps only. When you deploy an
+ /// application with Amplify Gen 2, you provision the app's backend
+ /// infrastructure using Typescript code.
///
/// Parameter [backendEnvironmentArn] :
- /// The Amazon Resource Name (ARN) for a backend environment that is part of
- /// an Amplify app.
+ /// The Amazon Resource Name (ARN) for a backend environment that is part of a
+ /// Gen 1 Amplify app.
+ ///
+ /// This field is available to Amplify Gen 1 apps only where the backend is
+ /// created using Amplify Studio or the Amplify command line interface (CLI).
///
/// Parameter [basicAuthCredentials] :
/// The basic authorization credentials for the branch. You must base64-encode
@@ -1628,6 +1700,7 @@ class Amplify {
Future updateBranch({
required String appId,
required String branchName,
+ Backend? backend,
String? backendEnvironmentArn,
String? basicAuthCredentials,
String? buildSpec,
@@ -1645,6 +1718,7 @@ class Amplify {
String? ttl,
}) async {
final $payload = {
+ if (backend != null) 'backend': backend,
if (backendEnvironmentArn != null)
'backendEnvironmentArn': backendEnvironmentArn,
if (basicAuthCredentials != null)
@@ -1698,6 +1772,9 @@ class Amplify {
/// The required AWS Identity and Access Management (IAM) service role for the
/// Amazon Resource Name (ARN) for automatically creating subdomains.
///
+ /// Parameter [certificateSettings] :
+ /// The type of SSL/TLS certificate to use for your custom domain.
+ ///
/// Parameter [enableAutoSubDomain] :
/// Enables the automated creation of subdomains for branches.
///
@@ -1708,6 +1785,7 @@ class Amplify {
required String domainName,
List? autoSubDomainCreationPatterns,
String? autoSubDomainIAMRole,
+ CertificateSettings? certificateSettings,
bool? enableAutoSubDomain,
List? subDomainSettings,
}) async {
@@ -1716,6 +1794,8 @@ class Amplify {
'autoSubDomainCreationPatterns': autoSubDomainCreationPatterns,
if (autoSubDomainIAMRole != null)
'autoSubDomainIAMRole': autoSubDomainIAMRole,
+ if (certificateSettings != null)
+ 'certificateSettings': certificateSettings,
if (enableAutoSubDomain != null)
'enableAutoSubDomain': enableAutoSubDomain,
if (subDomainSettings != null) 'subDomainSettings': subDomainSettings,
@@ -1790,6 +1870,11 @@ class App {
final bool enableBranchAutoBuild;
/// The environment variables for the Amplify app.
+ ///
+ /// For a list of the environment variables that are accessible to Amplify by
+ /// default, see Amplify
+ /// Environment variables in the Amplify Hosting User Guide.
final Map environmentVariables;
/// The name for the Amplify app.
@@ -1832,7 +1917,7 @@ class App {
/// Enables automated branch creation for the Amplify app.
final bool? enableAutoBranchCreation;
- /// Automatically disconnect a branch in the Amplify Console when you delete a
+ /// Automatically disconnect a branch in the Amplify console when you delete a
/// branch from your Git repository.
final bool? enableBranchAutoDeletion;
@@ -2117,7 +2202,36 @@ class AutoBranchCreationConfig {
}
}
-/// Describes the backend environment for an Amplify app.
+/// Describes the backend associated with an Amplify Branch
.
+///
+/// This property is available to Amplify Gen 2 apps only. When you deploy an
+/// application with Amplify Gen 2, you provision the app's backend
+/// infrastructure using Typescript code.
+class Backend {
+ /// The Amazon Resource Name (ARN) for the CloudFormation stack.
+ final String? stackArn;
+
+ Backend({
+ this.stackArn,
+ });
+
+ factory Backend.fromJson(Map json) {
+ return Backend(
+ stackArn: json['stackArn'] as String?,
+ );
+ }
+
+ Map toJson() {
+ final stackArn = this.stackArn;
+ return {
+ if (stackArn != null) 'stackArn': stackArn,
+ };
+ }
+}
+
+/// Describes the backend environment associated with a Branch
of a
+/// Gen 1 Amplify app. Amplify Gen 1 applications are created using Amplify
+/// Studio or the Amplify command line interface (CLI).
class BackendEnvironment {
/// The Amazon Resource Name (ARN) for a backend environment that is part of an
/// Amplify app.
@@ -2235,9 +2349,14 @@ class Branch {
/// A list of custom resources that are linked to this branch.
final List? associatedResources;
+ final Backend? backend;
/// The Amazon Resource Name (ARN) for a backend environment that is part of an
/// Amplify app.
+ ///
+ /// This property is available to Amplify Gen 1 apps only. When you deploy an
+ /// application with Amplify Gen 2, you provision the app's backend
+ /// infrastructure using Typescript code.
final String? backendEnvironmentArn;
/// The basic authorization credentials for a branch of an Amplify app. You must
@@ -2290,6 +2409,7 @@ class Branch {
required this.ttl,
required this.updateTime,
this.associatedResources,
+ this.backend,
this.backendEnvironmentArn,
this.basicAuthCredentials,
this.buildSpec,
@@ -2329,6 +2449,9 @@ class Branch {
?.whereNotNull()
.map((e) => e as String)
.toList(),
+ backend: json['backend'] != null
+ ? Backend.fromJson(json['backend'] as Map)
+ : null,
backendEnvironmentArn: json['backendEnvironmentArn'] as String?,
basicAuthCredentials: json['basicAuthCredentials'] as String?,
buildSpec: json['buildSpec'] as String?,
@@ -2361,6 +2484,7 @@ class Branch {
final ttl = this.ttl;
final updateTime = this.updateTime;
final associatedResources = this.associatedResources;
+ final backend = this.backend;
final backendEnvironmentArn = this.backendEnvironmentArn;
final basicAuthCredentials = this.basicAuthCredentials;
final buildSpec = this.buildSpec;
@@ -2390,6 +2514,7 @@ class Branch {
'updateTime': unixTimestampToJson(updateTime),
if (associatedResources != null)
'associatedResources': associatedResources,
+ if (backend != null) 'backend': backend,
if (backendEnvironmentArn != null)
'backendEnvironmentArn': backendEnvironmentArn,
if (basicAuthCredentials != null)
@@ -2407,6 +2532,132 @@ class Branch {
}
}
+/// Describes the current SSL/TLS certificate that is in use for the domain. If
+/// you are using CreateDomainAssociation
to create a new domain
+/// association, Certificate
describes the new certificate that you
+/// are creating.
+class Certificate {
+ /// The type of SSL/TLS certificate that you want to use.
+ ///
+ /// Specify AMPLIFY_MANAGED
to use the default certificate that
+ /// Amplify provisions for you.
+ ///
+ /// Specify CUSTOM
to use your own certificate that you have
+ /// already added to Certificate Manager in your Amazon Web Services account.
+ /// Make sure you request (or import) the certificate in the US East (N.
+ /// Virginia) Region (us-east-1). For more information about using ACM, see Importing
+ /// certificates into Certificate Manager in the ACM User guide .
+ final CertificateType type;
+
+ /// The DNS record for certificate verification.
+ final String? certificateVerificationDNSRecord;
+
+ /// The Amazon resource name (ARN) for a custom certificate that you have
+ /// already added to Certificate Manager in your Amazon Web Services account.
+ ///
+ /// This field is required only when the certificate type is
+ /// CUSTOM
.
+ final String? customCertificateArn;
+
+ Certificate({
+ required this.type,
+ this.certificateVerificationDNSRecord,
+ this.customCertificateArn,
+ });
+
+ factory Certificate.fromJson(Map json) {
+ return Certificate(
+ type: (json['type'] as String).toCertificateType(),
+ certificateVerificationDNSRecord:
+ json['certificateVerificationDNSRecord'] as String?,
+ customCertificateArn: json['customCertificateArn'] as String?,
+ );
+ }
+
+ Map toJson() {
+ final type = this.type;
+ final certificateVerificationDNSRecord =
+ this.certificateVerificationDNSRecord;
+ final customCertificateArn = this.customCertificateArn;
+ return {
+ 'type': type.toValue(),
+ if (certificateVerificationDNSRecord != null)
+ 'certificateVerificationDNSRecord': certificateVerificationDNSRecord,
+ if (customCertificateArn != null)
+ 'customCertificateArn': customCertificateArn,
+ };
+ }
+}
+
+/// The type of SSL/TLS certificate to use for your custom domain. If a
+/// certificate type isn't specified, Amplify uses the default
+/// AMPLIFY_MANAGED
certificate.
+class CertificateSettings {
+ /// The certificate type.
+ ///
+ /// Specify AMPLIFY_MANAGED
to use the default certificate that
+ /// Amplify provisions for you.
+ ///
+ /// Specify CUSTOM
to use your own certificate that you have
+ /// already added to Certificate Manager in your Amazon Web Services account.
+ /// Make sure you request (or import) the certificate in the US East (N.
+ /// Virginia) Region (us-east-1). For more information about using ACM, see Importing
+ /// certificates into Certificate Manager in the ACM User guide.
+ final CertificateType type;
+
+ /// The Amazon resource name (ARN) for the custom certificate that you have
+ /// already added to Certificate Manager in your Amazon Web Services account.
+ ///
+ /// This field is required only when the certificate type is
+ /// CUSTOM
.
+ final String? customCertificateArn;
+
+ CertificateSettings({
+ required this.type,
+ this.customCertificateArn,
+ });
+
+ Map toJson() {
+ final type = this.type;
+ final customCertificateArn = this.customCertificateArn;
+ return {
+ 'type': type.toValue(),
+ if (customCertificateArn != null)
+ 'customCertificateArn': customCertificateArn,
+ };
+ }
+}
+
+enum CertificateType {
+ amplifyManaged,
+ custom,
+}
+
+extension CertificateTypeValueExtension on CertificateType {
+ String toValue() {
+ switch (this) {
+ case CertificateType.amplifyManaged:
+ return 'AMPLIFY_MANAGED';
+ case CertificateType.custom:
+ return 'CUSTOM';
+ }
+ }
+}
+
+extension CertificateTypeFromString on String {
+ CertificateType toCertificateType() {
+ switch (this) {
+ case 'AMPLIFY_MANAGED':
+ return CertificateType.amplifyManaged;
+ case 'CUSTOM':
+ return CertificateType.custom;
+ }
+ throw Exception('$this is not known in enum CertificateType');
+ }
+}
+
class CreateAppResult {
final App app;
@@ -2579,7 +2830,7 @@ class CustomRule {
/// - 200
-
/// Represents a 200 rewrite rule.
///
- 301
-
- /// Represents a 301 (moved pemanently) redirect rule. This and all future
+ /// Represents a 301 (moved permanently) redirect rule. This and all future
/// requests should be directed to the target URL.
///
- 302
-
/// Represents a 302 temporary redirect rule.
@@ -2758,8 +3009,7 @@ class DeleteWebhookResult {
}
}
-/// Describes a domain association that associates a custom domain with an
-/// Amplify app.
+/// Describes the association between a custom domain and an Amplify app.
class DomainAssociation {
/// The Amazon Resource Name (ARN) for the domain association.
final String domainAssociationArn;
@@ -2773,7 +3023,8 @@ class DomainAssociation {
/// Enables the automated creation of subdomains for branches.
final bool enableAutoSubDomain;
- /// The reason for the current status of the domain association.
+ /// Additional information that describes why the domain association is in the
+ /// current state.
final String statusReason;
/// The subdomains for the domain association.
@@ -2786,9 +3037,47 @@ class DomainAssociation {
/// Amazon Resource Name (ARN) for automatically creating subdomains.
final String? autoSubDomainIAMRole;
+ /// Describes the SSL/TLS certificate for the domain association. This can be
+ /// your own custom certificate or the default certificate that Amplify
+ /// provisions for you.
+ ///
+ /// If you are updating your domain to use a different certificate,
+ ///
certificate
points to the new certificate that is being created
+ /// instead of the current active certificate. Otherwise,
+ /// certificate
points to the current active certificate.
+ final Certificate? certificate;
+
/// The DNS record for certificate verification.
final String? certificateVerificationDNSRecord;
+ /// The status of the domain update operation that is currently in progress. The
+ /// following list describes the valid update states.
+ /// - REQUESTING_CERTIFICATE
-
+ /// The certificate is in the process of being updated.
+ ///
- PENDING_VERIFICATION
-
+ /// Indicates that an Amplify managed certificate is in the process of being
+ /// verified. This occurs during the creation of a custom domain or when a
+ /// custom domain is updated to use a managed certificate.
+ ///
- IMPORTING_CUSTOM_CERTIFICATE
-
+ /// Indicates that an Amplify custom certificate is in the process of being
+ /// imported. This occurs during the creation of a custom domain or when a
+ /// custom domain is updated to use a custom certificate.
+ ///
- PENDING_DEPLOYMENT
-
+ /// Indicates that the subdomain or certificate changes are being propagated.
+ ///
- AWAITING_APP_CNAME
-
+ /// Amplify is waiting for CNAME records corresponding to subdomains to be
+ /// propagated. If your custom domain is on Route 53, Amplify handles this for
+ /// you automatically. For more information about custom domains, see Setting
+ /// up custom domains in the Amplify Hosting User Guide.
+ ///
- UPDATE_COMPLETE
-
+ /// The certificate has been associated with a domain.
+ ///
- UPDATE_FAILED
-
+ /// The certificate has failed to be provisioned or associated, and there is no
+ /// existing active certificate to roll back to.
+ ///
+ final UpdateStatus? updateStatus;
+
DomainAssociation({
required this.domainAssociationArn,
required this.domainName,
@@ -2798,7 +3087,9 @@ class DomainAssociation {
required this.subDomains,
this.autoSubDomainCreationPatterns,
this.autoSubDomainIAMRole,
+ this.certificate,
this.certificateVerificationDNSRecord,
+ this.updateStatus,
});
factory DomainAssociation.fromJson(Map json) {
@@ -2818,8 +3109,12 @@ class DomainAssociation {
.map((e) => e as String)
.toList(),
autoSubDomainIAMRole: json['autoSubDomainIAMRole'] as String?,
+ certificate: json['certificate'] != null
+ ? Certificate.fromJson(json['certificate'] as Map)
+ : null,
certificateVerificationDNSRecord:
json['certificateVerificationDNSRecord'] as String?,
+ updateStatus: (json['updateStatus'] as String?)?.toUpdateStatus(),
);
}
@@ -2832,8 +3127,10 @@ class DomainAssociation {
final subDomains = this.subDomains;
final autoSubDomainCreationPatterns = this.autoSubDomainCreationPatterns;
final autoSubDomainIAMRole = this.autoSubDomainIAMRole;
+ final certificate = this.certificate;
final certificateVerificationDNSRecord =
this.certificateVerificationDNSRecord;
+ final updateStatus = this.updateStatus;
return {
'domainAssociationArn': domainAssociationArn,
'domainName': domainName,
@@ -2845,8 +3142,10 @@ class DomainAssociation {
'autoSubDomainCreationPatterns': autoSubDomainCreationPatterns,
if (autoSubDomainIAMRole != null)
'autoSubDomainIAMRole': autoSubDomainIAMRole,
+ if (certificate != null) 'certificate': certificate,
if (certificateVerificationDNSRecord != null)
'certificateVerificationDNSRecord': certificateVerificationDNSRecord,
+ if (updateStatus != null) 'updateStatus': updateStatus.toValue(),
};
}
}
@@ -2855,7 +3154,9 @@ enum DomainStatus {
pendingVerification,
inProgress,
available,
+ importingCustomCertificate,
pendingDeployment,
+ awaitingAppCname,
failed,
creating,
requestingCertificate,
@@ -2871,8 +3172,12 @@ extension DomainStatusValueExtension on DomainStatus {
return 'IN_PROGRESS';
case DomainStatus.available:
return 'AVAILABLE';
+ case DomainStatus.importingCustomCertificate:
+ return 'IMPORTING_CUSTOM_CERTIFICATE';
case DomainStatus.pendingDeployment:
return 'PENDING_DEPLOYMENT';
+ case DomainStatus.awaitingAppCname:
+ return 'AWAITING_APP_CNAME';
case DomainStatus.failed:
return 'FAILED';
case DomainStatus.creating:
@@ -2894,8 +3199,12 @@ extension DomainStatusFromString on String {
return DomainStatus.inProgress;
case 'AVAILABLE':
return DomainStatus.available;
+ case 'IMPORTING_CUSTOM_CERTIFICATE':
+ return DomainStatus.importingCustomCertificate;
case 'PENDING_DEPLOYMENT':
return DomainStatus.pendingDeployment;
+ case 'AWAITING_APP_CNAME':
+ return DomainStatus.awaitingAppCname;
case 'FAILED':
return DomainStatus.failed;
case 'CREATING':
@@ -4054,6 +4363,59 @@ class UpdateDomainAssociationResult {
}
}
+enum UpdateStatus {
+ requestingCertificate,
+ pendingVerification,
+ importingCustomCertificate,
+ pendingDeployment,
+ awaitingAppCname,
+ updateComplete,
+ updateFailed,
+}
+
+extension UpdateStatusValueExtension on UpdateStatus {
+ String toValue() {
+ switch (this) {
+ case UpdateStatus.requestingCertificate:
+ return 'REQUESTING_CERTIFICATE';
+ case UpdateStatus.pendingVerification:
+ return 'PENDING_VERIFICATION';
+ case UpdateStatus.importingCustomCertificate:
+ return 'IMPORTING_CUSTOM_CERTIFICATE';
+ case UpdateStatus.pendingDeployment:
+ return 'PENDING_DEPLOYMENT';
+ case UpdateStatus.awaitingAppCname:
+ return 'AWAITING_APP_CNAME';
+ case UpdateStatus.updateComplete:
+ return 'UPDATE_COMPLETE';
+ case UpdateStatus.updateFailed:
+ return 'UPDATE_FAILED';
+ }
+ }
+}
+
+extension UpdateStatusFromString on String {
+ UpdateStatus toUpdateStatus() {
+ switch (this) {
+ case 'REQUESTING_CERTIFICATE':
+ return UpdateStatus.requestingCertificate;
+ case 'PENDING_VERIFICATION':
+ return UpdateStatus.pendingVerification;
+ case 'IMPORTING_CUSTOM_CERTIFICATE':
+ return UpdateStatus.importingCustomCertificate;
+ case 'PENDING_DEPLOYMENT':
+ return UpdateStatus.pendingDeployment;
+ case 'AWAITING_APP_CNAME':
+ return UpdateStatus.awaitingAppCname;
+ case 'UPDATE_COMPLETE':
+ return UpdateStatus.updateComplete;
+ case 'UPDATE_FAILED':
+ return UpdateStatus.updateFailed;
+ }
+ throw Exception('$this is not known in enum UpdateStatus');
+ }
+}
+
/// The result structure for the update webhook request.
class UpdateWebhookResult {
/// Describes a webhook that connects repository events to an Amplify app.
diff --git a/aws_client/lib/src/generated/amplify_ui_builder/v2021_08_11.dart b/aws_client/lib/src/generated/amplify_ui_builder/v2021_08_11.dart
index 84d6cd9d8..8446f0a68 100644
--- a/aws_client/lib/src/generated/amplify_ui_builder/v2021_08_11.dart
+++ b/aws_client/lib/src/generated/amplify_ui_builder/v2021_08_11.dart
@@ -271,7 +271,10 @@ class AmplifyUIBuilder {
);
}
- /// Exchanges an access code for a token.
+ ///
+ /// This is for internal use.
+ ///
+ /// Amplify uses this action to exchange an access code for a token.
///
/// May throw [InvalidParameterException].
///
@@ -393,6 +396,40 @@ class AmplifyUIBuilder {
return ExportThemesResponse.fromJson(response);
}
+ /// Returns an existing code generation job.
+ ///
+ /// May throw [InternalServerException].
+ /// May throw [InvalidParameterException].
+ /// May throw [ThrottlingException].
+ /// May throw [ResourceNotFoundException].
+ ///
+ /// Parameter [appId] :
+ /// The unique ID of the Amplify app associated with the code generation job.
+ ///
+ /// Parameter [environmentName] :
+ /// The name of the backend environment that is a part of the Amplify app
+ /// associated with the code generation job.
+ ///
+ /// Parameter [id] :
+ /// The unique ID of the code generation job.
+ Future getCodegenJob({
+ required String appId,
+ required String environmentName,
+ required String id,
+ }) async {
+ final response = await _protocol.sendRaw(
+ payload: null,
+ method: 'GET',
+ requestUri:
+ '/app/${Uri.encodeComponent(appId)}/environment/${Uri.encodeComponent(environmentName)}/codegen-jobs/${Uri.encodeComponent(id)}',
+ exceptionFnMap: _exceptionFns,
+ );
+ final $json = await _s.jsonFromResponse(response);
+ return GetCodegenJobResponse(
+ job: CodegenJob.fromJson($json),
+ );
+ }
+
/// Returns an existing component for an Amplify app.
///
/// May throw [InternalServerException].
@@ -513,6 +550,51 @@ class AmplifyUIBuilder {
);
}
+ /// Retrieves a list of code generation jobs for a specified Amplify app and
+ /// backend environment.
+ ///
+ /// May throw [InternalServerException].
+ /// May throw [InvalidParameterException].
+ /// May throw [ThrottlingException].
+ ///
+ /// Parameter [appId] :
+ /// The unique ID for the Amplify app.
+ ///
+ /// Parameter [environmentName] :
+ /// The name of the backend environment that is a part of the Amplify app.
+ ///
+ /// Parameter [maxResults] :
+ /// The maximum number of jobs to retrieve.
+ ///
+ /// Parameter [nextToken] :
+ /// The token to request the next page of results.
+ Future listCodegenJobs({
+ required String appId,
+ required String environmentName,
+ int? maxResults,
+ String? nextToken,
+ }) async {
+ _s.validateNumRange(
+ 'maxResults',
+ maxResults,
+ 1,
+ 100,
+ );
+ final $query = >{
+ if (maxResults != null) 'maxResults': [maxResults.toString()],
+ if (nextToken != null) 'nextToken': [nextToken],
+ };
+ final response = await _protocol.send(
+ payload: null,
+ method: 'GET',
+ requestUri:
+ '/app/${Uri.encodeComponent(appId)}/environment/${Uri.encodeComponent(environmentName)}/codegen-jobs',
+ queryParams: $query,
+ exceptionFnMap: _exceptionFns,
+ );
+ return ListCodegenJobsResponse.fromJson(response);
+ }
+
/// Retrieves a list of components for a specified Amplify app and backend
/// environment.
///
@@ -601,6 +683,28 @@ class AmplifyUIBuilder {
return ListFormsResponse.fromJson(response);
}
+ /// Returns a list of tags for a specified Amazon Resource Name (ARN).
+ ///
+ /// May throw [UnauthorizedException].
+ /// May throw [InternalServerException].
+ /// May throw [InvalidParameterException].
+ /// May throw [ThrottlingException].
+ /// May throw [ResourceNotFoundException].
+ ///
+ /// Parameter [resourceArn] :
+ /// The Amazon Resource Name (ARN) to use to list tags.
+ Future listTagsForResource({
+ required String resourceArn,
+ }) async {
+ final response = await _protocol.send(
+ payload: null,
+ method: 'GET',
+ requestUri: '/tags/${Uri.encodeComponent(resourceArn)}',
+ exceptionFnMap: _exceptionFns,
+ );
+ return ListTagsForResourceResponse.fromJson(response);
+ }
+
/// Retrieves a list of themes for a specified Amplify app and backend
/// environment.
///
@@ -676,7 +780,11 @@ class AmplifyUIBuilder {
);
}
- /// Refreshes a previously issued access token that might have expired.
+ ///
+ /// This is for internal use.
+ ///
+ /// Amplify uses this action to refresh a previously issued access token that
+ /// might have expired.
///
/// May throw [InvalidParameterException].
///
@@ -699,6 +807,105 @@ class AmplifyUIBuilder {
return RefreshTokenResponse.fromJson(response);
}
+ /// Starts a code generation job for a specified Amplify app and backend
+ /// environment.
+ ///
+ /// May throw [InternalServerException].
+ /// May throw [InvalidParameterException].
+ /// May throw [ThrottlingException].
+ ///
+ /// Parameter [appId] :
+ /// The unique ID for the Amplify app.
+ ///
+ /// Parameter [codegenJobToCreate] :
+ /// The code generation job resource configuration.
+ ///
+ /// Parameter [environmentName] :
+ /// The name of the backend environment that is a part of the Amplify app.
+ ///
+ /// Parameter [clientToken] :
+ /// The idempotency token used to ensure that the code generation job request
+ /// completes only once.
+ Future startCodegenJob({
+ required String appId,
+ required StartCodegenJobData codegenJobToCreate,
+ required String environmentName,
+ String? clientToken,
+ }) async {
+ final $query = >{
+ if (clientToken != null) 'clientToken': [clientToken],
+ };
+ final response = await _protocol.sendRaw(
+ payload: codegenJobToCreate,
+ method: 'POST',
+ requestUri:
+ '/app/${Uri.encodeComponent(appId)}/environment/${Uri.encodeComponent(environmentName)}/codegen-jobs',
+ queryParams: $query,
+ exceptionFnMap: _exceptionFns,
+ );
+ final $json = await _s.jsonFromResponse(response);
+ return StartCodegenJobResponse(
+ entity: CodegenJob.fromJson($json),
+ );
+ }
+
+ /// Tags the resource with a tag key and value.
+ ///
+ /// May throw [UnauthorizedException].
+ /// May throw [InternalServerException].
+ /// May throw [InvalidParameterException].
+ /// May throw [ThrottlingException].
+ /// May throw [ResourceNotFoundException].
+ ///
+ /// Parameter [resourceArn] :
+ /// The Amazon Resource Name (ARN) to use to tag a resource.
+ ///
+ /// Parameter [tags] :
+ /// A list of tag key value pairs for a specified Amazon Resource Name (ARN).
+ Future tagResource({
+ required String resourceArn,
+ required Map tags,
+ }) async {
+ final $payload = {
+ 'tags': tags,
+ };
+ final response = await _protocol.send(
+ payload: $payload,
+ method: 'POST',
+ requestUri: '/tags/${Uri.encodeComponent(resourceArn)}',
+ exceptionFnMap: _exceptionFns,
+ );
+ }
+
+ /// Untags a resource with a specified Amazon Resource Name (ARN).
+ ///
+ /// May throw [UnauthorizedException].
+ /// May throw [InternalServerException].
+ /// May throw [InvalidParameterException].
+ /// May throw [ThrottlingException].
+ /// May throw [ResourceNotFoundException].
+ ///
+ /// Parameter [resourceArn] :
+ /// The Amazon Resource Name (ARN) to use to untag a resource.
+ ///
+ /// Parameter [tagKeys] :
+ /// The tag keys to use to untag a resource.
+ Future untagResource({
+ required String resourceArn,
+ required List tagKeys,
+ }) async {
+ final $query = >{
+ 'tagKeys': tagKeys,
+ };
+ final response = await _protocol.send(
+ payload: null,
+ method: 'DELETE',
+ requestUri: '/tags/${Uri.encodeComponent(resourceArn)}',
+ queryParams: $query,
+ exceptionFnMap: _exceptionFns,
+ );
+ }
+
/// Updates an existing component.
///
/// May throw [ResourceConflictException].
@@ -885,56 +1092,863 @@ class ActionParameters {
this.url,
});
- factory ActionParameters.fromJson(Map json) {
- return ActionParameters(
- anchor: json['anchor'] != null
- ? ComponentProperty.fromJson(json['anchor'] as Map)
- : null,
- fields: (json['fields'] as Map?)?.map((k, e) =>
- MapEntry(k, ComponentProperty.fromJson(e as Map))),
- global: json['global'] != null
- ? ComponentProperty.fromJson(json['global'] as Map)
- : null,
- id: json['id'] != null
- ? ComponentProperty.fromJson(json['id'] as Map)
- : null,
- model: json['model'] as String?,
- state: json['state'] != null
- ? MutationActionSetStateParameter.fromJson(
- json['state'] as Map)
- : null,
- target: json['target'] != null
- ? ComponentProperty.fromJson(json['target'] as Map)
- : null,
- type: json['type'] != null
- ? ComponentProperty.fromJson(json['type'] as Map)
- : null,
- url: json['url'] != null
- ? ComponentProperty.fromJson(json['url'] as Map)
- : null,
+ factory ActionParameters.fromJson(Map json) {
+ return ActionParameters(
+ anchor: json['anchor'] != null
+ ? ComponentProperty.fromJson(json['anchor'] as Map)
+ : null,
+ fields: (json['fields'] as Map?)?.map((k, e) =>
+ MapEntry(k, ComponentProperty.fromJson(e as Map))),
+ global: json['global'] != null
+ ? ComponentProperty.fromJson(json['global'] as Map)
+ : null,
+ id: json['id'] != null
+ ? ComponentProperty.fromJson(json['id'] as Map)
+ : null,
+ model: json['model'] as String?,
+ state: json['state'] != null
+ ? MutationActionSetStateParameter.fromJson(
+ json['state'] as Map)
+ : null,
+ target: json['target'] != null
+ ? ComponentProperty.fromJson(json['target'] as Map)
+ : null,
+ type: json['type'] != null
+ ? ComponentProperty.fromJson(json['type'] as Map)
+ : null,
+ url: json['url'] != null
+ ? ComponentProperty.fromJson(json['url'] as Map)
+ : null,
+ );
+ }
+
+ Map toJson() {
+ final anchor = this.anchor;
+ final fields = this.fields;
+ final global = this.global;
+ final id = this.id;
+ final model = this.model;
+ final state = this.state;
+ final target = this.target;
+ final type = this.type;
+ final url = this.url;
+ return {
+ if (anchor != null) 'anchor': anchor,
+ if (fields != null) 'fields': fields,
+ if (global != null) 'global': global,
+ if (id != null) 'id': id,
+ if (model != null) 'model': model,
+ if (state != null) 'state': state,
+ if (target != null) 'target': target,
+ if (type != null) 'type': type,
+ if (url != null) 'url': url,
+ };
+ }
+}
+
+/// Describes the API configuration for a code generation job.
+class ApiConfiguration {
+ /// The configuration for an application using DataStore APIs.
+ final DataStoreRenderConfig? dataStoreConfig;
+
+ /// The configuration for an application using GraphQL APIs.
+ final GraphQLRenderConfig? graphQLConfig;
+
+ /// The configuration for an application with no API being used.
+ final NoApiRenderConfig? noApiConfig;
+
+ ApiConfiguration({
+ this.dataStoreConfig,
+ this.graphQLConfig,
+ this.noApiConfig,
+ });
+
+ factory ApiConfiguration.fromJson(Map json) {
+ return ApiConfiguration(
+ dataStoreConfig: json['dataStoreConfig'] != null
+ ? DataStoreRenderConfig.fromJson(
+ json['dataStoreConfig'] as Map)
+ : null,
+ graphQLConfig: json['graphQLConfig'] != null
+ ? GraphQLRenderConfig.fromJson(
+ json['graphQLConfig'] as Map)
+ : null,
+ noApiConfig: json['noApiConfig'] != null
+ ? NoApiRenderConfig.fromJson(
+ json['noApiConfig'] as Map)
+ : null,
+ );
+ }
+
+ Map toJson() {
+ final dataStoreConfig = this.dataStoreConfig;
+ final graphQLConfig = this.graphQLConfig;
+ final noApiConfig = this.noApiConfig;
+ return {
+ if (dataStoreConfig != null) 'dataStoreConfig': dataStoreConfig,
+ if (graphQLConfig != null) 'graphQLConfig': graphQLConfig,
+ if (noApiConfig != null) 'noApiConfig': noApiConfig,
+ };
+ }
+}
+
+/// Dependency package that may be required for the project code to run.
+class CodegenDependency {
+ /// Determines if the dependency package is using Semantic versioning. If set to
+ /// true, it indicates that the dependency package uses Semantic versioning.
+ final bool? isSemVer;
+
+ /// Name of the dependency package.
+ final String? name;
+
+ /// Indicates the reason to include the dependency package in your project code.
+ final String? reason;
+
+ /// Indicates the version of the supported dependency package.
+ final String? supportedVersion;
+
+ CodegenDependency({
+ this.isSemVer,
+ this.name,
+ this.reason,
+ this.supportedVersion,
+ });
+
+ factory CodegenDependency.fromJson(Map json) {
+ return CodegenDependency(
+ isSemVer: json['isSemVer'] as bool?,
+ name: json['name'] as String?,
+ reason: json['reason'] as String?,
+ supportedVersion: json['supportedVersion'] as String?,
+ );
+ }
+
+ Map toJson() {
+ final isSemVer = this.isSemVer;
+ final name = this.name;
+ final reason = this.reason;
+ final supportedVersion = this.supportedVersion;
+ return {
+ if (isSemVer != null) 'isSemVer': isSemVer,
+ if (name != null) 'name': name,
+ if (reason != null) 'reason': reason,
+ if (supportedVersion != null) 'supportedVersion': supportedVersion,
+ };
+ }
+}
+
+/// Describes the feature flags that you can specify for a code generation job.
+class CodegenFeatureFlags {
+ /// Specifies whether a code generation job supports non models.
+ final bool? isNonModelSupported;
+
+ /// Specifes whether a code generation job supports data relationships.
+ final bool? isRelationshipSupported;
+
+ CodegenFeatureFlags({
+ this.isNonModelSupported,
+ this.isRelationshipSupported,
+ });
+
+ factory CodegenFeatureFlags.fromJson(Map json) {
+ return CodegenFeatureFlags(
+ isNonModelSupported: json['isNonModelSupported'] as bool?,
+ isRelationshipSupported: json['isRelationshipSupported'] as bool?,
+ );
+ }
+
+ Map toJson() {
+ final isNonModelSupported = this.isNonModelSupported;
+ final isRelationshipSupported = this.isRelationshipSupported;
+ return {
+ if (isNonModelSupported != null)
+ 'isNonModelSupported': isNonModelSupported,
+ if (isRelationshipSupported != null)
+ 'isRelationshipSupported': isRelationshipSupported,
+ };
+ }
+}
+
+/// Describes the enums in a generic data schema.
+class CodegenGenericDataEnum {
+ /// The list of enum values in the generic data schema.
+ final List values;
+
+ CodegenGenericDataEnum({
+ required this.values,
+ });
+
+ factory CodegenGenericDataEnum.fromJson(Map json) {
+ return CodegenGenericDataEnum(
+ values: (json['values'] as List)
+ .whereNotNull()
+ .map((e) => e as String)
+ .toList(),
+ );
+ }
+
+ Map toJson() {
+ final values = this.values;
+ return {
+ 'values': values,
+ };
+ }
+}
+
+/// Describes a field in a generic data schema.
+class CodegenGenericDataField {
+ /// The data type for the generic data field.
+ final CodegenGenericDataFieldDataType dataType;
+
+ /// The value of the data type for the generic data field.
+ final String dataTypeValue;
+
+ /// Specifies whether the generic data field is an array.
+ final bool isArray;
+
+ /// Specifies whether the generic data field is read-only.
+ final bool readOnly;
+
+ /// Specifies whether the generic data field is required.
+ final bool required;
+
+ /// The relationship of the generic data schema.
+ final CodegenGenericDataRelationshipType? relationship;
+
+ CodegenGenericDataField({
+ required this.dataType,
+ required this.dataTypeValue,
+ required this.isArray,
+ required this.readOnly,
+ required this.required,
+ this.relationship,
+ });
+
+ factory CodegenGenericDataField.fromJson(Map json) {
+ return CodegenGenericDataField(
+ dataType:
+ (json['dataType'] as String).toCodegenGenericDataFieldDataType(),
+ dataTypeValue: json['dataTypeValue'] as String,
+ isArray: json['isArray'] as bool,
+ readOnly: json['readOnly'] as bool,
+ required: json['required'] as bool,
+ relationship: json['relationship'] != null
+ ? CodegenGenericDataRelationshipType.fromJson(
+ json['relationship'] as Map)
+ : null,
+ );
+ }
+
+ Map toJson() {
+ final dataType = this.dataType;
+ final dataTypeValue = this.dataTypeValue;
+ final isArray = this.isArray;
+ final readOnly = this.readOnly;
+ final required = this.required;
+ final relationship = this.relationship;
+ return {
+ 'dataType': dataType.toValue(),
+ 'dataTypeValue': dataTypeValue,
+ 'isArray': isArray,
+ 'readOnly': readOnly,
+ 'required': required,
+ if (relationship != null) 'relationship': relationship,
+ };
+ }
+}
+
+enum CodegenGenericDataFieldDataType {
+ id,
+ string,
+ int,
+ float,
+ awsDate,
+ awsTime,
+ awsDateTime,
+ awsTimestamp,
+ awsEmail,
+ awsurl,
+ awsIPAddress,
+ boolean,
+ awsjson,
+ awsPhone,
+ $enum,
+ model,
+ nonModel,
+}
+
+extension CodegenGenericDataFieldDataTypeValueExtension
+ on CodegenGenericDataFieldDataType {
+ String toValue() {
+ switch (this) {
+ case CodegenGenericDataFieldDataType.id:
+ return 'ID';
+ case CodegenGenericDataFieldDataType.string:
+ return 'String';
+ case CodegenGenericDataFieldDataType.int:
+ return 'Int';
+ case CodegenGenericDataFieldDataType.float:
+ return 'Float';
+ case CodegenGenericDataFieldDataType.awsDate:
+ return 'AWSDate';
+ case CodegenGenericDataFieldDataType.awsTime:
+ return 'AWSTime';
+ case CodegenGenericDataFieldDataType.awsDateTime:
+ return 'AWSDateTime';
+ case CodegenGenericDataFieldDataType.awsTimestamp:
+ return 'AWSTimestamp';
+ case CodegenGenericDataFieldDataType.awsEmail:
+ return 'AWSEmail';
+ case CodegenGenericDataFieldDataType.awsurl:
+ return 'AWSURL';
+ case CodegenGenericDataFieldDataType.awsIPAddress:
+ return 'AWSIPAddress';
+ case CodegenGenericDataFieldDataType.boolean:
+ return 'Boolean';
+ case CodegenGenericDataFieldDataType.awsjson:
+ return 'AWSJSON';
+ case CodegenGenericDataFieldDataType.awsPhone:
+ return 'AWSPhone';
+ case CodegenGenericDataFieldDataType.$enum:
+ return 'Enum';
+ case CodegenGenericDataFieldDataType.model:
+ return 'Model';
+ case CodegenGenericDataFieldDataType.nonModel:
+ return 'NonModel';
+ }
+ }
+}
+
+extension CodegenGenericDataFieldDataTypeFromString on String {
+ CodegenGenericDataFieldDataType toCodegenGenericDataFieldDataType() {
+ switch (this) {
+ case 'ID':
+ return CodegenGenericDataFieldDataType.id;
+ case 'String':
+ return CodegenGenericDataFieldDataType.string;
+ case 'Int':
+ return CodegenGenericDataFieldDataType.int;
+ case 'Float':
+ return CodegenGenericDataFieldDataType.float;
+ case 'AWSDate':
+ return CodegenGenericDataFieldDataType.awsDate;
+ case 'AWSTime':
+ return CodegenGenericDataFieldDataType.awsTime;
+ case 'AWSDateTime':
+ return CodegenGenericDataFieldDataType.awsDateTime;
+ case 'AWSTimestamp':
+ return CodegenGenericDataFieldDataType.awsTimestamp;
+ case 'AWSEmail':
+ return CodegenGenericDataFieldDataType.awsEmail;
+ case 'AWSURL':
+ return CodegenGenericDataFieldDataType.awsurl;
+ case 'AWSIPAddress':
+ return CodegenGenericDataFieldDataType.awsIPAddress;
+ case 'Boolean':
+ return CodegenGenericDataFieldDataType.boolean;
+ case 'AWSJSON':
+ return CodegenGenericDataFieldDataType.awsjson;
+ case 'AWSPhone':
+ return CodegenGenericDataFieldDataType.awsPhone;
+ case 'Enum':
+ return CodegenGenericDataFieldDataType.$enum;
+ case 'Model':
+ return CodegenGenericDataFieldDataType.model;
+ case 'NonModel':
+ return CodegenGenericDataFieldDataType.nonModel;
+ }
+ throw Exception(
+ '$this is not known in enum CodegenGenericDataFieldDataType');
+ }
+}
+
+/// Describes a model in a generic data schema.
+class CodegenGenericDataModel {
+ /// The fields in the generic data model.
+ final Map fields;
+
+ /// The primary keys of the generic data model.
+ final List primaryKeys;
+
+ /// Specifies whether the generic data model is a join table.
+ final bool? isJoinTable;
+
+ CodegenGenericDataModel({
+ required this.fields,
+ required this.primaryKeys,
+ this.isJoinTable,
+ });
+
+ factory CodegenGenericDataModel.fromJson(Map json) {
+ return CodegenGenericDataModel(
+ fields: (json['fields'] as Map).map((k, e) => MapEntry(
+ k, CodegenGenericDataField.fromJson(e as Map))),
+ primaryKeys: (json['primaryKeys'] as List)
+ .whereNotNull()
+ .map((e) => e as String)
+ .toList(),
+ isJoinTable: json['isJoinTable'] as bool?,
+ );
+ }
+
+ Map toJson() {
+ final fields = this.fields;
+ final primaryKeys = this.primaryKeys;
+ final isJoinTable = this.isJoinTable;
+ return {
+ 'fields': fields,
+ 'primaryKeys': primaryKeys,
+ if (isJoinTable != null) 'isJoinTable': isJoinTable,
+ };
+ }
+}
+
+/// Describes a non-model in a generic data schema.
+class CodegenGenericDataNonModel {
+ /// The fields in a generic data schema non model.
+ final Map fields;
+
+ CodegenGenericDataNonModel({
+ required this.fields,
+ });
+
+ factory CodegenGenericDataNonModel.fromJson(Map json) {
+ return CodegenGenericDataNonModel(
+ fields: (json['fields'] as Map).map((k, e) => MapEntry(
+ k, CodegenGenericDataField.fromJson(e as Map))),
+ );
+ }
+
+ Map toJson() {
+ final fields = this.fields;
+ return {
+ 'fields': fields,
+ };
+ }
+}
+
+/// Describes the relationship between generic data models.
+class CodegenGenericDataRelationshipType {
+ /// The name of the related model in the data relationship.
+ final String relatedModelName;
+
+ /// The data relationship type.
+ final GenericDataRelationshipType type;
+
+ /// The associated fields of the data relationship.
+ final List? associatedFields;
+
+ /// The value of the belongsTo
field on the related data model.
+ final String? belongsToFieldOnRelatedModel;
+
+ /// Specifies whether the relationship can unlink the associated model.
+ final bool? canUnlinkAssociatedModel;
+
+ /// Specifies whether the @index
directive is supported for a
+ /// hasMany
data relationship.
+ final bool? isHasManyIndex;
+
+ /// The name of the related join field in the data relationship.
+ final String? relatedJoinFieldName;
+
+ /// The name of the related join table in the data relationship.
+ final String? relatedJoinTableName;
+
+ /// The related model fields in the data relationship.
+ final List? relatedModelFields;
+
+ CodegenGenericDataRelationshipType({
+ required this.relatedModelName,
+ required this.type,
+ this.associatedFields,
+ this.belongsToFieldOnRelatedModel,
+ this.canUnlinkAssociatedModel,
+ this.isHasManyIndex,
+ this.relatedJoinFieldName,
+ this.relatedJoinTableName,
+ this.relatedModelFields,
+ });
+
+ factory CodegenGenericDataRelationshipType.fromJson(
+ Map json) {
+ return CodegenGenericDataRelationshipType(
+ relatedModelName: json['relatedModelName'] as String,
+ type: (json['type'] as String).toGenericDataRelationshipType(),
+ associatedFields: (json['associatedFields'] as List?)
+ ?.whereNotNull()
+ .map((e) => e as String)
+ .toList(),
+ belongsToFieldOnRelatedModel:
+ json['belongsToFieldOnRelatedModel'] as String?,
+ canUnlinkAssociatedModel: json['canUnlinkAssociatedModel'] as bool?,
+ isHasManyIndex: json['isHasManyIndex'] as bool?,
+ relatedJoinFieldName: json['relatedJoinFieldName'] as String?,
+ relatedJoinTableName: json['relatedJoinTableName'] as String?,
+ relatedModelFields: (json['relatedModelFields'] as List?)
+ ?.whereNotNull()
+ .map((e) => e as String)
+ .toList(),
+ );
+ }
+
+ Map toJson() {
+ final relatedModelName = this.relatedModelName;
+ final type = this.type;
+ final associatedFields = this.associatedFields;
+ final belongsToFieldOnRelatedModel = this.belongsToFieldOnRelatedModel;
+ final canUnlinkAssociatedModel = this.canUnlinkAssociatedModel;
+ final isHasManyIndex = this.isHasManyIndex;
+ final relatedJoinFieldName = this.relatedJoinFieldName;
+ final relatedJoinTableName = this.relatedJoinTableName;
+ final relatedModelFields = this.relatedModelFields;
+ return {
+ 'relatedModelName': relatedModelName,
+ 'type': type.toValue(),
+ if (associatedFields != null) 'associatedFields': associatedFields,
+ if (belongsToFieldOnRelatedModel != null)
+ 'belongsToFieldOnRelatedModel': belongsToFieldOnRelatedModel,
+ if (canUnlinkAssociatedModel != null)
+ 'canUnlinkAssociatedModel': canUnlinkAssociatedModel,
+ if (isHasManyIndex != null) 'isHasManyIndex': isHasManyIndex,
+ if (relatedJoinFieldName != null)
+ 'relatedJoinFieldName': relatedJoinFieldName,
+ if (relatedJoinTableName != null)
+ 'relatedJoinTableName': relatedJoinTableName,
+ if (relatedModelFields != null) 'relatedModelFields': relatedModelFields,
+ };
+ }
+}
+
+/// Describes the configuration for a code generation job that is associated
+/// with an Amplify app.
+class CodegenJob {
+ /// The ID of the Amplify app associated with the code generation job.
+ final String appId;
+
+ /// The name of the backend environment associated with the code generation job.
+ final String environmentName;
+
+ /// The unique ID for the code generation job.
+ final String id;
+
+ /// The CodegenJobAsset
to use for the code generation job.
+ final CodegenJobAsset? asset;
+
+ /// Specifies whether to autogenerate forms in the code generation job.
+ final bool? autoGenerateForms;
+
+ /// The time that the code generation job was created.
+ final DateTime? createdAt;
+
+ /// Lists the dependency packages that may be required for the project code to
+ /// run.
+ final List? dependencies;
+ final CodegenFeatureFlags? features;
+ final CodegenJobGenericDataSchema? genericDataSchema;
+
+ /// The time that the code generation job was modified.
+ final DateTime? modifiedAt;
+ final CodegenJobRenderConfig? renderConfig;
+
+ /// The status of the code generation job.
+ final CodegenJobStatus? status;
+
+ /// The customized status message for the code generation job.
+ final String? statusMessage;
+
+ /// One or more key-value pairs to use when tagging the code generation job.
+ final Map? tags;
+
+ CodegenJob({
+ required this.appId,
+ required this.environmentName,
+ required this.id,
+ this.asset,
+ this.autoGenerateForms,
+ this.createdAt,
+ this.dependencies,
+ this.features,
+ this.genericDataSchema,
+ this.modifiedAt,
+ this.renderConfig,
+ this.status,
+ this.statusMessage,
+ this.tags,
+ });
+
+ factory CodegenJob.fromJson(Map json) {
+ return CodegenJob(
+ appId: json['appId'] as String,
+ environmentName: json['environmentName'] as String,
+ id: json['id'] as String,
+ asset: json['asset'] != null
+ ? CodegenJobAsset.fromJson(json['asset'] as Map)
+ : null,
+ autoGenerateForms: json['autoGenerateForms'] as bool?,
+ createdAt: timeStampFromJson(json['createdAt']),
+ dependencies: (json['dependencies'] as List?)
+ ?.whereNotNull()
+ .map((e) => CodegenDependency.fromJson(e as Map))
+ .toList(),
+ features: json['features'] != null
+ ? CodegenFeatureFlags.fromJson(
+ json['features'] as Map)
+ : null,
+ genericDataSchema: json['genericDataSchema'] != null
+ ? CodegenJobGenericDataSchema.fromJson(
+ json['genericDataSchema'] as Map)
+ : null,
+ modifiedAt: timeStampFromJson(json['modifiedAt']),
+ renderConfig: json['renderConfig'] != null
+ ? CodegenJobRenderConfig.fromJson(
+ json['renderConfig'] as Map)
+ : null,
+ status: (json['status'] as String?)?.toCodegenJobStatus(),
+ statusMessage: json['statusMessage'] as String?,
+ tags: (json['tags'] as Map?)
+ ?.map((k, e) => MapEntry(k, e as String)),
+ );
+ }
+
+ Map toJson() {
+ final appId = this.appId;
+ final environmentName = this.environmentName;
+ final id = this.id;
+ final asset = this.asset;
+ final autoGenerateForms = this.autoGenerateForms;
+ final createdAt = this.createdAt;
+ final dependencies = this.dependencies;
+ final features = this.features;
+ final genericDataSchema = this.genericDataSchema;
+ final modifiedAt = this.modifiedAt;
+ final renderConfig = this.renderConfig;
+ final status = this.status;
+ final statusMessage = this.statusMessage;
+ final tags = this.tags;
+ return {
+ 'appId': appId,
+ 'environmentName': environmentName,
+ 'id': id,
+ if (asset != null) 'asset': asset,
+ if (autoGenerateForms != null) 'autoGenerateForms': autoGenerateForms,
+ if (createdAt != null) 'createdAt': iso8601ToJson(createdAt),
+ if (dependencies != null) 'dependencies': dependencies,
+ if (features != null) 'features': features,
+ if (genericDataSchema != null) 'genericDataSchema': genericDataSchema,
+ if (modifiedAt != null) 'modifiedAt': iso8601ToJson(modifiedAt),
+ if (renderConfig != null) 'renderConfig': renderConfig,
+ if (status != null) 'status': status.toValue(),
+ if (statusMessage != null) 'statusMessage': statusMessage,
+ if (tags != null) 'tags': tags,
+ };
+ }
+}
+
+/// Describes an asset for a code generation job.
+class CodegenJobAsset {
+ /// The URL to use to access the asset.
+ final String? downloadUrl;
+
+ CodegenJobAsset({
+ this.downloadUrl,
+ });
+
+ factory CodegenJobAsset.fromJson(Map json) {
+ return CodegenJobAsset(
+ downloadUrl: json['downloadUrl'] as String?,
+ );
+ }
+
+ Map toJson() {
+ final downloadUrl = this.downloadUrl;
+ return {
+ if (downloadUrl != null) 'downloadUrl': downloadUrl,
+ };
+ }
+}
+
+/// Describes the data schema for a code generation job.
+class CodegenJobGenericDataSchema {
+ /// The type of the data source for the schema. Currently, the only valid value
+ /// is an Amplify DataStore
.
+ final CodegenJobGenericDataSourceType dataSourceType;
+
+ /// The name of a CodegenGenericDataEnum
.
+ final Map enums;
+
+ /// The name of a CodegenGenericDataModel
.
+ final Map models;
+
+ /// The name of a CodegenGenericDataNonModel
.
+ final Map nonModels;
+
+ CodegenJobGenericDataSchema({
+ required this.dataSourceType,
+ required this.enums,
+ required this.models,
+ required this.nonModels,
+ });
+
+ factory CodegenJobGenericDataSchema.fromJson(Map json) {
+ return CodegenJobGenericDataSchema(
+ dataSourceType: (json['dataSourceType'] as String)
+ .toCodegenJobGenericDataSourceType(),
+ enums: (json['enums'] as Map).map((k, e) => MapEntry(
+ k, CodegenGenericDataEnum.fromJson(e as Map))),
+ models: (json['models'] as Map).map((k, e) => MapEntry(
+ k, CodegenGenericDataModel.fromJson(e as Map))),
+ nonModels: (json['nonModels'] as Map).map((k, e) =>
+ MapEntry(k,
+ CodegenGenericDataNonModel.fromJson(e as Map))),
+ );
+ }
+
+ Map toJson() {
+ final dataSourceType = this.dataSourceType;
+ final enums = this.enums;
+ final models = this.models;
+ final nonModels = this.nonModels;
+ return {
+ 'dataSourceType': dataSourceType.toValue(),
+ 'enums': enums,
+ 'models': models,
+ 'nonModels': nonModels,
+ };
+ }
+}
+
+enum CodegenJobGenericDataSourceType {
+ dataStore,
+}
+
+extension CodegenJobGenericDataSourceTypeValueExtension
+ on CodegenJobGenericDataSourceType {
+ String toValue() {
+ switch (this) {
+ case CodegenJobGenericDataSourceType.dataStore:
+ return 'DataStore';
+ }
+ }
+}
+
+extension CodegenJobGenericDataSourceTypeFromString on String {
+ CodegenJobGenericDataSourceType toCodegenJobGenericDataSourceType() {
+ switch (this) {
+ case 'DataStore':
+ return CodegenJobGenericDataSourceType.dataStore;
+ }
+ throw Exception(
+ '$this is not known in enum CodegenJobGenericDataSourceType');
+ }
+}
+
+/// Describes the configuration information for rendering the UI component
+/// associated with the code generation job.
+class CodegenJobRenderConfig {
+ /// The name of the ReactStartCodegenJobData
object.
+ final ReactStartCodegenJobData? react;
+
+ CodegenJobRenderConfig({
+ this.react,
+ });
+
+ factory CodegenJobRenderConfig.fromJson(Map json) {
+ return CodegenJobRenderConfig(
+ react: json['react'] != null
+ ? ReactStartCodegenJobData.fromJson(
+ json['react'] as Map)
+ : null,
+ );
+ }
+
+ Map toJson() {
+ final react = this.react;
+ return {
+ if (react != null) 'react': react,
+ };
+ }
+}
+
+enum CodegenJobStatus {
+ inProgress,
+ failed,
+ succeeded,
+}
+
+extension CodegenJobStatusValueExtension on CodegenJobStatus {
+ String toValue() {
+ switch (this) {
+ case CodegenJobStatus.inProgress:
+ return 'in_progress';
+ case CodegenJobStatus.failed:
+ return 'failed';
+ case CodegenJobStatus.succeeded:
+ return 'succeeded';
+ }
+ }
+}
+
+extension CodegenJobStatusFromString on String {
+ CodegenJobStatus toCodegenJobStatus() {
+ switch (this) {
+ case 'in_progress':
+ return CodegenJobStatus.inProgress;
+ case 'failed':
+ return CodegenJobStatus.failed;
+ case 'succeeded':
+ return CodegenJobStatus.succeeded;
+ }
+ throw Exception('$this is not known in enum CodegenJobStatus');
+ }
+}
+
+/// A summary of the basic information about the code generation job.
+class CodegenJobSummary {
+ /// The unique ID of the Amplify app associated with the code generation job.
+ final String appId;
+
+ /// The name of the backend environment associated with the code generation job.
+ final String environmentName;
+
+ /// The unique ID for the code generation job summary.
+ final String id;
+
+ /// The time that the code generation job summary was created.
+ final DateTime? createdAt;
+
+ /// The time that the code generation job summary was modified.
+ final DateTime? modifiedAt;
+
+ CodegenJobSummary({
+ required this.appId,
+ required this.environmentName,
+ required this.id,
+ this.createdAt,
+ this.modifiedAt,
+ });
+
+ factory CodegenJobSummary.fromJson(Map json) {
+ return CodegenJobSummary(
+ appId: json['appId'] as String,
+ environmentName: json['environmentName'] as String,
+ id: json['id'] as String,
+ createdAt: timeStampFromJson(json['createdAt']),
+ modifiedAt: timeStampFromJson(json['modifiedAt']),
);
}
Map toJson() {
- final anchor = this.anchor;
- final fields = this.fields;
- final global = this.global;
+ final appId = this.appId;
+ final environmentName = this.environmentName;
final id = this.id;
- final model = this.model;
- final state = this.state;
- final target = this.target;
- final type = this.type;
- final url = this.url;
+ final createdAt = this.createdAt;
+ final modifiedAt = this.modifiedAt;
return {
- if (anchor != null) 'anchor': anchor,
- if (fields != null) 'fields': fields,
- if (global != null) 'global': global,
- if (id != null) 'id': id,
- if (model != null) 'model': model,
- if (state != null) 'state': state,
- if (target != null) 'target': target,
- if (type != null) 'type': type,
- if (url != null) 'url': url,
+ 'appId': appId,
+ 'environmentName': environmentName,
+ 'id': id,
+ if (createdAt != null) 'createdAt': iso8601ToJson(createdAt),
+ if (modifiedAt != null) 'modifiedAt': iso8601ToJson(modifiedAt),
};
}
}
@@ -1980,6 +2994,19 @@ class CreateThemeResponse {
}
}
+/// Describes the DataStore configuration for an API for a code generation job.
+class DataStoreRenderConfig {
+ DataStoreRenderConfig();
+
+ factory DataStoreRenderConfig.fromJson(Map _) {
+ return DataStoreRenderConfig();
+ }
+
+ Map toJson() {
+ return {};
+ }
+}
+
/// Describes the configuration of a request to exchange an access code for a
/// token.
class ExchangeCodeForTokenRequestBody {
@@ -3166,6 +4193,56 @@ class FormSummary {
}
}
+enum GenericDataRelationshipType {
+ hasMany,
+ hasOne,
+ belongsTo,
+}
+
+extension GenericDataRelationshipTypeValueExtension
+ on GenericDataRelationshipType {
+ String toValue() {
+ switch (this) {
+ case GenericDataRelationshipType.hasMany:
+ return 'HAS_MANY';
+ case GenericDataRelationshipType.hasOne:
+ return 'HAS_ONE';
+ case GenericDataRelationshipType.belongsTo:
+ return 'BELONGS_TO';
+ }
+ }
+}
+
+extension GenericDataRelationshipTypeFromString on String {
+ GenericDataRelationshipType toGenericDataRelationshipType() {
+ switch (this) {
+ case 'HAS_MANY':
+ return GenericDataRelationshipType.hasMany;
+ case 'HAS_ONE':
+ return GenericDataRelationshipType.hasOne;
+ case 'BELONGS_TO':
+ return GenericDataRelationshipType.belongsTo;
+ }
+ throw Exception('$this is not known in enum GenericDataRelationshipType');
+ }
+}
+
+class GetCodegenJobResponse {
+ /// The configuration settings for the code generation job.
+ final CodegenJob? job;
+
+ GetCodegenJobResponse({
+ this.job,
+ });
+
+ Map toJson() {
+ final job = this.job;
+ return {
+ if (job != null) 'job': job,
+ };
+ }
+}
+
class GetComponentResponse {
/// Represents the configuration settings for the component.
final Component? component;
@@ -3237,6 +4314,151 @@ class GetThemeResponse {
}
}
+/// Describes the GraphQL configuration for an API for a code generation job.
+class GraphQLRenderConfig {
+ /// The path to the GraphQL fragments file, relative to the component output
+ /// directory.
+ final String fragmentsFilePath;
+
+ /// The path to the GraphQL mutations file, relative to the component output
+ /// directory.
+ final String mutationsFilePath;
+
+ /// The path to the GraphQL queries file, relative to the component output
+ /// directory.
+ final String queriesFilePath;
+
+ /// The path to the GraphQL subscriptions file, relative to the component output
+ /// directory.
+ final String subscriptionsFilePath;
+
+ /// The path to the GraphQL types file, relative to the component output
+ /// directory.
+ final String typesFilePath;
+
+ GraphQLRenderConfig({
+ required this.fragmentsFilePath,
+ required this.mutationsFilePath,
+ required this.queriesFilePath,
+ required this.subscriptionsFilePath,
+ required this.typesFilePath,
+ });
+
+ factory GraphQLRenderConfig.fromJson(Map json) {
+ return GraphQLRenderConfig(
+ fragmentsFilePath: json['fragmentsFilePath'] as String,
+ mutationsFilePath: json['mutationsFilePath'] as String,
+ queriesFilePath: json['queriesFilePath'] as String,
+ subscriptionsFilePath: json['subscriptionsFilePath'] as String,
+ typesFilePath: json['typesFilePath'] as String,
+ );
+ }
+
+ Map toJson() {
+ final fragmentsFilePath = this.fragmentsFilePath;
+ final mutationsFilePath = this.mutationsFilePath;
+ final queriesFilePath = this.queriesFilePath;
+ final subscriptionsFilePath = this.subscriptionsFilePath;
+ final typesFilePath = this.typesFilePath;
+ return {
+ 'fragmentsFilePath': fragmentsFilePath,
+ 'mutationsFilePath': mutationsFilePath,
+ 'queriesFilePath': queriesFilePath,
+ 'subscriptionsFilePath': subscriptionsFilePath,
+ 'typesFilePath': typesFilePath,
+ };
+ }
+}
+
+enum JSModule {
+ es2020,
+ esnext,
+}
+
+extension JSModuleValueExtension on JSModule {
+ String toValue() {
+ switch (this) {
+ case JSModule.es2020:
+ return 'es2020';
+ case JSModule.esnext:
+ return 'esnext';
+ }
+ }
+}
+
+extension JSModuleFromString on String {
+ JSModule toJSModule() {
+ switch (this) {
+ case 'es2020':
+ return JSModule.es2020;
+ case 'esnext':
+ return JSModule.esnext;
+ }
+ throw Exception('$this is not known in enum JSModule');
+ }
+}
+
+enum JSScript {
+ jsx,
+ tsx,
+ js,
+}
+
+extension JSScriptValueExtension on JSScript {
+ String toValue() {
+ switch (this) {
+ case JSScript.jsx:
+ return 'jsx';
+ case JSScript.tsx:
+ return 'tsx';
+ case JSScript.js:
+ return 'js';
+ }
+ }
+}
+
+extension JSScriptFromString on String {
+ JSScript toJSScript() {
+ switch (this) {
+ case 'jsx':
+ return JSScript.jsx;
+ case 'tsx':
+ return JSScript.tsx;
+ case 'js':
+ return JSScript.js;
+ }
+ throw Exception('$this is not known in enum JSScript');
+ }
+}
+
+enum JSTarget {
+ es2015,
+ es2020,
+}
+
+extension JSTargetValueExtension on JSTarget {
+ String toValue() {
+ switch (this) {
+ case JSTarget.es2015:
+ return 'es2015';
+ case JSTarget.es2020:
+ return 'es2020';
+ }
+ }
+}
+
+extension JSTargetFromString on String {
+ JSTarget toJSTarget() {
+ switch (this) {
+ case 'es2015':
+ return JSTarget.es2015;
+ case 'es2020':
+ return JSTarget.es2020;
+ }
+ throw Exception('$this is not known in enum JSTarget');
+ }
+}
+
enum LabelDecorator {
required,
optional,
@@ -3270,6 +4492,38 @@ extension LabelDecoratorFromString on String {
}
}
+class ListCodegenJobsResponse {
+ /// The list of code generation jobs for the Amplify app.
+ final List entities;
+
+ /// The pagination token that's included if more results are available.
+ final String? nextToken;
+
+ ListCodegenJobsResponse({
+ required this.entities,
+ this.nextToken,
+ });
+
+ factory ListCodegenJobsResponse.fromJson(Map json) {
+ return ListCodegenJobsResponse(
+ entities: (json['entities'] as List)
+ .whereNotNull()
+ .map((e) => CodegenJobSummary.fromJson(e as Map))
+ .toList(),
+ nextToken: json['nextToken'] as String?,
+ );
+ }
+
+ Map toJson() {
+ final entities = this.entities;
+ final nextToken = this.nextToken;
+ return {
+ 'entities': entities,
+ if (nextToken != null) 'nextToken': nextToken,
+ };
+ }
+}
+
class ListComponentsResponse {
/// The list of components for the Amplify app.
final List entities;
@@ -3334,6 +4588,29 @@ class ListFormsResponse {
}
}
+class ListTagsForResourceResponse {
+ /// A list of tag key value pairs for a specified Amazon Resource Name (ARN).
+ final Map tags;
+
+ ListTagsForResourceResponse({
+ required this.tags,
+ });
+
+ factory ListTagsForResourceResponse.fromJson(Map json) {
+ return ListTagsForResourceResponse(
+ tags: (json['tags'] as Map)
+ .map((k, e) => MapEntry(k, e as String)),
+ );
+ }
+
+ Map toJson() {
+ final tags = this.tags;
+ return {
+ 'tags': tags,
+ };
+ }
+}
+
class ListThemesResponse {
/// The list of themes for the Amplify app.
final List entities;
@@ -3404,6 +4681,19 @@ class MutationActionSetStateParameter {
}
}
+/// Describes the configuration for an application with no API being used.
+class NoApiRenderConfig {
+ NoApiRenderConfig();
+
+ factory NoApiRenderConfig.fromJson(Map _) {
+ return NoApiRenderConfig();
+ }
+
+ Map toJson() {
+ return {};
+ }
+}
+
/// Stores information for generating Amplify DataStore queries. Use a
/// Predicate
to retrieve a subset of the data in a collection.
class Predicate {
@@ -3486,6 +4776,78 @@ class PutMetadataFlagBody {
}
}
+/// Describes the code generation job configuration for a React project.
+class ReactStartCodegenJobData {
+ /// The API configuration for the code generation job.
+ final ApiConfiguration? apiConfiguration;
+
+ /// Lists the dependency packages that may be required for the project code to
+ /// run.
+ final Map? dependencies;
+
+ /// Specifies whether the code generation job should render inline source maps.
+ final bool? inlineSourceMap;
+
+ /// The JavaScript module type.
+ final JSModule? module;
+
+ /// Specifies whether the code generation job should render type declaration
+ /// files.
+ final bool? renderTypeDeclarations;
+
+ /// The file type to use for a JavaScript project.
+ final JSScript? script;
+
+ /// The ECMAScript specification to use.
+ final JSTarget? target;
+
+ ReactStartCodegenJobData({
+ this.apiConfiguration,
+ this.dependencies,
+ this.inlineSourceMap,
+ this.module,
+ this.renderTypeDeclarations,
+ this.script,
+ this.target,
+ });
+
+ factory ReactStartCodegenJobData.fromJson(Map json) {
+ return ReactStartCodegenJobData(
+ apiConfiguration: json['apiConfiguration'] != null
+ ? ApiConfiguration.fromJson(
+ json['apiConfiguration'] as Map)
+ : null,
+ dependencies: (json['dependencies'] as Map?)
+ ?.map((k, e) => MapEntry(k, e as String)),
+ inlineSourceMap: json['inlineSourceMap'] as bool?,
+ module: (json['module'] as String?)?.toJSModule(),
+ renderTypeDeclarations: json['renderTypeDeclarations'] as bool?,
+ script: (json['script'] as String?)?.toJSScript(),
+ target: (json['target'] as String?)?.toJSTarget(),
+ );
+ }
+
+ Map toJson() {
+ final apiConfiguration = this.apiConfiguration;
+ final dependencies = this.dependencies;
+ final inlineSourceMap = this.inlineSourceMap;
+ final module = this.module;
+ final renderTypeDeclarations = this.renderTypeDeclarations;
+ final script = this.script;
+ final target = this.target;
+ return {
+ if (apiConfiguration != null) 'apiConfiguration': apiConfiguration,
+ if (dependencies != null) 'dependencies': dependencies,
+ if (inlineSourceMap != null) 'inlineSourceMap': inlineSourceMap,
+ if (module != null) 'module': module.toValue(),
+ if (renderTypeDeclarations != null)
+ 'renderTypeDeclarations': renderTypeDeclarations,
+ if (script != null) 'script': script.toValue(),
+ if (target != null) 'target': target.toValue(),
+ };
+ }
+}
+
/// Describes a refresh token.
class RefreshTokenRequestBody {
/// The token to use to refresh a previously issued access token that might have
@@ -3664,6 +5026,65 @@ class SortProperty {
}
}
+/// The code generation job resource configuration.
+class StartCodegenJobData {
+ /// The code generation configuration for the codegen job.
+ final CodegenJobRenderConfig renderConfig;
+
+ /// Specifies whether to autogenerate forms in the code generation job.
+ final bool? autoGenerateForms;
+
+ /// The feature flags for a code generation job.
+ final CodegenFeatureFlags? features;
+
+ /// The data schema to use for a code generation job.
+ final CodegenJobGenericDataSchema? genericDataSchema;
+
+ /// One or more key-value pairs to use when tagging the code generation job
+ /// data.
+ final Map? tags;
+
+ StartCodegenJobData({
+ required this.renderConfig,
+ this.autoGenerateForms,
+ this.features,
+ this.genericDataSchema,
+ this.tags,
+ });
+
+ Map toJson() {
+ final renderConfig = this.renderConfig;
+ final autoGenerateForms = this.autoGenerateForms;
+ final features = this.features;
+ final genericDataSchema = this.genericDataSchema;
+ final tags = this.tags;
+ return {
+ 'renderConfig': renderConfig,
+ if (autoGenerateForms != null) 'autoGenerateForms': autoGenerateForms,
+ if (features != null) 'features': features,
+ if (genericDataSchema != null) 'genericDataSchema': genericDataSchema,
+ if (tags != null) 'tags': tags,
+ };
+ }
+}
+
+class StartCodegenJobResponse {
+ /// The code generation job for a UI component that is associated with an
+ /// Amplify app.
+ final CodegenJob? entity;
+
+ StartCodegenJobResponse({
+ this.entity,
+ });
+
+ Map toJson() {
+ final entity = this.entity;
+ return {
+ if (entity != null) 'entity': entity,
+ };
+ }
+}
+
enum StorageAccessLevel {
public,
protected,
@@ -3697,6 +5118,18 @@ extension StorageAccessLevelFromString on String {
}
}
+class TagResourceResponse {
+ TagResourceResponse();
+
+ factory TagResourceResponse.fromJson(Map _) {
+ return TagResourceResponse();
+ }
+
+ Map toJson() {
+ return {};
+ }
+}
+
/// A theme is a collection of style settings that apply globally to the
/// components associated with an Amplify application.
class Theme {
@@ -3916,6 +5349,18 @@ extension TokenProvidersFromString on String {
}
}
+class UntagResourceResponse {
+ UntagResourceResponse();
+
+ factory UntagResourceResponse.fromJson(Map _) {
+ return UntagResourceResponse();
+ }
+
+ Map toJson() {
+ return {};
+ }
+}
+
/// Updates and saves all of the information about a component, based on
/// component ID.
class UpdateComponentData {
@@ -4255,6 +5700,11 @@ class ServiceQuotaExceededException extends _s.GenericAwsException {
message: message);
}
+class ThrottlingException extends _s.GenericAwsException {
+ ThrottlingException({String? type, String? message})
+ : super(type: type, code: 'ThrottlingException', message: message);
+}
+
class UnauthorizedException extends _s.GenericAwsException {
UnauthorizedException({String? type, String? message})
: super(type: type, code: 'UnauthorizedException', message: message);
@@ -4271,6 +5721,8 @@ final _exceptionFns = {
ResourceNotFoundException(type: type, message: message),
'ServiceQuotaExceededException': (type, message) =>
ServiceQuotaExceededException(type: type, message: message),
+ 'ThrottlingException': (type, message) =>
+ ThrottlingException(type: type, message: message),
'UnauthorizedException': (type, message) =>
UnauthorizedException(type: type, message: message),
};
diff --git a/aws_client/lib/src/generated/api_gateway/v2015_07_09.dart b/aws_client/lib/src/generated/api_gateway/v2015_07_09.dart
index 2a26f8df3..7f39493af 100644
--- a/aws_client/lib/src/generated/api_gateway/v2015_07_09.dart
+++ b/aws_client/lib/src/generated/api_gateway/v2015_07_09.dart
@@ -21,7 +21,7 @@ export '../../shared/shared.dart' show AwsClientCredentials;
/// Amazon API Gateway helps developers deliver robust, secure, and scalable
/// mobile and web application back ends. API Gateway allows developers to
-/// securely connect mobile and web applications to APIs that run on AWS Lambda,
+/// securely connect mobile and web applications to APIs that run on Lambda,
/// Amazon EC2, or other publicly addressable web services that are hosted
/// outside of AWS.
class ApiGateway {
@@ -62,8 +62,8 @@ class ApiGateway {
/// May throw [TooManyRequestsException].
///
/// Parameter [customerId] :
- /// An AWS Marketplace customer identifier , when integrating with the AWS
- /// SaaS Marketplace.
+ /// An Amazon Web Services Marketplace customer identifier, when integrating
+ /// with the Amazon Web Services SaaS Marketplace.
///
/// Parameter [description] :
/// The description of the ApiKey.
@@ -459,9 +459,9 @@ class ApiGateway {
/// The name of the DomainName resource.
///
/// Parameter [certificateArn] :
- /// The reference to an AWS-managed certificate that will be used by
- /// edge-optimized endpoint for this domain name. AWS Certificate Manager is
- /// the only supported source.
+ /// The reference to an Amazon Web Services-managed certificate that will be
+ /// used by edge-optimized endpoint for this domain name. Certificate Manager
+ /// is the only supported source.
///
/// Parameter [certificateBody] :
/// [Deprecated] The body of the server certificate that will be used by
@@ -495,9 +495,9 @@ class ApiGateway {
/// ACM imported or private CA certificate ARN as the regionalCertificateArn.
///
/// Parameter [regionalCertificateArn] :
- /// The reference to an AWS-managed certificate that will be used by regional
- /// endpoint for this domain name. AWS Certificate Manager is the only
- /// supported source.
+ /// The reference to an Amazon Web Services-managed certificate that will be
+ /// used by regional endpoint for this domain name. Certificate Manager is the
+ /// only supported source.
///
/// Parameter [regionalCertificateName] :
/// The user-friendly name of the certificate that will be used by regional
@@ -581,7 +581,8 @@ class ApiGateway {
///
/// Parameter [schema] :
/// The schema for the model. For application/json
models, this
- /// should be JSON schema draft 4 model.
+ /// should be JSON schema draft 4 model. The maximum size of the model is 400
+ /// KB.
Future createModel({
required String contentType,
required String name,
@@ -698,7 +699,7 @@ class ApiGateway {
///
/// Parameter [apiKeySource] :
/// The source of the API key for metering requests according to a usage plan.
- /// Valid values are: >HEADER
to read the API key from the
+ /// Valid values are: HEADER
to read the API key from the
/// X-API-Key
header of a request. AUTHORIZER
to
/// read the API key from the UsageIdentifierKey
from a custom
/// authorizer.
@@ -975,8 +976,8 @@ class ApiGateway {
///
/// Parameter [targetArns] :
/// The ARN of the network load balancer of the VPC targeted by the VPC link.
- /// The network load balancer must be owned by the same AWS account of the API
- /// owner.
+ /// The network load balancer must be owned by the same Amazon Web Services
+ /// account of the API owner.
///
/// Parameter [description] :
/// The description of the VPC link.
@@ -1696,8 +1697,8 @@ class ApiGateway {
/// May throw [TooManyRequestsException].
///
/// Parameter [customerId] :
- /// The identifier of a customer in AWS Marketplace or an external system,
- /// such as a developer portal.
+ /// The identifier of a customer in Amazon Web Services Marketplace or an
+ /// external system, such as a developer portal.
///
/// Parameter [includeValues] :
/// A boolean flag to specify whether (true
) or not
@@ -3255,9 +3256,9 @@ class ApiGateway {
///
/// Parameter [mode] :
/// A query parameter to indicate whether to overwrite
- /// (OVERWRITE
) any existing DocumentationParts definition or to
- /// merge (MERGE
) the new definition into the existing one. The
- /// default value is MERGE
.
+ /// (overwrite
) any existing DocumentationParts definition or to
+ /// merge (merge
) the new definition into the existing one. The
+ /// default value is merge
.
Future importDocumentationParts({
required Uint8List body,
required String restApiId,
@@ -3316,11 +3317,6 @@ class ApiGateway {
/// To handle imported basepath
, set parameters
as
/// basepath=ignore
, basepath=prepend
or
/// basepath=split
.
- ///
- /// For example, the AWS CLI command to exclude documentation from the
- /// imported API is:
- ///
- /// The AWS CLI command to set the regional endpoint on the imported API is:
Future importRestApi({
required Uint8List body,
bool? failOnWarnings,
@@ -4305,7 +4301,7 @@ class ApiGateway {
/// The version identifier of the to-be-updated documentation version.
///
/// Parameter [restApiId] :
- /// The string identifier of the associated RestApi..
+ /// The string identifier of the associated RestApi.
///
/// Parameter [patchOperations] :
/// For more information about supported patch operations, see HTTP, HTTP_PROXY
, AWS
,
+/// AWS_PROXY
, or Mock integration.
class Integration {
/// A list of request parameters whose values API Gateway caches. To be valid
/// values for cacheKeyParameters
, these parameters must also be
@@ -6894,10 +6892,13 @@ class Integration {
/// Gateway to assume, use the role's Amazon Resource Name (ARN). To require
/// that the caller's identity be passed through from the request, specify the
/// string arn:aws:iam::\*:user/\*
. To use resource-based
- /// permissions on supported AWS services, specify null.
+ /// permissions on supported Amazon Web Services services, specify null.
final String? credentials;
- /// Specifies the integration's HTTP method type.
+ /// Specifies the integration's HTTP method type. For the Type property, if you
+ /// specify MOCK
, this property is optional. For Lambda
+ /// integrations, you must set the integration method to POST
. For
+ /// all other types, you must specify this property.
final String? httpMethod;
/// Specifies the integration's responses.
@@ -6963,10 +6964,8 @@ class Integration {
///
/// For HTTP
or HTTP_PROXY
integrations, the URI must
/// be a fully formed, encoded HTTP(S) URL according to the RFC-3986
- /// specification, for either standard integration, where
- /// connectionType
is not VPC_LINK
, or private
- /// integration, where connectionType
is VPC_LINK
. For
- /// a private HTTP integration, the URI is not used for routing. For
+ /// specification for standard integrations. If connectionType
is
+ /// VPC_LINK
specify the Network Load Balancer DNS name. For
/// AWS
or AWS_PROXY
integrations, the URI is of the
/// form
/// arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}
.
@@ -6977,11 +6976,11 @@ class Integration {
/// Web Services service action-based API, using an
/// Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing
/// {service_api} refers to a supported action {name} plus any required input
- /// parameters. Alternatively, path can be used for an AWS service path-based
- /// API. The ensuing service_api refers to the path to an Amazon Web Services
- /// service resource, including the region of the integrated Amazon Web Services
- /// service, if applicable. For example, for integration with the S3 API of
- /// GetObject, the uri can be either
+ /// parameters. Alternatively, path can be used for an Amazon Web Services
+ /// service path-based API. The ensuing service_api refers to the path to an
+ /// Amazon Web Services service resource, including the region of the integrated
+ /// Amazon Web Services service, if applicable. For example, for integration
+ /// with the S3 API of GetObject, the uri can be either
/// arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key}
/// or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}
final String? uri;
@@ -7109,9 +7108,9 @@ class IntegrationResponse {
/// if the success response returns nothing and the error response returns some
/// string, you could use the .+
regex to match error response.
/// However, make sure that the error response does not contain any newline
- /// (\n
) character in such cases. If the back end is an AWS Lambda
- /// function, the AWS Lambda function error header is matched. For all other
- /// HTTP and AWS back ends, the HTTP status code is matched.
+ /// (\n
) character in such cases. If the back end is an Lambda
+ /// function, the Lambda function error header is matched. For all other HTTP
+ /// and Amazon Web Services back ends, the HTTP status code is matched.
final String? selectionPattern;
/// Specifies the status code that is used to map the integration response to an
@@ -7156,11 +7155,11 @@ class IntegrationResponse {
}
/// The integration type. The valid value is HTTP
for integrating
-/// an API method with an HTTP backend; AWS
with any AWS service
-/// endpoints; MOCK
for testing without actually invoking the
-/// backend; HTTP_PROXY
for integrating with the HTTP proxy
-/// integration; AWS_PROXY
for integrating with the Lambda proxy
-/// integration.
+/// an API method with an HTTP backend; AWS
with any Amazon Web
+/// Services service endpoints; MOCK
for testing without actually
+/// invoking the backend; HTTP_PROXY
for integrating with the HTTP
+/// proxy integration; AWS_PROXY
for integrating with the Lambda
+/// proxy integration.
enum IntegrationType {
http,
aws,
@@ -7433,67 +7432,45 @@ class MethodResponse {
/// Specifies the method setting properties.
class MethodSetting {
- /// Specifies whether the cached responses are encrypted. The PATCH path for
- /// this setting is /{method_setting_key}/caching/dataEncrypted
,
- /// and the value is a Boolean.
+ /// Specifies whether the cached responses are encrypted.
final bool? cacheDataEncrypted;
/// Specifies the time to live (TTL), in seconds, for cached responses. The
- /// higher the TTL, the longer the response will be cached. The PATCH path for
- /// this setting is /{method_setting_key}/caching/ttlInSeconds
, and
- /// the value is an integer.
+ /// higher the TTL, the longer the response will be cached.
final int? cacheTtlInSeconds;
/// Specifies whether responses should be cached and returned for requests. A
- /// cache cluster must be enabled on the stage for responses to be cached. The
- /// PATCH path for this setting is
- /// /{method_setting_key}/caching/enabled
, and the value is a
- /// Boolean.
+ /// cache cluster must be enabled on the stage for responses to be cached.
final bool? cachingEnabled;
/// Specifies whether data trace logging is enabled for this method, which
- /// affects the log entries pushed to Amazon CloudWatch Logs. The PATCH path for
- /// this setting is /{method_setting_key}/logging/dataTrace
, and
- /// the value is a Boolean.
+ /// affects the log entries pushed to Amazon CloudWatch Logs. This can be useful
+ /// to troubleshoot APIs, but can result in logging sensitive data. We recommend
+ /// that you don't enable this option for production APIs.
final bool? dataTraceEnabled;
/// Specifies the logging level for this method, which affects the log entries
- /// pushed to Amazon CloudWatch Logs. The PATCH path for this setting is
- /// /{method_setting_key}/logging/loglevel
, and the available
- /// levels are OFF
, ERROR
, and INFO
.
- /// Choose ERROR
to write only error-level entries to CloudWatch
- /// Logs, or choose INFO
to include all ERROR
events
- /// as well as extra informational events.
+ /// pushed to Amazon CloudWatch Logs. Valid values are OFF
,
+ /// ERROR
, and INFO
. Choose ERROR
to
+ /// write only error-level entries to CloudWatch Logs, or choose
+ /// INFO
to include all ERROR
events as well as extra
+ /// informational events.
final String? loggingLevel;
- /// Specifies whether Amazon CloudWatch metrics are enabled for this method. The
- /// PATCH path for this setting is
- /// /{method_setting_key}/metrics/enabled
, and the value is a
- /// Boolean.
+ /// Specifies whether Amazon CloudWatch metrics are enabled for this method.
final bool? metricsEnabled;
/// Specifies whether authorization is required for a cache invalidation
- /// request. The PATCH path for this setting is
- /// /{method_setting_key}/caching/requireAuthorizationForCacheControl
,
- /// and the value is a Boolean.
+ /// request.
final bool? requireAuthorizationForCacheControl;
- /// Specifies the throttling burst limit. The PATCH path for this setting is
- /// /{method_setting_key}/throttling/burstLimit
, and the value is
- /// an integer.
+ /// Specifies the throttling burst limit.
final int? throttlingBurstLimit;
- /// Specifies the throttling rate limit. The PATCH path for this setting is
- /// /{method_setting_key}/throttling/rateLimit
, and the value is a
- /// double.
+ /// Specifies the throttling rate limit.
final double? throttlingRateLimit;
- /// Specifies how to handle unauthorized requests for cache invalidation. The
- /// PATCH path for this setting is
- /// /{method_setting_key}/caching/unauthorizedCacheControlHeaderStrategy
,
- /// and the available values are FAIL_WITH_403
,
- /// SUCCEED_WITH_RESPONSE_HEADER
,
- /// SUCCEED_WITHOUT_RESPONSE_HEADER
.
+ /// Specifies how to handle unauthorized requests for cache invalidation.
final UnauthorizedCacheControlHeaderStrategy?
unauthorizedCacheControlHeaderStrategy;
@@ -8183,6 +8160,9 @@ class RestApi {
/// of the caller and Method configuration.
final String? policy;
+ /// The API's root resource ID.
+ final String? rootResourceId;
+
/// The collection of tags. Each tag element is associated with a given
/// resource.
final Map? tags;
@@ -8205,6 +8185,7 @@ class RestApi {
this.minimumCompressionSize,
this.name,
this.policy,
+ this.rootResourceId,
this.tags,
this.version,
this.warnings,
@@ -8228,6 +8209,7 @@ class RestApi {
minimumCompressionSize: json['minimumCompressionSize'] as int?,
name: json['name'] as String?,
policy: json['policy'] as String?,
+ rootResourceId: json['rootResourceId'] as String?,
tags: (json['tags'] as Map?)
?.map((k, e) => MapEntry(k, e as String)),
version: json['version'] as String?,
@@ -8249,6 +8231,7 @@ class RestApi {
final minimumCompressionSize = this.minimumCompressionSize;
final name = this.name;
final policy = this.policy;
+ final rootResourceId = this.rootResourceId;
final tags = this.tags;
final version = this.version;
final warnings = this.warnings;
@@ -8266,6 +8249,7 @@ class RestApi {
'minimumCompressionSize': minimumCompressionSize,
if (name != null) 'name': name,
if (policy != null) 'policy': policy,
+ if (rootResourceId != null) 'rootResourceId': rootResourceId,
if (tags != null) 'tags': tags,
if (version != null) 'version': version,
if (warnings != null) 'warnings': warnings,
@@ -8499,7 +8483,9 @@ class Stage {
/// Settings for logging access in this stage.
final AccessLogSettings? accessLogSettings;
- /// Specifies whether a cache cluster is enabled for the stage.
+ /// Specifies whether a cache cluster is enabled for the stage. To activate a
+ /// method-level cache, set CachingEnabled
to true
for
+ /// a method.
final bool? cacheClusterEnabled;
/// The stage's cache capacity in GB. For more information about choosing a
@@ -8773,7 +8759,7 @@ class TestInvokeAuthorizerResponse {
/// authorizer succeeded.
final int? clientStatus;
- /// The execution latency of the test authorizer request.
+ /// The execution latency, in ms, of the test authorizer request.
final int? latency;
/// The API Gateway execution log for the test authorizer request.
@@ -8838,7 +8824,7 @@ class TestInvokeMethodResponse {
/// The headers of the HTTP response.
final Map? headers;
- /// The execution latency of the test invoke request.
+ /// The execution latency, in ms, of the test invoke request.
final int? latency;
/// The API Gateway execution log for the test invoke request.
@@ -9077,8 +9063,8 @@ class UsagePlan {
/// The name of a usage plan.
final String? name;
- /// The AWS Markeplace product identifier to associate with the usage plan as a
- /// SaaS product on AWS Marketplace.
+ /// The Amazon Web Services Marketplace product identifier to associate with the
+ /// usage plan as a SaaS product on the Amazon Web Services Marketplace.
final String? productCode;
/// The target maximum number of permitted requests per a given unit time
@@ -9282,8 +9268,8 @@ class VpcLink {
final Map? tags;
/// The ARN of the network load balancer of the VPC targeted by the VPC link.
- /// The network load balancer must be owned by the same AWS account of the API
- /// owner.
+ /// The network load balancer must be owned by the same Amazon Web Services
+ /// account of the API owner.
final List? targetArns;
VpcLink({
diff --git a/aws_client/lib/src/generated/api_gateway_v2/v2018_11_29.dart b/aws_client/lib/src/generated/api_gateway_v2/v2018_11_29.dart
index 292819faa..c6b381853 100644
--- a/aws_client/lib/src/generated/api_gateway_v2/v2018_11_29.dart
+++ b/aws_client/lib/src/generated/api_gateway_v2/v2018_11_29.dart
@@ -1283,7 +1283,7 @@ class ApiGatewayV2 {
);
}
- /// Deletes a route request parameter.
+ /// Deletes a route request parameter. Supported only for WebSocket APIs.
///
/// May throw [NotFoundException].
/// May throw [TooManyRequestsException].
@@ -2879,7 +2879,7 @@ class ApiGatewayV2 {
/// action can be append, overwrite or remove. For values, you can provide
/// static values, or map request data, stage variables, or context variables
/// that are evaluated at runtime. To learn more, see Transforming
+ /// href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming
/// API requests and responses.
///
/// Parameter [requestTemplates] :
@@ -4585,7 +4585,7 @@ class CreateIntegrationResult {
/// href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html">Working
/// with AWS service integrations for HTTP APIs.
///
- /// For HTTP API itegrations, without a specified integrationSubtype request
+ /// For HTTP API integrations, without a specified integrationSubtype request
/// parameters are a key-value map specifying how to transform HTTP requests
/// before sending them to backend integrations. The key should follow the
/// pattern <action>:<header|querystring|path>.<location>. The
@@ -6451,7 +6451,7 @@ class GetIntegrationResult {
/// href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html">Working
/// with AWS service integrations for HTTP APIs.
///
- /// For HTTP API itegrations, without a specified integrationSubtype request
+ /// For HTTP API integrations, without a specified integrationSubtype request
/// parameters are a key-value map specifying how to transform HTTP requests
/// before sending them to backend integrations. The key should follow the
/// pattern <action>:<header|querystring|path>.<location>. The
@@ -7740,7 +7740,7 @@ class Integration {
/// href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html">Working
/// with AWS service integrations for HTTP APIs.
///
- /// For HTTP API itegrations, without a specified integrationSubtype request
+ /// For HTTP API integrations, without a specified integrationSubtype request
/// parameters are a key-value map specifying how to transform HTTP requests
/// before sending them to backend integrations. The key should follow the
/// pattern <action>:<header|querystring|path>.<location>. The
@@ -9586,7 +9586,7 @@ class UpdateIntegrationResult {
/// href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html">Working
/// with AWS service integrations for HTTP APIs.
///
- /// For HTTP API itegrations, without a specified integrationSubtype request
+ /// For HTTP API integrations, without a specified integrationSubtype request
/// parameters are a key-value map specifying how to transform HTTP requests
/// before sending them to backend integrations. The key should follow the
/// pattern <action>:<header|querystring|path>.<location>. The
diff --git a/aws_client/lib/src/generated/app_config/v2019_10_09.dart b/aws_client/lib/src/generated/app_config/v2019_10_09.dart
index 00f0ba04a..ea050814a 100644
--- a/aws_client/lib/src/generated/app_config/v2019_10_09.dart
+++ b/aws_client/lib/src/generated/app_config/v2019_10_09.dart
@@ -19,51 +19,149 @@ import '../../shared/shared.dart'
export '../../shared/shared.dart' show AwsClientCredentials;
-/// Use AppConfig, a capability of Amazon Web Services Systems Manager, to
-/// create, manage, and quickly deploy application configurations. AppConfig
-/// supports controlled deployments to applications of any size and includes
-/// built-in validation checks and monitoring. You can use AppConfig with
-/// applications hosted on Amazon EC2 instances, Lambda, containers, mobile
-/// applications, or IoT devices.
+/// AppConfig feature flags and dynamic configurations help software builders
+/// quickly and securely adjust application behavior in production environments
+/// without full code deployments. AppConfig speeds up software release
+/// frequency, improves application resiliency, and helps you address emergent
+/// issues more quickly. With feature flags, you can gradually release new
+/// capabilities to users and measure the impact of those changes before fully
+/// deploying the new capabilities to all users. With operational flags and
+/// dynamic configurations, you can update block lists, allow lists, throttling
+/// limits, logging verbosity, and perform other operational tuning to quickly
+/// respond to issues in production environments.
+///
+/// AppConfig is a capability of Amazon Web Services Systems Manager.
+///
+/// Despite the fact that application configuration content can vary greatly
+/// from application to application, AppConfig supports the following use cases,
+/// which cover a broad spectrum of customer needs:
///
-/// To prevent errors when deploying application configurations, especially for
-/// production systems where a simple typo could cause an unexpected outage,
-/// AppConfig includes validators. A validator provides a syntactic or semantic
-/// check to ensure that the configuration you want to deploy works as intended.
-/// To validate your application configuration data, you provide a schema or an
-/// Amazon Web Services Lambda function that runs against the configuration. The
-/// configuration deployment or update can only proceed when the configuration
-/// data is valid.
+///
+/// -
+/// Feature flags and toggles - Safely release new capabilities to your
+/// customers in a controlled environment. Instantly roll back changes if you
+/// experience a problem.
+///
+/// -
+/// Application tuning - Carefully introduce application changes while
+/// testing the impact of those changes with users in production environments.
+///
+/// -
+/// Allow list or block list - Control access to premium features or
+/// instantly block specific users without deploying new code.
+///
+/// -
+/// Centralized configuration storage - Keep your configuration data
+/// organized and consistent across all of your workloads. You can use AppConfig
+/// to deploy configuration data stored in the AppConfig hosted configuration
+/// store, Secrets Manager, Systems Manager, Parameter Store, or Amazon S3.
+///
+///
+/// How AppConfig works
///
-/// During a configuration deployment, AppConfig monitors the application to
-/// ensure that the deployment is successful. If the system encounters an error,
-/// AppConfig rolls back the change to minimize impact for your application
-/// users. You can configure a deployment strategy for each application or
-/// environment that includes deployment criteria, including velocity, bake
-/// time, and alarms to monitor. Similar to error monitoring, if a deployment
-/// triggers an alarm, AppConfig automatically rolls back to the previous
-/// version.
+/// This section provides a high-level description of how AppConfig works and
+/// how you get started.
+/// - 1. Identify configuration values in code you want to manage in the
+/// cloud
-
+/// Before you start creating AppConfig artifacts, we recommend you identify
+/// configuration data in your code that you want to dynamically manage using
+/// AppConfig. Good examples include feature flags or toggles, allow and block
+/// lists, logging verbosity, service limits, and throttling rules, to name a
+/// few.
///
-/// AppConfig supports multiple use cases. Here are some examples:
+/// If your configuration data already exists in the cloud, you can take
+/// advantage of AppConfig validation, deployment, and extension features to
+/// further streamline configuration data management.
+///
- 2. Create an application namespace
-
+/// To create a namespace, you create an AppConfig artifact called an
+/// application. An application is simply an organizational construct like a
+/// folder.
+///
- 3. Create environments
-
+/// For each AppConfig application, you define one or more environments. An
+/// environment is a logical grouping of targets, such as applications in a
+///
Beta
or Production
environment, Lambda functions,
+/// or containers. You can also define environments for application
+/// subcomponents, such as the Web
, Mobile
, and
+/// Back-end
.
+///
+/// You can configure Amazon CloudWatch alarms for each environment. The system
+/// monitors alarms during a configuration deployment. If an alarm is triggered,
+/// the system rolls back the configuration.
+/// - 4. Create a configuration profile
-
+/// A configuration profile includes, among other things, a URI that enables
+/// AppConfig to locate your configuration data in its stored location and a
+/// profile type. AppConfig supports two configuration profile types: feature
+/// flags and freeform configurations. Feature flag configuration profiles store
+/// their data in the AppConfig hosted configuration store and the URI is simply
+///
hosted
. For freeform configuration profiles, you can store your
+/// data in the AppConfig hosted configuration store or any Amazon Web Services
+/// service that integrates with AppConfig, as described in Creating
+/// a free form configuration profile in the the AppConfig User
+/// Guide.
+///
+/// A configuration profile can also include optional validators to ensure your
+/// configuration data is syntactically and semantically correct. AppConfig
+/// performs a check using the validators when you start a deployment. If any
+/// errors are detected, the deployment rolls back to the previous configuration
+/// data.
+/// - 5. Deploy configuration data
-
+/// When you create a new deployment, you specify the following:
///
///
/// -
-/// Feature flags: Use AppConfig to turn on new features that require a
-/// timely deployment, such as a product launch or announcement.
+/// An application ID
+///
+/// -
+/// A configuration profile ID
///
/// -
-/// Application tuning: Use AppConfig to carefully introduce changes to
-/// your application that can only be tested with production traffic.
+/// A configuration version
///
/// -
-/// Allow list: Use AppConfig to allow premium subscribers to access paid
-/// content.
+/// An environment ID where you want to deploy the configuration data
///
/// -
-/// Operational issues: Use AppConfig to reduce stress on your
-/// application when a dependency or other external factor impacts the system.
+/// A deployment strategy ID that defines how fast you want the changes to take
+/// effect
///
///
+/// When you call the StartDeployment
+/// API action, AppConfig performs the following tasks:
+///
+/// -
+/// Retrieves the configuration data from the underlying data store by using the
+/// location URI in the configuration profile.
+///
+/// -
+/// Verifies the configuration data is syntactically and semantically correct by
+/// using the validators you specified when you created your configuration
+/// profile.
+///
+/// -
+/// Caches a copy of the data so it is ready to be retrieved by your
+/// application. This cached copy is called the deployed data.
+///
- 6. Retrieve the configuration
-
+/// You can configure AppConfig Agent as a local host and have the agent poll
+/// AppConfig for configuration updates. The agent calls the StartConfigurationSession
+/// and GetLatestConfiguration
+/// API actions and caches your configuration data locally. To retrieve the
+/// data, your application makes an HTTP call to the localhost server. AppConfig
+/// Agent supports several use cases, as described in Simplified
+/// retrieval methods in the the AppConfig User Guide.
+///
+/// If AppConfig Agent isn't supported for your use case, you can configure your
+/// application to poll AppConfig for configuration updates by directly calling
+/// the StartConfigurationSession
+/// and GetLatestConfiguration
+/// API actions.
+///
/// This reference is intended to be used with the AppConfig
/// User Guide.
@@ -103,6 +201,7 @@ class AppConfig {
/// configuration data for a mobile application installed by your users.
///
/// May throw [BadRequestException].
+ /// May throw [ServiceQuotaExceededException].
/// May throw [InternalServerException].
///
/// Parameter [name] :
@@ -185,6 +284,7 @@ class AppConfig {
/// May throw [BadRequestException].
/// May throw [ResourceNotFoundException].
/// May throw [InternalServerException].
+ /// May throw [ServiceQuotaExceededException].
///
/// Parameter [applicationId] :
/// The application ID.
@@ -203,8 +303,12 @@ class AppConfig {
/// ssm-parameter://<parameter name>
or the ARN.
///
/// -
+ /// For an Amazon Web Services CodePipeline pipeline, specify the URI in the
+ /// following format:
codepipeline
://<pipeline name>.
+ ///
+ /// -
/// For an Secrets Manager secret, specify the URI in the following format:
- ///
secrets-manager
://<secret name>.
+ /// secretsmanager
://<secret name>.
///
/// -
/// For an Amazon S3 object, specify the URI in the following format:
@@ -224,6 +328,15 @@ class AppConfig {
/// Parameter [description] :
/// A description of the configuration profile.
///
+ /// Parameter [kmsKeyIdentifier] :
+ /// The identifier for an Key Management Service key to encrypt new
+ /// configuration data versions in the AppConfig hosted configuration store.
+ /// This attribute is only used for
hosted
configuration types.
+ /// The identifier can be an KMS key ID, alias, or the Amazon Resource Name
+ /// (ARN) of the key ID or alias. To encrypt data managed in other
+ /// configuration stores, see the documentation for how to specify an KMS key
+ /// for that particular service.
+ ///
/// Parameter [retrievalRoleArn] :
/// The ARN of an IAM role with permission to access the configuration at the
/// specified LocationUri
.
@@ -257,6 +370,7 @@ class AppConfig {
required String locationUri,
required String name,
String? description,
+ String? kmsKeyIdentifier,
String? retrievalRoleArn,
Map? tags,
String? type,
@@ -266,6 +380,7 @@ class AppConfig {
'LocationUri': locationUri,
'Name': name,
if (description != null) 'Description': description,
+ if (kmsKeyIdentifier != null) 'KmsKeyIdentifier': kmsKeyIdentifier,
if (retrievalRoleArn != null) 'RetrievalRoleArn': retrievalRoleArn,
if (tags != null) 'Tags': tags,
if (type != null) 'Type': type,
@@ -288,6 +403,7 @@ class AppConfig {
/// percentage grows, and bake time.
///
/// May throw [InternalServerException].
+ /// May throw [ServiceQuotaExceededException].
/// May throw [BadRequestException].
///
/// Parameter [deploymentDurationInMinutes] :
@@ -413,6 +529,7 @@ class AppConfig {
/// May throw [InternalServerException].
/// May throw [ResourceNotFoundException].
/// May throw [BadRequestException].
+ /// May throw [ServiceQuotaExceededException].
///
/// Parameter [applicationId] :
/// The application ID.
@@ -458,12 +575,30 @@ class AppConfig {
/// of creating or deploying a configuration.
///
/// You can create your own extensions or use the Amazon Web Services authored
- /// extensions provided by AppConfig. For most use cases, to create your own
- /// extension, you must create an Lambda function to perform any computation
- /// and processing defined in the extension. For more information about
- /// extensions, see Working
- /// with AppConfig extensions in the AppConfig User Guide.
+ /// extensions provided by AppConfig. For an AppConfig extension that uses
+ /// Lambda, you must create a Lambda function to perform any computation and
+ /// processing defined in the extension. If you plan to create custom versions
+ /// of the Amazon Web Services authored notification extensions, you only need
+ /// to specify an Amazon Resource Name (ARN) in the Uri
field for
+ /// the new extension version.
+ ///
+ ///
+ /// -
+ /// For a custom EventBridge notification extension, enter the ARN of the
+ /// EventBridge default events in the
Uri
field.
+ ///
+ /// -
+ /// For a custom Amazon SNS notification extension, enter the ARN of an Amazon
+ /// SNS topic in the
Uri
field.
+ ///
+ /// -
+ /// For a custom Amazon SQS notification extension, enter the ARN of an Amazon
+ /// SQS message queue in the
Uri
field.
+ ///
+ ///
+ /// For more information about extensions, see Extending
+ /// workflows in the AppConfig User Guide.
///
/// May throw [BadRequestException].
/// May throw [ConflictException].
@@ -536,8 +671,8 @@ class AppConfig {
/// association is a specified relationship between an extension and an
/// AppConfig resource, such as an application or a configuration profile. For
/// more information about extensions and associations, see Working
- /// with AppConfig extensions in the AppConfig User Guide.
+ /// href="https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html">Extending
+ /// workflows in the AppConfig User Guide.
///
/// May throw [BadRequestException].
/// May throw [ResourceNotFoundException].
@@ -657,6 +792,7 @@ class AppConfig {
contentType:
_s.extractHeaderStringValue(response.headers, 'Content-Type'),
description: _s.extractHeaderStringValue(response.headers, 'Description'),
+ kmsKeyArn: _s.extractHeaderStringValue(response.headers, 'KmsKeyArn'),
versionLabel:
_s.extractHeaderStringValue(response.headers, 'VersionLabel'),
versionNumber:
@@ -1099,8 +1235,8 @@ class AppConfig {
/// Returns information about an AppConfig extension association. For more
/// information about extensions and associations, see Working
- /// with AppConfig extensions in the AppConfig User Guide.
+ /// href="https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html">Extending
+ /// workflows in the AppConfig User Guide.
///
/// May throw [BadRequestException].
/// May throw [ResourceNotFoundException].
@@ -1156,6 +1292,7 @@ class AppConfig {
contentType:
_s.extractHeaderStringValue(response.headers, 'Content-Type'),
description: _s.extractHeaderStringValue(response.headers, 'Description'),
+ kmsKeyArn: _s.extractHeaderStringValue(response.headers, 'KmsKeyArn'),
versionLabel:
_s.extractHeaderStringValue(response.headers, 'VersionLabel'),
versionNumber:
@@ -1382,8 +1519,8 @@ class AppConfig {
/// Lists all AppConfig extension associations in the account. For more
/// information about extensions and associations, see Working
- /// with AppConfig extensions in the AppConfig User Guide.
+ /// href="https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html">Extending
+ /// workflows in the AppConfig User Guide.
///
/// May throw [InternalServerException].
/// May throw [BadRequestException].
@@ -1440,8 +1577,8 @@ class AppConfig {
/// Lists all custom and Amazon Web Services authored AppConfig extensions in
/// the account. For more information about extensions, see Working
- /// with AppConfig extensions in the AppConfig User Guide.
+ /// href="https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html">Extending
+ /// workflows in the AppConfig User Guide.
///
/// May throw [InternalServerException].
/// May throw [BadRequestException].
@@ -1573,7 +1710,8 @@ class AppConfig {
/// Parameter [configurationVersion] :
/// The configuration version to deploy. If deploying an AppConfig hosted
/// configuration version, you can specify either the version number or
- /// version label.
+ /// version label. For all other configurations, you must specify the version
+ /// number.
///
/// Parameter [deploymentStrategyId] :
/// The deployment strategy ID.
@@ -1584,6 +1722,10 @@ class AppConfig {
/// Parameter [description] :
/// A description of the deployment.
///
+ /// Parameter [dynamicExtensionParameters] :
+ /// A map of dynamic extension parameter names to values to pass to associated
+ /// extensions with PRE_START_DEPLOYMENT
actions.
+ ///
/// Parameter [kmsKeyIdentifier] :
/// The KMS key identifier (key ID, key alias, or key ARN). AppConfig uses
/// this ID to encrypt the configuration data using a customer managed key.
@@ -1599,6 +1741,7 @@ class AppConfig {
required String deploymentStrategyId,
required String environmentId,
String? description,
+ Map? dynamicExtensionParameters,
String? kmsKeyIdentifier,
Map? tags,
}) async {
@@ -1607,6 +1750,8 @@ class AppConfig {
'ConfigurationVersion': configurationVersion,
'DeploymentStrategyId': deploymentStrategyId,
if (description != null) 'Description': description,
+ if (dynamicExtensionParameters != null)
+ 'DynamicExtensionParameters': dynamicExtensionParameters,
if (kmsKeyIdentifier != null) 'KmsKeyIdentifier': kmsKeyIdentifier,
if (tags != null) 'Tags': tags,
};
@@ -1756,6 +1901,15 @@ class AppConfig {
/// Parameter [description] :
/// A description of the configuration profile.
///
+ /// Parameter [kmsKeyIdentifier] :
+ /// The identifier for a Key Management Service key to encrypt new
+ /// configuration data versions in the AppConfig hosted configuration store.
+ /// This attribute is only used for hosted
configuration types.
+ /// The identifier can be an KMS key ID, alias, or the Amazon Resource Name
+ /// (ARN) of the key ID or alias. To encrypt data managed in other
+ /// configuration stores, see the documentation for how to specify an KMS key
+ /// for that particular service.
+ ///
/// Parameter [name] :
/// The name of the configuration profile.
///
@@ -1769,12 +1923,14 @@ class AppConfig {
required String applicationId,
required String configurationProfileId,
String? description,
+ String? kmsKeyIdentifier,
String? name,
String? retrievalRoleArn,
List? validators,
}) async {
final $payload = {
if (description != null) 'Description': description,
+ if (kmsKeyIdentifier != null) 'KmsKeyIdentifier': kmsKeyIdentifier,
if (name != null) 'Name': name,
if (retrievalRoleArn != null) 'RetrievalRoleArn': retrievalRoleArn,
if (validators != null) 'Validators': validators,
@@ -1930,8 +2086,8 @@ class AppConfig {
/// Updates an AppConfig extension. For more information about extensions, see
/// Working
- /// with AppConfig extensions in the AppConfig User Guide.
+ /// href="https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html">Extending
+ /// workflows in the AppConfig User Guide.
///
/// May throw [BadRequestException].
/// May throw [ResourceNotFoundException].
@@ -1977,8 +2133,8 @@ class AppConfig {
/// Updates an association. For more information about extensions and
/// associations, see Working
- /// with AppConfig extensions in the AppConfig User Guide.
+ /// href="https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html">Extending
+ /// workflows in the AppConfig User Guide.
///
/// May throw [BadRequestException].
/// May throw [ResourceNotFoundException].
@@ -2404,6 +2560,17 @@ class ConfigurationProfile {
/// The configuration profile ID.
final String? id;
+ /// The Amazon Resource Name of the Key Management Service key to encrypt new
+ /// configuration data versions in the AppConfig hosted configuration store.
+ /// This attribute is only used for hosted
configuration types. To
+ /// encrypt data managed in other configuration stores, see the documentation
+ /// for how to specify an KMS key for that particular service.
+ final String? kmsKeyArn;
+
+ /// The Key Management Service key identifier (key ID, key alias, or key ARN)
+ /// provided when the resource was created or updated.
+ final String? kmsKeyIdentifier;
+
/// The URI location of the configuration.
final String? locationUri;
@@ -2433,6 +2600,8 @@ class ConfigurationProfile {
this.applicationId,
this.description,
this.id,
+ this.kmsKeyArn,
+ this.kmsKeyIdentifier,
this.locationUri,
this.name,
this.retrievalRoleArn,
@@ -2445,6 +2614,8 @@ class ConfigurationProfile {
applicationId: json['ApplicationId'] as String?,
description: json['Description'] as String?,
id: json['Id'] as String?,
+ kmsKeyArn: json['KmsKeyArn'] as String?,
+ kmsKeyIdentifier: json['KmsKeyIdentifier'] as String?,
locationUri: json['LocationUri'] as String?,
name: json['Name'] as String?,
retrievalRoleArn: json['RetrievalRoleArn'] as String?,
@@ -2460,6 +2631,8 @@ class ConfigurationProfile {
final applicationId = this.applicationId;
final description = this.description;
final id = this.id;
+ final kmsKeyArn = this.kmsKeyArn;
+ final kmsKeyIdentifier = this.kmsKeyIdentifier;
final locationUri = this.locationUri;
final name = this.name;
final retrievalRoleArn = this.retrievalRoleArn;
@@ -2469,6 +2642,8 @@ class ConfigurationProfile {
if (applicationId != null) 'ApplicationId': applicationId,
if (description != null) 'Description': description,
if (id != null) 'Id': id,
+ if (kmsKeyArn != null) 'KmsKeyArn': kmsKeyArn,
+ if (kmsKeyIdentifier != null) 'KmsKeyIdentifier': kmsKeyIdentifier,
if (locationUri != null) 'LocationUri': locationUri,
if (name != null) 'Name': name,
if (retrievalRoleArn != null) 'RetrievalRoleArn': retrievalRoleArn,
@@ -2645,8 +2820,8 @@ class Deployment {
/// Parameter Store.
final String? kmsKeyArn;
- /// The KMS key identifier (key ID, key alias, or key ARN). AppConfig uses this
- /// ID to encrypt the configuration data using a customer managed key.
+ /// The Key Management Service key identifier (key ID, key alias, or key ARN)
+ /// provided when the resource was created or updated.
final String? kmsKeyIdentifier;
/// The percentage of targets for which the deployment is available.
@@ -2658,6 +2833,9 @@ class Deployment {
/// The state of the deployment.
final DeploymentState? state;
+ /// A user-defined label for an AppConfig hosted configuration version.
+ final String? versionLabel;
+
Deployment({
this.applicationId,
this.appliedExtensions,
@@ -2680,6 +2858,7 @@ class Deployment {
this.percentageComplete,
this.startedAt,
this.state,
+ this.versionLabel,
});
factory Deployment.fromJson(Map json) {
@@ -2711,6 +2890,7 @@ class Deployment {
percentageComplete: json['PercentageComplete'] as double?,
startedAt: timeStampFromJson(json['StartedAt']),
state: (json['State'] as String?)?.toDeploymentState(),
+ versionLabel: json['VersionLabel'] as String?,
);
}
@@ -2736,6 +2916,7 @@ class Deployment {
final percentageComplete = this.percentageComplete;
final startedAt = this.startedAt;
final state = this.state;
+ final versionLabel = this.versionLabel;
return {
if (applicationId != null) 'ApplicationId': applicationId,
if (appliedExtensions != null) 'AppliedExtensions': appliedExtensions,
@@ -2764,6 +2945,7 @@ class Deployment {
if (percentageComplete != null) 'PercentageComplete': percentageComplete,
if (startedAt != null) 'StartedAt': iso8601ToJson(startedAt),
if (state != null) 'State': state.toValue(),
+ if (versionLabel != null) 'VersionLabel': versionLabel,
};
}
}
@@ -2774,10 +2956,21 @@ class DeploymentEvent {
final List? actionInvocations;
/// A description of the deployment event. Descriptions include, but are not
- /// limited to, the user account or the Amazon CloudWatch alarm ARN that
- /// initiated a rollback, the percentage of hosts that received the deployment,
- /// or in the case of an internal error, a recommendation to attempt a new
- /// deployment.
+ /// limited to, the following:
+ ///
+ ///
+ /// -
+ /// The Amazon Web Services account or the Amazon CloudWatch alarm ARN that
+ /// initiated a rollback.
+ ///
+ /// -
+ /// The percentage of hosts that received the deployment.
+ ///
+ /// -
+ /// A recommendation to attempt a new deployment (in the case of an internal
+ /// error).
+ ///
+ ///
final String? description;
/// The type of deployment event. Deployment event types include the start,
@@ -3070,6 +3263,9 @@ class DeploymentSummary {
/// The state of the deployment.
final DeploymentState? state;
+ /// A user-defined label for an AppConfig hosted configuration version.
+ final String? versionLabel;
+
DeploymentSummary({
this.completedAt,
this.configurationName,
@@ -3082,6 +3278,7 @@ class DeploymentSummary {
this.percentageComplete,
this.startedAt,
this.state,
+ this.versionLabel,
});
factory DeploymentSummary.fromJson(Map json) {
@@ -3097,6 +3294,7 @@ class DeploymentSummary {
percentageComplete: json['PercentageComplete'] as double?,
startedAt: timeStampFromJson(json['StartedAt']),
state: (json['State'] as String?)?.toDeploymentState(),
+ versionLabel: json['VersionLabel'] as String?,
);
}
@@ -3112,6 +3310,7 @@ class DeploymentSummary {
final percentageComplete = this.percentageComplete;
final startedAt = this.startedAt;
final state = this.state;
+ final versionLabel = this.versionLabel;
return {
if (completedAt != null) 'CompletedAt': iso8601ToJson(completedAt),
if (configurationName != null) 'ConfigurationName': configurationName,
@@ -3127,6 +3326,7 @@ class DeploymentSummary {
if (percentageComplete != null) 'PercentageComplete': percentageComplete,
if (startedAt != null) 'StartedAt': iso8601ToJson(startedAt),
if (state != null) 'State': state.toValue(),
+ if (versionLabel != null) 'VersionLabel': versionLabel,
};
}
}
@@ -3643,6 +3843,11 @@ class HostedConfigurationVersion {
/// A description of the configuration.
final String? description;
+ /// The Amazon Resource Name of the Key Management Service key that was used to
+ /// encrypt this specific version of the configuration data in the AppConfig
+ /// hosted configuration store.
+ final String? kmsKeyArn;
+
/// A user-defined label for an AppConfig hosted configuration version.
final String? versionLabel;
@@ -3655,6 +3860,7 @@ class HostedConfigurationVersion {
this.content,
this.contentType,
this.description,
+ this.kmsKeyArn,
this.versionLabel,
this.versionNumber,
});
@@ -3665,6 +3871,7 @@ class HostedConfigurationVersion {
final content = this.content;
final contentType = this.contentType;
final description = this.description;
+ final kmsKeyArn = this.kmsKeyArn;
final versionLabel = this.versionLabel;
final versionNumber = this.versionNumber;
return {
@@ -3689,6 +3896,11 @@ class HostedConfigurationVersionSummary {
/// A description of the configuration.
final String? description;
+ /// The Amazon Resource Name of the Key Management Service key that was used to
+ /// encrypt this specific version of the configuration data in the AppConfig
+ /// hosted configuration store.
+ final String? kmsKeyArn;
+
/// A user-defined label for an AppConfig hosted configuration version.
final String? versionLabel;
@@ -3700,6 +3912,7 @@ class HostedConfigurationVersionSummary {
this.configurationProfileId,
this.contentType,
this.description,
+ this.kmsKeyArn,
this.versionLabel,
this.versionNumber,
});
@@ -3711,6 +3924,7 @@ class HostedConfigurationVersionSummary {
configurationProfileId: json['ConfigurationProfileId'] as String?,
contentType: json['ContentType'] as String?,
description: json['Description'] as String?,
+ kmsKeyArn: json['KmsKeyArn'] as String?,
versionLabel: json['VersionLabel'] as String?,
versionNumber: json['VersionNumber'] as int?,
);
@@ -3721,6 +3935,7 @@ class HostedConfigurationVersionSummary {
final configurationProfileId = this.configurationProfileId;
final contentType = this.contentType;
final description = this.description;
+ final kmsKeyArn = this.kmsKeyArn;
final versionLabel = this.versionLabel;
final versionNumber = this.versionNumber;
return {
@@ -3729,6 +3944,7 @@ class HostedConfigurationVersionSummary {
'ConfigurationProfileId': configurationProfileId,
if (contentType != null) 'ContentType': contentType,
if (description != null) 'Description': description,
+ if (kmsKeyArn != null) 'KmsKeyArn': kmsKeyArn,
if (versionLabel != null) 'VersionLabel': versionLabel,
if (versionNumber != null) 'VersionNumber': versionNumber,
};
@@ -3804,32 +4020,41 @@ class Monitor {
/// Notification Service topic entered in an extension when invoked. Parameter
/// values are specified in an extension association. For more information about
/// extensions, see Working
-/// with AppConfig extensions in the AppConfig User Guide.
+/// href="https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html">Extending
+/// workflows in the AppConfig User Guide.
class Parameter {
/// Information about the parameter.
final String? description;
+ /// Indicates whether this parameter's value can be supplied at the extension's
+ /// action point instead of during extension association. Dynamic parameters
+ /// can't be marked Required
.
+ final bool? dynamicValue;
+
/// A parameter value must be specified in the extension association.
final bool? required;
Parameter({
this.description,
+ this.dynamicValue,
this.required,
});
factory Parameter.fromJson(Map json) {
return Parameter(
description: json['Description'] as String?,
+ dynamicValue: json['Dynamic'] as bool?,
required: json['Required'] as bool?,
);
}
Map toJson() {
final description = this.description;
+ final dynamicValue = this.dynamicValue;
final required = this.required;
return {
if (description != null) 'Description': description,
+ if (dynamicValue != null) 'Dynamic': dynamicValue,
if (required != null) 'Required': required,
};
}
diff --git a/aws_client/lib/src/generated/app_fabric/v2023_05_19.dart b/aws_client/lib/src/generated/app_fabric/v2023_05_19.dart
new file mode 100644
index 000000000..5b6c4260c
--- /dev/null
+++ b/aws_client/lib/src/generated/app_fabric/v2023_05_19.dart
@@ -0,0 +1,3115 @@
+// ignore_for_file: deprecated_member_use_from_same_package
+// ignore_for_file: unused_element
+// ignore_for_file: unused_field
+// ignore_for_file: unused_import
+// ignore_for_file: unused_local_variable
+// ignore_for_file: unused_shown_name
+
+import 'dart:convert';
+import 'dart:typed_data';
+
+import '../../shared/shared.dart' as _s;
+import '../../shared/shared.dart'
+ show
+ rfc822ToJson,
+ iso8601ToJson,
+ unixTimestampToJson,
+ nonNullableTimeStampFromJson,
+ timeStampFromJson;
+
+export '../../shared/shared.dart' show AwsClientCredentials;
+
+/// Amazon Web Services AppFabric quickly connects software as a service (SaaS)
+/// applications across your organization. This allows IT and security teams to
+/// easily manage and secure applications using a standard schema, and employees
+/// can complete everyday tasks faster using generative artificial intelligence
+/// (AI). You can use these APIs to complete AppFabric tasks, such as setting up
+/// audit log ingestions or viewing user access. For more information about
+/// AppFabric, including the required permissions to use the service, see the Amazon Web
+/// Services AppFabric Administration Guide. For more information about
+/// using the Command Line Interface (CLI) to manage your AppFabric resources,
+/// see the AppFabric
+/// section of the CLI Reference.
+class AppFabric {
+ final _s.RestJsonProtocol _protocol;
+ AppFabric({
+ required String region,
+ _s.AwsClientCredentials? credentials,
+ _s.AwsClientCredentialsProvider? credentialsProvider,
+ _s.Client? client,
+ String? endpointUrl,
+ }) : _protocol = _s.RestJsonProtocol(
+ client: client,
+ service: _s.ServiceMetadata(
+ endpointPrefix: 'appfabric',
+ signingName: 'appfabric',
+ ),
+ region: region,
+ credentials: credentials,
+ credentialsProvider: credentialsProvider,
+ endpointUrl: endpointUrl,
+ );
+
+ /// Closes the internal HTTP client if none was provided at creation.
+ /// If a client was passed as a constructor argument, this becomes a noop.
+ ///
+ /// It's important to close all clients when it's done being used; failing to
+ /// do so can cause the Dart process to hang.
+ void close() {
+ _protocol.close();
+ }
+
+ /// Gets user access details in a batch request.
+ ///
+ /// This action polls data from the tasks that are kicked off by the
+ /// StartUserAccessTasks
action.
+ ///
+ /// May throw [InternalServerException].
+ /// May throw [ThrottlingException].
+ /// May throw [ValidationException].
+ /// May throw [ResourceNotFoundException].
+ /// May throw [AccessDeniedException].
+ ///
+ /// Parameter [appBundleIdentifier] :
+ /// The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of
+ /// the app bundle to use for the request.
+ ///
+ /// Parameter [taskIdList] :
+ /// The tasks IDs to use for the request.
+ Future batchGetUserAccessTasks({
+ required String appBundleIdentifier,
+ required List