From 34ef6b140be17b8ebc14308bff94f9dcfa93f9ec Mon Sep 17 00:00:00 2001 From: michaelhtm <98621731+michaelhtm@users.noreply.github.com> Date: Fri, 19 Sep 2025 14:41:55 -0700 Subject: [PATCH 1/2] fix populateResourceFromAnnotation field setting --- pkg/generate/code/set_resource.go | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/pkg/generate/code/set_resource.go b/pkg/generate/code/set_resource.go index feab60f0..d6da5a83 100644 --- a/pkg/generate/code/set_resource.go +++ b/pkg/generate/code/set_resource.go @@ -1383,11 +1383,10 @@ func PopulateResourceFromAnnotation( memberPath, _ := findFieldInCR(cfg, r, primaryField.Names.Original) primaryKeyOut += requiredFieldGuardContructor("primaryKey", sourceVarName, primaryField.Names.CamelLower, indentLevel) targetVarPath := fmt.Sprintf("%s%s", targetVarName, memberPath) - primaryKeyOut += setResourceIdentifierPrimaryIdentifierAnn(cfg, r, + primaryKeyOut += setResourceIdentifierPrimaryIdentifierAnn( "&primaryKey", primaryField, targetVarPath, - sourceVarName, indentLevel, ) } else { @@ -1458,15 +1457,14 @@ func PopulateResourceFromAnnotation( panic("primary identifier '" + targetField.Path + "' must be a scalar type since NameOrID is a string") } - targetVarPath := fmt.Sprintf("%s%s", targetVarName, memberPath) + sourceVarPath := fmt.Sprintf("%s%s", targetVarName, memberPath) if inputShape.IsRequired(memberName) || isPrimaryIdentifier { requiredFieldVarName := fmt.Sprintf("f%d", memberIndex) primaryKeyOut += requiredFieldGuardContructor(requiredFieldVarName, sourceVarName, targetField.Names.CamelLower, indentLevel) - primaryKeyOut += setResourceIdentifierPrimaryIdentifierAnn(cfg, r, + primaryKeyOut += setResourceIdentifierPrimaryIdentifierAnn( fmt.Sprintf("&%s", requiredFieldVarName), targetField, - targetVarPath, - sourceVarName, + sourceVarPath, indentLevel, ) } else { @@ -1474,7 +1472,7 @@ func PopulateResourceFromAnnotation( cfg, r, memberIndex, targetField, - targetVarPath, + sourceVarPath, sourceVarName, names.New(fieldName).CamelLower, indentLevel, @@ -1544,29 +1542,18 @@ func setResourceIdentifierPrimaryIdentifier( // // r.ko.Status.BrokerID = &identifier.NameOrID func setResourceIdentifierPrimaryIdentifierAnn( - cfg *ackgenconfig.Config, - r *model.CRD, // The variable used for required key requiredFieldVarName string, // The field that will be set on the target variable targetField *model.Field, // The variable name that we want to set a value to targetVarName string, - // The struct or struct field that we access our source value from - sourceVarName string, // Number of levels of indentation to use indentLevel int, ) string { qualifiedTargetVar := fmt.Sprintf("%s.%s", targetVarName, targetField.Path) - - return setResourceForScalar( - qualifiedTargetVar, - requiredFieldVarName, - targetField.ShapeRef, - indentLevel, - false, - false, - ) + indent := strings.Repeat("\t", indentLevel) + return fmt.Sprintf("%s%s = %s\n", indent, qualifiedTargetVar, requiredFieldVarName) } // setResourceIdentifierAdditionalKey returns a string of Go code that sets a From 44fe1db295bdadbe617a9e3dad87fbd215933041 Mon Sep 17 00:00:00 2001 From: michaelhtm <98621731+michaelhtm@users.noreply.github.com> Date: Fri, 19 Sep 2025 14:57:08 -0700 Subject: [PATCH 2/2] test PopulateResourceAnnotation with opensearchserverless --- pkg/generate/code/set_resource_test.go | 28 + .../aws-models/opensearchserverless.json | 5439 +++++++++++++++++ .../0000-00-00/generator.yaml | 56 + 3 files changed, 5523 insertions(+) create mode 100644 pkg/testdata/codegen/sdk-codegen/aws-models/opensearchserverless.json create mode 100644 pkg/testdata/models/apis/opensearchserverless/0000-00-00/generator.yaml diff --git a/pkg/generate/code/set_resource_test.go b/pkg/generate/code/set_resource_test.go index 1d0fea43..cbfa6813 100644 --- a/pkg/generate/code/set_resource_test.go +++ b/pkg/generate/code/set_resource_test.go @@ -1812,6 +1812,34 @@ func TestSetResource_EKS_Cluster_PopulateResourceFromAnnotation(t *testing.T) { ) } +func TestSetResource_OpensearchServerless_SecurityPolicy_PopulateResourceFromAnnotation(t *testing.T) { + assert := assert.New(t) + require := require.New(t) + + g := testutil.NewModelForService(t, "opensearchserverless") + + crd := testutil.GetCRDByName(t, g, "SecurityPolicy") + require.NotNil(crd) + + expected := ` + f0, ok := fields["name"] + if !ok { + return ackerrors.NewTerminalError(fmt.Errorf("required field missing: name")) + } + r.ko.Spec.Name = &f0 + f1, ok := fields["type_"] + if !ok { + return ackerrors.NewTerminalError(fmt.Errorf("required field missing: type_")) + } + r.ko.Spec.Type = &f1 + +` + assert.Equal( + expected, + code.PopulateResourceFromAnnotation(crd.Config(), crd, "fields", "r.ko", 1), + ) +} + func TestSetResource_SageMaker_ModelPackage_PopulateResourceFromAnnotation(t *testing.T) { assert := assert.New(t) require := require.New(t) diff --git a/pkg/testdata/codegen/sdk-codegen/aws-models/opensearchserverless.json b/pkg/testdata/codegen/sdk-codegen/aws-models/opensearchserverless.json new file mode 100644 index 00000000..feef580a --- /dev/null +++ b/pkg/testdata/codegen/sdk-codegen/aws-models/opensearchserverless.json @@ -0,0 +1,5439 @@ +{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.opensearchserverless#AccessPolicy": { + "type": "resource", + "identifiers": { + "type": { + "target": "com.amazonaws.opensearchserverless#AccessPolicyType" + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName" + } + }, + "put": { + "target": "com.amazonaws.opensearchserverless#CreateAccessPolicy" + }, + "read": { + "target": "com.amazonaws.opensearchserverless#GetAccessPolicy" + }, + "update": { + "target": "com.amazonaws.opensearchserverless#UpdateAccessPolicy" + }, + "delete": { + "target": "com.amazonaws.opensearchserverless#DeleteAccessPolicy" + }, + "list": { + "target": "com.amazonaws.opensearchserverless#ListAccessPolicies" + }, + "traits": { + "aws.cloudformation#cfnResource": { + "name": "AccessPolicy" + } + } + }, + "com.amazonaws.opensearchserverless#AccessPolicyDetail": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#AccessPolicyType", + "traits": { + "smithy.api#documentation": "
The type of access policy.
" + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the policy.
" + } + }, + "policyVersion": { + "target": "com.amazonaws.opensearchserverless#PolicyVersion", + "traits": { + "smithy.api#documentation": "The version of the policy.
" + } + }, + "description": { + "target": "com.amazonaws.opensearchserverless#PolicyDescription", + "traits": { + "smithy.api#documentation": "The description of the policy.
" + } + }, + "policy": { + "target": "smithy.api#Document", + "traits": { + "smithy.api#documentation": "The JSON policy document without any whitespaces.
" + } + }, + "createdDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The date the policy was created.
" + } + }, + "lastModifiedDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The timestamp of when the policy was last modified.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Details about an OpenSearch Serverless access policy.
" + } + }, + "com.amazonaws.opensearchserverless#AccessPolicyStats": { + "type": "structure", + "members": { + "DataPolicyCount": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The number of data access policies in the current account.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Statistics for an OpenSearch Serverless access policy.
" + } + }, + "com.amazonaws.opensearchserverless#AccessPolicySummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#AccessPolicySummary" + } + }, + "com.amazonaws.opensearchserverless#AccessPolicySummary": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#AccessPolicyType", + "traits": { + "smithy.api#documentation": "The type of access policy. Currently, the only available type is data.
The name of the access policy.
" + } + }, + "policyVersion": { + "target": "com.amazonaws.opensearchserverless#PolicyVersion", + "traits": { + "smithy.api#documentation": "The version of the policy.
" + } + }, + "description": { + "target": "com.amazonaws.opensearchserverless#PolicyDescription", + "traits": { + "smithy.api#documentation": "The description of the access policy.
" + } + }, + "createdDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The Epoch time when the access policy was created.
" + } + }, + "lastModifiedDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The date and time when the collection was last modified.
" + } + } + }, + "traits": { + "smithy.api#documentation": "A summary of the data access policy.
" + } + }, + "com.amazonaws.opensearchserverless#AccessPolicyType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "data", + "value": "data", + "documentation": "data policy type" + } + ] + } + }, + "com.amazonaws.opensearchserverless#AccountSettingsDetail": { + "type": "structure", + "members": { + "capacityLimits": { + "target": "com.amazonaws.opensearchserverless#CapacityLimits" + } + }, + "traits": { + "smithy.api#documentation": "OpenSearch Serverless-related information for the current account.
" + } + }, + "com.amazonaws.opensearchserverless#Arn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1011 + } + } + }, + "com.amazonaws.opensearchserverless#BatchGetCollection": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#BatchGetCollectionRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#BatchGetCollectionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Returns attributes for one or more collections, including the collection endpoint and\n the OpenSearch Dashboards endpoint. For more information, see Creating and\n managing Amazon OpenSearch Serverless collections.
", + "smithy.api#readonly": {} + } + }, + "com.amazonaws.opensearchserverless#BatchGetCollectionRequest": { + "type": "structure", + "members": { + "ids": { + "target": "com.amazonaws.opensearchserverless#CollectionIds", + "traits": { + "smithy.api#documentation": "A list of collection IDs. You can't provide names and IDs in the same request. The ID\n is part of the collection endpoint. You can also retrieve it using the ListCollections API.
" + } + }, + "names": { + "target": "com.amazonaws.opensearchserverless#CollectionNames", + "traits": { + "smithy.api#documentation": "A list of collection names. You can't provide names and IDs in the same request.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#BatchGetCollectionResponse": { + "type": "structure", + "members": { + "collectionDetails": { + "target": "com.amazonaws.opensearchserverless#CollectionDetails", + "traits": { + "smithy.api#documentation": "Details about each collection.
" + } + }, + "collectionErrorDetails": { + "target": "com.amazonaws.opensearchserverless#CollectionErrorDetails", + "traits": { + "smithy.api#documentation": "Error information for the request.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#BatchGetEffectiveLifecyclePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#BatchGetEffectiveLifecyclePolicyRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#BatchGetEffectiveLifecyclePolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Returns a list of successful and failed retrievals for the OpenSearch Serverless indexes. For more information, see Viewing data lifecycle policies.
", + "smithy.api#readonly": {} + } + }, + "com.amazonaws.opensearchserverless#BatchGetEffectiveLifecyclePolicyRequest": { + "type": "structure", + "members": { + "resourceIdentifiers": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyResourceIdentifiers", + "traits": { + "smithy.api#documentation": "The unique identifiers of policy types and resource names.
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.opensearchserverless#BatchGetEffectiveLifecyclePolicyResponse": { + "type": "structure", + "members": { + "effectiveLifecyclePolicyDetails": { + "target": "com.amazonaws.opensearchserverless#EffectiveLifecyclePolicyDetails", + "traits": { + "smithy.api#documentation": "A list of lifecycle policies applied to the OpenSearch Serverless indexes.
" + } + }, + "effectiveLifecyclePolicyErrorDetails": { + "target": "com.amazonaws.opensearchserverless#EffectiveLifecyclePolicyErrorDetails", + "traits": { + "smithy.api#documentation": "A list of resources for which retrieval failed.
" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.opensearchserverless#BatchGetLifecyclePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#BatchGetLifecyclePolicyRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#BatchGetLifecyclePolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Returns one or more configured OpenSearch Serverless lifecycle policies. For more information, see Viewing data lifecycle policies.
", + "smithy.api#readonly": {} + } + }, + "com.amazonaws.opensearchserverless#BatchGetLifecyclePolicyRequest": { + "type": "structure", + "members": { + "identifiers": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyIdentifiers", + "traits": { + "smithy.api#documentation": "The unique identifiers of policy types and policy names.
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.opensearchserverless#BatchGetLifecyclePolicyResponse": { + "type": "structure", + "members": { + "lifecyclePolicyDetails": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyDetails", + "traits": { + "smithy.api#documentation": "A list of lifecycle policies matched to the input policy name and policy type.
" + } + }, + "lifecyclePolicyErrorDetails": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyErrorDetails", + "traits": { + "smithy.api#documentation": "A list of lifecycle policy names and policy types for which retrieval failed.
" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.opensearchserverless#BatchGetVpcEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#BatchGetVpcEndpointRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#BatchGetVpcEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Returns attributes for one or more VPC endpoints associated with the current account.\n For more information, see\n Access Amazon OpenSearch Serverless using an interface endpoint.
", + "smithy.api#readonly": {} + } + }, + "com.amazonaws.opensearchserverless#BatchGetVpcEndpointRequest": { + "type": "structure", + "members": { + "ids": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointIds", + "traits": { + "smithy.api#documentation": "A list of VPC endpoint identifiers.
", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#BatchGetVpcEndpointResponse": { + "type": "structure", + "members": { + "vpcEndpointDetails": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointDetails", + "traits": { + "smithy.api#documentation": "Details about the specified VPC endpoint.
" + } + }, + "vpcEndpointErrorDetails": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointErrorDetails", + "traits": { + "smithy.api#documentation": "Error information for a failed request.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#CapacityLimits": { + "type": "structure", + "members": { + "maxIndexingCapacityInOCU": { + "target": "com.amazonaws.opensearchserverless#IndexingCapacityValue", + "traits": { + "smithy.api#documentation": "The maximum indexing capacity for collections.
" + } + }, + "maxSearchCapacityInOCU": { + "target": "com.amazonaws.opensearchserverless#SearchCapacityValue", + "traits": { + "smithy.api#documentation": "The maximum search capacity for collections.
" + } + } + }, + "traits": { + "smithy.api#documentation": "The maximum capacity limits for all OpenSearch Serverless collections, in OpenSearch Compute Units\n (OCUs). These limits are used to scale your collections based on the current workload.\n For more information, see Managing\n capacity limits for Amazon OpenSearch Serverless.
" + } + }, + "com.amazonaws.opensearchserverless#ClientToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + } + } + }, + "com.amazonaws.opensearchserverless#Collection": { + "type": "resource", + "identifiers": { + "id": { + "target": "com.amazonaws.opensearchserverless#CollectionId" + } + }, + "create": { + "target": "com.amazonaws.opensearchserverless#CreateCollection" + }, + "update": { + "target": "com.amazonaws.opensearchserverless#UpdateCollection" + }, + "delete": { + "target": "com.amazonaws.opensearchserverless#DeleteCollection" + }, + "list": { + "target": "com.amazonaws.opensearchserverless#ListCollections" + }, + "traits": { + "aws.api#arn": { + "template": "collection/{id}" + }, + "aws.cloudformation#cfnResource": { + "name": "Collection" + } + } + }, + "com.amazonaws.opensearchserverless#CollectionDetail": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#CollectionId", + "traits": { + "smithy.api#documentation": "A unique identifier for the collection.
" + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#CollectionName", + "traits": { + "smithy.api#documentation": "The name of the collection.
" + } + }, + "status": { + "target": "com.amazonaws.opensearchserverless#CollectionStatus", + "traits": { + "smithy.api#documentation": "The current status of the collection.
" + } + }, + "type": { + "target": "com.amazonaws.opensearchserverless#CollectionType", + "traits": { + "smithy.api#documentation": "The type of collection.
" + } + }, + "description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "A description of the collection.
" + } + }, + "arn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The Amazon Resource Name (ARN) of the collection.
" + } + }, + "kmsKeyArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ARN of the Amazon Web Services KMS key used to encrypt the collection.
" + } + }, + "standbyReplicas": { + "target": "com.amazonaws.opensearchserverless#StandbyReplicas", + "traits": { + "smithy.api#documentation": "Details about an OpenSearch Serverless collection.
" + } + }, + "createdDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The Epoch time when the collection was created.
" + } + }, + "lastModifiedDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The date and time when the collection was last modified.
" + } + }, + "collectionEndpoint": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Collection-specific endpoint used to submit index, search, and data upload requests to\n an OpenSearch Serverless collection.
" + } + }, + "dashboardEndpoint": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Collection-specific endpoint used to access OpenSearch Dashboards.
" + } + }, + "failureCode": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "A failure code associated with the request.
" + } + }, + "failureMessage": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "A message associated with the failure code.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Details about each OpenSearch Serverless collection, including the collection endpoint and the\n OpenSearch Dashboards endpoint.
" + } + }, + "com.amazonaws.opensearchserverless#CollectionDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#CollectionDetail" + } + }, + "com.amazonaws.opensearchserverless#CollectionErrorDetail": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#CollectionId", + "traits": { + "smithy.api#documentation": "If the request contains collection IDs, the response includes the IDs provided in the\n request.
" + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#CollectionName", + "traits": { + "smithy.api#documentation": "If the request contains collection names, the response includes the names provided in\n the request.
" + } + }, + "errorMessage": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "A description of the error. For example, The specified Collection is not\n found.\n
The error code for the request. For example, NOT_FOUND.
Error information for an OpenSearch Serverless request.
" + } + }, + "com.amazonaws.opensearchserverless#CollectionErrorDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#CollectionErrorDetail" + } + }, + "com.amazonaws.opensearchserverless#CollectionFilters": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.opensearchserverless#CollectionName", + "traits": { + "smithy.api#documentation": "The name of the collection.
" + } + }, + "status": { + "target": "com.amazonaws.opensearchserverless#CollectionStatus", + "traits": { + "smithy.api#documentation": "The current status of the collection.
" + } + } + }, + "traits": { + "smithy.api#documentation": "A list of filter keys that you can use for LIST, UPDATE, and DELETE requests to OpenSearch Serverless\n collections.
" + } + }, + "com.amazonaws.opensearchserverless#CollectionId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 40 + }, + "smithy.api#pattern": "^[a-z0-9]{3,40}$" + } + }, + "com.amazonaws.opensearchserverless#CollectionIds": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#CollectionId" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.opensearchserverless#CollectionName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 32 + }, + "smithy.api#pattern": "^[a-z][a-z0-9-]+$" + } + }, + "com.amazonaws.opensearchserverless#CollectionNames": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#CollectionName" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.opensearchserverless#CollectionStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "CREATING", + "value": "CREATING", + "documentation": "Creating collection resource" + }, + { + "name": "DELETING", + "value": "DELETING", + "documentation": "Deleting collection resource" + }, + { + "name": "ACTIVE", + "value": "ACTIVE", + "documentation": "Collection resource is ready to use" + }, + { + "name": "FAILED", + "value": "FAILED", + "documentation": "Collection resource create or delete failed" + } + ] + } + }, + "com.amazonaws.opensearchserverless#CollectionSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#CollectionSummary" + } + }, + "com.amazonaws.opensearchserverless#CollectionSummary": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#CollectionId", + "traits": { + "smithy.api#documentation": "The unique identifier of the collection.
" + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#CollectionName", + "traits": { + "smithy.api#documentation": "The name of the collection.
" + } + }, + "status": { + "target": "com.amazonaws.opensearchserverless#CollectionStatus", + "traits": { + "smithy.api#documentation": "The current status of the collection.
" + } + }, + "arn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The Amazon Resource Name (ARN) of the collection.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Details about each OpenSearch Serverless collection.
" + } + }, + "com.amazonaws.opensearchserverless#CollectionType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "SEARCH", + "value": "SEARCH", + "documentation": "Search collection type" + }, + { + "name": "TIMESERIES", + "value": "TIMESERIES", + "documentation": "Timeseries collection type" + }, + { + "name": "VECTORSEARCH", + "value": "VECTORSEARCH", + "documentation": "Vectorsearch collection type" + } + ] + } + }, + "com.amazonaws.opensearchserverless#ConfigDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.opensearchserverless#ConfigName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 32 + }, + "smithy.api#pattern": "^[a-z][a-z0-9-]+$" + } + }, + "com.amazonaws.opensearchserverless#ConflictException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "When creating a resource, thrown when a resource with the same name already exists\n or is being created. When deleting a resource, thrown when the resource is not in\n the ACTIVE or FAILED state.
", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.opensearchserverless#CreateAccessPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#CreateAccessPolicyRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#CreateAccessPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Creates a data access policy for OpenSearch Serverless. Access policies limit access to collections\n and the resources within them, and allow a user to access that data irrespective of the\n access mechanism or network source. For more information, see Data access\n control for Amazon OpenSearch Serverless.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#CreateAccessPolicyRequest": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#AccessPolicyType", + "traits": { + "smithy.api#documentation": "The type of policy.
", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the policy.
", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.opensearchserverless#PolicyDescription", + "traits": { + "smithy.api#documentation": "A description of the policy. Typically used to store information about the permissions\n defined in the policy.
" + } + }, + "policy": { + "target": "com.amazonaws.opensearchserverless#PolicyDocument", + "traits": { + "smithy.api#documentation": "The JSON policy document to use as the content for the policy.
", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.opensearchserverless#ClientToken", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "Unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#CreateAccessPolicyResponse": { + "type": "structure", + "members": { + "accessPolicyDetail": { + "target": "com.amazonaws.opensearchserverless#AccessPolicyDetail", + "traits": { + "smithy.api#documentation": "Details about the created access policy.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#CreateCollection": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#CreateCollectionRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#CreateCollectionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#OcuLimitExceededException" + }, + { + "target": "com.amazonaws.opensearchserverless#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Creates a new OpenSearch Serverless collection. For more information, see Creating and\n managing Amazon OpenSearch Serverless collections.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#CreateCollectionDetail": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#CollectionId", + "traits": { + "smithy.api#documentation": "The unique identifier of the collection.
" + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#CollectionName", + "traits": { + "smithy.api#documentation": "The name of the collection.
" + } + }, + "status": { + "target": "com.amazonaws.opensearchserverless#CollectionStatus", + "traits": { + "smithy.api#documentation": "The current status of the collection.
" + } + }, + "type": { + "target": "com.amazonaws.opensearchserverless#CollectionType", + "traits": { + "smithy.api#documentation": "The type of collection.
" + } + }, + "description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "A description of the collection.
" + } + }, + "arn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The Amazon Resource Name (ARN) of the collection.
" + } + }, + "kmsKeyArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The Amazon Resource Name (ARN) of the KMS key with which to encrypt the collection.
" + } + }, + "standbyReplicas": { + "target": "com.amazonaws.opensearchserverless#StandbyReplicas", + "traits": { + "smithy.api#documentation": "Creates details about an OpenSearch Serverless collection.
" + } + }, + "createdDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The Epoch time when the collection was created.
" + } + }, + "lastModifiedDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The date and time when the collection was last modified.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Details about the created OpenSearch Serverless collection.
" + } + }, + "com.amazonaws.opensearchserverless#CreateCollectionRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.opensearchserverless#CollectionName", + "traits": { + "smithy.api#documentation": "Name of the collection.
", + "smithy.api#required": {} + } + }, + "type": { + "target": "com.amazonaws.opensearchserverless#CollectionType", + "traits": { + "smithy.api#documentation": "The type of collection.
" + } + }, + "description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Description of the collection.
", + "smithy.api#length": { + "max": 1000 + } + } + }, + "tags": { + "target": "com.amazonaws.opensearchserverless#Tags", + "traits": { + "smithy.api#documentation": "An arbitrary set of tags (key–value pairs) to associate with the OpenSearch Serverless collection.
" + } + }, + "standbyReplicas": { + "target": "com.amazonaws.opensearchserverless#StandbyReplicas", + "traits": { + "smithy.api#documentation": "Indicates whether standby replicas should be used for a collection.
" + } + }, + "clientToken": { + "target": "com.amazonaws.opensearchserverless#ClientToken", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "Unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#CreateCollectionResponse": { + "type": "structure", + "members": { + "createCollectionDetail": { + "target": "com.amazonaws.opensearchserverless#CreateCollectionDetail", + "traits": { + "smithy.api#documentation": "Details about the collection.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#CreateIamIdentityCenterConfigOptions": { + "type": "structure", + "members": { + "instanceArn": { + "target": "com.amazonaws.opensearchserverless#IamIdentityCenterInstanceArn", + "traits": { + "smithy.api#documentation": "The ARN of the IAM Identity Center instance used to integrate with OpenSearch Serverless.
", + "smithy.api#required": {} + } + }, + "userAttribute": { + "target": "com.amazonaws.opensearchserverless#IamIdentityCenterUserAttribute", + "traits": { + "smithy.api#documentation": "The user attribute for this IAM Identity Center integration. Defaults to UserId.
The group attribute for this IAM Identity Center integration. Defaults to GroupId.
Describes IAM Identity Center options for creating an OpenSearch Serverless security configuration in the form of a key-value map.
" + } + }, + "com.amazonaws.opensearchserverless#CreateLifecyclePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#CreateLifecyclePolicyRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#CreateLifecyclePolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Creates a lifecyle policy to be applied to OpenSearch Serverless indexes. Lifecycle policies define\n the number of days or hours to retain the data on an OpenSearch Serverless index. For more information, see Creating data lifecycle policies.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#CreateLifecyclePolicyRequest": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyType", + "traits": { + "smithy.api#documentation": "The type of lifecycle policy.
", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the lifecycle policy.
", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.opensearchserverless#PolicyDescription", + "traits": { + "smithy.api#documentation": "A description of the lifecycle policy.
" + } + }, + "policy": { + "target": "com.amazonaws.opensearchserverless#PolicyDocument", + "traits": { + "smithy.api#documentation": "The JSON policy document to use as the content for the lifecycle policy.
", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.opensearchserverless#ClientToken", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "A unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.opensearchserverless#CreateLifecyclePolicyResponse": { + "type": "structure", + "members": { + "lifecyclePolicyDetail": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyDetail", + "traits": { + "smithy.api#documentation": "Details about the created lifecycle policy.
" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.opensearchserverless#CreateSecurityConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#CreateSecurityConfigRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#CreateSecurityConfigResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Specifies a security configuration for OpenSearch Serverless. For more information, see\n SAML\n authentication for Amazon OpenSearch Serverless.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#CreateSecurityConfigRequest": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#SecurityConfigType", + "traits": { + "smithy.api#documentation": "The type of security configuration.
", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#ConfigName", + "traits": { + "smithy.api#documentation": "The name of the security configuration.
", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.opensearchserverless#ConfigDescription", + "traits": { + "smithy.api#documentation": "A description of the security configuration.
" + } + }, + "samlOptions": { + "target": "com.amazonaws.opensearchserverless#SamlConfigOptions", + "traits": { + "smithy.api#documentation": "Describes SAML options in in the form of a key-value map. This field is required if\n you specify saml for the type parameter.
Describes IAM Identity Center options in the form of a key-value map. This field is required if you specify iamidentitycenter for the type parameter.
" + } + }, + "clientToken": { + "target": "com.amazonaws.opensearchserverless#ClientToken", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "Unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#CreateSecurityConfigResponse": { + "type": "structure", + "members": { + "securityConfigDetail": { + "target": "com.amazonaws.opensearchserverless#SecurityConfigDetail", + "traits": { + "smithy.api#documentation": "Details about the created security configuration.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#CreateSecurityPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#CreateSecurityPolicyRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#CreateSecurityPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Creates a security policy to be used by one or more OpenSearch Serverless collections. Security\n policies provide access to a collection and its OpenSearch Dashboards endpoint from\n public networks or specific VPC endpoints. They also allow you to secure a collection\n with a KMS encryption key. For more information, see Network access\n for Amazon OpenSearch Serverless and Encryption at\n rest for Amazon OpenSearch Serverless.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#CreateSecurityPolicyRequest": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#SecurityPolicyType", + "traits": { + "smithy.api#documentation": "The type of security policy.
", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the policy.
", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.opensearchserverless#PolicyDescription", + "traits": { + "smithy.api#documentation": "A description of the policy. Typically used to store information about the permissions\n defined in the policy.
" + } + }, + "policy": { + "target": "com.amazonaws.opensearchserverless#PolicyDocument", + "traits": { + "smithy.api#documentation": "The JSON policy document to use as the content for the new policy.
", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.opensearchserverless#ClientToken", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "Unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#CreateSecurityPolicyResponse": { + "type": "structure", + "members": { + "securityPolicyDetail": { + "target": "com.amazonaws.opensearchserverless#SecurityPolicyDetail", + "traits": { + "smithy.api#documentation": "Details about the created security policy.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#CreateVpcEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#CreateVpcEndpointRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#CreateVpcEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Creates an OpenSearch Serverless-managed interface VPC endpoint. For more information, see Access\n Amazon OpenSearch Serverless using an interface endpoint.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#CreateVpcEndpointDetail": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointId", + "traits": { + "smithy.api#documentation": "The unique identifier of the endpoint.
" + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointName", + "traits": { + "smithy.api#documentation": "The name of the endpoint.
" + } + }, + "status": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointStatus", + "traits": { + "smithy.api#documentation": "The current status in the endpoint creation process.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Creation details for an OpenSearch Serverless-managed interface endpoint. For more information, see\n Access Amazon OpenSearch Serverless using an interface endpoint.
" + } + }, + "com.amazonaws.opensearchserverless#CreateVpcEndpointRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointName", + "traits": { + "smithy.api#documentation": "The name of the interface endpoint.
", + "smithy.api#required": {} + } + }, + "vpcId": { + "target": "com.amazonaws.opensearchserverless#VpcId", + "traits": { + "smithy.api#documentation": "The ID of the VPC from which you'll access OpenSearch Serverless.
", + "smithy.api#required": {} + } + }, + "subnetIds": { + "target": "com.amazonaws.opensearchserverless#SubnetIds", + "traits": { + "smithy.api#documentation": "The ID of one or more subnets from which you'll access OpenSearch Serverless.
", + "smithy.api#required": {} + } + }, + "securityGroupIds": { + "target": "com.amazonaws.opensearchserverless#SecurityGroupIds", + "traits": { + "smithy.api#documentation": "The unique identifiers of the security groups that define the ports, protocols, and\n sources for inbound traffic that you are authorizing into your endpoint.
" + } + }, + "clientToken": { + "target": "com.amazonaws.opensearchserverless#ClientToken", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "Unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#CreateVpcEndpointResponse": { + "type": "structure", + "members": { + "createVpcEndpointDetail": { + "target": "com.amazonaws.opensearchserverless#CreateVpcEndpointDetail", + "traits": { + "smithy.api#documentation": "Details about the created interface VPC endpoint.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#DeleteAccessPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#DeleteAccessPolicyRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#DeleteAccessPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Deletes an OpenSearch Serverless access policy. For more information, see Data\n access control for Amazon OpenSearch Serverless.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#DeleteAccessPolicyRequest": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#AccessPolicyType", + "traits": { + "smithy.api#documentation": "The type of policy.
", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the policy to delete.
", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.opensearchserverless#ClientToken", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "Unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#DeleteAccessPolicyResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.opensearchserverless#DeleteCollection": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#DeleteCollectionRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#DeleteCollectionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Deletes an OpenSearch Serverless collection. For more information, see Creating and\n managing Amazon OpenSearch Serverless collections.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#DeleteCollectionDetail": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#CollectionId", + "traits": { + "smithy.api#documentation": "The unique identifier of the collection.
" + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#CollectionName", + "traits": { + "smithy.api#documentation": "The name of the collection.
" + } + }, + "status": { + "target": "com.amazonaws.opensearchserverless#CollectionStatus", + "traits": { + "smithy.api#documentation": "The current status of the collection.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Details about a deleted OpenSearch Serverless collection.
" + } + }, + "com.amazonaws.opensearchserverless#DeleteCollectionRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#CollectionId", + "traits": { + "smithy.api#documentation": "The unique identifier of the collection. For example, 1iu5usc406kd. The\n ID is part of the collection endpoint. You can also retrieve it using the ListCollections API.
A unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#DeleteCollectionResponse": { + "type": "structure", + "members": { + "deleteCollectionDetail": { + "target": "com.amazonaws.opensearchserverless#DeleteCollectionDetail", + "traits": { + "smithy.api#documentation": "Details of the deleted collection.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#DeleteLifecyclePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#DeleteLifecyclePolicyRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#DeleteLifecyclePolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Deletes an OpenSearch Serverless lifecycle policy. For more information, see Deleting data lifecycle policies.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#DeleteLifecyclePolicyRequest": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyType", + "traits": { + "smithy.api#documentation": "The type of lifecycle policy.
", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the policy to delete.
", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.opensearchserverless#ClientToken", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "Unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.opensearchserverless#DeleteLifecyclePolicyResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.opensearchserverless#DeleteSecurityConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#DeleteSecurityConfigRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#DeleteSecurityConfigResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Deletes a security configuration for OpenSearch Serverless. For more information, see\n SAML\n authentication for Amazon OpenSearch Serverless.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#DeleteSecurityConfigRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#SecurityConfigId", + "traits": { + "smithy.api#documentation": "The security configuration identifier. For SAML the ID will be\n saml/<accountId>/<idpProviderName>. For example,\n saml/123456789123/OKTADev.
Unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#DeleteSecurityConfigResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.opensearchserverless#DeleteSecurityPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#DeleteSecurityPolicyRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#DeleteSecurityPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Deletes an OpenSearch Serverless security policy.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#DeleteSecurityPolicyRequest": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#SecurityPolicyType", + "traits": { + "smithy.api#documentation": "The type of policy.
", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the policy to delete.
", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.opensearchserverless#ClientToken", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "Unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#DeleteSecurityPolicyResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.opensearchserverless#DeleteVpcEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#DeleteVpcEndpointRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#DeleteVpcEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Deletes an OpenSearch Serverless-managed interface endpoint. For more information, see\n Access Amazon OpenSearch Serverless using an interface endpoint.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#DeleteVpcEndpointDetail": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointId", + "traits": { + "smithy.api#documentation": "The unique identifier of the endpoint.
" + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointName", + "traits": { + "smithy.api#documentation": "The name of the endpoint.
" + } + }, + "status": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointStatus", + "traits": { + "smithy.api#documentation": "The current status of the endpoint deletion process.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Deletion details for an OpenSearch Serverless-managed interface endpoint.
" + } + }, + "com.amazonaws.opensearchserverless#DeleteVpcEndpointRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointId", + "traits": { + "smithy.api#documentation": "The VPC endpoint identifier.
", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.opensearchserverless#ClientToken", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "Unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#DeleteVpcEndpointResponse": { + "type": "structure", + "members": { + "deleteVpcEndpointDetail": { + "target": "com.amazonaws.opensearchserverless#DeleteVpcEndpointDetail", + "traits": { + "smithy.api#documentation": "Details about the deleted endpoint.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#EffectiveLifecyclePolicyDetail": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyType", + "traits": { + "smithy.api#documentation": "The type of lifecycle policy.
" + } + }, + "resource": { + "target": "com.amazonaws.opensearchserverless#Resource", + "traits": { + "smithy.api#documentation": "The name of the OpenSearch Serverless index resource.
" + } + }, + "policyName": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the lifecycle policy.
" + } + }, + "resourceType": { + "target": "com.amazonaws.opensearchserverless#ResourceType", + "traits": { + "smithy.api#documentation": "The type of OpenSearch Serverless resource. Currently, the only supported resource is index.
The minimum number of index retention in days or hours. This is an optional parameter that will return only if it’s set.
" + } + }, + "noMinRetentionPeriod": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "The minimum number of index retention days set. That is an optional param that will return as true if the minimum number of days or \n hours is not set to a index resource.
Error information for an OpenSearch Serverless request.
" + } + }, + "com.amazonaws.opensearchserverless#EffectiveLifecyclePolicyDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#EffectiveLifecyclePolicyDetail" + } + }, + "com.amazonaws.opensearchserverless#EffectiveLifecyclePolicyErrorDetail": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyType", + "traits": { + "smithy.api#documentation": "The type of lifecycle policy.
" + } + }, + "resource": { + "target": "com.amazonaws.opensearchserverless#Resource", + "traits": { + "smithy.api#documentation": "The name of OpenSearch Serverless index resource.
" + } + }, + "errorMessage": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "A description of the error. For example, The specified Index resource is not found.
The error code for the request.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Error information for an OpenSearch Serverless request.
" + } + }, + "com.amazonaws.opensearchserverless#EffectiveLifecyclePolicyErrorDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#EffectiveLifecyclePolicyErrorDetail" + } + }, + "com.amazonaws.opensearchserverless#GetAccessPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#GetAccessPolicyRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#GetAccessPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Returns an OpenSearch Serverless access policy. For more information, see Data\n access control for Amazon OpenSearch Serverless.
", + "smithy.api#readonly": {} + } + }, + "com.amazonaws.opensearchserverless#GetAccessPolicyRequest": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#AccessPolicyType", + "traits": { + "smithy.api#documentation": "Tye type of policy. Currently, the only supported value is data.
The name of the access policy.
", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#GetAccessPolicyResponse": { + "type": "structure", + "members": { + "accessPolicyDetail": { + "target": "com.amazonaws.opensearchserverless#AccessPolicyDetail", + "traits": { + "smithy.api#documentation": "Details about the requested access policy.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#GetAccountSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#GetAccountSettingsRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#GetAccountSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Returns account-level settings related to OpenSearch Serverless.
", + "smithy.api#readonly": {} + } + }, + "com.amazonaws.opensearchserverless#GetAccountSettingsRequest": { + "type": "structure", + "members": {} + }, + "com.amazonaws.opensearchserverless#GetAccountSettingsResponse": { + "type": "structure", + "members": { + "accountSettingsDetail": { + "target": "com.amazonaws.opensearchserverless#AccountSettingsDetail", + "traits": { + "smithy.api#documentation": "OpenSearch Serverless-related details for the current account.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#GetPoliciesStats": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#GetPoliciesStatsRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#GetPoliciesStatsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + } + ], + "traits": { + "smithy.api#documentation": "Returns statistical information about your OpenSearch Serverless access policies, security\n configurations, and security policies.
", + "smithy.api#readonly": {} + } + }, + "com.amazonaws.opensearchserverless#GetPoliciesStatsRequest": { + "type": "structure", + "members": {} + }, + "com.amazonaws.opensearchserverless#GetPoliciesStatsResponse": { + "type": "structure", + "members": { + "AccessPolicyStats": { + "target": "com.amazonaws.opensearchserverless#AccessPolicyStats", + "traits": { + "smithy.api#documentation": "Information about the data access policies in your account.
" + } + }, + "SecurityPolicyStats": { + "target": "com.amazonaws.opensearchserverless#SecurityPolicyStats", + "traits": { + "smithy.api#documentation": "Information about the security policies in your account.
" + } + }, + "SecurityConfigStats": { + "target": "com.amazonaws.opensearchserverless#SecurityConfigStats", + "traits": { + "smithy.api#documentation": "Information about the security configurations in your account.
" + } + }, + "LifecyclePolicyStats": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyStats", + "traits": { + "smithy.api#documentation": "Information about the lifecycle policies in your account.
" + } + }, + "TotalPolicyCount": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The total number of OpenSearch Serverless security policies and configurations in your\n account.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#GetSecurityConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#GetSecurityConfigRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#GetSecurityConfigResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Returns information about an OpenSearch Serverless security configuration. For more information, see\n SAML\n authentication for Amazon OpenSearch Serverless.
", + "smithy.api#readonly": {} + } + }, + "com.amazonaws.opensearchserverless#GetSecurityConfigRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#SecurityConfigId", + "traits": { + "smithy.api#documentation": "The unique identifier of the security configuration.
", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#GetSecurityConfigResponse": { + "type": "structure", + "members": { + "securityConfigDetail": { + "target": "com.amazonaws.opensearchserverless#SecurityConfigDetail", + "traits": { + "smithy.api#documentation": "Details of the requested security configuration.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#GetSecurityPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#GetSecurityPolicyRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#GetSecurityPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Returns information about a configured OpenSearch Serverless security policy. For more information, see Network access\n for Amazon OpenSearch Serverless and Encryption at\n rest for Amazon OpenSearch Serverless.
", + "smithy.api#readonly": {} + } + }, + "com.amazonaws.opensearchserverless#GetSecurityPolicyRequest": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#SecurityPolicyType", + "traits": { + "smithy.api#documentation": "The type of security policy.
", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the security policy.
", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#GetSecurityPolicyResponse": { + "type": "structure", + "members": { + "securityPolicyDetail": { + "target": "com.amazonaws.opensearchserverless#SecurityPolicyDetail", + "traits": { + "smithy.api#documentation": "Details about the requested security policy.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#IamIdentityCenterApplicationArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 10, + "max": 1224 + }, + "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::\\d{12}:application/(sso)?ins-[a-zA-Z0-9-.]{16}/apl-[a-zA-Z0-9]{16}$" + } + }, + "com.amazonaws.opensearchserverless#IamIdentityCenterConfigOptions": { + "type": "structure", + "members": { + "instanceArn": { + "target": "com.amazonaws.opensearchserverless#IamIdentityCenterInstanceArn", + "traits": { + "smithy.api#documentation": "The ARN of the IAM Identity Center instance used to integrate with OpenSearch Serverless.
" + } + }, + "applicationArn": { + "target": "com.amazonaws.opensearchserverless#IamIdentityCenterApplicationArn", + "traits": { + "smithy.api#documentation": "The ARN of the IAM Identity Center application used to integrate with OpenSearch Serverless.
" + } + }, + "applicationName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The name of the IAM Identity Center application used to integrate with OpenSearch Serverless.
" + } + }, + "applicationDescription": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The description of the IAM Identity Center application used to integrate with OpenSearch Serverless.
" + } + }, + "userAttribute": { + "target": "com.amazonaws.opensearchserverless#IamIdentityCenterUserAttribute", + "traits": { + "smithy.api#documentation": "The user attribute for this IAM Identity Center integration. Defaults to UserId\n
The group attribute for this IAM Identity Center integration. Defaults to GroupId.
Describes IAM Identity Center options for an OpenSearch Serverless security configuration in the form of a key-value map.
" + } + }, + "com.amazonaws.opensearchserverless#IamIdentityCenterGroupAttribute": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "GroupId", + "value": "GroupId", + "documentation": "Group ID" + }, + { + "name": "GroupName", + "value": "GroupName", + "documentation": "Group Name" + } + ] + } + }, + "com.amazonaws.opensearchserverless#IamIdentityCenterInstanceArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 10, + "max": 1224 + }, + "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$" + } + }, + "com.amazonaws.opensearchserverless#IamIdentityCenterUserAttribute": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "UserId", + "value": "UserId", + "documentation": "User ID" + }, + { + "name": "UserName", + "value": "UserName", + "documentation": "User Name" + }, + { + "name": "Email", + "value": "Email", + "documentation": "Email" + } + ] + } + }, + "com.amazonaws.opensearchserverless#IndexingCapacityValue": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 2 + } + } + }, + "com.amazonaws.opensearchserverless#InternalServerException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "Thrown when an error internal to the service occurs while processing a request.
", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.opensearchserverless#LifecyclePolicy": { + "type": "resource", + "identifiers": { + "type": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyType" + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName" + } + }, + "update": { + "target": "com.amazonaws.opensearchserverless#UpdateLifecyclePolicy" + }, + "delete": { + "target": "com.amazonaws.opensearchserverless#DeleteLifecyclePolicy" + }, + "list": { + "target": "com.amazonaws.opensearchserverless#ListLifecyclePolicies" + }, + "traits": { + "aws.cloudformation#cfnResource": { + "name": "LifecyclePolicy" + } + } + }, + "com.amazonaws.opensearchserverless#LifecyclePolicyDetail": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyType", + "traits": { + "smithy.api#documentation": "The type of lifecycle policy.
" + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the lifecycle policy.
" + } + }, + "policyVersion": { + "target": "com.amazonaws.opensearchserverless#PolicyVersion", + "traits": { + "smithy.api#documentation": "The version of the lifecycle policy.
" + } + }, + "description": { + "target": "com.amazonaws.opensearchserverless#PolicyDescription", + "traits": { + "smithy.api#documentation": "The description of the lifecycle policy.
" + } + }, + "policy": { + "target": "smithy.api#Document", + "traits": { + "smithy.api#documentation": "The JSON policy document without any whitespaces.
" + } + }, + "createdDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The date the lifecycle policy was created.
" + } + }, + "lastModifiedDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The timestamp of when the lifecycle policy was last modified.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Details about an OpenSearch Serverless lifecycle policy.
" + } + }, + "com.amazonaws.opensearchserverless#LifecyclePolicyDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyDetail" + } + }, + "com.amazonaws.opensearchserverless#LifecyclePolicyErrorDetail": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyType", + "traits": { + "smithy.api#documentation": "The type of lifecycle policy.
" + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the lifecycle policy.
" + } + }, + "errorMessage": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "A description of the error. For example, The specified Lifecycle Policy is not found.
The error code for the request. For example, NOT_FOUND.
Error information for an OpenSearch Serverless request.
" + } + }, + "com.amazonaws.opensearchserverless#LifecyclePolicyErrorDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyErrorDetail" + } + }, + "com.amazonaws.opensearchserverless#LifecyclePolicyIdentifier": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyType", + "traits": { + "smithy.api#documentation": "The type of lifecycle policy.
", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the lifecycle policy.
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "The unique identifiers of policy types and policy names.
" + } + }, + "com.amazonaws.opensearchserverless#LifecyclePolicyIdentifiers": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyIdentifier" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 40 + } + } + }, + "com.amazonaws.opensearchserverless#LifecyclePolicyResourceIdentifier": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyType", + "traits": { + "smithy.api#documentation": "The type of lifecycle policy.
", + "smithy.api#required": {} + } + }, + "resource": { + "target": "com.amazonaws.opensearchserverless#ResourceName", + "traits": { + "smithy.api#documentation": "The name of the OpenSearch Serverless ilndex resource.
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "The unique identifiers of policy types and resource names.
" + } + }, + "com.amazonaws.opensearchserverless#LifecyclePolicyResourceIdentifiers": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyResourceIdentifier" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.opensearchserverless#LifecyclePolicyStats": { + "type": "structure", + "members": { + "RetentionPolicyCount": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The number of retention lifecycle policies in the current account.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Statistics for an OpenSearch Serverless lifecycle policy.
" + } + }, + "com.amazonaws.opensearchserverless#LifecyclePolicySummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicySummary" + } + }, + "com.amazonaws.opensearchserverless#LifecyclePolicySummary": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyType", + "traits": { + "smithy.api#documentation": "The type of lifecycle policy.
" + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the lifecycle policy.
" + } + }, + "policyVersion": { + "target": "com.amazonaws.opensearchserverless#PolicyVersion", + "traits": { + "smithy.api#documentation": "The version of the lifecycle policy.
" + } + }, + "description": { + "target": "com.amazonaws.opensearchserverless#PolicyDescription", + "traits": { + "smithy.api#documentation": "The description of the lifecycle policy.
" + } + }, + "createdDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The Epoch time when the lifecycle policy was created.
" + } + }, + "lastModifiedDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The date and time when the lifecycle policy was last modified.
" + } + } + }, + "traits": { + "smithy.api#documentation": "A summary of the lifecycle policy.
" + } + }, + "com.amazonaws.opensearchserverless#LifecyclePolicyType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "retention", + "value": "retention", + "documentation": "retention policy type" + } + ] + } + }, + "com.amazonaws.opensearchserverless#LifecycleResource": { + "type": "string" + }, + "com.amazonaws.opensearchserverless#LifecycleResourceFilter": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#LifecycleResource" + } + }, + "com.amazonaws.opensearchserverless#ListAccessPolicies": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#ListAccessPoliciesRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#ListAccessPoliciesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Returns information about a list of OpenSearch Serverless access policies.
", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "maxResults": "maxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.opensearchserverless#ListAccessPoliciesRequest": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#AccessPolicyType", + "traits": { + "smithy.api#documentation": "The type of access policy.
", + "smithy.api#required": {} + } + }, + "resource": { + "target": "com.amazonaws.opensearchserverless#ResourceFilter", + "traits": { + "smithy.api#documentation": "Resource filters (can be collections or indexes) that policies can apply to.
", + "smithy.api#length": { + "min": 1, + "max": 1000 + } + } + }, + "nextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "If your initial ListAccessPolicies operation returns a\n nextToken, you can include the returned nextToken in\n subsequent ListAccessPolicies operations, which returns results in the next\n page.
An optional parameter that specifies the maximum number of results to return. You can\n use nextToken to get the next page of results. The default is 20.
Details about the requested access policies.
" + } + }, + "nextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "When nextToken is returned, there are more results available. The value\n of nextToken is a unique pagination token for each page. Make the call\n again using the returned token to retrieve the next page.
Lists all OpenSearch Serverless collections. For more information, see Creating and\n managing Amazon OpenSearch Serverless collections.
\nMake sure to include an empty request body {} if you don't include any collection\n filters in the request.
\nA list of filter names and values that you can use for requests.
" + } + }, + "nextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "If your initial ListCollections operation returns a nextToken,\n you can include the returned nextToken in subsequent ListCollections operations,\n which returns results in the next page.
The maximum number of results to return. Default is 20. You can use\n nextToken to get the next page of results.
Details about each collection.
" + } + }, + "nextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "When nextToken is returned, there are more results available. \n The value of nextToken is a unique pagination token for each page. \n Make the call again using the returned token to retrieve the next page.
Returns a list of OpenSearch Serverless lifecycle policies. For more information, see Viewing data lifecycle policies.
", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "maxResults": "maxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.opensearchserverless#ListLifecyclePoliciesRequest": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyType", + "traits": { + "smithy.api#documentation": "The type of lifecycle policy.
", + "smithy.api#required": {} + } + }, + "resources": { + "target": "com.amazonaws.opensearchserverless#LifecycleResourceFilter", + "traits": { + "smithy.api#documentation": "Resource filters that policies can apply to. Currently, the only supported resource type is index.
If your initial ListLifecyclePolicies operation returns a nextToken, you can include the returned nextToken in subsequent ListLifecyclePolicies operations, which returns results in the next page.
An optional parameter that specifies the maximum number of results to return. You can use use nextToken to get the next page of results. The default is 10.
Details about the requested lifecycle policies.
" + } + }, + "nextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.
Returns information about configured OpenSearch Serverless security configurations. For more information, see\n SAML\n authentication for Amazon OpenSearch Serverless.
", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "maxResults": "maxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.opensearchserverless#ListSecurityConfigsRequest": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#SecurityConfigType", + "traits": { + "smithy.api#documentation": "The type of security configuration.
", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "If your initial ListSecurityConfigs operation returns a\n nextToken, you can include the returned nextToken in\n subsequent ListSecurityConfigs operations, which returns results in the\n next page.
An optional parameter that specifies the maximum number of results to return. You can\n use nextToken to get the next page of results. The default is 20.
Details about the security configurations in your account.
" + } + }, + "nextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "When nextToken is returned, there are more results available. The value\n of nextToken is a unique pagination token for each page. Make the call\n again using the returned token to retrieve the next page.
Returns information about configured OpenSearch Serverless security policies.
", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "maxResults": "maxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.opensearchserverless#ListSecurityPoliciesRequest": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#SecurityPolicyType", + "traits": { + "smithy.api#documentation": "The type of policy.
", + "smithy.api#required": {} + } + }, + "resource": { + "target": "com.amazonaws.opensearchserverless#ResourceFilter", + "traits": { + "smithy.api#documentation": "Resource filters (can be collection or indexes) that policies can apply to.
", + "smithy.api#length": { + "min": 1, + "max": 1000 + } + } + }, + "nextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "If your initial ListSecurityPolicies operation returns a\n nextToken, you can include the returned nextToken in\n subsequent ListSecurityPolicies operations, which returns results in the\n next page.
An optional parameter that specifies the maximum number of results to return. You can\n use nextToken to get the next page of results. The default is 20.
Details about the security policies in your account.
" + } + }, + "nextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "When nextToken is returned, there are more results available. The value\n of nextToken is a unique pagination token for each page. Make the call\n again using the returned token to retrieve the next page.
Returns the tags for an OpenSearch Serverless resource. For more information, see Tagging Amazon OpenSearch Serverless collections.
" + } + }, + "com.amazonaws.opensearchserverless#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.opensearchserverless#Arn", + "traits": { + "smithy.api#documentation": "The Amazon Resource Name (ARN) of the resource. The resource must be active (not in\n the DELETING state), and must be owned by the account ID included in the\n request.
The tags associated with the resource.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#ListVpcEndpoints": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#ListVpcEndpointsRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#ListVpcEndpointsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Returns the OpenSearch Serverless-managed interface VPC endpoints associated with the current\n account. For more information, see\n Access Amazon OpenSearch Serverless using an interface endpoint.
", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "maxResults": "maxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.opensearchserverless#ListVpcEndpointsRequest": { + "type": "structure", + "members": { + "vpcEndpointFilters": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointFilters", + "traits": { + "smithy.api#documentation": "Filter the results according to the current status of the VPC endpoint. Possible\n statuses are CREATING, DELETING, UPDATING,\n ACTIVE, and FAILED.
If your initial ListVpcEndpoints operation returns a\n nextToken, you can include the returned nextToken in\n subsequent ListVpcEndpoints operations, which returns results in the next\n page.
An optional parameter that specifies the maximum number of results to return. You can\n use nextToken to get the next page of results. The default is 20.
Details about each VPC endpoint, including the name and current status.
" + } + }, + "nextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "When nextToken is returned, there are more results available. The value\n of nextToken is a unique pagination token for each page. Make the call\n again using the returned token to retrieve the next page.
Thrown when the collection you're attempting to create results in a number of search or indexing OCUs that exceeds the account limit.
", + "smithy.api#error": "client", + "smithy.api#httpError": 402 + } + }, + "com.amazonaws.opensearchserverless#OpenSearchServerless": { + "type": "service", + "version": "2021-11-01", + "operations": [ + { + "target": "com.amazonaws.opensearchserverless#BatchGetCollection" + }, + { + "target": "com.amazonaws.opensearchserverless#BatchGetEffectiveLifecyclePolicy" + }, + { + "target": "com.amazonaws.opensearchserverless#BatchGetLifecyclePolicy" + }, + { + "target": "com.amazonaws.opensearchserverless#BatchGetVpcEndpoint" + }, + { + "target": "com.amazonaws.opensearchserverless#CreateLifecyclePolicy" + }, + { + "target": "com.amazonaws.opensearchserverless#CreateSecurityPolicy" + }, + { + "target": "com.amazonaws.opensearchserverless#GetAccountSettings" + }, + { + "target": "com.amazonaws.opensearchserverless#GetPoliciesStats" + }, + { + "target": "com.amazonaws.opensearchserverless#ListTagsForResource" + }, + { + "target": "com.amazonaws.opensearchserverless#TagResource" + }, + { + "target": "com.amazonaws.opensearchserverless#UntagResource" + }, + { + "target": "com.amazonaws.opensearchserverless#UpdateAccountSettings" + }, + { + "target": "com.amazonaws.opensearchserverless#UpdateVpcEndpoint" + } + ], + "resources": [ + { + "target": "com.amazonaws.opensearchserverless#AccessPolicy" + }, + { + "target": "com.amazonaws.opensearchserverless#Collection" + }, + { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicy" + }, + { + "target": "com.amazonaws.opensearchserverless#SecurityConfig" + }, + { + "target": "com.amazonaws.opensearchserverless#SecurityPolicy" + }, + { + "target": "com.amazonaws.opensearchserverless#VpcEndpoint" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "OpenSearchServerless", + "arnNamespace": "aoss" + }, + "aws.auth#sigv4": { + "name": "aoss" + }, + "aws.protocols#awsJson1_0": {}, + "smithy.api#cors": {}, + "smithy.api#documentation": "Use the Amazon OpenSearch Serverless API to create, configure, and manage OpenSearch Serverless collections and\n security policies.
\nOpenSearch Serverless is an on-demand, pre-provisioned serverless configuration for\n Amazon OpenSearch Service. OpenSearch Serverless removes the operational complexities of provisioning,\n configuring, and tuning your OpenSearch clusters. It enables you to easily search and\n analyze petabytes of data without having to worry about the underlying infrastructure\n and data management.
\nTo learn more about OpenSearch Serverless, see What is\n Amazon OpenSearch Serverless?\n
", + "smithy.api#title": "OpenSearch Service Serverless", + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://aoss-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://aoss-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://aoss.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://aoss.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aoss-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aoss.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aoss-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aoss.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aoss-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aoss.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" + } + } + }, + "com.amazonaws.opensearchserverless#PolicyDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + } + } + }, + "com.amazonaws.opensearchserverless#PolicyDocument": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20480 + }, + "smithy.api#pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A1-\\u00FF]+" + } + }, + "com.amazonaws.opensearchserverless#PolicyName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 32 + }, + "smithy.api#pattern": "^[a-z][a-z0-9-]+$" + } + }, + "com.amazonaws.opensearchserverless#PolicyVersion": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 36 + }, + "smithy.api#pattern": "^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$" + } + }, + "com.amazonaws.opensearchserverless#Resource": { + "type": "string" + }, + "com.amazonaws.opensearchserverless#ResourceFilter": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#Resource" + } + }, + "com.amazonaws.opensearchserverless#ResourceName": { + "type": "string", + "traits": { + "smithy.api#pattern": "^index/[a-z][a-z0-9-]{3,32}/([a-z;0-9&$%][+.~=\\-_a-z;0-9&$%]*)$" + } + }, + "com.amazonaws.opensearchserverless#ResourceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "Thrown when accessing or deleting a resource that does not exist.
", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.opensearchserverless#ResourceType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "index", + "value": "index", + "documentation": "index resource type" + } + ] + } + }, + "com.amazonaws.opensearchserverless#SamlConfigOptions": { + "type": "structure", + "members": { + "metadata": { + "target": "com.amazonaws.opensearchserverless#samlMetadata", + "traits": { + "smithy.api#documentation": "The XML IdP metadata file generated from your identity provider.
", + "smithy.api#required": {} + } + }, + "userAttribute": { + "target": "com.amazonaws.opensearchserverless#samlUserAttribute", + "traits": { + "smithy.api#documentation": "A user attribute for this SAML integration.
" + } + }, + "groupAttribute": { + "target": "com.amazonaws.opensearchserverless#samlGroupAttribute", + "traits": { + "smithy.api#documentation": "The group attribute for this SAML integration.
" + } + }, + "sessionTimeout": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "The session timeout, in minutes. Default is 60 minutes (12 hours).
", + "smithy.api#range": { + "min": 5, + "max": 720 + } + } + } + }, + "traits": { + "smithy.api#documentation": "Describes SAML options for an OpenSearch Serverless security configuration in the form of a key-value\n map.
" + } + }, + "com.amazonaws.opensearchserverless#SearchCapacityValue": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 2 + } + } + }, + "com.amazonaws.opensearchserverless#SecurityConfig": { + "type": "resource", + "identifiers": { + "id": { + "target": "com.amazonaws.opensearchserverless#SecurityConfigId" + } + }, + "create": { + "target": "com.amazonaws.opensearchserverless#CreateSecurityConfig" + }, + "read": { + "target": "com.amazonaws.opensearchserverless#GetSecurityConfig" + }, + "update": { + "target": "com.amazonaws.opensearchserverless#UpdateSecurityConfig" + }, + "delete": { + "target": "com.amazonaws.opensearchserverless#DeleteSecurityConfig" + }, + "list": { + "target": "com.amazonaws.opensearchserverless#ListSecurityConfigs" + }, + "traits": { + "aws.cloudformation#cfnResource": { + "name": "SecurityConfig" + } + } + }, + "com.amazonaws.opensearchserverless#SecurityConfigDetail": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#SecurityConfigId", + "traits": { + "smithy.api#documentation": "The unique identifier of the security configuration.
" + } + }, + "type": { + "target": "com.amazonaws.opensearchserverless#SecurityConfigType", + "traits": { + "smithy.api#documentation": "The type of security configuration.
" + } + }, + "configVersion": { + "target": "com.amazonaws.opensearchserverless#PolicyVersion", + "traits": { + "smithy.api#documentation": "The version of the security configuration.
" + } + }, + "description": { + "target": "com.amazonaws.opensearchserverless#ConfigDescription", + "traits": { + "smithy.api#documentation": "The description of the security configuration.
" + } + }, + "samlOptions": { + "target": "com.amazonaws.opensearchserverless#SamlConfigOptions", + "traits": { + "smithy.api#documentation": "SAML options for the security configuration in the form of a key-value map.
" + } + }, + "iamIdentityCenterOptions": { + "target": "com.amazonaws.opensearchserverless#IamIdentityCenterConfigOptions", + "traits": { + "smithy.api#documentation": "Describes IAM Identity Center options in the form of a key-value map.
" + } + }, + "createdDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The date the configuration was created.
" + } + }, + "lastModifiedDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The timestamp of when the configuration was last modified.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Details about a security configuration for OpenSearch Serverless.
" + } + }, + "com.amazonaws.opensearchserverless#SecurityConfigId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.opensearchserverless#SecurityConfigStats": { + "type": "structure", + "members": { + "SamlConfigCount": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The number of security configurations in the current account.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Statistics for an OpenSearch Serverless security configuration.
" + } + }, + "com.amazonaws.opensearchserverless#SecurityConfigSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#SecurityConfigSummary" + } + }, + "com.amazonaws.opensearchserverless#SecurityConfigSummary": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#SecurityConfigId", + "traits": { + "smithy.api#documentation": "The unique identifier of the security configuration.
" + } + }, + "type": { + "target": "com.amazonaws.opensearchserverless#SecurityConfigType", + "traits": { + "smithy.api#documentation": "The type of security configuration.
" + } + }, + "configVersion": { + "target": "com.amazonaws.opensearchserverless#PolicyVersion", + "traits": { + "smithy.api#documentation": "The version of the security configuration.
" + } + }, + "description": { + "target": "com.amazonaws.opensearchserverless#ConfigDescription", + "traits": { + "smithy.api#documentation": "The description of the security configuration.
" + } + }, + "createdDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The Epoch time when the security configuration was created.
" + } + }, + "lastModifiedDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The timestamp of when the configuration was last modified.
" + } + } + }, + "traits": { + "smithy.api#documentation": "A summary of a security configuration for OpenSearch Serverless.
" + } + }, + "com.amazonaws.opensearchserverless#SecurityConfigType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "saml", + "value": "saml", + "documentation": "saml provider" + }, + { + "name": "iamidentitycenter", + "value": "iamidentitycenter", + "documentation": "iam identity center" + } + ] + } + }, + "com.amazonaws.opensearchserverless#SecurityGroupId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[\\w+\\-]+$" + } + }, + "com.amazonaws.opensearchserverless#SecurityGroupIds": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#SecurityGroupId" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.opensearchserverless#SecurityPolicy": { + "type": "resource", + "identifiers": { + "type": { + "target": "com.amazonaws.opensearchserverless#SecurityPolicyType" + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName" + } + }, + "read": { + "target": "com.amazonaws.opensearchserverless#GetSecurityPolicy" + }, + "update": { + "target": "com.amazonaws.opensearchserverless#UpdateSecurityPolicy" + }, + "delete": { + "target": "com.amazonaws.opensearchserverless#DeleteSecurityPolicy" + }, + "list": { + "target": "com.amazonaws.opensearchserverless#ListSecurityPolicies" + }, + "traits": { + "aws.cloudformation#cfnResource": { + "name": "SecurityPolicy" + } + } + }, + "com.amazonaws.opensearchserverless#SecurityPolicyDetail": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#SecurityPolicyType", + "traits": { + "smithy.api#documentation": "The type of security policy.
" + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the policy.
" + } + }, + "policyVersion": { + "target": "com.amazonaws.opensearchserverless#PolicyVersion", + "traits": { + "smithy.api#documentation": "The version of the policy.
" + } + }, + "description": { + "target": "com.amazonaws.opensearchserverless#PolicyDescription", + "traits": { + "smithy.api#documentation": "The description of the security policy.
" + } + }, + "policy": { + "target": "smithy.api#Document", + "traits": { + "smithy.api#documentation": "The JSON policy document without any whitespaces.
" + } + }, + "createdDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The date the policy was created.
" + } + }, + "lastModifiedDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The timestamp of when the policy was last modified.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Details about an OpenSearch Serverless security policy.
" + } + }, + "com.amazonaws.opensearchserverless#SecurityPolicyStats": { + "type": "structure", + "members": { + "EncryptionPolicyCount": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The number of encryption policies in the current account.
" + } + }, + "NetworkPolicyCount": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The number of network policies in the current account.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Statistics for an OpenSearch Serverless security policy.
" + } + }, + "com.amazonaws.opensearchserverless#SecurityPolicySummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#SecurityPolicySummary" + } + }, + "com.amazonaws.opensearchserverless#SecurityPolicySummary": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#SecurityPolicyType", + "traits": { + "smithy.api#documentation": "The type of security policy.
" + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the policy.
" + } + }, + "policyVersion": { + "target": "com.amazonaws.opensearchserverless#PolicyVersion", + "traits": { + "smithy.api#documentation": "The version of the policy.
" + } + }, + "description": { + "target": "com.amazonaws.opensearchserverless#PolicyDescription", + "traits": { + "smithy.api#documentation": "The description of the security policy.
" + } + }, + "createdDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The date the policy was created.
" + } + }, + "lastModifiedDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The timestamp of when the policy was last modified.
" + } + } + }, + "traits": { + "smithy.api#documentation": "A summary of a security policy for OpenSearch Serverless.
" + } + }, + "com.amazonaws.opensearchserverless#SecurityPolicyType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "encryption", + "value": "encryption", + "documentation": "encryption policy type" + }, + { + "name": "network", + "value": "network", + "documentation": "network policy type" + } + ] + } + }, + "com.amazonaws.opensearchserverless#ServiceQuotaExceededException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Description of the error.", + "smithy.api#required": {} + } + }, + "resourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Identifier of the resource affected." + } + }, + "resourceType": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Type of the resource affected." + } + }, + "serviceCode": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Service Quotas requirement to identify originating service.", + "smithy.api#required": {} + } + }, + "quotaCode": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Service Quotas requirement to identify originating quota." + } + } + }, + "traits": { + "smithy.api#documentation": "Thrown when you attempt to create more resources than the service allows based on service quotas.
", + "smithy.api#error": "client", + "smithy.api#httpError": 402 + } + }, + "com.amazonaws.opensearchserverless#StandbyReplicas": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ENABLED", + "value": "ENABLED", + "documentation": "Standby replicas enabled" + }, + { + "name": "DISABLED", + "value": "DISABLED", + "documentation": "Standby replicas disabled" + } + ] + } + }, + "com.amazonaws.opensearchserverless#SubnetId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 32 + }, + "smithy.api#pattern": "^subnet-([0-9a-f]{8}|[0-9a-f]{17})$" + } + }, + "com.amazonaws.opensearchserverless#SubnetIds": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#SubnetId" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 6 + } + } + }, + "com.amazonaws.opensearchserverless#Tag": { + "type": "structure", + "members": { + "key": { + "target": "com.amazonaws.opensearchserverless#TagKey", + "traits": { + "smithy.api#documentation": "The key to use in the tag.
", + "smithy.api#required": {} + } + }, + "value": { + "target": "com.amazonaws.opensearchserverless#TagValue", + "traits": { + "smithy.api#documentation": "The value of the tag.
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A map of key-value pairs associated to an OpenSearch Serverless resource.
" + } + }, + "com.amazonaws.opensearchserverless#TagKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.opensearchserverless#TagKeys": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#TagKey" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.opensearchserverless#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#TagResourceRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#TagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearchserverless#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Associates tags with an OpenSearch Serverless resource. For more information, see Tagging Amazon OpenSearch Serverless collections.
" + } + }, + "com.amazonaws.opensearchserverless#TagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.opensearchserverless#Arn", + "traits": { + "smithy.api#documentation": "The Amazon Resource Name (ARN) of the resource. The resource must be active (not in\n the DELETING state), and must be owned by the account ID included in the\n request.
A list of tags (key-value pairs) to add to the resource. All tag keys in the request\n must be unique.
", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#TagResourceResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.opensearchserverless#TagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + } + } + }, + "com.amazonaws.opensearchserverless#Tags": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#Tag" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.opensearchserverless#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#UntagResourceRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#UntagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Removes a tag or set of tags from an OpenSearch Serverless resource. For more information, see Tagging Amazon OpenSearch Serverless collections.
" + } + }, + "com.amazonaws.opensearchserverless#UntagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.opensearchserverless#Arn", + "traits": { + "smithy.api#documentation": "The Amazon Resource Name (ARN) of the resource to remove tags from. The resource must\n be active (not in the DELETING state), and must be owned by the account ID\n included in the request.
The tag or set of tags to remove from the resource. All tag keys in the request must\n be unique.
", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#UntagResourceResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.opensearchserverless#UpdateAccessPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#UpdateAccessPolicyRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#UpdateAccessPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Updates an OpenSearch Serverless access policy. For more information, see Data\n access control for Amazon OpenSearch Serverless.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#UpdateAccessPolicyRequest": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#AccessPolicyType", + "traits": { + "smithy.api#documentation": "The type of policy.
", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the policy.
", + "smithy.api#required": {} + } + }, + "policyVersion": { + "target": "com.amazonaws.opensearchserverless#PolicyVersion", + "traits": { + "smithy.api#documentation": "The version of the policy being updated.
", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.opensearchserverless#PolicyDescription", + "traits": { + "smithy.api#documentation": "A description of the policy. Typically used to store information about the permissions\n defined in the policy.
" + } + }, + "policy": { + "target": "com.amazonaws.opensearchserverless#PolicyDocument", + "traits": { + "smithy.api#documentation": "The JSON policy document to use as the content for the policy.
" + } + }, + "clientToken": { + "target": "com.amazonaws.opensearchserverless#ClientToken", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "Unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#UpdateAccessPolicyResponse": { + "type": "structure", + "members": { + "accessPolicyDetail": { + "target": "com.amazonaws.opensearchserverless#AccessPolicyDetail", + "traits": { + "smithy.api#documentation": "Details about the updated access policy.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#UpdateAccountSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#UpdateAccountSettingsRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#UpdateAccountSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Update the OpenSearch Serverless settings for the current Amazon Web Services account. For more\n information, see Managing capacity limits for Amazon OpenSearch Serverless.
" + } + }, + "com.amazonaws.opensearchserverless#UpdateAccountSettingsRequest": { + "type": "structure", + "members": { + "capacityLimits": { + "target": "com.amazonaws.opensearchserverless#CapacityLimits" + } + } + }, + "com.amazonaws.opensearchserverless#UpdateAccountSettingsResponse": { + "type": "structure", + "members": { + "accountSettingsDetail": { + "target": "com.amazonaws.opensearchserverless#AccountSettingsDetail", + "traits": { + "smithy.api#documentation": "OpenSearch Serverless-related settings for the current Amazon Web Services account.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#UpdateCollection": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#UpdateCollectionRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#UpdateCollectionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Updates an OpenSearch Serverless collection.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#UpdateCollectionDetail": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#CollectionId", + "traits": { + "smithy.api#documentation": "The unique identifier of the collection.
" + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#CollectionName", + "traits": { + "smithy.api#documentation": "The name of the collection.
" + } + }, + "status": { + "target": "com.amazonaws.opensearchserverless#CollectionStatus", + "traits": { + "smithy.api#documentation": "The current status of the collection.
" + } + }, + "type": { + "target": "com.amazonaws.opensearchserverless#CollectionType", + "traits": { + "smithy.api#documentation": "The collection type.
" + } + }, + "description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The description of the collection.
" + } + }, + "arn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The Amazon Resource Name (ARN) of the collection.
" + } + }, + "createdDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The date and time when the collection was created.
" + } + }, + "lastModifiedDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The date and time when the collection was last modified.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Details about an updated OpenSearch Serverless collection.
" + } + }, + "com.amazonaws.opensearchserverless#UpdateCollectionRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#CollectionId", + "traits": { + "smithy.api#documentation": "The unique identifier of the collection.
", + "smithy.api#required": {} + } + }, + "description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "A description of the collection.
", + "smithy.api#length": { + "max": 1000 + } + } + }, + "clientToken": { + "target": "com.amazonaws.opensearchserverless#ClientToken", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "Unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#UpdateCollectionResponse": { + "type": "structure", + "members": { + "updateCollectionDetail": { + "target": "com.amazonaws.opensearchserverless#UpdateCollectionDetail", + "traits": { + "smithy.api#documentation": "Details about the updated collection.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#UpdateIamIdentityCenterConfigOptions": { + "type": "structure", + "members": { + "userAttribute": { + "target": "com.amazonaws.opensearchserverless#IamIdentityCenterUserAttribute", + "traits": { + "smithy.api#documentation": "The user attribute for this IAM Identity Center integration. Defaults to UserId.
The group attribute for this IAM Identity Center integration. Defaults to GroupId.
Describes IAM Identity Center options for updating an OpenSearch Serverless security configuration in the form of a key-value map.
" + } + }, + "com.amazonaws.opensearchserverless#UpdateLifecyclePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#UpdateLifecyclePolicyRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#UpdateLifecyclePolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearchserverless#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Updates an OpenSearch Serverless access policy. For more information, see Updating data lifecycle policies.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#UpdateLifecyclePolicyRequest": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyType", + "traits": { + "smithy.api#documentation": "The type of lifecycle policy.
", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the policy.
", + "smithy.api#required": {} + } + }, + "policyVersion": { + "target": "com.amazonaws.opensearchserverless#PolicyVersion", + "traits": { + "smithy.api#documentation": "The version of the policy being updated.
", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.opensearchserverless#PolicyDescription", + "traits": { + "smithy.api#documentation": "A description of the lifecycle policy.
" + } + }, + "policy": { + "target": "com.amazonaws.opensearchserverless#PolicyDocument", + "traits": { + "smithy.api#documentation": "The JSON policy document to use as the content for the lifecycle policy.
" + } + }, + "clientToken": { + "target": "com.amazonaws.opensearchserverless#ClientToken", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "A unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.opensearchserverless#UpdateLifecyclePolicyResponse": { + "type": "structure", + "members": { + "lifecyclePolicyDetail": { + "target": "com.amazonaws.opensearchserverless#LifecyclePolicyDetail", + "traits": { + "smithy.api#documentation": "Details about the updated lifecycle policy.
" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.opensearchserverless#UpdateSecurityConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#UpdateSecurityConfigRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#UpdateSecurityConfigResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Updates a security configuration for OpenSearch Serverless. For more information, see\n SAML\n authentication for Amazon OpenSearch Serverless.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#UpdateSecurityConfigRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#SecurityConfigId", + "traits": { + "smithy.api#documentation": "The security configuration identifier. For SAML the ID will be\n saml/<accountId>/<idpProviderName>. For example,\n saml/123456789123/OKTADev.
The version of the security configuration to be updated. You can find the most recent\n version of a security configuration using the GetSecurityPolicy\n command.
A description of the security configuration.
" + } + }, + "samlOptions": { + "target": "com.amazonaws.opensearchserverless#SamlConfigOptions", + "traits": { + "smithy.api#documentation": "SAML options in in the form of a key-value map.
" + } + }, + "iamIdentityCenterOptionsUpdates": { + "target": "com.amazonaws.opensearchserverless#UpdateIamIdentityCenterConfigOptions", + "traits": { + "smithy.api#documentation": "Describes IAM Identity Center options in the form of a key-value map.
" + } + }, + "clientToken": { + "target": "com.amazonaws.opensearchserverless#ClientToken", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "Unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#UpdateSecurityConfigResponse": { + "type": "structure", + "members": { + "securityConfigDetail": { + "target": "com.amazonaws.opensearchserverless#SecurityConfigDetail", + "traits": { + "smithy.api#documentation": "Details about the updated security configuration.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#UpdateSecurityPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#UpdateSecurityPolicyRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#UpdateSecurityPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearchserverless#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Updates an OpenSearch Serverless security policy. For more information, see Network access\n for Amazon OpenSearch Serverless and Encryption at\n rest for Amazon OpenSearch Serverless.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#UpdateSecurityPolicyRequest": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.opensearchserverless#SecurityPolicyType", + "traits": { + "smithy.api#documentation": "The type of access policy.
", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#PolicyName", + "traits": { + "smithy.api#documentation": "The name of the policy.
", + "smithy.api#required": {} + } + }, + "policyVersion": { + "target": "com.amazonaws.opensearchserverless#PolicyVersion", + "traits": { + "smithy.api#documentation": "The version of the policy being updated.
", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.opensearchserverless#PolicyDescription", + "traits": { + "smithy.api#documentation": "A description of the policy. Typically used to store information about the permissions\n defined in the policy.
" + } + }, + "policy": { + "target": "com.amazonaws.opensearchserverless#PolicyDocument", + "traits": { + "smithy.api#documentation": "The JSON policy document to use as the content for the new policy.
" + } + }, + "clientToken": { + "target": "com.amazonaws.opensearchserverless#ClientToken", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "Unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#UpdateSecurityPolicyResponse": { + "type": "structure", + "members": { + "securityPolicyDetail": { + "target": "com.amazonaws.opensearchserverless#SecurityPolicyDetail", + "traits": { + "smithy.api#documentation": "Details about the updated security policy.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#UpdateVpcEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearchserverless#UpdateVpcEndpointRequest" + }, + "output": { + "target": "com.amazonaws.opensearchserverless#UpdateVpcEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearchserverless#ConflictException" + }, + { + "target": "com.amazonaws.opensearchserverless#InternalServerException" + }, + { + "target": "com.amazonaws.opensearchserverless#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Updates an OpenSearch Serverless-managed interface endpoint. For more information, see\n Access Amazon OpenSearch Serverless using an interface endpoint.
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.opensearchserverless#UpdateVpcEndpointDetail": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointId", + "traits": { + "smithy.api#documentation": "The unique identifier of the endpoint.
" + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointName", + "traits": { + "smithy.api#documentation": "The name of the endpoint.
" + } + }, + "status": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointStatus", + "traits": { + "smithy.api#documentation": "The current status of the endpoint update process.
" + } + }, + "subnetIds": { + "target": "com.amazonaws.opensearchserverless#SubnetIds", + "traits": { + "smithy.api#documentation": "The ID of the subnets from which you access OpenSearch Serverless.
" + } + }, + "securityGroupIds": { + "target": "com.amazonaws.opensearchserverless#SecurityGroupIds", + "traits": { + "smithy.api#documentation": "The unique identifiers of the security groups that define the ports, protocols, and\n sources for inbound traffic that you are authorizing into your endpoint.
" + } + }, + "lastModifiedDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The timestamp of when the endpoint was last modified.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Update details for an OpenSearch Serverless-managed interface endpoint.
" + } + }, + "com.amazonaws.opensearchserverless#UpdateVpcEndpointRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointId", + "traits": { + "smithy.api#documentation": "The unique identifier of the interface endpoint to update.
", + "smithy.api#required": {} + } + }, + "addSubnetIds": { + "target": "com.amazonaws.opensearchserverless#SubnetIds", + "traits": { + "smithy.api#documentation": "The ID of one or more subnets to add to the endpoint.
" + } + }, + "removeSubnetIds": { + "target": "com.amazonaws.opensearchserverless#SubnetIds", + "traits": { + "smithy.api#documentation": "The unique identifiers of the subnets to remove from the endpoint.
" + } + }, + "addSecurityGroupIds": { + "target": "com.amazonaws.opensearchserverless#SecurityGroupIds", + "traits": { + "smithy.api#documentation": "The unique identifiers of the security groups to add to the endpoint. Security groups\n define the ports, protocols, and sources for inbound traffic that you are authorizing\n into your endpoint.
" + } + }, + "removeSecurityGroupIds": { + "target": "com.amazonaws.opensearchserverless#SecurityGroupIds", + "traits": { + "smithy.api#documentation": "The unique identifiers of the security groups to remove from the endpoint.
" + } + }, + "clientToken": { + "target": "com.amazonaws.opensearchserverless#ClientToken", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "Unique, case-sensitive identifier to ensure idempotency of the request.
", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.opensearchserverless#UpdateVpcEndpointResponse": { + "type": "structure", + "members": { + "UpdateVpcEndpointDetail": { + "target": "com.amazonaws.opensearchserverless#UpdateVpcEndpointDetail", + "traits": { + "smithy.api#documentation": "Details about the updated VPC endpoint.
" + } + } + } + }, + "com.amazonaws.opensearchserverless#ValidationException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "Thrown when the HTTP request contains invalid input or is missing required\n input.
", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.opensearchserverless#VpcEndpoint": { + "type": "resource", + "identifiers": { + "id": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointId" + } + }, + "create": { + "target": "com.amazonaws.opensearchserverless#CreateVpcEndpoint" + }, + "delete": { + "target": "com.amazonaws.opensearchserverless#DeleteVpcEndpoint" + }, + "list": { + "target": "com.amazonaws.opensearchserverless#ListVpcEndpoints" + }, + "traits": { + "aws.cloudformation#cfnResource": { + "name": "VpcEndpoint" + } + } + }, + "com.amazonaws.opensearchserverless#VpcEndpointDetail": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointId", + "traits": { + "smithy.api#documentation": "The unique identifier of the endpoint.
" + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointName", + "traits": { + "smithy.api#documentation": "The name of the endpoint.
" + } + }, + "vpcId": { + "target": "com.amazonaws.opensearchserverless#VpcId", + "traits": { + "smithy.api#documentation": "The ID of the VPC from which you access OpenSearch Serverless.
" + } + }, + "subnetIds": { + "target": "com.amazonaws.opensearchserverless#SubnetIds", + "traits": { + "smithy.api#documentation": "The ID of the subnets from which you access OpenSearch Serverless.
" + } + }, + "securityGroupIds": { + "target": "com.amazonaws.opensearchserverless#SecurityGroupIds", + "traits": { + "smithy.api#documentation": "The unique identifiers of the security groups that define the ports, protocols, and\n sources for inbound traffic that you are authorizing into your endpoint.
" + } + }, + "status": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointStatus", + "traits": { + "smithy.api#documentation": "The current status of the endpoint.
" + } + }, + "createdDate": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "The date the endpoint was created.
" + } + }, + "failureCode": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "A failure code associated with the request.
" + } + }, + "failureMessage": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "A message associated with the failure code.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Details about an OpenSearch Serverless-managed interface endpoint.
" + } + }, + "com.amazonaws.opensearchserverless#VpcEndpointDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointDetail" + } + }, + "com.amazonaws.opensearchserverless#VpcEndpointErrorDetail": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointId", + "traits": { + "smithy.api#documentation": "The unique identifier of the VPC endpoint.
" + } + }, + "errorMessage": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "An error message describing the reason for the failure.
" + } + }, + "errorCode": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The error code for the failed request.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Error information for a failed BatchGetVpcEndpoint request.
The current status of the endpoint.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Filter the results of a ListVpcEndpoints request.
The unique identifier of the endpoint.
" + } + }, + "name": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointName", + "traits": { + "smithy.api#documentation": "The name of the endpoint.
" + } + }, + "status": { + "target": "com.amazonaws.opensearchserverless#VpcEndpointStatus", + "traits": { + "smithy.api#documentation": "The current status of the endpoint.
" + } + } + }, + "traits": { + "smithy.api#documentation": "The VPC endpoint object.
" + } + }, + "com.amazonaws.opensearchserverless#VpcId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^vpc-[0-9a-z]*$" + } + }, + "com.amazonaws.opensearchserverless#samlGroupAttribute": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "[\\w+=,.@-]+" + } + }, + "com.amazonaws.opensearchserverless#samlMetadata": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 51200 + }, + "smithy.api#pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A1-\\u00FF]+" + } + }, + "com.amazonaws.opensearchserverless#samlUserAttribute": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "[\\w+=,.@-]+" + } + } + } +} diff --git a/pkg/testdata/models/apis/opensearchserverless/0000-00-00/generator.yaml b/pkg/testdata/models/apis/opensearchserverless/0000-00-00/generator.yaml new file mode 100644 index 00000000..7cddf285 --- /dev/null +++ b/pkg/testdata/models/apis/opensearchserverless/0000-00-00/generator.yaml @@ -0,0 +1,56 @@ +ignore: + resource_names: + - AccessPolicy + # - Collection + - LifecyclePolicy + - SecurityConfig + # - SecurityPolicy + - VpcEndpoint + field_paths: + - CreateSecurityPolicyOutput.SecurityPolicyDetail.Policy + - CreateSecurityPolicyOutput.SecurityPolicyDetail.ClientToken + - CreateSecurityPolicyInput.ClientToken + - CreateCollectionInput.ClientToken +operations: + CreateCollection: + output_wrapper_field_path: CreateCollectionDetail + BatchGetCollection: + operation_type: + - List + output_wrapper_field_path: CollectionDetails + resource_name: Collection +resources: + SecurityPolicy: + # Tags are not supported for SecurityPolicy + # https://docs.aws.amazon.com/opensearch-service/latest/developerguide/tag-collection.html + tags: + ignore: true + hooks: + delta_pre_compare: + code: customPreCompare(delta, a, b) + sdk_read_one_post_set_output: + template_path: hooks/security_policy/sdk_read_one_post_set_output.go.tpl + fields: + Type: + go_tag: json:"type" + is_immutable: true + Policy: + compare: + is_ignored: true + Name: + is_immutable: true + Collection: + is_arn_primary_key: true + fields: + Type: + is_immutable: true + go_tag: json:"type,omitempty" + Name: + is_immutable: true + StandbyReplicas: + is_immutable: true + hooks: + sdk_update_pre_build_request: + template_path: hooks/collection/sdk_update_pre_build_request.go.tpl + sdk_read_many_post_set_output: + template_path: hooks/collection/sdk_read_many_post_set_output.go.tpl