import * as HttpClient from "effect/unstable/http/HttpClient";
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";
const svc = T.AwsApiService({
    sdkId: "SecurityAgent",
    serviceShapeName: "SecurityAgent",
});
const auth = T.AwsAuthSigv4({ name: "securityagent" });
const ver = T.ServiceVersion("2025-09-06");
const proto = T.AwsProtocolsRestJson1();
const rules = T.EndpointResolver((p, _) => {
    const { 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");
        }
        return e(Endpoint);
    }
    if (Region != null) {
        {
            const PartitionResult = _.partition(Region);
            if (PartitionResult != null && PartitionResult !== false) {
                if (UseFIPS === true) {
                    return e(`https://securityagent-fips.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                }
                return e(`https://securityagent.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
            }
        }
    }
    return err("Invalid Configuration: Missing Region");
});
export const ArtifactType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const AddArtifactInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    agentSpaceId: S.String,
    artifactContent: T.Blob,
    artifactType: ArtifactType,
    fileName: S.String,
}).pipe(T.all(T.Http({ method: "POST", uri: "/AddArtifact" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "AddArtifactInput",
});
export const AddArtifactOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ artifactId: S.String })).annotate({
    identifier: "AddArtifactOutput",
});
export const ValidationExceptionField = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ path: S.String, message: S.String })).annotate({
    identifier: "ValidationExceptionField",
});
export const ValidationExceptionFieldList = /*@__PURE__*/ /*#__PURE__*/ S.Array(ValidationExceptionField);
export const PentestIdList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const BatchDeletePentestsInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ pentestIds: PentestIdList, agentSpaceId: S.String }).pipe(T.all(T.Http({ method: "POST", uri: "/BatchDeletePentests" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "BatchDeletePentestsInput",
});
export const Endpoint = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ uri: S.optional(S.String) })).annotate({ identifier: "Endpoint" });
export const EndpointList = /*@__PURE__*/ /*#__PURE__*/ S.Array(Endpoint);
export const UriList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const AuthenticationProviderType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const Authentication = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    providerType: S.optional(AuthenticationProviderType),
    value: S.optional(S.String),
})).annotate({ identifier: "Authentication" });
export const Actor = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    identifier: S.optional(S.String),
    uris: S.optional(UriList),
    authentication: S.optional(Authentication),
    description: S.optional(S.String),
})).annotate({ identifier: "Actor" });
export const ActorList = /*@__PURE__*/ /*#__PURE__*/ S.Array(Actor);
export const DocumentInfo = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    s3Location: S.optional(S.String),
    artifactId: S.optional(S.String),
})).annotate({ identifier: "DocumentInfo" });
export const DocumentList = /*@__PURE__*/ /*#__PURE__*/ S.Array(DocumentInfo);
export const SourceCodeRepository = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ s3Location: S.optional(S.String) })).annotate({
    identifier: "SourceCodeRepository",
});
export const SourceCodeRepositoryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(SourceCodeRepository);
export const IntegratedRepository = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ integrationId: S.String, providerResourceId: S.String })).annotate({
    identifier: "IntegratedRepository",
});
export const IntegratedRepositoryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(IntegratedRepository);
export const Assets = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    endpoints: S.optional(EndpointList),
    actors: S.optional(ActorList),
    documents: S.optional(DocumentList),
    sourceCode: S.optional(SourceCodeRepositoryList),
    integratedRepositories: S.optional(IntegratedRepositoryList),
})).annotate({ identifier: "Assets" });
export const RiskType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const RiskTypeList = /*@__PURE__*/ /*#__PURE__*/ S.Array(RiskType);
export const CloudWatchLog = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ logGroup: S.optional(S.String), logStream: S.optional(S.String) })).annotate({ identifier: "CloudWatchLog" });
export const SecurityGroupArns = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const SubnetArns = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const VpcConfig = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    vpcArn: S.optional(S.String),
    securityGroupArns: S.optional(SecurityGroupArns),
    subnetArns: S.optional(SubnetArns),
})).annotate({ identifier: "VpcConfig" });
export const NetworkTrafficRuleEffect = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const NetworkTrafficRuleType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const NetworkTrafficRule = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    effect: S.optional(NetworkTrafficRuleEffect),
    pattern: S.optional(S.String),
    networkTrafficRuleType: S.optional(NetworkTrafficRuleType),
})).annotate({
    identifier: "NetworkTrafficRule",
});
export const NetworkTrafficRuleList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(NetworkTrafficRule);
export const CustomHeader = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ name: S.optional(S.String), value: S.optional(S.String) })).annotate({ identifier: "CustomHeader" });
export const CustomHeaderList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(CustomHeader);
export const NetworkTrafficConfig = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    rules: S.optional(NetworkTrafficRuleList),
    customHeaders: S.optional(CustomHeaderList),
})).annotate({
    identifier: "NetworkTrafficConfig",
});
export const CodeRemediationStrategy = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const Pentest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    pentestId: S.String,
    agentSpaceId: S.String,
    title: S.String,
    assets: Assets,
    excludeRiskTypes: S.optional(RiskTypeList),
    serviceRole: S.optional(S.String),
    logConfig: S.optional(CloudWatchLog),
    vpcConfig: S.optional(VpcConfig),
    networkTrafficConfig: S.optional(NetworkTrafficConfig),
    codeRemediationStrategy: S.optional(CodeRemediationStrategy),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    updatedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({ identifier: "Pentest" });
