export interface AssociateClientDeviceWithCoreDeviceEntry {
    /** The name of the IoT thing that represents the client device to associate. */
    thingName: string;
}
export interface DisassociateClientDeviceFromCoreDeviceEntry {
    /** The name of the IoT thing that represents the client device to disassociate. */
    thingName: string;
}
export interface LambdaExecutionParameters {
    /** The list of event sources to which to subscribe to receive work messages. The Lambda function runs when it receives a message from an event source. You can subscribe this function to local publish/sub */
    eventSources?: any[];
    /** The maximum size of the message queue for the Lambda function component. The IoT Greengrass core stores messages in a FIFO (first-in-first-out) queue until it can run the Lambda function to consume ea */
    maxQueueSize?: number;
    /** The maximum number of instances that a non-pinned Lambda function can run at the same time. */
    maxInstancesCount?: number;
    /** The maximum amount of time in seconds that a non-pinned Lambda function can idle before the IoT Greengrass Core software stops its process. */
    maxIdleTimeInSeconds?: number;
    /** The maximum amount of time in seconds that the Lambda function can process a work item. */
    timeoutInSeconds?: number;
    /** The interval in seconds at which a pinned (also known as long-lived) Lambda function component sends status updates to the Lambda manager component. */
    statusTimeoutInSeconds?: number;
    /** Whether or not the Lambda function is pinned, or long-lived. A pinned Lambda function starts when IoT Greengrass starts and keeps running in its own container. A non-pinned Lambda function starts only */
    pinned?: boolean;
    /** The encoding type that the Lambda function supports. Default: json */
    inputPayloadEncodingType?: 'json' | 'binary';
    /** The list of arguments to pass to the Lambda function when it runs. */
    execArgs?: any[];
    /** The map of environment variables that are available to the Lambda function when it runs. */
    environmentVariables?: Record<string, any>;
    /** The parameters for the Linux process that contains the Lambda function. */
    linuxProcessParams?: any;
}
export interface LambdaFunctionRecipeSource {
    /** The ARN of the Lambda function. The ARN must include the version of the function to import. You can't use version aliases like $LATEST. */
    lambdaArn: string;
    /** The name of the component. Defaults to the name of the Lambda function. */
    componentName?: string;
    /** The version of the component. Defaults to the version of the Lambda function as a semantic version. For example, if your function version is 3, the component version becomes 3.0.0. */
    componentVersion?: string;
    /** The platforms that the component version supports. */
    componentPlatforms?: any[];
    /** The component versions on which this Lambda function component depends. */
    componentDependencies?: Record<string, any>;
    /** The system and runtime parameters for the Lambda function as it runs on the Greengrass core device. */
    componentLambdaParameters?: LambdaExecutionParameters;
}
export interface ComponentDeploymentSpecification {
    /** The version of the component. */
    componentVersion: string;
    /** The configuration updates to deploy for the component. You can define reset updates and merge updates. A reset updates the keys that you specify to the default configuration for the component. A merge */
    configurationUpdate?: any;
    /** The system user and group that the IoT Greengrass Core software uses to run component processes on the core device. If you omit this parameter, the IoT Greengrass Core software uses the system user an */
    runWith?: any;
}
export interface IoTJobExecutionsRolloutConfig {
    /** The exponential rate to increase the job rollout rate. */
    exponentialRate?: any;
    /** The maximum number of devices that receive a pending job notification, per minute. */
    maximumPerMinute?: number;
}
export interface IoTJobAbortConfig {
    /** The list of criteria that define when and how to cancel the configuration deployment. */
    criteriaList: any[];
}
export interface IoTJobTimeoutConfig {
    /** The amount of time, in minutes, that devices have to complete the job. The timer starts when the job status is set to IN_PROGRESS. If the job status doesn't change to a terminal state before the time  */
    inProgressTimeoutInMinutes?: number;
}
export interface DeploymentIoTJobConfiguration {
    /** The rollout configuration for the job. This configuration defines the rate at which the job rolls out to the fleet of target devices. */
    jobExecutionsRolloutConfig?: IoTJobExecutionsRolloutConfig;
    /** The stop configuration for the job. This configuration defines when and how to stop a job rollout. */
    abortConfig?: IoTJobAbortConfig;
    /** The timeout configuration for the job. This configuration defines the amount of time each device has to complete the job. */
    timeoutConfig?: IoTJobTimeoutConfig;
}
export interface DeploymentComponentUpdatePolicy {
    /** The amount of time in seconds that each component on a device has to report that it's safe to update. If the component waits for longer than this timeout, then the deployment proceeds on the device. D */
    timeoutInSeconds?: number;
    /** Whether or not to notify components and wait for components to become safe to update. Choose from the following options: NOTIFY_COMPONENTS – The deployment notifies each component before it stops and  */
    action?: 'NOTIFY_COMPONENTS' | 'SKIP_NOTIFY_COMPONENTS';
}
export interface DeploymentConfigurationValidationPolicy {
    /** The amount of time in seconds that a component can validate its configuration updates. If the validation time exceeds this timeout, then the deployment proceeds for the device. Default: 30 */
    timeoutInSeconds?: number;
}
export interface DeploymentPolicies {
    /** The failure handling policy for the configuration deployment. This policy defines what to do if the deployment fails. Default: ROLLBACK */
    failureHandlingPolicy?: 'ROLLBACK' | 'DO_NOTHING';
    /** The component update policy for the configuration deployment. This policy defines when it's safe to deploy the configuration to devices. */
    componentUpdatePolicy?: DeploymentComponentUpdatePolicy;
    /** The configuration validation policy for the configuration deployment. This policy defines how long each component has to validate its configure updates. */
    configurationValidationPolicy?: DeploymentConfigurationValidationPolicy;
}
export interface ComponentPlatform {
    /** The friendly name of the platform. This name helps you identify the platform. If you omit this parameter, IoT Greengrass creates a friendly name from the os and architecture of the platform. */
    name?: string;
    /** A dictionary of attributes for the platform. The IoT Greengrass Core software defines the os and architecture by default. You can specify additional platform attributes for a core device when you depl */
    attributes?: Record<string, string>;
}
export interface ComponentCandidate {
    /** The name of the component. */
    componentName?: string;
    /** The version of the component. */
    componentVersion?: string;
    /** The version requirements for the component's dependencies. Greengrass core devices get the version requirements from component recipes. IoT Greengrass V2 uses semantic version constraints. For more in */
    versionRequirements?: Record<string, any>;
}
export interface ConnectivityInfo {
    /** An ID for the connectivity information. */
    id?: string;
    /** The IP address or DNS address where client devices can connect to an MQTT broker on the Greengrass core device. */
    hostAddress?: string;
    /** The port where the MQTT broker operates on the core device. This port is typically 8883, which is the default port for the MQTT broker component that runs on core devices. */
    portNumber?: number;
    /** Additional metadata to provide to client devices that connect to this core device. */
    metadata?: string;
}
export interface AssociateServiceRoleToAccountInput {
    /** The Amazon Resource Name (ARN) of the service role to associate with IoT Greengrass for your Amazon Web Services account in this Amazon Web Services Region. */
    roleArn: string;
}
export interface BatchAssociateClientDeviceWithCoreDeviceInput {
    /** The name of the core device. This is also the name of the IoT thing. */
    coreDeviceThingName: string;
    /** The list of client devices to associate. */
    entries?: AssociateClientDeviceWithCoreDeviceEntry[];
}
export interface BatchDisassociateClientDeviceFromCoreDeviceInput {
    /** The name of the core device. This is also the name of the IoT thing. */
    coreDeviceThingName: string;
    /** The list of client devices to disassociate. */
    entries?: DisassociateClientDeviceFromCoreDeviceEntry[];
}
export interface CancelDeploymentInput {
    /** The ID of the deployment. */
    deploymentId: string;
}
export interface CreateComponentVersionInput {
    /** A unique, case-sensitive identifier that you can provide to ensure that the request is idempotent. Idempotency means that the request is successfully processed only once, even if you send the request  */
    clientToken?: string;
    /** The recipe to use to create the component. The recipe defines the component's metadata, parameters, dependencies, lifecycle, artifacts, and platform compatibility. You must specify either inlineRecipe */
    inlineRecipe?: string;
    /** The parameters to create a component from a Lambda function. You must specify either inlineRecipe or lambdaFunction. */
    lambdaFunction?: LambdaFunctionRecipeSource;
    /** A list of key-value pairs that contain metadata for the resource. For more information, see Tag your resources in the IoT Greengrass V2 Developer Guide. */
    tags?: Record<string, string>;
}
export interface CreateDeploymentInput {
    /** The ARN of the target IoT thing or thing group. When creating a subdeployment, the targetARN can only be a thing group. */
    targetArn: string;
    /** A unique, case-sensitive identifier that you can provide to ensure that the request is idempotent. Idempotency means that the request is successfully processed only once, even if you send the request  */
    clientToken?: string;
    /** The components to deploy. This is a dictionary, where each key is the name of a component, and each key's value is the version and configuration to deploy for that component. */
    components?: Record<string, ComponentDeploymentSpecification>;
    /** The name of the deployment. */
    deploymentName?: string;
    /** The deployment policies for the deployment. These policies define how the deployment updates components and handles failure. */
    deploymentPolicies?: DeploymentPolicies;
    /** The job configuration for the deployment configuration. The job configuration specifies the rollout, timeout, and stop configurations for the deployment configuration. */
    iotJobConfiguration?: DeploymentIoTJobConfiguration;
    /** The parent deployment's target ARN within a subdeployment. */
    parentTargetArn?: string;
    /** A list of key-value pairs that contain metadata for the resource. For more information, see Tag your resources in the IoT Greengrass V2 Developer Guide. */
    tags?: Record<string, string>;
}
export interface DeleteComponentInput {
    /** The ARN of the component version. */
    arn: string;
}
export interface DeleteCoreDeviceInput {
    /** The name of the core device. This is also the name of the IoT thing. */
    coreDeviceThingName: string;
}
export interface DeleteDeploymentInput {
    /** The ID of the deployment. */
    deploymentId: string;
}
export interface DescribeComponentInput {
    /** The ARN of the component version. */
    arn: string;
}
export interface GetComponentInput {
    /** The ARN of the component version. */
    arn: string;
    /** The format of the recipe. */
    recipeOutputFormat?: 'JSON' | 'YAML';
}
export interface GetComponentVersionArtifactInput {
    /** The ARN of the component version. Specify the ARN of a public or a Lambda component version. */
    arn: string;
    /** The name of the artifact. You can use the GetComponent operation to download the component recipe, which includes the URI of the artifact. The artifact name is the section of the URI after the scheme. */
    artifactName: string;
    /** Determines if the Amazon S3 URL returned is a FIPS pre-signed URL endpoint. Specify fips if you want the returned Amazon S3 pre-signed URL to point to an Amazon S3 FIPS endpoint. If you don't specify  */
    iotEndpointType?: 'fips' | 'standard';
    /** Specifies the endpoint to use when getting Amazon S3 pre-signed URLs. All Amazon Web Services Regions except US East (N. Virginia) use REGIONAL in all cases. In the US East (N. Virginia) Region the de */
    s3EndpointType?: 'REGIONAL' | 'GLOBAL';
}
export interface GetConnectivityInfoInput {
    /** The name of the core device. This is also the name of the IoT thing. */
    thingName: string;
}
export interface GetCoreDeviceInput {
    /** The name of the core device. This is also the name of the IoT thing. */
    coreDeviceThingName: string;
}
export interface GetDeploymentInput {
    /** The ID of the deployment. */
    deploymentId: string;
}
export interface ListClientDevicesAssociatedWithCoreDeviceInput {
    /** The name of the core device. This is also the name of the IoT thing. */
    coreDeviceThingName: string;
    /** The maximum number of results to be returned per paginated request. */
    maxResults?: number;
    /** The token to be used for the next set of paginated results. */
    nextToken?: string;
}
export interface ListComponentsInput {
    /** The maximum number of results to be returned per paginated request. */
    maxResults?: number;
    /** The token to be used for the next set of paginated results. */
    nextToken?: string;
    /** The scope of the components to list. Default: PRIVATE */
    scope?: 'PRIVATE' | 'PUBLIC';
}
export interface ListComponentVersionsInput {
    /** The ARN of the component. */
    arn: string;
    /** The maximum number of results to be returned per paginated request. */
    maxResults?: number;
    /** The token to be used for the next set of paginated results. */
    nextToken?: string;
}
export interface ListCoreDevicesInput {
    /** The maximum number of results to be returned per paginated request. */
    maxResults?: number;
    /** The token to be used for the next set of paginated results. */
    nextToken?: string;
    /** The runtime to be used by the core device. The runtime can be: aws_nucleus_classic aws_nucleus_lite */
    runtime?: string;
    /** The core device status by which to filter. If you specify this parameter, the list includes only core devices that have this status. Choose one of the following options: HEALTHY – The IoT Greengrass C */
    status?: 'HEALTHY' | 'UNHEALTHY';
    /** The ARN of the IoT thing group by which to filter. If you specify this parameter, the list includes only core devices that have successfully deployed a deployment that targets the thing group. When yo */
    thingGroupArn?: string;
}
export interface ListDeploymentsInput {
    /** The filter for the list of deployments. Choose one of the following options: ALL – The list includes all deployments. LATEST_ONLY – The list includes only the latest revision of each deployment. Defau */
    historyFilter?: 'ALL' | 'LATEST_ONLY';
    /** The maximum number of results to be returned per paginated request. Default: 50 */
    maxResults?: number;
    /** The token to be used for the next set of paginated results. */
    nextToken?: string;
    /** The parent deployment's target ARN within a subdeployment. */
    parentTargetArn?: string;
    /** The ARN of the target IoT thing or thing group. */
    targetArn?: string;
}
export interface ListEffectiveDeploymentsInput {
    /** The name of the core device. This is also the name of the IoT thing. */
    coreDeviceThingName: string;
    /** The maximum number of results to be returned per paginated request. */
    maxResults?: number;
    /** The token to be used for the next set of paginated results. */
    nextToken?: string;
}
export interface ListInstalledComponentsInput {
    /** The name of the core device. This is also the name of the IoT thing. */
    coreDeviceThingName: string;
    /** The maximum number of results to be returned per paginated request. */
    maxResults?: number;
    /** The token to be used for the next set of paginated results. */
    nextToken?: string;
    /** The filter for the list of components. Choose from the following options: ALL – The list includes all components installed on the core device. ROOT – The list includes only root components, which are  */
    topologyFilter?: 'ALL' | 'ROOT';
}
export interface ListTagsForResourceInput {
    /** The ARN of the resource. */
    resourceArn: string;
}
export interface ResolveComponentCandidatesInput {
    /** The list of components to resolve. */
    componentCandidates?: ComponentCandidate[];
    /** The platform to use to resolve compatible components. */
    platform?: ComponentPlatform;
}
export interface TagResourceInput {
    /** The ARN of the resource to tag. */
    resourceArn: string;
    /** A list of key-value pairs that contain metadata for the resource. For more information, see Tag your resources in the IoT Greengrass V2 Developer Guide. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The ARN of the resource to untag. */
    resourceArn: string;
    /** A list of keys for tags to remove from the resource. */
    tagKeys: string[];
}
export interface UpdateConnectivityInfoInput {
    /** The connectivity information for the core device. */
    connectivityInfo: ConnectivityInfo[];
    /** The name of the core device. This is also the name of the IoT thing. */
    thingName: string;
}
/** GreengrassV2 service binding for Step Functions SDK integrations. */
export declare class GreengrassV2 {
    constructor();
    associateServiceRoleToAccount<T>(params: AssociateServiceRoleToAccountInput): Promise<T>;
    batchAssociateClientDeviceWithCoreDevice<T>(params: BatchAssociateClientDeviceWithCoreDeviceInput): Promise<T>;
    batchDisassociateClientDeviceFromCoreDevice<T>(params: BatchDisassociateClientDeviceFromCoreDeviceInput): Promise<T>;
    cancelDeployment<T>(params: CancelDeploymentInput): Promise<T>;
    createComponentVersion<T>(params: CreateComponentVersionInput): Promise<T>;
    createDeployment<T>(params: CreateDeploymentInput): Promise<T>;
    deleteComponent<T>(params: DeleteComponentInput): Promise<T>;
    deleteCoreDevice<T>(params: DeleteCoreDeviceInput): Promise<T>;
    deleteDeployment<T>(params: DeleteDeploymentInput): Promise<T>;
    describeComponent<T>(params: DescribeComponentInput): Promise<T>;
    disassociateServiceRoleFromAccount<T>(params: Record<string, any>): Promise<T>;
    getComponent<T>(params: GetComponentInput): Promise<T>;
    getComponentVersionArtifact<T>(params: GetComponentVersionArtifactInput): Promise<T>;
    getConnectivityInfo<T>(params: GetConnectivityInfoInput): Promise<T>;
    getCoreDevice<T>(params: GetCoreDeviceInput): Promise<T>;
    getDeployment<T>(params: GetDeploymentInput): Promise<T>;
    getServiceRoleForAccount<T>(params: Record<string, any>): Promise<T>;
    listClientDevicesAssociatedWithCoreDevice<T>(params: ListClientDevicesAssociatedWithCoreDeviceInput): Promise<T>;
    listComponents<T>(params: ListComponentsInput): Promise<T>;
    listComponentVersions<T>(params: ListComponentVersionsInput): Promise<T>;
    listCoreDevices<T>(params: ListCoreDevicesInput): Promise<T>;
    listDeployments<T>(params: ListDeploymentsInput): Promise<T>;
    listEffectiveDeployments<T>(params: ListEffectiveDeploymentsInput): Promise<T>;
    listInstalledComponents<T>(params: ListInstalledComponentsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    resolveComponentCandidates<T>(params: ResolveComponentCandidatesInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateConnectivityInfo<T>(params: UpdateConnectivityInfoInput): Promise<T>;
}
//# sourceMappingURL=GreengrassV2.d.ts.map