import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * Resource Type definition for EKS Capability.
 */
export declare class Capability extends pulumi.CustomResource {
    /**
     * Get an existing Capability resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): Capability;
    /**
     * Returns true if the given object is an instance of Capability.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Capability;
    /**
     * The Amazon Resource Name (ARN) of the capability.
     */
    readonly arn: pulumi.Output<string>;
    /**
     * A unique name for the capability. The name must be unique within your cluster and can contain alphanumeric characters, hyphens, and underscores.
     */
    readonly capabilityName: pulumi.Output<string>;
    /**
     * The name of the EKS cluster where you want to create the capability.
     */
    readonly clusterName: pulumi.Output<string>;
    /**
     * The configuration settings for the capability. The structure of this object varies depending on the capability type. For Argo CD capabilities, you can configure IAM Identity Center integration, RBAC role mappings, and network access settings.
     */
    readonly configuration: pulumi.Output<outputs.eks.CapabilityConfiguration | undefined>;
    /**
     * The Unix epoch timestamp in seconds for when the capability was created.
     */
    readonly createdAt: pulumi.Output<string>;
    /**
     * Specifies how Kubernetes resources managed by the capability should be handled when the capability is deleted. Currently, the only supported value is RETAIN which retains all Kubernetes resources managed by the capability when the capability is deleted.
     */
    readonly deletePropagationPolicy: pulumi.Output<enums.eks.CapabilityDeletePropagationPolicy>;
    /**
     * The Unix epoch timestamp in seconds for when the capability was last modified.
     */
    readonly modifiedAt: pulumi.Output<string>;
    /**
     * The Amazon Resource Name (ARN) of the IAM role that the capability uses to interact with AWS services. This role must have a trust policy that allows the EKS service principal to assume it, and it must have the necessary permissions for the capability type you're creating.
     */
    readonly roleArn: pulumi.Output<string>;
    /**
     * The current status of the capability. Valid values include: CREATING (the capability is being created), ACTIVE (the capability is running and available), UPDATING (the capability is being updated), DELETING (the capability is being deleted), CREATE_FAILED (the capability creation failed), UPDATE_FAILED (the capability update failed), or DELETE_FAILED (the capability deletion failed).
     */
    readonly status: pulumi.Output<string>;
    /**
     * An array of key-value pairs to apply to this resource.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * The type of capability to create. Valid values are: ACK (AWS Controllers for Kubernetes, which lets you manage AWS resources directly from Kubernetes), ARGOCD (Argo CD for GitOps-based continuous delivery), or KRO (Kube Resource Orchestrator for composing and managing custom Kubernetes resources).
     */
    readonly type: pulumi.Output<enums.eks.CapabilityType>;
    /**
     * The version of the capability software that is currently running.
     */
    readonly version: pulumi.Output<string>;
    /**
     * Create a Capability resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: CapabilityArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a Capability resource.
 */
export interface CapabilityArgs {
    /**
     * A unique name for the capability. The name must be unique within your cluster and can contain alphanumeric characters, hyphens, and underscores.
     */
    capabilityName?: pulumi.Input<string>;
    /**
     * The name of the EKS cluster where you want to create the capability.
     */
    clusterName: pulumi.Input<string>;
    /**
     * The configuration settings for the capability. The structure of this object varies depending on the capability type. For Argo CD capabilities, you can configure IAM Identity Center integration, RBAC role mappings, and network access settings.
     */
    configuration?: pulumi.Input<inputs.eks.CapabilityConfigurationArgs>;
    /**
     * Specifies how Kubernetes resources managed by the capability should be handled when the capability is deleted. Currently, the only supported value is RETAIN which retains all Kubernetes resources managed by the capability when the capability is deleted.
     */
    deletePropagationPolicy: pulumi.Input<enums.eks.CapabilityDeletePropagationPolicy>;
    /**
     * The Amazon Resource Name (ARN) of the IAM role that the capability uses to interact with AWS services. This role must have a trust policy that allows the EKS service principal to assume it, and it must have the necessary permissions for the capability type you're creating.
     */
    roleArn: pulumi.Input<string>;
    /**
     * An array of key-value pairs to apply to this resource.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
    /**
     * The type of capability to create. Valid values are: ACK (AWS Controllers for Kubernetes, which lets you manage AWS resources directly from Kubernetes), ARGOCD (Argo CD for GitOps-based continuous delivery), or KRO (Kube Resource Orchestrator for composing and managing custom Kubernetes resources).
     */
    type: pulumi.Input<enums.eks.CapabilityType>;
}