export const PentestList = /*@__PURE__*/ /*#__PURE__*/ S.Array(Pentest);
export const DeletePentestFailure = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ pentestId: S.optional(S.String), reason: S.optional(S.String) })).annotate({
    identifier: "DeletePentestFailure",
});
export const DeletePentestFailureList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(DeletePentestFailure);
export const BatchDeletePentestsOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    deleted: S.optional(PentestList),
    failed: S.optional(DeletePentestFailureList),
})).annotate({
    identifier: "BatchDeletePentestsOutput",
});
export const ArtifactIds = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const BatchGetArtifactMetadataInput = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ agentSpaceId: S.String, artifactIds: ArtifactIds }).pipe(T.all(T.Http({ method: "POST", uri: "/BatchGetArtifactMetadata" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "BatchGetArtifactMetadataInput",
});
export const ArtifactMetadataItem = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    agentSpaceId: S.String,
    artifactId: S.String,
    fileName: S.String,
    updatedAt: T.DateFromString.pipe(T.TimestampFormat("date-time")),
})).annotate({
    identifier: "ArtifactMetadataItem",
});
export const ArtifactMetadataList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ArtifactMetadataItem);
export const BatchGetArtifactMetadataOutput = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ artifactMetadataList: ArtifactMetadataList })).annotate({
    identifier: "BatchGetArtifactMetadataOutput",
});
export const FindingIdList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const BatchGetFindingsInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ findingIds: FindingIdList, agentSpaceId: S.String }).pipe(T.all(T.Http({ method: "POST", uri: "/BatchGetFindings" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "BatchGetFindingsInput",
});
export const FindingStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const RiskLevel = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const ConfidenceLevel = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const CodeRemediationTaskStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const CodeRemediationTaskDetails = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    repoName: S.optional(S.String),
    codeDiffLink: S.optional(S.String),
    pullRequestLink: S.optional(S.String),
})).annotate({
    identifier: "CodeRemediationTaskDetails",
});
export const CodeRemediationTaskDetailsList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(CodeRemediationTaskDetails);
export const CodeRemediationTask = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    status: CodeRemediationTaskStatus,
    statusReason: S.optional(S.String),
    taskDetails: S.optional(CodeRemediationTaskDetailsList),
})).annotate({
    identifier: "CodeRemediationTask",
});
export const Finding = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    findingId: S.String,
    agentSpaceId: S.String,
    pentestId: S.optional(S.String),
    pentestJobId: S.optional(S.String),
    taskId: S.optional(S.String),
    name: S.optional(S.String),
    description: S.optional(S.String),
    status: S.optional(FindingStatus),
    riskType: S.optional(S.String),
    riskLevel: S.optional(RiskLevel),
    riskScore: S.optional(S.String),
    reasoning: S.optional(S.String),
    confidence: S.optional(ConfidenceLevel),
    attackScript: S.optional(S.String),
    codeRemediationTask: S.optional(CodeRemediationTask),
    lastUpdatedBy: S.optional(S.String),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    updatedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({ identifier: "Finding" });
export const FindingList = /*@__PURE__*/ /*#__PURE__*/ S.Array(Finding);
export const BatchGetFindingsOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    findings: S.optional(FindingList),
    notFound: S.optional(FindingIdList),
})).annotate({
    identifier: "BatchGetFindingsOutput",
});
export const PentestJobIdList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const BatchGetPentestJobsInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ pentestJobIds: PentestJobIdList, agentSpaceId: S.String }).pipe(T.all(T.Http({ method: "POST", uri: "/BatchGetPentestJobs" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "BatchGetPentestJobsInput",
});
export const JobStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const StepName = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const StepStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const Step = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    name: S.optional(StepName),
    status: S.optional(StepStatus),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    updatedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({ identifier: "Step" });
export const StepList = /*@__PURE__*/ /*#__PURE__*/ S.Array(Step);
export const ContextType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const ExecutionContext = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    contextType: S.optional(ContextType),
    context: S.optional(S.String),
    timestamp: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({
    identifier: "ExecutionContext",
});
export const ExecutionContextList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ExecutionContext);
export const ErrorCode = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const ErrorInformation = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ code: S.optional(ErrorCode), message: S.optional(S.String) })).annotate({
    identifier: "ErrorInformation",
});
export const PentestJob = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    pentestJobId: S.optional(S.String),
    pentestId: S.optional(S.String),
    title: S.optional(S.String),
    overview: S.optional(S.String),
    status: S.optional(JobStatus),
    endpoints: S.optional(EndpointList),
    actors: S.optional(ActorList),
    documents: S.optional(DocumentList),
    sourceCode: S.optional(SourceCodeRepositoryList),
    excludePaths: S.optional(EndpointList),
    allowedDomains: S.optional(EndpointList),
    excludeRiskTypes: S.optional(RiskTypeList),
    steps: S.optional(StepList),
    executionContext: S.optional(ExecutionContextList),
    serviceRole: S.optional(S.String),
    logConfig: S.optional(CloudWatchLog),
    vpcConfig: S.optional(VpcConfig),
    networkTrafficConfig: S.optional(NetworkTrafficConfig),
    errorInformation: S.optional(ErrorInformation),
    integratedRepositories: S.optional(IntegratedRepositoryList),
    codeRemediationStrategy: S.optional(CodeRemediationStrategy),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    updatedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({ identifier: "PentestJob" });
export const PentestJobList = /*@__PURE__*/ /*#__PURE__*/ S.Array(PentestJob);
export const BatchGetPentestJobsOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    pentestJobs: S.optional(PentestJobList),
    notFound: S.optional(PentestJobIdList),
})).annotate({
    identifier: "BatchGetPentestJobsOutput",
});
export const TaskIdList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const BatchGetPentestJobTasksInput = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ agentSpaceId: S.String, taskIds: TaskIdList }).pipe(T.all(T.Http({ method: "POST", uri: "/BatchGetPentestJobTasks" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "BatchGetPentestJobTasksInput",
});
export const Category = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ name: S.optional(S.String), isPrimary: S.optional(S.Boolean) })).annotate({ identifier: "Category" });
export const CategoryList = /*@__PURE__*/ /*#__PURE__*/ S.Array(Category);
export const TaskExecutionStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const LogType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const LogLocation = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    logType: S.optional(LogType),
    cloudWatchLog: S.optional(CloudWatchLog),
})).annotate({ identifier: "LogLocation" });
export const Task = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    taskId: S.String,
    pentestId: S.optional(S.String),
    pentestJobId: S.optional(S.String),
    agentSpaceId: S.optional(S.String),
    title: S.optional(S.String),
    description: S.optional(S.String),
    categories: S.optional(CategoryList),
    riskType: S.optional(RiskType),
    targetEndpoint: S.optional(Endpoint),
    executionStatus: S.optional(TaskExecutionStatus),
    logsLocation: S.optional(LogLocation),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    updatedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({ identifier: "Task" });
