github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/cloud/aws/api-gateway/adapt.go (about)

     1  package api_gateway
     2  
     3  import (
     4  	apiv1 "github.com/aws/aws-sdk-go-v2/service/apigateway"
     5  	apiv2 "github.com/aws/aws-sdk-go-v2/service/apigatewayv2"
     6  	"github.com/khulnasoft-lab/defsec/internal/adapters/cloud/aws"
     7  	"github.com/khulnasoft-lab/defsec/pkg/state"
     8  )
     9  
    10  type adapter struct {
    11  	*aws.RootAdapter
    12  	clientV1 *apiv1.Client
    13  	clientV2 *apiv2.Client
    14  }
    15  
    16  func init() {
    17  	aws.RegisterServiceAdapter(&adapter{})
    18  }
    19  
    20  func (a *adapter) Provider() string {
    21  	return "aws"
    22  }
    23  
    24  func (a *adapter) Name() string {
    25  	return "api-gateway"
    26  }
    27  
    28  func (a *adapter) Adapt(root *aws.RootAdapter, state *state.State) error {
    29  
    30  	a.RootAdapter = root
    31  	a.clientV1 = apiv1.NewFromConfig(root.SessionConfig())
    32  	a.clientV2 = apiv2.NewFromConfig(root.SessionConfig())
    33  	var err error
    34  
    35  	state.AWS.APIGateway.V1.DomainNames, err = a.getDomainNamesv1()
    36  	if err != nil {
    37  		return err
    38  	}
    39  
    40  	state.AWS.APIGateway.V1.APIs, err = a.getAPIsV1()
    41  	if err != nil {
    42  		return err
    43  	}
    44  
    45  	state.AWS.APIGateway.V2.DomainNames, err = a.getDomainNamesV2()
    46  	if err != nil {
    47  		return err
    48  	}
    49  
    50  	state.AWS.APIGateway.V2.APIs, err = a.getAPIsV2()
    51  	if err != nil {
    52  		return err
    53  	}
    54  
    55  	return nil
    56  }