export interface CloudWatchLogDestination {
    /** The name of the CloudWatch Logs group to send pipeline logs to. You can specify an existing log group or create a new one. For example, /aws/vendedlogs/OpenSearchService/pipelines. */
    LogGroup: string;
}
export interface LogPublishingOptions {
    /** Whether logs should be published. */
    IsLoggingEnabled?: boolean;
    /** The destination for OpenSearch Ingestion logs sent to Amazon CloudWatch Logs. This parameter is required if IsLoggingEnabled is set to true. */
    CloudWatchLogDestination?: CloudWatchLogDestination;
}
export interface VpcAttachmentOptions {
    /** Whether a VPC is attached to the pipeline. */
    AttachToVpc: boolean;
    /** The CIDR block to be reserved for OpenSearch Ingestion to create elastic network interfaces (ENIs). */
    CidrBlock?: string;
}
export interface VpcOptions {
    /** A list of subnet IDs associated with the VPC endpoint. */
    SubnetIds: string[];
    /** A list of security groups associated with the VPC endpoint. */
    SecurityGroupIds?: string[];
    /** Options for attaching a VPC to a pipeline. */
    VpcAttachmentOptions?: VpcAttachmentOptions;
    /** Defines whether you or Amazon OpenSearch Ingestion service create and manage the VPC endpoint configured for the pipeline. */
    VpcEndpointManagement?: 'CUSTOMER' | 'SERVICE';
}
export interface BufferOptions {
    /** Whether persistent buffering should be enabled. */
    PersistentBufferEnabled: boolean;
}
export interface EncryptionAtRestOptions {
    /** The ARN of the KMS key used to encrypt buffer data. By default, data is encrypted using an Amazon Web Services owned key. */
    KmsKeyArn: string;
}
export interface Tag {
    /** The tag key. Tag keys must be unique for the pipeline to which they are attached. */
    Key: string;
    /** The value assigned to the corresponding tag key. Tag values can be null and don't have to be unique in a tag set. For example, you can have a key value pair in a tag set of project : Trinity and cost- */
    Value: string;
}
export interface PipelineEndpointVpcOptions {
    /** A list of subnet IDs where the pipeline endpoint network interfaces are created. */
    SubnetIds?: string[];
    /** A list of security group IDs that control network access to the pipeline endpoint. */
    SecurityGroupIds?: string[];
}
export interface CreatePipelineInput {
    /** The maximum pipeline capacity, in Ingestion Compute Units (ICUs). */
    MaxUnits: number;
    /** The minimum pipeline capacity, in Ingestion Compute Units (ICUs). */
    MinUnits: number;
    /** The pipeline configuration in YAML format. The command accepts the pipeline configuration as a string or within a .yaml file. If you provide the configuration as a string, each new line must be escape */
    PipelineConfigurationBody: string;
    /** The name of the OpenSearch Ingestion pipeline to create. Pipeline names are unique across the pipelines owned by an account within an Amazon Web Services Region. */
    PipelineName: string;
    /** Key-value pairs to configure persistent buffering for the pipeline. */
    BufferOptions?: BufferOptions;
    /** Key-value pairs to configure encryption for data that is written to a persistent buffer. */
    EncryptionAtRestOptions?: EncryptionAtRestOptions;
    /** Key-value pairs to configure log publishing. */
    LogPublishingOptions?: LogPublishingOptions;
    /** The Amazon Resource Name (ARN) of the IAM role that grants the pipeline permission to access Amazon Web Services resources. */
    PipelineRoleArn?: string;
    /** List of tags to add to the pipeline upon creation. */
    Tags?: Tag[];
    /** Container for the values required to configure VPC access for the pipeline. If you don't specify these values, OpenSearch Ingestion creates the pipeline with a public endpoint. */
    VpcOptions?: VpcOptions;
}
export interface CreatePipelineEndpointInput {
    /** The Amazon Resource Name (ARN) of the pipeline to create the endpoint for. */
    PipelineArn: string;
    /** Container for the VPC configuration for the pipeline endpoint, including subnet IDs and security group IDs. */
    VpcOptions: PipelineEndpointVpcOptions;
}
export interface DeletePipelineInput {
    /** The name of the pipeline to delete. */
    PipelineName: string;
}
export interface DeletePipelineEndpointInput {
    /** The unique identifier of the pipeline endpoint to delete. */
    EndpointId: string;
}
export interface DeleteResourcePolicyInput {
    /** The Amazon Resource Name (ARN) of the resource from which to delete the policy. */
    ResourceArn: string;
}
export interface GetPipelineInput {
    /** The name of the pipeline. */
    PipelineName: string;
}
export interface GetPipelineBlueprintInput {
    /** The name of the blueprint to retrieve. */
    BlueprintName: string;
    /** The format format of the blueprint to retrieve. */
    Format?: string;
}
export interface GetPipelineChangeProgressInput {
    /** The name of the pipeline. */
    PipelineName: string;
}
export interface GetResourcePolicyInput {
    /** The Amazon Resource Name (ARN) of the resource for which to retrieve the policy. */
    ResourceArn: string;
}
export interface ListPipelineEndpointConnectionsInput {
    /** The maximum number of pipeline endpoint connections to return in the response. */
    MaxResults?: number;
    /** If your initial ListPipelineEndpointConnections operation returns a nextToken, you can include the returned nextToken in subsequent ListPipelineEndpointConnections operations, which returns results in */
    NextToken?: string;
}
export interface ListPipelineEndpointsInput {
    /** The maximum number of pipeline endpoints to return in the response. */
    MaxResults?: number;
    /** If your initial ListPipelineEndpoints operation returns a NextToken, you can include the returned NextToken in subsequent ListPipelineEndpoints operations, which returns results in the next page. */
    NextToken?: string;
}
export interface ListPipelinesInput {
    /** An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results. */
    MaxResults?: number;
    /** If your initial ListPipelines operation returns a nextToken, you can include the returned nextToken in subsequent ListPipelines operations, which returns results in the next page. */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the pipeline to retrieve tags for. */
    Arn: string;
}
export interface PutResourcePolicyInput {
    /** The resource-based policy document in JSON format. */
    Policy: string;
    /** The Amazon Resource Name (ARN) of the resource to attach the policy to. */
    ResourceArn: string;
}
export interface RevokePipelineEndpointConnectionsInput {
    /** A list of endpoint IDs for which to revoke access to the pipeline. */
    EndpointIds: string[];
    /** The Amazon Resource Name (ARN) of the pipeline from which to revoke endpoint connections. */
    PipelineArn: string;
}
export interface StartPipelineInput {
    /** The name of the pipeline to start. */
    PipelineName: string;
}
export interface StopPipelineInput {
    /** The name of the pipeline to stop. */
    PipelineName: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the pipeline to tag. */
    Arn: string;
    /** The list of key-value tags to add to the pipeline. */
    Tags: Tag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the pipeline to remove tags from. */
    Arn: string;
    /** The tag keys to remove. */
    TagKeys: string[];
}
export interface UpdatePipelineInput {
    /** The name of the pipeline to update. */
    PipelineName: string;
    /** Key-value pairs to configure persistent buffering for the pipeline. */
    BufferOptions?: BufferOptions;
    /** Key-value pairs to configure encryption for data that is written to a persistent buffer. */
    EncryptionAtRestOptions?: EncryptionAtRestOptions;
    /** Key-value pairs to configure log publishing. */
    LogPublishingOptions?: LogPublishingOptions;
    /** The maximum pipeline capacity, in Ingestion Compute Units (ICUs) */
    MaxUnits?: number;
    /** The minimum pipeline capacity, in Ingestion Compute Units (ICUs). */
    MinUnits?: number;
    /** The pipeline configuration in YAML format. The command accepts the pipeline configuration as a string or within a .yaml file. If you provide the configuration as a string, each new line must be escape */
    PipelineConfigurationBody?: string;
    /** The Amazon Resource Name (ARN) of the IAM role that grants the pipeline permission to access Amazon Web Services resources. */
    PipelineRoleArn?: string;
}
export interface ValidatePipelineInput {
    /** The pipeline configuration in YAML format. The command accepts the pipeline configuration as a string or within a .yaml file. If you provide the configuration as a string, each new line must be escape */
    PipelineConfigurationBody: string;
}
/** OSIS service binding for Step Functions SDK integrations. */
export declare class OSIS {
    constructor();
    createPipeline<T>(params: CreatePipelineInput): Promise<T>;
    createPipelineEndpoint<T>(params: CreatePipelineEndpointInput): Promise<T>;
    deletePipeline<T>(params: DeletePipelineInput): Promise<T>;
    deletePipelineEndpoint<T>(params: DeletePipelineEndpointInput): Promise<T>;
    deleteResourcePolicy<T>(params: DeleteResourcePolicyInput): Promise<T>;
    getPipeline<T>(params: GetPipelineInput): Promise<T>;
    getPipelineBlueprint<T>(params: GetPipelineBlueprintInput): Promise<T>;
    getPipelineChangeProgress<T>(params: GetPipelineChangeProgressInput): Promise<T>;
    getResourcePolicy<T>(params: GetResourcePolicyInput): Promise<T>;
    listPipelineBlueprints<T>(params: Record<string, any>): Promise<T>;
    listPipelineEndpointConnections<T>(params: ListPipelineEndpointConnectionsInput): Promise<T>;
    listPipelineEndpoints<T>(params: ListPipelineEndpointsInput): Promise<T>;
    listPipelines<T>(params: ListPipelinesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    putResourcePolicy<T>(params: PutResourcePolicyInput): Promise<T>;
    revokePipelineEndpointConnections<T>(params: RevokePipelineEndpointConnectionsInput): Promise<T>;
    startPipeline<T>(params: StartPipelineInput): Promise<T>;
    stopPipeline<T>(params: StopPipelineInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updatePipeline<T>(params: UpdatePipelineInput): Promise<T>;
    validatePipeline<T>(params: ValidatePipelineInput): Promise<T>;
}
//# sourceMappingURL=OSIS.d.ts.map