export const TaskList = /*@__PURE__*/ /*#__PURE__*/ S.Array(Task);
export const BatchGetPentestJobTasksOutput = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ tasks: S.optional(TaskList), notFound: S.optional(TaskIdList) })).annotate({
    identifier: "BatchGetPentestJobTasksOutput",
});
export const BatchGetPentestsInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ pentestIds: PentestIdList, agentSpaceId: S.String }).pipe(T.all(T.Http({ method: "POST", uri: "/BatchGetPentests" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "BatchGetPentestsInput",
});
export const BatchGetPentestsOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    pentests: S.optional(PentestList),
    notFound: S.optional(PentestIdList),
})).annotate({
    identifier: "BatchGetPentestsOutput",
});
export const MembershipType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const UserRole = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const UserConfig = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ role: S.optional(UserRole) })).annotate({ identifier: "UserConfig" });
export const MembershipConfig = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ user: UserConfig }),
]);
export const CreateMembershipRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String,
    agentSpaceId: S.String,
    membershipId: S.String,
    memberType: MembershipType,
    config: S.optional(MembershipConfig),
}).pipe(T.all(T.Http({ method: "POST", uri: "/CreateMembership" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateMembershipRequest",
});
export const CreateMembershipResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "CreateMembershipResponse",
});
export const CreatePentestInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    title: S.String,
    agentSpaceId: S.String,
    assets: S.optional(Assets),
    excludeRiskTypes: S.optional(RiskTypeList),
    serviceRole: S.optional(S.String),
    logConfig: S.optional(CloudWatchLog),
    vpcConfig: S.optional(VpcConfig),
    networkTrafficConfig: S.optional(NetworkTrafficConfig),
    codeRemediationStrategy: S.optional(CodeRemediationStrategy),
}).pipe(T.all(T.Http({ method: "POST", uri: "/CreatePentest" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreatePentestInput",
});
export const CreatePentestOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    pentestId: S.optional(S.String),
    title: S.optional(S.String),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    updatedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    assets: S.optional(Assets),
    excludeRiskTypes: S.optional(RiskTypeList),
    serviceRole: S.optional(S.String),
    logConfig: S.optional(CloudWatchLog),
    agentSpaceId: S.optional(S.String),
})).annotate({
    identifier: "CreatePentestOutput",
});
export const DeleteArtifactInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ agentSpaceId: S.String, artifactId: S.String }).pipe(T.all(T.Http({ method: "POST", uri: "/DeleteArtifact" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteArtifactInput",
});
export const DeleteArtifactOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteArtifactOutput",
});
export const DeleteMembershipRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String,
    agentSpaceId: S.String,
    membershipId: S.String,
    memberType: S.optional(MembershipType),
}).pipe(T.all(T.Http({ method: "POST", uri: "/DeleteMembership" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteMembershipRequest",
});
export const DeleteMembershipResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteMembershipResponse",
});
export const GetArtifactInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ agentSpaceId: S.String, artifactId: S.String }).pipe(T.all(T.Http({ method: "POST", uri: "/GetArtifact" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetArtifactInput",
});
export const Artifact = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ contents: S.String, type: ArtifactType })).annotate({ identifier: "Artifact" });
export const GetArtifactOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    agentSpaceId: S.String,
    artifactId: S.String,
    artifact: Artifact,
    fileName: S.String,
    updatedAt: T.DateFromString.pipe(T.TimestampFormat("date-time")),
})).annotate({
    identifier: "GetArtifactOutput",
});
export const Provider = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const InitiateProviderRegistrationInput = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ provider: Provider }).pipe(T.all(T.Http({ method: "POST", uri: "/oauth2/provider/register" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "InitiateProviderRegistrationInput",
});
export const InitiateProviderRegistrationOutput = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ redirectTo: S.String, csrfState: S.String })).annotate({
    identifier: "InitiateProviderRegistrationOutput",
});
export const ListArtifactsInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    agentSpaceId: S.String,
    nextToken: S.optional(S.String),
    maxResults: S.optional(S.Number),
}).pipe(T.all(T.Http({ method: "POST", uri: "/ListArtifacts" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListArtifactsInput",
});
export const ArtifactSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    artifactId: S.String,
    fileName: S.String,
    artifactType: ArtifactType,
})).annotate({
    identifier: "ArtifactSummary",
});
export const ArtifactSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ArtifactSummary);
export const ListArtifactsOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    artifactSummaries: ArtifactSummaryList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListArtifactsOutput",
});
export const ListDiscoveredEndpointsInput = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    maxResults: S.optional(S.Number),
    pentestJobId: S.String,
    agentSpaceId: S.String,
    prefix: S.optional(S.String),
    nextToken: S.optional(S.String),
}).pipe(T.all(T.Http({ method: "POST", uri: "/ListDiscoveredEndpoints" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListDiscoveredEndpointsInput",
});
export const DiscoveredEndpoint = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    uri: S.String,
    pentestJobId: S.String,
    taskId: S.String,
    agentSpaceId: S.String,
    evidence: S.optional(S.String),
    operation: S.optional(S.String),
    description: S.optional(S.String),
})).annotate({
    identifier: "DiscoveredEndpoint",
});
export const DiscoveredEndpointList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(DiscoveredEndpoint);
export const ListDiscoveredEndpointsOutput = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    discoveredEndpoints: S.optional(DiscoveredEndpointList),
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListDiscoveredEndpointsOutput",
});
export const ListFindingsInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    maxResults: S.optional(S.Number),
    pentestJobId: S.String,
    agentSpaceId: S.String,
    nextToken: S.optional(S.String),
    riskType: S.optional(S.String),
    riskLevel: S.optional(RiskLevel),
    status: S.optional(FindingStatus),
    confidence: S.optional(ConfidenceLevel),
    name: S.optional(S.String),
}).pipe(T.all(T.Http({ method: "POST", uri: "/ListFindings" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListFindingsInput",
});
export const FindingSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    findingId: S.String,
    agentSpaceId: S.String,
    pentestId: S.optional(S.String),
    pentestJobId: S.optional(S.String),
    name: S.optional(S.String),
    status: S.optional(FindingStatus),
    riskType: S.optional(S.String),
    riskLevel: S.optional(RiskLevel),
    confidence: S.optional(ConfidenceLevel),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    updatedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({ identifier: "FindingSummary" });
export const FindingSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(FindingSummary);
export const ListFindingsOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    findingsSummaries: S.optional(FindingSummaryList),
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListFindingsOutput",
});
export const ResourceType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const ListIntegratedResourcesInput = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    agentSpaceId: S.String,
    integrationId: S.optional(S.String),
    resourceType: S.optional(ResourceType),
    nextToken: S.optional(S.String),
    maxResults: S.optional(S.Number),
}).pipe(T.all(T.Http({ method: "POST", uri: "/ListIntegratedResources" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListIntegratedResourcesInput",
});
export const AccessType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const GitHubRepositoryMetadata = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    name: S.String,
    providerResourceId: S.String,
    owner: S.String,
    accessType: S.optional(AccessType),
})).annotate({
    identifier: "GitHubRepositoryMetadata",
});
export const IntegratedResourceMetadata = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ githubRepository: GitHubRepositoryMetadata }),
]);
export const GitHubResourceCapabilities = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    leaveComments: S.optional(S.Boolean),
    remediateCode: S.optional(S.Boolean),
})).annotate({
    identifier: "GitHubResourceCapabilities",
});
export const ProviderResourceCapabilities = /*@__PURE__*/ /*#__PURE__*/ S.Union([S.Struct({ github: GitHubResourceCapabilities })]);
export const IntegratedResourceSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    integrationId: S.String,
    resource: IntegratedResourceMetadata,
    capabilities: S.optional(ProviderResourceCapabilities),
})).annotate({
    identifier: "IntegratedResourceSummary",
});
export const IntegratedResourceSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(IntegratedResourceSummary);
export const ListIntegratedResourcesOutput = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    integratedResourceSummaries: IntegratedResourceSummaryList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListIntegratedResourcesOutput",
});
export const MembershipTypeFilter = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const ListMembershipsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String,
    agentSpaceId: S.String,
    memberType: S.optional(MembershipTypeFilter),
    maxResults: S.optional(S.Number),
    nextToken: S.optional(S.String),
}).pipe(T.all(T.Http({ method: "POST", uri: "/ListMemberships" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListMembershipsRequest",
});
export const UserMetadata = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ username: S.String, email: S.String })).annotate({ identifier: "UserMetadata" });
export const MemberMetadata = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ user: UserMetadata }),
]);
export const MembershipSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    membershipId: S.String,
    applicationId: S.String,
    agentSpaceId: S.String,
    memberType: MembershipType,
    config: S.optional(MembershipConfig),
    metadata: S.optional(MemberMetadata),
    createdAt: T.DateFromString.pipe(T.TimestampFormat("date-time")),
    updatedAt: T.DateFromString.pipe(T.TimestampFormat("date-time")),
    createdBy: S.String,
    updatedBy: S.String,
})).annotate({
    identifier: "MembershipSummary",
});
export const MembershipSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(MembershipSummary);
export const ListMembershipsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    membershipSummaries: MembershipSummaryList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListMembershipsResponse",
});
export const ListPentestJobsForPentestInput = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    maxResults: S.optional(S.Number),
    pentestId: S.String,
    agentSpaceId: S.String,
    nextToken: S.optional(S.String),
}).pipe(T.all(T.Http({ method: "POST", uri: "/ListPentestJobsForPentest" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListPentestJobsForPentestInput",
});
export const PentestJobSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    pentestJobId: S.String,
    pentestId: S.String,
    title: S.optional(S.String),
    status: S.optional(JobStatus),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    updatedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({
    identifier: "PentestJobSummary",
});
export const PentestJobSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(PentestJobSummary);
export const ListPentestJobsForPentestOutput = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    pentestJobSummaries: S.optional(PentestJobSummaryList),
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListPentestJobsForPentestOutput",
});
export const ListPentestJobTasksInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    agentSpaceId: S.String,
    maxResults: S.optional(S.Number),
    pentestJobId: S.optional(S.String),
    stepName: S.optional(StepName),
    categoryName: S.optional(S.String),
    nextToken: S.optional(S.String),
}).pipe(T.all(T.Http({ method: "POST", uri: "/ListPentestJobTasks" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListPentestJobTasksInput",
});
export const TaskSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    taskId: S.String,
    pentestId: S.optional(S.String),
    pentestJobId: S.optional(S.String),
    agentSpaceId: S.optional(S.String),
    title: S.optional(S.String),
    riskType: S.optional(RiskType),
    executionStatus: S.optional(TaskExecutionStatus),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    updatedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({ identifier: "TaskSummary" });
export const TaskSummaryList = /*@__PURE__*/ /*#__PURE__*/ S.Array(TaskSummary);
export const ListPentestJobTasksOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    taskSummaries: S.optional(TaskSummaryList),
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListPentestJobTasksOutput",
});
export const ListPentestsInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    maxResults: S.optional(S.Number),
    nextToken: S.optional(S.String),
    agentSpaceId: S.String,
}).pipe(T.all(T.Http({ method: "POST", uri: "/ListPentests" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListPentestsInput",
});
export const PentestSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    pentestId: S.String,
    agentSpaceId: S.String,
    title: S.String,
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    updatedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({ identifier: "PentestSummary" });
export const PentestSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(PentestSummary);
export const ListPentestsOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    pentestSummaries: S.optional(PentestSummaryList),
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListPentestsOutput",
});
export const ListTagsForResourceInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ resourceArn: S.String.pipe(T.HttpLabel("resourceArn")) }).pipe(T.all(T.Http({ method: "GET", uri: "/tags/{resourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListTagsForResourceInput",
});
export const TagMap = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const ListTagsForResourceOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ tags: S.optional(TagMap) })).annotate({
    identifier: "ListTagsForResourceOutput",
});
export const StartCodeRemediationInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    agentSpaceId: S.String,
    pentestJobId: S.String,
    findingIds: FindingIdList,
}).pipe(T.all(T.Http({ method: "POST", uri: "/StartCodeRemediation" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "StartCodeRemediationInput",
});
export const StartCodeRemediationOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "StartCodeRemediationOutput",
});
export const StartPentestJobInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ agentSpaceId: S.String, pentestId: S.String }).pipe(T.all(T.Http({ method: "POST", uri: "/StartPentestJob" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "StartPentestJobInput",
});
export const StartPentestJobOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    title: S.optional(S.String),
    status: S.optional(JobStatus),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    updatedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    pentestId: S.optional(S.String),
    pentestJobId: S.optional(S.String),
    agentSpaceId: S.optional(S.String),
})).annotate({
    identifier: "StartPentestJobOutput",
});
export const StopPentestJobInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ agentSpaceId: S.String, pentestJobId: S.String }).pipe(T.all(T.Http({ method: "POST", uri: "/StopPentestJob" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "StopPentestJobInput",
});
export const StopPentestJobOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "StopPentestJobOutput",
});
export const TagResourceInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    resourceArn: S.String.pipe(T.HttpLabel("resourceArn")),
    tags: TagMap,
}).pipe(T.all(T.Http({ method: "POST", uri: "/tags/{resourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "TagResourceInput",
});
export const TagResourceOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "TagResourceOutput",
});
export const TagKeyList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const UntagResourceInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    resourceArn: S.String.pipe(T.HttpLabel("resourceArn")),
    tagKeys: TagKeyList.pipe(T.HttpQuery("tagKeys")),
}).pipe(T.all(T.Http({ method: "DELETE", uri: "/tags/{resourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UntagResourceInput",
});
export const UntagResourceOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "UntagResourceOutput",
});
export const UpdateFindingInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    findingId: S.String,
    agentSpaceId: S.String,
    riskLevel: S.optional(RiskLevel),
    status: S.optional(FindingStatus),
}).pipe(T.all(T.Http({ method: "POST", uri: "/UpdateFinding" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateFindingInput",
});
export const UpdateFindingOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "UpdateFindingOutput",
});
export const GitHubRepositoryResource = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ name: S.String, owner: S.String })).annotate({
    identifier: "GitHubRepositoryResource",
});
export const IntegratedResource = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ githubRepository: GitHubRepositoryResource }),
]);
export const IntegratedResourceInputItem = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    resource: IntegratedResource,
    capabilities: S.optional(ProviderResourceCapabilities),
})).annotate({
    identifier: "IntegratedResourceInputItem",
});
export const IntegratedResourceInputItemList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(IntegratedResourceInputItem);
export const UpdateIntegratedResourcesInput = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    agentSpaceId: S.String,
    integrationId: S.String,
    items: IntegratedResourceInputItemList,
}).pipe(T.all(T.Http({ method: "POST", uri: "/UpdateIntegratedResources" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateIntegratedResourcesInput",
});
export const UpdateIntegratedResourcesOutput = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "UpdateIntegratedResourcesOutput",
});
export const UpdatePentestInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    pentestId: S.String,
    agentSpaceId: S.String,
    title: S.optional(S.String),
    assets: S.optional(Assets),
    excludeRiskTypes: S.optional(RiskTypeList),
    serviceRole: S.optional(S.String),
    logConfig: S.optional(CloudWatchLog),
    vpcConfig: S.optional(VpcConfig),
    networkTrafficConfig: S.optional(NetworkTrafficConfig),
    codeRemediationStrategy: S.optional(CodeRemediationStrategy),
}).pipe(T.all(T.Http({ method: "POST", uri: "/UpdatePentest" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdatePentestInput",
});
export const UpdatePentestOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    pentestId: S.optional(S.String),
    title: S.optional(S.String),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    updatedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    assets: S.optional(Assets),
    excludeRiskTypes: S.optional(RiskTypeList),
    serviceRole: S.optional(S.String),
    logConfig: S.optional(CloudWatchLog),
    agentSpaceId: S.optional(S.String),
})).annotate({
    identifier: "UpdatePentestOutput",
});
export const VerifyTargetDomainInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ targetDomainId: S.String }).pipe(T.all(T.Http({ method: "POST", uri: "/VerifyTargetDomain" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "VerifyTargetDomainInput",
});
export const TargetDomainStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const VerifyTargetDomainOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    targetDomainId: S.optional(S.String),
    domainName: S.optional(S.String),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    updatedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    verifiedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    status: S.optional(TargetDomainStatus),
})).annotate({
    identifier: "VerifyTargetDomainOutput",
});
export const VpcConfigs = /*@__PURE__*/ /*#__PURE__*/ S.Array(VpcConfig);
export const LogGroupArns = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const S3BucketArns = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const SecretArns = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const LambdaFunctionArns = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const IamRoles = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const AWSResources = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    vpcs: S.optional(VpcConfigs),
    logGroups: S.optional(LogGroupArns),
    s3Buckets: S.optional(S3BucketArns),
    secretArns: S.optional(SecretArns),
    lambdaFunctionArns: S.optional(LambdaFunctionArns),
    iamRoles: S.optional(IamRoles),
})).annotate({ identifier: "AWSResources" });
export const TargetDomainIdList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const CodeReviewSettings = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ controlsScanning: S.Boolean, generalPurposeScanning: S.Boolean })).annotate({
    identifier: "CodeReviewSettings",
});
export const CreateAgentSpaceInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    name: S.String,
    description: S.optional(S.String),
    awsResources: S.optional(AWSResources),
    targetDomainIds: S.optional(TargetDomainIdList),
    codeReviewSettings: S.optional(CodeReviewSettings),
    kmsKeyId: S.optional(S.String),
    tags: S.optional(TagMap),
}).pipe(T.all(T.Http({ method: "POST", uri: "/CreateAgentSpace" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateAgentSpaceInput",
});
export const CreateAgentSpaceOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    agentSpaceId: S.String,
    name: S.String,
    description: S.optional(S.String),
    awsResources: S.optional(AWSResources),
    targetDomainIds: S.optional(TargetDomainIdList),
    codeReviewSettings: S.optional(CodeReviewSettings),
    kmsKeyId: S.optional(S.String),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    updatedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({
    identifier: "CreateAgentSpaceOutput",
});
export const UpdateAgentSpaceInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    agentSpaceId: S.String,
    name: S.optional(S.String),
    description: S.optional(S.String),
    awsResources: S.optional(AWSResources),
    targetDomainIds: S.optional(TargetDomainIdList),
    codeReviewSettings: S.optional(CodeReviewSettings),
}).pipe(T.all(T.Http({ method: "POST", uri: "/UpdateAgentSpace" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateAgentSpaceInput",
});
export const UpdateAgentSpaceOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    agentSpaceId: S.String,
    name: S.String,
    description: S.optional(S.String),
    awsResources: S.optional(AWSResources),
    targetDomainIds: S.optional(TargetDomainIdList),
    codeReviewSettings: S.optional(CodeReviewSettings),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    updatedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({
    identifier: "UpdateAgentSpaceOutput",
});
export const DeleteAgentSpaceInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ agentSpaceId: S.String }).pipe(T.all(T.Http({ method: "POST", uri: "/DeleteAgentSpace" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteAgentSpaceInput",
});
export const DeleteAgentSpaceOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ agentSpaceId: S.optional(S.String) })).annotate({
    identifier: "DeleteAgentSpaceOutput",
});
export const ListAgentSpacesInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String),
    maxResults: S.optional(S.Number),
}).pipe(T.all(T.Http({ method: "POST", uri: "/ListAgentSpaces" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListAgentSpacesInput",
});
export const AgentSpaceSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    agentSpaceId: S.String,
    name: S.String,
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    updatedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({
    identifier: "AgentSpaceSummary",
});
export const AgentSpaceSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(AgentSpaceSummary);
export const ListAgentSpacesOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    agentSpaceSummaries: S.optional(AgentSpaceSummaryList),
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListAgentSpacesOutput",
});
export const AgentSpaceIdList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const BatchGetAgentSpacesInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ agentSpaceIds: AgentSpaceIdList }).pipe(T.all(T.Http({ method: "POST", uri: "/BatchGetAgentSpaces" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "BatchGetAgentSpacesInput",
});
export const AgentSpace = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    agentSpaceId: S.String,
    name: S.String,
    description: S.optional(S.String),
    awsResources: S.optional(AWSResources),
    targetDomainIds: S.optional(TargetDomainIdList),
    codeReviewSettings: S.optional(CodeReviewSettings),
    kmsKeyId: S.optional(S.String),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    updatedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({ identifier: "AgentSpace" });
export const AgentSpaceList = /*@__PURE__*/ /*#__PURE__*/ S.Array(AgentSpace);
export const BatchGetAgentSpacesOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    agentSpaces: S.optional(AgentSpaceList),
    notFound: S.optional(AgentSpaceIdList),
})).annotate({
    identifier: "BatchGetAgentSpacesOutput",
});
export const CreateApplicationRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    idcInstanceArn: S.optional(S.String),
    roleArn: S.optional(S.String),
    defaultKmsKeyId: S.optional(S.String),
    tags: S.optional(TagMap),
}).pipe(T.all(T.Http({ method: "POST", uri: "/CreateApplication" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateApplicationRequest",
});
export const CreateApplicationResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ applicationId: S.String })).annotate({
    identifier: "CreateApplicationResponse",
});
export const GetApplicationRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ applicationId: S.String }).pipe(T.all(T.Http({ method: "POST", uri: "/GetApplication" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetApplicationRequest",
});
export const IdCConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    idcApplicationArn: S.optional(S.String),
    idcInstanceArn: S.optional(S.String),
})).annotate({
    identifier: "IdCConfiguration",
});
export const GetApplicationResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String,
    domain: S.String,
    applicationName: S.optional(S.String),
    idcConfiguration: S.optional(IdCConfiguration),
    roleArn: S.optional(S.String),
    defaultKmsKeyId: S.optional(S.String),
})).annotate({
    identifier: "GetApplicationResponse",
});
export const UpdateApplicationRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String,
    roleArn: S.optional(S.String),
    defaultKmsKeyId: S.optional(S.String),
}).pipe(T.all(T.Http({ method: "POST", uri: "/UpdateApplication" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateApplicationRequest",
});
export const UpdateApplicationResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ applicationId: S.String })).annotate({
    identifier: "UpdateApplicationResponse",
});
export const DeleteApplicationRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ applicationId: S.String }).pipe(T.all(T.Http({ method: "POST", uri: "/DeleteApplication" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteApplicationRequest",
});
export const DeleteApplicationResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteApplicationResponse",
});
export const ListApplicationsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String),
    maxResults: S.optional(S.Number),
}).pipe(T.all(T.Http({ method: "POST", uri: "/ListApplications" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListApplicationsRequest",
});
export const ApplicationSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String,
    applicationName: S.String,
    domain: S.String,
    defaultKmsKeyId: S.optional(S.String),
})).annotate({
    identifier: "ApplicationSummary",
});
export const ApplicationSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ApplicationSummary);
export const ListApplicationsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationSummaries: ApplicationSummaryList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListApplicationsResponse",
});
export const GitHubIntegrationInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    code: S.String,
    state: S.String,
    organizationName: S.optional(S.String),
})).annotate({
    identifier: "GitHubIntegrationInput",
});
export const ProviderInput = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ github: GitHubIntegrationInput }),
]);
export const CreateIntegrationInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    provider: Provider,
    input: ProviderInput,
    integrationDisplayName: S.String,
    kmsKeyId: S.optional(S.String),
    tags: S.optional(TagMap),
}).pipe(T.all(T.Http({ method: "POST", uri: "/CreateIntegration" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateIntegrationInput",
});
export const CreateIntegrationOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ integrationId: S.String })).annotate({
    identifier: "CreateIntegrationOutput",
});
export const GetIntegrationInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ integrationId: S.String }).pipe(T.all(T.Http({ method: "POST", uri: "/GetIntegration" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetIntegrationInput",
});
export const ProviderType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const GetIntegrationOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    integrationId: S.String,
    installationId: S.String,
    provider: Provider,
    providerType: ProviderType,
    displayName: S.optional(S.String),
    kmsKeyId: S.optional(S.String),
})).annotate({
    identifier: "GetIntegrationOutput",
});
export const DeleteIntegrationInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ integrationId: S.String }).pipe(T.all(T.Http({ method: "POST", uri: "/DeleteIntegration" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteIntegrationInput",
});
export const DeleteIntegrationOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteIntegrationOutput",
});
export const IntegrationFilter = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ provider: Provider }),
    S.Struct({ providerType: ProviderType }),
]);
export const ListIntegrationsInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    filter: S.optional(IntegrationFilter),
    nextToken: S.optional(S.String),
    maxResults: S.optional(S.Number),
}).pipe(T.all(T.Http({ method: "POST", uri: "/ListIntegrations" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListIntegrationsInput",
});
export const IntegrationSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    integrationId: S.String,
    installationId: S.String,
    provider: Provider,
    providerType: ProviderType,
    displayName: S.String,
})).annotate({
    identifier: "IntegrationSummary",
});
export const IntegrationSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(IntegrationSummary);
export const ListIntegrationsOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    integrationSummaries: IntegrationSummaryList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListIntegrationsOutput",
});
export const DomainVerificationMethod = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const CreateTargetDomainInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    targetDomainName: S.String,
    verificationMethod: DomainVerificationMethod,
    tags: S.optional(TagMap),
}).pipe(T.all(T.Http({ method: "POST", uri: "/CreateTargetDomain" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateTargetDomainInput",
});
export const DNSRecordType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const DnsVerification = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    token: S.optional(S.String),
    dnsRecordName: S.optional(S.String),
    dnsRecordType: S.optional(DNSRecordType),
})).annotate({
    identifier: "DnsVerification",
});
export const HttpVerification = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ token: S.optional(S.String), routePath: S.optional(S.String) })).annotate({
    identifier: "HttpVerification",
});
export const VerificationDetails = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    method: S.optional(DomainVerificationMethod),
    dnsTxt: S.optional(DnsVerification),
    httpRoute: S.optional(HttpVerification),
})).annotate({
    identifier: "VerificationDetails",
});
export const CreateTargetDomainOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    targetDomainId: S.String,
    domainName: S.String,
    verificationStatus: TargetDomainStatus,
    verificationDetails: S.optional(VerificationDetails),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    verifiedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({
    identifier: "CreateTargetDomainOutput",
});
export const UpdateTargetDomainInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    targetDomainId: S.String,
    verificationMethod: DomainVerificationMethod,
}).pipe(T.all(T.Http({ method: "POST", uri: "/UpdateTargetDomain" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateTargetDomainInput",
});
export const UpdateTargetDomainOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    targetDomainId: S.String,
    domainName: S.String,
    verificationStatus: TargetDomainStatus,
    verificationDetails: S.optional(VerificationDetails),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    verifiedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({
    identifier: "UpdateTargetDomainOutput",
});
export const DeleteTargetDomainInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ targetDomainId: S.String }).pipe(T.all(T.Http({ method: "POST", uri: "/DeleteTargetDomain" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteTargetDomainInput",
});
export const DeleteTargetDomainOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ targetDomainId: S.optional(S.String) })).annotate({
    identifier: "DeleteTargetDomainOutput",
});
export const ListTargetDomainsInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String),
    maxResults: S.optional(S.Number),
}).pipe(T.all(T.Http({ method: "POST", uri: "/ListTargetDomains" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListTargetDomainsInput",
});
export const TargetDomainSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    targetDomainId: S.String,
    domainName: S.String,
    verificationStatus: S.optional(TargetDomainStatus),
})).annotate({
    identifier: "TargetDomainSummary",
});
export const TargetDomainSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(TargetDomainSummary);
export const ListTargetDomainsOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    targetDomainSummaries: S.optional(TargetDomainSummaryList),
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListTargetDomainsOutput",
});
export const BatchGetTargetDomainsInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ targetDomainIds: TargetDomainIdList }).pipe(T.all(T.Http({ method: "POST", uri: "/BatchGetTargetDomains" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "BatchGetTargetDomainsInput",
});
export const TargetDomain = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    targetDomainId: S.String,
    domainName: S.String,
    verificationStatus: S.optional(TargetDomainStatus),
    verificationDetails: S.optional(VerificationDetails),
    createdAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    verifiedAt: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({ identifier: "TargetDomain" });
export const TargetDomainList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(TargetDomain);
export const BatchGetTargetDomainsOutput = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    targetDomains: S.optional(TargetDomainList),
    notFound: S.optional(TargetDomainIdList),
})).annotate({
    identifier: "BatchGetTargetDomainsOutput",
});
//# Errors
export class AccessDeniedException extends S.TaggedErrorClass()("AccessDeniedException", { message: S.String }).pipe(C.withAuthError) {
}
export class InternalServerException extends S.TaggedErrorClass()("InternalServerException", { message: S.String }).pipe(C.withServerError) {
}
export class ResourceNotFoundException extends S.TaggedErrorClass()("ResourceNotFoundException", { message: S.String }).pipe(C.withBadRequestError) {
}
export class ThrottlingException extends S.TaggedErrorClass()("ThrottlingException", {
    message: S.String,
    serviceCode: S.optional(S.String),
    quotaCode: S.optional(S.String),
}).pipe(C.withThrottlingError) {
}
export class ValidationException extends S.TaggedErrorClass()("ValidationException", { message: S.String, fieldList: S.optional(ValidationExceptionFieldList) }) {
}
export class ConflictException extends S.TaggedErrorClass()("ConflictException", { message: S.String }).pipe(C.withConflictError) {
}
/**
 * Adds an Artifact for the given agent space
 */
