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

New Resource: aws_ses_identity_notification #2640

Merged
merged 33 commits into from
Apr 4, 2018

Conversation

hussfelt
Copy link
Contributor

@hussfelt hussfelt commented Dec 12, 2017

This refs #931 and stalled PR #946
As I am unable to push to that branch I based my changes on @benoj's work and applied the changes based on feedback from @Ninir.

The tests has not yet run, and the test-file is pseudo code only.
Working on getting a go-environment running.

This is my first time touching golang for real - so I am pretty much in the dark here :-)

Reference: https://docs.aws.amazon.com/ses/latest/APIReference/API_SetIdentityNotificationTopic.html?shortFooter=true

@benoj
Copy link

benoj commented Dec 12, 2017

Hey @hussfelt,

Thanks for continuing this! Unfortunately havent had much time at work to continue the work I started.

I was actually planning to pick it up this week but looks like you have done that for me 🤣

If there is any more feedback, I should be able to help on this in a couple of days.

Cheers,

Ben

@hussfelt
Copy link
Contributor Author

@benoj Thanks! I'll try to complete it - if I need backup I'll ping you here and open up contributions to my branch :-)

Thank you for starting it - I would not have done it with my limited golang knowledge :)

@hussfelt
Copy link
Contributor Author

@Ninir or anyone checking this - I am in need of being pointed in the right direction. My tests seem to be passing - not sure they make sense though. The make test fails though.

@hussfelt
Copy link
Contributor Author

Seems like tests are passing, fairly sure we can improve this code though. Awaiting feedback :)

@benoj
Copy link

benoj commented Dec 14, 2017

Any word on this PR?

@Ninir Ninir added the enhancement Requests to existing resources that expand the functionality or scope. label Dec 14, 2017
@hussfelt
Copy link
Contributor Author

Ping, any feedback is appreciated - we'd love to get this enhancement in :)

@hussfelt
Copy link
Contributor Author

hussfelt commented Jan 3, 2018

echo :)

@barundel
Copy link

+1 for this :)

@aharin
Copy link
Contributor

aharin commented Jan 25, 2018

+1 👍

@benoj
Copy link

benoj commented Jan 25, 2018

@hussfelt maybe you should remove the WIP from the subject

@hussfelt hussfelt changed the title [WIP/Request Review] Adds ses identity notification resource #2 [Request Review] Adds ses identity notification resource #2 Jan 25, 2018
@hussfelt
Copy link
Contributor Author

@benoj DONE! :)

@bflad bflad added the service/ses Issues and PRs that pertain to the ses service. label Jan 28, 2018
@hussfelt
Copy link
Contributor Author

ping @Ninir :)

@radeksimko radeksimko added new-resource Introduces a new resource. and removed enhancement Requests to existing resources that expand the functionality or scope. labels Feb 13, 2018
@radeksimko radeksimko changed the title [Request Review] Adds ses identity notification resource #2 New Resource: aws_ses_identity_notification Feb 13, 2018
@benoj
Copy link

benoj commented Mar 1, 2018

Guys this has been in PR (original PR) since June 22 - can we please get this in.

Copy link
Contributor

@bflad bflad left a comment

Choose a reason for hiding this comment

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

Hi there -- sorry for the long maintainer silence on this pull request and thank you very much for the contribution. 😅 I left some initial feedback for this new resource below. Besides the comments below, there is other missing pieces here:

  • Documentation page: website/docs/r/ses_identity_notification.html.markdown
  • A new link to the documentation page in website/aws.erb
  • Adding the resource to the provider in aws/provider.go (mapping aws_ses_identity_notification to resourceAwsSesNotification)

Please take a look and let me know if you have any questions or do not have time to implement the feedback. Thanks.

Delete: resourceAwsSesNotificationDelete,

