Skip to content

AWS.RePostSpace reference

Source: src/AWS/RePostSpace/BatchAddChannelRoleToAccessors.ts

Runtime binding for the BatchAddChannelRoleToAccessors operation (IAM action repostspace:BatchAddChannelRoleToAccessors on the space ARN).

Grants a channel-level role (ASKER, EXPERT, MODERATOR, or SUPPORTREQUESTOR) to up to 100 users or groups in a channel of the bound Space. Per-accessor failures are reported in the output’s errors list rather than failing the whole call. Provide the implementation with Effect.provide(AWS.RePostSpace.BatchAddChannelRoleToAccessorsHttp).

BatchAddChannelRoleToAccessors: Managing Roles

Section titled “BatchAddChannelRoleToAccessors: Managing Roles”
const addChannelRole =
yield* AWS.RePostSpace.BatchAddChannelRoleToAccessors(space);
const result = yield* addChannelRole({
channelId,
accessorIds: ["94682c8d-1234-5678-9abc-e001c76e2c44"],
channelRole: "EXPERT",
});

Source: src/AWS/RePostSpace/BatchAddRole.ts

Runtime binding for the BatchAddRole operation (IAM action repostspace:BatchAddRole on the space ARN).

Grants a space-level role (EXPERT, MODERATOR, ADMINISTRATOR, or SUPPORTREQUESTOR) to up to 100 users or groups of the bound Space in one call. Per-accessor failures are reported in the output’s errors list rather than failing the whole call. Provide the implementation with Effect.provide(AWS.RePostSpace.BatchAddRoleHttp).

const batchAddRole = yield* AWS.RePostSpace.BatchAddRole(space);
const result = yield* batchAddRole({
accessorIds: ["94682c8d-1234-5678-9abc-e001c76e2c44"],
role: "EXPERT",
});
console.log(result.addedAccessorIds, result.errors);

Source: src/AWS/RePostSpace/BatchRemoveChannelRoleFromAccessors.ts

Runtime binding for the BatchRemoveChannelRoleFromAccessors operation (IAM action repostspace:BatchRemoveChannelRoleFromAccessors on the space ARN).

Removes a channel-level role from up to 100 users or groups in a channel of the bound Space. Per-accessor failures are reported in the output’s errors list rather than failing the whole call. Provide the implementation with Effect.provide(AWS.RePostSpace.BatchRemoveChannelRoleFromAccessorsHttp).

BatchRemoveChannelRoleFromAccessors: Managing Roles

Section titled “BatchRemoveChannelRoleFromAccessors: Managing Roles”
const removeChannelRole =
yield* AWS.RePostSpace.BatchRemoveChannelRoleFromAccessors(space);
const result = yield* removeChannelRole({
channelId,
accessorIds: ["94682c8d-1234-5678-9abc-e001c76e2c44"],
channelRole: "EXPERT",
});

Source: src/AWS/RePostSpace/BatchRemoveRole.ts

Runtime binding for the BatchRemoveRole operation (IAM action repostspace:BatchRemoveRole on the space ARN).

Removes a space-level role from up to 100 users or groups of the bound Space in one call. Per-accessor failures are reported in the output’s errors list rather than failing the whole call. Provide the implementation with Effect.provide(AWS.RePostSpace.BatchRemoveRoleHttp).

const batchRemoveRole = yield* AWS.RePostSpace.BatchRemoveRole(space);
const result = yield* batchRemoveRole({
accessorIds: ["94682c8d-1234-5678-9abc-e001c76e2c44"],
role: "EXPERT",
});
console.log(result.removedAccessorIds, result.errors);

Source: src/AWS/RePostSpace/CreateChannel.ts

Runtime binding for the CreateChannel operation (IAM action repostspace:CreateChannel on the space ARN).

Creates a channel — a topic-scoped area for questions and articles — inside the bound Space. Channels are content organization and cannot be deleted (the re:Post Private API has no DeleteChannel), so they are modeled as a runtime capability rather than a Resource. Provide the implementation with Effect.provide(AWS.RePostSpace.CreateChannelHttp).

const createChannel = yield* AWS.RePostSpace.CreateChannel(space);
const { channelId } = yield* createChannel({
channelName: "Networking",
channelDescription: "VPC, DNS, and connectivity questions",
});