export const addArtifact = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: AddArtifactInput,
    output: AddArtifactOutput,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Deletes multiple pentests in a single request
 */
export const batchDeletePentests = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: BatchDeletePentestsInput,
    output: BatchDeletePentestsOutput,
    errors: [],
}));
/**
 * Retrieve the list of artifact metadata for the given agent space
 */
export const batchGetArtifactMetadata = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: BatchGetArtifactMetadataInput,
    output: BatchGetArtifactMetadataOutput,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Retrieves multiple findings in a single request
 */
export const batchGetFindings = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: BatchGetFindingsInput,
    output: BatchGetFindingsOutput,
    errors: [],
}));
/**
 * Retrieves multiple pentest jobs in a single request
 */
export const batchGetPentestJobs = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: BatchGetPentestJobsInput,
    output: BatchGetPentestJobsOutput,
    errors: [],
}));
/**
 * Retrieves multiple tasks for a pentest job in a single request
 */
export const batchGetPentestJobTasks = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: BatchGetPentestJobTasksInput,
    output: BatchGetPentestJobTasksOutput,
    errors: [],
}));
/**
 * Retrieves multiple pentests in a single request
 */
export const batchGetPentests = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: BatchGetPentestsInput,
    output: BatchGetPentestsOutput,
    errors: [],
}));
/**
 * Adds a single member to an agent space with specified role
 */
