Skip to content
GitHubXDiscord

UserPoolResourceServer

The UserPoolResourceServer resource allows you to manage AWS Cognito User Pool Resource Servers. This resource enables you to define custom resource servers for your user pool, complete with associated scopes.

Create a basic User Pool Resource Server with required properties.

import AWS from "alchemy/aws/control";
const userPoolResourceServer = await AWS.Cognito.UserPoolResourceServer("myResourceServer", {
UserPoolId: "us-east-1_123456789",
Identifier: "https://myapi.example.com",
Name: "My API Resource Server",
Scopes: [
{
ScopeName: "read",
ScopeDescription: "Read access to the resource"
},
{
ScopeName: "write",
ScopeDescription: "Write access to the resource"
}
]
});

Configure a User Pool Resource Server with additional scopes for more granular access control.

const advancedResourceServer = await AWS.Cognito.UserPoolResourceServer("advancedResourceServer", {
UserPoolId: "us-east-1_987654321",
Identifier: "https://myadvancedapi.example.com",
Name: "Advanced API Resource Server",
Scopes: [
{
ScopeName: "admin",
ScopeDescription: "Admin access to the resource"
},
{
ScopeName: "read",
ScopeDescription: "Read access to the resource"
},
{
ScopeName: "write",
ScopeDescription: "Write access to the resource"
}
]
});

If you want to adopt an existing resource instead of failing when the resource already exists, you can set the adopt property to true.

const adoptedResourceServer = await AWS.Cognito.UserPoolResourceServer("adoptedResourceServer", {
UserPoolId: "us-east-1_543216789",
Identifier: "https://myadoptedapi.example.com",
Name: "Adopted API Resource Server",
adopt: true,
Scopes: [
{
ScopeName: "read",
ScopeDescription: "Read access to the resource"
}
]
});

This example illustrates how to adopt an existing User Pool Resource Server by setting the adopt property to true, ensuring that the operation does not fail if the resource already exists.