import * as HttpClient from "effect/unstable/http/HttpClient";
import * as redacted from "effect/Redacted";
import * as S from "effect/Schema";
import * as stream from "effect/Stream";
import * as API from "../client/api.js";
import * as T from "../traits.js";
import * as C from "../category.js";
import { SensitiveString } from "../sensitive.js";
const svc = T.AwsApiService({
    sdkId: "Nova Act",
    serviceShapeName: "AmazonNovaAgentsDataPlane",
});
const auth = T.AwsAuthSigv4({ name: "nova-act" });
const ver = T.ServiceVersion("2025-08-22");
const proto = T.AwsProtocolsRestJson1();
const rules = T.EndpointResolver((p, _) => {
    const { UseDualStack = false, UseFIPS = false, Endpoint, Region } = p;
    const e = (u, p = {}, h = {}) => ({
        type: "endpoint",
        endpoint: { url: u, properties: p, headers: h },
    });
    const err = (m) => ({
        type: "error",
        message: m,
    });
    if (Endpoint != null) {
        if (UseFIPS === true) {
            return err("Invalid Configuration: FIPS and custom endpoint are not supported");
        }
        if (UseDualStack === true) {
            return err("Invalid Configuration: Dualstack and custom endpoint are not supported");
        }
        return e(Endpoint);
    }
    if (Region != null) {
        {
            const PartitionResult = _.partition(Region);
            if (PartitionResult != null && PartitionResult !== false) {
                if (UseFIPS === true && UseDualStack === true) {
                    if (true === _.getAttr(PartitionResult, "supportsFIPS") &&
                        true === _.getAttr(PartitionResult, "supportsDualStack")) {
                        return e(`https://nova-act-fips.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                    }
                    return err("FIPS and DualStack are enabled, but this partition does not support one or both");
                }
                if (UseFIPS === true && UseDualStack === false) {
                    if (_.getAttr(PartitionResult, "supportsFIPS") === true) {
                        return e(`https://nova-act-fips.${Region}.${_.getAttr(PartitionResult, "dnsSuffix")}`);
                    }
                    return err("FIPS is enabled but this partition does not support FIPS");
                }
                if (UseFIPS === false && UseDualStack === true) {
                    if (true === _.getAttr(PartitionResult, "supportsDualStack")) {
                        return e(`https://nova-act.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                    }
                    return err("DualStack is enabled but this partition does not support DualStack");
                }
                return e(`https://nova-act.${Region}.${_.getAttr(PartitionResult, "dnsSuffix")}`);
            }
        }
    }
    return err("Invalid Configuration: Missing Region");
});
export const ToolInputSchema = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ json: S.Any }),
]);
export const ToolSpec = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    name: S.String,
    description: SensitiveString,
    inputSchema: ToolInputSchema,
})).annotate({ identifier: "ToolSpec" });
export const ToolSpecs = /*@__PURE__*/ /*#__PURE__*/ S.Array(ToolSpec);
export const CreateActRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowDefinitionName: S.String.pipe(T.HttpLabel("workflowDefinitionName")),
    workflowRunId: S.String.pipe(T.HttpLabel("workflowRunId")),
    sessionId: S.String.pipe(T.HttpLabel("sessionId")),
    task: SensitiveString,
    toolSpecs: S.optional(ToolSpecs),
    clientToken: S.optional(S.String).pipe(T.IdempotencyToken()),
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/workflow-definitions/{workflowDefinitionName}/workflow-runs/{workflowRunId}/sessions/{sessionId}/acts",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateActRequest",
});
export const ActStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const CreateActResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ actId: S.String, status: ActStatus })).annotate({
    identifier: "CreateActResponse",
});
export const InternalServerExceptionReason = 
/*@__PURE__*/ /*#__PURE__*/ S.String;
export const ValidationExceptionReason = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const ValidationExceptionField = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ name: S.String, message: S.String })).annotate({
    identifier: "ValidationExceptionField",
});
export const ValidationExceptionFieldList = /*@__PURE__*/ /*#__PURE__*/ S.Array(ValidationExceptionField);
export const SortOrder = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const ListActsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowDefinitionName: S.String.pipe(T.HttpLabel("workflowDefinitionName")),
    workflowRunId: S.optional(S.String).pipe(T.HttpQuery("workflowRunId")),
    sessionId: S.optional(S.String).pipe(T.HttpQuery("sessionId")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    sortOrder: S.optional(SortOrder),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/workflow-definitions/{workflowDefinitionName}/acts",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListActsRequest",
});
export const TraceLocationType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const TraceLocation = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ locationType: TraceLocationType, location: S.String })).annotate({ identifier: "TraceLocation" });
export const ActSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowRunId: S.String,
    sessionId: S.String,
    actId: S.String,
    status: ActStatus,
    startedAt: T.DateFromString.pipe(T.TimestampFormat("date-time")),
    endedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    traceLocation: S.optional(TraceLocation),
})).annotate({ identifier: "ActSummary" });
export const ActSummaries = /*@__PURE__*/ /*#__PURE__*/ S.Array(ActSummary);
export const ListActsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ actSummaries: ActSummaries, nextToken: S.optional(S.String) })).annotate({
    identifier: "ListActsResponse",
});
export const CallResultContent = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ text: S.String }),
]);
export const CallResultContents = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(CallResultContent);
export const CallResult = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ callId: S.optional(S.String), content: CallResultContents })).annotate({ identifier: "CallResult" });
export const CallResults = /*@__PURE__*/ /*#__PURE__*/ S.Array(CallResult);
export const InvokeActStepRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowDefinitionName: S.String.pipe(T.HttpLabel("workflowDefinitionName")),
    workflowRunId: S.String.pipe(T.HttpLabel("workflowRunId")),
    sessionId: S.String.pipe(T.HttpLabel("sessionId")),
    actId: S.String.pipe(T.HttpLabel("actId")),
    callResults: CallResults,
    previousStepId: S.optional(S.String),
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/workflow-definitions/{workflowDefinitionName}/workflow-runs/{workflowRunId}/sessions/{sessionId}/acts/{actId}/invoke-step/",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "InvokeActStepRequest",
});
export const Call = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ callId: S.String, input: S.Any, name: S.String })).annotate({ identifier: "Call" });
export const Calls = /*@__PURE__*/ /*#__PURE__*/ S.Array(Call);
export const InvokeActStepResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ calls: Calls, stepId: S.String })).annotate({
    identifier: "InvokeActStepResponse",
});
export const ActError = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ message: SensitiveString, type: S.optional(S.String) })).annotate({ identifier: "ActError" });
export const UpdateActRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowDefinitionName: S.String.pipe(T.HttpLabel("workflowDefinitionName")),
    workflowRunId: S.String.pipe(T.HttpLabel("workflowRunId")),
    sessionId: S.String.pipe(T.HttpLabel("sessionId")),
    actId: S.String.pipe(T.HttpLabel("actId")),
    status: ActStatus,
    error: S.optional(ActError),
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/workflow-definitions/{workflowDefinitionName}/workflow-runs/{workflowRunId}/sessions/{sessionId}/acts/{actId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateActRequest",
});
export const UpdateActResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "UpdateActResponse",
});
export const ListModelsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    clientCompatibilityVersion: S.Number.pipe(T.HttpQuery("clientCompatibilityVersion")),
}).pipe(T.all(T.Http({ method: "POST", uri: "/models" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListModelsRequest",
});
export const ModelStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const ModelLifecycle = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ status: ModelStatus })).annotate({ identifier: "ModelLifecycle" });
export const ModelSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    modelId: S.String,
    modelLifecycle: ModelLifecycle,
    minimumCompatibilityVersion: S.Number,
})).annotate({ identifier: "ModelSummary" });
export const ModelSummaries = /*@__PURE__*/ /*#__PURE__*/ S.Array(ModelSummary);
export const ModelAlias = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    aliasName: S.String,
    latestModelId: S.String,
    resolvedModelId: S.optional(S.String),
})).annotate({ identifier: "ModelAlias" });
export const ModelAliases = /*@__PURE__*/ /*#__PURE__*/ S.Array(ModelAlias);
export const ModelIdList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const CompatibilityInformation = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    clientCompatibilityVersion: S.Number,
    supportedModelIds: ModelIdList,
    message: S.optional(S.String),
})).annotate({
    identifier: "CompatibilityInformation",
});
export const ListModelsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    modelSummaries: ModelSummaries,
    modelAliases: ModelAliases,
    compatibilityInformation: CompatibilityInformation,
})).annotate({
    identifier: "ListModelsResponse",
});
export const CreateSessionRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowDefinitionName: S.String.pipe(T.HttpLabel("workflowDefinitionName")),
    workflowRunId: S.String.pipe(T.HttpLabel("workflowRunId")),
    clientToken: S.optional(S.String).pipe(T.IdempotencyToken()),
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/workflow-definitions/{workflowDefinitionName}/workflow-runs/{workflowRunId}/sessions",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateSessionRequest",
});
export const CreateSessionResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ sessionId: S.String })).annotate({
    identifier: "CreateSessionResponse",
});
export const ListSessionsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowDefinitionName: S.String.pipe(T.HttpLabel("workflowDefinitionName")),
    workflowRunId: S.String.pipe(T.HttpLabel("workflowRunId")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    sortOrder: S.optional(SortOrder),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/workflow-definitions/{workflowDefinitionName}/workflow-runs/{workflowRunId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListSessionsRequest",
});
export const SessionSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ sessionId: S.String })).annotate({ identifier: "SessionSummary" });
export const SessionSummaries = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(SessionSummary);
export const ListSessionsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    sessionSummaries: SessionSummaries,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListSessionsResponse",
});
export const WorkflowExportConfig = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ s3BucketName: S.String, s3KeyPrefix: S.optional(S.String) })).annotate({
    identifier: "WorkflowExportConfig",
});
export const CreateWorkflowDefinitionRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    name: S.String,
    description: S.optional(SensitiveString),
    exportConfig: S.optional(WorkflowExportConfig),
    clientToken: S.optional(S.String).pipe(T.IdempotencyToken()),
}).pipe(T.all(T.Http({ method: "PUT", uri: "/workflow-definitions" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateWorkflowDefinitionRequest",
});
export const WorkflowDefinitionStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const CreateWorkflowDefinitionResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ status: WorkflowDefinitionStatus })).annotate({
    identifier: "CreateWorkflowDefinitionResponse",
});
export const GetWorkflowDefinitionRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowDefinitionName: S.String.pipe(T.HttpLabel("workflowDefinitionName")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/workflow-definitions/{workflowDefinitionName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetWorkflowDefinitionRequest",
});
export const GetWorkflowDefinitionResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    name: S.String,
    arn: S.String,
    createdAt: T.DateFromString.pipe(T.TimestampFormat("date-time")),
    description: S.optional(SensitiveString),
    exportConfig: S.optional(WorkflowExportConfig),
    status: WorkflowDefinitionStatus,
})).annotate({
    identifier: "GetWorkflowDefinitionResponse",
});
export const DeleteWorkflowDefinitionRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowDefinitionName: S.String.pipe(T.HttpLabel("workflowDefinitionName")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/workflow-definitions/{workflowDefinitionName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteWorkflowDefinitionRequest",
});
export const DeleteWorkflowDefinitionResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ status: WorkflowDefinitionStatus })).annotate({
    identifier: "DeleteWorkflowDefinitionResponse",
});
export const ListWorkflowDefinitionsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    sortOrder: S.optional(SortOrder),
}).pipe(T.all(T.Http({ method: "POST", uri: "/workflow-definitions" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListWorkflowDefinitionsRequest",
});
export const WorkflowDefinitionSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowDefinitionArn: S.String,
    workflowDefinitionName: S.String,
    createdAt: T.DateFromString.pipe(T.TimestampFormat("date-time")),
    status: WorkflowDefinitionStatus,
})).annotate({
    identifier: "WorkflowDefinitionSummary",
});
export const WorkflowDefinitionSummaries = /*@__PURE__*/ /*#__PURE__*/ S.Array(WorkflowDefinitionSummary);
export const ListWorkflowDefinitionsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowDefinitionSummaries: WorkflowDefinitionSummaries,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListWorkflowDefinitionsResponse",
});
export const ClientInfo = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    compatibilityVersion: S.Number,
    sdkVersion: S.optional(S.String),
})).annotate({ identifier: "ClientInfo" });
export const CreateWorkflowRunRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowDefinitionName: S.String.pipe(T.HttpLabel("workflowDefinitionName")),
    modelId: S.String,
    clientToken: S.optional(S.String).pipe(T.IdempotencyToken()),
    logGroupName: S.optional(S.String),
    clientInfo: ClientInfo,
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/workflow-definitions/{workflowDefinitionName}/workflow-runs",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateWorkflowRunRequest",
});
export const WorkflowRunStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const CreateWorkflowRunResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ workflowRunId: S.String, status: WorkflowRunStatus })).annotate({
    identifier: "CreateWorkflowRunResponse",
});
export const GetWorkflowRunRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowDefinitionName: S.String.pipe(T.HttpLabel("workflowDefinitionName")),
    workflowRunId: S.String.pipe(T.HttpLabel("workflowRunId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/workflow-definitions/{workflowDefinitionName}/workflow-runs/{workflowRunId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetWorkflowRunRequest",
});
export const GetWorkflowRunResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowRunArn: S.String,
    workflowRunId: S.String,
    status: WorkflowRunStatus,
    startedAt: T.DateFromString.pipe(T.TimestampFormat("date-time")),
    endedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    modelId: S.String,
    logGroupName: S.optional(S.String),
})).annotate({
    identifier: "GetWorkflowRunResponse",
});
export const UpdateWorkflowRunRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowDefinitionName: S.String.pipe(T.HttpLabel("workflowDefinitionName")),
    workflowRunId: S.String.pipe(T.HttpLabel("workflowRunId")),
    status: WorkflowRunStatus,
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/workflow-definitions/{workflowDefinitionName}/workflow-runs/{workflowRunId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateWorkflowRunRequest",
});
export const UpdateWorkflowRunResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "UpdateWorkflowRunResponse",
});
export const DeleteWorkflowRunRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowDefinitionName: S.String.pipe(T.HttpLabel("workflowDefinitionName")),
    workflowRunId: S.String.pipe(T.HttpLabel("workflowRunId")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/workflow-definitions/{workflowDefinitionName}/workflow-runs/{workflowRunId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteWorkflowRunRequest",
});
export const DeleteWorkflowRunResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ status: WorkflowRunStatus })).annotate({
    identifier: "DeleteWorkflowRunResponse",
});
export const ListWorkflowRunsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowDefinitionName: S.String.pipe(T.HttpLabel("workflowDefinitionName")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    sortOrder: S.optional(SortOrder),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/workflow-definitions/{workflowDefinitionName}/workflow-runs",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListWorkflowRunsRequest",
});
export const WorkflowRunSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowRunArn: S.String,
    workflowRunId: S.String,
    status: WorkflowRunStatus,
    startedAt: T.DateFromString.pipe(T.TimestampFormat("date-time")),
    endedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    traceLocation: S.optional(TraceLocation),
})).annotate({
    identifier: "WorkflowRunSummary",
});
export const WorkflowRunSummaries = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(WorkflowRunSummary);
export const ListWorkflowRunsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workflowRunSummaries: WorkflowRunSummaries,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListWorkflowRunsResponse",
});
//# Errors
export class AccessDeniedException extends S.TaggedErrorClass()("AccessDeniedException", { message: S.String }).pipe(C.withAuthError) {
}
export class ConflictException extends S.TaggedErrorClass()("ConflictException", { message: S.String, resourceId: S.String, resourceType: S.String }).pipe(C.withConflictError) {
}
export class InternalServerException extends S.TaggedErrorClass()("InternalServerException", {
    message: S.String,
    retryAfterSeconds: S.optional(S.Number).pipe(T.HttpHeader("Retry-After")),
    reason: S.optional(InternalServerExceptionReason),
}, T.Retryable()).pipe(C.withServerError, C.withRetryableError) {
}
export class ResourceNotFoundException extends S.TaggedErrorClass()("ResourceNotFoundException", { message: S.String, resourceId: S.String, resourceType: S.String }).pipe(C.withBadRequestError) {
}
export class ServiceQuotaExceededException extends S.TaggedErrorClass()("ServiceQuotaExceededException", {
    message: S.String,
    resourceId: S.String,
    resourceType: S.String,
    serviceCode: S.String,
    quotaCode: S.String,
}).pipe(C.withQuotaError) {
}
export class ThrottlingException extends S.TaggedErrorClass()("ThrottlingException", {
    message: S.String,
    serviceCode: S.optional(S.String),
    quotaCode: S.optional(S.String),
    retryAfterSeconds: S.optional(S.Number).pipe(T.HttpHeader("Retry-After")),
}, T.Retryable({ throttling: true })).pipe(C.withThrottlingError, C.withRetryableError) {
}
export class ValidationException extends S.TaggedErrorClass()("ValidationException", {
    message: S.String,
    reason: ValidationExceptionReason,
    fieldList: S.optional(ValidationExceptionFieldList),
}).pipe(C.withBadRequestError) {
}
/**
 * Creates a new AI task (act) within a session that can interact with tools and perform specific actions.
 */