export const createMembership = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateMembershipRequest,
    output: CreateMembershipResponse,
    errors: [],
}));
/**
 * Creates a new pentest configuration
 */
export const createPentest = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreatePentestInput,
    output: CreatePentestOutput,
    errors: [],
}));
/**
 * Delete an Artifact from the given agent space
 */
export const deleteArtifact = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteArtifactInput,
    output: DeleteArtifactOutput,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Removes a single member associated to an agent space
 */
export const deleteMembership = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteMembershipRequest,
    output: DeleteMembershipResponse,
    errors: [],
}));
/**
 * Retrieve an Artifact for the given agent space
 */
export const getArtifact = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetArtifactInput,
    output: GetArtifactOutput,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Initiates the registration of Security Agent App for an external Provider
 */
export const initiateProviderRegistration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: InitiateProviderRegistrationInput,
    output: InitiateProviderRegistrationOutput,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Lists the artifacts for the associated agent space
 */
export const listArtifacts = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListArtifactsInput,
    output: ListArtifactsOutput,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "artifactSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Lists discovered endpoints associated with a pentest job with optional URI prefix filtering
 */
export const listDiscoveredEndpoints = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListDiscoveredEndpointsInput,
    output: ListDiscoveredEndpointsOutput,
    errors: [],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "discoveredEndpoints",
        pageSize: "maxResults",
    },
}));
/**
 * Lists findings with filtering and pagination support. When filters are applied, the actual number of results returned may be less than the specified limit
 */
