Skip to content
1 change: 1 addition & 0 deletions plugins/source/aws/docs/tables/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 21 additions & 0 deletions plugins/source/aws/docs/tables/aws_directconnect_locations.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Table: aws_directconnect_locations

https://docs.aws.amazon.com/directconnect/latest/APIReference/API_Location.html

The composite primary key for this table is (**account_id**, **region**, **location_code**).

## Columns

| Name | Type |
| ------------- | ------------- |
|_cq_source_name|String|
|_cq_sync_time|Timestamp|
|_cq_id|UUID|
|_cq_parent_id|UUID|
|account_id (PK)|String|
|region (PK)|String|
|available_mac_sec_port_speeds|StringArray|
|available_port_speeds|StringArray|
|available_providers|StringArray|
|location_code (PK)|String|
|location_name|String|
1 change: 1 addition & 0 deletions plugins/source/aws/resources/plugin/tables.go
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ func tables() []*schema.Table {
directconnect.Connections(),
directconnect.Gateways(),
directconnect.Lags(),
directconnect.Locations(),
directconnect.VirtualGateways(),
directconnect.VirtualInterfaces(),
dms.ReplicationInstances(),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package directconnect

import (
"github.com/aws/aws-sdk-go-v2/service/directconnect/types"
"github.com/cloudquery/cloudquery/plugins/source/aws/client"
"github.com/cloudquery/plugin-sdk/schema"
"github.com/cloudquery/plugin-sdk/transformers"
)

func Locations() *schema.Table {
return &schema.Table{
Name: "aws_directconnect_locations",
Description: `https://docs.aws.amazon.com/directconnect/latest/APIReference/API_Location.html`,
Resolver: fetchDirectConnectLocations,
Multiplex: client.ServiceAccountRegionMultiplexer("directconnect"),
Transform: transformers.TransformWithStruct(&types.Location{}, transformers.WithPrimaryKeys("LocationCode")),
Columns: []schema.Column{
client.DefaultAccountIDColumn(true),
client.DefaultRegionColumn(true),
},
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package directconnect

import (
"context"

"github.com/aws/aws-sdk-go-v2/service/directconnect"
"github.com/cloudquery/cloudquery/plugins/source/aws/client"
"github.com/cloudquery/plugin-sdk/schema"
)

func fetchDirectConnectLocations(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error {
var config directconnect.DescribeLocationsInput
c := meta.(*client.Client)
svc := c.Services().Directconnect
output, err := svc.DescribeLocations(ctx, &config)
if err != nil {
return err
}
res <- output.Locations
return nil
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package directconnect

import (
"testing"

"github.com/aws/aws-sdk-go-v2/service/directconnect"
"github.com/aws/aws-sdk-go-v2/service/directconnect/types"
"github.com/cloudquery/cloudquery/plugins/source/aws/client"
"github.com/cloudquery/cloudquery/plugins/source/aws/client/mocks"
"github.com/cloudquery/plugin-sdk/faker"
"github.com/golang/mock/gomock"
)

func buildDirectconnectLocations(t *testing.T, ctrl *gomock.Controller) client.Services {
m := mocks.NewMockDirectconnectClient(ctrl)
loc := types.Location{}
err := faker.FakeObject(&loc)
if err != nil {
t.Fatal(err)
}
m.EXPECT().DescribeLocations(gomock.Any(), gomock.Any(), gomock.Any()).Return(
&directconnect.DescribeLocationsOutput{
Locations: []types.Location{loc},
}, nil)
return client.Services{
Directconnect: m,
}
}

func TestDirectconnectLocation(t *testing.T) {
client.AwsMockTestHelper(t, Locations(), buildDirectconnectLocations, client.TestOptions{})
}
1 change: 1 addition & 0 deletions website/pages/docs/plugins/sources/aws/tables.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.