Source: src/AWS/RePostSpace/DeregisterAdmin.ts

Runtime binding for the DeregisterAdmin operation (IAM action repostspace:DeregisterAdmin on the space ARN).

Removes administrator privileges from an IAM Identity Center user or group (by accessor id) of the bound Space. Provide the implementation with Effect.provide(AWS.RePostSpace.DeregisterAdminHttp).

const deregisterAdmin = yield* AWS.RePostSpace.DeregisterAdmin(space);
yield* deregisterAdmin({ adminId: "94682c8d-1234-5678-9abc-e001c76e2c44" });

Source: src/AWS/RePostSpace/GetChannel.ts

Runtime binding for the GetChannel operation (IAM action repostspace:GetChannel on the space ARN).

Reads a channel of the bound Space — its name, description, status, and per-accessor channel roles. Provide the implementation with Effect.provide(AWS.RePostSpace.GetChannelHttp).

const getChannel = yield* AWS.RePostSpace.GetChannel(space);
const channel = yield* getChannel({ channelId });
console.log(channel.channelName, channel.channelStatus);

Source: src/AWS/RePostSpace/ListChannels.ts

Runtime binding for the ListChannels operation (IAM action repostspace:ListChannels on the space ARN).

Lists the channels of the bound Space, one page per call (nextToken/maxResults). Provide the implementation with Effect.provide(AWS.RePostSpace.ListChannelsHttp).

const listChannels = yield* AWS.RePostSpace.ListChannels(space);
const { channels } = yield* listChannels();

Source: src/AWS/RePostSpace/RegisterAdmin.ts

Runtime binding for the RegisterAdmin operation (IAM action repostspace:RegisterAdmin on the space ARN).

Promotes an IAM Identity Center user or group (by accessor id) to administrator of the bound Space. Provide the implementation with Effect.provide(AWS.RePostSpace.RegisterAdminHttp).

const registerAdmin = yield* AWS.RePostSpace.RegisterAdmin(space);
yield* registerAdmin({ adminId: "94682c8d-1234-5678-9abc-e001c76e2c44" });

Source: src/AWS/RePostSpace/SendInvites.ts

Runtime binding for the SendInvites operation (IAM action repostspace:SendInvites on the space ARN).

Sends invitation emails (with a custom title and body) to users or groups of the bound Space, identified by their IAM Identity Center accessor ids. Provide the implementation with Effect.provide(AWS.RePostSpace.SendInvitesHttp).

const sendInvites = yield* AWS.RePostSpace.SendInvites(space);
yield* sendInvites({
accessorIds: ["94682c8d-1234-5678-9abc-e001c76e2c44"],
title: "Join our internal re:Post",
body: "Ask and answer questions about our AWS workloads.",
});

Source: src/AWS/RePostSpace/Space.ts

An AWS re:Post Private space — a private, organization-scoped version of AWS re:Post with curated Q&A, articles, and selected public content.

re:Post Private is a paid feature (Basic or Standard tier) that requires AWS IAM Identity Center to be enabled in the account. Space provisioning is asynchronous and can take tens of minutes; the provider waits for the space to reach CREATE_COMPLETED before returning.

Basic Space

import * as RePostSpace from "alchemy/AWS/RePostSpace";
const space = yield* RePostSpace.Space("Support", {
subdomain: "my-org-support",
tier: "BASIC",
});

Space with Description and Tags

const space = yield* RePostSpace.Space("Engineering", {
name: "Engineering Knowledge Base",
subdomain: "my-org-engineering",
tier: "STANDARD",
description: "Internal Q&A for the engineering org",
tags: { team: "platform" },
});
const space = yield* RePostSpace.Space("Secure", {
subdomain: "my-org-secure",
userKMSKey: key.keyArn,
});

Source: src/AWS/RePostSpace/UpdateChannel.ts

Runtime binding for the UpdateChannel operation (IAM action repostspace:UpdateChannel on the space ARN).

Renames a channel of the bound Space and/or updates its description. Provide the implementation with Effect.provide(AWS.RePostSpace.UpdateChannelHttp).

const updateChannel = yield* AWS.RePostSpace.UpdateChannel(space);
yield* updateChannel({
channelId,
channelName: "Networking & DNS",
});