export const createAct = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateActRequest,
    output: CreateActResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Lists all acts within a specific session with their current status and execution details.
 */
export const listActs = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListActsRequest,
    output: ListActsResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "actSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Executes the next step of an act, processing tool call results and returning new tool calls if needed.
 */
export const invokeActStep = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: InvokeActStepRequest,
    output: InvokeActStepResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Updates an existing act's configuration, status, or error information.
 */
export const updateAct = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateActRequest,
    output: UpdateActResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Lists all available AI models that can be used for workflow execution, including their status and compatibility information.
 */
export const listModels = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: ListModelsRequest,
    output: ListModelsResponse,
    errors: [AccessDeniedException, InternalServerException, ThrottlingException],
}));
/**
 * Creates a new session context within a workflow run to manage conversation state and acts.
 */
export const createSession = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateSessionRequest,
    output: CreateSessionResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Lists all sessions within a specific workflow run.
 */
export const listSessions = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListSessionsRequest,
    output: ListSessionsResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "sessionSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Creates a new workflow definition template that can be used to execute multiple workflow runs.
 */
export const createWorkflowDefinition = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateWorkflowDefinitionRequest,
    output: CreateWorkflowDefinitionResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Retrieves the details and configuration of a specific workflow definition.
 */
