Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Amazon SNS FIFO Topics #15828

Merged
merged 19 commits into from
Apr 15, 2021

Conversation

tomekr
Copy link
Contributor

@tomekr tomekr commented Oct 24, 2020

Community Note

  • Please vote on this pull request by adding a 👍 reaction 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

Closes #15805

👋 First time contributor here so might miss some things. I used the "provider/aws: Added SQS FIFO queues" commit as a point of reference for this PR.

6702479 bumps the aws-sdk-go library to v1.35.14 in order to get the new SNS FIFO attributes added in the v1.35.13 release (reverted per github-actions bot's instructions)
9cdf5bb adds tests and an implementation. Of note here is that in order to create a FIFO SNS Topic, the FifoTopic attribute needs to be passed in with the call to snsconn.CreateTopic. As a result, I add this attribute to the sns.CreateTopicInput struct
b2c3615 updates the docs. Looks like VS Code's markdown auto formatter may have shifted some things. Let me know if that's a problem
cc72b21 adds SNS Topic Name validators. Per the documentation, if the SNS topic is a FIFO Topic then the name must end with .fifo. Since the FIFO Topic is validated, a non-FIFO name validator was added as well. The constrains from the AWS docs state:

Constraints: Topic names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long.

For a FIFO (first-in-first-out) topic, the name must end with the .fifo suffix.

Release note for CHANGELOG:

5019aad per @tecnobrat's suggestion, force a topic recreation if the fifo_topic attribute changes

ENHANCEMENTS

resource/aws_sns_topic: Add support for SNS First-In-First-Out (FIFO) Topics

Output from acceptance testing:

$ make testacc TEST=./aws/ TESTARGS='-run=TestAccAWSSNSTopic_FIFO'
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./aws -v -count 1 -parallel 20 -run=TestAccAWSSNSTopic_FIFO -timeout 120m
=== RUN   TestAccAWSSNSTopic_FIFO
=== PAUSE TestAccAWSSNSTopic_FIFO
=== RUN   TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
=== PAUSE TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
=== RUN   TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
=== PAUSE TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
=== CONT  TestAccAWSSNSTopic_FIFO
=== CONT  TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
=== CONT  TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
--- PASS: TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError (4.03s)
--- PASS: TestAccAWSSNSTopic_FIFO (14.89s)
--- PASS: TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication (25.66s)
PASS
ok      github.com/terraform-providers/terraform-provider-aws/aws       25.741s

@tomekr tomekr requested a review from a team October 24, 2020 21:13
@ghost ghost added documentation Introduces or discusses updates to documentation. size/L Managed by automation to categorize the size of a PR. service/sns Issues and PRs that pertain to the sns service. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure. labels Oct 24, 2020
@github-actions github-actions bot added the needs-triage Waiting for first response or review from a maintainer. label Oct 24, 2020
@github-actions
Copy link

Thank you for your contribution! 🚀

Please note that typically Go dependency changes are handled in this repository by Renovate Bot 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 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 Renovate Bot will be merged. This pull request will need to remove these changes and will need to be rebased after the existing dependency update via Renovate Bot 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, 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.

@tomekr
Copy link
Contributor Author

tomekr commented Oct 24, 2020

Looks like the acceptance tests pass even without the aws-sdk-go upgrade to 1.35.14. This appears to be because the CreateTopicInput struct uses a generic map to store the attributes and sends the attributes in the map along with the request to the AWS API.

https://github.com/aws/aws-sdk-go/blob/v1.35.9/service/sns/api.go#L4004

So it may be possible this doesn't require an upgrade to aws-sdk-go?

@ghost ghost added size/XL Managed by automation to categorize the size of a PR. and removed size/L Managed by automation to categorize the size of a PR. labels Oct 24, 2020
@otaviofff
Copy link

In addition to the FifoTopic property, there's also the ContentBasedDuplication one.

@okgolove
Copy link

okgolove commented Nov 6, 2020

Any updates here?

@chris-burkhardt
Copy link

Any updates here?

633 active Pull Requests. I hope they see this one as a priority. 🤞

@ShiraShaf
Copy link

Please add, FIFO is going to be very useful (SQS FIFO queues subscribed to SNS FIFO topics)!
Please merge the code to terraform version 0.12!!! (we have no time to upgrade the terrafrom, we need SNS FIFO asap)

@apae89
Copy link

apae89 commented Nov 16, 2020

Hey,
are there any updates on this? We need this feature urgently :(

@adamwilbert
Copy link

Hey,
are there any updates on this? We need this feature urgently :(

Help us Mitchell Hashimoto, you're our only hope.

@wellermiranda
Copy link

We need it too.

@bryantbiggs
Copy link
Contributor

I believe most of the focus is on https://github.com/hashicorp/terraform-provider-aws/blob/master/ROADMAP.md unfortunately

@wellermiranda
Copy link

wellermiranda commented Nov 20, 2020

Any chance to merge it soon?

Steps: []resource.TestStep{
{
Config: testAccAWSSNSTopicExpectContentBasedDeduplicationError(rName),
ExpectError: regexp.MustCompile(`Content based deduplication can only be set with FIFO topics`),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I looked over the docs and this test is correct, you can only use this attribute for FIFO topics.
See https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html

Copy link

@sesopenko sesopenko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a comment regarding trying to change a topic to fifo after creation, which isn't possible. Other than that things look good.

"A.fifo",
"9.fifo",
"-.fifo",
fmt.Sprintf("%s.fifo", strings.Repeat("W", 250)),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed, according to the API docs, all FIFO topics must end with the suffix of .fifo in the name.

https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html

@@ -415,6 +464,16 @@ func resourceAwsSnsTopicRead(d *schema.ResourceData, meta interface{}) error {
d.Set("sqs_failure_feedback_role_arn", aws.StringValue(attributeOutput.Attributes["SQSFailureFeedbackRoleArn"]))
d.Set("sqs_success_feedback_role_arn", aws.StringValue(attributeOutput.Attributes["SQSSuccessFeedbackRoleArn"]))

// set the boolean values
d.Set("fifo_topic", false)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The docs say that once you set a topic type it can't be changed. Is there a way to ensure the topic type's not being changed during an update, during validation stage?

fifo_topic isn't an attribute available for SetTopicAttributes

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The better way to do that is to change the schema in the resource to have ForceNew: true on it.

So in here:

			"fifo_topic": {
				Type:     schema.TypeBool,
				Optional: true,
				Default:  false,
			},

Do this:

			"fifo_topic": {
				Type:     schema.TypeBool,
				Optional: true,
				Default:  false,
				ForceNew: true
			},

That way if that field is changed, terraform knows it needs to create a brand new topic to replace it, and you'll get a corresponding diff.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call, added the schema change in 5019aad

@tomekr tomekr requested a review from a team as a code owner January 10, 2021 22:42
@tomekr
Copy link
Contributor Author

tomekr commented Jan 11, 2021

Looks like the goreleaser build failed (possible due to a timeout, see #16955). I don't have the ability to re-run the job on my end.

@ewbankkit
Copy link
Contributor

Verified acceptance tests:

$ make testacc TEST=./aws TESTARGS='-run=TestAccAWSSNSTopic_' ACCTEST_PARALLELISM=4
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./aws -v -count 1 -parallel 4 -run=TestAccAWSSNSTopic_ -timeout 120m
=== RUN   TestAccAWSSNSTopic_basic
=== PAUSE TestAccAWSSNSTopic_basic
=== RUN   TestAccAWSSNSTopic_name
=== PAUSE TestAccAWSSNSTopic_name
=== RUN   TestAccAWSSNSTopic_namePrefix
=== PAUSE TestAccAWSSNSTopic_namePrefix
=== RUN   TestAccAWSSNSTopic_policy
=== PAUSE TestAccAWSSNSTopic_policy
=== RUN   TestAccAWSSNSTopic_withIAMRole
=== PAUSE TestAccAWSSNSTopic_withIAMRole
=== RUN   TestAccAWSSNSTopic_withFakeIAMRole
=== PAUSE TestAccAWSSNSTopic_withFakeIAMRole
=== RUN   TestAccAWSSNSTopic_withDeliveryPolicy
=== PAUSE TestAccAWSSNSTopic_withDeliveryPolicy
=== RUN   TestAccAWSSNSTopic_deliveryStatus
=== PAUSE TestAccAWSSNSTopic_deliveryStatus
=== RUN   TestAccAWSSNSTopic_FIFO
=== PAUSE TestAccAWSSNSTopic_FIFO
=== RUN   TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
=== PAUSE TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
=== RUN   TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
=== PAUSE TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
=== RUN   TestAccAWSSNSTopic_encryption
=== PAUSE TestAccAWSSNSTopic_encryption
=== RUN   TestAccAWSSNSTopic_tags
=== PAUSE TestAccAWSSNSTopic_tags
=== CONT  TestAccAWSSNSTopic_basic
=== CONT  TestAccAWSSNSTopic_deliveryStatus
=== CONT  TestAccAWSSNSTopic_tags
=== CONT  TestAccAWSSNSTopic_encryption
--- PASS: TestAccAWSSNSTopic_basic (27.79s)
=== CONT  TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
--- PASS: TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError (5.63s)
=== CONT  TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
--- PASS: TestAccAWSSNSTopic_deliveryStatus (41.09s)
=== CONT  TestAccAWSSNSTopic_FIFO
--- PASS: TestAccAWSSNSTopic_encryption (50.07s)
=== CONT  TestAccAWSSNSTopic_withIAMRole
--- PASS: TestAccAWSSNSTopic_FIFO (27.11s)
=== CONT  TestAccAWSSNSTopic_withDeliveryPolicy
--- PASS: TestAccAWSSNSTopic_tags (69.72s)
=== CONT  TestAccAWSSNSTopic_withFakeIAMRole
--- PASS: TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication (48.66s)
=== CONT  TestAccAWSSNSTopic_namePrefix
--- PASS: TestAccAWSSNSTopic_withIAMRole (34.98s)
=== CONT  TestAccAWSSNSTopic_policy
--- PASS: TestAccAWSSNSTopic_withDeliveryPolicy (24.48s)
=== CONT  TestAccAWSSNSTopic_name
--- PASS: TestAccAWSSNSTopic_namePrefix (23.34s)
--- PASS: TestAccAWSSNSTopic_policy (25.03s)
--- PASS: TestAccAWSSNSTopic_name (22.63s)
--- PASS: TestAccAWSSNSTopic_withFakeIAMRole (130.59s)
PASS
ok  	github.com/terraform-providers/terraform-provider-aws/aws	200.355s

* `sqs_success_feedback_sample_rate` - (Optional) Percentage of success to sample
* `sqs_failure_feedback_role_arn` - (Optional) IAM role for failure feedback
* `tags` - (Optional) Key-value map of resource tags
- `name` - (Optional) The friendly name for the SNS topic. By default generated by Terraform.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please revert to * for list indicator so as to minimize the diffs? Thanks.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if fifoTopic {
if errors := validateSNSFifoTopicName(name); len(errors) > 0 {
return fmt.Errorf("Error validating the SNS FIFO topic name: %v", errors)
}
} else {
if errors := validateSNSNonFifoTopicName(name); len(errors) > 0 {
return fmt.Errorf("Error validating SNS topic name: %v", errors)
}
}

if !fifoTopic && cbd {
return fmt.Errorf("Content based deduplication can only be set with FIFO topics")
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can replace the validations during create (i.e. terraform apply) with validations during plan (terraform plan) by adding a CustomizeDiff function to the resource:

func resourceAwsSnsTopic() *schema.Resource {
	return &schema.Resource{
		Create: resourceAwsSnsTopicCreate,
		Read:   resourceAwsSnsTopicRead,
		Update: resourceAwsSnsTopicUpdate,
		Delete: resourceAwsSnsTopicDelete,
		Importer: &schema.ResourceImporter{
			State: schema.ImportStatePassthrough,
		},

		CustomizeDiff: resourceAwsSnsTopicCustomizeDiff,

		Schema: map[string]*schema.Schema{
...
}

func resourceAwsSnsTopicCustomizeDiff(_ context.Context, diff *schema.ResourceDiff, meta interface{}) error {
	fifoTopic := diff.Get("fifo_topic").(bool)
	contentBasedDeduplication := diff.Get("content_based_deduplication").(bool)

	if diff.Id() == "" {
		// Create.

		name := naming.Generate(diff.Get("name").(string), diff.Get("name_prefix").(string))

		if fifoTopic {
			if errors := validateSNSFifoTopicName(name); len(errors) > 0 {
				return fmt.Errorf("Error validating the SNS FIFO topic name: %v", errors)
			}
		} else {
			if errors := validateSNSNonFifoTopicName(name); len(errors) > 0 {
				return fmt.Errorf("Error validating SNS topic name: %v", errors)
			}
		}
	}

	if !fifoTopic && contentBasedDeduplication {
		return fmt.Errorf("Content based deduplication can only be set with FIFO topics")
	}

	return nil
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See also this comment around using the naming internal package and adding a GenerateWithSuffix function.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

95fd6be adds the CustomizeDiff function.

Just double checking here, naming.GenerateWithSuffix doesn't currently exist (per the docs) and shouldn't be part of this PR?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tomekr You can add. Thanks.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ewbankkit My apologies, I'm not quite following where I should add naming.GenerateWithSuffix. https://github.com/hashicorp/terraform-provider-aws/blob/master/docs/contributing/contribution-checklists.md#resource-name-generation-code-implementation doesn't appear to mention adding a new function to naming.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ewbankkit just following back up on this thread

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ewbankkit trying one more time here

@tomekr
Copy link
Contributor Author

tomekr commented Jan 20, 2021

$ make testacc TEST=./aws/ TESTARGS='-run=TestAccAWSSNSTopic_FIFO'
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./aws -v -count 1 -parallel 20 -run=TestAccAWSSNSTopic_FIFO -timeout 120m
=== RUN   TestAccAWSSNSTopic_FIFO
=== PAUSE TestAccAWSSNSTopic_FIFO
=== RUN   TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
=== PAUSE TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
=== RUN   TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
=== PAUSE TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
=== CONT  TestAccAWSSNSTopic_FIFO
=== CONT  TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
=== CONT  TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
--- PASS: TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError (3.45s)
--- PASS: TestAccAWSSNSTopic_FIFO (15.59s)
--- PASS: TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication (26.79s)
PASS
ok  	github.com/terraform-providers/terraform-provider-aws/aws	28.512s

Base automatically changed from master to main January 23, 2021 00:59
@ewbankkit ewbankkit removed the needs-triage Waiting for first response or review from a maintainer. label Apr 13, 2021
Acceptance test output:

% make testacc TEST=./aws TESTARGS='-run=TestAccAWSSNSTopic_' ACCTEST_PARALLELISM=4
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./aws -v -count 1 -parallel 4 -run=TestAccAWSSNSTopic_ -timeout 180m
=== RUN   TestAccAWSSNSTopic_basic
=== PAUSE TestAccAWSSNSTopic_basic
=== RUN   TestAccAWSSNSTopic_name
=== PAUSE TestAccAWSSNSTopic_name
=== RUN   TestAccAWSSNSTopic_namePrefix
=== PAUSE TestAccAWSSNSTopic_namePrefix
=== RUN   TestAccAWSSNSTopic_policy
=== PAUSE TestAccAWSSNSTopic_policy
=== RUN   TestAccAWSSNSTopic_withIAMRole
=== PAUSE TestAccAWSSNSTopic_withIAMRole
=== RUN   TestAccAWSSNSTopic_withFakeIAMRole
=== PAUSE TestAccAWSSNSTopic_withFakeIAMRole
=== RUN   TestAccAWSSNSTopic_withDeliveryPolicy
=== PAUSE TestAccAWSSNSTopic_withDeliveryPolicy
=== RUN   TestAccAWSSNSTopic_deliveryStatus
=== PAUSE TestAccAWSSNSTopic_deliveryStatus
=== RUN   TestAccAWSSNSTopic_FIFO
=== PAUSE TestAccAWSSNSTopic_FIFO
=== RUN   TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
=== PAUSE TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
=== RUN   TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
=== PAUSE TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
=== RUN   TestAccAWSSNSTopic_encryption
=== PAUSE TestAccAWSSNSTopic_encryption
=== RUN   TestAccAWSSNSTopic_tags
=== PAUSE TestAccAWSSNSTopic_tags
=== CONT  TestAccAWSSNSTopic_basic
=== CONT  TestAccAWSSNSTopic_deliveryStatus
=== CONT  TestAccAWSSNSTopic_withIAMRole
=== CONT  TestAccAWSSNSTopic_encryption
=== CONT  TestAccAWSSNSTopic_namePrefix
--- PASS: TestAccAWSSNSTopic_basic (20.75s)
--- PASS: TestAccAWSSNSTopic_withIAMRole (30.05s)
=== CONT  TestAccAWSSNSTopic_policy
--- PASS: TestAccAWSSNSTopic_encryption (34.64s)
=== CONT  TestAccAWSSNSTopic_tags
--- PASS: TestAccAWSSNSTopic_namePrefix (16.04s)
=== CONT  TestAccAWSSNSTopic_withDeliveryPolicy
--- PASS: TestAccAWSSNSTopic_deliveryStatus (37.54s)
=== CONT  TestAccAWSSNSTopic_name
--- PASS: TestAccAWSSNSTopic_policy (17.02s)
=== CONT  TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
--- PASS: TestAccAWSSNSTopic_name (15.29s)
=== CONT  TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
--- PASS: TestAccAWSSNSTopic_withDeliveryPolicy (16.18s)
=== CONT  TestAccAWSSNSTopic_FIFO
--- PASS: TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError (2.00s)
=== CONT  TestAccAWSSNSTopic_withFakeIAMRole
--- PASS: TestAccAWSSNSTopic_FIFO (18.22s)
--- PASS: TestAccAWSSNSTopic_tags (42.36s)
--- PASS: TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication (30.10s)
--- PASS: TestAccAWSSNSTopic_withFakeIAMRole (128.51s)
PASS
ok  	github.com/terraform-providers/terraform-provider-aws/aws	186.509s
@ghost ghost added the provider Pertains to the provider itself, rather than any interaction with AWS. label Apr 13, 2021
Acceptance test output:

% make testacc TEST=./aws TESTARGS='-run=TestAccAWSSNSTopic_' ACCTEST_PARALLELISM=4
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./aws -v -count 1 -parallel 4 -run=TestAccAWSSNSTopic_ -timeout 180m
=== RUN   TestAccAWSSNSTopic_basic
=== PAUSE TestAccAWSSNSTopic_basic
=== RUN   TestAccAWSSNSTopic_Name
=== PAUSE TestAccAWSSNSTopic_Name
=== RUN   TestAccAWSSNSTopic_NamePrefix
=== PAUSE TestAccAWSSNSTopic_NamePrefix
=== RUN   TestAccAWSSNSTopic_policy
=== PAUSE TestAccAWSSNSTopic_policy
=== RUN   TestAccAWSSNSTopic_withIAMRole
=== PAUSE TestAccAWSSNSTopic_withIAMRole
=== RUN   TestAccAWSSNSTopic_withFakeIAMRole
=== PAUSE TestAccAWSSNSTopic_withFakeIAMRole
=== RUN   TestAccAWSSNSTopic_withDeliveryPolicy
=== PAUSE TestAccAWSSNSTopic_withDeliveryPolicy
=== RUN   TestAccAWSSNSTopic_deliveryStatus
=== PAUSE TestAccAWSSNSTopic_deliveryStatus
=== RUN   TestAccAWSSNSTopic_Name_Generated_FIFOTopic
=== PAUSE TestAccAWSSNSTopic_Name_Generated_FIFOTopic
=== RUN   TestAccAWSSNSTopic_Name_FIFOTopic
=== PAUSE TestAccAWSSNSTopic_Name_FIFOTopic
=== RUN   TestAccAWSSNSTopic_NamePrefix_FIFOTopic
=== PAUSE TestAccAWSSNSTopic_NamePrefix_FIFOTopic
=== RUN   TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
=== PAUSE TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
=== RUN   TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
=== PAUSE TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
=== RUN   TestAccAWSSNSTopic_encryption
=== PAUSE TestAccAWSSNSTopic_encryption
=== RUN   TestAccAWSSNSTopic_tags
=== PAUSE TestAccAWSSNSTopic_tags
=== CONT  TestAccAWSSNSTopic_basic
=== CONT  TestAccAWSSNSTopic_Name_Generated_FIFOTopic
=== CONT  TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
=== CONT  TestAccAWSSNSTopic_withIAMRole
--- PASS: TestAccAWSSNSTopic_basic (15.80s)
=== CONT  TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
--- PASS: TestAccAWSSNSTopic_Name_Generated_FIFOTopic (15.98s)
=== CONT  TestAccAWSSNSTopic_tags
--- PASS: TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError (1.66s)
=== CONT  TestAccAWSSNSTopic_encryption
--- PASS: TestAccAWSSNSTopic_withIAMRole (27.02s)
=== CONT  TestAccAWSSNSTopic_withDeliveryPolicy
--- PASS: TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication (27.67s)
=== CONT  TestAccAWSSNSTopic_deliveryStatus
--- PASS: TestAccAWSSNSTopic_withDeliveryPolicy (14.61s)
=== CONT  TestAccAWSSNSTopic_NamePrefix_FIFOTopic
--- PASS: TestAccAWSSNSTopic_encryption (26.03s)
=== CONT  TestAccAWSSNSTopic_Name_FIFOTopic
--- PASS: TestAccAWSSNSTopic_tags (38.26s)
=== CONT  TestAccAWSSNSTopic_NamePrefix
--- PASS: TestAccAWSSNSTopic_NamePrefix_FIFOTopic (15.82s)
=== CONT  TestAccAWSSNSTopic_policy
--- PASS: TestAccAWSSNSTopic_deliveryStatus (30.05s)
=== CONT  TestAccAWSSNSTopic_Name
--- PASS: TestAccAWSSNSTopic_Name_FIFOTopic (15.76s)
=== CONT  TestAccAWSSNSTopic_withFakeIAMRole
--- PASS: TestAccAWSSNSTopic_NamePrefix (13.74s)
--- PASS: TestAccAWSSNSTopic_Name (13.86s)
--- PASS: TestAccAWSSNSTopic_policy (15.04s)
--- PASS: TestAccAWSSNSTopic_withFakeIAMRole (125.80s)
PASS
ok  	github.com/terraform-providers/terraform-provider-aws/aws	188.961s
Acceptance test output:

% make testacc TEST=./aws TESTARGS='-run=TestAccDataSourceAwsSnsTopic_'
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./aws -v -count 1 -parallel 20 -run=TestAccDataSourceAwsSnsTopic_ -timeout 180m
=== RUN   TestAccDataSourceAwsSnsTopic_basic
=== PAUSE TestAccDataSourceAwsSnsTopic_basic
=== CONT  TestAccDataSourceAwsSnsTopic_basic
--- PASS: TestAccDataSourceAwsSnsTopic_basic (13.01s)
PASS
ok  	github.com/terraform-providers/terraform-provider-aws/aws	16.297s
@ghost ghost added size/XXL Managed by automation to categorize the size of a PR. and removed size/XL Managed by automation to categorize the size of a PR. labels Apr 14, 2021
@ewbankkit
Copy link
Contributor

ewbankkit commented Apr 15, 2021

Acceptance test output

Commercial
OK	TestAccAWSSNSTopicSubscription_autoConfirmingSecuredEndpoint 	3m:32s,330ms
OK	TestAccAWSSNSTopicSubscription_rawMessageDelivery 	3m:06s,737ms
OK	TestAccAWSSNSTopicSubscription_redrivePolicy 	2m:48s,021ms
OK	TestAccAWSSNSTopicSubscription_filterPolicy 	2m:46s,513ms
OK	TestAccAWSSNSTopicSubscription_deliveryPolicy 	2m:45s,293ms
OK	TestAccAWSSNSTopic_withFakeIAMRole 	2m:28s,086ms
OK	TestAccAWSSNSTopicSubscription_firehose 	2m:26s,998ms
OK	TestAccAWSSNSTopicSubscription_disappears 	1m:56s,668ms
OK	TestAccAWSSNSTopicSubscription_autoConfirmingEndpoint 	1m:37s,398ms
OK	TestAccAWSSNSTopicSubscription_disappears_topic 	1m:28s,838ms
OK	TestAccAWSSNSTopicSubscription_basic 	1m:27s,016ms
OK	TestAccAWSSNSTopic_withIAMRole 	1m:14s,228ms
OK	TestAccAWSSNSTopic_tags 	1m:13s,039ms
OK	TestAccAWSSNSTopic_basic 	1m:08s,797ms
OK	TestAccAWSSNSTopic_Name 	1m:07s,976ms
OK	TestAccAWSSNSTopic_withDeliveryPolicy 	1m:07s,706ms
OK	TestAccAWSSNSTopic_NamePrefix 	1m:07s,244ms
OK	TestAccAWSSNSTopic_deliveryStatus 	1m:07s,171ms
OK	TestAccAWSSNSTopic_policy 	1m:07s,041ms
OK	TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication 	1m:03s,811ms
OK	TestAccAWSSNSTopic_encryption 	1m:03s,472ms
OK	TestAccAWSSNSTopicPolicy_basic 	1m:01s,654ms
OK	TestAccAWSSNSTopicSubscription_email 	58s,829ms
OK	TestAccAWSSNSTopic_Name_Generated_FIFOTopic 	54s,193ms
OK	TestAccDataSourceAwsSnsTopic_basic 	53s,812ms
OK	TestAccAWSSNSTopic_Name_FIFOTopic 	53s,711ms
OK	TestAccAWSSNSTopic_NamePrefix_FIFOTopic 	50s,592ms
OK	TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError 	10s,935ms
OK	TestGenerateIAMPassword 	759ms
GovCloud

Failures as FIFO topics are not currently supported:

TestAccAWSSNSTopic_NamePrefix_FIFOTopic  12s,943ms
TestAccAWSSNSTopic_Name_Generated_FIFOTopic  12s,686ms
TestAccAWSSNSTopic_Name_FIFOTopic  12s,503ms
TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication  11s,024ms

=== RUN   TestAccAWSSNSTopic_Name_FIFOTopic
=== PAUSE TestAccAWSSNSTopic_Name_FIFOTopic
=== CONT  TestAccAWSSNSTopic_Name_FIFOTopic
    resource_aws_sns_topic_test.go:347: Step 1/2 error: Error running apply: exit status 1
        
        Error: error creating SNS Topic (tf-acc-test-3760486360999710358.fifo): InvalidParameter: Invalid parameter: Attributes Reason: Unknown attribute FifoTopic
        	status code: 400, request id: 71ca8514-411a-5b27-97a6-dde529a0e08f
        
          on terraform_plugin_test.tf line 2, in resource "aws_sns_topic" "test":
           2: resource "aws_sns_topic" "test" {
        
        
--- FAIL: TestAccAWSSNSTopic_Name_FIFOTopic (11.80s)

@ewbankkit
Copy link
Contributor

@tomekr @janelletavares Thanks for the contribution 👏.
I took the liberty of rebasing and pushing the relevant naming changes to this fork (plus removing the name validation from the aws_sns_topic data source).

Copy link
Contributor

@ewbankkit ewbankkit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@ewbankkit ewbankkit merged commit ef8b167 into hashicorp:main Apr 15, 2021
@github-actions github-actions bot added this to the v3.37.0 milestone Apr 15, 2021
ewbankkit added a commit that referenced this pull request Apr 15, 2021
…ed (#17164)

* fix: append .fifo suffix for FIFO queue if name unspecified

* test: add test for unnamed fifo queues

* r/aws_sqs_queue: Make name generation and validation consistent with aws_sns_topic (#15828).

Acceptance test output:

% make testacc TEST=./aws TESTARGS='-run=TestAccAWSSQSQueue_' ACCTEST_PARALLELISM=4
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./aws -v -count 1 -parallel 4 -run=TestAccAWSSQSQueue_ -timeout 180m
=== RUN   TestAccAWSSQSQueue_basic
=== PAUSE TestAccAWSSQSQueue_basic
=== RUN   TestAccAWSSQSQueue_tags
=== PAUSE TestAccAWSSQSQueue_tags
=== RUN   TestAccAWSSQSQueue_namePrefix
=== PAUSE TestAccAWSSQSQueue_namePrefix
=== RUN   TestAccAWSSQSQueue_namePrefix_fifo
=== PAUSE TestAccAWSSQSQueue_namePrefix_fifo
=== RUN   TestAccAWSSQSQueue_policy
=== PAUSE TestAccAWSSQSQueue_policy
=== RUN   TestAccAWSSQSQueue_queueDeletedRecently
=== PAUSE TestAccAWSSQSQueue_queueDeletedRecently
=== RUN   TestAccAWSSQSQueue_redrivePolicy
=== PAUSE TestAccAWSSQSQueue_redrivePolicy
=== RUN   TestAccAWSSQSQueue_Policybasic
=== PAUSE TestAccAWSSQSQueue_Policybasic
=== RUN   TestAccAWSSQSQueue_FIFO
=== PAUSE TestAccAWSSQSQueue_FIFO
=== RUN   TestAccAWSSQSQueue_FIFOExpectNameError
=== PAUSE TestAccAWSSQSQueue_FIFOExpectNameError
=== RUN   TestAccAWSSQSQueue_FIFOWithContentBasedDeduplication
=== PAUSE TestAccAWSSQSQueue_FIFOWithContentBasedDeduplication
=== RUN   TestAccAWSSQSQueue_ExpectContentBasedDeduplicationError
=== PAUSE TestAccAWSSQSQueue_ExpectContentBasedDeduplicationError
=== RUN   TestAccAWSSQSQueue_Encryption
=== PAUSE TestAccAWSSQSQueue_Encryption
=== RUN   TestAccAWSSQSQueue_FIFO_MinusName
=== PAUSE TestAccAWSSQSQueue_FIFO_MinusName
=== CONT  TestAccAWSSQSQueue_basic
=== CONT  TestAccAWSSQSQueue_FIFO
=== CONT  TestAccAWSSQSQueue_Encryption
=== CONT  TestAccAWSSQSQueue_policy
--- PASS: TestAccAWSSQSQueue_FIFO (14.10s)
=== CONT  TestAccAWSSQSQueue_Policybasic
--- PASS: TestAccAWSSQSQueue_Encryption (14.34s)
=== CONT  TestAccAWSSQSQueue_redrivePolicy
--- PASS: TestAccAWSSQSQueue_redrivePolicy (14.96s)
=== CONT  TestAccAWSSQSQueue_queueDeletedRecently
--- PASS: TestAccAWSSQSQueue_basic (33.02s)
=== CONT  TestAccAWSSQSQueue_FIFOWithContentBasedDeduplication
--- PASS: TestAccAWSSQSQueue_FIFOWithContentBasedDeduplication (11.85s)
=== CONT  TestAccAWSSQSQueue_ExpectContentBasedDeduplicationError
--- PASS: TestAccAWSSQSQueue_ExpectContentBasedDeduplicationError (1.64s)
=== CONT  TestAccAWSSQSQueue_namePrefix_fifo
--- PASS: TestAccAWSSQSQueue_queueDeletedRecently (17.96s)
=== CONT  TestAccAWSSQSQueue_FIFOExpectNameError
--- PASS: TestAccAWSSQSQueue_FIFOExpectNameError (1.59s)
=== CONT  TestAccAWSSQSQueue_FIFO_MinusName
--- PASS: TestAccAWSSQSQueue_namePrefix_fifo (13.39s)
=== CONT  TestAccAWSSQSQueue_tags
--- PASS: TestAccAWSSQSQueue_FIFO_MinusName (13.12s)
=== CONT  TestAccAWSSQSQueue_namePrefix
--- PASS: TestAccAWSSQSQueue_policy (66.36s)
--- PASS: TestAccAWSSQSQueue_namePrefix (11.90s)
--- PASS: TestAccAWSSQSQueue_Policybasic (64.42s)
--- PASS: TestAccAWSSQSQueue_tags (30.27s)
PASS
ok  	github.com/terraform-providers/terraform-provider-aws/aws	94.367s

* r/aws_sqs_queue: Additional name generation tests.

Acceptance test output:

% make testacc TEST=./aws TESTARGS='-run=TestAccAWSSQSQueue_' ACCTEST_PARALLELISM=4
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./aws -v -count 1 -parallel 4 -run=TestAccAWSSQSQueue_ -timeout 180m
=== RUN   TestAccAWSSQSQueue_basic
=== PAUSE TestAccAWSSQSQueue_basic
=== RUN   TestAccAWSSQSQueue_tags
=== PAUSE TestAccAWSSQSQueue_tags
=== RUN   TestAccAWSSQSQueue_Name_Generated
=== PAUSE TestAccAWSSQSQueue_Name_Generated
=== RUN   TestAccAWSSQSQueue_Name_Generated_FIFOQueue
=== PAUSE TestAccAWSSQSQueue_Name_Generated_FIFOQueue
=== RUN   TestAccAWSSQSQueue_NamePrefix
=== PAUSE TestAccAWSSQSQueue_NamePrefix
=== RUN   TestAccAWSSQSQueue_NamePrefix_FIFOQueue
=== PAUSE TestAccAWSSQSQueue_NamePrefix_FIFOQueue
=== RUN   TestAccAWSSQSQueue_policy
=== PAUSE TestAccAWSSQSQueue_policy
=== RUN   TestAccAWSSQSQueue_queueDeletedRecently
=== PAUSE TestAccAWSSQSQueue_queueDeletedRecently
=== RUN   TestAccAWSSQSQueue_redrivePolicy
=== PAUSE TestAccAWSSQSQueue_redrivePolicy
=== RUN   TestAccAWSSQSQueue_Policybasic
=== PAUSE TestAccAWSSQSQueue_Policybasic
=== RUN   TestAccAWSSQSQueue_FIFO
=== PAUSE TestAccAWSSQSQueue_FIFO
=== RUN   TestAccAWSSQSQueue_FIFOExpectNameError
=== PAUSE TestAccAWSSQSQueue_FIFOExpectNameError
=== RUN   TestAccAWSSQSQueue_FIFOWithContentBasedDeduplication
=== PAUSE TestAccAWSSQSQueue_FIFOWithContentBasedDeduplication
=== RUN   TestAccAWSSQSQueue_ExpectContentBasedDeduplicationError
=== PAUSE TestAccAWSSQSQueue_ExpectContentBasedDeduplicationError
=== RUN   TestAccAWSSQSQueue_Encryption
=== PAUSE TestAccAWSSQSQueue_Encryption
=== CONT  TestAccAWSSQSQueue_basic
=== CONT  TestAccAWSSQSQueue_redrivePolicy
=== CONT  TestAccAWSSQSQueue_NamePrefix
=== CONT  TestAccAWSSQSQueue_queueDeletedRecently
--- PASS: TestAccAWSSQSQueue_NamePrefix (14.27s)
=== CONT  TestAccAWSSQSQueue_policy
--- PASS: TestAccAWSSQSQueue_redrivePolicy (16.99s)
=== CONT  TestAccAWSSQSQueue_Name_Generated
--- PASS: TestAccAWSSQSQueue_queueDeletedRecently (20.58s)
=== CONT  TestAccAWSSQSQueue_Name_Generated_FIFOQueue
--- PASS: TestAccAWSSQSQueue_Name_Generated (12.20s)
=== CONT  TestAccAWSSQSQueue_FIFOWithContentBasedDeduplication
--- PASS: TestAccAWSSQSQueue_Name_Generated_FIFOQueue (12.84s)
=== CONT  TestAccAWSSQSQueue_NamePrefix_FIFOQueue
--- PASS: TestAccAWSSQSQueue_basic (34.10s)
=== CONT  TestAccAWSSQSQueue_tags
--- PASS: TestAccAWSSQSQueue_FIFOWithContentBasedDeduplication (13.36s)
=== CONT  TestAccAWSSQSQueue_ExpectContentBasedDeduplicationError
--- PASS: TestAccAWSSQSQueue_ExpectContentBasedDeduplicationError (1.61s)
=== CONT  TestAccAWSSQSQueue_Encryption
--- PASS: TestAccAWSSQSQueue_NamePrefix_FIFOQueue (12.78s)
=== CONT  TestAccAWSSQSQueue_FIFO
--- PASS: TestAccAWSSQSQueue_Encryption (11.97s)
=== CONT  TestAccAWSSQSQueue_FIFOExpectNameError
--- PASS: TestAccAWSSQSQueue_FIFOExpectNameError (1.62s)
=== CONT  TestAccAWSSQSQueue_Policybasic
--- PASS: TestAccAWSSQSQueue_FIFO (11.88s)
--- PASS: TestAccAWSSQSQueue_tags (30.67s)
--- PASS: TestAccAWSSQSQueue_policy (64.88s)
--- PASS: TestAccAWSSQSQueue_Policybasic (63.94s)
PASS
ok  	github.com/terraform-providers/terraform-provider-aws/aws	124.792s

* r/aws_sns_topic: Remove 'ImportStateVerifyIgnore' for 'name_prefix' in acceptance tests.

Acceptance test output:

% make testacc TEST=./aws TESTARGS='-run=TestAccAWSSNSTopic_' ACCTEST_PARALLELISM=4
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./aws -v -count 1 -parallel 4 -run=TestAccAWSSNSTopic_ -timeout 180m
=== RUN   TestAccAWSSNSTopic_basic
=== PAUSE TestAccAWSSNSTopic_basic
=== RUN   TestAccAWSSNSTopic_Name
=== PAUSE TestAccAWSSNSTopic_Name
=== RUN   TestAccAWSSNSTopic_NamePrefix
=== PAUSE TestAccAWSSNSTopic_NamePrefix
=== RUN   TestAccAWSSNSTopic_policy
=== PAUSE TestAccAWSSNSTopic_policy
=== RUN   TestAccAWSSNSTopic_withIAMRole
=== PAUSE TestAccAWSSNSTopic_withIAMRole
=== RUN   TestAccAWSSNSTopic_withFakeIAMRole
=== PAUSE TestAccAWSSNSTopic_withFakeIAMRole
=== RUN   TestAccAWSSNSTopic_withDeliveryPolicy
=== PAUSE TestAccAWSSNSTopic_withDeliveryPolicy
=== RUN   TestAccAWSSNSTopic_deliveryStatus
=== PAUSE TestAccAWSSNSTopic_deliveryStatus
=== RUN   TestAccAWSSNSTopic_Name_Generated_FIFOTopic
=== PAUSE TestAccAWSSNSTopic_Name_Generated_FIFOTopic
=== RUN   TestAccAWSSNSTopic_Name_FIFOTopic
=== PAUSE TestAccAWSSNSTopic_Name_FIFOTopic
=== RUN   TestAccAWSSNSTopic_NamePrefix_FIFOTopic
=== PAUSE TestAccAWSSNSTopic_NamePrefix_FIFOTopic
=== RUN   TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
=== PAUSE TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
=== RUN   TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
=== PAUSE TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
=== RUN   TestAccAWSSNSTopic_encryption
=== PAUSE TestAccAWSSNSTopic_encryption
=== RUN   TestAccAWSSNSTopic_tags
=== PAUSE TestAccAWSSNSTopic_tags
=== CONT  TestAccAWSSNSTopic_basic
=== CONT  TestAccAWSSNSTopic_Name_Generated_FIFOTopic
=== CONT  TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication
=== CONT  TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError
--- PASS: TestAccAWSSNSTopic_FIFOExpectContentBasedDeduplicationError (3.24s)
=== CONT  TestAccAWSSNSTopic_NamePrefix_FIFOTopic
--- PASS: TestAccAWSSNSTopic_basic (17.44s)
=== CONT  TestAccAWSSNSTopic_Name_FIFOTopic
--- PASS: TestAccAWSSNSTopic_Name_Generated_FIFOTopic (17.45s)
=== CONT  TestAccAWSSNSTopic_withIAMRole
--- PASS: TestAccAWSSNSTopic_NamePrefix_FIFOTopic (16.26s)
=== CONT  TestAccAWSSNSTopic_deliveryStatus
--- PASS: TestAccAWSSNSTopic_FIFOWithContentBasedDeduplication (29.43s)
=== CONT  TestAccAWSSNSTopic_withDeliveryPolicy
--- PASS: TestAccAWSSNSTopic_Name_FIFOTopic (13.79s)
=== CONT  TestAccAWSSNSTopic_withFakeIAMRole
--- PASS: TestAccAWSSNSTopic_withIAMRole (23.62s)
=== CONT  TestAccAWSSNSTopic_Name
--- PASS: TestAccAWSSNSTopic_withDeliveryPolicy (14.49s)
=== CONT  TestAccAWSSNSTopic_policy
--- PASS: TestAccAWSSNSTopic_deliveryStatus (34.30s)
=== CONT  TestAccAWSSNSTopic_tags
--- PASS: TestAccAWSSNSTopic_Name (13.55s)
=== CONT  TestAccAWSSNSTopic_NamePrefix
--- PASS: TestAccAWSSNSTopic_policy (15.40s)
=== CONT  TestAccAWSSNSTopic_encryption
--- PASS: TestAccAWSSNSTopic_NamePrefix (13.83s)
--- PASS: TestAccAWSSNSTopic_encryption (26.86s)
--- PASS: TestAccAWSSNSTopic_tags (38.04s)
--- PASS: TestAccAWSSNSTopic_withFakeIAMRole (125.75s)
PASS
ok  	github.com/terraform-providers/terraform-provider-aws/aws	160.023s

Co-authored-by: Kit Ewbank <[email protected]>
@ghost
Copy link

ghost commented Apr 16, 2021

This has been released in version 3.37.0 of the Terraform AWS provider. Please see the Terraform documentation on provider versioning 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 following the template for triage. Thanks!

@ghost
Copy link

ghost commented May 15, 2021

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 feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. Thanks!

@ghost ghost locked as resolved and limited conversation to collaborators May 15, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
documentation Introduces or discusses updates to documentation. provider Pertains to the provider itself, rather than any interaction with AWS. service/sns Issues and PRs that pertain to the sns service. size/XXL Managed by automation to categorize the size of a PR. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Amazon SNS FIFO topics