export const listFindings = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListFindingsInput,
    output: ListFindingsOutput,
    errors: [],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "findingsSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Lists the integrated resources for an agent space
 */
export const listIntegratedResources = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListIntegratedResourcesInput,
    output: ListIntegratedResourcesOutput,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "integratedResourceSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Lists all members associated to an agent space with pagination support
 */
export const listMemberships = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListMembershipsRequest,
    output: ListMembershipsResponse,
    errors: [],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "membershipSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Lists pentest jobs associated with a pentest
 */
export const listPentestJobsForPentest = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListPentestJobsForPentestInput,
    output: ListPentestJobsForPentestOutput,
    errors: [],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "pentestJobSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Lists tasks associated with a specific pentest job
 */
export const listPentestJobTasks = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListPentestJobTasksInput,
    output: ListPentestJobTasksOutput,
    errors: [],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "taskSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Lists pentests with optional filtering by status
 */
export const listPentests = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListPentestsInput,
    output: ListPentestsOutput,
    errors: [],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "pentestSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Lists tags for a Security Agent resource
 */
export const listTagsForResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: ListTagsForResourceInput,
    output: ListTagsForResourceOutput,
    errors: [],
}));
/**
 * Starts code remediation for the specified findings
 */
export const startCodeRemediation = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: StartCodeRemediationInput,
    output: StartCodeRemediationOutput,
    errors: [],
}));
/**
 * Initiates the execution of a pentest
 */