export const getWorkflowDefinition = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetWorkflowDefinitionRequest,
    output: GetWorkflowDefinitionResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Deletes a workflow definition and all associated resources. This operation cannot be undone.
 */
export const deleteWorkflowDefinition = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteWorkflowDefinitionRequest,
    output: DeleteWorkflowDefinitionResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Lists all workflow definitions in your account with optional filtering and pagination.
 */
export const listWorkflowDefinitions = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListWorkflowDefinitionsRequest,
    output: ListWorkflowDefinitionsResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "workflowDefinitionSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Creates a new execution instance of a workflow definition with specified parameters.
 */
export const createWorkflowRun = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateWorkflowRunRequest,
    output: CreateWorkflowRunResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Retrieves the current state, configuration, and execution details of a workflow run.
 */
export const getWorkflowRun = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetWorkflowRunRequest,
    output: GetWorkflowRunResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Updates the configuration or state of an active workflow run.
 */
export const updateWorkflowRun = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateWorkflowRunRequest,
    output: UpdateWorkflowRunResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Terminates and cleans up a workflow run, stopping all associated acts and sessions.
 */
export const deleteWorkflowRun = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteWorkflowRunRequest,
    output: DeleteWorkflowRunResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Lists all workflow runs for a specific workflow definition with optional filtering and pagination.
 */
export const listWorkflowRuns = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListWorkflowRunsRequest,
    output: ListWorkflowRunsResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "workflowRunSummaries",
        pageSize: "maxResults",
    },
}));
//# sourceMappingURL=nova-act.js.map