diff --git a/.changelog/141709e97967446fa3213dfafe9aa52f.json b/.changelog/141709e97967446fa3213dfafe9aa52f.json new file mode 100644 index 00000000000..25b02f00a20 --- /dev/null +++ b/.changelog/141709e97967446fa3213dfafe9aa52f.json @@ -0,0 +1,8 @@ +{ + "id": "141709e9-7967-446f-a321-3dfafe9aa52f", + "type": "feature", + "description": "add v2 smoke tests and smithy smokeTests trait for SDK testing", + "modules": [ + "service/applicationdiscoveryservice" + ] +} \ No newline at end of file diff --git a/.changelog/4aa8f816bcd84e4593d2fa4b71224fbb.json b/.changelog/4aa8f816bcd84e4593d2fa4b71224fbb.json new file mode 100644 index 00000000000..15e42c74b1c --- /dev/null +++ b/.changelog/4aa8f816bcd84e4593d2fa4b71224fbb.json @@ -0,0 +1,8 @@ +{ + "id": "4aa8f816-bcd8-4e45-93d2-fa4b71224fbb", + "type": "feature", + "description": "Introduced support for G6 instance types on Sagemaker Notebook Instances and on SageMaker Studio for JupyterLab and CodeEditor applications.", + "modules": [ + "service/sagemaker" + ] +} \ No newline at end of file diff --git a/.changelog/7d239e5b65ba444db39372a78fb165c9.json b/.changelog/7d239e5b65ba444db39372a78fb165c9.json new file mode 100644 index 00000000000..33d4de9f531 --- /dev/null +++ b/.changelog/7d239e5b65ba444db39372a78fb165c9.json @@ -0,0 +1,8 @@ +{ + "id": "7d239e5b-65ba-444d-b393-72a78fb165c9", + "type": "feature", + "description": "Updated request parameters for PKCE support.", + "modules": [ + "service/ssooidc" + ] +} \ No newline at end of file diff --git a/.changelog/99710a6188f54e09ac83675b0561ae9c.json b/.changelog/99710a6188f54e09ac83675b0561ae9c.json new file mode 100644 index 00000000000..d90b30d630c --- /dev/null +++ b/.changelog/99710a6188f54e09ac83675b0561ae9c.json @@ -0,0 +1,8 @@ +{ + "id": "99710a61-88f5-4e09-ac83-675b0561ae9c", + "type": "feature", + "description": "Mark ComponentVersion in ComponentDeploymentSpecification as required.", + "modules": [ + "service/greengrassv2" + ] +} \ No newline at end of file diff --git a/service/greengrassv2/api_op_CreateComponentVersion.go b/service/greengrassv2/api_op_CreateComponentVersion.go index ca186922066..4c0b5354208 100644 --- a/service/greengrassv2/api_op_CreateComponentVersion.go +++ b/service/greengrassv2/api_op_CreateComponentVersion.go @@ -39,25 +39,10 @@ import ( // You can use this operation to migrate Lambda functions from IoT Greengrass V1 to // IoT Greengrass V2. // -// This function only accepts Lambda functions that use the following runtimes: +// This function accepts Lambda functions in all supported versions of Python, // -// - Python 2.7 – python2.7 -// -// - Python 3.7 – python3.7 -// -// - Python 3.8 – python3.8 -// -// - Python 3.9 – python3.9 -// -// - Java 8 – java8 -// -// - Java 11 – java11 -// -// - Node.js 10 – nodejs10.x -// -// - Node.js 12 – nodejs12.x -// -// - Node.js 14 – nodejs14.x +// Node.js, and Java runtimes. IoT Greengrass doesn't apply any additional +// restrictions on deprecated Lambda runtime versions. // // To create a component from a Lambda function, specify lambdaFunction when you // diff --git a/service/greengrassv2/api_op_GetComponentVersionArtifact.go b/service/greengrassv2/api_op_GetComponentVersionArtifact.go index 4b6931cd11d..d51495c471f 100644 --- a/service/greengrassv2/api_op_GetComponentVersionArtifact.go +++ b/service/greengrassv2/api_op_GetComponentVersionArtifact.go @@ -6,6 +6,7 @@ import ( "context" "fmt" awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/greengrassv2/types" "github.com/aws/smithy-go/middleware" smithyhttp "github.com/aws/smithy-go/transport/http" ) @@ -50,6 +51,18 @@ type GetComponentVersionArtifactInput struct { // This member is required. ArtifactName *string + // Determines if the Amazon S3 URL returned is a FIPS pre-signed URL endpoint. + // Specify fips if you want the returned Amazon S3 pre-signed URL to point to an + // Amazon S3 FIPS endpoint. If you don't specify a value, the default is standard . + IotEndpointType types.IotEndpointType + + // Specifies the endpoint to use when getting Amazon S3 pre-signed URLs. + // + // All Amazon Web Services Regions except US East (N. Virginia) use REGIONAL in + // all cases. In the US East (N. Virginia) Region the default is GLOBAL , but you + // can change it to REGIONAL with this parameter. + S3EndpointType types.S3EndpointType + noSmithyDocumentSerde } diff --git a/service/greengrassv2/api_op_ListDeployments.go b/service/greengrassv2/api_op_ListDeployments.go index 16978247681..1d3608b4284 100644 --- a/service/greengrassv2/api_op_ListDeployments.go +++ b/service/greengrassv2/api_op_ListDeployments.go @@ -39,6 +39,8 @@ type ListDeploymentsInput struct { HistoryFilter types.DeploymentHistoryFilter // The maximum number of results to be returned per paginated request. + // + // Default: 50 MaxResults *int32 // The token to be used for the next set of paginated results. @@ -159,6 +161,8 @@ var _ ListDeploymentsAPIClient = (*Client)(nil) // ListDeploymentsPaginatorOptions is the paginator options for ListDeployments type ListDeploymentsPaginatorOptions struct { // The maximum number of results to be returned per paginated request. + // + // Default: 50 Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/greengrassv2/serializers.go b/service/greengrassv2/serializers.go index e854b10fc84..37379b6ee58 100644 --- a/service/greengrassv2/serializers.go +++ b/service/greengrassv2/serializers.go @@ -999,6 +999,15 @@ func awsRestjson1_serializeOpHttpBindingsGetComponentVersionArtifactInput(v *Get } } + if len(v.IotEndpointType) > 0 { + locationName := "X-Amz-Iot-Endpoint-Type" + encoder.SetHeader(locationName).String(string(v.IotEndpointType)) + } + + if len(v.S3EndpointType) > 0 { + encoder.SetQuery("s3EndpointType").String(string(v.S3EndpointType)) + } + return nil } diff --git a/service/greengrassv2/types/enums.go b/service/greengrassv2/types/enums.go index 5b7cb087a92..9dcb2037824 100644 --- a/service/greengrassv2/types/enums.go +++ b/service/greengrassv2/types/enums.go @@ -252,6 +252,25 @@ func (InstalledComponentTopologyFilter) Values() []InstalledComponentTopologyFil } } +type IotEndpointType string + +// Enum values for IotEndpointType +const ( + IotEndpointTypeFips IotEndpointType = "fips" + IotEndpointTypeStandard IotEndpointType = "standard" +) + +// Values returns all known values for IotEndpointType. Note that this can be +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. +func (IotEndpointType) Values() []IotEndpointType { + return []IotEndpointType{ + "fips", + "standard", + } +} + type IoTJobAbortAction string // Enum values for IoTJobAbortAction @@ -388,6 +407,25 @@ func (RecipeOutputFormat) Values() []RecipeOutputFormat { } } +type S3EndpointType string + +// Enum values for S3EndpointType +const ( + S3EndpointTypeRegional S3EndpointType = "REGIONAL" + S3EndpointTypeGlobal S3EndpointType = "GLOBAL" +) + +// Values returns all known values for S3EndpointType. Note that this can be +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. +func (S3EndpointType) Values() []S3EndpointType { + return []S3EndpointType{ + "REGIONAL", + "GLOBAL", + } +} + type ValidationExceptionReason string // Enum values for ValidationExceptionReason diff --git a/service/greengrassv2/types/types.go b/service/greengrassv2/types/types.go index 7347a05e034..be15abdaab2 100644 --- a/service/greengrassv2/types/types.go +++ b/service/greengrassv2/types/types.go @@ -187,6 +187,8 @@ type ComponentDependencyRequirement struct { type ComponentDeploymentSpecification struct { // The version of the component. + // + // This member is required. ComponentVersion *string // The configuration updates to deploy for the component. You can define reset @@ -642,7 +644,8 @@ type InstalledComponent struct { // The most recent deployment source that brought the component to the Greengrass // core device. For a thing group deployment or thing deployment, the source will - // be the The ID of the deployment. and for local deployments it will be LOCAL . + // be the ID of the last deployment that contained the component. For local + // deployments it will be LOCAL . // // Any deployment will attempt to reinstall currently broken components on the // device, which will update the last installation source. diff --git a/service/greengrassv2/validators.go b/service/greengrassv2/validators.go index 966507a9380..741115c34b9 100644 --- a/service/greengrassv2/validators.go +++ b/service/greengrassv2/validators.go @@ -594,6 +594,39 @@ func validateAssociateClientDeviceWithCoreDeviceEntryList(v []types.AssociateCli } } +func validateComponentDeploymentSpecification(v *types.ComponentDeploymentSpecification) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ComponentDeploymentSpecification"} + if v.ComponentVersion == nil { + invalidParams.Add(smithy.NewErrParamRequired("ComponentVersion")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateComponentDeploymentSpecifications(v map[string]types.ComponentDeploymentSpecification) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ComponentDeploymentSpecifications"} + for key := range v { + value := v[key] + if err := validateComponentDeploymentSpecification(&value); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%q]", key), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateDeploymentIoTJobConfiguration(v *types.DeploymentIoTJobConfiguration) error { if v == nil { return nil @@ -1021,6 +1054,11 @@ func validateOpCreateDeploymentInput(v *CreateDeploymentInput) error { if v.TargetArn == nil { invalidParams.Add(smithy.NewErrParamRequired("TargetArn")) } + if v.Components != nil { + if err := validateComponentDeploymentSpecifications(v.Components); err != nil { + invalidParams.AddNested("Components", err.(smithy.InvalidParamsError)) + } + } if v.IotJobConfiguration != nil { if err := validateDeploymentIoTJobConfiguration(v.IotJobConfiguration); err != nil { invalidParams.AddNested("IotJobConfiguration", err.(smithy.InvalidParamsError)) diff --git a/service/licensemanagerusersubscriptions/internal/endpoints/endpoints.go b/service/licensemanagerusersubscriptions/internal/endpoints/endpoints.go index daf593f4302..c177cb8e4fc 100644 --- a/service/licensemanagerusersubscriptions/internal/endpoints/endpoints.go +++ b/service/licensemanagerusersubscriptions/internal/endpoints/endpoints.go @@ -175,6 +175,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ca-west-1", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "eu-central-1", }: endpoints.Endpoint{}, diff --git a/service/sagemaker/types/enums.go b/service/sagemaker/types/enums.go index fddd73c4358..998d49f4b1c 100644 --- a/service/sagemaker/types/enums.go +++ b/service/sagemaker/types/enums.go @@ -201,6 +201,14 @@ const ( AppInstanceTypeMlG512xlarge AppInstanceType = "ml.g5.12xlarge" AppInstanceTypeMlG524xlarge AppInstanceType = "ml.g5.24xlarge" AppInstanceTypeMlG548xlarge AppInstanceType = "ml.g5.48xlarge" + AppInstanceTypeMlG6Xlarge AppInstanceType = "ml.g6.xlarge" + AppInstanceTypeMlG62xlarge AppInstanceType = "ml.g6.2xlarge" + AppInstanceTypeMlG64xlarge AppInstanceType = "ml.g6.4xlarge" + AppInstanceTypeMlG68xlarge AppInstanceType = "ml.g6.8xlarge" + AppInstanceTypeMlG612xlarge AppInstanceType = "ml.g6.12xlarge" + AppInstanceTypeMlG616xlarge AppInstanceType = "ml.g6.16xlarge" + AppInstanceTypeMlG624xlarge AppInstanceType = "ml.g6.24xlarge" + AppInstanceTypeMlG648xlarge AppInstanceType = "ml.g6.48xlarge" AppInstanceTypeMlGeospatialInteractive AppInstanceType = "ml.geospatial.interactive" AppInstanceTypeMlP4d24xlarge AppInstanceType = "ml.p4d.24xlarge" AppInstanceTypeMlP4de24xlarge AppInstanceType = "ml.p4de.24xlarge" @@ -354,6 +362,14 @@ func (AppInstanceType) Values() []AppInstanceType { "ml.g5.12xlarge", "ml.g5.24xlarge", "ml.g5.48xlarge", + "ml.g6.xlarge", + "ml.g6.2xlarge", + "ml.g6.4xlarge", + "ml.g6.8xlarge", + "ml.g6.12xlarge", + "ml.g6.16xlarge", + "ml.g6.24xlarge", + "ml.g6.48xlarge", "ml.geospatial.interactive", "ml.p4d.24xlarge", "ml.p4de.24xlarge", @@ -3239,6 +3255,14 @@ const ( InstanceTypeMlR6id16xlarge InstanceType = "ml.r6id.16xlarge" InstanceTypeMlR6id24xlarge InstanceType = "ml.r6id.24xlarge" InstanceTypeMlR6id32xlarge InstanceType = "ml.r6id.32xlarge" + InstanceTypeMlG6Xlarge InstanceType = "ml.g6.xlarge" + InstanceTypeMlG62xlarge InstanceType = "ml.g6.2xlarge" + InstanceTypeMlG64xlarge InstanceType = "ml.g6.4xlarge" + InstanceTypeMlG68xlarge InstanceType = "ml.g6.8xlarge" + InstanceTypeMlG612xlarge InstanceType = "ml.g6.12xlarge" + InstanceTypeMlG616xlarge InstanceType = "ml.g6.16xlarge" + InstanceTypeMlG624xlarge InstanceType = "ml.g6.24xlarge" + InstanceTypeMlG648xlarge InstanceType = "ml.g6.48xlarge" ) // Values returns all known values for InstanceType. Note that this can be @@ -3404,6 +3428,14 @@ func (InstanceType) Values() []InstanceType { "ml.r6id.16xlarge", "ml.r6id.24xlarge", "ml.r6id.32xlarge", + "ml.g6.xlarge", + "ml.g6.2xlarge", + "ml.g6.4xlarge", + "ml.g6.8xlarge", + "ml.g6.12xlarge", + "ml.g6.16xlarge", + "ml.g6.24xlarge", + "ml.g6.48xlarge", } } diff --git a/service/ssooidc/api_op_CreateToken.go b/service/ssooidc/api_op_CreateToken.go index 40d44ebd86e..393ab84b043 100644 --- a/service/ssooidc/api_op_CreateToken.go +++ b/service/ssooidc/api_op_CreateToken.go @@ -61,6 +61,11 @@ type CreateTokenInput struct { // is currently unsupported for the CreateTokenAPI. Code *string + // Used only when calling this API for the Authorization Code grant type. This + // value is generated by the client and presented to validate the original code + // challenge value the client passed at authorization time. + CodeVerifier *string + // Used only when calling this API for the Device Code grant type. This short-term // code is used to identify this authorization request. This comes from the result // of the StartDeviceAuthorizationAPI. @@ -92,7 +97,8 @@ type CreateTokenInput struct { type CreateTokenOutput struct { - // A bearer token to access AWS accounts and applications assigned to a user. + // A bearer token to access Amazon Web Services accounts and applications assigned + // to a user. AccessToken *string // Indicates the time in seconds when an access token will expire. diff --git a/service/ssooidc/api_op_CreateTokenWithIAM.go b/service/ssooidc/api_op_CreateTokenWithIAM.go index df87ed5a5e2..1d54f14d804 100644 --- a/service/ssooidc/api_op_CreateTokenWithIAM.go +++ b/service/ssooidc/api_op_CreateTokenWithIAM.go @@ -12,8 +12,8 @@ import ( // Creates and returns access and refresh tokens for clients and applications that // are authenticated using IAM entities. The access token can be used to fetch -// short-term credentials for the assigned AWS accounts or to access application -// APIs using bearer authentication. +// short-term credentials for the assigned Amazon Web Services accounts or to +// access application APIs using bearer authentication. func (c *Client) CreateTokenWithIAM(ctx context.Context, params *CreateTokenWithIAMInput, optFns ...func(*Options)) (*CreateTokenWithIAMOutput, error) { if params == nil { params = &CreateTokenWithIAMInput{} @@ -64,6 +64,11 @@ type CreateTokenWithIAMInput struct { // in the Authorization Code GrantOptions for the application. Code *string + // Used only when calling this API for the Authorization Code grant type. This + // value is generated by the client and presented to validate the original code + // challenge value the client passed at authorization time. + CodeVerifier *string + // Used only when calling this API for the Authorization Code grant type. This // value specifies the location of the client or application that has registered to // receive the authorization code. @@ -114,7 +119,8 @@ type CreateTokenWithIAMInput struct { type CreateTokenWithIAMOutput struct { - // A bearer token to access AWS accounts and applications assigned to a user. + // A bearer token to access Amazon Web Services accounts and applications assigned + // to a user. AccessToken *string // Indicates the time in seconds when an access token will expire. diff --git a/service/ssooidc/api_op_RegisterClient.go b/service/ssooidc/api_op_RegisterClient.go index 09f016ec1ef..9daccf79b8c 100644 --- a/service/ssooidc/api_op_RegisterClient.go +++ b/service/ssooidc/api_op_RegisterClient.go @@ -41,6 +41,25 @@ type RegisterClientInput struct { // This member is required. ClientType *string + // This IAM Identity Center application ARN is used to define + // administrator-managed configuration for public client access to resources. At + // authorization, the scopes, grants, and redirect URI available to this client + // will be restricted by this application resource. + EntitledApplicationArn *string + + // The list of OAuth 2.0 grant types that are defined by the client. This list is + // used to restrict the token granting flows available to the client. + GrantTypes []string + + // The IAM Identity Center Issuer URL associated with an instance of IAM Identity + // Center. This value is needed for user access to resources through the client. + IssuerUrl *string + + // The list of redirect URI that are defined by the client. At completion of + // authorization, this list is used to restrict what locations the user agent can + // be redirected back to. + RedirectUris []string + // The list of scopes that are defined by the client. Upon authorization, this // list is used to restrict permissions when granting an access token. Scopes []string diff --git a/service/ssooidc/deserializers.go b/service/ssooidc/deserializers.go index 76a1160eceb..b70e5fb5a07 100644 --- a/service/ssooidc/deserializers.go +++ b/service/ssooidc/deserializers.go @@ -581,12 +581,18 @@ func awsRestjson1_deserializeOpErrorRegisterClient(response *smithyhttp.Response case strings.EqualFold("InvalidClientMetadataException", errorCode): return awsRestjson1_deserializeErrorInvalidClientMetadataException(response, errorBody) + case strings.EqualFold("InvalidRedirectUriException", errorCode): + return awsRestjson1_deserializeErrorInvalidRedirectUriException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) case strings.EqualFold("InvalidScopeException", errorCode): return awsRestjson1_deserializeErrorInvalidScopeException(response, errorBody) + case strings.EqualFold("UnsupportedGrantTypeException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedGrantTypeException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1158,6 +1164,42 @@ func awsRestjson1_deserializeErrorInvalidGrantException(response *smithyhttp.Res return output } +func awsRestjson1_deserializeErrorInvalidRedirectUriException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.InvalidRedirectUriException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + err := awsRestjson1_deserializeDocumentInvalidRedirectUriException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + + return output +} + func awsRestjson1_deserializeErrorInvalidRequestException(response *smithyhttp.Response, errorBody *bytes.Reader) error { output := &types.InvalidRequestException{} var buff [1024]byte @@ -1717,6 +1759,55 @@ func awsRestjson1_deserializeDocumentInvalidGrantException(v **types.InvalidGran return nil } +func awsRestjson1_deserializeDocumentInvalidRedirectUriException(v **types.InvalidRedirectUriException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.InvalidRedirectUriException + if *v == nil { + sv = &types.InvalidRedirectUriException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "error": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Error to be of type string, got %T instead", value) + } + sv.Error_ = ptr.String(jtv) + } + + case "error_description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value) + } + sv.Error_description = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentInvalidRequestException(v **types.InvalidRequestException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/ssooidc/serializers.go b/service/ssooidc/serializers.go index 754218b78e2..04411bd6167 100644 --- a/service/ssooidc/serializers.go +++ b/service/ssooidc/serializers.go @@ -95,6 +95,11 @@ func awsRestjson1_serializeOpDocumentCreateTokenInput(v *CreateTokenInput, value ok.String(*v.Code) } + if v.CodeVerifier != nil { + ok := object.Key("codeVerifier") + ok.String(*v.CodeVerifier) + } + if v.DeviceCode != nil { ok := object.Key("deviceCode") ok.String(*v.DeviceCode) @@ -207,6 +212,11 @@ func awsRestjson1_serializeOpDocumentCreateTokenWithIAMInput(v *CreateTokenWithI ok.String(*v.Code) } + if v.CodeVerifier != nil { + ok := object.Key("codeVerifier") + ok.String(*v.CodeVerifier) + } + if v.GrantType != nil { ok := object.Key("grantType") ok.String(*v.GrantType) @@ -324,6 +334,30 @@ func awsRestjson1_serializeOpDocumentRegisterClientInput(v *RegisterClientInput, ok.String(*v.ClientType) } + if v.EntitledApplicationArn != nil { + ok := object.Key("entitledApplicationArn") + ok.String(*v.EntitledApplicationArn) + } + + if v.GrantTypes != nil { + ok := object.Key("grantTypes") + if err := awsRestjson1_serializeDocumentGrantTypes(v.GrantTypes, ok); err != nil { + return err + } + } + + if v.IssuerUrl != nil { + ok := object.Key("issuerUrl") + ok.String(*v.IssuerUrl) + } + + if v.RedirectUris != nil { + ok := object.Key("redirectUris") + if err := awsRestjson1_serializeDocumentRedirectUris(v.RedirectUris, ok); err != nil { + return err + } + } + if v.Scopes != nil { ok := object.Key("scopes") if err := awsRestjson1_serializeDocumentScopes(v.Scopes, ok); err != nil { @@ -419,6 +453,28 @@ func awsRestjson1_serializeOpDocumentStartDeviceAuthorizationInput(v *StartDevic return nil } +func awsRestjson1_serializeDocumentGrantTypes(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsRestjson1_serializeDocumentRedirectUris(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsRestjson1_serializeDocumentScopes(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() diff --git a/service/ssooidc/types/errors.go b/service/ssooidc/types/errors.go index 54faa9c52fd..2cfe7b48fed 100644 --- a/service/ssooidc/types/errors.go +++ b/service/ssooidc/types/errors.go @@ -217,6 +217,36 @@ func (e *InvalidGrantException) ErrorCode() string { } func (e *InvalidGrantException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } +// Indicates that one or more redirect URI in the request is not supported for +// this operation. +type InvalidRedirectUriException struct { + Message *string + + ErrorCodeOverride *string + + Error_ *string + Error_description *string + + noSmithyDocumentSerde +} + +func (e *InvalidRedirectUriException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *InvalidRedirectUriException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *InvalidRedirectUriException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "InvalidRedirectUriException" + } + return *e.ErrorCodeOverride +} +func (e *InvalidRedirectUriException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + // Indicates that something is wrong with the input to the request. For example, a // required parameter might be missing or out of range. type InvalidRequestException struct {