import { IComGithubFluxcdPkgApisAclAccessFrom } from "../../github.com/fluxcd/pkg/apis/acl/AccessFrom.js";
import { IComGithubFluxcdPkgApisMetaLocalObjectReference } from "../../github.com/fluxcd/pkg/apis/meta/LocalObjectReference.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
 * ImageRepositorySpec defines the parameters for scanning an image
 * repository, e.g., `fluxcd/flux`.
 */
export interface IImageRepositorySpec {
    /**
     * AccessFrom defines an ACL for allowing cross-namespace references
     * to the ImageRepository object based on the caller's namespace labels.
     */
    "accessFrom"?: IComGithubFluxcdPkgApisAclAccessFrom;
    /**
     * CertSecretRef can be given the name of a Secret containing
     * either or both of
     *
     * - a PEM-encoded client certificate (`tls.crt`) and private
     * key (`tls.key`);
     * - a PEM-encoded CA certificate (`ca.crt`)
     *
     * and whichever are supplied, will be used for connecting to the
     * registry. The client cert and key are useful if you are
     * authenticating with a certificate; the CA cert is useful if
     * you are using a self-signed server certificate. The Secret must
     * be of type `Opaque` or `kubernetes.io/tls`.
     *
     * Note: Support for the `caFile`, `certFile` and `keyFile` keys has
     * been deprecated.
     */
    "certSecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    /**
     * ExclusionList is a list of regex strings used to exclude certain tags
     * from being stored in the database.
     */
    "exclusionList"?: Array<string>;
    /**
     * Image is the name of the image repository
     */
    "image": string;
    /**
     * Insecure allows connecting to a non-TLS HTTP container registry.
     */
    "insecure"?: boolean;
    "interval": string;
    /**
     * The provider used for authentication, can be 'aws', 'azure', 'gcp' or 'generic'.
     * When not specified, defaults to 'generic'.
     */
    "provider"?: "generic" | "aws" | "azure" | "gcp";
    /**
     * ProxySecretRef specifies the Secret containing the proxy configuration
     * to use while communicating with the container registry.
     */
    "proxySecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    /**
     * SecretRef can be given the name of a secret containing
     * credentials to use for the image registry. The secret should be
     * created with `kubectl create secret docker-registry`, or the
     * equivalent.
     */
    "secretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    /**
     * ServiceAccountName is the name of the Kubernetes ServiceAccount used to authenticate
     * the image pull if the service account has attached pull secrets.
     */
    "serviceAccountName"?: string;
    /**
     * This flag tells the controller to suspend subsequent image scans.
     * It does not apply to already started scans. Defaults to false.
     */
    "suspend"?: boolean;
    "timeout"?: string;
}
/**
 * ImageRepositorySpec defines the parameters for scanning an image
 * repository, e.g., `fluxcd/flux`.
 */
export declare class ImageRepositorySpec extends Model<IImageRepositorySpec> implements IImageRepositorySpec {
    "accessFrom"?: IComGithubFluxcdPkgApisAclAccessFrom;
    "certSecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    "exclusionList"?: Array<string>;
    "image": string;
    "insecure"?: boolean;
    "interval": string;
    "provider"?: "generic" | "aws" | "azure" | "gcp";
    "proxySecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    "secretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    "serviceAccountName"?: string;
    "suspend"?: boolean;
    "timeout"?: string;
    constructor(data?: ModelData<IImageRepositorySpec>);
}
export type { IImageRepositorySpec as IComGithubFluxcdImageReflectorControllerApiV1ImageRepositorySpec, ImageRepositorySpec as ComGithubFluxcdImageReflectorControllerApiV1ImageRepositorySpec };
