From 88fee364344b4fd2a033fe0e71c95cf88072412c Mon Sep 17 00:00:00 2001 From: vamping111 Date: Sat, 16 Nov 2024 02:22:06 +0300 Subject: [PATCH] gha: add rockitcloud release gha: add env vars --- .github/CODEOWNERS | 50 - .github/PULL_REQUEST_TEMPLATE.md | 28 - .github/SUPPORT.md | 5 - .github/dependabot.yml | 38 - .github/labeler-issue-needs-triage.yml | 2 - .github/labeler-issue-triage.yml | 645 ---------- .github/labeler-pr-needs-triage.yml | 4 - .github/labeler-pr-triage.yml | 1072 ----------------- .github/terraform_logo.svg | 7 - .github/workflows/README.md | 28 - .github/workflows/acctest-terraform-lint.yml | 83 -- .github/workflows/autoremove_labels.yml | 18 - .github/workflows/changelog.yml | 74 -- .github/workflows/dependencies.yml | 77 -- .github/workflows/documentation.yml | 54 - .github/workflows/examples.yml | 88 -- .github/workflows/firewatch.yml | 26 - .github/workflows/generate_changelog.yml | 28 - .github/workflows/issue-comment-created.yml | 19 - .github/workflows/issues.yml | 27 - .github/workflows/lock.yml | 23 - .github/workflows/maintainer-edit.yml | 22 - .github/workflows/milestone-closed.yml | 20 - .github/workflows/milestone.yml | 25 - .github/workflows/post_publish.yml | 63 - .github/workflows/project.yml | 20 - .github/workflows/pull_requests.yml | 61 - .github/workflows/regressions.yml | 45 - .github/workflows/release.yml | 119 -- .github/workflows/roadmap_milestone.yml | 15 - .github/workflows/rockitcloud_acc_tests.yml | 27 + .../workflows/rockitcloud_private_release.yml | 39 + .../workflows/rockitcloud_public_release.yml | 27 + .github/workflows/rockitcloud_unit_tests.yml | 30 + .github/workflows/snapshot.yml | 44 - .github/workflows/stale.yml | 27 - .github/workflows/team_slack_bot.yml | 21 - .github/workflows/terraform_provider.yml | 444 ------- .github/workflows/website.yml | 196 --- .github/workflows/workflow-lint.yml | 23 - docs/c2/README.md | 46 + scripts/gha-update-s3-registry.sh | 182 +++ 42 files changed, 351 insertions(+), 3541 deletions(-) delete mode 100644 .github/CODEOWNERS delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/SUPPORT.md delete mode 100644 .github/dependabot.yml delete mode 100644 .github/labeler-issue-needs-triage.yml delete mode 100644 .github/labeler-issue-triage.yml delete mode 100644 .github/labeler-pr-needs-triage.yml delete mode 100644 .github/labeler-pr-triage.yml delete mode 100644 .github/terraform_logo.svg delete mode 100644 .github/workflows/README.md delete mode 100644 .github/workflows/acctest-terraform-lint.yml delete mode 100644 .github/workflows/autoremove_labels.yml delete mode 100644 .github/workflows/changelog.yml delete mode 100644 .github/workflows/dependencies.yml delete mode 100644 .github/workflows/documentation.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/firewatch.yml delete mode 100644 .github/workflows/generate_changelog.yml delete mode 100644 .github/workflows/issue-comment-created.yml delete mode 100644 .github/workflows/issues.yml delete mode 100644 .github/workflows/lock.yml delete mode 100644 .github/workflows/maintainer-edit.yml delete mode 100644 .github/workflows/milestone-closed.yml delete mode 100644 .github/workflows/milestone.yml delete mode 100644 .github/workflows/post_publish.yml delete mode 100644 .github/workflows/project.yml delete mode 100644 .github/workflows/pull_requests.yml delete mode 100644 .github/workflows/regressions.yml delete mode 100644 .github/workflows/release.yml delete mode 100644 .github/workflows/roadmap_milestone.yml create mode 100644 .github/workflows/rockitcloud_acc_tests.yml create mode 100644 .github/workflows/rockitcloud_private_release.yml create mode 100644 .github/workflows/rockitcloud_public_release.yml create mode 100644 .github/workflows/rockitcloud_unit_tests.yml delete mode 100644 .github/workflows/snapshot.yml delete mode 100644 .github/workflows/stale.yml delete mode 100644 .github/workflows/team_slack_bot.yml delete mode 100644 .github/workflows/terraform_provider.yml delete mode 100644 .github/workflows/website.yml delete mode 100644 .github/workflows/workflow-lint.yml create mode 100755 scripts/gha-update-s3-registry.sh diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index c6a62a4d54e..00000000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1,50 +0,0 @@ -# There is no default owner for pull requests as reviews are scheduled based on community popularity. - -# Service specific owners -/aws/*apigatewayv2* @ewbankkit -/website/**/apigatewayv2* @ewbankkit - -/aws/*appmesh* @ewbankkit -/website/**/appmesh* @ewbankkit - -/aws/*backup* @ewbankkit -/website/**/backup* @ewbankkit - -/aws/*_aws_codeartifact_*.go @DrFaust92 -/website/**/codeartifact* @DrFaust92 - -/aws/*_aws_fsx_*.go @DrFaust92 -/website/**/fsx* @DrFaust92 - -/aws/*globalaccelerator* @ewbankkit -/website/**/globalaccelerator* @ewbankkit - -/aws/*_aws_glue_*.go @DrFaust92 -/website/**/glue* @DrFaust92 - -/aws/*kinesis_analytics* @ewbankkit -/website/**/kinesis_analytics* @ewbankkit - -/aws/*kinesisanalyticsv2* @ewbankkit -/website/**/kinesisanalyticsv2* @ewbankkit - -/aws/*route53_resolver* @ewbankkit -/website/**/route53_resolver* @ewbankkit - -/aws/*_aws_storagegateway_*.go @DrFaust92 -/website/**/storagegateway* @DrFaust92 - -/aws/*_aws_sagemaker_*.go @DrFaust92 -/website/**/sagemaker* @DrFaust92 - -/aws/*_aws_workspaces_*.go @Tensho -/website/**/workspaces* @Tensho - -/aws/*_aws_mwaa_*.go @shuheiktgw -/website/**/mwaa* @shuheiktgw - -/aws/*_aws_emr_*.go @shuheiktgw -/website/**/emr* @shuheiktgw - -/aws/*aws_cloudwatch_event_*.go @heitorlessa @sthulb -/website/**/cloudwatch_event* @heitorlessa @sthulb diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index fea56fd896b..00000000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,28 +0,0 @@ - - - - -### Community Note - -* Please vote on this pull request by adding a πŸ‘ [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original pull request comment to help the community and maintainers prioritize this request -* Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for pull request followers and do not help prioritize the request - - - - -Relates OR Closes #0000 - -Output from acceptance testing: - - -``` -$ make testacc TESTS=TestAccXXX PKG=ec2 - -... -``` diff --git a/.github/SUPPORT.md b/.github/SUPPORT.md deleted file mode 100644 index 1d41099a659..00000000000 --- a/.github/SUPPORT.md +++ /dev/null @@ -1,5 +0,0 @@ -# Support - -Terraform is a mature project with a growing community. There are active, dedicated people willing to help you through various mediums. - -Take a look at those mediums listed at https://www.terraform.io/community.html diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 7176dd5b278..00000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,38 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "daily" - - package-ecosystem: "gomod" - directory: "/" - ignore: - - dependency-name: "golang.org/x/tools" - - dependency-name: "google.golang.org/grpc" - schedule: - interval: "daily" - - package-ecosystem: "gomod" - directory: "/providerlint" - ignore: - - dependency-name: "golang.org/x/tools" - - dependency-name: "google.golang.org/grpc" - schedule: - interval: "daily" - - package-ecosystem: "gomod" - directory: "/tools" - ignore: - - dependency-name: "golang.org/x/tools" - - dependency-name: "google.golang.org/grpc" - schedule: - interval: "daily" - - package-ecosystem: "gomod" - directory: "/skaff" - ignore: - - dependency-name: "golang.org/x/tools" - - dependency-name: "google.golang.org/grpc" - schedule: - interval: "daily" - - package-ecosystem: "terraform" - directory: "/infrastructure/repository" - schedule: - interval: "daily" diff --git a/.github/labeler-issue-needs-triage.yml b/.github/labeler-issue-needs-triage.yml deleted file mode 100644 index 1aade66eb34..00000000000 --- a/.github/labeler-issue-needs-triage.yml +++ /dev/null @@ -1,2 +0,0 @@ -needs-triage: - - '.*' diff --git a/.github/labeler-issue-triage.yml b/.github/labeler-issue-triage.yml deleted file mode 100644 index 90f3aa099e0..00000000000 --- a/.github/labeler-issue-triage.yml +++ /dev/null @@ -1,645 +0,0 @@ -# Generated by internal/generate/issuelabels/main.go; DO NOT EDIT. -bug: - # General: - # panic: - # AWS SDK Go: - # ValidationException:.*failed to satisfy constraint: Member must not be null - # Terraform CLI: - # Provider produced inconsistent final plan - # Provider produced inconsistent result after apply - # produced an invalid new value - # produced an unexpected new value - # Terraform Plugin SDK: - # doesn't support update - # Invalid address to set - - "(doesn't support update|failed to satisfy constraint: Member must not be null|Invalid address to set|panic:|produced an (invalid|unexpected) new value|Provider produced inconsistent (final plan|result after apply))" -crash: - - 'panic:' -sweeper: - - 'sweeper' -skaff: - - 'skaff' -# -# AWS Per-Service Labeling -# -# Catch the following: -# 1. List items (* or -) with aws_XXX resource prefix (with or without backticks) -# 2. "data aws_XXX" or "resource aws_XXX" -service/accessanalyzer: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_accessanalyzer_' -service/account: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_account_' -service/acm: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_acm_' -service/acmpca: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_acmpca_' -service/alexaforbusiness: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_alexaforbusiness_' -service/amp: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_prometheus_' -service/amplify: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_amplify_' -service/amplifybackend: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_amplifybackend_' -service/amplifyuibuilder: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_amplifyuibuilder_' -service/apigateway: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_api_gateway_' -service/apigatewaymanagementapi: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_apigatewaymanagementapi_' -service/apigatewayv2: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_apigatewayv2_' -service/appautoscaling: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_appautoscaling_' -service/appconfig: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_appconfig_' -service/appconfigdata: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_appconfigdata_' -service/appflow: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_appflow_' -service/appintegrations: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_appintegrations_' -service/applicationcostprofiler: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_applicationcostprofiler_' -service/applicationinsights: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_applicationinsights_' -service/appmesh: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_appmesh_' -service/apprunner: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_apprunner_' -service/appstream: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_appstream_' -service/appsync: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_appsync_' -service/athena: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_athena_' -service/auditmanager: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_auditmanager_' -service/autoscaling: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_(autoscaling_|launch_configuration)' -service/autoscalingplans: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_autoscalingplans_' -service/backup: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_backup_' -service/backupgateway: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_backupgateway_' -service/batch: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_batch_' -service/billingconductor: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_billingconductor_' -service/braket: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_braket_' -service/budgets: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_budgets_' -service/ce: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ce_' -service/chime: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_chime_' -service/chimesdkidentity: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_chimesdkidentity_' -service/chimesdkmeetings: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_chimesdkmeetings_' -service/chimesdkmessaging: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_chimesdkmessaging_' -service/cloud9: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_cloud9_' -service/cloudcontrol: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_cloudcontrolapi_' -service/clouddirectory: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_clouddirectory_' -service/cloudformation: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_cloudformation_' -service/cloudfront: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_cloudfront_' -service/cloudhsmv2: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_cloudhsm_v2_' -service/cloudsearch: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_cloudsearch_' -service/cloudsearchdomain: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_cloudsearchdomain_' -service/cloudtrail: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_cloudtrail' -service/cloudwatch: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_cloudwatch_(?!(event_|log_|query_))' -service/codeartifact: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_codeartifact_' -service/codebuild: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_codebuild_' -service/codecommit: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_codecommit_' -service/codeguruprofiler: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_codeguruprofiler_' -service/codegurureviewer: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_codegurureviewer_' -service/codepipeline: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_codepipeline' -service/codestar: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_codestar_' -service/codestarconnections: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_codestarconnections_' -service/codestarnotifications: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_codestarnotifications_' -service/cognitoidentity: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_cognito_identity_(?!provider)' -service/cognitoidp: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_cognito_(identity_provider|resource|user)' -service/cognitosync: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_cognitosync_' -service/comprehend: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_comprehend_' -service/comprehendmedical: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_comprehendmedical_' -service/computeoptimizer: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_computeoptimizer_' -service/configservice: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_config_' -service/connect: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_connect_' -service/connectcontactlens: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_connectcontactlens_' -service/connectparticipant: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_connectparticipant_' -service/cur: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_cur_' -service/customerprofiles: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_customerprofiles_' -service/databrew: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_databrew_' -service/dataexchange: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_dataexchange_' -service/datapipeline: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_datapipeline_' -service/datasync: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_datasync_' -service/dax: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_dax_' -service/deploy: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_codedeploy_' -service/detective: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_detective_' -service/devicefarm: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_devicefarm_' -service/devopsguru: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_devopsguru_' -service/directconnect: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_dx_' -service/discovery: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_discovery_' -service/dlm: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_dlm_' -service/dms: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_dms_' -service/docdb: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_docdb_' -service/drs: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_drs_' -service/ds: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_directory_service_' -service/dynamodb: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_dynamodb_' -service/dynamodbstreams: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_dynamodbstreams_' -service/ebs: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ebs_' -service/ec2: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_(ami|availability_zone|ec2_(availability|capacity|fleet|host|instance|serial|spot|tag)|eip|instance|key_pair|launch_template|placement_group|spot)' -service/ec2ebs: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_(ebs_|volume_attach|snapshot_create)' -service/ec2instanceconnect: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ec2instanceconnect_' -service/ec2outposts: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ec2_(coip_pool|local_gateway)' -service/ecr: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ecr_' -service/ecrpublic: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ecrpublic_' -service/ecs: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ecs_' -service/efs: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_efs_' -service/eks: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_eks_' -service/elasticache: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_elasticache_' -service/elasticbeanstalk: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_elastic_beanstalk_' -service/elasticinference: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_elasticinference_' -service/elasticsearch: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_elasticsearch_' -service/elastictranscoder: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_elastictranscoder_' -service/elb: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_(app_cookie_stickiness_policy|elb|lb_cookie_stickiness_policy|lb_ssl_negotiation_policy|load_balancer_|proxy_protocol_policy)' -service/elbv2: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_a?lb(\b|_listener|_target_group)' -service/emr: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_emr_' -service/emrcontainers: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_emrcontainers_' -service/events: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_cloudwatch_event_' -service/evidently: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_evidently_' -service/finspace: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_finspace_' -service/finspacedata: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_finspacedata_' -service/firehose: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_kinesis_firehose_' -service/fis: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_fis_' -service/fms: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_fms_' -service/forecast: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_forecast_' -service/forecastquery: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_forecastquery_' -service/frauddetector: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_frauddetector_' -service/fsx: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_fsx_' -service/gamelift: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_gamelift_' -service/glacier: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_glacier_' -service/globalaccelerator: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_globalaccelerator_' -service/glue: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_glue_' -service/grafana: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_grafana_' -service/greengrass: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_greengrass_' -service/greengrassv2: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_greengrassv2_' -service/groundstation: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_groundstation_' -service/guardduty: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_guardduty_' -service/health: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_health_' -service/healthlake: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_healthlake_' -service/honeycode: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_honeycode_' -service/iam: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_iam_' -service/identitystore: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_identitystore_' -service/imagebuilder: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_imagebuilder_' -service/inspector: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_inspector_' -service/inspector2: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_inspector2_' -service/iot: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_iot_' -service/iot1clickdevices: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_iot1clickdevices_' -service/iot1clickprojects: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_iot1clickprojects_' -service/iotanalytics: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_iotanalytics_' -service/iotdata: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_iotdata_' -service/iotdeviceadvisor: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_iotdeviceadvisor_' -service/iotevents: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_iotevents_' -service/ioteventsdata: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ioteventsdata_' -service/iotfleethub: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_iotfleethub_' -service/iotjobsdata: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_iotjobsdata_' -service/iotsecuretunneling: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_iotsecuretunneling_' -service/iotsitewise: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_iotsitewise_' -service/iotthingsgraph: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_iotthingsgraph_' -service/iottwinmaker: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_iottwinmaker_' -service/iotwireless: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_iotwireless_' -service/ipam: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_vpc_ipam' -service/ivs: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ivs_' -service/kafka: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_msk_' -service/kafkaconnect: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_mskconnect_' -service/kendra: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_kendra_' -service/keyspaces: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_keyspaces_' -service/kinesis: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_kinesis_stream' -service/kinesisanalytics: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_kinesis_analytics_' -service/kinesisanalyticsv2: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_kinesisanalyticsv2_' -service/kinesisvideo: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_kinesisvideo_' -service/kinesisvideoarchivedmedia: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_kinesisvideoarchivedmedia_' -service/kinesisvideomedia: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_kinesisvideomedia_' -service/kinesisvideosignaling: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_kinesisvideosignaling_' -service/kms: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_kms_' -service/lakeformation: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_lakeformation_' -service/lambda: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_lambda_' -service/lexmodels: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_lex_' -service/lexmodelsv2: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_lexmodelsv2_' -service/lexruntime: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_lexruntime_' -service/lexruntimev2: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_lexruntimev2_' -service/licensemanager: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_licensemanager_' -service/lightsail: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_lightsail_' -service/location: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_location_' -service/logs: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_cloudwatch_(log_|query_)' -service/lookoutequipment: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_lookoutequipment_' -service/lookoutmetrics: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_lookoutmetrics_' -service/lookoutvision: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_lookoutvision_' -service/machinelearning: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_machinelearning_' -service/macie: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_macie_' -service/macie2: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_macie2_' -service/managedblockchain: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_managedblockchain_' -service/marketplacecatalog: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_marketplacecatalog_' -service/marketplacecommerceanalytics: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_marketplacecommerceanalytics_' -service/marketplaceentitlement: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_marketplaceentitlement_' -service/marketplacemetering: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_marketplacemetering_' -service/mediaconnect: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_mediaconnect_' -service/mediaconvert: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_media_convert_' -service/medialive: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_medialive_' -service/mediapackage: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_media_package_' -service/mediapackagevod: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_mediapackagevod_' -service/mediastore: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_media_store_' -service/mediastoredata: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_mediastoredata_' -service/mediatailor: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_mediatailor_' -service/memorydb: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_memorydb_' -service/meta: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_(arn|billing_service_account|default_tags|ip_ranges|partition|regions?|service)$' -service/mgh: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_mgh_' -service/mgn: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_mgn_' -service/migrationhubconfig: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_migrationhubconfig_' -service/migrationhubrefactorspaces: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_migrationhubrefactorspaces_' -service/migrationhubstrategy: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_migrationhubstrategy_' -service/mobile: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_mobile_' -service/mq: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_mq_' -service/mturk: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_mturk_' -service/mwaa: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_mwaa_' -service/neptune: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_neptune_' -service/networkfirewall: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_networkfirewall_' -service/networkmanager: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_networkmanager_' -service/nimble: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_nimble_' -service/opensearch: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_opensearch_' -service/opsworks: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_opsworks_' -service/opsworkscm: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_opsworkscm_' -service/organizations: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_organizations_' -service/outposts: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_outposts_' -service/paas: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_paas_' -service/panorama: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_panorama_' -service/personalize: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_personalize_' -service/personalizeevents: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_personalizeevents_' -service/personalizeruntime: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_personalizeruntime_' -service/pi: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_pi_' -service/pinpoint: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_pinpoint_' -service/pinpointemail: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_pinpointemail_' -service/pinpointsmsvoice: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_pinpointsmsvoice_' -service/polly: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_polly_' -service/pricing: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_pricing_' -service/proton: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_proton_' -service/qldb: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_qldb_' -service/qldbsession: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_qldbsession_' -service/quicksight: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_quicksight_' -service/ram: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ram_' -service/rbin: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_rbin_' -service/rds: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_(db_|rds_)' -service/rdsdata: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_rdsdata_' -service/redshift: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_redshift_' -service/redshiftdata: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_redshiftdata_' -service/rekognition: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_rekognition_' -service/resiliencehub: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_resiliencehub_' -service/resourcegroups: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_resourcegroups_' -service/resourcegroupstaggingapi: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_resourcegroupstaggingapi_' -service/robomaker: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_robomaker_' -service/route53: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_route53_(?!resolver_)' -service/route53domains: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_route53domains_' -service/route53recoverycluster: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_route53recoverycluster_' -service/route53recoverycontrolconfig: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_route53recoverycontrolconfig_' -service/route53recoveryreadiness: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_route53recoveryreadiness_' -service/route53resolver: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_route53_resolver_' -service/rum: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_rum_' -service/s3: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_(canonical_user_id|s3_bucket|s3_object)' -service/s3control: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_(s3_account_|s3control_|s3_access_)' -service/s3outposts: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_s3outposts_' -service/sagemaker: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_sagemaker_' -service/sagemakera2iruntime: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_sagemakera2iruntime_' -service/sagemakeredge: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_sagemakeredge_' -service/sagemakerfeaturestoreruntime: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_sagemakerfeaturestoreruntime_' -service/sagemakerruntime: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_sagemakerruntime_' -service/savingsplans: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_savingsplans_' -service/schemas: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_schemas_' -service/secretsmanager: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_secretsmanager_' -service/securityhub: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_securityhub_' -service/serverlessrepo: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_serverlessapplicationrepository_' -service/servicecatalog: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_servicecatalog_' -service/servicecatalogappregistry: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_servicecatalogappregistry_' -service/servicediscovery: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_service_discovery_' -service/servicequotas: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_servicequotas_' -service/ses: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ses_' -service/sesv2: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_sesv2_' -service/sfn: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_sfn_' -service/shield: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_shield_' -service/signer: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_signer_' -service/simpledb: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_simpledb_' -service/sms: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_sms_' -service/snowball: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_snowball_' -service/snowdevicemanagement: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_snowdevicemanagement_' -service/sns: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_sns_' -service/sqs: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_sqs_' -service/ssm: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ssm_' -service/ssmcontacts: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ssmcontacts_' -service/ssmincidents: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ssmincidents_' -service/sso: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_sso_' -service/ssoadmin: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ssoadmin_' -service/ssooidc: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ssooidc_' -service/storagegateway: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_storagegateway_' -service/sts: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_caller_identity' -service/support: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_support_' -service/swf: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_swf_' -service/synthetics: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_synthetics_' -service/textract: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_textract_' -service/timestreamquery: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_timestreamquery_' -service/timestreamwrite: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_timestreamwrite_' -service/transcribe: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_transcribe_' -service/transcribestreaming: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_transcribestreaming_' -service/transfer: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_transfer_' -service/transitgateway: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ec2_transit_gateway' -service/translate: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_translate_' -service/voiceid: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_voiceid_' -service/vpc: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_((default_)?(network_acl|route_table|security_group|subnet|vpc(?!_ipam))|ec2_(managed|network|subnet|traffic)|egress_only_internet|flow_log|internet_gateway|main_route_table_association|nat_gateway|network_interface|prefix_list|route\b)' -service/vpnclient: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ec2_client_vpn' -service/vpnsite: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_(customer_gateway|vpn_)' -service/waf: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_waf_' -service/wafregional: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_wafregional_' -service/wafv2: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_wafv2_' -service/wavelength: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_ec2_carrier_gateway' -service/wellarchitected: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_wellarchitected_' -service/wisdom: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_wisdom_' -service/workdocs: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_workdocs_' -service/worklink: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_worklink_' -service/workmail: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_workmail_' -service/workmailmessageflow: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_workmailmessageflow_' -service/workspaces: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_workspaces_' -service/workspacesweb: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_workspacesweb_' -service/xray: - - '((\*|-)\s*`?|(data|resource)\s+"?)aws_xray_' diff --git a/.github/labeler-pr-needs-triage.yml b/.github/labeler-pr-needs-triage.yml deleted file mode 100644 index 3d0eca28900..00000000000 --- a/.github/labeler-pr-needs-triage.yml +++ /dev/null @@ -1,4 +0,0 @@ -needs-triage: - - '**' - - '.*' - - '.*/**' diff --git a/.github/labeler-pr-triage.yml b/.github/labeler-pr-triage.yml deleted file mode 100644 index 604c76612f7..00000000000 --- a/.github/labeler-pr-triage.yml +++ /dev/null @@ -1,1072 +0,0 @@ -# YAML generated by internal/generate/prlabels/main.go; DO NOT EDIT. -client-connections: - - 'internal/conns/**/*' -create: - - 'internal/create/**/*' -dependencies: - - '.github/dependabot.yml' -documentation: - - '**/*.md' - - 'docs/**/*' - - 'website/**/*' -examples: - - 'examples/**/*' -flex: - - 'internal/flex/**/*' -generators: - - 'internal/**/*_gen.go' - - 'internal/**/*_gen_test.go' - - 'internal/**/generate.go' - - 'internal/generate/**/*' -github_actions: - - '.github/*.yml' - - '.github/workflows/*.yml' -linter: - - '.github/workflows/acctest-terraform-lint.yml' - - '.github/workflows/terraform_provider.yml' - - '.github/workflows/website.yml' - - '.golangci.yml' - - '.markdownlinkcheck.json' - - '.markdownlint.yml' - - '.semgrep.yml' - - '.tflint.hcl' - - 'providerlint/**/*' - - 'staticcheck.conf' -pre-service-packages: - - '**/data_source_aws_*' - - '**/resource_aws_*' - - 'aws/**/*' - - 'awsproviderlint/**/*' -provider: - - '.gitignore' - - '.go-version' - - '*.md' - - 'docs/contributing/**/*' - - 'internal/provider/**/*' - - 'main.go' - - 'website/docs/index.html.markdown' -repository: - - '.github/**/*' - - 'GNUmakefile' - - 'infrastructure/**/*' -skaff: - - 'skaff/**/*' -sweeper: - - 'internal/sweep/**/*' - - 'internal/service/**/sweep.go' -tags: - - 'internal/**/tag_gen.go' - - 'internal/**/tag_gen_test.go' - - 'internal/**/tag_test.go' - - 'internal/**/tags_gen.go' - - 'internal/tags/**/*' -tests: - - '**/*_test.go' - - 'internal/**/test-fixtures/**/*' - - 'internal/**/testdata/**/*' - - 'internal/acctest/**/*' -verify: - - 'internal/verify/**/*' -service/accessanalyzer: - - 'internal/service/accessanalyzer/**/*' - - 'website/**/accessanalyzer_*' -service/account: - - 'internal/service/account/**/*' - - 'website/**/account_*' -service/acm: - - 'internal/service/acm/**/*' - - 'website/**/acm_*' -service/acmpca: - - 'internal/service/acmpca/**/*' - - 'website/**/acmpca_*' -service/alexaforbusiness: - - 'internal/service/alexaforbusiness/**/*' - - 'website/**/alexaforbusiness_*' -service/amp: - - 'internal/service/amp/**/*' - - 'website/**/prometheus_*' -service/amplify: - - 'internal/service/amplify/**/*' - - 'website/**/amplify_*' -service/amplifybackend: - - 'internal/service/amplifybackend/**/*' - - 'website/**/amplifybackend_*' -service/amplifyuibuilder: - - 'internal/service/amplifyuibuilder/**/*' - - 'website/**/amplifyuibuilder_*' -service/apigateway: - - 'internal/service/apigateway/**/*' - - 'website/**/api_gateway_*' -service/apigatewaymanagementapi: - - 'internal/service/apigatewaymanagementapi/**/*' - - 'website/**/apigatewaymanagementapi_*' -service/apigatewayv2: - - 'internal/service/apigatewayv2/**/*' - - 'website/**/apigatewayv2_*' -service/appautoscaling: - - 'internal/service/appautoscaling/**/*' - - 'website/**/appautoscaling_*' -service/appconfig: - - 'internal/service/appconfig/**/*' - - 'website/**/appconfig_*' -service/appconfigdata: - - 'internal/service/appconfigdata/**/*' - - 'website/**/appconfigdata_*' -service/appflow: - - 'internal/service/appflow/**/*' - - 'website/**/appflow_*' -service/appintegrations: - - 'internal/service/appintegrations/**/*' - - 'website/**/appintegrations_*' -service/applicationcostprofiler: - - 'internal/service/applicationcostprofiler/**/*' - - 'website/**/applicationcostprofiler_*' -service/applicationinsights: - - 'internal/service/applicationinsights/**/*' - - 'website/**/applicationinsights_*' -service/appmesh: - - 'internal/service/appmesh/**/*' - - 'website/**/appmesh_*' -service/apprunner: - - 'internal/service/apprunner/**/*' - - 'website/**/apprunner_*' -service/appstream: - - 'internal/service/appstream/**/*' - - 'website/**/appstream_*' -service/appsync: - - 'internal/service/appsync/**/*' - - 'website/**/appsync_*' -service/athena: - - 'internal/service/athena/**/*' - - 'website/**/athena_*' -service/auditmanager: - - 'internal/service/auditmanager/**/*' - - 'website/**/auditmanager_*' -service/autoscaling: - - 'internal/service/autoscaling/**/*' - - 'website/**/autoscaling_*' - - 'website/**/launch_configuration*' -service/autoscalingplans: - - 'internal/service/autoscalingplans/**/*' - - 'website/**/autoscalingplans_*' -service/backup: - - 'internal/service/backup/**/*' - - 'website/**/backup_*' -service/backupgateway: - - 'internal/service/backupgateway/**/*' - - 'website/**/backupgateway_*' -service/batch: - - 'internal/service/batch/**/*' - - 'website/**/batch_*' -service/billingconductor: - - 'internal/service/billingconductor/**/*' - - 'website/**/billingconductor_*' -service/braket: - - 'internal/service/braket/**/*' - - 'website/**/braket_*' -service/budgets: - - 'internal/service/budgets/**/*' - - 'website/**/budgets_*' -service/ce: - - 'internal/service/ce/**/*' - - 'website/**/ce_*' -service/chime: - - 'internal/service/chime/**/*' - - 'website/**/chime_*' -service/chimesdkidentity: - - 'internal/service/chimesdkidentity/**/*' - - 'website/**/chimesdkidentity_*' -service/chimesdkmeetings: - - 'internal/service/chimesdkmeetings/**/*' - - 'website/**/chimesdkmeetings_*' -service/chimesdkmessaging: - - 'internal/service/chimesdkmessaging/**/*' - - 'website/**/chimesdkmessaging_*' -service/cloud9: - - 'internal/service/cloud9/**/*' - - 'website/**/cloud9_*' -service/cloudcontrol: - - 'internal/service/cloudcontrol/**/*' - - 'website/**/cloudcontrolapi_*' -service/clouddirectory: - - 'internal/service/clouddirectory/**/*' - - 'website/**/clouddirectory_*' -service/cloudformation: - - 'internal/service/cloudformation/**/*' - - 'website/**/cloudformation_*' -service/cloudfront: - - 'internal/service/cloudfront/**/*' - - 'website/**/cloudfront_*' -service/cloudhsmv2: - - 'internal/service/cloudhsmv2/**/*' - - 'website/**/cloudhsm*' -service/cloudsearch: - - 'internal/service/cloudsearch/**/*' - - 'website/**/cloudsearch_*' -service/cloudsearchdomain: - - 'internal/service/cloudsearchdomain/**/*' - - 'website/**/cloudsearchdomain_*' -service/cloudtrail: - - 'internal/service/cloudtrail/**/*' - - 'website/**/cloudtrail*' -service/cloudwatch: - - 'internal/service/cloudwatch/**/*' - - 'website/**/cloudwatch_dashboard*' - - 'website/**/cloudwatch_metric_*' - - 'website/**/cloudwatch_composite_*' -service/codeartifact: - - 'internal/service/codeartifact/**/*' - - 'website/**/codeartifact_*' -service/codebuild: - - 'internal/service/codebuild/**/*' - - 'website/**/codebuild_*' -service/codecommit: - - 'internal/service/codecommit/**/*' - - 'website/**/codecommit_*' -service/codeguruprofiler: - - 'internal/service/codeguruprofiler/**/*' - - 'website/**/codeguruprofiler_*' -service/codegurureviewer: - - 'internal/service/codegurureviewer/**/*' - - 'website/**/codegurureviewer_*' -service/codepipeline: - - 'internal/service/codepipeline/**/*' - - 'website/**/codepipeline*' -service/codestar: - - 'internal/service/codestar/**/*' - - 'website/**/codestar_*' -service/codestarconnections: - - 'internal/service/codestarconnections/**/*' - - 'website/**/codestarconnections_*' -service/codestarnotifications: - - 'internal/service/codestarnotifications/**/*' - - 'website/**/codestarnotifications_*' -service/cognitoidentity: - - 'internal/service/cognitoidentity/**/*' - - 'website/**/cognito_identity_pool*' -service/cognitoidp: - - 'internal/service/cognitoidp/**/*' - - 'website/**/cognito_identity_provider*' - - 'website/**/cognito_resource_*' - - 'website/**/cognito_user*' -service/cognitosync: - - 'internal/service/cognitosync/**/*' - - 'website/**/cognitosync_*' -service/comprehend: - - 'internal/service/comprehend/**/*' - - 'website/**/comprehend_*' -service/comprehendmedical: - - 'internal/service/comprehendmedical/**/*' - - 'website/**/comprehendmedical_*' -service/computeoptimizer: - - 'internal/service/computeoptimizer/**/*' - - 'website/**/computeoptimizer_*' -service/configservice: - - 'internal/service/configservice/**/*' - - 'website/**/config_*' -service/connect: - - 'internal/service/connect/**/*' - - 'website/**/connect_*' -service/connectcontactlens: - - 'internal/service/connectcontactlens/**/*' - - 'website/**/connectcontactlens_*' -service/connectparticipant: - - 'internal/service/connectparticipant/**/*' - - 'website/**/connectparticipant_*' -service/cur: - - 'internal/service/cur/**/*' - - 'website/**/cur_*' -service/customerprofiles: - - 'internal/service/customerprofiles/**/*' - - 'website/**/customerprofiles_*' -service/databrew: - - 'internal/service/databrew/**/*' - - 'website/**/databrew_*' -service/dataexchange: - - 'internal/service/dataexchange/**/*' - - 'website/**/dataexchange_*' -service/datapipeline: - - 'internal/service/datapipeline/**/*' - - 'website/**/datapipeline_*' -service/datasync: - - 'internal/service/datasync/**/*' - - 'website/**/datasync_*' -service/dax: - - 'internal/service/dax/**/*' - - 'website/**/dax_*' -service/deploy: - - 'internal/service/deploy/**/*' - - 'website/**/codedeploy_*' -service/detective: - - 'internal/service/detective/**/*' - - 'website/**/detective_*' -service/devicefarm: - - 'internal/service/devicefarm/**/*' - - 'website/**/devicefarm_*' -service/devopsguru: - - 'internal/service/devopsguru/**/*' - - 'website/**/devopsguru_*' -service/directconnect: - - 'internal/service/directconnect/**/*' - - 'website/**/dx_*' -service/discovery: - - 'internal/service/discovery/**/*' - - 'website/**/discovery_*' -service/dlm: - - 'internal/service/dlm/**/*' - - 'website/**/dlm_*' -service/dms: - - 'internal/service/dms/**/*' - - 'website/**/dms_*' -service/docdb: - - 'internal/service/docdb/**/*' - - 'website/**/docdb_*' -service/drs: - - 'internal/service/drs/**/*' - - 'website/**/drs_*' -service/ds: - - 'internal/service/ds/**/*' - - 'website/**/directory_service_*' -service/dynamodb: - - 'internal/service/dynamodb/**/*' - - 'website/**/dynamodb_*' -service/dynamodbstreams: - - 'internal/service/dynamodbstreams/**/*' - - 'website/**/dynamodbstreams_*' -service/ebs: - - 'internal/service/ebs/**/*' - - 'website/**/changewhenimplemented*' -service/ec2: - - 'internal/service/ec2/**/ec2_*' - - 'website/**/ami*' - - 'website/**/availability_zone*' - - 'website/**/ec2_availability_*' - - 'website/**/ec2_capacity_*' - - 'website/**/ec2_fleet*' - - 'website/**/ec2_host*' - - 'website/**/ec2_instance_*' - - 'website/**/ec2_serial_*' - - 'website/**/ec2_spot_*' - - 'website/**/ec2_tag*' - - 'website/**/eip*' - - 'website/**/instance*' - - 'website/**/key_pair*' - - 'website/**/launch_template*' - - 'website/**/placement_group*' - - 'website/**/spot_*' -service/ec2ebs: - - 'internal/service/ec2/**/ebs_*' - - 'website/**/ebs_*' - - 'website/**/volume_attachment*' - - 'website/**/snapshot_*' -service/ec2instanceconnect: - - 'internal/service/ec2instanceconnect/**/*' - - 'website/**/ec2instanceconnect_*' -service/ec2outposts: - - 'internal/service/ec2/**/outposts_*' - - 'website/**/ec2_coip_pool*' - - 'website/**/ec2_local_gateway*' -service/ecr: - - 'internal/service/ecr/**/*' - - 'website/**/ecr_*' -service/ecrpublic: - - 'internal/service/ecrpublic/**/*' - - 'website/**/ecrpublic_*' -service/ecs: - - 'internal/service/ecs/**/*' - - 'website/**/ecs_*' -service/efs: - - 'internal/service/efs/**/*' - - 'website/**/efs_*' -service/eks: - - 'internal/service/eks/**/*' - - 'website/**/eks_*' -service/elasticache: - - 'internal/service/elasticache/**/*' - - 'website/**/elasticache_*' -service/elasticbeanstalk: - - 'internal/service/elasticbeanstalk/**/*' - - 'website/**/elastic_beanstalk_*' -service/elasticinference: - - 'internal/service/elasticinference/**/*' - - 'website/**/elasticinference_*' -service/elasticsearch: - - 'internal/service/elasticsearch/**/*' - - 'website/**/elasticsearch_*' -service/elastictranscoder: - - 'internal/service/elastictranscoder/**/*' - - 'website/**/elastictranscoder_*' -service/elb: - - 'internal/service/elb/**/*' - - 'website/**/app_cookie_stickiness_policy*' - - 'website/**/elb*' - - 'website/**/lb_cookie_stickiness_policy*' - - 'website/**/lb_ssl_negotiation_policy*' - - 'website/**/load_balancer*' - - 'website/**/proxy_protocol_policy*' -service/elbv2: - - 'internal/service/elbv2/**/*' - - 'website/**/lb\.*' - - 'website/**/lb_listener*' - - 'website/**/lb_target_group*' -service/emr: - - 'internal/service/emr/**/*' - - 'website/**/emr_*' -service/emrcontainers: - - 'internal/service/emrcontainers/**/*' - - 'website/**/emrcontainers_*' -service/events: - - 'internal/service/events/**/*' - - 'website/**/cloudwatch_event_*' -service/evidently: - - 'internal/service/evidently/**/*' - - 'website/**/evidently_*' -service/finspace: - - 'internal/service/finspace/**/*' - - 'website/**/finspace_*' -service/finspacedata: - - 'internal/service/finspacedata/**/*' - - 'website/**/finspacedata_*' -service/firehose: - - 'internal/service/firehose/**/*' - - 'website/**/kinesis_firehose_*' -service/fis: - - 'internal/service/fis/**/*' - - 'website/**/fis_*' -service/fms: - - 'internal/service/fms/**/*' - - 'website/**/fms_*' -service/forecast: - - 'internal/service/forecast/**/*' - - 'website/**/forecast_*' -service/forecastquery: - - 'internal/service/forecastquery/**/*' - - 'website/**/forecastquery_*' -service/frauddetector: - - 'internal/service/frauddetector/**/*' - - 'website/**/frauddetector_*' -service/fsx: - - 'internal/service/fsx/**/*' - - 'website/**/fsx_*' -service/gamelift: - - 'internal/service/gamelift/**/*' - - 'website/**/gamelift_*' -service/glacier: - - 'internal/service/glacier/**/*' - - 'website/**/glacier_*' -service/globalaccelerator: - - 'internal/service/globalaccelerator/**/*' - - 'website/**/globalaccelerator_*' -service/glue: - - 'internal/service/glue/**/*' - - 'website/**/glue_*' -service/grafana: - - 'internal/service/grafana/**/*' - - 'website/**/grafana_*' -service/greengrass: - - 'internal/service/greengrass/**/*' - - 'website/**/greengrass_*' -service/greengrassv2: - - 'internal/service/greengrassv2/**/*' - - 'website/**/greengrassv2_*' -service/groundstation: - - 'internal/service/groundstation/**/*' - - 'website/**/groundstation_*' -service/guardduty: - - 'internal/service/guardduty/**/*' - - 'website/**/guardduty_*' -service/health: - - 'internal/service/health/**/*' - - 'website/**/health_*' -service/healthlake: - - 'internal/service/healthlake/**/*' - - 'website/**/healthlake_*' -service/honeycode: - - 'internal/service/honeycode/**/*' - - 'website/**/honeycode_*' -service/iam: - - 'internal/service/iam/**/*' - - 'website/**/iam_*' -service/identitystore: - - 'internal/service/identitystore/**/*' - - 'website/**/identitystore_*' -service/imagebuilder: - - 'internal/service/imagebuilder/**/*' - - 'website/**/imagebuilder_*' -service/inspector: - - 'internal/service/inspector/**/*' - - 'website/**/inspector_*' -service/inspector2: - - 'internal/service/inspector2/**/*' - - 'website/**/inspector2_*' -service/iot: - - 'internal/service/iot/**/*' - - 'website/**/iot_*' -service/iot1clickdevices: - - 'internal/service/iot1clickdevices/**/*' - - 'website/**/iot1clickdevices_*' -service/iot1clickprojects: - - 'internal/service/iot1clickprojects/**/*' - - 'website/**/iot1clickprojects_*' -service/iotanalytics: - - 'internal/service/iotanalytics/**/*' - - 'website/**/iotanalytics_*' -service/iotdata: - - 'internal/service/iotdata/**/*' - - 'website/**/iotdata_*' -service/iotdeviceadvisor: - - 'internal/service/iotdeviceadvisor/**/*' - - 'website/**/iotdeviceadvisor_*' -service/iotevents: - - 'internal/service/iotevents/**/*' - - 'website/**/iotevents_*' -service/ioteventsdata: - - 'internal/service/ioteventsdata/**/*' - - 'website/**/ioteventsdata_*' -service/iotfleethub: - - 'internal/service/iotfleethub/**/*' - - 'website/**/iotfleethub_*' -service/iotjobsdata: - - 'internal/service/iotjobsdata/**/*' - - 'website/**/iotjobsdata_*' -service/iotsecuretunneling: - - 'internal/service/iotsecuretunneling/**/*' - - 'website/**/iotsecuretunneling_*' -service/iotsitewise: - - 'internal/service/iotsitewise/**/*' - - 'website/**/iotsitewise_*' -service/iotthingsgraph: - - 'internal/service/iotthingsgraph/**/*' - - 'website/**/iotthingsgraph_*' -service/iottwinmaker: - - 'internal/service/iottwinmaker/**/*' - - 'website/**/iottwinmaker_*' -service/iotwireless: - - 'internal/service/iotwireless/**/*' - - 'website/**/iotwireless_*' -service/ipam: - - 'internal/service/ec2/**/ipam_*' - - 'website/**/vpc_ipam*' -service/ivs: - - 'internal/service/ivs/**/*' - - 'website/**/ivs_*' -service/kafka: - - 'internal/service/kafka/**/*' - - 'website/**/msk_*' -service/kafkaconnect: - - 'internal/service/kafkaconnect/**/*' - - 'website/**/mskconnect_*' -service/kendra: - - 'internal/service/kendra/**/*' - - 'website/**/kendra_*' -service/keyspaces: - - 'internal/service/keyspaces/**/*' - - 'website/**/keyspaces_*' -service/kinesis: - - 'internal/service/kinesis/**/*' - - 'website/**/kinesis_stream*' -service/kinesisanalytics: - - 'internal/service/kinesisanalytics/**/*' - - 'website/**/kinesis_analytics_*' -service/kinesisanalyticsv2: - - 'internal/service/kinesisanalyticsv2/**/*' - - 'website/**/kinesisanalyticsv2_*' -service/kinesisvideo: - - 'internal/service/kinesisvideo/**/*' - - 'website/**/kinesis_video_*' -service/kinesisvideoarchivedmedia: - - 'internal/service/kinesisvideoarchivedmedia/**/*' - - 'website/**/kinesisvideoarchivedmedia_*' -service/kinesisvideomedia: - - 'internal/service/kinesisvideomedia/**/*' - - 'website/**/kinesisvideomedia_*' -service/kinesisvideosignaling: - - 'internal/service/kinesisvideosignaling/**/*' - - 'website/**/kinesisvideosignaling_*' -service/kms: - - 'internal/service/kms/**/*' - - 'website/**/kms_*' -service/lakeformation: - - 'internal/service/lakeformation/**/*' - - 'website/**/lakeformation_*' -service/lambda: - - 'internal/service/lambda/**/*' - - 'website/**/lambda_*' -service/lexmodels: - - 'internal/service/lexmodels/**/*' - - 'website/**/lex_*' -service/lexmodelsv2: - - 'internal/service/lexmodelsv2/**/*' - - 'website/**/lexmodelsv2_*' -service/lexruntime: - - 'internal/service/lexruntime/**/*' - - 'website/**/lexruntime_*' -service/lexruntimev2: - - 'internal/service/lexruntimev2/**/*' - - 'website/**/lexruntimev2_*' -service/licensemanager: - - 'internal/service/licensemanager/**/*' - - 'website/**/licensemanager_*' -service/lightsail: - - 'internal/service/lightsail/**/*' - - 'website/**/lightsail_*' -service/location: - - 'internal/service/location/**/*' - - 'website/**/location_*' -service/logs: - - 'internal/service/logs/**/*' - - 'website/**/cloudwatch_log_*' - - 'website/**/cloudwatch_query_*' -service/lookoutequipment: - - 'internal/service/lookoutequipment/**/*' - - 'website/**/lookoutequipment_*' -service/lookoutmetrics: - - 'internal/service/lookoutmetrics/**/*' - - 'website/**/lookoutmetrics_*' -service/lookoutvision: - - 'internal/service/lookoutvision/**/*' - - 'website/**/lookoutvision_*' -service/machinelearning: - - 'internal/service/machinelearning/**/*' - - 'website/**/machinelearning_*' -service/macie: - - 'internal/service/macie/**/*' - - 'website/**/macie_*' -service/macie2: - - 'internal/service/macie2/**/*' - - 'website/**/macie2_*' -service/managedblockchain: - - 'internal/service/managedblockchain/**/*' - - 'website/**/managedblockchain_*' -service/marketplacecatalog: - - 'internal/service/marketplacecatalog/**/*' - - 'website/**/marketplace_catalog_*' -service/marketplacecommerceanalytics: - - 'internal/service/marketplacecommerceanalytics/**/*' - - 'website/**/marketplacecommerceanalytics_*' -service/marketplaceentitlement: - - 'internal/service/marketplaceentitlement/**/*' - - 'website/**/marketplaceentitlement_*' -service/marketplacemetering: - - 'internal/service/marketplacemetering/**/*' - - 'website/**/marketplacemetering_*' -service/mediaconnect: - - 'internal/service/mediaconnect/**/*' - - 'website/**/media_connect_*' -service/mediaconvert: - - 'internal/service/mediaconvert/**/*' - - 'website/**/media_convert_*' -service/medialive: - - 'internal/service/medialive/**/*' - - 'website/**/media_live_*' -service/mediapackage: - - 'internal/service/mediapackage/**/*' - - 'website/**/media_package_*' -service/mediapackagevod: - - 'internal/service/mediapackagevod/**/*' - - 'website/**/mediapackagevod_*' -service/mediastore: - - 'internal/service/mediastore/**/*' - - 'website/**/media_store_*' -service/mediastoredata: - - 'internal/service/mediastoredata/**/*' - - 'website/**/mediastoredata_*' -service/mediatailor: - - 'internal/service/mediatailor/**/*' - - 'website/**/media_tailor_*' -service/memorydb: - - 'internal/service/memorydb/**/*' - - 'website/**/memorydb_*' -service/meta: - - 'internal/service/meta/**/*' - - 'website/**/arn*' - - 'website/**/ip_ranges*' - - 'website/**/billing_service_account*' - - 'website/**/default_tags*' - - 'website/**/partition*' - - 'website/**/region*' - - 'website/**/service\.*' -service/mgh: - - 'internal/service/mgh/**/*' - - 'website/**/mgh_*' -service/mgn: - - 'internal/service/mgn/**/*' - - 'website/**/mgn_*' -service/migrationhubconfig: - - 'internal/service/migrationhubconfig/**/*' - - 'website/**/migrationhubconfig_*' -service/migrationhubrefactorspaces: - - 'internal/service/migrationhubrefactorspaces/**/*' - - 'website/**/migrationhubrefactorspaces_*' -service/migrationhubstrategy: - - 'internal/service/migrationhubstrategy/**/*' - - 'website/**/migrationhubstrategy_*' -service/mobile: - - 'internal/service/mobile/**/*' - - 'website/**/mobile_*' -service/mq: - - 'internal/service/mq/**/*' - - 'website/**/mq_*' -service/mturk: - - 'internal/service/mturk/**/*' - - 'website/**/mturk_*' -service/mwaa: - - 'internal/service/mwaa/**/*' - - 'website/**/mwaa_*' -service/neptune: - - 'internal/service/neptune/**/*' - - 'website/**/neptune_*' -service/networkfirewall: - - 'internal/service/networkfirewall/**/*' - - 'website/**/networkfirewall_*' -service/networkmanager: - - 'internal/service/networkmanager/**/*' - - 'website/**/networkmanager_*' -service/nimble: - - 'internal/service/nimble/**/*' - - 'website/**/nimble_*' -service/opensearch: - - 'internal/service/opensearch/**/*' - - 'website/**/opensearch_*' -service/opsworks: - - 'internal/service/opsworks/**/*' - - 'website/**/opsworks_*' -service/opsworkscm: - - 'internal/service/opsworkscm/**/*' - - 'website/**/opsworkscm_*' -service/organizations: - - 'internal/service/organizations/**/*' - - 'website/**/organizations_*' -service/outposts: - - 'internal/service/outposts/**/*' - - 'website/**/outposts_*' -service/paas: - - 'internal/service/paas/**/*' - - 'website/**/paas_*' -service/panorama: - - 'internal/service/panorama/**/*' - - 'website/**/panorama_*' -service/personalize: - - 'internal/service/personalize/**/*' - - 'website/**/personalize_*' -service/personalizeevents: - - 'internal/service/personalizeevents/**/*' - - 'website/**/personalizeevents_*' -service/personalizeruntime: - - 'internal/service/personalizeruntime/**/*' - - 'website/**/personalizeruntime_*' -service/pi: - - 'internal/service/pi/**/*' - - 'website/**/pi_*' -service/pinpoint: - - 'internal/service/pinpoint/**/*' - - 'website/**/pinpoint_*' -service/pinpointemail: - - 'internal/service/pinpointemail/**/*' - - 'website/**/pinpointemail_*' -service/pinpointsmsvoice: - - 'internal/service/pinpointsmsvoice/**/*' - - 'website/**/pinpointsmsvoice_*' -service/polly: - - 'internal/service/polly/**/*' - - 'website/**/polly_*' -service/pricing: - - 'internal/service/pricing/**/*' - - 'website/**/pricing_*' -service/proton: - - 'internal/service/proton/**/*' - - 'website/**/proton_*' -service/qldb: - - 'internal/service/qldb/**/*' - - 'website/**/qldb_*' -service/qldbsession: - - 'internal/service/qldbsession/**/*' - - 'website/**/qldbsession_*' -service/quicksight: - - 'internal/service/quicksight/**/*' - - 'website/**/quicksight_*' -service/ram: - - 'internal/service/ram/**/*' - - 'website/**/ram_*' -service/rbin: - - 'internal/service/rbin/**/*' - - 'website/**/rbin_*' -service/rds: - - 'internal/service/rds/**/*' - - 'website/**/rds_*' - - 'website/**/db_*' -service/rdsdata: - - 'internal/service/rdsdata/**/*' - - 'website/**/rdsdata_*' -service/redshift: - - 'internal/service/redshift/**/*' - - 'website/**/redshift_*' -service/redshiftdata: - - 'internal/service/redshiftdata/**/*' - - 'website/**/redshiftdata_*' -service/rekognition: - - 'internal/service/rekognition/**/*' - - 'website/**/rekognition_*' -service/resiliencehub: - - 'internal/service/resiliencehub/**/*' - - 'website/**/resiliencehub_*' -service/resourcegroups: - - 'internal/service/resourcegroups/**/*' - - 'website/**/resourcegroups_*' -service/resourcegroupstaggingapi: - - 'internal/service/resourcegroupstaggingapi/**/*' - - 'website/**/resourcegroupstaggingapi_*' -service/robomaker: - - 'internal/service/robomaker/**/*' - - 'website/**/robomaker_*' -service/route53: - - 'internal/service/route53/**/*' - - 'website/**/route53_delegation_*' - - 'website/**/route53_health_*' - - 'website/**/route53_hosted_*' - - 'website/**/route53_key_*' - - 'website/**/route53_query_*' - - 'website/**/route53_record*' - - 'website/**/route53_traffic_*' - - 'website/**/route53_vpc_*' - - 'website/**/route53_zone*' -service/route53domains: - - 'internal/service/route53domains/**/*' - - 'website/**/route53domains_*' -service/route53recoverycluster: - - 'internal/service/route53recoverycluster/**/*' - - 'website/**/route53recoverycluster_*' -service/route53recoverycontrolconfig: - - 'internal/service/route53recoverycontrolconfig/**/*' - - 'website/**/route53recoverycontrolconfig_*' -service/route53recoveryreadiness: - - 'internal/service/route53recoveryreadiness/**/*' - - 'website/**/route53recoveryreadiness_*' -service/route53resolver: - - 'internal/service/route53resolver/**/*' - - 'website/**/route53_resolver_*' -service/rum: - - 'internal/service/rum/**/*' - - 'website/**/rum_*' -service/s3: - - 'internal/service/s3/**/*' - - 'website/**/s3_bucket*' - - 'website/**/s3_object*' - - 'website/**/canonical_user_id*' -service/s3control: - - 'internal/service/s3control/**/*' - - 'website/**/s3control*' - - 'website/**/s3_account_*' - - 'website/**/s3_access_*' -service/s3outposts: - - 'internal/service/s3outposts/**/*' - - 'website/**/s3outposts_*' -service/sagemaker: - - 'internal/service/sagemaker/**/*' - - 'website/**/sagemaker_*' -service/sagemakera2iruntime: - - 'internal/service/sagemakera2iruntime/**/*' - - 'website/**/sagemakera2iruntime_*' -service/sagemakeredge: - - 'internal/service/sagemakeredge/**/*' - - 'website/**/sagemakeredge_*' -service/sagemakerfeaturestoreruntime: - - 'internal/service/sagemakerfeaturestoreruntime/**/*' - - 'website/**/sagemakerfeaturestoreruntime_*' -service/sagemakerruntime: - - 'internal/service/sagemakerruntime/**/*' - - 'website/**/sagemakerruntime_*' -service/savingsplans: - - 'internal/service/savingsplans/**/*' - - 'website/**/savingsplans_*' -service/schemas: - - 'internal/service/schemas/**/*' - - 'website/**/schemas_*' -service/secretsmanager: - - 'internal/service/secretsmanager/**/*' - - 'website/**/secretsmanager_*' -service/securityhub: - - 'internal/service/securityhub/**/*' - - 'website/**/securityhub_*' -service/serverlessrepo: - - 'internal/service/serverlessrepo/**/*' - - 'website/**/serverlessapplicationrepository_*' -service/servicecatalog: - - 'internal/service/servicecatalog/**/*' - - 'website/**/servicecatalog_*' -service/servicecatalogappregistry: - - 'internal/service/servicecatalogappregistry/**/*' - - 'website/**/servicecatalogappregistry_*' -service/servicediscovery: - - 'internal/service/servicediscovery/**/*' - - 'website/**/service_discovery_*' -service/servicequotas: - - 'internal/service/servicequotas/**/*' - - 'website/**/servicequotas_*' -service/ses: - - 'internal/service/ses/**/*' - - 'website/**/ses_*' -service/sesv2: - - 'internal/service/sesv2/**/*' - - 'website/**/sesv2_*' -service/sfn: - - 'internal/service/sfn/**/*' - - 'website/**/sfn_*' -service/shield: - - 'internal/service/shield/**/*' - - 'website/**/shield_*' -service/signer: - - 'internal/service/signer/**/*' - - 'website/**/signer_*' -service/simpledb: - - 'internal/service/simpledb/**/*' - - 'website/**/simpledb_*' -service/sms: - - 'internal/service/sms/**/*' - - 'website/**/sms_*' -service/snowball: - - 'internal/service/snowball/**/*' - - 'website/**/snowball_*' -service/snowdevicemanagement: - - 'internal/service/snowdevicemanagement/**/*' - - 'website/**/snowdevicemanagement_*' -service/sns: - - 'internal/service/sns/**/*' - - 'website/**/sns_*' -service/sqs: - - 'internal/service/sqs/**/*' - - 'website/**/sqs_*' -service/ssm: - - 'internal/service/ssm/**/*' - - 'website/**/ssm_*' -service/ssmcontacts: - - 'internal/service/ssmcontacts/**/*' - - 'website/**/ssmcontacts_*' -service/ssmincidents: - - 'internal/service/ssmincidents/**/*' - - 'website/**/ssmincidents_*' -service/sso: - - 'internal/service/sso/**/*' - - 'website/**/sso_*' -service/ssoadmin: - - 'internal/service/ssoadmin/**/*' - - 'website/**/ssoadmin_*' -service/ssooidc: - - 'internal/service/ssooidc/**/*' - - 'website/**/ssooidc_*' -service/storagegateway: - - 'internal/service/storagegateway/**/*' - - 'website/**/storagegateway_*' -service/sts: - - 'internal/service/sts/**/*' - - 'website/**/caller_identity*' -service/support: - - 'internal/service/support/**/*' - - 'website/**/support_*' -service/swf: - - 'internal/service/swf/**/*' - - 'website/**/swf_*' -service/synthetics: - - 'internal/service/synthetics/**/*' - - 'website/**/synthetics_*' -service/textract: - - 'internal/service/textract/**/*' - - 'website/**/textract_*' -service/timestreamquery: - - 'internal/service/timestreamquery/**/*' - - 'website/**/timestreamquery_*' -service/timestreamwrite: - - 'internal/service/timestreamwrite/**/*' - - 'website/**/timestreamwrite_*' -service/transcribe: - - 'internal/service/transcribe/**/*' - - 'website/**/transcribe_*' -service/transcribestreaming: - - 'internal/service/transcribestreaming/**/*' - - 'website/**/transcribestreaming_*' -service/transfer: - - 'internal/service/transfer/**/*' - - 'website/**/transfer_*' -service/transitgateway: - - 'internal/service/ec2/**/transitgateway_*' - - 'website/**/ec2_transit_gateway*' -service/translate: - - 'internal/service/translate/**/*' - - 'website/**/translate_*' -service/voiceid: - - 'internal/service/voiceid/**/*' - - 'website/**/voiceid_*' -service/vpc: - - 'internal/service/ec2/**/vpc_*' - - 'website/**/default_network_*' - - 'website/**/default_route_*' - - 'website/**/default_security_*' - - 'website/**/default_subnet*' - - 'website/**/default_vpc*' - - 'website/**/ec2_managed_*' - - 'website/**/ec2_network_*' - - 'website/**/ec2_subnet_*' - - 'website/**/ec2_traffic_*' - - 'website/**/egress_only_*' - - 'website/**/flow_log*' - - 'website/**/internet_gateway*' - - 'website/**/main_route_*' - - 'website/**/nat_*' - - 'website/**/network_*' - - 'website/**/prefix_list*' - - 'website/**/route_*' - - 'website/**/route\.*' - - 'website/**/security_group*' - - 'website/**/subnet*' - - 'website/**/vpc_dhcp_*' - - 'website/**/vpc_endpoint*' - - 'website/**/vpc_ipv*' - - 'website/**/vpc_peering_*' - - 'website/**/vpc\.*' - - 'website/**/vpcs\.*' -service/vpnclient: - - 'internal/service/ec2/**/vpnclient_*' - - 'website/**/ec2_client_vpn_*' -service/vpnsite: - - 'internal/service/ec2/**/vpnsite_*' - - 'website/**/customer_gateway*' - - 'website/**/vpn_*' -service/waf: - - 'internal/service/waf/**/*' - - 'website/**/waf_*' -service/wafregional: - - 'internal/service/wafregional/**/*' - - 'website/**/wafregional_*' -service/wafv2: - - 'internal/service/wafv2/**/*' - - 'website/**/wafv2_*' -service/wavelength: - - 'internal/service/ec2/**/wavelength_*' - - 'website/**/ec2_carrier_*' -service/wellarchitected: - - 'internal/service/wellarchitected/**/*' - - 'website/**/wellarchitected_*' -service/wisdom: - - 'internal/service/wisdom/**/*' - - 'website/**/wisdom_*' -service/workdocs: - - 'internal/service/workdocs/**/*' - - 'website/**/workdocs_*' -service/worklink: - - 'internal/service/worklink/**/*' - - 'website/**/worklink_*' -service/workmail: - - 'internal/service/workmail/**/*' - - 'website/**/workmail_*' -service/workmailmessageflow: - - 'internal/service/workmailmessageflow/**/*' - - 'website/**/workmailmessageflow_*' -service/workspaces: - - 'internal/service/workspaces/**/*' - - 'website/**/workspaces_*' -service/workspacesweb: - - 'internal/service/workspacesweb/**/*' - - 'website/**/workspacesweb_*' -service/xray: - - 'internal/service/xray/**/*' - - 'website/**/xray_*' diff --git a/.github/terraform_logo.svg b/.github/terraform_logo.svg deleted file mode 100644 index e98f8b71f11..00000000000 --- a/.github/terraform_logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/.github/workflows/README.md b/.github/workflows/README.md deleted file mode 100644 index 7ead0edfdea..00000000000 --- a/.github/workflows/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# GitHub Workflows - -## Using the `setup-terraform` action - -By default, the [`setup-terraform` action](https://github.com/hashicorp/setup-terraform) adds a wrapper for the `terraform` command that allows passing results to subsequent steps. This will prevent using the output of a `terraform` command as the input to another command in the same step. - -The wrapper can be turned off by using - -```yaml -steps: -- uses: hashicorp/setup-terraform@v1 - with: - terraform_wrapper: false -``` - -## Testing workflows locally - -The tool [`act`](https://github.com/nektos/act) can be used to test GitHub workflows locally. The default container [intentionally does not have feature parity](https://github.com/nektos/act#default-runners-are-intentionally-incomplete) with the containers used in GitHub due to the size of a full container. - -The file `./actrc` configures `act` to use a fully-featured container. - -## Running the static checker on workflows - -Check your code for errors in syntax, usage, etc. using the following directive found in the `GNUMakefile` in this repository. - -```console -% make gh-workflows-lint -``` diff --git a/.github/workflows/acctest-terraform-lint.yml b/.github/workflows/acctest-terraform-lint.yml deleted file mode 100644 index 5c5b457ec70..00000000000 --- a/.github/workflows/acctest-terraform-lint.yml +++ /dev/null @@ -1,83 +0,0 @@ -name: Acceptance Test Linting -on: - push: - branches: - - main - - "release/**" - pull_request: - paths: - - .github/workflows/acctest-terraform-lint.yml - - .go-version - - .tflint.hcl - - 'internal/service/**/*_test.go' - - scripts/validate-terraform.sh - - tools/go.mod - -jobs: - terrafmt: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - - run: cd tools && go install github.com/katbyte/terrafmt - - - run: | - # efs/file_system_test.go: argument name is format verb and replaced with quoted string. https://github.com/katbyte/terrafmt/issues/47 - # kms/grant_test.go: argument name is format verb and replaced with quoted string. https://github.com/katbyte/terrafmt/issues/47 - # sns/platform_application_test.go: argument name is format verb and replaced with quoted string. https://github.com/katbyte/terrafmt/issues/47 - find ./internal/service -type f -name '*_test.go' \ - | sort -u \ - | grep -v efs/file_system_test.go \ - | grep -v kms/grant_test.go \ - | grep -v sns/platform_application_test.go \ - | xargs -I {} terrafmt diff --check --fmtcompat {} - - validate-terraform: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - - run: cd tools && go install github.com/katbyte/terrafmt - - - run: cd tools && go install github.com/terraform-linters/tflint - - - uses: actions/cache@v3 - name: Cache plugin dir - with: - path: ~/.tflint.d/plugins - key: ${{ runner.os }}-tflint-${{ hashFiles('.tflint.hcl') }} - - - run: tflint --init - - - run: | - # efs/file_system_test.go: argument name is format verb and replaced with quoted string. https://github.com/katbyte/terrafmt/issues/47 - # kms/grant_test.go: argument name is format verb and replaced with quoted string. https://github.com/katbyte/terrafmt/issues/47 - # sns/platform_application_test.go: argument name is format verb and replaced with quoted string. https://github.com/katbyte/terrafmt/issues/47 - find ./internal/service -type f -name '*_test.go' \ - | sort -u \ - | grep -v efs/file_system_test.go \ - | grep -v kms/grant_test.go \ - | grep -v sns/platform_application_test.go \ - | ./scripts/validate-terraform.sh diff --git a/.github/workflows/autoremove_labels.yml b/.github/workflows/autoremove_labels.yml deleted file mode 100644 index ade5fbd5522..00000000000 --- a/.github/workflows/autoremove_labels.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Autoremove Labels - -on: - issues: - types: [closed] - pull_request_target: - types: [closed] - -jobs: - RemoveTriagingLabelsFromClosedIssueOrPR: - runs-on: ubuntu-latest - steps: - - name: Remove triaging labels from closed issues and PRs - uses: actions-ecosystem/action-remove-labels@v1 - with: - labels: | - needs-triage - waiting-response diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml deleted file mode 100644 index 63235dee16e..00000000000 --- a/.github/workflows/changelog.yml +++ /dev/null @@ -1,74 +0,0 @@ -name: CHANGELOG Checks -on: - push: - branches: - - main - - 'release/**' - pull_request: - paths: - - .changelog/* - - .go-version - - CHANGELOG.md - pull_request_target: - -env: - IN_MAINTAINER_LIST: ${{ contains(secrets.MAINTAINER_LIST, github.actor) }} - -jobs: - changes: - name: Filter Changes - runs-on: ubuntu-latest - outputs: - changed: ${{ steps.filter.outputs.changed }} - steps: - - uses: dorny/paths-filter@v2 - if: github.event_name == 'pull_request_target' && env.IN_MAINTAINER_LIST == 'false' - id: filter - with: - filters: | - changed: - - CHANGELOG.md - comment: - needs: changes - if: ${{ needs.changes.outputs.changed == 'true' }} - name: Comment - runs-on: ubuntu-latest - steps: - - name: Find Existing PR Comment - id: prc - uses: peter-evans/find-comment@v2 - with: - issue-number: ${{ github.event.pull_request.number }} - comment-author: "github-actions[bot]" - body-includes: "Please note that the `CHANGELOG.md` file contents are handled by the maintainers during merge" - - run: echo ${{ steps.prc.outputs.comment-id }} - - name: PR Comment - if: ${{ steps.prc.outputs.comment-id == '' }} - uses: peter-evans/create-or-update-comment@v2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - issue-number: ${{ github.event.pull_request.number }} - body: |- - Thank you for your contribution! :rocket: - - Please note that the `CHANGELOG.md` file contents are handled by the maintainers during merge. This is to prevent pull request merge conflicts, especially for contributions which may not be merged immediately. Please see the [Contributing Guide](https://github.com/hashicorp/terraform-provider-aws/blob/main/docs/contributing) for additional pull request review items. - - Remove any changes to the `CHANGELOG.md` file and commit them in this pull request to prevent delays with reviewing and potentially merging this pull request. - misspell: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - run: cd tools && go install github.com/client9/misspell/cmd/misspell - - run: misspell -error -source text CHANGELOG.md .changelog diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml deleted file mode 100644 index 3bbdc25894a..00000000000 --- a/.github/workflows/dependencies.yml +++ /dev/null @@ -1,77 +0,0 @@ -name: Dependency Checks - -on: - push: - branches: - - main - - 'release/**' - pull_request_target: - -env: - IN_MAINTAINER_LIST: ${{ contains(secrets.MAINTAINER_LIST, github.actor) }} - -jobs: - changes: - name: Filter Changes - runs-on: ubuntu-latest - outputs: - changed: ${{ steps.filter.outputs.changed }} - steps: - - uses: dorny/paths-filter@v2 - if: github.event_name == 'pull_request_target' && env.IN_MAINTAINER_LIST == 'false' - id: filter - with: - filters: | - changed: - - providerlint/** - - go.mod - - go.sum - comment: - needs: changes - if: ${{ needs.changes.outputs.changed == 'true' }} - name: Comment - runs-on: ubuntu-latest - steps: - - name: Find Existing PR Comment - id: prc - uses: peter-evans/find-comment@v2 - with: - issue-number: ${{ github.event.pull_request.number }} - comment-author: "github-actions[bot]" - body-includes: "Please note that typically Go dependency changes" - - run: echo ${{ steps.prc.outputs.comment-id }} - - name: PR Comment - if: ${{ steps.prc.outputs.comment-id == '' }} - uses: peter-evans/create-or-update-comment@v2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - issue-number: ${{ github.event.pull_request.number }} - body: |- - Thank you for your contribution! :rocket: - - Please note that typically Go dependency changes are handled in this repository by dependabot or the maintainers. This is to prevent pull request merge conflicts and further delay reviews of contributions. Remove any changes to the `go.mod` or `go.sum` files and commit them into this pull request. - - Additional details: - - * Check [open pull requests with the `dependencies` label](https://github.com/hashicorp/terraform-provider-aws/pulls?q=is%3Aopen+is%3Apr+label%3Adependencies) to view other dependency updates. - * If this pull request includes an update the AWS Go SDK (or any other dependency) version, only updates submitted via dependabot will be merged. This pull request will need to remove these changes and will need to be rebased after the existing dependency update via dependabot has been merged for this pull request to be reviewed. - * If this pull request is for supporting a new AWS service: - * Ensure the new AWS service changes are following the [Contributing Guide section on new services](https://github.com/hashicorp/terraform-provider-aws/blob/main/docs/contributing/contribution-checklists.md#new-service), in particular that the dependency addition and initial provider support are in a separate pull request from other changes (e.g. new resources). Contributions not following this item will not be reviewed until the changes are split. - * If this pull request is already a separate pull request from the above item, you can ignore this message. - go_mod: - name: go mod - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - - name: go mod - run: | - echo "==> Checking source code with go mod tidy..." - go mod tidy - git diff --exit-code -- go.mod go.sum || \ - (echo; echo "Unexpected difference in go.mod/go.sum files. Run 'go mod tidy' command or revert any go.mod/go.sum changes and commit."; exit 1) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml deleted file mode 100644 index 672c8ef27b0..00000000000 --- a/.github/workflows/documentation.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: Documentation Checks -on: - push: - branches: - - main - pull_request: - paths: - - .markdownlinkcheck.json - - .markdownlint.yml - - .github/workflows/documentation.yml - - .go-version - - docs/** - -jobs: - markdown-link-check: - runs-on: ubuntu-latest - env: - UV_THREADPOOL_SIZE: 128 - steps: - - uses: actions/checkout@v3 - - uses: YakDriver/md-check-links@v2.0.5 - with: - use-quiet-mode: 'yes' - use-verbose-mode: 'yes' - config-file: '.markdownlinkcheck.json' - folder-path: 'docs' - file-extension: '.md' - base-branch: "main" - check-modified-files-only: "yes" - markdown-lint: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: avto-dev/markdown-lint@v1 - with: - config: '.markdownlint.yml' - args: 'docs' - misspell: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - run: cd tools && go install github.com/client9/misspell/cmd/misspell - - run: misspell -error -source text docs/ diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 700f4b2d8a9..00000000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,88 +0,0 @@ -name: Examples Checks -on: - push: - branches: - - main - pull_request: - paths: - - .github/workflows/examples.yml - - .go-version - - .tflint.hcl - - examples/** - - tools/go.mod - -env: - AWS_DEFAULT_REGION: us-west-2 - -jobs: - validate-terraform: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - terraform_version: ["0.12.31", "1.0.6"] - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - uses: actions/cache@v3 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - - name: go build - run: go build -o terraform-plugin-dir/terraform-provider-aws_v99.99.99_x5 . - - name: override plugin - run: | - # For Terraform v0.12 - mkdir -p ~/.terraform.d/plugins - cp terraform-plugin-dir/terraform-provider-aws_v99.99.99_x5 ~/.terraform.d/plugins - # For newer versions - mkdir -p ~/.terraform.d/plugins/registry.terraform.io/hashicorp/aws/99.99.99/$(go env GOOS)_$(go env GOARCH)/ - cp terraform-plugin-dir/terraform-provider-aws_v99.99.99_x5 ~/.terraform.d/plugins/registry.terraform.io/hashicorp/aws/99.99.99/$(go env GOOS)_$(go env GOARCH)/ - - uses: hashicorp/setup-terraform@v2 - with: - terraform_version: ${{ matrix.terraform_version }} - # Needed to use the output of `terraform validate -json` - terraform_wrapper: false - - - name: install tflint - run: cd tools && go install github.com/terraform-linters/tflint - - - uses: actions/cache@v3 - name: Cache plugin dir - with: - path: ~/.tflint.d/plugins - key: ${{ runner.os }}-tflint-${{ hashFiles('.tflint.hcl') }} - - - name: terraform - run: | - TFLINT_CONFIG="$(pwd -P)/.tflint.hcl" - for DIR in $(find ./examples -type f -name '*.tf' -exec dirname {} \; | sort -u); do - pushd "$DIR" - if [ -f terraform.template.tfvars ]; then - cp terraform.template.tfvars terraform.tfvars - fi - echo; echo -e "\e[1;35m===> Initializing Example: $DIR <===\e[0m"; echo - terraform init - echo; echo -e "\e[1;35m===> Format Checking Example: $DIR <===\e[0m"; echo - terraform fmt -check - echo; echo -e "\e[1;35m===> Validating Example: $DIR <===\e[0m"; echo - # Catch errors - terraform validate - # Terraform syntax checks - # We don't want to exit on the first tflint error - set +e - tflint --config=$TFLINT_CONFIG \ - --enable-rule=terraform_deprecated_interpolation \ - --enable-rule=terraform_deprecated_index \ - --enable-rule=terraform_unused_declarations \ - --enable-rule=terraform_comment_syntax \ - --enable-rule=terraform_required_version - set -e - popd - done diff --git a/.github/workflows/firewatch.yml b/.github/workflows/firewatch.yml deleted file mode 100644 index 6b4faabefff..00000000000 --- a/.github/workflows/firewatch.yml +++ /dev/null @@ -1,26 +0,0 @@ - -on: - schedule: - - cron: '0 * * * *' - workflow_dispatch: -name: Firewatch -jobs: - FirewatchJob: - if: github.repository_owner == 'hashicorp' - runs-on: ubuntu-latest - steps: - - name: Firewatch - uses: breathingdust/firewatch@v2 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - alert_threshold: 10 - issue_age_months: 3 - slack_token: ${{ secrets.SLACK_BOT_TOKEN }} - slack_channel: ${{ secrets.SLACK_CHANNEL }} - - name: UploadArtifact - uses: actions/upload-artifact@v3 - with: - name: firewatch - path: firewatch.data - if-no-files-found: error - retention-days: 1 diff --git a/.github/workflows/generate_changelog.yml b/.github/workflows/generate_changelog.yml deleted file mode 100644 index f0005a79792..00000000000 --- a/.github/workflows/generate_changelog.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Generate CHANGELOG -on: - pull_request: - types: [closed] - workflow_dispatch: -jobs: - GenerateChangelog: - if: github.event.pull_request.merged || github.event_name == 'workflow_dispatch' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - run: cd tools && go install github.com/hashicorp/go-changelog/cmd/changelog-build - - run: ./scripts/generate-changelog.sh - - run: | - if [[ `git status --porcelain` ]]; then - if ${{github.event_name == 'workflow_dispatch'}}; then - MSG="Update CHANGELOG.md (Manual Trigger)" - else - MSG="Update CHANGELOG.md for #${{ github.event.pull_request.number }}" - fi - git config --local user.email changelogbot@hashicorp.com - git config --local user.name changelogbot - git add CHANGELOG.md - git commit -m "$MSG" - git push - fi diff --git a/.github/workflows/issue-comment-created.yml b/.github/workflows/issue-comment-created.yml deleted file mode 100644 index 98aa7686eaf..00000000000 --- a/.github/workflows/issue-comment-created.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Issue Comment Created Triage - -on: - issue_comment: - types: [created] - -env: - IN_MAINTAINER_LIST: ${{ contains(secrets.MAINTAINER_LIST, github.actor) }} - -jobs: - issue_comment_triage: - runs-on: ubuntu-latest - steps: - - uses: actions-ecosystem/action-remove-labels@v1 - if: github.event_name == 'issue_comment' && env.IN_MAINTAINER_LIST == 'false' - with: - labels: | - stale - waiting-response diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml deleted file mode 100644 index 1814796496b..00000000000 --- a/.github/workflows/issues.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Issue triage - -on: - issues: - types: [opened] - -env: - IN_MAINTAINER_LIST: ${{ contains(secrets.MAINTAINER_LIST, github.actor) }} - -jobs: - markIssuesForTriage: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Apply Issue needs-triage Label - if: github.event.action == 'opened' && env.IN_MAINTAINER_LIST == 'false' - uses: github/issue-labeler@v2.4 - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" - configuration-path: .github/labeler-issue-needs-triage.yml - enable-versioned-regex: 0 - - name: Apply Issue Triage Labels - uses: github/issue-labeler@v2.4 - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" - configuration-path: .github/labeler-issue-triage.yml - enable-versioned-regex: 0 diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml deleted file mode 100644 index 5e382605a37..00000000000 --- a/.github/workflows/lock.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: 'Lock Threads' - -on: - schedule: - - cron: '50 1 * * *' - -jobs: - lock: - runs-on: ubuntu-latest - steps: - - uses: dessant/lock-threads@v3 - with: - github-token: ${{ github.token }} - issue-comment: > - I'm going to lock this issue because it has been closed for _30 days_ ⏳. This helps our maintainers find and focus on the active issues. - - If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further. - issue-inactive-days: '30' - pr-comment: > - I'm going to lock this pull request because it has been closed for _30 days_ ⏳. This helps our maintainers find and focus on the active issues. - - If you have found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further. - pr-inactive-days: '30' diff --git a/.github/workflows/maintainer-edit.yml b/.github/workflows/maintainer-edit.yml deleted file mode 100644 index 3b29d99bc87..00000000000 --- a/.github/workflows/maintainer-edit.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: "Check Maintainer Edit Permissions" -on: - pull_request_target: - types: - - opened -jobs: - PermissionsCheck: - env: - MAINTAINER_CAN_MODIFY: ${{ github.event.pull_request.maintainer_can_modify }} - IN_MAINTAINER_LIST: ${{ contains( secrets.MAINTAINER_LIST, github.actor) }} - runs-on: ubuntu-latest - steps: - - name: Comment if maintainers cannot edit - if: ${{ ( env.IN_MAINTAINER_LIST == 'false' ) && ( env.MAINTAINER_CAN_MODIFY == 'false' ) }} - uses: peter-evans/create-or-update-comment@v2 - with: - issue-number: ${{ github.event.pull_request.number }} - body: | - Hey @${{ github.actor }} :wave: Thank you very much for your contribution! At times, our maintainers need to make direct edits to pull requests in order to help get it ready to be merged. Your current settings do not allow maintainers to make such edits. To help facilitate this, update your pull request to allow such edits as described in GitHub's [Allowing changes to a pull request branch created from a fork][1] documentation. (If you're using a fork owned by an organization, your organization may not allow you to change this setting. If that is the case, let us know.) - - [1]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork - diff --git a/.github/workflows/milestone-closed.yml b/.github/workflows/milestone-closed.yml deleted file mode 100644 index 2ac8888bf9f..00000000000 --- a/.github/workflows/milestone-closed.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Closed Milestones - -on: - milestone: - types: [closed] - -permissions: - issues: write - pull-requests: write - -jobs: - Comment: - runs-on: ubuntu-latest - steps: - - uses: bflad/action-milestone-comment@v1 - with: - body: | - This functionality has been released in [${{ github.event.milestone.title }} of the Terraform AWS Provider](https://github.com/${{ github.repository }}/blob/${{ github.event.milestone.title }}/CHANGELOG.md). Please see the [Terraform documentation on provider versioning](https://www.terraform.io/docs/configuration/providers.html#provider-versions) or reach out if you need any assistance upgrading. - - For further feature requests or bug reports with this functionality, please create a [new GitHub issue](https://github.com/${{ github.repository }}/issues/new/choose) following the template. Thank you! diff --git a/.github/workflows/milestone.yml b/.github/workflows/milestone.yml deleted file mode 100644 index 5a791ff9398..00000000000 --- a/.github/workflows/milestone.yml +++ /dev/null @@ -1,25 +0,0 @@ -on: - pull_request_target: - types: [closed] -name: Add merged PR and linked issues to current milestone of target branch -jobs: - AddMergedToCurrentMilestone: - if: github.event.pull_request.merged - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - ref: ${{ github.event.pull_request.base.ref }} - - id: get-current-milestone - run: | - echo ::set-output name=current_milestone::v$(head -1 CHANGELOG.md | cut -d " " -f 2) - - run: echo ${{ steps.get-current-milestone.outputs.current_milestone }} - - id: get-milestone-id - run: | - echo ::set-output name=milestone_id::$(curl -H "Authorization: Bearer ${{secrets.GITHUB_TOKEN}}" https://api.github.com/repos/${{ github.repository_owner }}/${{ github.event.repository.name }}/milestones | jq 'map(select(.title == "${{ steps.get-current-milestone.outputs.current_milestone }}"))[0].number') - - run: echo ${{ steps.get-milestone-id.outputs.milestone_id }} - - uses: breathingdust/current-milestone-action@v4 - with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - pull_number: ${{ github.event.pull_request.number }} - milestone_number: ${{ steps.get-milestone-id.outputs.milestone_id }} diff --git a/.github/workflows/post_publish.yml b/.github/workflows/post_publish.yml deleted file mode 100644 index 135e9b30a9f..00000000000 --- a/.github/workflows/post_publish.yml +++ /dev/null @@ -1,63 +0,0 @@ -name: Post Publish -on: - workflow_dispatch: - inputs: - release-tag: - type: string - description: 'Semver release tag e.g. v1.1.0' - required: true - workflow_run: - workflows: [Release] - types: - - completed -jobs: - on-success-or-workflow-dispatch: - runs-on: ubuntu-latest - if: github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' - outputs: - release-tag: ${{ steps.release-tag.outputs.tag }} - steps: - - if: github.event_name == 'workflow_run' - name: Download Artifact from Release workflow - uses: dawidd6/action-download-artifact@v2 - with: - workflow: release.yml - name: release-tag - - name: Output Release Tag - id: release-tag - run: | - if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then - echo ::set-output name=tag::${{ github.event.inputs.release-tag }} - else - value=`cat release-tag.data` - echo ::set-output name=tag::$value - fi - tidy-asana: - needs: [ on-success-or-workflow-dispatch ] - runs-on: ubuntu-latest - steps: - - name: Tidy Asana - uses: breathingdust/github-asana-tidy@v1 - with: - asana_pat: ${{ secrets.asana_pat }} - asana_target_section_gid: '1141945723817371' - asana_workspace_gid: '90955849329269' - asana_project_gid: '632425409545160' - asana_github_url_field_gid: '1134594824474912' - github_release_name: ${{ needs.on-success-or-workflow-dispatch.outputs.release-tag }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - archive-release-cards: - needs: [ on-success-or-workflow-dispatch ] - runs-on: ubuntu-latest - steps: - - name: Archive Release Cards - uses: breathingdust/github-project-archive@v1 - with: - github_done_column_id: 11513756 - github_release_name: ${{ needs.on-success-or-workflow-dispatch.outputs.release-tag }} - github_token: ${{ secrets.ORGSCOPED_GITHUB_TOKEN }} - on-failure: - runs-on: ubuntu-latest - if: ${{ github.event.workflow_run.conclusion == 'failure' }} - steps: - - run: echo 'The triggering workflow failed' diff --git a/.github/workflows/project.yml b/.github/workflows/project.yml deleted file mode 100644 index 9e8681b78e4..00000000000 --- a/.github/workflows/project.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Pull Request Project Automation - -on: - pull_request_target: - types: [opened, ready_for_review] - -env: - IN_MAINTAINER_LIST: ${{ contains(secrets.MAINTAINER_LIST, github.actor) }} - -jobs: - WorkingBoardReview: - runs-on: ubuntu-latest - steps: - - name: Move team PRs to Review column - uses: alex-page/github-project-automation-plus@v0.8.1 - if: env.IN_MAINTAINER_LIST == 'true' && github.event.pull_request.draft == false - with: - project: AWS Provider Working Board - column: Open Maintainer PR - repo-token: ${{ secrets.ORGSCOPED_GITHUB_TOKEN}} diff --git a/.github/workflows/pull_requests.yml b/.github/workflows/pull_requests.yml deleted file mode 100644 index 1b45d9f375b..00000000000 --- a/.github/workflows/pull_requests.yml +++ /dev/null @@ -1,61 +0,0 @@ -on: - - pull_request_target - -name: Pull Request Target (All types) - -env: - IN_MAINTAINER_LIST: ${{ contains(secrets.MAINTAINER_LIST, github.actor) }} - -jobs: - Labeler: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Apply Labels - uses: actions/labeler@v4 - with: - configuration-path: .github/labeler-pr-triage.yml - repo-token: ${{ secrets.GITHUB_TOKEN }} - NeedsTriageLabeler: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Apply needs-triage Label - uses: actions/labeler@v4 - if: github.event.action == 'opened' && env.IN_MAINTAINER_LIST == 'false' - with: - configuration-path: .github/labeler-pr-needs-triage.yml - repo-token: ${{ secrets.GITHUB_TOKEN }} - SizeLabeler: - runs-on: ubuntu-latest - steps: - # See also: https://github.com/CodelyTV/pr-size-labeler/pull/26 - - name: Apply Size Label - uses: bflad/pr-size-labeler@7df62b12a176513631973abfe151d2b6213c3f12 - with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - xs_label: 'size/XS' - xs_max_size: '30' - s_label: 'size/S' - s_max_size: '60' - m_label: 'size/M' - m_max_size: '150' - l_label: 'size/L' - l_max_size: '300' - xl_label: 'size/XL' - message_if_xl: '' - PullRequestComments: - runs-on: ubuntu-latest - steps: - - name: Add comment to add helpful context for new contributors - uses: actions/first-interaction@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - pr-message: |- - Welcome @${{github.actor}} :wave: - - It looks like this is your first Pull Request submission to the [Terraform AWS Provider](https://github.com/hashicorp/terraform-provider-aws)! If you haven’t already done so please make sure you have checked out our [CONTRIBUTING](https://github.com/hashicorp/terraform-provider-aws/blob/main/docs/contributing) guide and [FAQ](https://github.com/hashicorp/terraform-provider-aws/blob/main/docs/contributing/faq.md) to make sure your contribution is adhering to best practice and has all the necessary elements in place for a successful approval. - - Also take a look at our [FAQ](https://github.com/hashicorp/terraform-provider-aws/blob/main/docs/contributing/faq.md) which details how we prioritize Pull Requests for inclusion. - - Thanks again, and welcome to the community! :smiley: diff --git a/.github/workflows/regressions.yml b/.github/workflows/regressions.yml deleted file mode 100644 index 3a2341f6f70..00000000000 --- a/.github/workflows/regressions.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: "Regressions Slack Notifier" -on: - issues: - types: - - labeled - pull_request: - types: - - labeled -jobs: - slack-notification: - if: ${{ github.event.label.name == 'regression' }} - runs-on: ubuntu-latest - steps: - - name: Issues - if: ${{ github.event_name == 'issues' }} - uses: actions-ecosystem/action-slack-notifier@v1 - with: - slack_token: ${{ secrets.SLACK_BOT_TOKEN }} - channel: ${{ secrets.SLACK_CHANNEL }} - color: red - verbose: false - message: | - :warning: The following issue has been labeled as a regression: - https://github.com/${{ github.repository }}/issues/${{ github.event.issue.number }} - - name: Pull Requests - if: ${{ github.event_name == 'pull_request' }} - uses: actions-ecosystem/action-slack-notifier@v1 - with: - slack_token: ${{ secrets.SLACK_BOT_TOKEN }} - channel: ${{ secrets.SLACK_CHANNEL }} - color: red - verbose: false - message: | - :warning: The following pull request has been labeled as a regression: - https://github.com/${{ github.repository }}/pull/${{ github.event.pull_request.number }} - AddToWorkingBoard: - if: ${{ github.event.label.name == 'regression' }} - runs-on: ubuntu-latest - steps: - - name: Add regressions to To Do column - uses: alex-page/github-project-automation-plus@v0.8.1 - with: - project: AWS Provider Working Board - column: To Do - repo-token: ${{ secrets.ORGSCOPED_GITHUB_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 7fe49192fcb..00000000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,119 +0,0 @@ -name: Release - -on: - push: - tags: - - 'none' -# - '-v[0-9]+.[0-9]+.[0-9]+*' - -permissions: - contents: write - -jobs: - go-version: - runs-on: macos-latest - outputs: - version: ${{ steps.go-version.outputs.version }} - steps: - - uses: actions/checkout@v2 - - id: go-version - run: echo "::set-output name=version::$(cat ./.go-version)" - release-notes: - runs-on: macos-latest - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: Generate Release Notes - run: sed -n -e "1{/# /d;}" -e "2{/^$/d;}" -e "/# $(git describe --abbrev=0 --exclude="$(git describe --abbrev=0 --match='v*.*.*' --tags)" --match='v*.*.*' --tags | tr -d v)/q;p" CHANGELOG.md > release-notes.txt - - uses: actions/upload-artifact@v3 - with: - name: release-notes - path: release-notes.txt - retention-days: 1 - terraform-provider-release: - name: 'Terraform Provider Release' - needs: [go-version, release-notes] - uses: hashicorp/ghaction-terraform-provider-release/.github/workflows/hashicorp.yml@v2 - secrets: - hc-releases-key-prod: '${{ secrets.HC_RELEASES_KEY_PROD }}' - hc-releases-key-staging: '${{ secrets.HC_RELEASES_KEY_STAGING }}' - hc-releases-github-token: '${{ secrets.HASHI_RELEASES_GITHUB_TOKEN }}' - hc-releases-terraform-registry-sync-token: '${{ secrets.TF_PROVIDER_RELEASE_TERRAFORM_REGISTRY_SYNC_TOKEN }}' - setup-signore-github-token: '${{ secrets.HASHI_SIGNORE_GITHUB_TOKEN }}' - signore-client-id: '${{ secrets.SIGNORE_CLIENT_ID }}' - signore-client-secret: '${{ secrets.SIGNORE_CLIENT_SECRET }}' - hc-releases-host-staging: '${{ secrets.HC_RELEASES_HOST_STAGING }}' - hc-releases-host-prod: '${{ secrets.HC_RELEASES_HOST_PROD }}' - with: - goreleaser-release-args: --timeout 2h - release-notes: true - setup-go-version: '${{ needs.go-version.outputs.version }}' - # Product Version (e.g. v1.2.3 or github.ref_name) - product-version: '${{ github.ref_name }}' - highest-version-tag: - needs: [ terraform-provider-release ] - runs-on: macos-latest - outputs: - tag: ${{ steps.highest-version-tag.outputs.tag }} - steps: - - uses: actions/checkout@v2 - with: - # Allow tag to be fetched when ref is a commit - fetch-depth: 0 - - name: Output highest version tag - id: highest-version-tag - run: | - HIGHEST=$(git tag | sort -V | tail -1) - echo ::set-output name=tag::$HIGHEST - changelog-newversion: - needs: [terraform-provider-release, highest-version-tag] - # write new changelog header only if release tag is the $HIGHEST i.e. exists on main - # and not a backport release branch (e.g. release/3.x). This results in - # manually updating the CHANGELOG header if releasing from the non-default branch. - # TODO: find a more deterministic way to determine release branch from tag commit - if: github.ref_name == needs.highest-version-tag.outputs.tag - runs-on: macos-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: main - - name: Update Changelog Header - run: | - CHANGELOG_FILE_NAME="CHANGELOG.md" - PREVIOUS_RELEASE_TAG=${{ github.ref_name }} - - # Add Release Date - RELEASE_DATE=`date +%B' '%e', '%Y` - sed -i -e "1 s/Unreleased/$RELEASE_DATE/" $CHANGELOG_FILE_NAME - - # Prepend next release line - echo Previous release is: $PREVIOUS_RELEASE_TAG - - NEW_RELEASE_LINE=$(echo $PREVIOUS_RELEASE_TAG | awk -F. '{ - $1 = substr($1,2) - $2 += 1 - printf("%s.%01d.0\n\n", $1, $2); - }') - - echo New minor version is: v$NEW_RELEASE_LINE - - echo -e "## $NEW_RELEASE_LINE (Unreleased)\n$(cat $CHANGELOG_FILE_NAME)" > $CHANGELOG_FILE_NAME - - run: | - git config --local user.email changelogbot@hashicorp.com - git config --local user.name changelogbot - git add CHANGELOG.md - git commit -m "Update CHANGELOG.md after ${{ github.ref_name }}" - git push - upload-tag-before-post-publish: - needs: [ terraform-provider-release ] - runs-on: ubuntu-latest - steps: - - name: Save Release Tag - run: echo ${{ github.ref_name }} > release-tag.data - - uses: actions/upload-artifact@v2 - with: - name: release-tag - path: release-tag.data - retention-days: 1 diff --git a/.github/workflows/roadmap_milestone.yml b/.github/workflows/roadmap_milestone.yml deleted file mode 100644 index 41d53c5e673..00000000000 --- a/.github/workflows/roadmap_milestone.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: If roadmap milestone is assigned, add to working board. -on: - issues: - types: [milestoned] -jobs: - AddRoadmapItemsToBoard: - runs-on: ubuntu-latest - steps: - - name: Move Roadmap Items To Working Board - uses: alex-page/github-project-automation-plus@v0.8.1 - if: github.event.issue.milestone.title == 'Roadmap' - with: - project: AWS Provider Working Board - column: To Do - repo-token: ${{ secrets.ORGSCOPED_GITHUB_TOKEN}} diff --git a/.github/workflows/rockitcloud_acc_tests.yml b/.github/workflows/rockitcloud_acc_tests.yml new file mode 100644 index 00000000000..a79206918f5 --- /dev/null +++ b/.github/workflows/rockitcloud_acc_tests.yml @@ -0,0 +1,27 @@ +name: Run tests + +on: + pull_request: + types: [labeled] + branches: [develop] + +jobs: + acc-tests: + runs-on: ubuntu-22.04 + if: contains(github.event.pull_request.labels.*.name, 'acc') + steps: + - name: Setup Go + uses: actions/setup-go@v2 + with: + go-version: 1.21.x + + - uses: actions/checkout@v3 + + - name: Run acceptance tests + env: + AWS_ACCESS_KEY_ID: ${{ secrets.aws_access_key_id }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.secret_access_key }} + EC2_URL: ${{ secrets.ec2_url }} + PAAS_URL: ${{ secrets.paas_url }} + run: | + make testacc TESTS=TestAccPaaSServiceElasticSearch_basic PKG=paas diff --git a/.github/workflows/rockitcloud_private_release.yml b/.github/workflows/rockitcloud_private_release.yml new file mode 100644 index 00000000000..c2909d96321 --- /dev/null +++ b/.github/workflows/rockitcloud_private_release.yml @@ -0,0 +1,39 @@ +name: Release of the provider to private registry + +on: workflow_dispatch + +jobs: + release: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-python@v5 + with: + python-version: 'pypy3.10' + + - name: Install s3cmd + run: | + sudo pip install s3cmd + + - name: Create S3 config + run: | + echo "${{ secrets.s3_config }}" > ./.s3cfg + + - name: Run script + id: run-script + env: + TF_REGISTRY_URL: ${{ vars.TF_REGISTRY_URL }} + S3_REGISTRY_URL: ${{ vars.S3_REGISTRY_URL }} + S3_BUCKET_NAME: ${{ vars.S3_BUCKET_NAME }} + PROVIDER_NAME: ${{ vars.PROVIDER_NAME }} + S3_BACKUP_DIR: ${{ vars.S3_BACKUP_DIR }} + run: | + ./scripts/gha-update-s3-registry.sh + + - name: Upload S3 backup to artifacts + if: ${{ failure() && steps.run-script.conclusion == 'failure' }} + uses: actions/upload-artifact@v3 + with: + name: s3_backup + path: ./s3_backup/ diff --git a/.github/workflows/rockitcloud_public_release.yml b/.github/workflows/rockitcloud_public_release.yml new file mode 100644 index 00000000000..0cd53be7669 --- /dev/null +++ b/.github/workflows/rockitcloud_public_release.yml @@ -0,0 +1,27 @@ +name: Release of the provider to public registry + +on: + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' + +jobs: + tests: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + + - name: Import GPG key + id: import_gpg + uses: crazy-max/ghaction-import-gpg@v6 + with: + gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} + + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v6 + with: + version: '~> v2' + args: release --clean --timeout 180m + env: + GITHUB_TOKEN: ${{ secrets.AUTOMATION_PAT }} + GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }} diff --git a/.github/workflows/rockitcloud_unit_tests.yml b/.github/workflows/rockitcloud_unit_tests.yml new file mode 100644 index 00000000000..ddaf401042a --- /dev/null +++ b/.github/workflows/rockitcloud_unit_tests.yml @@ -0,0 +1,30 @@ +name: Run tests + +on: + pull_request: + types: [opened] + branches: [develop] + +jobs: + unit-tests: + runs-on: ubuntu-22.04 + steps: + - name: Setup Go + uses: actions/setup-go@v2 + with: + go-version: 1.21.x + + - uses: actions/checkout@v3 + + - name: Install tools + run: | + make tools + - name: Install Docker + uses: crazy-max/ghaction-setup-docker@v3 + + - name: Run Unit tests + run: | + make lint + make docs-lint + make website-lint + make test diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml deleted file mode 100644 index 3cf9ba8b097..00000000000 --- a/.github/workflows/snapshot.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Snapshot - -on: - schedule: - - cron: '15 5 * * *' - workflow_dispatch: - -jobs: - goreleaser: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - name: goreleaser release - uses: goreleaser/goreleaser-action@v2 - with: - args: release --rm-dist --skip-sign --snapshot --timeout 2h - - name: artifact naming - id: naming - run: | - case $GITHUB_REF in - refs/heads/*) - ARTIFACT="${GITHUB_REF#refs/heads/}";; - refs/pull/*) - ARTIFACT="pr-${GITHUB_REF#refs/pull/}" - ARTIFACT="${ARTIFACT%/merge}";; - *) - ARTIFACT="${GITHUB_REF}";; - esac - echo "::set-output name=artifact::$ARTIFACT-$(date -u +'%Y-%m-%dT%H-%M')" - - uses: actions/upload-artifact@v3 - with: - name: ${{steps.naming.outputs.artifact}} - path: dist/*.zip diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index f2d556cff02..00000000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: "Stale issues and pull requests" -on: - schedule: - - cron: "40 17 * * *" - -jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v5 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - days-before-stale: 720 - days-before-close: 30 - exempt-issue-labels: 'needs-triage' - exempt-pr-labels: 'needs-triage' - operations-per-run: 150 - stale-issue-label: 'stale' - stale-issue-message: | - Marking this issue as stale due to inactivity. This helps our maintainers find and focus on the active issues. If this issue receives no comments in the next 30 days it will automatically be closed. Maintainers can also remove the stale label. - - If this issue was automatically closed and you feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. Thank you! - stale-pr-label: 'stale' - stale-pr-message: | - Marking this pull request as stale due to inactivity. This helps our maintainers find and focus on the active pull requests. If this pull request receives no comments in the next 30 days it will automatically be closed. Maintainers can also remove the stale label. - - If this pull request was automatically closed and you feel this pull request should be reopened, we encourage creating a new pull request linking back to this one for added context. Thank you! diff --git a/.github/workflows/team_slack_bot.yml b/.github/workflows/team_slack_bot.yml deleted file mode 100644 index 4dbfc3e4f46..00000000000 --- a/.github/workflows/team_slack_bot.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: team-slack-bot - -on: - schedule: - - cron: '0 15 * * 1-5' - -jobs: - open-pr-stats: - runs-on: ubuntu-latest - name: open-pr-stats - if: github.repository_owner == 'hashicorp' - steps: - - name: open-pr-stats - uses: breathingdust/github-team-slackbot@v17 - with: - github_token: ${{ secrets.ORGSCOPED_GITHUB_TOKEN}} - org: hashicorp - repo: terraform-provider-aws - team_slug: terraform-aws - slack_token: ${{ secrets.SLACK_BOT_TOKEN }} - slack_channel: ${{ secrets.SLACK_CHANNEL }} diff --git a/.github/workflows/terraform_provider.yml b/.github/workflows/terraform_provider.yml deleted file mode 100644 index 703b344c5c1..00000000000 --- a/.github/workflows/terraform_provider.yml +++ /dev/null @@ -1,444 +0,0 @@ -name: Terraform Provider Checks - -on: - push: - branches: - - main - - 'release/**' - pull_request: - paths: - - .github/workflows/terraform_provider.yml - - .go-version - - .golangci.yml - - .semgrep.yml - - internal/** - - providerlint/** - - docs/index.md - - docs/data-sources/** - - docs/guides/** - - docs/resources/** - - go.sum - - GNUmakefile - - main.go - - names/** - - staticcheck.conf - - tools/** - - website/** - -env: - AWS_DEFAULT_REGION: us-west-2 - TERRAFORM_VERSION: "1.0.6" - -jobs: - go_mod_download: - name: go mod download - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - - uses: actions/cache@v3 - continue-on-error: true - id: cache-go-pkg-mod - timeout-minutes: 2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - if: steps.cache-go-pkg-mod.outputs.cache-hit != 'true' || steps.cache-go-pkg-mod.outcome == 'failure' - run: go mod download - - go_build: - name: go build - needs: [go_mod_download] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/cache@v3 - continue-on-error: true - id: cache-terraform-plugin-dir - timeout-minutes: 2 - with: - path: terraform-plugin-dir - key: ${{ runner.os }}-terraform-plugin-dir-${{ hashFiles('go.sum') }}-${{ hashFiles('internal/**') }} - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - if: steps.cache-terraform-plugin-dir.outputs.cache-hit != 'true' || steps.cache-terraform-plugin-dir.outcome == 'failure' - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - # See also: https://github.com/actions/setup-go/issues/54 - - if: steps.cache-terraform-plugin-dir.outputs.cache-hit != 'true' || steps.cache-terraform-plugin-dir.outcome == 'failure' - name: go env - run: | - echo "GOCACHE=$(go env GOCACHE)" >> $GITHUB_ENV - - if: steps.cache-terraform-plugin-dir.outputs.cache-hit != 'true' || steps.cache-terraform-plugin-dir.outcome == 'failure' - uses: actions/cache@v3 - with: - path: ${{ env.GOCACHE }} - key: ${{ runner.os }}-GOCACHE-${{ hashFiles('go.sum') }}-${{ hashFiles('internal/**') }} - - if: steps.cache-terraform-plugin-dir.outputs.cache-hit != 'true' || steps.cache-terraform-plugin-dir.outcome == 'failure' - uses: actions/cache@v3 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - if: steps.cache-terraform-plugin-dir.outputs.cache-hit != 'true' || steps.cache-terraform-plugin-dir.outcome == 'failure' - name: go build - run: go build -o terraform-plugin-dir/registry.terraform.io/hashicorp/aws/99.99.99/$(go env GOOS)_$(go env GOARCH)/terraform-provider-aws . - - terraform_providers_schema: - name: terraform providers schema - needs: [go_build] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/cache@v3 - continue-on-error: true - id: cache-terraform-providers-schema - timeout-minutes: 2 - with: - path: terraform-providers-schema - key: ${{ runner.os }}-terraform-providers-schema-${{ hashFiles('go.sum') }}-${{ hashFiles('internal/**') }} - - if: steps.cache-terraform-providers-schema.outputs.cache-hit != 'true' || steps.cache-terraform-providers-schema.outcome == 'failure' - uses: actions/cache@v3 - timeout-minutes: 2 - with: - path: terraform-plugin-dir - key: ${{ runner.os }}-terraform-plugin-dir-${{ hashFiles('go.sum') }}-${{ hashFiles('internal/**') }} - - if: steps.cache-terraform-providers-schema.outputs.cache-hit != 'true' || steps.cache-terraform-providers-schema.outcome == 'failure' - uses: hashicorp/setup-terraform@v2 - with: - terraform_version: ${{ env.TERRAFORM_VERSION }} - terraform_wrapper: false - - if: steps.cache-terraform-providers-schema.outputs.cache-hit != 'true' || steps.cache-terraform-providers-schema.outcome == 'failure' - name: terraform init - run: | - # We need a file to initialize the provider - echo 'data "aws_partition" "example" {}' > example.tf - terraform init -plugin-dir terraform-plugin-dir - - if: steps.cache-terraform-providers-schema.outputs.cache-hit != 'true' || steps.cache-terraform-providers-schema.outcome == 'failure' - name: terraform providers schema - run: | - mkdir terraform-providers-schema - terraform providers schema -json > terraform-providers-schema/schema.json - - providerlint: - # needs: [go_build] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - # See also: https://github.com/actions/setup-go/issues/54 - - name: go env - run: | - echo "GOCACHE=$(go env GOCACHE)" >> $GITHUB_ENV - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ${{ env.GOCACHE }} - key: ${{ runner.os }}-GOCACHE-${{ hashFiles('go.sum') }}-${{ hashFiles('aws/**') }} - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - run: cd providerlint && go install . - - name: providerlint - run: make providerlint - - go_generate: - name: go generate - needs: [go_build] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - # See also: https://github.com/actions/setup-go/issues/54 - - name: go env - run: | - echo "GOCACHE=$(go env GOCACHE)" >> $GITHUB_ENV - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ${{ env.GOCACHE }} - key: ${{ runner.os }}-GOCACHE-${{ hashFiles('go.sum') }}-${{ hashFiles('internal/**') }} - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - run: go install golang.org/x/tools/cmd/goimports@latest - - run: make gen - - name: Check for Git Differences - run: | - git diff --compact-summary --exit-code || \ - (echo; echo "Unexpected difference in directories after code generation. Run 'make gen' command and commit."; exit 1) - - go_test: - name: go test - needs: [go_build] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - # See also: https://github.com/actions/setup-go/issues/54 - - name: go env - run: | - echo "GOCACHE=$(go env GOCACHE)" >> $GITHUB_ENV - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ${{ env.GOCACHE }} - key: ${{ runner.os }}-GOCACHE-${{ hashFiles('go.sum') }}-${{ hashFiles('internal/**') }} - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - name: Get all changed files - id: changed-files - uses: tj-actions/changed-files@v19 - - name: Get changed packages - run: | - touch /tmp/dirs_changed_all - for file in ${{ steps.changed-files.outputs.all_changed_files }}; do - if [ "${file}" = "" ]; then - continue - fi - if [[ ! "${file}" =~ ^internal/|^names/ ]] || [[ "${file}" =~ /test-fixtures/|/testdata|^internal/sweep/.*|^internal/generate/.* ]]; then - echo "Skipping changed file: ${file}" - continue - fi - echo $( dirname "${file}" | xargs ) >> /tmp/dirs_changed_all - done - cat /tmp/dirs_changed_all | sort | uniq > /tmp/pkgs_changed - echo "All packages changed:" - cat /tmp/pkgs_changed - while read pkg; do - if [ "${pkg}" = "" ]; then - continue - fi - echo -n "Finding dependents for ${pkg}? " - if [[ "${pkg}" =~ /test-fixtures/|/testdata|^internal/sweep|^internal/generate ]]; then - echo "No" - continue - fi - c=0 - while read file; do - if [ "${file}" = "" ]; then - continue - fi - if [[ "${file}" != *.go ]]; then - continue - fi - if [[ "${file}" =~ /test-fixtures/|/testdata|^internal/sweep|^internal/generate ]]; then - continue - fi - c=$((c+1)) - echo $( dirname "${file}" | xargs ) >> /tmp/dep_dirs_all - done <<< $( grep -rl "\"github.com/hashicorp/terraform-provider-aws/${pkg}\"" internal/* ) - echo "Yes, ${c} found" - done > /tmp/dep_dirs_all - cat /tmp/dep_dirs_all | sort | uniq > /tmp/dep_pkgs - echo "All packages to test:" - cat /tmp/dep_pkgs - id: changed-packages - - name: Run tests for changed packages - run: | - if [ $( cat /tmp/dep_pkgs | wc -l | xargs ) -gt 150 ]; then - go test ./... - else - while read pkg; do - go test -run ^Test[^A][^c][^c] "github.com/hashicorp/terraform-provider-aws/${pkg}" - done > $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - # See also: https://github.com/actions/setup-go/issues/54 - - name: go env - run: | - echo "GOCACHE=$(go env GOCACHE)" >> $GITHUB_ENV - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ${{ env.GOCACHE }} - key: ${{ runner.os }}-GOCACHE-${{ hashFiles('go.sum') }}-${{ hashFiles('internal/**') }} - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - run: cd tools && go install github.com/golangci/golangci-lint/cmd/golangci-lint - - run: golangci-lint run ./internal/... - - run: cd providerlint && golangci-lint run ./... - - importlint: - needs: [go_build] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - # See also: https://github.com/actions/setup-go/issues/54 - - name: go env - run: | - echo "GOCACHE=$(go env GOCACHE)" >> $GITHUB_ENV - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ${{ env.GOCACHE }} - key: ${{ runner.os }}-GOCACHE-${{ hashFiles('go.sum') }}-${{ hashFiles('aws/**') }} - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - run: cd tools && go install github.com/pavius/impi/cmd/impi - - run: impi --local . --scheme stdThirdPartyLocal ./... - - semgrep: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - name: semgrep - uses: returntocorp/semgrep-action@v1 - - tfproviderdocs: - needs: [terraform_providers_schema] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - run: cd tools && go install github.com/bflad/tfproviderdocs - - uses: actions/cache@v3 - timeout-minutes: 2 - with: - path: terraform-providers-schema - key: ${{ runner.os }}-terraform-providers-schema-${{ hashFiles('go.sum') }}-${{ hashFiles('internal/**') }} - - name: tfproviderdocs check - run: | - tfproviderdocs check \ - -allowed-resource-subcategories-file website/allowed-subcategories.txt \ - -enable-contents-check \ - -ignore-file-missing-data-sources aws_alb,aws_alb_listener,aws_alb_target_group \ - -ignore-file-missing-resources aws_alb,aws_alb_listener,aws_alb_listener_certificate,aws_alb_listener_rule,aws_alb_target_group,aws_alb_target_group_attachment \ - -provider-source registry.terraform.io/hashicorp/aws \ - -providers-schema-json terraform-providers-schema/schema.json \ - -require-resource-subcategory - - compile_sweepers: - name: Compile sweepers - needs: [go_build] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - # See also: https://github.com/actions/setup-go/issues/54 - - name: go env - run: | - echo "GOCACHE=$(go env GOCACHE)" >> $GITHUB_ENV - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ${{ env.GOCACHE }} - key: ${{ runner.os }}-GOCACHE-${{ hashFiles('go.sum') }}-${{ hashFiles('internal/**') }} - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - name: Try building - run: go build -tags=sweep - - compile_skaff: - name: Compile compile_skaff - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - # See also: https://github.com/actions/setup-go/issues/54 - - name: go env - run: | - echo "GOCACHE=$(go env GOCACHE)" >> $GITHUB_ENV - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ${{ env.GOCACHE }} - key: ${{ runner.os }}-GOCACHE-${{ hashFiles('go.sum') }}-${{ hashFiles('internal/**') }} - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - name: Try building - run: | - cd skaff - go build diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml deleted file mode 100644 index 36a039638b9..00000000000 --- a/.github/workflows/website.yml +++ /dev/null @@ -1,196 +0,0 @@ -## These checks will be superseded by documentation.yml -## when the provider documentation layout is moved to -## the Terraform Registry layout. -name: Website Checks -on: - push: - branches: - - main - - "release/**" - pull_request: - paths: - - .github/workflows/website.yml - - .go-version - - .markdownlinkcheck.json - - .markdownlint.yml - - .tflint.hcl - - website/docs/** - - tools/go.mod - -jobs: - markdown-link-check-a-h-markdown: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: YakDriver/md-check-links@v2.0.5 - name: markdown-link-check website/docs/**/[a-h].markdown - with: - use-quiet-mode: "yes" - use-verbose-mode: "yes" - config-file: ".markdownlinkcheck.json" - folder-path: "website/docs" - file-prefix: "[a-h]" - file-extension: ".markdown" - base-branch: "main" - check-modified-files-only: "no" - markdown-link-check-i-z-markdown: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: YakDriver/md-check-links@v2.0.5 - name: markdown-link-check website/docs/**/[i-z].markdown - with: - use-quiet-mode: "yes" - use-verbose-mode: "yes" - config-file: ".markdownlinkcheck.json" - folder-path: "website/docs" - file-prefix: "[i-z]" - file-extension: ".markdown" - base-branch: "main" - check-modified-files-only: "no" - markdown-link-check-md: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: YakDriver/md-check-links@v2.0.5 - name: markdown-link-check website/docs/**/*.md - with: - use-quiet-mode: "yes" - use-verbose-mode: "yes" - config-file: ".markdownlinkcheck.json" - folder-path: "website/docs" - file-extension: ".md" - base-branch: "main" - check-modified-files-only: "yes" - markdown-lint: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: avto-dev/markdown-lint@v1 - with: - config: ".markdownlint.yml" - args: "website/docs" - misspell: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - run: cd tools && go install github.com/client9/misspell/cmd/misspell - - run: misspell -error -source text website/ - terrafmt: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - run: cd tools && go install github.com/katbyte/terrafmt - - run: terrafmt diff ./website --check --pattern '*.markdown' - validate-terraform: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - - uses: actions/cache@v3 - continue-on-error: true - timeout-minutes: 2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - run: cd tools && go install github.com/katbyte/terrafmt - - - run: cd tools && go install github.com/terraform-linters/tflint - - - uses: actions/cache@v3 - name: Cache plugin dir - with: - path: ~/.tflint.d/plugins - key: ${{ runner.os }}-tflint-${{ hashFiles('.tflint.hcl') }} - - - run: tflint --init - - - run: | - exit_code=0 - - # Configure the rules for tflint. - # The *_invalid_* rules disabled here prevent evaluation of expressions. - # Do not disable *_invalid_name rules, since these are good checks for e.g. "%s" formatting verbs - # being carried over from test cases. - shared_rules=( - "--enable-rule=terraform_comment_syntax" - "--disable-rule=aws_cloudwatch_event_target_invalid_arn" - "--disable-rule=aws_db_instance_default_parameter_group" - "--disable-rule=aws_elasticache_cluster_default_parameter_group" - "--disable-rule=aws_elasticache_replication_group_default_parameter_group" - "--disable-rule=aws_iam_policy_sid_invalid_characters" - "--disable-rule=aws_iam_saml_provider_invalid_saml_metadata_document" - "--disable-rule=aws_iam_server_certificate_invalid_certificate_body" - "--disable-rule=aws_iam_server_certificate_invalid_private_key" - "--disable-rule=aws_lb_invalid_load_balancer_type" - "--disable-rule=aws_lb_target_group_invalid_protocol" - "--disable-rule=aws_transfer_ssh_key_invalid_body" - "--disable-rule=aws_worklink_website_certificate_authority_association_invalid_certificate" - "--disable-rule=aws_iot_certificate_invalid_csr" - "--disable-rule=aws_networkfirewall_rule_group_invalid_rules" - "--disable-rule=aws_appsync_function_invalid_request_mapping_template" - "--disable-rule=aws_appsync_function_invalid_response_mapping_template" - "--disable-rule=aws_appsync_resolver_invalid_request_template" - "--disable-rule=aws_appsync_resolver_invalid_response_template" - "--disable-rule=aws_servicecatalog_portfolio_share_invalid_type" - "--disable-rule=aws_s3_object_copy_invalid_source" - ) - while read -r filename; do - rules=("${shared_rules[@]}") - if [[ "$filename" == "./website/docs/guides/version-2-upgrade.html.md" ]]; then - # ./website/docs/guides/version-2-upgrade.html.md should still include pre-0.12 syntax, - # since v1.0 does not support Terraform 0.12. - rules+=( - "--disable-rule=terraform_deprecated_interpolation" - "--disable-rule=terraform_deprecated_index" - ) - elif [[ "$filename" == "./website/docs/guides/version-3-upgrade.html.md" ]]; then - # ./website/docs/guides/version-3-upgrade.html.md has one example showing migration from - # pre-0.12 syntax to 0.12 syntax. We can't customize rules per block, and adding a - # tflint-ignore directive to documentation is not ideal. - rules+=( - "--disable-rule=terraform_deprecated_interpolation" - "--enable-rule=terraform_deprecated_index" - ) - else - rules+=( - "--enable-rule=terraform_deprecated_interpolation" - "--enable-rule=terraform_deprecated_index" - ) - fi - - # We need to capture the output and error code here. We don't want to exit on the first error - set +e - ./scripts/validate-terraform-file.sh "$filename" "${rules[@]}" - lint_exitcode=$? - set -e - if [ $lint_exitcode -ne 0 ]; then exit_code=1; fi - done < <(find ./website/docs -type f \( -name '*.md' -o -name '*.markdown' \) | sort -u) - - exit $exit_code diff --git a/.github/workflows/workflow-lint.yml b/.github/workflows/workflow-lint.yml deleted file mode 100644 index f844eaa1a41..00000000000 --- a/.github/workflows/workflow-lint.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Workflow Linting -on: - push: - branches: - - main - - "release/**" - pull_request: - paths: - - .github/workflows/* -jobs: - actionlint: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # See also: https://github.com/actions/setup-go/pull/62 - - run: echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV - - uses: actions/setup-go@v3 - with: - go-version: ${{ env.GO_VERSION }} - - name: Install actionlint - run: cd tools && go install github.com/rhysd/actionlint/cmd/actionlint - - name: Run actionlint on workflow files - run: actionlint -shellcheck= \ No newline at end of file diff --git a/docs/c2/README.md b/docs/c2/README.md index 996094294d6..d225c254074 100644 --- a/docs/c2/README.md +++ b/docs/c2/README.md @@ -298,6 +298,35 @@ $ make docscheck **Π’Π°ΠΆΠ½ΠΎ!** Π Π΅Π»ΠΈΠ·Ρ‹ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° Π²Ρ‹ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ с Π²Π΅Ρ‚ΠΊΠΈ **develop** (установлСна Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½ΠΎΠΉ). Π’Π΅Ρ‚ΠΊΠ° **main** ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для получСния ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ с upstream. +#### АвтоматичСский Ρ€Π΅ΠΆΠΈΠΌ + +1. ΠœΠ΅Ρ€Π΄ΠΆ PR'ΠΎΠ² Π² Π²Π΅Ρ‚ΠΊΡƒ **next** +2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ€Π΅Π»ΠΈΠ·Π½ΠΎΠ³ΠΎ PR'Π° Π² Π²Π΅Ρ‚ΠΊΡƒ **next** +(ΠΏΡ€ΠΈΠΌΠ΅Ρ€: [v24.1.0](https://github.com/C2Devel/terraform-provider-rockitcloud/pull/49)) + - **ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ.** ОбновлСниС вСрсии **aws-sdk-go**, Ссли трСбуСтся + (см. [ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ вСрсии aws-sdk-go](#ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅-вСрсии-aws-sdk-go)) + - ОбновлСниС [CHANGELOG.md](../../CHANGELOG.md) +3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ PR'a ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ **next** Π² **develop** + ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ PR'Π° Π² Π²Π΅Ρ‚ΠΊΡƒ **develop** автоматичСски запустятся Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹, unit тСсты ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠΎΡ‡Π½Ρ‹Π΅ тСсты +4. ΠœΠ΅Ρ€Π΄ΠΆ Ρ€Π΅Π»ΠΈΠ·Π½ΠΎΠ³ΠΎ PR'a +5. Установка Ρ€Π΅Π»ΠΈΠ·Π½ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π° с вСрсиСй (см. [вСрсионированиС](#вСрсионированиС)) ΠΈ Π΅Π³ΠΎ публикация + + **Π’Π°ΠΆΠ½ΠΎ!** ПослС ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ тэга автоматичСски запустится процСсс создания Ρ€Π΅Π»ΠΈΠ·Π°, Π½ΠΎ Ρ€Π΅Π»ΠΈΠ· Π±ΡƒΠ΄Π΅Ρ‚ Π² состоянии **draft** + + ``` + $ git tag v1.2.3 + $ git push v1.2.3 + ``` + +6. ИзмСнСниС **draft** Ρ€Π΅Π»ΠΈΠ·Π° + НСобходимо пСрСнСсти послСдниС записи ΠΈΠ· CHANGELOG.md Π² описаниС Ρ€Π΅Π»ΠΈΠ·Π° +7. Выпуск Ρ€Π΅Π»ΠΈΠ·Π° ΠΊΠ°ΠΊ **latest** + + **Π’Π°ΠΆΠ½ΠΎ!** ПослС этого дСйствия Ρ€Π΅Π»ΠΈΠ· Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ рСдТистри **HashiCorp** +8. **Π’Π°ΠΆΠ½ΠΎ!** Π‘Ρ‹Π²Π°ΡŽΡ‚ случаи ΠΊΠΎΠ³Π΄Π° послСдняя вСрсия ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° Π½Π΅ публикуСтся Π² рСдТистри, для этого Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ рСдТистри **HashiCorp** Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ **Resync**, Ρ‡Ρ‚ΠΎΠ±Ρ‹ рСдТистри Π΅Ρ‰Π΅ Ρ€Π°Π· подтянула послСдний Ρ€Π΅Π»ΠΈΠ· ΠΈΠ· рСпозитория + +#### Π ΡƒΡ‡Π½ΠΎΠΉ Ρ€Π΅ΠΆΠΈΠΌ + 1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ€Π΅Π»ΠΈΠ·Π½ΠΎΠ³ΠΎ PR'Π° Π² Π²Π΅Ρ‚ΠΊΡƒ **develop** (ΠΏΡ€ΠΈΠΌΠ΅Ρ€: [v24.1.0](https://github.com/C2Devel/terraform-provider-rockitcloud/pull/49)) - **ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ.** ОбновлСниС вСрсии **aws-sdk-go**, Ссли трСбуСтся @@ -514,6 +543,23 @@ $ ./update-s3-registry.sh ... ``` +#### ИспользованиС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Github Actions + +Для упрощСния проСсса запуска скрипта ΠΏΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… вСрсий Π² private terraform registry ΠΈΠ· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ terraform registry ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ [rockitcloud_private_release](../../.github/workflows/rockitcloud_private_release.yml). + +Π’ сСкрСтах ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рСпозитория ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ прСднастроСны(дСлаСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ рСпозитория): + +1) ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» s3cmd - ΠΏΠΎΠ΄ сСкрСтом s3_config +2) URL ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ terraform registry - пСрСмСнная TF_REGISTRY_URL +3) URL Π±Π°ΠΊΠ΅Ρ‚Π° Π² private terraform registry - пСрСмСнная S3_REGISTRY_URL +4) Имя s3 Π±Π°ΠΊΠ΅Ρ‚Π° - пСрСмСнная S3_BUCKET_NAME +5) Имя ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° - пСрСмСнная PROVIDER_NAME +6) ΠŸΡƒΡ‚ΡŒ для бэкапа s3 Π±Π°ΠΊΠ΅Ρ‚Π°(Π² случаС Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ workflow бэкап Π±Π°ΠΊΠ΅Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ΅Π½ Π² Π°Ρ€Ρ‚ΠΈΡ„Π°ΠΊΡ‚Ρ‹ workflow) - пСрСмСнная S3_BACKUP_DIR + +Запуск Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ: + +Для запуска Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² [Actions](https://github.com/C2Devel/terraform-provider-rockitcloud/actions), Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ workflow(TODO: Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ссылку Π½Π° workflow послС ΠΌΠ΅Ρ€ΠΆΠ° Π² develop, ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΠΌΠ΅Ρ€ΠΆΠ΅Π½ΠΎ, ссылка нСизвСстна), Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ "Run workflow" ΠΈ Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ мСню снова Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ "Run workflow". + ## ИспользованиС ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° ΠŸΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ Π² terraform registry: https://registry.terraform.io/providers/C2Devel/rockitcloud diff --git a/scripts/gha-update-s3-registry.sh b/scripts/gha-update-s3-registry.sh new file mode 100755 index 00000000000..6405d652f32 --- /dev/null +++ b/scripts/gha-update-s3-registry.sh @@ -0,0 +1,182 @@ +#!/bin/bash + +# Load new versions of specified terraform provider from official terraform registry +# to private s3 registry. + +set -euo pipefail + +TF_REGISTRY_URL=${TF_REGISTRY_URL:-"https://registry.terraform.io/"} +S3_REGISTRY_URL=${S3_REGISTRY_URL:-} +S3_BUCKET_NAME=${S3_BUCKET_NAME:-} +PROVIDER_NAME=${PROVIDER_NAME:-"c2devel/rockitcloud"} + +S3_BACKUP_DIR=${S3_BACKUP_DIR:-} +TMP_DIR="/tmp/" + +TF_VERSIONS_FILE="${TMP_DIR}/tf-versions.json" +S3_VERSIONS_FILE="${TMP_DIR}/s3-versions.json" + +function trim_slashes() { + # $1 - url part + + echo "${1}" | sed 's:^/*::;s:/*$::' +} + +function to_lower() { + # $1 - str + + echo "${1}" | tr '[:upper:]' '[:lower:]' +} + +function curl_and_check() { + # $1 - svc name + # $2 - url + # $3 - output + + if [[ -z "${3:-}" ]]; then + http_code=$(curl -k -s -o /dev/null -w '%{http_code}' "${2}") + else + http_code=$(curl -k -s -o "${3}" -w '%{http_code}' "${2}") + fi + + if [[ "${http_code}" == "200" ]]; then + echo " ${1}... OK (endpoint: ${2}, http code: ${http_code})" + else + echo " ${1}... FAIL (endpoint: ${2}, http code: ${http_code})" + exit 1 + fi +} + + +echo "Start updating s3 registry" + + +echo "Check env variables" + +if [[ -z "${S3_REGISTRY_URL}" || -z "${S3_BUCKET_NAME}" ]]; then + echo " S3_REGISTRY_URL and S3_BUCKET_NAME must not be empty" + exit 1 +fi + +echo " TF_REGISTRY_URL = ${TF_REGISTRY_URL}" +echo " S3_REGISTRY_URL = ${S3_REGISTRY_URL}" +echo " S3_BUCKET_NAME = ${S3_BUCKET_NAME}" +echo " PROVIDER_NAME = ${PROVIDER_NAME}" +echo " S3_BACKUP_DIR = ${S3_BACKUP_DIR}" + + +TF_REGISTRY_URL=$(trim_slashes "${TF_REGISTRY_URL}") +S3_REGISTRY_URL=$(trim_slashes "${S3_REGISTRY_URL}") + +PROVIDER_NAME=$(to_lower "${PROVIDER_NAME}") + + +echo "Check availability of registries:" + +curl_and_check \ + "terraform registry" \ + "${TF_REGISTRY_URL}/.well-known/terraform.json" + +curl_and_check \ + "s3 registry" \ + "${S3_REGISTRY_URL}/.well-known/terraform.json" + + +echo "Get providers url prefix:" + +tf_provider_prefix=$(curl -k -s "${TF_REGISTRY_URL}/.well-known/terraform.json" | jq -r '."providers.v1"') +s3_provider_prefix=$(curl -k -s "${S3_REGISTRY_URL}/.well-known/terraform.json" | jq -r '."providers.v1"') + +echo " terraform registry: ${tf_provider_prefix}" +echo " s3 registry: ${s3_provider_prefix}" + +tf_provider_prefix=$(trim_slashes "${tf_provider_prefix}") +s3_provider_prefix=$(trim_slashes "${s3_provider_prefix}") + + +echo "Get versions for provider '${PROVIDER_NAME}':" + +curl_and_check \ + "tf registry versions" \ + "${TF_REGISTRY_URL}/${tf_provider_prefix}/${PROVIDER_NAME}/versions" \ + "${TF_VERSIONS_FILE}" + +curl_and_check \ + "s3 registry versions" \ + "${S3_REGISTRY_URL}/${s3_provider_prefix}/${PROVIDER_NAME}/versions" \ + "${S3_VERSIONS_FILE}" + +tf_provider_versions=$(< "${TF_VERSIONS_FILE}" jq -r '.versions[] | .version') +s3_provider_versions=$(< "${S3_VERSIONS_FILE}" jq -r '.versions[] | .version') + +echo " terraform registry:" $tf_provider_versions +echo " s3 registry:" $s3_provider_versions + + +if [[ -n "${S3_BACKUP_DIR}" ]]; then + timestamp=$(date +%Y%m%d-%H%M%S) + + echo "Backup s3 bucket to ${S3_BACKUP_DIR}/${S3_BUCKET_NAME}-${timestamp}/" + + mkdir -p "${S3_BACKUP_DIR}" + + s3cmd sync --config="./.s3cfg" --no-preserve --quiet "s3://${S3_BUCKET_NAME}/" "${S3_BACKUP_DIR}/${S3_BUCKET_NAME}-${timestamp}/" + + echo "Finish backup" +fi + + +echo "Find new provider versions in terraform registry" + +new_versions_count=0 +for version in $tf_provider_versions; do + if [[ "${s3_provider_versions[*]}" =~ ${version} ]]; then + continue + fi + + echo " Add new version '${version}' to s3 registry" + + tf_version_platforms=$(< "${TF_VERSIONS_FILE}" \ + jq --arg version "$version" '.versions[] | select(.version == $version) | .platforms') + + platforms_len=$(echo "${tf_version_platforms}" | jq '. | length') + + i=0 + while [[ $i -lt $platforms_len ]]; do + os=$(echo "${tf_version_platforms}" | jq --argjson i $i -r '.[$i] | .os') + arch=$(echo "${tf_version_platforms}" | jq --argjson i $i -r '.[$i] | .arch') + + curl_and_check \ + " ${os}/${arch}" \ + "${TF_REGISTRY_URL}/${tf_provider_prefix}/${PROVIDER_NAME}/${version}/download/${os}/${arch}" \ + "${TMP_DIR}/${version}_${os}_${arch}.json" + + s3cmd put --dry-run --config="./.s3cfg" --quiet --acl-public --content-type=application/json "${TMP_DIR}/${version}_${os}_${arch}.json" \ + "s3://${S3_BUCKET_NAME}/${s3_provider_prefix}/${PROVIDER_NAME}/${version}/download/${os}/${arch}/index.json" + + rm -f "${TMP_DIR}/${version}_${os}_${arch}.json" + + ((i+=1)) + done + + ((new_versions_count+=1)) + echo " Finish adding new version '${version}'" +done + +if [[ $new_versions_count -gt 0 ]]; then + echo "${new_versions_count} version(s) were added" + + echo "Update versions meta in s3 registry" + + s3cmd put --dry-run --config="./.s3cfg" --quiet --acl-public --content-type=application/json "${TF_VERSIONS_FILE}" \ + "s3://${S3_BUCKET_NAME}/${s3_provider_prefix}/${PROVIDER_NAME}/versions/index.json" + + echo "Finish versions meta update" +else + echo "No new versions were found" +fi + +rm -f "${TF_VERSIONS_FILE:?}" +rm -f "${S3_VERSIONS_FILE:?}" + +echo "Done!"