export const startPentestJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: StartPentestJobInput,
    output: StartPentestJobOutput,
    errors: [],
}));
/**
 * Stops the execution of a running pentest
 */
export const stopPentestJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: StopPentestJobInput,
    output: StopPentestJobOutput,
    errors: [],
}));
/**
 * Adds tags to a Security Agent resource
 */
export const tagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: TagResourceInput,
    output: TagResourceOutput,
    errors: [],
}));
/**
 * Removes tags from a Security Agent resource
 */
export const untagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UntagResourceInput,
    output: UntagResourceOutput,
    errors: [],
}));
/**
 * Updates an existing security finding with new details or status
 */
export const updateFinding = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateFindingInput,
    output: UpdateFindingOutput,
    errors: [],
}));
/**
 * Updates the integrated resources for an agent space
 */
export const updateIntegratedResources = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateIntegratedResourcesInput,
    output: UpdateIntegratedResourcesOutput,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Updates an existing pentest with new configuration or settings
 */
export const updatePentest = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdatePentestInput,
    output: UpdatePentestOutput,
    errors: [],
}));
/**
 * Verifies ownership for a registered target domain
 */
export const verifyTargetDomain = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: VerifyTargetDomainInput,
    output: VerifyTargetDomainOutput,
    errors: [],
}));
/**
 * Creates an agent space record
 */
export const createAgentSpace = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateAgentSpaceInput,
    output: CreateAgentSpaceOutput,
    errors: [],
}));
/**
 * Updates an agent space record
 */
export const updateAgentSpace = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateAgentSpaceInput,
    output: UpdateAgentSpaceOutput,
    errors: [],
}));
/**
 * Deletes an agent space record
 */
export const deleteAgentSpace = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteAgentSpaceInput,
    output: DeleteAgentSpaceOutput,
    errors: [],
}));
/**
 * Lists agent spaces
 */
export const listAgentSpaces = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListAgentSpacesInput,
    output: ListAgentSpacesOutput,
    errors: [],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "agentSpaceSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Retrieves multiple agent spaces in a single request
 */
export const batchGetAgentSpaces = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: BatchGetAgentSpacesInput,
    output: BatchGetAgentSpacesOutput,
    errors: [],
}));
/**
 * Creates a new application
 */
export const createApplication = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateApplicationRequest,
    output: CreateApplicationResponse,
    errors: [],
}));
/**
 * Retrieves application details by application ID
 */
export const getApplication = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetApplicationRequest,
    output: GetApplicationResponse,
    errors: [],
}));
/**
 * Updates application configuration
 */
export const updateApplication = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateApplicationRequest,
    output: UpdateApplicationResponse,
    errors: [],
}));
/**
 * Deletes an application
 */
export const deleteApplication = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteApplicationRequest,
    output: DeleteApplicationResponse,
    errors: [],
}));
/**
 * Lists all applications in the account
 */
export const listApplications = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListApplicationsRequest,
    output: ListApplicationsResponse,
    errors: [],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "applicationSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Creates the Integration of the Security Agent App with an external Provider
 */
export const createIntegration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateIntegrationInput,
    output: CreateIntegrationOutput,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Gets Integration metadata from the provided id
 */
export const getIntegration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetIntegrationInput,
    output: GetIntegrationOutput,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Deletes the Integration of the Security Agent App with an external Provider
 */
export const deleteIntegration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteIntegrationInput,
    output: DeleteIntegrationOutput,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Retrieves the Integrations associated with the user's account
 */
export const listIntegrations = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListIntegrationsInput,
    output: ListIntegrationsOutput,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "integrationSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Creates a target domain record
 */
export const createTargetDomain = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateTargetDomainInput,
    output: CreateTargetDomainOutput,
    errors: [],
}));
/**
 * Updates a target domain record
 */
export const updateTargetDomain = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateTargetDomainInput,
    output: UpdateTargetDomainOutput,
    errors: [],
}));
/**
 * Deletes a target domain record
 */
export const deleteTargetDomain = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteTargetDomainInput,
    output: DeleteTargetDomainOutput,
    errors: [],
}));
/**
 * Lists target domains
 */
export const listTargetDomains = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListTargetDomainsInput,
    output: ListTargetDomainsOutput,
    errors: [],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "targetDomainSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Retrieves multiple target domains in a single request
 */
export const batchGetTargetDomains = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: BatchGetTargetDomainsInput,
    output: BatchGetTargetDomainsOutput,
    errors: [],
}));
//# sourceMappingURL=securityagent.js.map