Schema: map[string]*schema.Schema{
"topic_arn": &schema.Schema{
Copy link
Contributor

Choose a reason for hiding this comment

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

Minor nitpick: &schema.Schema here and on the attributes below is extraneous as its already declared above in map[string]*schema.Schema

"notification_type": &schema.Schema{
Type: schema.TypeString,
Required: true,
ValidateFunc: validateNotificationType,
Copy link
Contributor

Choose a reason for hiding this comment

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

Minor nitpick: the extra function can be removed by using:

ValidateFunc: validation.StringInSlice([]string{
  ses.NotificationTypeBounce,
  ses.NotificationTypeComplaint,
  ses.NotificationTypeDelivery,
}, false),

ValidateFunc: validateArn,
},

"notification_type": &schema.Schema{
Copy link
Contributor

Choose a reason for hiding this comment

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

We should set ForceNew: true on this attribute as updating it could create situations where the old notification still exists

ValidateFunc: validateNotificationType,
},

"identity": &schema.Schema{
Copy link
Contributor

Choose a reason for hiding this comment

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

We should set ForceNew: true on this attribute as updating it could create situations where the old notification still exists

"identity": &schema.Schema{
Type: schema.TypeString,
Required: true,
ValidateFunc: validateIdentity,
Copy link
Contributor

Choose a reason for hiding this comment

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

Minor nitpick: the extra function can be removed by using:

ValidateFunc: validation.NoZeroValues,

}
}

func resourceAwsSesNotificationSet(d *schema.ResourceData, meta interface{}) error {
Copy link
Contributor

Choose a reason for hiding this comment

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

We need to call d.SetId() in here so we can reference the resource identifier in the read function and testing. I would recommend creating a two part ID such as d.SetId(fmt.Sprintf("%s|%s", identity, notification))

This will also allow us to later implement importing.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.


func resourceAwsSesNotificationRead(d *schema.ResourceData, meta interface{}) error {
conn := meta.(*AWSClient).sesConn
notification := d.Get("notification_type").(string)
Copy link
Contributor

Choose a reason for hiding this comment

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

Ideally, we should be reading this information from the Terraform resource ID via d.Id(). If implemented as noted above, this can be accomplished via:

identity, notificationType, err := decodeSesIdentityNotificationId(d.Id())
if err != nil {
  return err
}

And the function is implemented like:

func decodeSesIdentityNotificationId(id string) (string, string, error) {
	parts := strings.Split(id, "|")
	if len(parts) != 2 {
		return "", "", fmt.Errorf("Unexpected format of ID (%q), expected IDENTITY|TYPE", id)
	}
	return parts[0], parts[1], nil
}

notificationAttributes := response.NotificationAttributes[identity]
switch notification {
case ses.NotificationTypeBounce:
if err := d.Set("topic_arn", notificationAttributes.BounceTopic); err != nil {
Copy link
Contributor

Choose a reason for hiding this comment

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

For d.Set() with simple *string input, we can skip the err checking here and below. 👍


func resourceAwsSesNotificationDelete(d *schema.ResourceData, meta interface{}) error {
conn := meta.(*AWSClient).sesConn
notification := d.Get("notification_type").(string)
Copy link
Contributor

Choose a reason for hiding this comment

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

Same note here about using d.Id()

},
Providers: testAccProviders,
CheckDestroy: testAccCheckAwsSESIdentityNotificationDestroy,
Steps: []resource.TestStep{
Copy link
Contributor

Choose a reason for hiding this comment

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

We should have a TestStep that attempts to update topic_arn

Copy link
Contributor Author

@hussfelt hussfelt Mar 31, 2018

Choose a reason for hiding this comment

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

@bflad I fixed everything but this. I do not know how :-)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@bflad could you point me to an example on how to accomplish this - elsewhere in the codebase?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@bflad added a case where I push an updated arn. Hope this is the correct implementation.

@bflad bflad added the waiting-response Maintainers are waiting on response from community or contributor. label Mar 29, 2018
@ghost ghost added the size/XXL Managed by automation to categorize the size of a PR. label Mar 31, 2018
@hussfelt
Copy link
Contributor Author

@bflad I noticed some errors - i'll fix those in the morning :)

@ghost ghost added the size/XXL Managed by automation to categorize the size of a PR. label Apr 1, 2018
@hussfelt
Copy link
Contributor Author

hussfelt commented Apr 1, 2018

I seem to have pushed commits to this PR that wasn't mine, by rebasing over my local master. I have seen this before - unclear for me how to correct this... Anyone?

If I issue a new PR it seems to be clean. But then the I am afraid it will end up in another 6 months of silence... :-)

@ghost ghost added the size/XXL Managed by automation to categorize the size of a PR. label Apr 1, 2018
@hussfelt
Copy link
Contributor Author

hussfelt commented Apr 3, 2018

@bflad fixed!
Running make testacc TEST=./aws TESTARGS='-run=TestAccAwsSESIdentityNotification' now - should have setup go with make test from the beginning, would have saved some time and commits :-)

Seems to take some time though? Specifying TestAccAwsSESIdentityNotification should run only those tests and create resources, yes?

@hussfelt
Copy link
Contributor Author

hussfelt commented Apr 3, 2018

@bflad before I run this again for over 4000 seconds, please let me know that this is expected.
I also see that I got a timeout using temporary credentials. Fixing that by creating a temporary IAM user now.

#~/go/src/github.com/t
erraform-providers/terraform-provider-aws$ make testacc TEST=./aws TESTARGS='-run=TestAccAwsSESIdentityNotification'
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./aws -v -run=TestAccAwsSESIdentityNotification -timeout 120m
=== RUN   TestAccAwsSESIdentityNotification_basic
--- FAIL: TestAccAwsSESIdentityNotification_basic (4710.99s)
	testing.go:518: Step 0 error: Error applying: 1 error(s) occurred:

		* aws_ses_identity_notification.test: 1 error(s) occurred:

		* aws_ses_identity_notification.test: Error setting SES Identity Notification: InvalidParameterValue: SNS topic  is invalid.
			status code: 400, request id: a5d05e75-3714-11e8-8a62-432102804ff3
	testing.go:579: Error destroying resource! WARNING: Dangling resources
		may exist. The full state and error is shown below.

		Error: Check failed: ExpiredToken: The security token included in the request is expired
			status code: 403, request id: 998368d3-371f-11e8-af24-45b4604e9109

		State: <no state>
FAIL
exit status 1
FAIL	github.com/terraform-providers/terraform-provider-aws/aws	4711.011s
GNUmakefile:18: recipe for target 'testacc' failed
make: *** [testacc] Error 1```

@hussfelt
Copy link
Contributor Author

hussfelt commented Apr 3, 2018

@bflad yeah, so I have run this 3 times now and each time takes over an hour. :) It's not practical to finish the acceptance test this way... :)

This is my current error. I added an empty topic_arn = "" in the _basic test, thought that would help. It did not.

Please help me speed up the test or help me understand why this fails! :)

make testacc TEST=./aws TESTARGS='-run=TestAccAwsSESIdentityNotification'
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./aws -v -run=TestAccAwsSESIdentityNotification -timeout 120m
=== RUN   TestAccAwsSESIdentityNotification_basic
--- FAIL: TestAccAwsSESIdentityNotification_basic (4575.43s)
	testing.go:518: Step 0 error: Error applying: 1 error(s) occurred:

		* aws_ses_identity_notification.test: 1 error(s) occurred:

		* aws_ses_identity_notification.test: Error setting SES Identity Notification: InvalidParameterValue: SNS topic  is invalid.
			status code: 400, request id: b4ce9899-3736-11e8-b35f-49d515eebe27
	testing.go:579: Error destroying resource! WARNING: Dangling resources
		may exist. The full state and error is shown below.

		Error: Check failed: InternalFailure:
			status code: 500, request id: 57f9f18e-3741-11e8-bc37-7f49296b1c16

		State: <no state>
FAIL
exit status 1
FAIL	github.com/terraform-providers/terraform-provider-aws/aws	4575.458s
GNUmakefile:18: recipe for target 'testacc' failed
make: *** [testacc] Error 1

@hussfelt
Copy link
Contributor Author

hussfelt commented Apr 3, 2018

And just as I gave up I realised that this is probably the cause:
https://github.com/terraform-providers/terraform-provider-aws/pull/2640/files#diff-6dd2ce01bdff8576e44928172f94e249R58

Adding a check on the string and passing "nil" if empty.

@bflad
Copy link
Contributor

bflad commented Apr 3, 2018

You can turn on debug logging with TF_LOG=debug to see why its just hanging. It might be permissions issue or an error that keeps retrying.

The easiest way to handle the topic might be removing it from always being defined in setOpts then using this to conditionally add it:

v, ok := d.GetOk("topic_arn"); ok && v.(string) != "" {
  setOpts.SnsTopic = aws.String(v.(string))
}

@hussfelt
Copy link
Contributor Author

hussfelt commented Apr 3, 2018

@bflad thanks.

Yes, repeating requests. 500 error. I'm hitting a wall now though.
Any ideas?

....
</DescribeAccountAttributesResponse>
2018/04/03 14:35:38 [DEBUG] Test: Executing step 0
2018/04/03 14:35:38 [DEBUG] New state was assigned lineage "c883b773-a00e-6b16-48bc-92accbeb3e55"
2018/04/03 14:35:38 [INFO] terraform: building graph: GraphTypeValidate
2018/04/03 14:35:38 [DEBUG] Resource state not found for "aws_ses_identity_notification.test": aws_ses_identity_notification.test
2018/04/03 14:35:38 [DEBUG] Resource state not found for "aws_ses_domain_identity.test": aws_ses_domain_identity.test
2018/04/03 14:35:38 [DEBUG] adding missing provider: aws
2018/04/03 14:35:38 [DEBUG] resource aws_ses_identity_notification.test using provider provider.aws
2018/04/03 14:35:38 [DEBUG] resource aws_ses_domain_identity.test using provider provider.aws
2018/04/03 14:35:38 [DEBUG] ReferenceTransformer: "aws_ses_identity_notification.test" references: [aws_ses_domain_identity.test]
2018/04/03 14:35:38 [DEBUG] ReferenceTransformer: "aws_ses_domain_identity.test" references: []
2018/04/03 14:35:38 [DEBUG] ReferenceTransformer: "provider.aws" references: []
2018/04/03 14:35:38 [DEBUG] Starting graph walk: walkValidate
2018/04/03 14:35:38 [DEBUG] Resource state not found for "aws_ses_domain_identity.test": aws_ses_domain_identity.test
2018/04/03 14:35:38 [DEBUG] ReferenceTransformer: "aws_ses_domain_identity.test" references: []
2018/04/03 14:35:38 [DEBUG] Resource state not found for "aws_ses_identity_notification.test": aws_ses_identity_notification.test
2018/04/03 14:35:38 [DEBUG] ReferenceTransformer: "aws_ses_identity_notification.test" references: []
2018/04/03 14:35:38 [INFO] terraform: building graph: GraphTypeRefresh
2018/04/03 14:35:38 [DEBUG] Starting graph walk: walkRefresh
2018/04/03 14:35:38 [INFO] terraform: building graph: GraphTypePlan
2018/04/03 14:35:38 [DEBUG] Resource state not found for "aws_ses_identity_notification.test": aws_ses_identity_notification.test
2018/04/03 14:35:38 [DEBUG] Resource state not found for "aws_ses_domain_identity.test": aws_ses_domain_identity.test
2018/04/03 14:35:38 [DEBUG] adding missing provider: aws
2018/04/03 14:35:38 [DEBUG] resource aws_ses_identity_notification.test using provider provider.aws
2018/04/03 14:35:38 [DEBUG] resource aws_ses_domain_identity.test using provider provider.aws
2018/04/03 14:35:38 [DEBUG] ReferenceTransformer: "aws_ses_identity_notification.test" references: [aws_ses_domain_identity.test]
2018/04/03 14:35:38 [DEBUG] ReferenceTransformer: "aws_ses_domain_identity.test" references: []
2018/04/03 14:35:38 [DEBUG] ReferenceTransformer: "provider.aws" references: []
2018/04/03 14:35:38 [DEBUG] Starting graph walk: walkPlan
2018/04/03 14:35:38 [INFO] No assume_role block read from configuration
2018/04/03 14:35:38 [INFO] Building AWS region structure
2018/04/03 14:35:38 [INFO] Building AWS auth structure
2018/04/03 14:35:38 [INFO] Setting AWS metadata API timeout to 100ms
2018/04/03 14:35:38 [INFO] Ignoring AWS metadata API endpoint at default location as it doesn't return any instance-id
2018/04/03 14:35:38 [INFO] AWS Auth provider used: "EnvProvider"
2018/04/03 14:35:38 [INFO] Initializing DeviceFarm SDK connection
2018/04/03 14:35:38 [DEBUG] [aws-sdk-go] DEBUG: Request sts/GetCallerIdentity Details:
---[ REQUEST POST-SIGN ]-----------------------------
POST / HTTP/1.1
Host: sts.amazonaws.com
User-Agent: aws-sdk-go/1.13.23 (go1.9.2; linux; amd64) APN/1.0 HashiCorp/1.0 Terraform/0.11.4
Content-Length: 43
Authorization: AWS4-HMAC-SHA256 Credential=REDACTED/20180403/us-east-1/sts/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=cceae4c482b791d926414d0baba6013091997b242c1871cce909f288e950f6b0
Content-Type: application/x-www-form-urlencoded; charset=utf-8
X-Amz-Date: 20180403T143538Z
Accept-Encoding: gzip

Action=GetCallerIdentity&Version=2011-06-15
-----------------------------------------------------
2018/04/03 14:35:39 [DEBUG] [aws-sdk-go] DEBUG: Response sts/GetCallerIdentity Details:
---[ RESPONSE ]--------------------------------------
HTTP/1.1 200 OK
Connection: close
Content-Length: 411
Content-Type: text/xml
Date: Tue, 03 Apr 2018 14:35:38 GMT
X-Amzn-Requestid: 47748202-374c-11e8-82ee-31786c498973


-----------------------------------------------------
2018/04/03 14:35:39 [DEBUG] [aws-sdk-go] <GetCallerIdentityResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
  <GetCallerIdentityResult>
    <Arn>arn:aws:iam::REDACTED:user/terraform-test</Arn>
    <UserId>REDACTED</UserId>
    <Account>REDACTED</Account>
  </GetCallerIdentityResult>
  <ResponseMetadata>
    <RequestId>47748202-374c-11e8-82ee-31786c498973</RequestId>
  </ResponseMetadata>
</GetCallerIdentityResponse>
2018/04/03 14:35:39 [DEBUG] Trying to get account ID via iam:GetUser
2018/04/03 14:35:39 [DEBUG] [aws-sdk-go] DEBUG: Request iam/GetUser Details:
---[ REQUEST POST-SIGN ]-----------------------------
POST / HTTP/1.1
Host: iam.amazonaws.com
User-Agent: aws-sdk-go/1.13.23 (go1.9.2; linux; amd64) APN/1.0 HashiCorp/1.0 Terraform/0.11.4
Content-Length: 33
Authorization: AWS4-HMAC-SHA256 Credential=REDACTED/20180403/us-east-1/iam/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=36a1b1726e69c690b17077eee7ec69f3d64f5e90be66279ef32847c2f54c012c
Content-Type: application/x-www-form-urlencoded; charset=utf-8
X-Amz-Date: 20180403T143539Z
Accept-Encoding: gzip

Action=GetUser&Version=2010-05-08
-----------------------------------------------------
2018/04/03 14:35:39 [DEBUG] [aws-sdk-go] DEBUG: Response iam/GetUser Details:
---[ RESPONSE ]--------------------------------------
HTTP/1.1 200 OK
Connection: close
Content-Length: 477
Content-Type: text/xml
Date: Tue, 03 Apr 2018 14:35:39 GMT
X-Amzn-Requestid: 47c2546b-374c-11e8-a1a1-75c8f6219f00


-----------------------------------------------------
2018/04/03 14:35:39 [DEBUG] [aws-sdk-go] <GetUserResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">
  <GetUserResult>
    <User>
      <Path>/</Path>
      <UserName>terraform-test</UserName>
      <Arn>arn:aws:iam::REDACTED:user/terraform-test</Arn>
      <UserId>REDACTED</UserId>
      <CreateDate>2018-04-03T10:40:21Z</CreateDate>
    </User>
  </GetUserResult>
  <ResponseMetadata>
    <RequestId>47c2546b-374c-11e8-a1a1-75c8f6219f00</RequestId>
  </ResponseMetadata>
</GetUserResponse>
2018/04/03 14:35:39 [DEBUG] [aws-sdk-go] DEBUG: Request ec2/DescribeAccountAttributes Details:
---[ REQUEST POST-SIGN ]-----------------------------
POST / HTTP/1.1
Host: ec2.eu-west-1.amazonaws.com
User-Agent: aws-sdk-go/1.13.23 (go1.9.2; linux; amd64) APN/1.0 HashiCorp/1.0 Terraform/0.11.4
Content-Length: 87
Authorization: AWS4-HMAC-SHA256 Credential=REDACTED/20180403/eu-west-1/ec2/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=a67fa6ea9b32b35d20d36d5a0786c623518c6cbfa61afcff0a7f38b71cb1ecb2
Content-Type: application/x-www-form-urlencoded; charset=utf-8
X-Amz-Date: 20180403T143539Z
Accept-Encoding: gzip

Action=DescribeAccountAttributes&AttributeName.1=supported-platforms&Version=2016-11-15
-----------------------------------------------------
2018/04/03 14:35:39 [DEBUG] [aws-sdk-go] DEBUG: Response ec2/DescribeAccountAttributes Details:
---[ RESPONSE ]--------------------------------------
HTTP/1.1 200 OK
Connection: close
Transfer-Encoding: chunked
Content-Type: text/xml;charset=UTF-8
Date: Tue, 03 Apr 2018 14:35:39 GMT
Server: AmazonEC2
Vary: Accept-Encoding


-----------------------------------------------------
2018/04/03 14:35:39 [DEBUG] [aws-sdk-go] <?xml version="1.0" encoding="UTF-8"?>
<DescribeAccountAttributesResponse xmlns="http://ec2.amazonaws.com/doc/2016-11-15/">
    <requestId>cc415a40-7c81-4469-8f68-4fab9ee8ba78</requestId>
    <accountAttributeSet>
        <item>
            <attributeName>supported-platforms</attributeName>
            <attributeValueSet>
                <item>
                    <attributeValue>VPC</attributeValue>
                </item>
            </attributeValueSet>
        </item>
    </accountAttributeSet>
</DescribeAccountAttributesResponse>
2018/04/03 14:35:39 [DEBUG] Resource state not found for "aws_ses_domain_identity.test": aws_ses_domain_identity.test
2018/04/03 14:35:39 [DEBUG] ReferenceTransformer: "aws_ses_domain_identity.test" references: []
2018/04/03 14:35:39 [DEBUG] Resource state not found for "aws_ses_identity_notification.test": aws_ses_identity_notification.test
2018/04/03 14:35:39 [DEBUG] ReferenceTransformer: "aws_ses_identity_notification.test" references: []
2018/04/03 14:35:39 [WARN] Test: Step plan: DIFF:

CREATE: aws_ses_domain_identity.test
  arn:                "" => "<computed>"
  domain:             "" => "fyfaz37w7e.terraformtesting.com" (forces new resource)
  verification_token: "" => "<computed>"
CREATE: aws_ses_identity_notification.test
  identity:          "" => "<computed>" (forces new resource)
  notification_type: "" => "Delivery" (forces new resource)

STATE:

<no state>
2018/04/03 14:35:39 [INFO] terraform: building graph: GraphTypeApply
2018/04/03 14:35:39 [DEBUG] Resource state not found for "aws_ses_domain_identity.test": aws_ses_domain_identity.test
2018/04/03 14:35:39 [DEBUG] Resource state not found for "aws_ses_identity_notification.test": aws_ses_identity_notification.test
2018/04/03 14:35:39 [DEBUG] adding missing provider: aws
2018/04/03 14:35:39 [DEBUG] resource aws_ses_domain_identity.test using provider provider.aws
2018/04/03 14:35:39 [DEBUG] resource aws_ses_identity_notification.test using provider provider.aws
2018/04/03 14:35:39 [DEBUG] ReferenceTransformer: "aws_ses_domain_identity.test" references: []
2018/04/03 14:35:39 [DEBUG] ReferenceTransformer: "aws_ses_identity_notification.test" references: [aws_ses_domain_identity.test aws_ses_domain_identity.test]
2018/04/03 14:35:39 [DEBUG] ReferenceTransformer: "provider.aws" references: []
2018/04/03 14:35:39 [DEBUG] Starting graph walk: walkApply
2018/04/03 14:35:39 [INFO] No assume_role block read from configuration
2018/04/03 14:35:39 [INFO] Building AWS region structure
2018/04/03 14:35:39 [INFO] Building AWS auth structure
2018/04/03 14:35:39 [INFO] Setting AWS metadata API timeout to 100ms
2018/04/03 14:35:40 [INFO] Ignoring AWS metadata API endpoint at default location as it doesn't return any instance-id
2018/04/03 14:35:40 [INFO] AWS Auth provider used: "EnvProvider"
2018/04/03 14:35:40 [INFO] Initializing DeviceFarm SDK connection
2018/04/03 14:35:40 [DEBUG] [aws-sdk-go] DEBUG: Request sts/GetCallerIdentity Details:
---[ REQUEST POST-SIGN ]-----------------------------
POST / HTTP/1.1
Host: sts.amazonaws.com
User-Agent: aws-sdk-go/1.13.23 (go1.9.2; linux; amd64) APN/1.0 HashiCorp/1.0 Terraform/0.11.4
Content-Length: 43
Authorization: AWS4-HMAC-SHA256 Credential=REDACTED/20180403/us-east-1/sts/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=8492c5f350a75e2ee2b6f6ae821c9ee8c35c5cf823eebbe64f9986c563e51ef5
Content-Type: application/x-www-form-urlencoded; charset=utf-8
X-Amz-Date: 20180403T143540Z
Accept-Encoding: gzip

Action=GetCallerIdentity&Version=2011-06-15
-----------------------------------------------------
2018/04/03 14:35:40 [DEBUG] [aws-sdk-go] DEBUG: Response sts/GetCallerIdentity Details:
---[ RESPONSE ]--------------------------------------
HTTP/1.1 200 OK
Connection: close
Content-Length: 411
Content-Type: text/xml
Date: Tue, 03 Apr 2018 14:35:40 GMT
X-Amzn-Requestid: 4861c806-374c-11e8-b3cf-255046af93b6


-----------------------------------------------------
2018/04/03 14:35:40 [DEBUG] [aws-sdk-go] <GetCallerIdentityResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
  <GetCallerIdentityResult>
    <Arn>arn:aws:iam::REDACTED:user/terraform-test</Arn>
    <UserId>REDACTED</UserId>
    <Account>REDACTED</Account>
  </GetCallerIdentityResult>
  <ResponseMetadata>
    <RequestId>4861c806-374c-11e8-b3cf-255046af93b6</RequestId>
  </ResponseMetadata>
</GetCallerIdentityResponse>
2018/04/03 14:35:40 [DEBUG] Trying to get account ID via iam:GetUser
2018/04/03 14:35:40 [DEBUG] [aws-sdk-go] DEBUG: Request iam/GetUser Details:
---[ REQUEST POST-SIGN ]-----------------------------
POST / HTTP/1.1
Host: iam.amazonaws.com
User-Agent: aws-sdk-go/1.13.23 (go1.9.2; linux; amd64) APN/1.0 HashiCorp/1.0 Terraform/0.11.4
Content-Length: 33
Authorization: AWS4-HMAC-SHA256 Credential=REDACTED/20180403/us-east-1/iam/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=6d4a048e0f6f6da523bff1fb78e4776d17f812483d1747f6eb596ace2734210a
Content-Type: application/x-www-form-urlencoded; charset=utf-8
X-Amz-Date: 20180403T143540Z
Accept-Encoding: gzip

Action=GetUser&Version=2010-05-08
-----------------------------------------------------
2018/04/03 14:35:41 [DEBUG] [aws-sdk-go] DEBUG: Response iam/GetUser Details:
---[ RESPONSE ]--------------------------------------
HTTP/1.1 200 OK
Connection: close
Content-Length: 477
Content-Type: text/xml
Date: Tue, 03 Apr 2018 14:35:40 GMT
X-Amzn-Requestid: 48a73559-374c-11e8-a90b-b71b8564c9e6


-----------------------------------------------------
2018/04/03 14:35:41 [DEBUG] [aws-sdk-go] <GetUserResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">
  <GetUserResult>
    <User>
      <Path>/</Path>
      <UserName>terraform-test</UserName>
      <Arn>arn:aws:iam::REDACTED:user/terraform-test</Arn>
      <UserId>REDACTED</UserId>
      <CreateDate>2018-04-03T10:40:21Z</CreateDate>
    </User>
  </GetUserResult>
  <ResponseMetadata>
    <RequestId>48a73559-374c-11e8-a90b-b71b8564c9e6</RequestId>
  </ResponseMetadata>
</GetUserResponse>
2018/04/03 14:35:41 [DEBUG] [aws-sdk-go] DEBUG: Request ec2/DescribeAccountAttributes Details:
---[ REQUEST POST-SIGN ]-----------------------------
POST / HTTP/1.1
Host: ec2.eu-west-1.amazonaws.com
User-Agent: aws-sdk-go/1.13.23 (go1.9.2; linux; amd64) APN/1.0 HashiCorp/1.0 Terraform/0.11.4
Content-Length: 87
Authorization: AWS4-HMAC-SHA256 Credential=REDACTED/20180403/eu-west-1/ec2/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=a962d2fe7f5afea08294768f4568847cb54bafb75b4909f27da99b36301b5a74
Content-Type: application/x-www-form-urlencoded; charset=utf-8
X-Amz-Date: 20180403T143541Z
Accept-Encoding: gzip

Action=DescribeAccountAttributes&AttributeName.1=supported-platforms&Version=2016-11-15
-----------------------------------------------------
2018/04/03 14:35:41 [DEBUG] [aws-sdk-go] DEBUG: Response ec2/DescribeAccountAttributes Details:
---[ RESPONSE ]--------------------------------------
HTTP/1.1 200 OK
Connection: close
Transfer-Encoding: chunked
Content-Type: text/xml;charset=UTF-8
Date: Tue, 03 Apr 2018 14:35:41 GMT
Server: AmazonEC2
Vary: Accept-Encoding


-----------------------------------------------------
2018/04/03 14:35:41 [DEBUG] [aws-sdk-go] <?xml version="1.0" encoding="UTF-8"?>
<DescribeAccountAttributesResponse xmlns="http://ec2.amazonaws.com/doc/2016-11-15/">
    <requestId>5d068a1e-0ab8-4c46-a0f9-66f0884c697a</requestId>
    <accountAttributeSet>
        <item>
            <attributeName>supported-platforms</attributeName>
            <attributeValueSet>
                <item>
                    <attributeValue>VPC</attributeValue>
                </item>
            </attributeValueSet>
        </item>
    </accountAttributeSet>
</DescribeAccountAttributesResponse>
2018/04/03 14:35:41 [DEBUG] apply: aws_ses_domain_identity.test: executing Apply
2018/04/03 14:35:41 [DEBUG] [aws-sdk-go] DEBUG: Request email/VerifyDomainIdentity Details:
---[ REQUEST POST-SIGN ]-----------------------------
POST / HTTP/1.1
Host: email.eu-west-1.amazonaws.com
User-Agent: aws-sdk-go/1.13.23 (go1.9.2; linux; amd64) APN/1.0 HashiCorp/1.0 Terraform/0.11.4
Content-Length: 85
Authorization: AWS4-HMAC-SHA256 Credential=REDACTED/20180403/eu-west-1/ses/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=6b7c30b6ea135331c69f31d434c4a6c0f338a9fc33a235a0eb43429ee1fc5dd4
Content-Type: application/x-www-form-urlencoded; charset=utf-8
X-Amz-Date: 20180403T143541Z
Accept-Encoding: gzip

Action=VerifyDomainIdentity&Domain=fyfaz37w7e.terraformtesting.com&Version=2010-12-01
-----------------------------------------------------
2018/04/03 14:35:41 [DEBUG] [aws-sdk-go] DEBUG: Response email/VerifyDomainIdentity Details:
---[ RESPONSE ]--------------------------------------
HTTP/1.1 200 OK
Connection: close
Content-Length: 370
Content-Type: text/xml
Date: Tue, 03 Apr 2018 14:35:41 GMT
X-Amzn-Requestid: 48f72ab9-374c-11e8-90bb-077f0ba62dc1


-----------------------------------------------------
2018/04/03 14:35:41 [DEBUG] [aws-sdk-go] <VerifyDomainIdentityResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
  <VerifyDomainIdentityResult>
    <VerificationToken>afHZfU5ASCC+VZfWx+uilRFyBC6iYjIYavQZW9sjeg8=</VerificationToken>
  </VerifyDomainIdentityResult>
  <ResponseMetadata>
    <RequestId>48f72ab9-374c-11e8-90bb-077f0ba62dc1</RequestId>
  </ResponseMetadata>
</VerifyDomainIdentityResponse>
2018/04/03 14:35:41 [DEBUG] [aws-sdk-go] DEBUG: Request email/GetIdentityVerificationAttributes Details:
---[ REQUEST POST-SIGN ]-----------------------------
POST / HTTP/1.1
Host: email.eu-west-1.amazonaws.com
User-Agent: aws-sdk-go/1.13.23 (go1.9.2; linux; amd64) APN/1.0 HashiCorp/1.0 Terraform/0.11.4
Content-Length: 111
Authorization: AWS4-HMAC-SHA256 Credential=REDACTED/20180403/eu-west-1/ses/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=8e66982b81ebc42b953c9516ac995523d47679052665fd0c200bc03639f03ad3
Content-Type: application/x-www-form-urlencoded; charset=utf-8
X-Amz-Date: 20180403T143541Z
Accept-Encoding: gzip

Action=GetIdentityVerificationAttributes&Identities.member.1=fyfaz37w7e.terraformtesting.com&Version=2010-12-01
-----------------------------------------------------
2018/04/03 14:35:41 [DEBUG] [aws-sdk-go] DEBUG: Response email/GetIdentityVerificationAttributes Details:
---[ RESPONSE ]--------------------------------------
HTTP/1.1 200 OK
Connection: close
Content-Length: 659
Content-Type: text/xml
Date: Tue, 03 Apr 2018 14:35:41 GMT
X-Amzn-Requestid: 492c9206-374c-11e8-8213-9f1ef4d3cb3a


-----------------------------------------------------
2018/04/03 14:35:41 [DEBUG] [aws-sdk-go] <GetIdentityVerificationAttributesResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
  <GetIdentityVerificationAttributesResult>
    <VerificationAttributes>
      <entry>
        <key>fyfaz37w7e.terraformtesting.com</key>
        <value>
          <VerificationToken>afHZfU5ASCC+VZfWx+uilRFyBC6iYjIYavQZW9sjeg8=</VerificationToken>
          <VerificationStatus>Pending</VerificationStatus>
        </value>
      </entry>
    </VerificationAttributes>
  </GetIdentityVerificationAttributesResult>
  <ResponseMetadata>
    <RequestId>492c9206-374c-11e8-8213-9f1ef4d3cb3a</RequestId>
  </ResponseMetadata>
</GetIdentityVerificationAttributesResponse>
2018/04/03 14:35:41 [DEBUG] apply: aws_ses_identity_notification.test: executing Apply
2018/04/03 14:35:41 [DEBUG] Setting SES Identity Notification: {
  Identity: "arn:aws:ses:eu-west-1:REDACTED:identity/fyfaz37w7e.terraformtesting.com",
  NotificationType: "Delivery"
}
2018/04/03 14:35:41 [DEBUG] [aws-sdk-go] DEBUG: Request email/SetIdentityNotificationTopic Details:
---[ REQUEST POST-SIGN ]-----------------------------
POST / HTTP/1.1
Host: email.eu-west-1.amazonaws.com
User-Agent: aws-sdk-go/1.13.23 (go1.9.2; linux; amd64) APN/1.0 HashiCorp/1.0 Terraform/0.11.4
Content-Length: 177
Authorization: AWS4-HMAC-SHA256 Credential=REDACTED/20180403/eu-west-1/ses/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=3943c542ba01d96bc4c131ae3ad0f8234c16431b39eb61fc293313803a110238
Content-Type: application/x-www-form-urlencoded; charset=utf-8
X-Amz-Date: 20180403T143541Z
Accept-Encoding: gzip

Action=SetIdentityNotificationTopic&Identity=arn%3Aaws%3Ases%3Aeu-west-1%3AREDACTED%3Aidentity%2Ffyfaz37w7e.terraformtesting.com&NotificationType=Delivery&Version=2010-12-01
-----------------------------------------------------
2018/04/03 14:35:42 [DEBUG] [aws-sdk-go] DEBUG: Response email/SetIdentityNotificationTopic Details:
---[ RESPONSE ]--------------------------------------
HTTP/1.1 200 OK
Connection: close
Content-Length: 275
Content-Type: text/xml
Date: Tue, 03 Apr 2018 14:35:41 GMT
X-Amzn-Requestid: 4948a65e-374c-11e8-ad3c-5d99b2bad43b


-----------------------------------------------------
2018/04/03 14:35:42 [DEBUG] [aws-sdk-go] <SetIdentityNotificationTopicResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
  <SetIdentityNotificationTopicResult/>
  <ResponseMetadata>
    <RequestId>4948a65e-374c-11e8-ad3c-5d99b2bad43b</RequestId>
  </ResponseMetadata>
</SetIdentityNotificationTopicResponse>
2018/04/03 14:35:42 [DEBUG] Reading SES Identity Notification Attributes: {
  Identities: ["arn:aws:ses:eu-west-1:REDACTED:identity/fyfaz37w7e.terraformtesting.com"]
}
2018/04/03 14:35:42 [DEBUG] [aws-sdk-go] DEBUG: Request email/GetIdentityNotificationAttributes Details:
---[ REQUEST POST-SIGN ]-----------------------------
POST / HTTP/1.1
Host: email.eu-west-1.amazonaws.com
User-Agent: aws-sdk-go/1.13.23 (go1.9.2; linux; amd64) APN/1.0 HashiCorp/1.0 Terraform/0.11.4
Content-Length: 167
Authorization: AWS4-HMAC-SHA256 Credential=REDACTED/20180403/eu-west-1/ses/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=43c4353c346422d7e5924a1db0de7d7dffefdeb8ba4fea74072e73f18827c639
Content-Type: application/x-www-form-urlencoded; charset=utf-8
X-Amz-Date: 20180403T143542Z
Accept-Encoding: gzip

Action=GetIdentityNotificationAttributes&Identities.member.1=arn%3Aaws%3Ases%3Aeu-west-1%3AREDACTED%3Aidentity%2Ffyfaz37w7e.terraformtesting.com&Version=2010-12-01
-----------------------------------------------------
2018/04/03 14:35:42 [DEBUG] [aws-sdk-go] DEBUG: Response email/GetIdentityNotificationAttributes Details:
---[ RESPONSE ]--------------------------------------
HTTP/1.1 200 OK
Connection: close
Content-Length: 887
Content-Type: text/xml
Date: Tue, 03 Apr 2018 14:35:42 GMT
X-Amzn-Requestid: 49729c8f-374c-11e8-b58d-a58dd17bb957


-----------------------------------------------------
2018/04/03 14:35:42 [DEBUG] [aws-sdk-go] <GetIdentityNotificationAttributesResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
  <GetIdentityNotificationAttributesResult>
    <NotificationAttributes>
      <entry>
        <key>arn:aws:ses:eu-west-1:REDACTED:identity/fyfaz37w7e.terraformtesting.com</key>
        <value>
          <HeadersInBounceNotificationsEnabled>false</HeadersInBounceNotificationsEnabled>
          <HeadersInDeliveryNotificationsEnabled>false</HeadersInDeliveryNotificationsEnabled>
          <HeadersInComplaintNotificationsEnabled>false</HeadersInComplaintNotificationsEnabled>
          <ForwardingEnabled>true</ForwardingEnabled>
        </value>
      </entry>
    </NotificationAttributes>
  </GetIdentityNotificationAttributesResult>
  <ResponseMetadata>
    <RequestId>49729c8f-374c-11e8-b58d-a58dd17bb957</RequestId>
  </ResponseMetadata>
</GetIdentityNotificationAttributesResponse>
2018/04/03 14:35:42 [DEBUG] [aws-sdk-go] DEBUG: Request email/GetIdentityNotificationAttributes Details:
---[ REQUEST POST-SIGN ]-----------------------------
POST / HTTP/1.1
Host: email.eu-west-1.amazonaws.com
User-Agent: aws-sdk-go/1.13.23 (go1.9.2; linux; amd64) APN/1.0 HashiCorp/1.0 Terraform/0.11.4
Content-Length: 178
Authorization: AWS4-HMAC-SHA256 Credential=REDACTED/20180403/eu-west-1/ses/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=4d0bd4445d634d77723f8be788b80eab50f32c4d774780b5de54d3c89e40ecfc
Content-Type: application/x-www-form-urlencoded; charset=utf-8
X-Amz-Date: 20180403T143542Z
Accept-Encoding: gzip

Action=GetIdentityNotificationAttributes&Identities.member.1=arn%3Aaws%3Ases%3Aeu-west-1%3AREDACTED%3Aidentity%2Ffyfaz37w7e.terraformtesting.com%7CDelivery&Version=2010-12-01
-----------------------------------------------------
2018/04/03 14:35:42 [DEBUG] [aws-sdk-go] DEBUG: Response email/GetIdentityNotificationAttributes Details:
---[ RESPONSE ]--------------------------------------
HTTP/1.1 500 Internal Server Error
Connection: close
Content-Length: 224
Content-Type: text/xml
Date: Tue, 03 Apr 2018 14:35:41 GMT
X-Amzn-Requestid: 49905d79-374c-11e8-9526-51f6e95f9401


-----------------------------------------------------
2018/04/03 14:35:42 [DEBUG] [aws-sdk-go] <ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
  <Error>
    <Type>Receiver</Type>
    <Code>InternalFailure</Code>
  </Error>
  <RequestId>49905d79-374c-11e8-9526-51f6e95f9401</RequestId>
</ErrorResponse>
2018/04/03 14:35:42 [DEBUG] [aws-sdk-go] DEBUG: Validate Response email/GetIdentityNotificationAttributes failed, will retry, error InternalFailure:
	status code: 500, request id: 49905d79-374c-11e8-9526-51f6e95f9401
2018/04/03 14:35:42 [DEBUG] [aws-sdk-go] DEBUG: Retrying Request email/GetIdentityNotificationAttributes, attempt 1
2018/04/03 14:35:42 [DEBUG] [aws-sdk-go] DEBUG: Request email/GetIdentityNotificationAttributes Details:

@ghost ghost added the size/L Managed by automation to categorize the size of a PR. label Apr 3, 2018
@bflad
Copy link
Contributor

bflad commented Apr 3, 2018

It might be worth contacting AWS Support about those 500's. Do they also happen in us-east-1 or another region?

@hussfelt
Copy link
Contributor Author

hussfelt commented Apr 3, 2018

@bflad unfortunately yes. Same error in us-east-1.
Contacting support.

@hussfelt
Copy link
Contributor Author

hussfelt commented Apr 4, 2018

@bflad I am starting to believe that I got this wrong.

Could it be that the resources are named wrong and thus connecting to the wrong API endpoints?
I am renaming resources to match "topic" as well now to test.

This is the response from AWS:

Hi,

My name is REDACTED and I will handle your case today.

Looking at the github and your request details, apparently you are sending more information than you should.

I've decoded the query string present in your request, and I got this:
arn:aws:ses:eu-west-1:REDACTED:identity/fyfaz37w7e.terraformtesting.com|Delivery
arn:aws:ses:us-east-1:REDACTED:identity/wubqsu9chp.terraformtesting.com|Complaint

The |Delivery (Complaint as well) is a shouldn't be there and it cause ses api endpoint to trow the error.
Action=GetIdentityNotificationAttributes&Identities.member.1=arn%3Aaws%3Ases%3Aus-east-1%3A625219984133%3Aidentity%2Fwubqsu9chp.terraformtesting.com%7CComplaint&Version=2010-12-01

it should be only the ARN or Identity name (encoded, of course).

However, by some reason your request is appending |Delivery (or |Complaint) after the ARN. Which breaks the api endpoint.

If you check the REST API doc, it does not include option/parameter for you to specify the type of Notification to get the attribute from. It does list all.
https://docs.aws.amazon.com/ses/latest/APIReference/API_GetIdentityNotificationAttributes.html

Can you please let me know if I can help you further or if that does not fix the issue?

Best regards,

REDACTED.
Amazon Web Services

@ghost ghost added the size/L Managed by automation to categorize the size of a PR. label Apr 4, 2018
@hussfelt
Copy link
Contributor Author

hussfelt commented Apr 4, 2018

@bflad the rename has nothing to do with it, but makes sense.
Working on figuring out why GetIdentityNotificationAttributes attaches Complaint to the request.

@hussfelt
Copy link
Contributor Author

hussfelt commented Apr 4, 2018

@bflad found the cause, I am passing our concatenated ID into the API, which also contains the type.
Fixing that now.

@ghost ghost added the size/L Managed by automation to categorize the size of a PR. label Apr 4, 2018
@hussfelt
Copy link
Contributor Author

hussfelt commented Apr 4, 2018

@bflad Acceptance test passing:

--- PASS: TestAccAwsSESIdentityNotificationTopic_basic (51.30s)
PASS
ok  	github.com/terraform-providers/terraform-provider-aws/aws	51.336s

Hope we're done :)
I learnt a great deal here, thanks!

@bflad bflad removed the waiting-response Maintainers are waiting on response from community or contributor. label Apr 4, 2018
@bflad bflad added this to the v1.14.0 milestone Apr 4, 2018
@bflad bflad self-requested a review April 4, 2018 15:35
Copy link
Contributor

@bflad bflad left a comment

Choose a reason for hiding this comment

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

LGTM -- thanks for spending the time to work through this! 🎉

1 test passed (all tests)
=== RUN   TestAccAwsSESIdentityNotificationTopic_basic
--- PASS: TestAccAwsSESIdentityNotificationTopic_basic (11.59s)

@bflad bflad merged commit b0b0cd8 into hashicorp:master Apr 4, 2018
@hussfelt
Copy link
Contributor Author

hussfelt commented Apr 4, 2018

🎉! Thanks!

@benoj
Copy link

benoj commented Apr 5, 2018

@hussfelt thanks for finishing this! Definitely took some massaging :)

@bflad
Copy link
Contributor

bflad commented Apr 6, 2018

This has been released in version 1.14.0 of the AWS provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading.

@ghost
Copy link

ghost commented Apr 6, 2020

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 and limited conversation to collaborators Apr 6, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
new-resource Introduces a new resource. service/ses Issues and PRs that pertain to the ses service. size/L Managed by automation to categorize the size of a PR.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants