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 r/aws_appflow_flow #24017

Merged
merged 35 commits into from
May 10, 2022
Merged
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
550bab5
Register aws_appflow_flow in provider.go
zhelding Apr 4, 2022
5e9c1ab
r/appflow_flow: enumerate attributes
zhelding Apr 4, 2022
4a3753a
r/appflow_flow: add expand functions, set up resourceFlowCreate
zhelding Apr 4, 2022
cb60547
appflow: add wait.go, FlowCreationTimeout
zhelding Apr 4, 2022
26c1c60
r/appflow_flow: add flatten functions, set up resourceFlowRead
zhelding Apr 4, 2022
a3ba694
r/appflow_flow: aws.ToString -> StringValue (aws sdk v1)
zhelding Apr 13, 2022
61d7632
appflow: add generate.go, tags_gen.go
zhelding Apr 13, 2022
8f8db67
provider.go: add appflow import
zhelding Apr 13, 2022
12a68a3
appflow: remove remaining comments from service template
zhelding Apr 13, 2022
6ad5628
appflow: amends code for `make build` success
zhelding Apr 13, 2022
8cc523a
appflow: add ExactlyOneOf to source_connector_properties attributes
zhelding Apr 25, 2022
d8d3a59
Merge branch 'main' into f-appflow-service
zhelding Apr 28, 2022
b3747ed
appflow: remove resource tips from skaff
zhelding Apr 28, 2022
015f843
Revert "appflow: add ExactlyOneOf to source_connector_properties attr…
zhelding May 3, 2022
14e0a9b
appflow: amend flow source_fields attribute
zhelding May 5, 2022
e5a8bb4
appflow: implement passing flow acceptance test
zhelding May 5, 2022
e51dcb3
appflow: set ForceNew on appropriate flow attributes
zhelding May 5, 2022
d1ced1d
appflow: add flow import support
zhelding May 5, 2022
4a156b6
appflow: add testAccCheckFlowDestroy
zhelding May 5, 2022
53f36cd
appflow: add flow disappears test
zhelding May 5, 2022
93f254a
appflow: add SetAttribute checks for all required flow attributes
zhelding May 5, 2022
fc1af42
appflow: add flow update acceptance test
zhelding May 5, 2022
75c86fa
appflow: add flow tags acceptance test
zhelding May 5, 2022
bfd817d
run terrafmt
zhelding May 5, 2022
2aab452
appflow: add comment re: lack of LookoutMetrics API reference
zhelding May 5, 2022
ef673e3
appflow: add flow docs
zhelding May 5, 2022
9b2bea8
appflow: specify Elem fields for TypeMap attributes
zhelding May 8, 2022
e82d46a
appflow: add attributes byline to docs
zhelding May 8, 2022
41f20cb
appflow: fix golangci-lint errors
zhelding May 8, 2022
7c780cf
appflow: remove superfluous Computed for task_properties
zhelding May 8, 2022
01d7d51
appflow: fix providerlint errors
zhelding May 8, 2022
7923962
appflow: add flow resource changelog entry
zhelding May 8, 2022
80317b6
appflow: amend LookoutMetrics w/ proper type assertions
zhelding May 9, 2022
d27ee28
appflow: add missing source connector properties doc entries
zhelding May 9, 2022
17b5b27
appflow: use WaitForStateContext function in waiter
zhelding May 10, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .changelog/24017.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:new-resource
aws_appflow_flow
```
3 changes: 3 additions & 0 deletions internal/provider/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import (
"github.com/hashicorp/terraform-provider-aws/internal/service/apigatewayv2"
"github.com/hashicorp/terraform-provider-aws/internal/service/appautoscaling"
"github.com/hashicorp/terraform-provider-aws/internal/service/appconfig"
"github.com/hashicorp/terraform-provider-aws/internal/service/appflow"
"github.com/hashicorp/terraform-provider-aws/internal/service/appmesh"
"github.com/hashicorp/terraform-provider-aws/internal/service/apprunner"
"github.com/hashicorp/terraform-provider-aws/internal/service/appstream"
Expand Down Expand Up @@ -946,6 +947,8 @@ func Provider() *schema.Provider {
"aws_appautoscaling_scheduled_action": appautoscaling.ResourceScheduledAction(),
"aws_appautoscaling_target": appautoscaling.ResourceTarget(),

"aws_appflow_flow": appflow.ResourceFlow(),

"aws_appmesh_gateway_route": appmesh.ResourceGatewayRoute(),
"aws_appmesh_mesh": appmesh.ResourceMesh(),
"aws_appmesh_route": appmesh.ResourceRoute(),
Expand Down
54 changes: 54 additions & 0 deletions internal/service/appflow/find.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package appflow

import (
"context"
"fmt"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/appflow"
"github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2/tfawserr"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)

func FindFlowByArn(ctx context.Context, conn *appflow.Appflow, arn string) (*appflow.FlowDefinition, error) {
in := &appflow.ListFlowsInput{}
var result *appflow.FlowDefinition

err := conn.ListFlowsPagesWithContext(ctx, in, func(page *appflow.ListFlowsOutput, lastPage bool) bool {
if page == nil {
return !lastPage
}

for _, flow := range page.Flows {
if flow == nil {
continue
}

if aws.StringValue(flow.FlowArn) == arn {
result = flow
return false
}
}
return !lastPage
})

if tfawserr.ErrCodeEquals(err, appflow.ErrCodeResourceNotFoundException) {
return nil, &resource.NotFoundError{
LastError: err,
LastRequest: in,
}
}

if err != nil {
return nil, err
}

if result == nil {
return nil, &resource.NotFoundError{
Message: fmt.Sprintf("No flow with arn %q", arn),
LastRequest: in,
}
}

return result, nil
}
Loading