From fa7a506f7b2ac6a6b19be409d0679f64fb792e9c Mon Sep 17 00:00:00 2001 From: bbernays Date: Thu, 29 Jun 2023 13:33:28 -0400 Subject: [PATCH 1/7] initial --- .../route53resolver/firewall_configs.go | 43 ++++++++++++++ .../route53resolver/firewall_domains.go | 56 +++++++++++++++++++ .../firewall_rule_group_associations.go | 56 +++++++++++++++++++ .../route53resolver/firewall_rule_groups.go | 56 +++++++++++++++++++ 4 files changed, 211 insertions(+) create mode 100644 plugins/source/aws/resources/services/route53resolver/firewall_configs.go create mode 100644 plugins/source/aws/resources/services/route53resolver/firewall_domains.go create mode 100644 plugins/source/aws/resources/services/route53resolver/firewall_rule_group_associations.go create mode 100644 plugins/source/aws/resources/services/route53resolver/firewall_rule_groups.go diff --git a/plugins/source/aws/resources/services/route53resolver/firewall_configs.go b/plugins/source/aws/resources/services/route53resolver/firewall_configs.go new file mode 100644 index 00000000000000..2aa1f82ea6776e --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/firewall_configs.go @@ -0,0 +1,43 @@ +package route53resolver + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/plugin-sdk/v3/schema" + "github.com/cloudquery/plugin-sdk/v3/transformers" +) + +func FirewallConfigs() *schema.Table { + tableName := "aws_route53resolver_firewall_configs" + return &schema.Table{ + Name: tableName, + Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetDomainDetail.html`, + Resolver: fetchFirewallConfigs, + Transform: transformers.TransformWithStruct(&types.FirewallConfig{}, transformers.WithPrimaryKeys("Id")), + Multiplex: client.ServiceAccountRegionMultiplexer(tableName, "route53resolver"), + Columns: []schema.Column{ + client.DefaultAccountIDColumn(true), + client.DefaultRegionColumn(true), + }, + } +} + +func fetchFirewallConfigs(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { + cl := meta.(*client.Client) + svc := cl.Services().Route53resolver + var input route53resolver.ListFirewallConfigsInput + paginator := route53resolver.NewListFirewallConfigsPaginator(svc, &input) + for paginator.HasMorePages() { + page, err := paginator.NextPage(ctx, func(options *route53resolver.Options) { + options.Region = cl.Region + }) + if err != nil { + return err + } + res <- page.FirewallConfigs + } + return nil +} diff --git a/plugins/source/aws/resources/services/route53resolver/firewall_domains.go b/plugins/source/aws/resources/services/route53resolver/firewall_domains.go new file mode 100644 index 00000000000000..4e91f69e5f3173 --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/firewall_domains.go @@ -0,0 +1,56 @@ +package route53resolver + +import ( + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/plugin-sdk/v3/schema" + "github.com/cloudquery/plugin-sdk/v3/transformers" +) + +func FirewallDomains() *schema.Table { + tableName := "aws_route53resolver_firewall_domain_lists" + return &schema.Table{ + Name: tableName, + Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetDomainDetail.html`, + Resolver: fetchFirewallDomainList, + PreResourceResolver: getFirewallDomainList, + Transform: transformers.TransformWithStruct(&types.FirewallDomainList{}, transformers.WithPrimaryKeys("Arn")), + Multiplex: client.ServiceAccountRegionMultiplexer(tableName, "route53resolver"), + Columns: []schema.Column{ + client.DefaultAccountIDColumn(false), + }, + } +} + +// func fetchFirewallDomainList(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { +// cl := meta.(*client.Client) +// svc := cl.Services().Route53resolver +// var input route53resolver.ListFirewallDomainListsInput +// paginator := route53resolver.NewListFirewallDomainListsPaginator(svc, &input) +// for paginator.HasMorePages() { +// page, err := paginator.NextPage(ctx, func(options *route53resolver.Options) { +// options.Region = cl.Region +// }) +// if err != nil { +// return err +// } +// res <- page.FirewallDomainLists +// } +// return nil +// } +// func getFirewallDomainList(ctx context.Context, meta schema.ClientMeta, resource *schema.Resource) error { +// cl := meta.(*client.Client) +// svc := cl.Services().Route53resolver +// v := resource.Item.(types.FirewallDomainListMetadata) + +// d, err := svc.GetFirewallDomainList(ctx, &route53resolver.GetFirewallDomainListInput{FirewallDomainListId: v.Id}, func(options *route53resolver.Options) { +// options.Region = cl.Region +// }) +// if err != nil { +// return err +// } + +// resource.Item = d.FirewallDomainList + +// return nil +// } diff --git a/plugins/source/aws/resources/services/route53resolver/firewall_rule_group_associations.go b/plugins/source/aws/resources/services/route53resolver/firewall_rule_group_associations.go new file mode 100644 index 00000000000000..b2a0a0dcbf7112 --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/firewall_rule_group_associations.go @@ -0,0 +1,56 @@ +package route53resolver + +import ( + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/plugin-sdk/v3/schema" + "github.com/cloudquery/plugin-sdk/v3/transformers" +) + +func FirewallRuleGroupAssociations() *schema.Table { + tableName := "aws_route53resolver_firewall_domain_lists" + return &schema.Table{ + Name: tableName, + Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetDomainDetail.html`, + Resolver: fetchFirewallDomainList, + PreResourceResolver: getFirewallDomainList, + Transform: transformers.TransformWithStruct(&types.FirewallDomainList{}, transformers.WithPrimaryKeys("Arn")), + Multiplex: client.ServiceAccountRegionMultiplexer(tableName, "route53resolver"), + Columns: []schema.Column{ + client.DefaultAccountIDColumn(false), + }, + } +} + +// func fetchFirewallDomainList(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { +// cl := meta.(*client.Client) +// svc := cl.Services().Route53resolver +// var input route53resolver.ListFirewallDomainListsInput +// paginator := route53resolver.NewListFirewallDomainListsPaginator(svc, &input) +// for paginator.HasMorePages() { +// page, err := paginator.NextPage(ctx, func(options *route53resolver.Options) { +// options.Region = cl.Region +// }) +// if err != nil { +// return err +// } +// res <- page.FirewallDomainLists +// } +// return nil +// } +// func getFirewallDomainList(ctx context.Context, meta schema.ClientMeta, resource *schema.Resource) error { +// cl := meta.(*client.Client) +// svc := cl.Services().Route53resolver +// v := resource.Item.(types.FirewallDomainListMetadata) + +// d, err := svc.GetFirewallDomainList(ctx, &route53resolver.GetFirewallDomainListInput{FirewallDomainListId: v.Id}, func(options *route53resolver.Options) { +// options.Region = cl.Region +// }) +// if err != nil { +// return err +// } + +// resource.Item = d.FirewallDomainList + +// return nil +// } diff --git a/plugins/source/aws/resources/services/route53resolver/firewall_rule_groups.go b/plugins/source/aws/resources/services/route53resolver/firewall_rule_groups.go new file mode 100644 index 00000000000000..7bcabf90030328 --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/firewall_rule_groups.go @@ -0,0 +1,56 @@ +package route53resolver + +import ( + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/plugin-sdk/v3/schema" + "github.com/cloudquery/plugin-sdk/v3/transformers" +) + +func FirewallRuleGroups() *schema.Table { + tableName := "aws_route53resolver_firewall_domain_lists" + return &schema.Table{ + Name: tableName, + Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetDomainDetail.html`, + Resolver: fetchFirewallDomainList, + PreResourceResolver: getFirewallDomainList, + Transform: transformers.TransformWithStruct(&types.FirewallDomainList{}, transformers.WithPrimaryKeys("Arn")), + Multiplex: client.ServiceAccountRegionMultiplexer(tableName, "route53resolver"), + Columns: []schema.Column{ + client.DefaultAccountIDColumn(false), + }, + } +} + +// func fetchFirewallDomainList(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { +// cl := meta.(*client.Client) +// svc := cl.Services().Route53resolver +// var input route53resolver.ListFirewallDomainListsInput +// paginator := route53resolver.NewListFirewallDomainListsPaginator(svc, &input) +// for paginator.HasMorePages() { +// page, err := paginator.NextPage(ctx, func(options *route53resolver.Options) { +// options.Region = cl.Region +// }) +// if err != nil { +// return err +// } +// res <- page.FirewallDomainLists +// } +// return nil +// } +// func getFirewallDomainList(ctx context.Context, meta schema.ClientMeta, resource *schema.Resource) error { +// cl := meta.(*client.Client) +// svc := cl.Services().Route53resolver +// v := resource.Item.(types.FirewallDomainListMetadata) + +// d, err := svc.GetFirewallDomainList(ctx, &route53resolver.GetFirewallDomainListInput{FirewallDomainListId: v.Id}, func(options *route53resolver.Options) { +// options.Region = cl.Region +// }) +// if err != nil { +// return err +// } + +// resource.Item = d.FirewallDomainList + +// return nil +// } From 6e7e55a34676626a96fff26a02b8a1a81ce96139 Mon Sep 17 00:00:00 2001 From: bbernays Date: Thu, 29 Jun 2023 14:04:17 -0400 Subject: [PATCH 2/7] continue --- .../aws/client/mocks/route53resolver.go | 906 ++++++++++++++++++ plugins/source/aws/client/services.go | 3 + .../aws/client/services/route53resolver.go | 40 + plugins/source/aws/go.mod | 1 + plugins/source/aws/go.sum | 2 + .../route53resolver/firewall_configs.go | 2 +- .../route53resolver/firewall_domain_list.go | 60 ++ .../route53resolver/firewall_domains.go | 56 -- .../firewall_rule_group_associations.go | 65 +- .../route53resolver/firewall_rule_groups.go | 79 +- 10 files changed, 1081 insertions(+), 133 deletions(-) create mode 100644 plugins/source/aws/client/mocks/route53resolver.go create mode 100644 plugins/source/aws/client/services/route53resolver.go create mode 100644 plugins/source/aws/resources/services/route53resolver/firewall_domain_list.go delete mode 100644 plugins/source/aws/resources/services/route53resolver/firewall_domains.go diff --git a/plugins/source/aws/client/mocks/route53resolver.go b/plugins/source/aws/client/mocks/route53resolver.go new file mode 100644 index 00000000000000..79f7543e1e4233 --- /dev/null +++ b/plugins/source/aws/client/mocks/route53resolver.go @@ -0,0 +1,906 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: route53resolver.go + +// Package mocks is a generated GoMock package. +package mocks + +import ( + context "context" + reflect "reflect" + + route53resolver "github.com/aws/aws-sdk-go-v2/service/route53resolver" + gomock "github.com/golang/mock/gomock" +) + +// MockRoute53resolverClient is a mock of Route53resolverClient interface. +type MockRoute53resolverClient struct { + ctrl *gomock.Controller + recorder *MockRoute53resolverClientMockRecorder +} + +// MockRoute53resolverClientMockRecorder is the mock recorder for MockRoute53resolverClient. +type MockRoute53resolverClientMockRecorder struct { + mock *MockRoute53resolverClient +} + +// NewMockRoute53resolverClient creates a new mock instance. +func NewMockRoute53resolverClient(ctrl *gomock.Controller) *MockRoute53resolverClient { + mock := &MockRoute53resolverClient{ctrl: ctrl} + mock.recorder = &MockRoute53resolverClientMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockRoute53resolverClient) EXPECT() *MockRoute53resolverClientMockRecorder { + return m.recorder +} + +// GetFirewallConfig mocks base method. +func (m *MockRoute53resolverClient) GetFirewallConfig(arg0 context.Context, arg1 *route53resolver.GetFirewallConfigInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.GetFirewallConfigOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to GetFirewallConfig") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetFirewallConfig", varargs...) + ret0, _ := ret[0].(*route53resolver.GetFirewallConfigOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetFirewallConfig indicates an expected call of GetFirewallConfig. +func (mr *MockRoute53resolverClientMockRecorder) GetFirewallConfig(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFirewallConfig", reflect.TypeOf((*MockRoute53resolverClient)(nil).GetFirewallConfig), varargs...) +} + +// GetFirewallDomainList mocks base method. +func (m *MockRoute53resolverClient) GetFirewallDomainList(arg0 context.Context, arg1 *route53resolver.GetFirewallDomainListInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.GetFirewallDomainListOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to GetFirewallDomainList") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetFirewallDomainList", varargs...) + ret0, _ := ret[0].(*route53resolver.GetFirewallDomainListOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetFirewallDomainList indicates an expected call of GetFirewallDomainList. +func (mr *MockRoute53resolverClientMockRecorder) GetFirewallDomainList(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFirewallDomainList", reflect.TypeOf((*MockRoute53resolverClient)(nil).GetFirewallDomainList), varargs...) +} + +// GetFirewallRuleGroup mocks base method. +func (m *MockRoute53resolverClient) GetFirewallRuleGroup(arg0 context.Context, arg1 *route53resolver.GetFirewallRuleGroupInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.GetFirewallRuleGroupOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to GetFirewallRuleGroup") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetFirewallRuleGroup", varargs...) + ret0, _ := ret[0].(*route53resolver.GetFirewallRuleGroupOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetFirewallRuleGroup indicates an expected call of GetFirewallRuleGroup. +func (mr *MockRoute53resolverClientMockRecorder) GetFirewallRuleGroup(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFirewallRuleGroup", reflect.TypeOf((*MockRoute53resolverClient)(nil).GetFirewallRuleGroup), varargs...) +} + +// GetFirewallRuleGroupAssociation mocks base method. +func (m *MockRoute53resolverClient) GetFirewallRuleGroupAssociation(arg0 context.Context, arg1 *route53resolver.GetFirewallRuleGroupAssociationInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.GetFirewallRuleGroupAssociationOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to GetFirewallRuleGroupAssociation") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetFirewallRuleGroupAssociation", varargs...) + ret0, _ := ret[0].(*route53resolver.GetFirewallRuleGroupAssociationOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetFirewallRuleGroupAssociation indicates an expected call of GetFirewallRuleGroupAssociation. +func (mr *MockRoute53resolverClientMockRecorder) GetFirewallRuleGroupAssociation(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFirewallRuleGroupAssociation", reflect.TypeOf((*MockRoute53resolverClient)(nil).GetFirewallRuleGroupAssociation), varargs...) +} + +// GetFirewallRuleGroupPolicy mocks base method. +func (m *MockRoute53resolverClient) GetFirewallRuleGroupPolicy(arg0 context.Context, arg1 *route53resolver.GetFirewallRuleGroupPolicyInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.GetFirewallRuleGroupPolicyOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to GetFirewallRuleGroupPolicy") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetFirewallRuleGroupPolicy", varargs...) + ret0, _ := ret[0].(*route53resolver.GetFirewallRuleGroupPolicyOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetFirewallRuleGroupPolicy indicates an expected call of GetFirewallRuleGroupPolicy. +func (mr *MockRoute53resolverClientMockRecorder) GetFirewallRuleGroupPolicy(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFirewallRuleGroupPolicy", reflect.TypeOf((*MockRoute53resolverClient)(nil).GetFirewallRuleGroupPolicy), varargs...) +} + +// GetResolverConfig mocks base method. +func (m *MockRoute53resolverClient) GetResolverConfig(arg0 context.Context, arg1 *route53resolver.GetResolverConfigInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.GetResolverConfigOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to GetResolverConfig") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetResolverConfig", varargs...) + ret0, _ := ret[0].(*route53resolver.GetResolverConfigOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetResolverConfig indicates an expected call of GetResolverConfig. +func (mr *MockRoute53resolverClientMockRecorder) GetResolverConfig(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetResolverConfig", reflect.TypeOf((*MockRoute53resolverClient)(nil).GetResolverConfig), varargs...) +} + +// GetResolverDnssecConfig mocks base method. +func (m *MockRoute53resolverClient) GetResolverDnssecConfig(arg0 context.Context, arg1 *route53resolver.GetResolverDnssecConfigInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.GetResolverDnssecConfigOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to GetResolverDnssecConfig") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetResolverDnssecConfig", varargs...) + ret0, _ := ret[0].(*route53resolver.GetResolverDnssecConfigOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetResolverDnssecConfig indicates an expected call of GetResolverDnssecConfig. +func (mr *MockRoute53resolverClientMockRecorder) GetResolverDnssecConfig(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetResolverDnssecConfig", reflect.TypeOf((*MockRoute53resolverClient)(nil).GetResolverDnssecConfig), varargs...) +} + +// GetResolverEndpoint mocks base method. +func (m *MockRoute53resolverClient) GetResolverEndpoint(arg0 context.Context, arg1 *route53resolver.GetResolverEndpointInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.GetResolverEndpointOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to GetResolverEndpoint") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetResolverEndpoint", varargs...) + ret0, _ := ret[0].(*route53resolver.GetResolverEndpointOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetResolverEndpoint indicates an expected call of GetResolverEndpoint. +func (mr *MockRoute53resolverClientMockRecorder) GetResolverEndpoint(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetResolverEndpoint", reflect.TypeOf((*MockRoute53resolverClient)(nil).GetResolverEndpoint), varargs...) +} + +// GetResolverQueryLogConfig mocks base method. +func (m *MockRoute53resolverClient) GetResolverQueryLogConfig(arg0 context.Context, arg1 *route53resolver.GetResolverQueryLogConfigInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.GetResolverQueryLogConfigOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to GetResolverQueryLogConfig") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetResolverQueryLogConfig", varargs...) + ret0, _ := ret[0].(*route53resolver.GetResolverQueryLogConfigOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetResolverQueryLogConfig indicates an expected call of GetResolverQueryLogConfig. +func (mr *MockRoute53resolverClientMockRecorder) GetResolverQueryLogConfig(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetResolverQueryLogConfig", reflect.TypeOf((*MockRoute53resolverClient)(nil).GetResolverQueryLogConfig), varargs...) +} + +// GetResolverQueryLogConfigAssociation mocks base method. +func (m *MockRoute53resolverClient) GetResolverQueryLogConfigAssociation(arg0 context.Context, arg1 *route53resolver.GetResolverQueryLogConfigAssociationInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.GetResolverQueryLogConfigAssociationOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to GetResolverQueryLogConfigAssociation") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetResolverQueryLogConfigAssociation", varargs...) + ret0, _ := ret[0].(*route53resolver.GetResolverQueryLogConfigAssociationOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetResolverQueryLogConfigAssociation indicates an expected call of GetResolverQueryLogConfigAssociation. +func (mr *MockRoute53resolverClientMockRecorder) GetResolverQueryLogConfigAssociation(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetResolverQueryLogConfigAssociation", reflect.TypeOf((*MockRoute53resolverClient)(nil).GetResolverQueryLogConfigAssociation), varargs...) +} + +// GetResolverQueryLogConfigPolicy mocks base method. +func (m *MockRoute53resolverClient) GetResolverQueryLogConfigPolicy(arg0 context.Context, arg1 *route53resolver.GetResolverQueryLogConfigPolicyInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.GetResolverQueryLogConfigPolicyOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to GetResolverQueryLogConfigPolicy") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetResolverQueryLogConfigPolicy", varargs...) + ret0, _ := ret[0].(*route53resolver.GetResolverQueryLogConfigPolicyOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetResolverQueryLogConfigPolicy indicates an expected call of GetResolverQueryLogConfigPolicy. +func (mr *MockRoute53resolverClientMockRecorder) GetResolverQueryLogConfigPolicy(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetResolverQueryLogConfigPolicy", reflect.TypeOf((*MockRoute53resolverClient)(nil).GetResolverQueryLogConfigPolicy), varargs...) +} + +// GetResolverRule mocks base method. +func (m *MockRoute53resolverClient) GetResolverRule(arg0 context.Context, arg1 *route53resolver.GetResolverRuleInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.GetResolverRuleOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to GetResolverRule") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetResolverRule", varargs...) + ret0, _ := ret[0].(*route53resolver.GetResolverRuleOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetResolverRule indicates an expected call of GetResolverRule. +func (mr *MockRoute53resolverClientMockRecorder) GetResolverRule(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetResolverRule", reflect.TypeOf((*MockRoute53resolverClient)(nil).GetResolverRule), varargs...) +} + +// GetResolverRuleAssociation mocks base method. +func (m *MockRoute53resolverClient) GetResolverRuleAssociation(arg0 context.Context, arg1 *route53resolver.GetResolverRuleAssociationInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.GetResolverRuleAssociationOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to GetResolverRuleAssociation") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetResolverRuleAssociation", varargs...) + ret0, _ := ret[0].(*route53resolver.GetResolverRuleAssociationOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetResolverRuleAssociation indicates an expected call of GetResolverRuleAssociation. +func (mr *MockRoute53resolverClientMockRecorder) GetResolverRuleAssociation(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetResolverRuleAssociation", reflect.TypeOf((*MockRoute53resolverClient)(nil).GetResolverRuleAssociation), varargs...) +} + +// GetResolverRulePolicy mocks base method. +func (m *MockRoute53resolverClient) GetResolverRulePolicy(arg0 context.Context, arg1 *route53resolver.GetResolverRulePolicyInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.GetResolverRulePolicyOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to GetResolverRulePolicy") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetResolverRulePolicy", varargs...) + ret0, _ := ret[0].(*route53resolver.GetResolverRulePolicyOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetResolverRulePolicy indicates an expected call of GetResolverRulePolicy. +func (mr *MockRoute53resolverClientMockRecorder) GetResolverRulePolicy(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetResolverRulePolicy", reflect.TypeOf((*MockRoute53resolverClient)(nil).GetResolverRulePolicy), varargs...) +} + +// ListFirewallConfigs mocks base method. +func (m *MockRoute53resolverClient) ListFirewallConfigs(arg0 context.Context, arg1 *route53resolver.ListFirewallConfigsInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.ListFirewallConfigsOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to ListFirewallConfigs") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListFirewallConfigs", varargs...) + ret0, _ := ret[0].(*route53resolver.ListFirewallConfigsOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListFirewallConfigs indicates an expected call of ListFirewallConfigs. +func (mr *MockRoute53resolverClientMockRecorder) ListFirewallConfigs(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListFirewallConfigs", reflect.TypeOf((*MockRoute53resolverClient)(nil).ListFirewallConfigs), varargs...) +} + +// ListFirewallDomainLists mocks base method. +func (m *MockRoute53resolverClient) ListFirewallDomainLists(arg0 context.Context, arg1 *route53resolver.ListFirewallDomainListsInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.ListFirewallDomainListsOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to ListFirewallDomainLists") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListFirewallDomainLists", varargs...) + ret0, _ := ret[0].(*route53resolver.ListFirewallDomainListsOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListFirewallDomainLists indicates an expected call of ListFirewallDomainLists. +func (mr *MockRoute53resolverClientMockRecorder) ListFirewallDomainLists(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListFirewallDomainLists", reflect.TypeOf((*MockRoute53resolverClient)(nil).ListFirewallDomainLists), varargs...) +} + +// ListFirewallDomains mocks base method. +func (m *MockRoute53resolverClient) ListFirewallDomains(arg0 context.Context, arg1 *route53resolver.ListFirewallDomainsInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.ListFirewallDomainsOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to ListFirewallDomains") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListFirewallDomains", varargs...) + ret0, _ := ret[0].(*route53resolver.ListFirewallDomainsOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListFirewallDomains indicates an expected call of ListFirewallDomains. +func (mr *MockRoute53resolverClientMockRecorder) ListFirewallDomains(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListFirewallDomains", reflect.TypeOf((*MockRoute53resolverClient)(nil).ListFirewallDomains), varargs...) +} + +// ListFirewallRuleGroupAssociations mocks base method. +func (m *MockRoute53resolverClient) ListFirewallRuleGroupAssociations(arg0 context.Context, arg1 *route53resolver.ListFirewallRuleGroupAssociationsInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.ListFirewallRuleGroupAssociationsOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to ListFirewallRuleGroupAssociations") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListFirewallRuleGroupAssociations", varargs...) + ret0, _ := ret[0].(*route53resolver.ListFirewallRuleGroupAssociationsOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListFirewallRuleGroupAssociations indicates an expected call of ListFirewallRuleGroupAssociations. +func (mr *MockRoute53resolverClientMockRecorder) ListFirewallRuleGroupAssociations(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListFirewallRuleGroupAssociations", reflect.TypeOf((*MockRoute53resolverClient)(nil).ListFirewallRuleGroupAssociations), varargs...) +} + +// ListFirewallRuleGroups mocks base method. +func (m *MockRoute53resolverClient) ListFirewallRuleGroups(arg0 context.Context, arg1 *route53resolver.ListFirewallRuleGroupsInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.ListFirewallRuleGroupsOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to ListFirewallRuleGroups") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListFirewallRuleGroups", varargs...) + ret0, _ := ret[0].(*route53resolver.ListFirewallRuleGroupsOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListFirewallRuleGroups indicates an expected call of ListFirewallRuleGroups. +func (mr *MockRoute53resolverClientMockRecorder) ListFirewallRuleGroups(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListFirewallRuleGroups", reflect.TypeOf((*MockRoute53resolverClient)(nil).ListFirewallRuleGroups), varargs...) +} + +// ListFirewallRules mocks base method. +func (m *MockRoute53resolverClient) ListFirewallRules(arg0 context.Context, arg1 *route53resolver.ListFirewallRulesInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.ListFirewallRulesOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to ListFirewallRules") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListFirewallRules", varargs...) + ret0, _ := ret[0].(*route53resolver.ListFirewallRulesOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListFirewallRules indicates an expected call of ListFirewallRules. +func (mr *MockRoute53resolverClientMockRecorder) ListFirewallRules(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListFirewallRules", reflect.TypeOf((*MockRoute53resolverClient)(nil).ListFirewallRules), varargs...) +} + +// ListResolverConfigs mocks base method. +func (m *MockRoute53resolverClient) ListResolverConfigs(arg0 context.Context, arg1 *route53resolver.ListResolverConfigsInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.ListResolverConfigsOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to ListResolverConfigs") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListResolverConfigs", varargs...) + ret0, _ := ret[0].(*route53resolver.ListResolverConfigsOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListResolverConfigs indicates an expected call of ListResolverConfigs. +func (mr *MockRoute53resolverClientMockRecorder) ListResolverConfigs(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListResolverConfigs", reflect.TypeOf((*MockRoute53resolverClient)(nil).ListResolverConfigs), varargs...) +} + +// ListResolverDnssecConfigs mocks base method. +func (m *MockRoute53resolverClient) ListResolverDnssecConfigs(arg0 context.Context, arg1 *route53resolver.ListResolverDnssecConfigsInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.ListResolverDnssecConfigsOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to ListResolverDnssecConfigs") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListResolverDnssecConfigs", varargs...) + ret0, _ := ret[0].(*route53resolver.ListResolverDnssecConfigsOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListResolverDnssecConfigs indicates an expected call of ListResolverDnssecConfigs. +func (mr *MockRoute53resolverClientMockRecorder) ListResolverDnssecConfigs(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListResolverDnssecConfigs", reflect.TypeOf((*MockRoute53resolverClient)(nil).ListResolverDnssecConfigs), varargs...) +} + +// ListResolverEndpointIpAddresses mocks base method. +func (m *MockRoute53resolverClient) ListResolverEndpointIpAddresses(arg0 context.Context, arg1 *route53resolver.ListResolverEndpointIpAddressesInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.ListResolverEndpointIpAddressesOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to ListResolverEndpointIpAddresses") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListResolverEndpointIpAddresses", varargs...) + ret0, _ := ret[0].(*route53resolver.ListResolverEndpointIpAddressesOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListResolverEndpointIpAddresses indicates an expected call of ListResolverEndpointIpAddresses. +func (mr *MockRoute53resolverClientMockRecorder) ListResolverEndpointIpAddresses(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListResolverEndpointIpAddresses", reflect.TypeOf((*MockRoute53resolverClient)(nil).ListResolverEndpointIpAddresses), varargs...) +} + +// ListResolverEndpoints mocks base method. +func (m *MockRoute53resolverClient) ListResolverEndpoints(arg0 context.Context, arg1 *route53resolver.ListResolverEndpointsInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.ListResolverEndpointsOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to ListResolverEndpoints") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListResolverEndpoints", varargs...) + ret0, _ := ret[0].(*route53resolver.ListResolverEndpointsOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListResolverEndpoints indicates an expected call of ListResolverEndpoints. +func (mr *MockRoute53resolverClientMockRecorder) ListResolverEndpoints(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListResolverEndpoints", reflect.TypeOf((*MockRoute53resolverClient)(nil).ListResolverEndpoints), varargs...) +} + +// ListResolverQueryLogConfigAssociations mocks base method. +func (m *MockRoute53resolverClient) ListResolverQueryLogConfigAssociations(arg0 context.Context, arg1 *route53resolver.ListResolverQueryLogConfigAssociationsInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.ListResolverQueryLogConfigAssociationsOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to ListResolverQueryLogConfigAssociations") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListResolverQueryLogConfigAssociations", varargs...) + ret0, _ := ret[0].(*route53resolver.ListResolverQueryLogConfigAssociationsOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListResolverQueryLogConfigAssociations indicates an expected call of ListResolverQueryLogConfigAssociations. +func (mr *MockRoute53resolverClientMockRecorder) ListResolverQueryLogConfigAssociations(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListResolverQueryLogConfigAssociations", reflect.TypeOf((*MockRoute53resolverClient)(nil).ListResolverQueryLogConfigAssociations), varargs...) +} + +// ListResolverQueryLogConfigs mocks base method. +func (m *MockRoute53resolverClient) ListResolverQueryLogConfigs(arg0 context.Context, arg1 *route53resolver.ListResolverQueryLogConfigsInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.ListResolverQueryLogConfigsOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to ListResolverQueryLogConfigs") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListResolverQueryLogConfigs", varargs...) + ret0, _ := ret[0].(*route53resolver.ListResolverQueryLogConfigsOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListResolverQueryLogConfigs indicates an expected call of ListResolverQueryLogConfigs. +func (mr *MockRoute53resolverClientMockRecorder) ListResolverQueryLogConfigs(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListResolverQueryLogConfigs", reflect.TypeOf((*MockRoute53resolverClient)(nil).ListResolverQueryLogConfigs), varargs...) +} + +// ListResolverRuleAssociations mocks base method. +func (m *MockRoute53resolverClient) ListResolverRuleAssociations(arg0 context.Context, arg1 *route53resolver.ListResolverRuleAssociationsInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.ListResolverRuleAssociationsOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to ListResolverRuleAssociations") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListResolverRuleAssociations", varargs...) + ret0, _ := ret[0].(*route53resolver.ListResolverRuleAssociationsOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListResolverRuleAssociations indicates an expected call of ListResolverRuleAssociations. +func (mr *MockRoute53resolverClientMockRecorder) ListResolverRuleAssociations(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListResolverRuleAssociations", reflect.TypeOf((*MockRoute53resolverClient)(nil).ListResolverRuleAssociations), varargs...) +} + +// ListResolverRules mocks base method. +func (m *MockRoute53resolverClient) ListResolverRules(arg0 context.Context, arg1 *route53resolver.ListResolverRulesInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.ListResolverRulesOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to ListResolverRules") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListResolverRules", varargs...) + ret0, _ := ret[0].(*route53resolver.ListResolverRulesOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListResolverRules indicates an expected call of ListResolverRules. +func (mr *MockRoute53resolverClientMockRecorder) ListResolverRules(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListResolverRules", reflect.TypeOf((*MockRoute53resolverClient)(nil).ListResolverRules), varargs...) +} + +// ListTagsForResource mocks base method. +func (m *MockRoute53resolverClient) ListTagsForResource(arg0 context.Context, arg1 *route53resolver.ListTagsForResourceInput, arg2 ...func(*route53resolver.Options)) (*route53resolver.ListTagsForResourceOutput, error) { + + // Assertion inserted by client/mockgen/main.go + o := &route53resolver.Options{} + for _, f := range arg2 { + f(o) + } + if o.Region == "" { + m.ctrl.T.Errorf("Region not set in call to ListTagsForResource") + } + + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListTagsForResource", varargs...) + ret0, _ := ret[0].(*route53resolver.ListTagsForResourceOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListTagsForResource indicates an expected call of ListTagsForResource. +func (mr *MockRoute53resolverClientMockRecorder) ListTagsForResource(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTagsForResource", reflect.TypeOf((*MockRoute53resolverClient)(nil).ListTagsForResource), varargs...) +} diff --git a/plugins/source/aws/client/services.go b/plugins/source/aws/client/services.go index 001851c3bfaf67..3b49ff2ffbc70b 100644 --- a/plugins/source/aws/client/services.go +++ b/plugins/source/aws/client/services.go @@ -84,6 +84,7 @@ import ( "github.com/aws/aws-sdk-go-v2/service/resourcegroups" "github.com/aws/aws-sdk-go-v2/service/route53" "github.com/aws/aws-sdk-go-v2/service/route53domains" + "github.com/aws/aws-sdk-go-v2/service/route53resolver" "github.com/aws/aws-sdk-go-v2/service/s3" "github.com/aws/aws-sdk-go-v2/service/s3control" "github.com/aws/aws-sdk-go-v2/service/sagemaker" @@ -202,6 +203,7 @@ func initServices(c aws.Config, regions []string) Services { Resourcegroups: resourcegroups.NewFromConfig(awsCfg), Route53: route53.NewFromConfig(awsCfg), Route53domains: route53domains.NewFromConfig(awsCfg), + Route53resolver: route53resolver.NewFromConfig(awsCfg), S3: s3.NewFromConfig(awsCfg), S3control: s3control.NewFromConfig(awsCfg), Sagemaker: sagemaker.NewFromConfig(awsCfg), @@ -318,6 +320,7 @@ type Services struct { Resiliencehub services.ResiliencehubClient Route53 services.Route53Client Route53domains services.Route53domainsClient + Route53resolver services.Route53resolverClient S3 services.S3Client S3control services.S3controlClient Sagemaker services.SagemakerClient diff --git a/plugins/source/aws/client/services/route53resolver.go b/plugins/source/aws/client/services/route53resolver.go new file mode 100644 index 00000000000000..7e00afc2dcc959 --- /dev/null +++ b/plugins/source/aws/client/services/route53resolver.go @@ -0,0 +1,40 @@ +// Code generated by codegen; DO NOT EDIT. +package services + +import ( + "context" + "github.com/aws/aws-sdk-go-v2/service/route53resolver" +) + +//go:generate mockgen -package=mocks -destination=../mocks/route53resolver.go -source=route53resolver.go Route53resolverClient +type Route53resolverClient interface { + GetFirewallConfig(context.Context, *route53resolver.GetFirewallConfigInput, ...func(*route53resolver.Options)) (*route53resolver.GetFirewallConfigOutput, error) + GetFirewallDomainList(context.Context, *route53resolver.GetFirewallDomainListInput, ...func(*route53resolver.Options)) (*route53resolver.GetFirewallDomainListOutput, error) + GetFirewallRuleGroup(context.Context, *route53resolver.GetFirewallRuleGroupInput, ...func(*route53resolver.Options)) (*route53resolver.GetFirewallRuleGroupOutput, error) + GetFirewallRuleGroupAssociation(context.Context, *route53resolver.GetFirewallRuleGroupAssociationInput, ...func(*route53resolver.Options)) (*route53resolver.GetFirewallRuleGroupAssociationOutput, error) + GetFirewallRuleGroupPolicy(context.Context, *route53resolver.GetFirewallRuleGroupPolicyInput, ...func(*route53resolver.Options)) (*route53resolver.GetFirewallRuleGroupPolicyOutput, error) + GetResolverConfig(context.Context, *route53resolver.GetResolverConfigInput, ...func(*route53resolver.Options)) (*route53resolver.GetResolverConfigOutput, error) + GetResolverDnssecConfig(context.Context, *route53resolver.GetResolverDnssecConfigInput, ...func(*route53resolver.Options)) (*route53resolver.GetResolverDnssecConfigOutput, error) + GetResolverEndpoint(context.Context, *route53resolver.GetResolverEndpointInput, ...func(*route53resolver.Options)) (*route53resolver.GetResolverEndpointOutput, error) + GetResolverQueryLogConfig(context.Context, *route53resolver.GetResolverQueryLogConfigInput, ...func(*route53resolver.Options)) (*route53resolver.GetResolverQueryLogConfigOutput, error) + GetResolverQueryLogConfigAssociation(context.Context, *route53resolver.GetResolverQueryLogConfigAssociationInput, ...func(*route53resolver.Options)) (*route53resolver.GetResolverQueryLogConfigAssociationOutput, error) + GetResolverQueryLogConfigPolicy(context.Context, *route53resolver.GetResolverQueryLogConfigPolicyInput, ...func(*route53resolver.Options)) (*route53resolver.GetResolverQueryLogConfigPolicyOutput, error) + GetResolverRule(context.Context, *route53resolver.GetResolverRuleInput, ...func(*route53resolver.Options)) (*route53resolver.GetResolverRuleOutput, error) + GetResolverRuleAssociation(context.Context, *route53resolver.GetResolverRuleAssociationInput, ...func(*route53resolver.Options)) (*route53resolver.GetResolverRuleAssociationOutput, error) + GetResolverRulePolicy(context.Context, *route53resolver.GetResolverRulePolicyInput, ...func(*route53resolver.Options)) (*route53resolver.GetResolverRulePolicyOutput, error) + ListFirewallConfigs(context.Context, *route53resolver.ListFirewallConfigsInput, ...func(*route53resolver.Options)) (*route53resolver.ListFirewallConfigsOutput, error) + ListFirewallDomainLists(context.Context, *route53resolver.ListFirewallDomainListsInput, ...func(*route53resolver.Options)) (*route53resolver.ListFirewallDomainListsOutput, error) + ListFirewallDomains(context.Context, *route53resolver.ListFirewallDomainsInput, ...func(*route53resolver.Options)) (*route53resolver.ListFirewallDomainsOutput, error) + ListFirewallRuleGroupAssociations(context.Context, *route53resolver.ListFirewallRuleGroupAssociationsInput, ...func(*route53resolver.Options)) (*route53resolver.ListFirewallRuleGroupAssociationsOutput, error) + ListFirewallRuleGroups(context.Context, *route53resolver.ListFirewallRuleGroupsInput, ...func(*route53resolver.Options)) (*route53resolver.ListFirewallRuleGroupsOutput, error) + ListFirewallRules(context.Context, *route53resolver.ListFirewallRulesInput, ...func(*route53resolver.Options)) (*route53resolver.ListFirewallRulesOutput, error) + ListResolverConfigs(context.Context, *route53resolver.ListResolverConfigsInput, ...func(*route53resolver.Options)) (*route53resolver.ListResolverConfigsOutput, error) + ListResolverDnssecConfigs(context.Context, *route53resolver.ListResolverDnssecConfigsInput, ...func(*route53resolver.Options)) (*route53resolver.ListResolverDnssecConfigsOutput, error) + ListResolverEndpointIpAddresses(context.Context, *route53resolver.ListResolverEndpointIpAddressesInput, ...func(*route53resolver.Options)) (*route53resolver.ListResolverEndpointIpAddressesOutput, error) + ListResolverEndpoints(context.Context, *route53resolver.ListResolverEndpointsInput, ...func(*route53resolver.Options)) (*route53resolver.ListResolverEndpointsOutput, error) + ListResolverQueryLogConfigAssociations(context.Context, *route53resolver.ListResolverQueryLogConfigAssociationsInput, ...func(*route53resolver.Options)) (*route53resolver.ListResolverQueryLogConfigAssociationsOutput, error) + ListResolverQueryLogConfigs(context.Context, *route53resolver.ListResolverQueryLogConfigsInput, ...func(*route53resolver.Options)) (*route53resolver.ListResolverQueryLogConfigsOutput, error) + ListResolverRuleAssociations(context.Context, *route53resolver.ListResolverRuleAssociationsInput, ...func(*route53resolver.Options)) (*route53resolver.ListResolverRuleAssociationsOutput, error) + ListResolverRules(context.Context, *route53resolver.ListResolverRulesInput, ...func(*route53resolver.Options)) (*route53resolver.ListResolverRulesOutput, error) + ListTagsForResource(context.Context, *route53resolver.ListTagsForResourceInput, ...func(*route53resolver.Options)) (*route53resolver.ListTagsForResourceOutput, error) +} diff --git a/plugins/source/aws/go.mod b/plugins/source/aws/go.mod index 4120bcb002e112..42230e05347b31 100644 --- a/plugins/source/aws/go.mod +++ b/plugins/source/aws/go.mod @@ -89,6 +89,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.14.13 github.com/aws/aws-sdk-go-v2/service/route53 v1.28.3 github.com/aws/aws-sdk-go-v2/service/route53domains v1.15.0 + github.com/aws/aws-sdk-go-v2/service/route53resolver v1.17.13 github.com/aws/aws-sdk-go-v2/service/s3 v1.35.0 github.com/aws/aws-sdk-go-v2/service/s3control v1.31.7 github.com/aws/aws-sdk-go-v2/service/sagemaker v1.86.0 diff --git a/plugins/source/aws/go.sum b/plugins/source/aws/go.sum index ed1d5e6b410025..aa7e63c84d3deb 100644 --- a/plugins/source/aws/go.sum +++ b/plugins/source/aws/go.sum @@ -249,6 +249,8 @@ github.com/aws/aws-sdk-go-v2/service/route53 v1.28.3 h1:nJbE4+tHd8xpM1RB1ZF0/xTJ github.com/aws/aws-sdk-go-v2/service/route53 v1.28.3/go.mod h1:Cd4MnFoV+6fELBrgWXJ4Y09FrSkn/VjNPkOr1Yr1muU= github.com/aws/aws-sdk-go-v2/service/route53domains v1.15.0 h1:H7c53dt/1Wsp3fWbu5v5+XVNsThWzmxzYdyYLltWtec= github.com/aws/aws-sdk-go-v2/service/route53domains v1.15.0/go.mod h1:k75fR3BhOo/0umex9ICEJ+CKTA55qxvFWAlyVHTS6Qg= +github.com/aws/aws-sdk-go-v2/service/route53resolver v1.17.13 h1:Oa55ObrMEJV/ARzZbmsUaY4u7hCWO2LWOsn8KVr37J4= +github.com/aws/aws-sdk-go-v2/service/route53resolver v1.17.13/go.mod h1:AEl0z7i/yOgN832f4yiVj6HudTkLOau55/Ckc8zxutA= github.com/aws/aws-sdk-go-v2/service/s3 v1.35.0 h1:ya7fmrN2fE7s1P2gaPbNg5MTkERVWfsH8ToP1YC4Z9o= github.com/aws/aws-sdk-go-v2/service/s3 v1.35.0/go.mod h1:aVbf0sko/TsLWHx30c/uVu7c62+0EAJ3vbxaJga0xCw= github.com/aws/aws-sdk-go-v2/service/s3control v1.31.7 h1:dTPOxNtrOt1NU/3DstjpNOAT7qjnMcZ08ah4A3zuu2w= diff --git a/plugins/source/aws/resources/services/route53resolver/firewall_configs.go b/plugins/source/aws/resources/services/route53resolver/firewall_configs.go index 2aa1f82ea6776e..ef42f552edef1a 100644 --- a/plugins/source/aws/resources/services/route53resolver/firewall_configs.go +++ b/plugins/source/aws/resources/services/route53resolver/firewall_configs.go @@ -14,7 +14,7 @@ func FirewallConfigs() *schema.Table { tableName := "aws_route53resolver_firewall_configs" return &schema.Table{ Name: tableName, - Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetDomainDetail.html`, + Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_FirewallConfig.html`, Resolver: fetchFirewallConfigs, Transform: transformers.TransformWithStruct(&types.FirewallConfig{}, transformers.WithPrimaryKeys("Id")), Multiplex: client.ServiceAccountRegionMultiplexer(tableName, "route53resolver"), diff --git a/plugins/source/aws/resources/services/route53resolver/firewall_domain_list.go b/plugins/source/aws/resources/services/route53resolver/firewall_domain_list.go new file mode 100644 index 00000000000000..6437eda3a1e5ba --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/firewall_domain_list.go @@ -0,0 +1,60 @@ +package route53resolver + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/plugin-sdk/v3/schema" + "github.com/cloudquery/plugin-sdk/v3/transformers" +) + +func FirewallDomainLists() *schema.Table { + tableName := "aws_route53resolver_firewall_domain_lists" + return &schema.Table{ + Name: tableName, + Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_FirewallDomainList.html`, + Resolver: fetchFirewallDomainList, + PreResourceResolver: getFirewallDomainList, + Transform: transformers.TransformWithStruct(&types.FirewallDomainList{}, transformers.WithPrimaryKeys("Arn")), + Multiplex: client.ServiceAccountRegionMultiplexer(tableName, "route53resolver"), + Columns: []schema.Column{ + client.DefaultAccountIDColumn(false), + client.DefaultRegionColumn(false), + }, + } +} + +func fetchFirewallDomainList(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { + cl := meta.(*client.Client) + svc := cl.Services().Route53resolver + var input route53resolver.ListFirewallDomainListsInput + paginator := route53resolver.NewListFirewallDomainListsPaginator(svc, &input) + for paginator.HasMorePages() { + page, err := paginator.NextPage(ctx, func(options *route53resolver.Options) { + options.Region = cl.Region + }) + if err != nil { + return err + } + res <- page.FirewallDomainLists + } + return nil +} +func getFirewallDomainList(ctx context.Context, meta schema.ClientMeta, resource *schema.Resource) error { + cl := meta.(*client.Client) + svc := cl.Services().Route53resolver + v := resource.Item.(types.FirewallDomainListMetadata) + + d, err := svc.GetFirewallDomainList(ctx, &route53resolver.GetFirewallDomainListInput{FirewallDomainListId: v.Id}, func(options *route53resolver.Options) { + options.Region = cl.Region + }) + if err != nil { + return err + } + + resource.Item = d.FirewallDomainList + + return nil +} diff --git a/plugins/source/aws/resources/services/route53resolver/firewall_domains.go b/plugins/source/aws/resources/services/route53resolver/firewall_domains.go deleted file mode 100644 index 4e91f69e5f3173..00000000000000 --- a/plugins/source/aws/resources/services/route53resolver/firewall_domains.go +++ /dev/null @@ -1,56 +0,0 @@ -package route53resolver - -import ( - "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" - "github.com/cloudquery/cloudquery/plugins/source/aws/client" - "github.com/cloudquery/plugin-sdk/v3/schema" - "github.com/cloudquery/plugin-sdk/v3/transformers" -) - -func FirewallDomains() *schema.Table { - tableName := "aws_route53resolver_firewall_domain_lists" - return &schema.Table{ - Name: tableName, - Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetDomainDetail.html`, - Resolver: fetchFirewallDomainList, - PreResourceResolver: getFirewallDomainList, - Transform: transformers.TransformWithStruct(&types.FirewallDomainList{}, transformers.WithPrimaryKeys("Arn")), - Multiplex: client.ServiceAccountRegionMultiplexer(tableName, "route53resolver"), - Columns: []schema.Column{ - client.DefaultAccountIDColumn(false), - }, - } -} - -// func fetchFirewallDomainList(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { -// cl := meta.(*client.Client) -// svc := cl.Services().Route53resolver -// var input route53resolver.ListFirewallDomainListsInput -// paginator := route53resolver.NewListFirewallDomainListsPaginator(svc, &input) -// for paginator.HasMorePages() { -// page, err := paginator.NextPage(ctx, func(options *route53resolver.Options) { -// options.Region = cl.Region -// }) -// if err != nil { -// return err -// } -// res <- page.FirewallDomainLists -// } -// return nil -// } -// func getFirewallDomainList(ctx context.Context, meta schema.ClientMeta, resource *schema.Resource) error { -// cl := meta.(*client.Client) -// svc := cl.Services().Route53resolver -// v := resource.Item.(types.FirewallDomainListMetadata) - -// d, err := svc.GetFirewallDomainList(ctx, &route53resolver.GetFirewallDomainListInput{FirewallDomainListId: v.Id}, func(options *route53resolver.Options) { -// options.Region = cl.Region -// }) -// if err != nil { -// return err -// } - -// resource.Item = d.FirewallDomainList - -// return nil -// } diff --git a/plugins/source/aws/resources/services/route53resolver/firewall_rule_group_associations.go b/plugins/source/aws/resources/services/route53resolver/firewall_rule_group_associations.go index b2a0a0dcbf7112..3a5e2ac2895906 100644 --- a/plugins/source/aws/resources/services/route53resolver/firewall_rule_group_associations.go +++ b/plugins/source/aws/resources/services/route53resolver/firewall_rule_group_associations.go @@ -1,6 +1,9 @@ package route53resolver import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" "github.com/cloudquery/cloudquery/plugins/source/aws/client" "github.com/cloudquery/plugin-sdk/v3/schema" @@ -8,49 +11,33 @@ import ( ) func FirewallRuleGroupAssociations() *schema.Table { - tableName := "aws_route53resolver_firewall_domain_lists" + tableName := "aws_route53resolver_firewall_rule_group_associations" return &schema.Table{ - Name: tableName, - Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetDomainDetail.html`, - Resolver: fetchFirewallDomainList, - PreResourceResolver: getFirewallDomainList, - Transform: transformers.TransformWithStruct(&types.FirewallDomainList{}, transformers.WithPrimaryKeys("Arn")), - Multiplex: client.ServiceAccountRegionMultiplexer(tableName, "route53resolver"), + Name: tableName, + Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_FirewallRuleGroupAssociation.html`, + Resolver: fetchFirewallRuleGroupAssociations, + Transform: transformers.TransformWithStruct(&types.FirewallRuleGroupAssociation{}, transformers.WithPrimaryKeys("Arn")), + Multiplex: client.ServiceAccountRegionMultiplexer(tableName, "route53resolver"), Columns: []schema.Column{ client.DefaultAccountIDColumn(false), + client.DefaultRegionColumn(false), }, } } -// func fetchFirewallDomainList(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { -// cl := meta.(*client.Client) -// svc := cl.Services().Route53resolver -// var input route53resolver.ListFirewallDomainListsInput -// paginator := route53resolver.NewListFirewallDomainListsPaginator(svc, &input) -// for paginator.HasMorePages() { -// page, err := paginator.NextPage(ctx, func(options *route53resolver.Options) { -// options.Region = cl.Region -// }) -// if err != nil { -// return err -// } -// res <- page.FirewallDomainLists -// } -// return nil -// } -// func getFirewallDomainList(ctx context.Context, meta schema.ClientMeta, resource *schema.Resource) error { -// cl := meta.(*client.Client) -// svc := cl.Services().Route53resolver -// v := resource.Item.(types.FirewallDomainListMetadata) - -// d, err := svc.GetFirewallDomainList(ctx, &route53resolver.GetFirewallDomainListInput{FirewallDomainListId: v.Id}, func(options *route53resolver.Options) { -// options.Region = cl.Region -// }) -// if err != nil { -// return err -// } - -// resource.Item = d.FirewallDomainList - -// return nil -// } +func fetchFirewallRuleGroupAssociations(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { + cl := meta.(*client.Client) + svc := cl.Services().Route53resolver + var input route53resolver.ListFirewallRuleGroupAssociationsInput + paginator := route53resolver.NewListFirewallRuleGroupAssociationsPaginator(svc, &input) + for paginator.HasMorePages() { + page, err := paginator.NextPage(ctx, func(options *route53resolver.Options) { + options.Region = cl.Region + }) + if err != nil { + return err + } + res <- page.FirewallRuleGroupAssociations + } + return nil +} diff --git a/plugins/source/aws/resources/services/route53resolver/firewall_rule_groups.go b/plugins/source/aws/resources/services/route53resolver/firewall_rule_groups.go index 7bcabf90030328..2e1dabb3cd447e 100644 --- a/plugins/source/aws/resources/services/route53resolver/firewall_rule_groups.go +++ b/plugins/source/aws/resources/services/route53resolver/firewall_rule_groups.go @@ -1,6 +1,9 @@ package route53resolver import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" "github.com/cloudquery/cloudquery/plugins/source/aws/client" "github.com/cloudquery/plugin-sdk/v3/schema" @@ -8,49 +11,51 @@ import ( ) func FirewallRuleGroups() *schema.Table { - tableName := "aws_route53resolver_firewall_domain_lists" + tableName := "aws_route53resolver_firewall_rule_groups" return &schema.Table{ Name: tableName, - Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetDomainDetail.html`, - Resolver: fetchFirewallDomainList, - PreResourceResolver: getFirewallDomainList, - Transform: transformers.TransformWithStruct(&types.FirewallDomainList{}, transformers.WithPrimaryKeys("Arn")), + Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_FirewallRuleGroup.html`, + Resolver: fetchFirewallRuleGroups, + PreResourceResolver: getFirewallRuleGroups, + Transform: transformers.TransformWithStruct(&types.FirewallRuleGroup{}, transformers.WithPrimaryKeys("Arn")), Multiplex: client.ServiceAccountRegionMultiplexer(tableName, "route53resolver"), Columns: []schema.Column{ client.DefaultAccountIDColumn(false), + client.DefaultRegionColumn(false), }, } } -// func fetchFirewallDomainList(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { -// cl := meta.(*client.Client) -// svc := cl.Services().Route53resolver -// var input route53resolver.ListFirewallDomainListsInput -// paginator := route53resolver.NewListFirewallDomainListsPaginator(svc, &input) -// for paginator.HasMorePages() { -// page, err := paginator.NextPage(ctx, func(options *route53resolver.Options) { -// options.Region = cl.Region -// }) -// if err != nil { -// return err -// } -// res <- page.FirewallDomainLists -// } -// return nil -// } -// func getFirewallDomainList(ctx context.Context, meta schema.ClientMeta, resource *schema.Resource) error { -// cl := meta.(*client.Client) -// svc := cl.Services().Route53resolver -// v := resource.Item.(types.FirewallDomainListMetadata) - -// d, err := svc.GetFirewallDomainList(ctx, &route53resolver.GetFirewallDomainListInput{FirewallDomainListId: v.Id}, func(options *route53resolver.Options) { -// options.Region = cl.Region -// }) -// if err != nil { -// return err -// } - -// resource.Item = d.FirewallDomainList - -// return nil -// } +func fetchFirewallRuleGroups(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { + cl := meta.(*client.Client) + svc := cl.Services().Route53resolver + var input route53resolver.ListFirewallRuleGroupsInput + paginator := route53resolver.NewListFirewallRuleGroupsPaginator(svc, &input) + for paginator.HasMorePages() { + page, err := paginator.NextPage(ctx, func(options *route53resolver.Options) { + options.Region = cl.Region + }) + if err != nil { + return err + } + res <- page.FirewallRuleGroups + } + return nil +} + +func getFirewallRuleGroups(ctx context.Context, meta schema.ClientMeta, resource *schema.Resource) error { + cl := meta.(*client.Client) + svc := cl.Services().Route53resolver + v := resource.Item.(types.FirewallRuleGroupMetadata) + + d, err := svc.GetFirewallRuleGroup(ctx, &route53resolver.GetFirewallRuleGroupInput{FirewallRuleGroupId: v.Id}, func(options *route53resolver.Options) { + options.Region = cl.Region + }) + if err != nil { + return err + } + + resource.Item = d.FirewallRuleGroup + + return nil +} From c582cdc8edb308b41505a23a2d2976d69f9b5fd8 Mon Sep 17 00:00:00 2001 From: bbernays Date: Thu, 29 Jun 2023 15:02:19 -0400 Subject: [PATCH 3/7] more resources --- plugins/source/aws/resources/plugin/tables.go | 5 +++ .../firewall_configs_mock_test.go | 31 +++++++++++++ .../firewall_domain_list_mock_test.go | 39 +++++++++++++++++ ...ewall_rule_group_associations_mock_test.go | 34 +++++++++++++++ .../firewall_rule_group_mock_test.go | 39 +++++++++++++++++ .../route53resolver/resolver_endpoints.go | 43 +++++++++++++++++++ .../resolver_endpoints_mock_test.go | 31 +++++++++++++ .../resolver_query_log_config_associations.go | 43 +++++++++++++++++++ .../resolver_query_log_configs.go | 43 +++++++++++++++++++ ...solver_query_log_configs_mock_test copy.go | 31 +++++++++++++ .../resolver_query_log_configs_mock_test.go | 31 +++++++++++++ .../route53resolver/resolver_rules.go | 43 +++++++++++++++++++ .../resolver_rules_mock_test.go | 31 +++++++++++++ 13 files changed, 444 insertions(+) create mode 100644 plugins/source/aws/resources/services/route53resolver/firewall_configs_mock_test.go create mode 100644 plugins/source/aws/resources/services/route53resolver/firewall_domain_list_mock_test.go create mode 100644 plugins/source/aws/resources/services/route53resolver/firewall_rule_group_associations_mock_test.go create mode 100644 plugins/source/aws/resources/services/route53resolver/firewall_rule_group_mock_test.go create mode 100644 plugins/source/aws/resources/services/route53resolver/resolver_endpoints.go create mode 100644 plugins/source/aws/resources/services/route53resolver/resolver_endpoints_mock_test.go create mode 100644 plugins/source/aws/resources/services/route53resolver/resolver_query_log_config_associations.go create mode 100644 plugins/source/aws/resources/services/route53resolver/resolver_query_log_configs.go create mode 100644 plugins/source/aws/resources/services/route53resolver/resolver_query_log_configs_mock_test copy.go create mode 100644 plugins/source/aws/resources/services/route53resolver/resolver_query_log_configs_mock_test.go create mode 100644 plugins/source/aws/resources/services/route53resolver/resolver_rules.go create mode 100644 plugins/source/aws/resources/services/route53resolver/resolver_rules_mock_test.go diff --git a/plugins/source/aws/resources/plugin/tables.go b/plugins/source/aws/resources/plugin/tables.go index 8ca0384d73a96c..98b425b48e52dc 100644 --- a/plugins/source/aws/resources/plugin/tables.go +++ b/plugins/source/aws/resources/plugin/tables.go @@ -81,6 +81,7 @@ import ( "github.com/cloudquery/cloudquery/plugins/source/aws/resources/services/resiliencehub" "github.com/cloudquery/cloudquery/plugins/source/aws/resources/services/resourcegroups" "github.com/cloudquery/cloudquery/plugins/source/aws/resources/services/route53" + "github.com/cloudquery/cloudquery/plugins/source/aws/resources/services/route53resolver" "github.com/cloudquery/cloudquery/plugins/source/aws/resources/services/s3" "github.com/cloudquery/cloudquery/plugins/source/aws/resources/services/sagemaker" "github.com/cloudquery/cloudquery/plugins/source/aws/resources/services/savingsplans" @@ -461,6 +462,10 @@ func tables() []*schema.Table { route53.HostedZones(), route53.Operations(), route53.TrafficPolicies(), + route53resolver.FirewallConfigs(), + route53resolver.FirewallDomainLists(), + route53resolver.FirewallRuleGroupAssociations(), + route53resolver.FirewallRuleGroups(), s3.AccessPoints(), s3.Accounts(), s3.Buckets(), diff --git a/plugins/source/aws/resources/services/route53resolver/firewall_configs_mock_test.go b/plugins/source/aws/resources/services/route53resolver/firewall_configs_mock_test.go new file mode 100644 index 00000000000000..8ced14fa5d9195 --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/firewall_configs_mock_test.go @@ -0,0 +1,31 @@ +package route53resolver + +import ( + "testing" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/cloudquery/plugins/source/aws/client/mocks" + "github.com/cloudquery/plugin-sdk/v3/faker" + "github.com/golang/mock/gomock" + "github.com/stretchr/testify/require" +) + +func buildFirewallConfigsMock(t *testing.T, ctrl *gomock.Controller) client.Services { + m := mocks.NewMockRoute53resolverClient(ctrl) + fc := types.FirewallConfig{} + require.NoError(t, faker.FakeObject(&fc)) + + m.EXPECT().ListFirewallConfigs(gomock.Any(), gomock.Any(), gomock.Any()).Return( + &route53resolver.ListFirewallConfigsOutput{ + FirewallConfigs: []types.FirewallConfig{fc}, + }, nil) + + return client.Services{ + Route53resolver: m, + } +} +func TestFirewallConfigs(t *testing.T) { + client.AwsMockTestHelper(t, FirewallConfigs(), buildFirewallConfigsMock, client.TestOptions{}) +} diff --git a/plugins/source/aws/resources/services/route53resolver/firewall_domain_list_mock_test.go b/plugins/source/aws/resources/services/route53resolver/firewall_domain_list_mock_test.go new file mode 100644 index 00000000000000..e7a32779246a7d --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/firewall_domain_list_mock_test.go @@ -0,0 +1,39 @@ +package route53resolver + +import ( + "testing" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/cloudquery/plugins/source/aws/client/mocks" + "github.com/cloudquery/plugin-sdk/v3/faker" + "github.com/golang/mock/gomock" + "github.com/stretchr/testify/require" +) + +func buildFirewallDomainListMock(t *testing.T, ctrl *gomock.Controller) client.Services { + m := mocks.NewMockRoute53resolverClient(ctrl) + fdlm := types.FirewallDomainListMetadata{} + require.NoError(t, faker.FakeObject(&fdlm)) + + m.EXPECT().ListFirewallDomainLists(gomock.Any(), gomock.Any(), gomock.Any()).Return( + &route53resolver.ListFirewallDomainListsOutput{ + FirewallDomainLists: []types.FirewallDomainListMetadata{fdlm}, + }, nil) + + fdl := types.FirewallDomainList{} + require.NoError(t, faker.FakeObject(&fdl)) + + m.EXPECT().GetFirewallDomainList(gomock.Any(), gomock.Any(), gomock.Any()).Return( + &route53resolver.GetFirewallDomainListOutput{ + FirewallDomainList: &fdl, + }, nil) + + return client.Services{ + Route53resolver: m, + } +} +func TestFirewallDomainList(t *testing.T) { + client.AwsMockTestHelper(t, FirewallDomainLists(), buildFirewallDomainListMock, client.TestOptions{}) +} diff --git a/plugins/source/aws/resources/services/route53resolver/firewall_rule_group_associations_mock_test.go b/plugins/source/aws/resources/services/route53resolver/firewall_rule_group_associations_mock_test.go new file mode 100644 index 00000000000000..e66ff5223ec022 --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/firewall_rule_group_associations_mock_test.go @@ -0,0 +1,34 @@ +package route53resolver + +import ( + "testing" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/cloudquery/plugins/source/aws/client/mocks" + "github.com/cloudquery/plugin-sdk/v3/faker" + "github.com/golang/mock/gomock" + "github.com/stretchr/testify/require" +) + +func buildFirewallRuleGroupAssociationsMock(t *testing.T, ctrl *gomock.Controller) client.Services { + m := mocks.NewMockRoute53resolverClient(ctrl) + frga := types.FirewallRuleGroupAssociation{} + require.NoError(t, faker.FakeObject(&frga)) + + m.EXPECT().ListFirewallRuleGroupAssociations(gomock.Any(), gomock.Any(), gomock.Any()).Return( + &route53resolver.ListFirewallRuleGroupAssociationsOutput{ + FirewallRuleGroupAssociations: []types.FirewallRuleGroupAssociation{frga}, + }, nil) + + fdl := types.FirewallDomainList{} + require.NoError(t, faker.FakeObject(&fdl)) + + return client.Services{ + Route53resolver: m, + } +} +func TestFirewallRuleGroupAssociations(t *testing.T) { + client.AwsMockTestHelper(t, FirewallRuleGroupAssociations(), buildFirewallRuleGroupAssociationsMock, client.TestOptions{}) +} diff --git a/plugins/source/aws/resources/services/route53resolver/firewall_rule_group_mock_test.go b/plugins/source/aws/resources/services/route53resolver/firewall_rule_group_mock_test.go new file mode 100644 index 00000000000000..e22699c4b09004 --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/firewall_rule_group_mock_test.go @@ -0,0 +1,39 @@ +package route53resolver + +import ( + "testing" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/cloudquery/plugins/source/aws/client/mocks" + "github.com/cloudquery/plugin-sdk/v3/faker" + "github.com/golang/mock/gomock" + "github.com/stretchr/testify/require" +) + +func buildFirewallRuleGroupsMock(t *testing.T, ctrl *gomock.Controller) client.Services { + m := mocks.NewMockRoute53resolverClient(ctrl) + frgm := types.FirewallRuleGroupMetadata{} + require.NoError(t, faker.FakeObject(&frgm)) + + m.EXPECT().ListFirewallRuleGroups(gomock.Any(), gomock.Any(), gomock.Any()).Return( + &route53resolver.ListFirewallRuleGroupsOutput{ + FirewallRuleGroups: []types.FirewallRuleGroupMetadata{frgm}, + }, nil) + + frg := types.FirewallRuleGroup{} + require.NoError(t, faker.FakeObject(&frg)) + + m.EXPECT().GetFirewallRuleGroup(gomock.Any(), gomock.Any(), gomock.Any()).Return( + &route53resolver.GetFirewallRuleGroupOutput{ + FirewallRuleGroup: &frg, + }, nil) + + return client.Services{ + Route53resolver: m, + } +} +func TestFirewallRuleGroups(t *testing.T) { + client.AwsMockTestHelper(t, FirewallRuleGroups(), buildFirewallRuleGroupsMock, client.TestOptions{}) +} diff --git a/plugins/source/aws/resources/services/route53resolver/resolver_endpoints.go b/plugins/source/aws/resources/services/route53resolver/resolver_endpoints.go new file mode 100644 index 00000000000000..95231787169f6a --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/resolver_endpoints.go @@ -0,0 +1,43 @@ +package route53resolver + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/plugin-sdk/v3/schema" + "github.com/cloudquery/plugin-sdk/v3/transformers" +) + +func Endpoints() *schema.Table { + tableName := "aws_route53resolver_resolver_endpoints" + return &schema.Table{ + Name: tableName, + Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverEndpoint.html`, + Resolver: fetchResolverEndpoints, + Transform: transformers.TransformWithStruct(&types.ResolverEndpoint{}, transformers.WithPrimaryKeys("Arn")), + Multiplex: client.ServiceAccountRegionMultiplexer(tableName, "route53resolver"), + Columns: []schema.Column{ + client.DefaultAccountIDColumn(false), + client.DefaultRegionColumn(false), + }, + } +} + +func fetchResolverEndpoints(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { + cl := meta.(*client.Client) + svc := cl.Services().Route53resolver + var input route53resolver.ListResolverEndpointsInput + paginator := route53resolver.NewListResolverEndpointsPaginator(svc, &input) + for paginator.HasMorePages() { + page, err := paginator.NextPage(ctx, func(options *route53resolver.Options) { + options.Region = cl.Region + }) + if err != nil { + return err + } + res <- page.ResolverEndpoints + } + return nil +} diff --git a/plugins/source/aws/resources/services/route53resolver/resolver_endpoints_mock_test.go b/plugins/source/aws/resources/services/route53resolver/resolver_endpoints_mock_test.go new file mode 100644 index 00000000000000..2175a0919f461a --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/resolver_endpoints_mock_test.go @@ -0,0 +1,31 @@ +package route53resolver + +import ( + "testing" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/cloudquery/plugins/source/aws/client/mocks" + "github.com/cloudquery/plugin-sdk/v3/faker" + "github.com/golang/mock/gomock" + "github.com/stretchr/testify/require" +) + +func buildEndpointsMock(t *testing.T, ctrl *gomock.Controller) client.Services { + m := mocks.NewMockRoute53resolverClient(ctrl) + re := types.ResolverEndpoint{} + require.NoError(t, faker.FakeObject(&re)) + + m.EXPECT().ListResolverEndpoints(gomock.Any(), gomock.Any(), gomock.Any()).Return( + &route53resolver.ListResolverEndpointsOutput{ + ResolverEndpoints: []types.ResolverEndpoint{re}, + }, nil) + + return client.Services{ + Route53resolver: m, + } +} +func TestEndpoints(t *testing.T) { + client.AwsMockTestHelper(t, Endpoints(), buildEndpointsMock, client.TestOptions{}) +} diff --git a/plugins/source/aws/resources/services/route53resolver/resolver_query_log_config_associations.go b/plugins/source/aws/resources/services/route53resolver/resolver_query_log_config_associations.go new file mode 100644 index 00000000000000..0923d1a80fa0d3 --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/resolver_query_log_config_associations.go @@ -0,0 +1,43 @@ +package route53resolver + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/plugin-sdk/v3/schema" + "github.com/cloudquery/plugin-sdk/v3/transformers" +) + +func ResolverQueryLogConfigAssociations() *schema.Table { + tableName := "aws_route53resolver_resolver_query_log_configs" + return &schema.Table{ + Name: tableName, + Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverQueryLogConfigAssociation.html`, + Resolver: fetchQueryLogConfigs, + Transform: transformers.TransformWithStruct(&types.ResolverQueryLogConfig{}, transformers.WithPrimaryKeys("Arn")), + Multiplex: client.ServiceAccountRegionMultiplexer(tableName, "route53resolver"), + Columns: []schema.Column{ + client.DefaultAccountIDColumn(true), + client.DefaultRegionColumn(true), + }, + } +} + +func fetchQueryLogConfigs(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { + cl := meta.(*client.Client) + svc := cl.Services().Route53resolver + var input route53resolver.ListResolverQueryLogConfigsInput + paginator := route53resolver.NewListResolverQueryLogConfigsPaginator(svc, &input) + for paginator.HasMorePages() { + page, err := paginator.NextPage(ctx, func(options *route53resolver.Options) { + options.Region = cl.Region + }) + if err != nil { + return err + } + res <- page.ResolverQueryLogConfigs + } + return nil +} diff --git a/plugins/source/aws/resources/services/route53resolver/resolver_query_log_configs.go b/plugins/source/aws/resources/services/route53resolver/resolver_query_log_configs.go new file mode 100644 index 00000000000000..e7a32586013e84 --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/resolver_query_log_configs.go @@ -0,0 +1,43 @@ +package route53resolver + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/plugin-sdk/v3/schema" + "github.com/cloudquery/plugin-sdk/v3/transformers" +) + +func ResolverQueryLogConfigs() *schema.Table { + tableName := "aws_route53resolver_resolver_query_log_configs" + return &schema.Table{ + Name: tableName, + Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverQueryLogConfig.html`, + Resolver: fetchQueryLogConfigs, + Transform: transformers.TransformWithStruct(&types.ResolverQueryLogConfig{}, transformers.WithPrimaryKeys("Arn")), + Multiplex: client.ServiceAccountRegionMultiplexer(tableName, "route53resolver"), + Columns: []schema.Column{ + client.DefaultAccountIDColumn(false), + client.DefaultRegionColumn(false), + }, + } +} + +func fetchQueryLogConfigs(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { + cl := meta.(*client.Client) + svc := cl.Services().Route53resolver + var input route53resolver.ListResolverQueryLogConfigsInput + paginator := route53resolver.NewListResolverQueryLogConfigsPaginator(svc, &input) + for paginator.HasMorePages() { + page, err := paginator.NextPage(ctx, func(options *route53resolver.Options) { + options.Region = cl.Region + }) + if err != nil { + return err + } + res <- page.ResolverQueryLogConfigs + } + return nil +} diff --git a/plugins/source/aws/resources/services/route53resolver/resolver_query_log_configs_mock_test copy.go b/plugins/source/aws/resources/services/route53resolver/resolver_query_log_configs_mock_test copy.go new file mode 100644 index 00000000000000..ff002898f7f7b9 --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/resolver_query_log_configs_mock_test copy.go @@ -0,0 +1,31 @@ +package route53resolver + +import ( + "testing" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/cloudquery/plugins/source/aws/client/mocks" + "github.com/cloudquery/plugin-sdk/v3/faker" + "github.com/golang/mock/gomock" + "github.com/stretchr/testify/require" +) + +func buildResolverQueryLogConfigsMock(t *testing.T, ctrl *gomock.Controller) client.Services { + m := mocks.NewMockRoute53resolverClient(ctrl) + rqlc := types.ResolverQueryLogConfig{} + require.NoError(t, faker.FakeObject(&rqlc)) + + m.EXPECT().ListResolverQueryLogConfigs(gomock.Any(), gomock.Any(), gomock.Any()).Return( + &route53resolver.ListResolverQueryLogConfigsOutput{ + ResolverQueryLogConfigs: []types.ResolverQueryLogConfig{rqlc}, + }, nil) + + return client.Services{ + Route53resolver: m, + } +} +func TestResolverQueryLogConfigs(t *testing.T) { + client.AwsMockTestHelper(t, ResolverQueryLogConfigs(), buildResolverQueryLogConfigsMock, client.TestOptions{}) +} diff --git a/plugins/source/aws/resources/services/route53resolver/resolver_query_log_configs_mock_test.go b/plugins/source/aws/resources/services/route53resolver/resolver_query_log_configs_mock_test.go new file mode 100644 index 00000000000000..ff002898f7f7b9 --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/resolver_query_log_configs_mock_test.go @@ -0,0 +1,31 @@ +package route53resolver + +import ( + "testing" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/cloudquery/plugins/source/aws/client/mocks" + "github.com/cloudquery/plugin-sdk/v3/faker" + "github.com/golang/mock/gomock" + "github.com/stretchr/testify/require" +) + +func buildResolverQueryLogConfigsMock(t *testing.T, ctrl *gomock.Controller) client.Services { + m := mocks.NewMockRoute53resolverClient(ctrl) + rqlc := types.ResolverQueryLogConfig{} + require.NoError(t, faker.FakeObject(&rqlc)) + + m.EXPECT().ListResolverQueryLogConfigs(gomock.Any(), gomock.Any(), gomock.Any()).Return( + &route53resolver.ListResolverQueryLogConfigsOutput{ + ResolverQueryLogConfigs: []types.ResolverQueryLogConfig{rqlc}, + }, nil) + + return client.Services{ + Route53resolver: m, + } +} +func TestResolverQueryLogConfigs(t *testing.T) { + client.AwsMockTestHelper(t, ResolverQueryLogConfigs(), buildResolverQueryLogConfigsMock, client.TestOptions{}) +} diff --git a/plugins/source/aws/resources/services/route53resolver/resolver_rules.go b/plugins/source/aws/resources/services/route53resolver/resolver_rules.go new file mode 100644 index 00000000000000..2d35ad8f5243bb --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/resolver_rules.go @@ -0,0 +1,43 @@ +package route53resolver + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/plugin-sdk/v3/schema" + "github.com/cloudquery/plugin-sdk/v3/transformers" +) + +func ResolverRules() *schema.Table { + tableName := "aws_route53resolver_resolver_rules" + return &schema.Table{ + Name: tableName, + Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverRule.html`, + Resolver: fetchResolverRules, + Transform: transformers.TransformWithStruct(&types.ResolverRule{}, transformers.WithPrimaryKeys("Arn")), + Multiplex: client.ServiceAccountRegionMultiplexer(tableName, "route53resolver"), + Columns: []schema.Column{ + client.DefaultAccountIDColumn(false), + client.DefaultRegionColumn(false), + }, + } +} + +func fetchResolverRules(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { + cl := meta.(*client.Client) + svc := cl.Services().Route53resolver + var input route53resolver.ListResolverRulesInput + paginator := route53resolver.NewListResolverRulesPaginator(svc, &input) + for paginator.HasMorePages() { + page, err := paginator.NextPage(ctx, func(options *route53resolver.Options) { + options.Region = cl.Region + }) + if err != nil { + return err + } + res <- page.ResolverRules + } + return nil +} diff --git a/plugins/source/aws/resources/services/route53resolver/resolver_rules_mock_test.go b/plugins/source/aws/resources/services/route53resolver/resolver_rules_mock_test.go new file mode 100644 index 00000000000000..991d6b31356419 --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/resolver_rules_mock_test.go @@ -0,0 +1,31 @@ +package route53resolver + +import ( + "testing" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/cloudquery/plugins/source/aws/client/mocks" + "github.com/cloudquery/plugin-sdk/v3/faker" + "github.com/golang/mock/gomock" + "github.com/stretchr/testify/require" +) + +func buildResolverRulesMock(t *testing.T, ctrl *gomock.Controller) client.Services { + m := mocks.NewMockRoute53resolverClient(ctrl) + rr := types.ResolverRule{} + require.NoError(t, faker.FakeObject(&rr)) + + m.EXPECT().ListResolverRules(gomock.Any(), gomock.Any(), gomock.Any()).Return( + &route53resolver.ListResolverRulesOutput{ + ResolverRules: []types.ResolverRule{rr}, + }, nil) + + return client.Services{ + Route53resolver: m, + } +} +func TestResolverRules(t *testing.T) { + client.AwsMockTestHelper(t, ResolverRules(), buildResolverRulesMock, client.TestOptions{}) +} From 31bfa2bc1b1161839e11b7527b765818c4a4ebf3 Mon Sep 17 00:00:00 2001 From: bbernays Date: Thu, 29 Jun 2023 15:18:02 -0400 Subject: [PATCH 4/7] Update resolver_query_log_config_associations.go --- .../resolver_query_log_config_associations.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/source/aws/resources/services/route53resolver/resolver_query_log_config_associations.go b/plugins/source/aws/resources/services/route53resolver/resolver_query_log_config_associations.go index 0923d1a80fa0d3..e14f9b25a41ed8 100644 --- a/plugins/source/aws/resources/services/route53resolver/resolver_query_log_config_associations.go +++ b/plugins/source/aws/resources/services/route53resolver/resolver_query_log_config_associations.go @@ -15,8 +15,8 @@ func ResolverQueryLogConfigAssociations() *schema.Table { return &schema.Table{ Name: tableName, Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverQueryLogConfigAssociation.html`, - Resolver: fetchQueryLogConfigs, - Transform: transformers.TransformWithStruct(&types.ResolverQueryLogConfig{}, transformers.WithPrimaryKeys("Arn")), + Resolver: fetchQueryLogConfigAssociations, + Transform: transformers.TransformWithStruct(&types.ResolverQueryLogConfigAssociation{}, transformers.WithPrimaryKeys("Id")), Multiplex: client.ServiceAccountRegionMultiplexer(tableName, "route53resolver"), Columns: []schema.Column{ client.DefaultAccountIDColumn(true), @@ -25,11 +25,11 @@ func ResolverQueryLogConfigAssociations() *schema.Table { } } -func fetchQueryLogConfigs(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { +func fetchQueryLogConfigAssociations(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { cl := meta.(*client.Client) svc := cl.Services().Route53resolver - var input route53resolver.ListResolverQueryLogConfigsInput - paginator := route53resolver.NewListResolverQueryLogConfigsPaginator(svc, &input) + var input route53resolver.ListResolverQueryLogConfigAssociationsInput + paginator := route53resolver.NewListResolverQueryLogConfigAssociationsPaginator(svc, &input) for paginator.HasMorePages() { page, err := paginator.NextPage(ctx, func(options *route53resolver.Options) { options.Region = cl.Region @@ -37,7 +37,7 @@ func fetchQueryLogConfigs(ctx context.Context, meta schema.ClientMeta, parent *s if err != nil { return err } - res <- page.ResolverQueryLogConfigs + res <- page.ResolverQueryLogConfigAssociations } return nil } From dc53d02f6269f1e2d56adc4006c239b3fa62b3c2 Mon Sep 17 00:00:00 2001 From: bbernays Date: Thu, 29 Jun 2023 15:43:44 -0400 Subject: [PATCH 5/7] Everything passing --- plugins/source/aws/docs/tables/README.md | 9 ++++ plugins/source/aws/resources/plugin/tables.go | 5 +++ .../route53resolver/resolver_endpoints.go | 2 +- .../resolver_endpoints_mock_test.go | 2 +- .../resolver_query_log_config_associations.go | 2 +- ...query_log_config_associations_mock_test.go | 31 +++++++++++++ ...solver_query_log_configs_mock_test copy.go | 31 ------------- .../resolver_rule_associations.go | 43 +++++++++++++++++++ .../resolver_rule_associations_mock_test.go | 31 +++++++++++++ .../pages/docs/plugins/sources/aws/tables.md | 9 ++++ .../aws_route53resolver_firewall_configs.md | 22 ++++++++++ ...s_route53resolver_firewall_domain_lists.md | 28 ++++++++++++ ...solver_firewall_rule_group_associations.md | 31 +++++++++++++ ...ws_route53resolver_firewall_rule_groups.md | 29 +++++++++++++ .../aws_route53resolver_resolver_endpoints.md | 31 +++++++++++++ ..._resolver_query_log_config_associations.md | 25 +++++++++++ ...te53resolver_resolver_query_log_configs.md | 28 ++++++++++++ ...te53resolver_resolver_rule_associations.md | 24 +++++++++++ .../aws/aws_route53resolver_resolver_rules.md | 32 ++++++++++++++ 19 files changed, 381 insertions(+), 34 deletions(-) create mode 100644 plugins/source/aws/resources/services/route53resolver/resolver_query_log_config_associations_mock_test.go delete mode 100644 plugins/source/aws/resources/services/route53resolver/resolver_query_log_configs_mock_test copy.go create mode 100644 plugins/source/aws/resources/services/route53resolver/resolver_rule_associations.go create mode 100644 plugins/source/aws/resources/services/route53resolver/resolver_rule_associations_mock_test.go create mode 100644 website/tables/aws/aws_route53resolver_firewall_configs.md create mode 100644 website/tables/aws/aws_route53resolver_firewall_domain_lists.md create mode 100644 website/tables/aws/aws_route53resolver_firewall_rule_group_associations.md create mode 100644 website/tables/aws/aws_route53resolver_firewall_rule_groups.md create mode 100644 website/tables/aws/aws_route53resolver_resolver_endpoints.md create mode 100644 website/tables/aws/aws_route53resolver_resolver_query_log_config_associations.md create mode 100644 website/tables/aws/aws_route53resolver_resolver_query_log_configs.md create mode 100644 website/tables/aws/aws_route53resolver_resolver_rule_associations.md create mode 100644 website/tables/aws/aws_route53resolver_resolver_rules.md diff --git a/plugins/source/aws/docs/tables/README.md b/plugins/source/aws/docs/tables/README.md index 0cfeb5199a8292..4370e8a7bb43e1 100644 --- a/plugins/source/aws/docs/tables/README.md +++ b/plugins/source/aws/docs/tables/README.md @@ -542,6 +542,15 @@ - [aws_route53_operations](../../../../../website/tables/aws/aws_route53_operations.md) - [aws_route53_traffic_policies](../../../../../website/tables/aws/aws_route53_traffic_policies.md) - [aws_route53_traffic_policy_versions](../../../../../website/tables/aws/aws_route53_traffic_policy_versions.md) +- [aws_route53resolver_firewall_configs](../../../../../website/tables/aws/aws_route53resolver_firewall_configs.md) +- [aws_route53resolver_firewall_domain_lists](../../../../../website/tables/aws/aws_route53resolver_firewall_domain_lists.md) +- [aws_route53resolver_firewall_rule_group_associations](../../../../../website/tables/aws/aws_route53resolver_firewall_rule_group_associations.md) +- [aws_route53resolver_firewall_rule_groups](../../../../../website/tables/aws/aws_route53resolver_firewall_rule_groups.md) +- [aws_route53resolver_resolver_endpoints](../../../../../website/tables/aws/aws_route53resolver_resolver_endpoints.md) +- [aws_route53resolver_resolver_query_log_config_associations](../../../../../website/tables/aws/aws_route53resolver_resolver_query_log_config_associations.md) +- [aws_route53resolver_resolver_query_log_configs](../../../../../website/tables/aws/aws_route53resolver_resolver_query_log_configs.md) +- [aws_route53resolver_resolver_rule_associations](../../../../../website/tables/aws/aws_route53resolver_resolver_rule_associations.md) +- [aws_route53resolver_resolver_rules](../../../../../website/tables/aws/aws_route53resolver_resolver_rules.md) - [aws_s3_access_points](../../../../../website/tables/aws/aws_s3_access_points.md) - [aws_s3_accounts](../../../../../website/tables/aws/aws_s3_accounts.md) - [aws_s3_buckets](../../../../../website/tables/aws/aws_s3_buckets.md) diff --git a/plugins/source/aws/resources/plugin/tables.go b/plugins/source/aws/resources/plugin/tables.go index 98b425b48e52dc..a1cd6e308eac8e 100644 --- a/plugins/source/aws/resources/plugin/tables.go +++ b/plugins/source/aws/resources/plugin/tables.go @@ -466,6 +466,11 @@ func tables() []*schema.Table { route53resolver.FirewallDomainLists(), route53resolver.FirewallRuleGroupAssociations(), route53resolver.FirewallRuleGroups(), + route53resolver.ResolverEndpoints(), + route53resolver.ResolverQueryLogConfigAssociations(), + route53resolver.ResolverQueryLogConfigs(), + route53resolver.ResolverRuleAssociations(), + route53resolver.ResolverRules(), s3.AccessPoints(), s3.Accounts(), s3.Buckets(), diff --git a/plugins/source/aws/resources/services/route53resolver/resolver_endpoints.go b/plugins/source/aws/resources/services/route53resolver/resolver_endpoints.go index 95231787169f6a..dc1d8ca94421b5 100644 --- a/plugins/source/aws/resources/services/route53resolver/resolver_endpoints.go +++ b/plugins/source/aws/resources/services/route53resolver/resolver_endpoints.go @@ -10,7 +10,7 @@ import ( "github.com/cloudquery/plugin-sdk/v3/transformers" ) -func Endpoints() *schema.Table { +func ResolverEndpoints() *schema.Table { tableName := "aws_route53resolver_resolver_endpoints" return &schema.Table{ Name: tableName, diff --git a/plugins/source/aws/resources/services/route53resolver/resolver_endpoints_mock_test.go b/plugins/source/aws/resources/services/route53resolver/resolver_endpoints_mock_test.go index 2175a0919f461a..c32ff6ad3d8773 100644 --- a/plugins/source/aws/resources/services/route53resolver/resolver_endpoints_mock_test.go +++ b/plugins/source/aws/resources/services/route53resolver/resolver_endpoints_mock_test.go @@ -27,5 +27,5 @@ func buildEndpointsMock(t *testing.T, ctrl *gomock.Controller) client.Services { } } func TestEndpoints(t *testing.T) { - client.AwsMockTestHelper(t, Endpoints(), buildEndpointsMock, client.TestOptions{}) + client.AwsMockTestHelper(t, ResolverEndpoints(), buildEndpointsMock, client.TestOptions{}) } diff --git a/plugins/source/aws/resources/services/route53resolver/resolver_query_log_config_associations.go b/plugins/source/aws/resources/services/route53resolver/resolver_query_log_config_associations.go index e14f9b25a41ed8..194f325ab61932 100644 --- a/plugins/source/aws/resources/services/route53resolver/resolver_query_log_config_associations.go +++ b/plugins/source/aws/resources/services/route53resolver/resolver_query_log_config_associations.go @@ -11,7 +11,7 @@ import ( ) func ResolverQueryLogConfigAssociations() *schema.Table { - tableName := "aws_route53resolver_resolver_query_log_configs" + tableName := "aws_route53resolver_resolver_query_log_config_associations" return &schema.Table{ Name: tableName, Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverQueryLogConfigAssociation.html`, diff --git a/plugins/source/aws/resources/services/route53resolver/resolver_query_log_config_associations_mock_test.go b/plugins/source/aws/resources/services/route53resolver/resolver_query_log_config_associations_mock_test.go new file mode 100644 index 00000000000000..34dd39441470ed --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/resolver_query_log_config_associations_mock_test.go @@ -0,0 +1,31 @@ +package route53resolver + +import ( + "testing" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/cloudquery/plugins/source/aws/client/mocks" + "github.com/cloudquery/plugin-sdk/v3/faker" + "github.com/golang/mock/gomock" + "github.com/stretchr/testify/require" +) + +func buildResolverQueryLogConfigAssociationsMock(t *testing.T, ctrl *gomock.Controller) client.Services { + m := mocks.NewMockRoute53resolverClient(ctrl) + rqlca := types.ResolverQueryLogConfigAssociation{} + require.NoError(t, faker.FakeObject(&rqlca)) + + m.EXPECT().ListResolverQueryLogConfigAssociations(gomock.Any(), gomock.Any(), gomock.Any()).Return( + &route53resolver.ListResolverQueryLogConfigAssociationsOutput{ + ResolverQueryLogConfigAssociations: []types.ResolverQueryLogConfigAssociation{rqlca}, + }, nil) + + return client.Services{ + Route53resolver: m, + } +} +func TestResolverQueryLogConfigAssociations(t *testing.T) { + client.AwsMockTestHelper(t, ResolverQueryLogConfigAssociations(), buildResolverQueryLogConfigAssociationsMock, client.TestOptions{}) +} diff --git a/plugins/source/aws/resources/services/route53resolver/resolver_query_log_configs_mock_test copy.go b/plugins/source/aws/resources/services/route53resolver/resolver_query_log_configs_mock_test copy.go deleted file mode 100644 index ff002898f7f7b9..00000000000000 --- a/plugins/source/aws/resources/services/route53resolver/resolver_query_log_configs_mock_test copy.go +++ /dev/null @@ -1,31 +0,0 @@ -package route53resolver - -import ( - "testing" - - "github.com/aws/aws-sdk-go-v2/service/route53resolver" - "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" - "github.com/cloudquery/cloudquery/plugins/source/aws/client" - "github.com/cloudquery/cloudquery/plugins/source/aws/client/mocks" - "github.com/cloudquery/plugin-sdk/v3/faker" - "github.com/golang/mock/gomock" - "github.com/stretchr/testify/require" -) - -func buildResolverQueryLogConfigsMock(t *testing.T, ctrl *gomock.Controller) client.Services { - m := mocks.NewMockRoute53resolverClient(ctrl) - rqlc := types.ResolverQueryLogConfig{} - require.NoError(t, faker.FakeObject(&rqlc)) - - m.EXPECT().ListResolverQueryLogConfigs(gomock.Any(), gomock.Any(), gomock.Any()).Return( - &route53resolver.ListResolverQueryLogConfigsOutput{ - ResolverQueryLogConfigs: []types.ResolverQueryLogConfig{rqlc}, - }, nil) - - return client.Services{ - Route53resolver: m, - } -} -func TestResolverQueryLogConfigs(t *testing.T) { - client.AwsMockTestHelper(t, ResolverQueryLogConfigs(), buildResolverQueryLogConfigsMock, client.TestOptions{}) -} diff --git a/plugins/source/aws/resources/services/route53resolver/resolver_rule_associations.go b/plugins/source/aws/resources/services/route53resolver/resolver_rule_associations.go new file mode 100644 index 00000000000000..71b29d2767b975 --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/resolver_rule_associations.go @@ -0,0 +1,43 @@ +package route53resolver + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/plugin-sdk/v3/schema" + "github.com/cloudquery/plugin-sdk/v3/transformers" +) + +func ResolverRuleAssociations() *schema.Table { + tableName := "aws_route53resolver_resolver_rule_associations" + return &schema.Table{ + Name: tableName, + Description: `https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverRuleAssociation.html`, + Resolver: fetchResolverRuleAssociations, + Transform: transformers.TransformWithStruct(&types.ResolverRuleAssociation{}, transformers.WithPrimaryKeys("Id")), + Multiplex: client.ServiceAccountRegionMultiplexer(tableName, "route53resolver"), + Columns: []schema.Column{ + client.DefaultAccountIDColumn(true), + client.DefaultRegionColumn(true), + }, + } +} + +func fetchResolverRuleAssociations(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { + cl := meta.(*client.Client) + svc := cl.Services().Route53resolver + var input route53resolver.ListResolverRuleAssociationsInput + paginator := route53resolver.NewListResolverRuleAssociationsPaginator(svc, &input) + for paginator.HasMorePages() { + page, err := paginator.NextPage(ctx, func(options *route53resolver.Options) { + options.Region = cl.Region + }) + if err != nil { + return err + } + res <- page.ResolverRuleAssociations + } + return nil +} diff --git a/plugins/source/aws/resources/services/route53resolver/resolver_rule_associations_mock_test.go b/plugins/source/aws/resources/services/route53resolver/resolver_rule_associations_mock_test.go new file mode 100644 index 00000000000000..521108e5253ffb --- /dev/null +++ b/plugins/source/aws/resources/services/route53resolver/resolver_rule_associations_mock_test.go @@ -0,0 +1,31 @@ +package route53resolver + +import ( + "testing" + + "github.com/aws/aws-sdk-go-v2/service/route53resolver" + "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" + "github.com/cloudquery/cloudquery/plugins/source/aws/client" + "github.com/cloudquery/cloudquery/plugins/source/aws/client/mocks" + "github.com/cloudquery/plugin-sdk/v3/faker" + "github.com/golang/mock/gomock" + "github.com/stretchr/testify/require" +) + +func buildResolverRuleAssociationsMock(t *testing.T, ctrl *gomock.Controller) client.Services { + m := mocks.NewMockRoute53resolverClient(ctrl) + rra := types.ResolverRuleAssociation{} + require.NoError(t, faker.FakeObject(&rra)) + + m.EXPECT().ListResolverRuleAssociations(gomock.Any(), gomock.Any(), gomock.Any()).Return( + &route53resolver.ListResolverRuleAssociationsOutput{ + ResolverRuleAssociations: []types.ResolverRuleAssociation{rra}, + }, nil) + + return client.Services{ + Route53resolver: m, + } +} +func TestResolverRuleAssociations(t *testing.T) { + client.AwsMockTestHelper(t, ResolverRuleAssociations(), buildResolverRuleAssociationsMock, client.TestOptions{}) +} diff --git a/website/pages/docs/plugins/sources/aws/tables.md b/website/pages/docs/plugins/sources/aws/tables.md index 976d3d0fcd724d..40c4b9f6c1e452 100644 --- a/website/pages/docs/plugins/sources/aws/tables.md +++ b/website/pages/docs/plugins/sources/aws/tables.md @@ -542,6 +542,15 @@ - [aws_route53_operations](tables/aws_route53_operations) - [aws_route53_traffic_policies](tables/aws_route53_traffic_policies) - [aws_route53_traffic_policy_versions](tables/aws_route53_traffic_policy_versions) +- [aws_route53resolver_firewall_configs](tables/aws_route53resolver_firewall_configs) +- [aws_route53resolver_firewall_domain_lists](tables/aws_route53resolver_firewall_domain_lists) +- [aws_route53resolver_firewall_rule_group_associations](tables/aws_route53resolver_firewall_rule_group_associations) +- [aws_route53resolver_firewall_rule_groups](tables/aws_route53resolver_firewall_rule_groups) +- [aws_route53resolver_resolver_endpoints](tables/aws_route53resolver_resolver_endpoints) +- [aws_route53resolver_resolver_query_log_config_associations](tables/aws_route53resolver_resolver_query_log_config_associations) +- [aws_route53resolver_resolver_query_log_configs](tables/aws_route53resolver_resolver_query_log_configs) +- [aws_route53resolver_resolver_rule_associations](tables/aws_route53resolver_resolver_rule_associations) +- [aws_route53resolver_resolver_rules](tables/aws_route53resolver_resolver_rules) - [aws_s3_access_points](tables/aws_s3_access_points) - [aws_s3_accounts](tables/aws_s3_accounts) - [aws_s3_buckets](tables/aws_s3_buckets) diff --git a/website/tables/aws/aws_route53resolver_firewall_configs.md b/website/tables/aws/aws_route53resolver_firewall_configs.md new file mode 100644 index 00000000000000..a6c5f82083a1f9 --- /dev/null +++ b/website/tables/aws/aws_route53resolver_firewall_configs.md @@ -0,0 +1,22 @@ +# Table: aws_route53resolver_firewall_configs + +This table shows data for Route53resolver Firewall Configs. + +https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_FirewallConfig.html + +The composite primary key for this table is (**account_id**, **region**, **id**). + +## Columns + +| Name | Type | +| ------------- | ------------- | +|_cq_source_name|`utf8`| +|_cq_sync_time|`timestamp[us, tz=UTC]`| +|_cq_id|`uuid`| +|_cq_parent_id|`uuid`| +|account_id (PK)|`utf8`| +|region (PK)|`utf8`| +|firewall_fail_open|`utf8`| +|id (PK)|`utf8`| +|owner_id|`utf8`| +|resource_id|`utf8`| \ No newline at end of file diff --git a/website/tables/aws/aws_route53resolver_firewall_domain_lists.md b/website/tables/aws/aws_route53resolver_firewall_domain_lists.md new file mode 100644 index 00000000000000..31b8334504a629 --- /dev/null +++ b/website/tables/aws/aws_route53resolver_firewall_domain_lists.md @@ -0,0 +1,28 @@ +# Table: aws_route53resolver_firewall_domain_lists + +This table shows data for Route53resolver Firewall Domain Lists. + +https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_FirewallDomainList.html + +The primary key for this table is **arn**. + +## Columns + +| Name | Type | +| ------------- | ------------- | +|_cq_source_name|`utf8`| +|_cq_sync_time|`timestamp[us, tz=UTC]`| +|_cq_id|`uuid`| +|_cq_parent_id|`uuid`| +|account_id|`utf8`| +|region|`utf8`| +|arn (PK)|`utf8`| +|creation_time|`utf8`| +|creator_request_id|`utf8`| +|domain_count|`int64`| +|id|`utf8`| +|managed_owner_name|`utf8`| +|modification_time|`utf8`| +|name|`utf8`| +|status|`utf8`| +|status_message|`utf8`| \ No newline at end of file diff --git a/website/tables/aws/aws_route53resolver_firewall_rule_group_associations.md b/website/tables/aws/aws_route53resolver_firewall_rule_group_associations.md new file mode 100644 index 00000000000000..ff08cb7d48783b --- /dev/null +++ b/website/tables/aws/aws_route53resolver_firewall_rule_group_associations.md @@ -0,0 +1,31 @@ +# Table: aws_route53resolver_firewall_rule_group_associations + +This table shows data for Route53resolver Firewall Rule Group Associations. + +https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_FirewallRuleGroupAssociation.html + +The primary key for this table is **arn**. + +## Columns + +| Name | Type | +| ------------- | ------------- | +|_cq_source_name|`utf8`| +|_cq_sync_time|`timestamp[us, tz=UTC]`| +|_cq_id|`uuid`| +|_cq_parent_id|`uuid`| +|account_id|`utf8`| +|region|`utf8`| +|arn (PK)|`utf8`| +|creation_time|`utf8`| +|creator_request_id|`utf8`| +|firewall_rule_group_id|`utf8`| +|id|`utf8`| +|managed_owner_name|`utf8`| +|modification_time|`utf8`| +|mutation_protection|`utf8`| +|name|`utf8`| +|priority|`int64`| +|status|`utf8`| +|status_message|`utf8`| +|vpc_id|`utf8`| \ No newline at end of file diff --git a/website/tables/aws/aws_route53resolver_firewall_rule_groups.md b/website/tables/aws/aws_route53resolver_firewall_rule_groups.md new file mode 100644 index 00000000000000..8a0b492c29c113 --- /dev/null +++ b/website/tables/aws/aws_route53resolver_firewall_rule_groups.md @@ -0,0 +1,29 @@ +# Table: aws_route53resolver_firewall_rule_groups + +This table shows data for Route53resolver Firewall Rule Groups. + +https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_FirewallRuleGroup.html + +The primary key for this table is **arn**. + +## Columns + +| Name | Type | +| ------------- | ------------- | +|_cq_source_name|`utf8`| +|_cq_sync_time|`timestamp[us, tz=UTC]`| +|_cq_id|`uuid`| +|_cq_parent_id|`uuid`| +|account_id|`utf8`| +|region|`utf8`| +|arn (PK)|`utf8`| +|creation_time|`utf8`| +|creator_request_id|`utf8`| +|id|`utf8`| +|modification_time|`utf8`| +|name|`utf8`| +|owner_id|`utf8`| +|rule_count|`int64`| +|share_status|`utf8`| +|status|`utf8`| +|status_message|`utf8`| \ No newline at end of file diff --git a/website/tables/aws/aws_route53resolver_resolver_endpoints.md b/website/tables/aws/aws_route53resolver_resolver_endpoints.md new file mode 100644 index 00000000000000..850dd8476f0248 --- /dev/null +++ b/website/tables/aws/aws_route53resolver_resolver_endpoints.md @@ -0,0 +1,31 @@ +# Table: aws_route53resolver_resolver_endpoints + +This table shows data for Route53resolver Resolver Endpoints. + +https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverEndpoint.html + +The primary key for this table is **arn**. + +## Columns + +| Name | Type | +| ------------- | ------------- | +|_cq_source_name|`utf8`| +|_cq_sync_time|`timestamp[us, tz=UTC]`| +|_cq_id|`uuid`| +|_cq_parent_id|`uuid`| +|account_id|`utf8`| +|region|`utf8`| +|arn (PK)|`utf8`| +|creation_time|`utf8`| +|creator_request_id|`utf8`| +|direction|`utf8`| +|host_vpc_id|`utf8`| +|id|`utf8`| +|ip_address_count|`int64`| +|modification_time|`utf8`| +|name|`utf8`| +|resolver_endpoint_type|`utf8`| +|security_group_ids|`list`| +|status|`utf8`| +|status_message|`utf8`| \ No newline at end of file diff --git a/website/tables/aws/aws_route53resolver_resolver_query_log_config_associations.md b/website/tables/aws/aws_route53resolver_resolver_query_log_config_associations.md new file mode 100644 index 00000000000000..df962019ccf5ed --- /dev/null +++ b/website/tables/aws/aws_route53resolver_resolver_query_log_config_associations.md @@ -0,0 +1,25 @@ +# Table: aws_route53resolver_resolver_query_log_config_associations + +This table shows data for Route53resolver Resolver Query Log Config Associations. + +https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverQueryLogConfigAssociation.html + +The composite primary key for this table is (**account_id**, **region**, **id**). + +## Columns + +| Name | Type | +| ------------- | ------------- | +|_cq_source_name|`utf8`| +|_cq_sync_time|`timestamp[us, tz=UTC]`| +|_cq_id|`uuid`| +|_cq_parent_id|`uuid`| +|account_id (PK)|`utf8`| +|region (PK)|`utf8`| +|creation_time|`utf8`| +|error|`utf8`| +|error_message|`utf8`| +|id (PK)|`utf8`| +|resolver_query_log_config_id|`utf8`| +|resource_id|`utf8`| +|status|`utf8`| \ No newline at end of file diff --git a/website/tables/aws/aws_route53resolver_resolver_query_log_configs.md b/website/tables/aws/aws_route53resolver_resolver_query_log_configs.md new file mode 100644 index 00000000000000..5ba891f004adf2 --- /dev/null +++ b/website/tables/aws/aws_route53resolver_resolver_query_log_configs.md @@ -0,0 +1,28 @@ +# Table: aws_route53resolver_resolver_query_log_configs + +This table shows data for Route53resolver Resolver Query Log Configs. + +https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverQueryLogConfig.html + +The primary key for this table is **arn**. + +## Columns + +| Name | Type | +| ------------- | ------------- | +|_cq_source_name|`utf8`| +|_cq_sync_time|`timestamp[us, tz=UTC]`| +|_cq_id|`uuid`| +|_cq_parent_id|`uuid`| +|account_id|`utf8`| +|region|`utf8`| +|arn (PK)|`utf8`| +|association_count|`int64`| +|creation_time|`utf8`| +|creator_request_id|`utf8`| +|destination_arn|`utf8`| +|id|`utf8`| +|name|`utf8`| +|owner_id|`utf8`| +|share_status|`utf8`| +|status|`utf8`| \ No newline at end of file diff --git a/website/tables/aws/aws_route53resolver_resolver_rule_associations.md b/website/tables/aws/aws_route53resolver_resolver_rule_associations.md new file mode 100644 index 00000000000000..d58be681b6f278 --- /dev/null +++ b/website/tables/aws/aws_route53resolver_resolver_rule_associations.md @@ -0,0 +1,24 @@ +# Table: aws_route53resolver_resolver_rule_associations + +This table shows data for Route53resolver Resolver Rule Associations. + +https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverRuleAssociation.html + +The composite primary key for this table is (**account_id**, **region**, **id**). + +## Columns + +| Name | Type | +| ------------- | ------------- | +|_cq_source_name|`utf8`| +|_cq_sync_time|`timestamp[us, tz=UTC]`| +|_cq_id|`uuid`| +|_cq_parent_id|`uuid`| +|account_id (PK)|`utf8`| +|region (PK)|`utf8`| +|id (PK)|`utf8`| +|name|`utf8`| +|resolver_rule_id|`utf8`| +|status|`utf8`| +|status_message|`utf8`| +|vpc_id|`utf8`| \ No newline at end of file diff --git a/website/tables/aws/aws_route53resolver_resolver_rules.md b/website/tables/aws/aws_route53resolver_resolver_rules.md new file mode 100644 index 00000000000000..f2f4dcd87e0741 --- /dev/null +++ b/website/tables/aws/aws_route53resolver_resolver_rules.md @@ -0,0 +1,32 @@ +# Table: aws_route53resolver_resolver_rules + +This table shows data for Route53resolver Resolver Rules. + +https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverRule.html + +The primary key for this table is **arn**. + +## Columns + +| Name | Type | +| ------------- | ------------- | +|_cq_source_name|`utf8`| +|_cq_sync_time|`timestamp[us, tz=UTC]`| +|_cq_id|`uuid`| +|_cq_parent_id|`uuid`| +|account_id|`utf8`| +|region|`utf8`| +|arn (PK)|`utf8`| +|creation_time|`utf8`| +|creator_request_id|`utf8`| +|domain_name|`utf8`| +|id|`utf8`| +|modification_time|`utf8`| +|name|`utf8`| +|owner_id|`utf8`| +|resolver_endpoint_id|`utf8`| +|rule_type|`utf8`| +|share_status|`utf8`| +|status|`utf8`| +|status_message|`utf8`| +|target_ips|`json`| \ No newline at end of file From e886fcba5a1220cf5e27db1946b1ad20836a734a Mon Sep 17 00:00:00 2001 From: bbernays Date: Fri, 30 Jun 2023 07:02:44 -0400 Subject: [PATCH 6/7] Update main.go --- plugins/source/aws/codegen/main.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/source/aws/codegen/main.go b/plugins/source/aws/codegen/main.go index 36f0b906518f62..06fcfafbb75543 100644 --- a/plugins/source/aws/codegen/main.go +++ b/plugins/source/aws/codegen/main.go @@ -87,6 +87,7 @@ import ( "github.com/aws/aws-sdk-go-v2/service/resourcegroups" "github.com/aws/aws-sdk-go-v2/service/route53" "github.com/aws/aws-sdk-go-v2/service/route53domains" + "github.com/aws/aws-sdk-go-v2/service/route53resolver" "github.com/aws/aws-sdk-go-v2/service/s3" "github.com/aws/aws-sdk-go-v2/service/s3control" "github.com/aws/aws-sdk-go-v2/service/sagemaker" @@ -203,6 +204,7 @@ var clients = []any{ &resourcegroups.Client{}, &route53.Client{}, &route53domains.Client{}, + &route53resolver.Client{}, &s3.Client{}, &s3control.Client{}, &sagemaker.Client{}, From 5878d7fd0ff97859cbcafe069f558fbbf4f16acb Mon Sep 17 00:00:00 2001 From: bbernays Date: Fri, 30 Jun 2023 07:58:32 -0400 Subject: [PATCH 7/7] Update route53 naming --- plugins/source/aws/resources/plugin/plugin.go | 2 ++ website/tables/aws/aws_route53_delegation_sets.md | 2 +- website/tables/aws/aws_route53_domains.md | 2 +- website/tables/aws/aws_route53_health_checks.md | 2 +- .../tables/aws/aws_route53_hosted_zone_query_logging_configs.md | 2 +- .../tables/aws/aws_route53_hosted_zone_resource_record_sets.md | 2 +- .../aws/aws_route53_hosted_zone_traffic_policy_instances.md | 2 +- website/tables/aws/aws_route53_hosted_zones.md | 2 +- website/tables/aws/aws_route53_operations.md | 2 +- website/tables/aws/aws_route53_traffic_policies.md | 2 +- website/tables/aws/aws_route53_traffic_policy_versions.md | 2 +- website/tables/aws/aws_route53resolver_firewall_configs.md | 2 +- website/tables/aws/aws_route53resolver_firewall_domain_lists.md | 2 +- .../aws/aws_route53resolver_firewall_rule_group_associations.md | 2 +- website/tables/aws/aws_route53resolver_firewall_rule_groups.md | 2 +- website/tables/aws/aws_route53resolver_resolver_endpoints.md | 2 +- ...ws_route53resolver_resolver_query_log_config_associations.md | 2 +- .../aws/aws_route53resolver_resolver_query_log_configs.md | 2 +- .../aws/aws_route53resolver_resolver_rule_associations.md | 2 +- website/tables/aws/aws_route53resolver_resolver_rules.md | 2 +- 20 files changed, 21 insertions(+), 19 deletions(-) diff --git a/plugins/source/aws/resources/plugin/plugin.go b/plugins/source/aws/resources/plugin/plugin.go index 628ee74c84ef75..eb090c7faf98e8 100644 --- a/plugins/source/aws/resources/plugin/plugin.go +++ b/plugins/source/aws/resources/plugin/plugin.go @@ -68,6 +68,8 @@ var awsExceptions = map[string]string{ "qldb": "Quantum Ledger Database (QLDB)", "quicksight": "QuickSight", "rds": "Amazon Relational Database Service (RDS)", + "route53": "Amazon Route 53", + "route53resolver": "Amazon Route 53 Resolver", "resiliencehub": "AWS Resilience Hub", "sagemaker": "Amazon SageMaker", "secretsmanager": "AWS Secrets Manager", diff --git a/website/tables/aws/aws_route53_delegation_sets.md b/website/tables/aws/aws_route53_delegation_sets.md index 7a26ddb0e87c93..f4205df3cb608c 100644 --- a/website/tables/aws/aws_route53_delegation_sets.md +++ b/website/tables/aws/aws_route53_delegation_sets.md @@ -1,6 +1,6 @@ # Table: aws_route53_delegation_sets -This table shows data for Route53 Delegation Sets. +This table shows data for Amazon Route 53 Delegation Sets. https://docs.aws.amazon.com/Route53/latest/APIReference/API_DelegationSet.html diff --git a/website/tables/aws/aws_route53_domains.md b/website/tables/aws/aws_route53_domains.md index b9979655ce2f73..1784a451140ebd 100644 --- a/website/tables/aws/aws_route53_domains.md +++ b/website/tables/aws/aws_route53_domains.md @@ -1,6 +1,6 @@ # Table: aws_route53_domains -This table shows data for Route53 Domains. +This table shows data for Amazon Route 53 Domains. https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetDomainDetail.html diff --git a/website/tables/aws/aws_route53_health_checks.md b/website/tables/aws/aws_route53_health_checks.md index fa1e3b656463ca..2760e15bdcd418 100644 --- a/website/tables/aws/aws_route53_health_checks.md +++ b/website/tables/aws/aws_route53_health_checks.md @@ -1,6 +1,6 @@ # Table: aws_route53_health_checks -This table shows data for Route53 Health Checks. +This table shows data for Amazon Route 53 Health Checks. https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheck.html diff --git a/website/tables/aws/aws_route53_hosted_zone_query_logging_configs.md b/website/tables/aws/aws_route53_hosted_zone_query_logging_configs.md index f48deb88db6943..15117f9694ab42 100644 --- a/website/tables/aws/aws_route53_hosted_zone_query_logging_configs.md +++ b/website/tables/aws/aws_route53_hosted_zone_query_logging_configs.md @@ -1,6 +1,6 @@ # Table: aws_route53_hosted_zone_query_logging_configs -This table shows data for Route53 Hosted Zone Query Logging Configs. +This table shows data for Amazon Route 53 Hosted Zone Query Logging Configs. https://docs.aws.amazon.com/Route53/latest/APIReference/API_QueryLoggingConfig.html diff --git a/website/tables/aws/aws_route53_hosted_zone_resource_record_sets.md b/website/tables/aws/aws_route53_hosted_zone_resource_record_sets.md index c221cea2cc69b9..cbe19f568e5a64 100644 --- a/website/tables/aws/aws_route53_hosted_zone_resource_record_sets.md +++ b/website/tables/aws/aws_route53_hosted_zone_resource_record_sets.md @@ -1,6 +1,6 @@ # Table: aws_route53_hosted_zone_resource_record_sets -This table shows data for Route53 Hosted Zone Resource Record Sets. +This table shows data for Amazon Route 53 Hosted Zone Resource Record Sets. https://docs.aws.amazon.com/Route53/latest/APIReference/API_ResourceRecordSet.html diff --git a/website/tables/aws/aws_route53_hosted_zone_traffic_policy_instances.md b/website/tables/aws/aws_route53_hosted_zone_traffic_policy_instances.md index 4d174eabdc0e8b..48e28cb172d542 100644 --- a/website/tables/aws/aws_route53_hosted_zone_traffic_policy_instances.md +++ b/website/tables/aws/aws_route53_hosted_zone_traffic_policy_instances.md @@ -1,6 +1,6 @@ # Table: aws_route53_hosted_zone_traffic_policy_instances -This table shows data for Route53 Hosted Zone Traffic Policy Instances. +This table shows data for Amazon Route 53 Hosted Zone Traffic Policy Instances. https://docs.aws.amazon.com/Route53/latest/APIReference/API_TrafficPolicyInstance.html diff --git a/website/tables/aws/aws_route53_hosted_zones.md b/website/tables/aws/aws_route53_hosted_zones.md index baba7352427b55..73158b8702c820 100644 --- a/website/tables/aws/aws_route53_hosted_zones.md +++ b/website/tables/aws/aws_route53_hosted_zones.md @@ -1,6 +1,6 @@ # Table: aws_route53_hosted_zones -This table shows data for Route53 Hosted Zones. +This table shows data for Amazon Route 53 Hosted Zones. https://docs.aws.amazon.com/Route53/latest/APIReference/API_HostedZone.html diff --git a/website/tables/aws/aws_route53_operations.md b/website/tables/aws/aws_route53_operations.md index 69f92ae6da1366..b988fa5a117ef5 100644 --- a/website/tables/aws/aws_route53_operations.md +++ b/website/tables/aws/aws_route53_operations.md @@ -1,6 +1,6 @@ # Table: aws_route53_operations -This table shows data for Route53 Operations. +This table shows data for Amazon Route 53 Operations. https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html diff --git a/website/tables/aws/aws_route53_traffic_policies.md b/website/tables/aws/aws_route53_traffic_policies.md index b54a2b75b59d54..a3b8b32e22871a 100644 --- a/website/tables/aws/aws_route53_traffic_policies.md +++ b/website/tables/aws/aws_route53_traffic_policies.md @@ -1,6 +1,6 @@ # Table: aws_route53_traffic_policies -This table shows data for Route53 Traffic Policies. +This table shows data for Amazon Route 53 Traffic Policies. https://docs.aws.amazon.com/Route53/latest/APIReference/API_TrafficPolicySummary.html diff --git a/website/tables/aws/aws_route53_traffic_policy_versions.md b/website/tables/aws/aws_route53_traffic_policy_versions.md index 7f8f0094a5370f..613f2ed7238f59 100644 --- a/website/tables/aws/aws_route53_traffic_policy_versions.md +++ b/website/tables/aws/aws_route53_traffic_policy_versions.md @@ -1,6 +1,6 @@ # Table: aws_route53_traffic_policy_versions -This table shows data for Route53 Traffic Policy Versions. +This table shows data for Amazon Route 53 Traffic Policy Versions. https://docs.aws.amazon.com/Route53/latest/APIReference/API_TrafficPolicy.html diff --git a/website/tables/aws/aws_route53resolver_firewall_configs.md b/website/tables/aws/aws_route53resolver_firewall_configs.md index a6c5f82083a1f9..5c8a47d44ff476 100644 --- a/website/tables/aws/aws_route53resolver_firewall_configs.md +++ b/website/tables/aws/aws_route53resolver_firewall_configs.md @@ -1,6 +1,6 @@ # Table: aws_route53resolver_firewall_configs -This table shows data for Route53resolver Firewall Configs. +This table shows data for Amazon Route 53 Resolver Firewall Configs. https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_FirewallConfig.html diff --git a/website/tables/aws/aws_route53resolver_firewall_domain_lists.md b/website/tables/aws/aws_route53resolver_firewall_domain_lists.md index 31b8334504a629..820076eeced95b 100644 --- a/website/tables/aws/aws_route53resolver_firewall_domain_lists.md +++ b/website/tables/aws/aws_route53resolver_firewall_domain_lists.md @@ -1,6 +1,6 @@ # Table: aws_route53resolver_firewall_domain_lists -This table shows data for Route53resolver Firewall Domain Lists. +This table shows data for Amazon Route 53 Resolver Firewall Domain Lists. https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_FirewallDomainList.html diff --git a/website/tables/aws/aws_route53resolver_firewall_rule_group_associations.md b/website/tables/aws/aws_route53resolver_firewall_rule_group_associations.md index ff08cb7d48783b..d8d7574032148e 100644 --- a/website/tables/aws/aws_route53resolver_firewall_rule_group_associations.md +++ b/website/tables/aws/aws_route53resolver_firewall_rule_group_associations.md @@ -1,6 +1,6 @@ # Table: aws_route53resolver_firewall_rule_group_associations -This table shows data for Route53resolver Firewall Rule Group Associations. +This table shows data for Amazon Route 53 Resolver Firewall Rule Group Associations. https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_FirewallRuleGroupAssociation.html diff --git a/website/tables/aws/aws_route53resolver_firewall_rule_groups.md b/website/tables/aws/aws_route53resolver_firewall_rule_groups.md index 8a0b492c29c113..34aeb04ffdf3f1 100644 --- a/website/tables/aws/aws_route53resolver_firewall_rule_groups.md +++ b/website/tables/aws/aws_route53resolver_firewall_rule_groups.md @@ -1,6 +1,6 @@ # Table: aws_route53resolver_firewall_rule_groups -This table shows data for Route53resolver Firewall Rule Groups. +This table shows data for Amazon Route 53 Resolver Firewall Rule Groups. https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_FirewallRuleGroup.html diff --git a/website/tables/aws/aws_route53resolver_resolver_endpoints.md b/website/tables/aws/aws_route53resolver_resolver_endpoints.md index 850dd8476f0248..5ffe52d0679a0a 100644 --- a/website/tables/aws/aws_route53resolver_resolver_endpoints.md +++ b/website/tables/aws/aws_route53resolver_resolver_endpoints.md @@ -1,6 +1,6 @@ # Table: aws_route53resolver_resolver_endpoints -This table shows data for Route53resolver Resolver Endpoints. +This table shows data for Amazon Route 53 Resolver Resolver Endpoints. https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverEndpoint.html diff --git a/website/tables/aws/aws_route53resolver_resolver_query_log_config_associations.md b/website/tables/aws/aws_route53resolver_resolver_query_log_config_associations.md index df962019ccf5ed..b254dc4fa8ede0 100644 --- a/website/tables/aws/aws_route53resolver_resolver_query_log_config_associations.md +++ b/website/tables/aws/aws_route53resolver_resolver_query_log_config_associations.md @@ -1,6 +1,6 @@ # Table: aws_route53resolver_resolver_query_log_config_associations -This table shows data for Route53resolver Resolver Query Log Config Associations. +This table shows data for Amazon Route 53 Resolver Resolver Query Log Config Associations. https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverQueryLogConfigAssociation.html diff --git a/website/tables/aws/aws_route53resolver_resolver_query_log_configs.md b/website/tables/aws/aws_route53resolver_resolver_query_log_configs.md index 5ba891f004adf2..3ed2a01eb81c7f 100644 --- a/website/tables/aws/aws_route53resolver_resolver_query_log_configs.md +++ b/website/tables/aws/aws_route53resolver_resolver_query_log_configs.md @@ -1,6 +1,6 @@ # Table: aws_route53resolver_resolver_query_log_configs -This table shows data for Route53resolver Resolver Query Log Configs. +This table shows data for Amazon Route 53 Resolver Resolver Query Log Configs. https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverQueryLogConfig.html diff --git a/website/tables/aws/aws_route53resolver_resolver_rule_associations.md b/website/tables/aws/aws_route53resolver_resolver_rule_associations.md index d58be681b6f278..13c51aa656c0ec 100644 --- a/website/tables/aws/aws_route53resolver_resolver_rule_associations.md +++ b/website/tables/aws/aws_route53resolver_resolver_rule_associations.md @@ -1,6 +1,6 @@ # Table: aws_route53resolver_resolver_rule_associations -This table shows data for Route53resolver Resolver Rule Associations. +This table shows data for Amazon Route 53 Resolver Resolver Rule Associations. https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverRuleAssociation.html diff --git a/website/tables/aws/aws_route53resolver_resolver_rules.md b/website/tables/aws/aws_route53resolver_resolver_rules.md index f2f4dcd87e0741..afa20f309df258 100644 --- a/website/tables/aws/aws_route53resolver_resolver_rules.md +++ b/website/tables/aws/aws_route53resolver_resolver_rules.md @@ -1,6 +1,6 @@ # Table: aws_route53resolver_resolver_rules -This table shows data for Route53resolver Resolver Rules. +This table shows data for Amazon Route 53 Resolver Resolver Rules. https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverRule.html