Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .docs.version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
780c11c0edd7bbf6bd43b010deb3ddfcdeb1d621
3ec4d68dc4160cbe3fba9e83d1601b144546e347
289 changes: 289 additions & 0 deletions aws-cloudformation-schema/aws-agentregistry-registry.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,289 @@
{
"typeName" : "AWS::AgentRegistry::Registry",
"description" : "Definition of AWS::AgentRegistry::Registry Resource Type",
"definitions" : {
"DiscoveryConfiguration" : {
"type" : "object",
"description" : "Discovery configuration for the registry. Controls how consumers are authorized to search the registry and invoke its MCP endpoint.",
"properties" : {
"AuthorizerConfiguration" : {
"$ref" : "#/definitions/AuthorizerConfiguration"
}
},
"additionalProperties" : false
},
"RegistryAuthorizerType" : {
"type" : "string",
"description" : "The type of authorizer that controls how consumers access the registry's search and MCP invoke operations.",
"enum" : [ "CUSTOM_JWT", "AWS_IAM" ]
},
"AuthorizerConfiguration" : {
"type" : "object",
"description" : "The authorizer configuration for the registry. This is a union - specify exactly one member.",
"properties" : {
"CustomJWTAuthorizer" : {
"$ref" : "#/definitions/CustomJWTAuthorizerConfiguration"
}
},
"required" : [ "CustomJWTAuthorizer" ],
"additionalProperties" : false
},
"CustomJWTAuthorizerConfiguration" : {
"type" : "object",
"description" : "Configuration for a custom JWT authorizer that validates inbound bearer tokens against an OpenID Connect identity provider.",
"properties" : {
"DiscoveryUrl" : {
"type" : "string",
"description" : "The OpenID Connect discovery URL used to retrieve the identity provider's metadata and signing keys.",
"minLength" : 1,
"maxLength" : 2048,
"pattern" : "^.+/\\.well-known/openid-configuration$"
},
"AllowedAudience" : {
"type" : "array",
"description" : "The audience values accepted during JWT validation.",
"items" : {
"type" : "string",
"minLength" : 1,
"maxLength" : 255
},
"minItems" : 1
},
"AllowedClients" : {
"type" : "array",
"description" : "The client identifiers accepted during JWT validation.",
"items" : {
"type" : "string",
"minLength" : 1,
"maxLength" : 255
},
"minItems" : 1
},
"AllowedScopes" : {
"type" : "array",
"description" : "The scopes accepted during JWT validation.",
"items" : {
"type" : "string",
"minLength" : 1,
"maxLength" : 255,
"pattern" : "^[\\x21\\x23-\\x5B\\x5D-\\x7E]+$"
},
"minItems" : 1
},
"CustomClaims" : {
"type" : "array",
"description" : "Additional custom claim validations applied to the inbound JWT.",
"items" : {
"$ref" : "#/definitions/CustomClaimValidationType"
},
"minItems" : 1
}
},
"required" : [ "DiscoveryUrl" ],
"additionalProperties" : false
},
"CustomClaimValidationType" : {
"type" : "object",
"description" : "A validation rule applied to a single claim of an inbound JWT.",
"properties" : {
"InboundTokenClaimName" : {
"type" : "string",
"minLength" : 1,
"maxLength" : 255,
"pattern" : "^[A-Za-z0-9_.-:]+$"
},
"InboundTokenClaimValueType" : {
"type" : "string",
"enum" : [ "STRING", "STRING_ARRAY" ]
},
"AuthorizingClaimMatchValue" : {
"$ref" : "#/definitions/AuthorizingClaimMatchValueType"
}
},
"required" : [ "InboundTokenClaimName", "InboundTokenClaimValueType", "AuthorizingClaimMatchValue" ],
"additionalProperties" : false
},
"AuthorizingClaimMatchValueType" : {
"type" : "object",
"description" : "The value and match operator used to authorize a claim during JWT validation.",
"properties" : {
"ClaimMatchValue" : {
"$ref" : "#/definitions/ClaimMatchValueType"
},
"ClaimMatchOperator" : {
"type" : "string",
"enum" : [ "EQUALS", "CONTAINS", "CONTAINS_ANY" ]
}
},
"required" : [ "ClaimMatchValue", "ClaimMatchOperator" ],
"additionalProperties" : false
},
"ClaimMatchValueType" : {
"type" : "object",
"description" : "The expected value used to match a claim. Exactly one member is set.",
"properties" : {
"MatchValueString" : {
"type" : "string",
"minLength" : 1,
"maxLength" : 255,
"pattern" : "^[A-Za-z0-9_.:/-]+$"
},
"MatchValueStringList" : {
"type" : "array",
"items" : {
"type" : "string",
"minLength" : 1,
"maxLength" : 255,
"pattern" : "^[A-Za-z0-9_.:/-]+$"
},
"minItems" : 1
}
},
"additionalProperties" : false,
"oneOf" : [ {
"required" : [ "MatchValueString" ]
}, {
"required" : [ "MatchValueStringList" ]
} ]
},
"ApprovalConfiguration" : {
"type" : "object",
"description" : "Configuration for the registry's record approval workflow.",
"properties" : {
"AutoApprovalRules" : {
"type" : "array",
"description" : "The rules that determine which registry records are automatically approved on submission. When omitted or empty, submitted records require manual review.",
"items" : {
"$ref" : "#/definitions/AutoApprovalRule"
},
"maxItems" : 10,
"insertionOrder" : false
}
},
"additionalProperties" : false
},
"AutoApprovalRule" : {
"type" : "string",
"description" : "A rule that determines which registry records are automatically approved on submission.",
"enum" : [ "APPROVE_ALL" ]
},
"RegistryStatus" : {
"type" : "string",
"description" : "The status of the registry.",
"enum" : [ "CREATING", "READY", "UPDATING", "CREATE_FAILED", "UPDATE_FAILED", "DELETING", "DELETE_FAILED" ]
},
"Tag" : {
"type" : "object",
"description" : "A tag to assign to the registry.",
"properties" : {
"Key" : {
"type" : "string",
"description" : "The key of the tag.",
"minLength" : 1,
"maxLength" : 128,
"pattern" : "^[a-zA-Z0-9\\s._:/=+@-]*$"
},
"Value" : {
"type" : "string",
"description" : "The value of the tag.",
"minLength" : 0,
"maxLength" : 256,
"pattern" : "^[a-zA-Z0-9\\s._:/=+@-]*$"
}
},
"required" : [ "Key", "Value" ],
"additionalProperties" : false
}
},
"properties" : {
"RegistryId" : {
"type" : "string",
"description" : "The unique identifier of the registry.",
"minLength" : 12,
"maxLength" : 16,
"pattern" : "^[a-zA-Z0-9]{12,16}$"
},
"RegistryArn" : {
"type" : "string",
"description" : "The Amazon Resource Name (ARN) of the registry.",
"minLength" : 46,
"maxLength" : 2048,
"pattern" : "^arn:aws(-[^:]+)?:agent-registry:[a-z0-9-]+:[0-9]{12}:registry/[a-zA-Z0-9]{12,16}$"
},
"Name" : {
"type" : "string",
"description" : "The name of the registry.",
"minLength" : 1,
"maxLength" : 64,
"pattern" : "^[a-zA-Z0-9][a-zA-Z0-9_\\-\\.\\/]*$"
},
"Description" : {
"type" : "string",
"description" : "The description of the registry.",
"minLength" : 1,
"maxLength" : 4096
},
"AuthorizerType" : {
"$ref" : "#/definitions/RegistryAuthorizerType"
},
"DiscoveryConfiguration" : {
"$ref" : "#/definitions/DiscoveryConfiguration"
},
"ApprovalConfiguration" : {
"$ref" : "#/definitions/ApprovalConfiguration"
},
"Status" : {
"$ref" : "#/definitions/RegistryStatus"
},
"CreatedAt" : {
"type" : "string",
"description" : "The timestamp when the registry was created.",
"format" : "date-time"
},
"UpdatedAt" : {
"type" : "string",
"description" : "The timestamp when the registry was last updated.",
"format" : "date-time"
},
"Tags" : {
"type" : "array",
"description" : "Tags to assign to the registry.",
"items" : {
"$ref" : "#/definitions/Tag"
},
"maxItems" : 50,
"insertionOrder" : false
}
},
"required" : [ "Name" ],
"readOnlyProperties" : [ "/properties/RegistryId", "/properties/RegistryArn", "/properties/Status", "/properties/CreatedAt", "/properties/UpdatedAt" ],
"createOnlyProperties" : [ "/properties/AuthorizerType" ],
"primaryIdentifier" : [ "/properties/RegistryArn" ],
"additionalIdentifiers" : [ [ "/properties/RegistryId" ] ],
"additionalProperties" : false,
"tagging" : {
"taggable" : true,
"tagOnCreate" : true,
"tagUpdatable" : true,
"cloudFormationSystemTags" : true,
"tagProperty" : "/properties/Tags",
"permissions" : [ "agent-registry:TagResource", "agent-registry:UntagResource", "agent-registry:ListTagsForResource" ]
},
"handlers" : {
"create" : {
"permissions" : [ "agent-registry:CreateRegistry", "agent-registry:GetRegistry", "agent-registry:TagResource", "agent-registry:ListTagsForResource", "bedrock-agentcore:CreateWorkloadIdentity", "iam:CreateServiceLinkedRole" ]
},
"read" : {
"permissions" : [ "agent-registry:GetRegistry", "agent-registry:ListTagsForResource" ]
},
"update" : {
"permissions" : [ "agent-registry:UpdateRegistry", "agent-registry:GetRegistry", "agent-registry:TagResource", "agent-registry:UntagResource", "agent-registry:ListTagsForResource" ]
},
"delete" : {
"permissions" : [ "agent-registry:DeleteRegistry", "agent-registry:GetRegistry", "bedrock-agentcore:DeleteWorkloadIdentity" ]
},
"list" : {
"permissions" : [ "agent-registry:ListRegistries" ]
}
}
}
Loading
Loading