diff --git a/aws/plugin.go b/aws/plugin.go index f209b2376..d1bd3ef7f 100644 --- a/aws/plugin.go +++ b/aws/plugin.go @@ -99,6 +99,7 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_appautoscaling_policy": tableAwsAppAutoScalingPolicy(ctx), "aws_appautoscaling_target": tableAwsAppAutoScalingTarget(ctx), "aws_appconfig_application": tableAwsAppConfigApplication(ctx), + "aws_application_signals_service_level_objective": tableAwsApplicationSignalsServiceLevelObjective(ctx), "aws_appstream_fleet": tableAwsAppStreamFleet(ctx), "aws_appstream_image": tableAwsAppStreamImage(ctx), "aws_appsync_graphql_api": tableAwsAppsyncGraphQLApi(ctx), @@ -467,7 +468,7 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_securityhub_hub": tableAwsSecurityHub(ctx), "aws_securityhub_insight": tableAwsSecurityHubInsight(ctx), "aws_securityhub_member": tableAwsSecurityHubMember(ctx), - "aws_securityhub_enabled_product_subscription": tableAwsSecurityhubEnabledProductSubscription(ctx), + "aws_securityhub_enabled_product_subscription": tableAwsSecurityhubEnabledProductSubscription(ctx), "aws_securityhub_product": tableAwsSecurityhubProduct(ctx), "aws_securityhub_standards_control": tableAwsSecurityHubStandardsControl(ctx), "aws_securityhub_standards_subscription": tableAwsSecurityHubStandardsSubscription(ctx), diff --git a/aws/service.go b/aws/service.go index c66ec8360..62b85e26f 100644 --- a/aws/service.go +++ b/aws/service.go @@ -26,6 +26,7 @@ import ( "github.com/aws/aws-sdk-go-v2/service/apigatewayv2" "github.com/aws/aws-sdk-go-v2/service/appconfig" "github.com/aws/aws-sdk-go-v2/service/applicationautoscaling" + "github.com/aws/aws-sdk-go-v2/service/applicationsignals" "github.com/aws/aws-sdk-go-v2/service/apprunner" "github.com/aws/aws-sdk-go-v2/service/appstream" "github.com/aws/aws-sdk-go-v2/service/appsync" @@ -315,6 +316,17 @@ func ApplicationAutoScalingClient(ctx context.Context, d *plugin.QueryData) (*ap return applicationautoscaling.NewFromConfig(*cfg), nil } +func ApplicationSignalsClient(ctx context.Context, d *plugin.QueryData) (*applicationsignals.Client, error) { + cfg, err := getClientForQueryRegion(ctx, d) + if err != nil { + return nil, err + } + if cfg == nil { + return nil, nil + } + return applicationsignals.NewFromConfig(*cfg), nil +} + func AppRunnerClient(ctx context.Context, d *plugin.QueryData) (*apprunner.Client, error) { cfg, err := getClientForQuerySupportedRegion(ctx, d, appRunnerEndpoint.EndpointsID) if err != nil { @@ -1861,21 +1873,18 @@ func getClientWithMaxRetries(ctx context.Context, d *plugin.QueryData, region st if awsSpcConfig.EndpointUrl != nil { awsEndpointUrl = *awsSpcConfig.EndpointUrl if awsEndpointUrl != "" { - customResolver := aws.EndpointResolverWithOptionsFunc(func(service, region string, options ...interface{}) (aws.Endpoint, error) { - return aws.Endpoint{ - PartitionID: "aws", - URL: awsEndpointUrl, - SigningRegion: region, - }, nil - }) - newCfg, err := config.LoadDefaultConfig(ctx, config.WithEndpointResolverWithOptions(customResolver)) - if err != nil { - plugin.Logger(ctx).Error("service.getClientWithMaxRetries", "connection_error", err) - return nil, err - } - newCfg.Retryer = cfg.Retryer - newCfg.Region = cfg.Region - cfg = newCfg + // The global endpoint resolution interface is deprecated. The API + // for endpoint resolution is now unique to each service and is set via the + // EndpointResolverV2 field on service client options. Setting a value for + // EndpointResolver on aws.Config or service client options will prevent you + // from using any endpoint-related service features released after the + // introduction of EndpointResolverV2. You may also encounter broken or + // unexpected behavior when using the old global interface with services that + // use many endpoint-related customizations such as S3. + // https://aws.github.io/aws-sdk-go-v2/docs/configuring-sdk/endpoints/ + // By default the custom endpoint provided in "BaseEndpoint" will be resolved for each service + // Eg: https://github.com/aws/aws-sdk-go-v2/blob/v1.30.5/service/cloudfront/api_client.go#L257 + cfg.BaseEndpoint = &awsEndpointUrl } } diff --git a/aws/table_aws_application_signals_service_level_objective.go b/aws/table_aws_application_signals_service_level_objective.go new file mode 100644 index 000000000..57ca4d826 --- /dev/null +++ b/aws/table_aws_application_signals_service_level_objective.go @@ -0,0 +1,221 @@ +package aws + +import ( + "context" + "strings" + + "github.com/aws/aws-sdk-go-v2/service/applicationsignals" + cloudwatchlogsv1 "github.com/aws/aws-sdk-go/service/cloudwatchlogs" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/applicationsignals/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsApplicationSignalsServiceLevelObjective(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_application_signals_service_level_objective", + Description: "AWS Application Signals Service Level Objective", + Get: &plugin.GetConfig{ + Hydrate: getApplicationSignalsServiceLevelObjective, + KeyColumns: plugin.SingleColumn("arn"), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), + }, + Tags: map[string]string{"service": "application-signals", "action": "GetApplicationSignalsServiceLevelObjective"}, + }, + List: &plugin.ListConfig{ + Hydrate: listApplicationSignalsServiceLevelObjectives, + KeyColumns: plugin.OptionalColumns([]string{"operation_name"}), + Tags: map[string]string{"service": "application-signals", "action": "ListApplicationSignalsServiceLevelObjectives"}, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getApplicationSignalsServiceLevelObjective, + Tags: map[string]string{"service": "application-signals", "action": "GetApplicationSignalsServiceLevelObjective"}, + }, + }, + // AWS Doesn't treat it as a separate service it is under CloudWatch service but the API package is different. + // https://aws.amazon.com/about-aws/whats-new/2024/06/amazon-cloudwatch-application-signals-application-monitoring/ + GetMatrixItemFunc: SupportedRegionMatrix(cloudwatchlogsv1.EndpointsID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the service level objective.", + Type: proto.ColumnType_STRING, + }, + { + Name: "name", + Description: "The name of the service level objective.", + Type: proto.ColumnType_STRING, + }, + { + Name: "operation_name", + Description: " If this service level objective is specific to a single operation, this field displays the name of that operation.", + Type: proto.ColumnType_STRING, + }, + { + Name: "created_time", + Description: "The date and time that this SLO was created.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "evaluation_type", + Description: "Displays whether this is a period-based SLO or a request-based SLO.", + Type: proto.ColumnType_STRING, + Hydrate: getApplicationSignalsServiceLevelObjective, + }, + { + Name: "attainment_goal", + Description: "The attainment goal of the service level objective.", + Type: proto.ColumnType_DOUBLE, + Hydrate: getApplicationSignalsServiceLevelObjective, + Transform: transform.FromField("Goal.AttainmentGoal"), + }, + { + Name: "goal", + Description: "The goal of the service level objective.", + Type: proto.ColumnType_JSON, + Hydrate: getApplicationSignalsServiceLevelObjective, + }, + { + Name: "sli", + Description: "The sli of the service level objective.", + Type: proto.ColumnType_JSON, + Hydrate: getApplicationSignalsServiceLevelObjective, + }, + { + Name: "request_based_sli", + Description: "A structure containing information about the performance metric that this SLO monitors, if this is a period-based SLO.", + Type: proto.ColumnType_JSON, + Hydrate: getApplicationSignalsServiceLevelObjective, + }, + + //// Steampipe Standard Columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Name"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("Arn").Transform(arnToAkas), + }, + }), + } +} + +//// LIST FUNCTION + +func listApplicationSignalsServiceLevelObjectives(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + svc, err := ApplicationSignalsClient(ctx, d) + + // Unsupported region check + if svc == nil { + return nil, nil + } + if err != nil { + plugin.Logger(ctx).Error("aws_application_signals_service_level_objective.listApplicationSignalsServiceLevelObjectives", "client_error", err) + return nil, err + } + + maxItems := int32(50) + + // Reduce the basic request limit down if the user has only requested a small number + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxItems { + maxItems = int32(limit) + } + } + + input := &applicationsignals.ListServiceLevelObjectivesInput{ + MaxResults: &maxItems, + } + + if d.EqualsQualString("operation_name") != "" { + input.OperationName = aws.String(d.EqualsQualString("operation_name")) + } + + paginator := applicationsignals.NewListServiceLevelObjectivesPaginator(svc, input, func(o *applicationsignals.ListServiceLevelObjectivesPaginatorOptions) { + o.Limit = maxItems + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_application_signals_service_level_objective.listApplicationSignalsServiceLevelObjectives", "api_error", err) + return nil, err + } + + for _, sloSummary := range output.SloSummaries { + d.StreamListItem(ctx, sloSummary) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getApplicationSignalsServiceLevelObjective(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + region := d.EqualsQualString(matrixKeyRegion) + arn := "" + + if h.Item != nil { + data := h.Item.(types.ServiceLevelObjectiveSummary) + arn = *data.Arn + } else { + arn = d.EqualsQualString("arn") + } + + // check if name is empty + if strings.TrimSpace(arn) == "" { + return nil, nil + } + + // Restrict API call for other regions + if len(strings.Split(arn, ":")) > 3 && strings.Split(arn, ":")[3] != region { + return nil, nil + } + + // Get client + svc, err := ApplicationSignalsClient(ctx, d) + + // Unsupported region check + if svc == nil { + return nil, nil + } + + if err != nil { + plugin.Logger(ctx).Error("aws_application_signals_service_level_objective.getApplicationSignalsServiceLevelObjective", "client_error", err) + return nil, err + } + + params := &applicationsignals.GetServiceLevelObjectiveInput{ + Id: aws.String(arn), + } + + item, err := svc.GetServiceLevelObjective(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_application_signals_service_level_objective.getApplicationSignalsServiceLevelObjective", "api_error", err) + return nil, err + } + + return item.Slo, nil +} diff --git a/docs/tables/aws_application_signals_service_level_objective.md b/docs/tables/aws_application_signals_service_level_objective.md new file mode 100644 index 000000000..71a0be602 --- /dev/null +++ b/docs/tables/aws_application_signals_service_level_objective.md @@ -0,0 +1,145 @@ +--- +title: "Steampipe Table: aws_application_signals_service_level_objective - Query AWS Application Signals Service Level Objectives using SQL" +description: "Allows users to query AWS Application Signals Service Level Objectives, providing detailed information on SLO configurations, goals, and performance metrics." +--- + +# Table: aws_application_signals_service_level_objective - Query AWS Application Signals Service Level Objectives using SQL + +AWS Application Signals Service Level Objectives (SLOs) help you monitor and manage the reliability and performance of your applications. Each SLO defines performance goals and evaluates the service’s ability to meet those goals over a given period. The `aws_application_signals_service_level_objective` table in Steampipe allows you to query detailed information about SLOs in your AWS environment, including their goals, attainment levels, evaluation types, and performance metrics. + +## Table Usage Guide + +The `aws_application_signals_service_level_objective` table enables cloud administrators, DevOps engineers, and reliability engineers to monitor the performance of their applications by querying SLOs. You can gather insights into various aspects of the SLO, such as its attainment goal, operation name, performance metrics, and whether it’s request-based or period-based. This table is useful for tracking application reliability, analyzing SLO compliance, and ensuring your application meets the defined performance standards. + +## Examples + +### Basic SLO information +Retrieve basic information about SLOs, including their name, ARN, and region. + +```sql+postgres +select + name, + arn, + region, + created_time +from + aws_application_signals_service_level_objective; +``` + +```sql+sqlite +select + name, + arn, + region, + created_time +from + aws_application_signals_service_level_objective; +``` + +### List SLOs by attainment goal +Identify service level objectives based on their attainment goals. + +```sql+postgres +select + name, + attainment_goal, + region, + account_id +from + aws_application_signals_service_level_objective +where + attainment_goal >= 99.0; +``` + +```sql+sqlite +select + name, + attainment_goal, + region, + account_id +from + aws_application_signals_service_level_objective +where + attainment_goal >= 99.0; +``` + +### List request-based SLOs +Retrieve all service level objectives that are request-based, which monitor performance based on requests. + +```sql+postgres +select + name, + arn, + region, + evaluation_type, + request_based_sli +from + aws_application_signals_service_level_objective +where + evaluation_type = 'RequestBased'; +``` + +```sql+sqlite +select + name, + arn, + region, + evaluation_type, + request_based_sli +from + aws_application_signals_service_level_objective +where + evaluation_type = 'RequestBased'; +``` + +### List SLOs by operation name +Identify service level objectives specific to certain operations. + +```sql+postgres +select + name, + operation_name, + arn, + region +from + aws_application_signals_service_level_objective +where + operation_name is not null; +``` + +```sql+sqlite +select + name, + operation_name, + arn, + region +from + aws_application_signals_service_level_objective +where + operation_name is not null; +``` + +### List service level objectives with select service level indicator details +Retrieve a list of service level objectives (SLOs) along with specific service level indicator (SLI) details, such as comparison operators and metric thresholds. + +```sql+postgres +select + arn, + name, + sli::json -> 'ComparisonOperator' as "Must Be", + sli::json -> 'MetricThreshold' as "Threshold" + region +from + aws_application_signals_service_level_objective; +``` + +```sql+sqlite +select + arn, + name, + json_extract(sli, '$.ComparisonOperator') as "Must Be", + json_extract(sli, '$.MetricThreshold') as "Threshold" + region +from + aws_application_signals_service_level_objective +``` diff --git a/go.mod b/go.mod index 0d9b02069..eb77f98e2 100644 --- a/go.mod +++ b/go.mod @@ -5,10 +5,10 @@ go 1.22.4 toolchain go1.22.6 require ( - github.com/aws/aws-sdk-go v1.51.19 - github.com/aws/aws-sdk-go-v2 v1.27.0 - github.com/aws/aws-sdk-go-v2/config v1.27.16 - github.com/aws/aws-sdk-go-v2/credentials v1.17.16 + github.com/aws/aws-sdk-go v1.55.5 + github.com/aws/aws-sdk-go-v2 v1.30.5 + github.com/aws/aws-sdk-go-v2/config v1.27.35 + github.com/aws/aws-sdk-go-v2/credentials v1.17.33 github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.21 github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.29.1 github.com/aws/aws-sdk-go-v2/service/account v1.16.4 @@ -19,6 +19,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.20.4 github.com/aws/aws-sdk-go-v2/service/appconfig v1.29.2 github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.27.4 + github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.4.0 github.com/aws/aws-sdk-go-v2/service/apprunner v1.28.8 github.com/aws/aws-sdk-go-v2/service/appstream v1.34.4 github.com/aws/aws-sdk-go-v2/service/appsync v1.31.4 @@ -123,7 +124,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sqs v1.31.4 github.com/aws/aws-sdk-go-v2/service/ssm v1.49.5 github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.25.5 - github.com/aws/aws-sdk-go-v2/service/sts v1.28.10 + github.com/aws/aws-sdk-go-v2/service/sts v1.30.8 github.com/aws/aws-sdk-go-v2/service/support v1.21.4 github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.25.9 github.com/aws/aws-sdk-go-v2/service/transfer v1.45.0 @@ -165,19 +166,19 @@ require ( github.com/allegro/bigcache/v3 v3.1.0 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.9 // indirect github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.8 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.7 // indirect github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.30.4 - github.com/aws/aws-sdk-go-v2/service/sso v1.20.9 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.22.8 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.8 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/btubbs/datetime v0.1.1 // indirect diff --git a/go.sum b/go.sum index 67ab2c9d2..598e96609 100644 --- a/go.sum +++ b/go.sum @@ -203,26 +203,28 @@ github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kd github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.51.19 h1:jp/Vx/mUpXttthvvo/4/Nn/3+zumirIlAFkp1Irf1kM= -github.com/aws/aws-sdk-go v1.51.19/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= -github.com/aws/aws-sdk-go-v2 v1.27.0 h1:7bZWKoXhzI+mMR/HjdMx8ZCC5+6fY0lS5tr0bbgiLlo= -github.com/aws/aws-sdk-go-v2 v1.27.0/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= +github.com/aws/aws-sdk-go v1.53.20 h1:cYWPvZLP1gPj5CfUdnfjaaA7WFK3FGoJ/R9+Ks1inU4= +github.com/aws/aws-sdk-go v1.53.20/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU= +github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= +github.com/aws/aws-sdk-go-v2 v1.30.5 h1:mWSRTwQAb0aLE17dSzztCVJWI9+cRMgqebndjwDyK0g= +github.com/aws/aws-sdk-go-v2 v1.30.5/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.27.16 h1:knpCuH7laFVGYTNd99Ns5t+8PuRjDn4HnnZK48csipM= -github.com/aws/aws-sdk-go-v2/config v1.27.16/go.mod h1:vutqgRhDUktwSge3hrC3nkuirzkJ4E/mLj5GvI0BQas= -github.com/aws/aws-sdk-go-v2/credentials v1.17.16 h1:7d2QxY83uYl0l58ceyiSpxg9bSbStqBC6BeEeHEchwo= -github.com/aws/aws-sdk-go-v2/credentials v1.17.16/go.mod h1:Ae6li/6Yc6eMzysRL2BXlPYvnrLLBg3D11/AmOjw50k= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3 h1:dQLK4TjtnlRGb0czOht2CevZ5l6RSyRWAnKeGd7VAFE= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3/go.mod h1:TL79f2P6+8Q7dTsILpiVST+AL9lkF6PPGI167Ny0Cjw= +github.com/aws/aws-sdk-go-v2/config v1.27.35 h1:jeFgiWYNV0vrgdZqB4kZBjYNdy0IKkwrAjr2fwpHIig= +github.com/aws/aws-sdk-go-v2/config v1.27.35/go.mod h1:qnpEvTq8ZfjrCqmJGRfWZuF+lGZ/vG8LK2K0L/TY1gQ= +github.com/aws/aws-sdk-go-v2/credentials v1.17.33 h1:lBHAQQznENv0gLHAZ73ONiTSkCtr8q3pSqWrpbBBZz0= +github.com/aws/aws-sdk-go-v2/credentials v1.17.33/go.mod h1:MBuqCUOT3ChfLuxNDGyra67eskx7ge9e3YKYBce7wpI= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13 h1:pfQ2sqNpMVK6xz2RbqLEL0GH87JOwSxPV2rzm8Zsb74= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13/go.mod h1:NG7RXPUlqfsCLLFfi0+IpKN4sCB9D9fw/qTaSB+xRoU= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.21 h1:1v8Ii0MRVGYB/sdhkbxrtolCA7Tp+lGh+5OJTs5vmZ8= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.21/go.mod h1:cxdd1rc8yxCjKz28hi30XN1jDXr2DxZvD44vLxTz/bg= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7 h1:lf/8VTF2cM+N4SLzaYJERKEWAXq8MOMpZfU6wEPWsPk= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7/go.mod h1:4SjkU7QiqK2M9oozyMzfZ/23LmUY+h3oFqhdeP5OMiI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7 h1:4OYVp0705xu8yjdyoWix0r9wPIRXnIzzOoUpQVHIJ/g= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7/go.mod h1:vd7ESTEvI76T2Na050gODNmNU7+OyKrIKroYTu4ABiI= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17 h1:pI7Bzt0BJtYA0N/JEC6B8fJ4RBrEMi1LBrkMdFYNSnQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17/go.mod h1:Dh5zzJYMtxfIjYW+/evjQ8uj2OyR/ve2KROHGHlSFqE= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17 h1:Mqr/V5gvrhA2gvgnF42Zh5iMiQNcOYthFYwCyrnuWlc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17/go.mod h1:aLJpZlCmjE+V+KtN1q1uyZkfnUWpQGpbsn89XPKyzfU= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.7 h1:/FUtT3xsoHO3cfh+I/kCbcMCN98QZRsiFet/V8QkWSs= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.7/go.mod h1:MaCAgWpGooQoCWZnMur97rGn5dp350w2+CeiV5406wE= github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.29.1 h1:PL5AbOt4fBuqFOupjlJz7FNQv8Y9iq/3AlOiPFMcBhY= @@ -243,6 +245,8 @@ github.com/aws/aws-sdk-go-v2/service/appconfig v1.29.2 h1:Nm1Pqug23c/Ib+/FgwYpFZ github.com/aws/aws-sdk-go-v2/service/appconfig v1.29.2/go.mod h1:Z4uxjsQCQYIZQYOf5js8AN9B5ZCFfwRkEHuiihgjHWs= github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.27.4 h1:QGG9y+wEdP5KpTbcvpi8ETAoMq0zB6UJdqJ3JmVu/Wc= github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.27.4/go.mod h1:g7O+8ghAn49ysZShSpeOxIRiI0/BgPoqHwZFNKnykco= +github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.4.0 h1:xCO7ivLk/RAR372+4D9AQGFd/+Hs8Ehg79l9bfj32kQ= +github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.4.0/go.mod h1:oLl30psMIxqSF8EIbJBajb2VoLKcC97OVBUxaoBmsBU= github.com/aws/aws-sdk-go-v2/service/apprunner v1.28.8 h1:vTSRA431Gi6tQcUDfCTF1PwnLvw7M+7SoMWb0FRvKAY= github.com/aws/aws-sdk-go-v2/service/apprunner v1.28.8/go.mod h1:0ClIRoMxROYgDXb/kSvAsZSO41p4j9p4xkquAFzNEjM= github.com/aws/aws-sdk-go-v2/service/appstream v1.34.4 h1:chEtg7jpLbd+wzNEZR5Y7if5S3+zCL4HO892dk4JRHI= @@ -355,14 +359,14 @@ github.com/aws/aws-sdk-go-v2/service/inspector v1.21.4 h1:QujmNHhX3rjq7jFI+glD3s github.com/aws/aws-sdk-go-v2/service/inspector v1.21.4/go.mod h1:losQb9vE5K8UQ64mFyn4P6bLMUTibeOuvnwkAOfdepg= github.com/aws/aws-sdk-go-v2/service/inspector2 v1.24.4 h1:0cHc8syoJJUzP5N2d6Hhtj3sUIBYUpFYW/p6q91ISko= github.com/aws/aws-sdk-go-v2/service/inspector2 v1.24.4/go.mod h1:tyMGN8hc2UtH6e6y6phOqN/O/L68Q8YYKZG2Ydsk3UI= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 h1:KypMCbLPPHEmf9DgMGw51jMj77VfGPAN2Kv4cfhlfgI= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4/go.mod h1:Vz1JQXliGcQktFTN/LN6uGppAIRoLBR2bMvIMP0gOjc= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.9 h1:UXqEWQI0n+q0QixzU0yUUQBZXRd5037qdInTIHFTl98= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.9/go.mod h1:xP6Gq6fzGZT8w/ZN+XvGMZ2RU1LeEs7b2yUP5DN8NY4= github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.8 h1:yEeIld7Fh/2iM4pYeQw8a3kH6OYcyIn6lwKlUFiVk7Y= github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.8/go.mod h1:lZJMX2Z5/rQ6OlSbBnW1WWScK6ngLt43xtqM8voMm2w= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9 h1:Wx0rlZoEJR7JwlSZcHnEa7CNjrSIyVxMFWGAaXy4fJY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9/go.mod h1:aVMHdE0aHO3v+f/iw01fmXV/5DbfQ3Bi9nN7nd9bE9Y= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19 h1:rfprUlsdzgl7ZL2KlXiUAoJnI/VxfHCvDFr2QDFj6u4= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19/go.mod h1:SCWkEdRq8/7EK60NcvvQ6NXKuTcchAD4ROAsC37VEZE= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.7 h1:uO5XR6QGBcmPyo2gxofYJLFkcVQ4izOoGDNenlZhTEk= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.7/go.mod h1:feeeAYfAcwTReM6vbwjEyDmiGho+YgBhaFULuXDW8kc= github.com/aws/aws-sdk-go-v2/service/iot v1.53.3 h1:d9R8dezHswXV9am8Sz+1HOsCas1/7YmJQQq7FmpD7rQ= @@ -461,14 +465,14 @@ github.com/aws/aws-sdk-go-v2/service/ssm v1.49.5 h1:KBwyHzP2QG8J//hoGuPyHWZ5tgL1 github.com/aws/aws-sdk-go-v2/service/ssm v1.49.5/go.mod h1:Ebk/HZmGhxWKDVxM4+pwbxGjm3RQOQLMjAEosI3ss9Q= github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.30.4 h1:FctT4NUwB7L4EvS5OBT10m7mY7a4HzUD2jxHM94C4T0= github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.30.4/go.mod h1:xgj+QUtfv/DrfdZq1cGt0wlEX6om1oh/NHB+PClQbWs= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.9 h1:aD7AGQhvPuAxlSUfo0CWU7s6FpkbyykMhGYMvlqTjVs= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.9/go.mod h1:c1qtZUWtygI6ZdvKppzCSXsDOq5I4luJPZ0Ud3juFCA= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.8 h1:JRwuL+S1Qe1owZQoxblV7ORgRf2o0SrtzDVIbaVCdQ0= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.8/go.mod h1:eEygMHnTKH/3kNp9Jr1n3PdejuSNcgwLe1dWgQtO0VQ= github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.25.5 h1:hvgJmR5q+yIlYrzQPL/8I1kM+FsqycTmMe4XMoQ+RP0= github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.25.5/go.mod h1:GZij+X8ngo9syeLTjVVfJKVDe+8qIB5D5TDTH0L8gEM= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3 h1:Pav5q3cA260Zqez42T9UhIlsd9QeypszRPwC9LdSSsQ= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3/go.mod h1:9lmoVDVLz/yUZwLaQ676TK02fhCu4+PgRSmMaKR1ozk= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.10 h1:69tpbPED7jKPyzMcrwSvhWcJ9bPnZsZs18NT40JwM0g= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.10/go.mod h1:0Aqn1MnEuitqfsCNyKsdKLhDUOr4txD/g19EfiUqgws= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.8 h1:+HpGETD9463PFSj7lX5+eq7aLDs85QUIA+NBkeAsscA= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.8/go.mod h1:bCbAxKDqNvkHxRaIMnyVPXPo+OaPRwvmgzMxbz1VKSA= +github.com/aws/aws-sdk-go-v2/service/sts v1.30.8 h1:bAi+4p5EKnni+jrfcAhb7iHFQ24bthOAV9t0taf3DCE= +github.com/aws/aws-sdk-go-v2/service/sts v1.30.8/go.mod h1:NXi1dIAGteSaRLqYgarlhP/Ij0cFT+qmCwiJqWh/U5o= github.com/aws/aws-sdk-go-v2/service/support v1.21.4 h1:LGPzkSN77fiJKxfQF5AGT1gbKMmdtESl1ij+JpSDED0= github.com/aws/aws-sdk-go-v2/service/support v1.21.4/go.mod h1:3aB5W1UW7c5z86tENabIcgkWNF58VE8FqU6F329xfAs= github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.25.9 h1:KonoyRc5h7yli15/p0vpoKBJNuF2k9Ee42leZshX/ME=