import * as outputs from "../types/output";
export interface AppDedicatedIp {
    /**
     * The ID of the app.
     */
    id: string;
    /**
     * The IP address of the dedicated egress IP.
     */
    ip: string;
    /**
     * The status of the dedicated egress IP: 'UNKNOWN', 'ASSIGNING', 'ASSIGNED', or 'REMOVED'
     */
    status: string;
}
export interface AppSpec {
    /**
     * Describes an alert policy for the component.
     */
    alerts?: outputs.AppSpecAlert[];
    databases?: outputs.AppSpecDatabase[];
    /**
     * A boolean indicating whether to disable the edge cache for this app. Default: `false`. Available only for non-static sites. Requires custom domains and applies to all the domains of the app.
     */
    disableEdgeCache?: boolean;
    /**
     * A boolean indicating whether to disable email obfuscation for this app. Default: `false`. Requires custom domains and applies to all the domains of the app.
     */
    disableEmailObfuscation?: boolean;
    /**
     * Describes a domain where the application will be made available.
     */
    domainNames: outputs.AppSpecDomainName[];
    /**
     * @deprecated This attribute has been replaced by `domain` which supports additional functionality.
     */
    domains: string[];
    /**
     * Specification for app egress configurations.
     */
    egresses?: outputs.AppSpecEgress[];
    /**
     * A boolean, when set to `true`, enables enhanced analyzing of incoming traffic to prevent layer 7 DDoS attacks. Default: `false`. Requires custom domains and applies to all the domains of the app.
     */
    enhancedThreatControlEnabled?: boolean;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: outputs.AppSpecEnv[];
    /**
     * A list of the features applied to the app. The default buildpack can be overridden here. List of available buildpacks can be found using the [doctl CLI](https://docs.digitalocean.com/reference/doctl/reference/apps/list-buildpacks/)
     */
    features: string[];
    functions?: outputs.AppSpecFunction[];
    /**
     * Specification for component routing, rewrites, and redirects.
     */
    ingress: outputs.AppSpecIngress;
    jobs?: outputs.AppSpecJob[];
    /**
     * Specification to configure maintenance settings for the app, such as maintenance mode and archiving the app.
     */
    maintenance?: outputs.AppSpecMaintenance;
    /**
     * The name of the component.
     */
    name: string;
    /**
     * The slug for the DigitalOcean data center region hosting the app.
     */
    region?: string;
    services?: outputs.AppSpecService[];
    staticSites?: outputs.AppSpecStaticSite[];
    /**
     * Specification for VPC.
     */
    vpcs?: outputs.AppSpecVpc[];
    workers?: outputs.AppSpecWorker[];
}
export interface AppSpecAlert {
    /**
     * Specification for alert destination.
     */
    destinations?: outputs.AppSpecAlertDestinations;
    /**
     * Determines whether or not the alert is disabled (default: `false`).
     */
    disabled?: boolean;
    /**
     * The type of the alert to configure. Component app alert policies can be: `CPU_UTILIZATION`, `MEM_UTILIZATION`, or `RESTART_COUNT`.
     */
    rule: string;
}
export interface AppSpecAlertDestinations {
    /**
     * Determines which emails receive alerts. The emails must be team members. If not set, the team's email is used by default.
     */
    emails?: string[];
    /**
     * Determines which slack channels or users receive alerts.
     */
    slackWebhooks?: outputs.AppSpecAlertDestinationsSlackWebhook[];
}
export interface AppSpecAlertDestinationsSlackWebhook {
    /**
     * The Slack channel to send notifications to.
     */
    channel: string;
    /**
     * The Slack webhook URL.
     */
    url: string;
}
export interface AppSpecDatabase {
    /**
     * The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if `clusterName` is not set, a new cluster will be provisioned.
     */
    clusterName?: string;
    /**
     * The name of the MySQL or PostgreSQL database to configure.
     */
    dbName?: string;
    /**
     * The name of the MySQL or PostgreSQL user to configure.
     *
     * This resource supports customized create timeouts. The default timeout is 30 minutes.
     */
    dbUser?: string;
    /**
     * The database engine to use (`MYSQL`, `PG`, `REDIS`, `MONGODB`, `KAFKA`, or `OPENSEARCH`).
     */
    engine?: string;
    /**
     * The name of the component.
     */
    name?: string;
    /**
     * Whether this is a production or dev database.
     */
    production?: boolean;
    /**
     * The version of the database engine.
     */
    version?: string;
}
export interface AppSpecDomainName {
    /**
     * The hostname for the domain.
     */
    name: string;
    /**
     * The domain type, which can be one of the following:
     * - `DEFAULT`: The default .ondigitalocean.app domain assigned to this app.
     * - `PRIMARY`: The primary domain for this app that is displayed as the default in the control panel, used in bindable environment variables, and any other places that reference an app's live URL. Only one domain may be set as primary.
     * - `ALIAS`: A non-primary domain.
     */
    type: string;
    /**
     * A boolean indicating whether the domain includes all sub-domains, in addition to the given domain.
     */
    wildcard: boolean;
    /**
     * If the domain uses DigitalOcean DNS and you would like App Platform to automatically manage it for you, set this to the name of the domain on your account.
     */
    zone?: string;
}
export interface AppSpecEgress {
    /**
     * The app egress type: `AUTOASSIGN`, `DEDICATED_IP`
     */
    type?: string;
}
export interface AppSpecEnv {
    /**
     * The name of the environment variable.
     */
    key?: string;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: string;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type: string;
    /**
     * The value of the environment variable.
     */
    value?: string;
}
export interface AppSpecFunction {
    /**
     * Describes an alert policy for the component.
     */
    alerts?: outputs.AppSpecFunctionAlert[];
    /**
     * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/bitbucket/install). Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    bitbucket?: outputs.AppSpecFunctionBitbucket;
    /**
     * The [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) policies of the app.
     *
     * @deprecated Service level CORS rules are deprecated in favor of ingresses
     */
    cors?: outputs.AppSpecFunctionCors;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: outputs.AppSpecFunctionEnv[];
    /**
     * A Git repo to use as the component's source. The repository must be able to be cloned without authentication. Only one of `git`, `github` or `gitlab` may be set.
     */
    git?: outputs.AppSpecFunctionGit;
    /**
     * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
     */
    github?: outputs.AppSpecFunctionGithub;
    /**
     * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
     */
    gitlab?: outputs.AppSpecFunctionGitlab;
    /**
     * Describes a log forwarding destination.
     */
    logDestinations?: outputs.AppSpecFunctionLogDestination[];
    /**
     * The name of the component.
     */
    name: string;
    /**
     * An HTTP paths that should be routed to this component.
     *
     * @deprecated Service level routes are deprecated in favor of ingresses
     */
    routes: outputs.AppSpecFunctionRoute[];
    /**
     * An optional path to the working directory to use for the build.
     */
    sourceDir?: string;
}
export interface AppSpecFunctionAlert {
    /**
     * Specification for alert destination.
     */
    destinations?: outputs.AppSpecFunctionAlertDestinations;
    /**
     * Determines whether or not the alert is disabled (default: `false`).
     */
    disabled?: boolean;
    /**
     * The operator to use. This is either of `GREATER_THAN` or `LESS_THAN`.
     */
    operator: string;
    /**
     * The type of the alert to configure. Component app alert policies can be: `CPU_UTILIZATION`, `MEM_UTILIZATION`, or `RESTART_COUNT`.
     */
    rule: string;
    /**
     * The threshold for the type of the warning.
     */
    value: number;
    /**
     * The time before alerts should be triggered. This is may be one of: `FIVE_MINUTES`, `TEN_MINUTES`, `THIRTY_MINUTES`, `ONE_HOUR`.
     */
    window: string;
}
export interface AppSpecFunctionAlertDestinations {
    /**
     * Determines which emails receive alerts. The emails must be team members. If not set, the team's email is used by default.
     */
    emails?: string[];
    /**
     * Determines which slack channels or users receive alerts.
     */
    slackWebhooks?: outputs.AppSpecFunctionAlertDestinationsSlackWebhook[];
}
export interface AppSpecFunctionAlertDestinationsSlackWebhook {
    /**
     * The Slack channel to send notifications to.
     */
    channel: string;
    /**
     * The Slack webhook URL.
     */
    url: string;
}
export interface AppSpecFunctionBitbucket {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface AppSpecFunctionCors {
    /**
     * Whether browsers should expose the response to the client-side JavaScript code when the request’s credentials mode is `include`. This configures the Access-Control-Allow-Credentials header.
     */
    allowCredentials?: boolean;
    /**
     * The set of allowed HTTP request headers. This configures the Access-Control-Allow-Headers header.
     */
    allowHeaders?: string[];
    /**
     * The set of allowed HTTP methods. This configures the Access-Control-Allow-Methods header.
     */
    allowMethods?: string[];
    /**
     * The set of allowed CORS origins. This configures the Access-Control-Allow-Origin header.
     */
    allowOrigins?: outputs.AppSpecFunctionCorsAllowOrigins;
    /**
     * The set of HTTP response headers that browsers are allowed to access. This configures the Access-Control-Expose-Headers header.
     */
    exposeHeaders?: string[];
    /**
     * An optional duration specifying how long browsers can cache the results of a preflight request. This configures the Access-Control-Max-Age header. Example: `5h30m`.
     */
    maxAge?: string;
}
export interface AppSpecFunctionCorsAllowOrigins {
    /**
     * Exact string match.
     */
    exact?: string;
    /**
     * Prefix-based match.
     *
     * @deprecated Prefix-based matching has been deprecated in favor of regex-based matching.
     */
    prefix?: string;
    /**
     * RE2 style regex-based match.
     */
    regex?: string;
}
export interface AppSpecFunctionEnv {
    /**
     * The name of the environment variable.
     */
    key?: string;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: string;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type: string;
    /**
     * The value of the environment variable.
     */
    value?: string;
}
export interface AppSpecFunctionGit {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * The clone URL of the repo.
     */
    repoCloneUrl?: string;
}
export interface AppSpecFunctionGithub {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface AppSpecFunctionGitlab {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface AppSpecFunctionLogDestination {
    /**
     * Datadog configuration.
     */
    datadog?: outputs.AppSpecFunctionLogDestinationDatadog;
    /**
     * Logtail configuration.
     */
    logtail?: outputs.AppSpecFunctionLogDestinationLogtail;
    /**
     * Name of the log destination. Minimum length: 2. Maximum length: 42.
     */
    name: string;
    /**
     * OpenSearch configuration.
     */
    openSearch?: outputs.AppSpecFunctionLogDestinationOpenSearch;
    /**
     * Papertrail configuration.
     */
    papertrail?: outputs.AppSpecFunctionLogDestinationPapertrail;
}
export interface AppSpecFunctionLogDestinationDatadog {
    /**
     * Datadog API key.
     */
    apiKey: string;
    /**
     * Datadog HTTP log intake endpoint.
     */
    endpoint?: string;
}
export interface AppSpecFunctionLogDestinationLogtail {
    /**
     * Logtail token.
     */
    token: string;
}
export interface AppSpecFunctionLogDestinationOpenSearch {
    /**
     * Basic authentication details.
     */
    basicAuth: outputs.AppSpecFunctionLogDestinationOpenSearchBasicAuth;
    /**
     * The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if `clusterName` is not set, a new cluster will be provisioned.
     */
    clusterName?: string;
    /**
     * OpenSearch endpoint.
     */
    endpoint?: string;
    /**
     * OpenSearch index name.
     */
    indexName?: string;
}
export interface AppSpecFunctionLogDestinationOpenSearchBasicAuth {
    /**
     * Password for basic authentication.
     */
    password?: string;
    /**
     * user for basic authentication.
     */
    user?: string;
}
export interface AppSpecFunctionLogDestinationPapertrail {
    /**
     * Papertrail syslog endpoint.
     */
    endpoint: string;
}
export interface AppSpecFunctionRoute {
    /**
     * Paths must start with `/` and must be unique within the app.
     */
    path?: string;
    /**
     * An optional flag to preserve the path that is forwarded to the backend service.
     */
    preservePathPrefix?: boolean;
}
export interface AppSpecIngress {
    /**
     * Rules for configuring HTTP ingress for component routes, CORS, rewrites, and redirects.
     */
    rules?: outputs.AppSpecIngressRule[];
    secureHeader: outputs.AppSpecIngressSecureHeader;
}
export interface AppSpecIngressRule {
    /**
     * The component to route to. Only one of `component` or `redirect` may be set.
     */
    component: outputs.AppSpecIngressRuleComponent;
    /**
     * The [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) policies of the app.
     */
    cors: outputs.AppSpecIngressRuleCors;
    /**
     * The match configuration for the rule
     */
    match: outputs.AppSpecIngressRuleMatch;
    /**
     * The redirect configuration for the rule. Only one of `component` or `redirect` may be set.
     */
    redirect?: outputs.AppSpecIngressRuleRedirect;
}
export interface AppSpecIngressRuleComponent {
    /**
     * The name of the component to route to.
     */
    name: string;
    /**
     * An optional boolean flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component.
     */
    preservePathPrefix: boolean;
    /**
     * An optional field that will rewrite the path of the component to be what is specified here. This is mutually exclusive with `preservePathPrefix`.
     */
    rewrite: string;
}
export interface AppSpecIngressRuleCors {
    /**
     * Whether browsers should expose the response to the client-side JavaScript code when the request's credentials mode is `include`. This configures the `Access-Control-Allow-Credentials` header.
     */
    allowCredentials?: boolean;
    /**
     * The set of allowed HTTP request headers. This configures the `Access-Control-Allow-Headers` header.
     */
    allowHeaders?: string[];
    /**
     * The set of allowed HTTP methods. This configures the `Access-Control-Allow-Methods` header.
     */
    allowMethods?: string[];
    /**
     * The `Access-Control-Allow-Origin` can be
     */
    allowOrigins?: outputs.AppSpecIngressRuleCorsAllowOrigins;
    /**
     * The set of HTTP response headers that browsers are allowed to access. This configures the `Access-Control-Expose-Headers` header.
     */
    exposeHeaders?: string[];
    /**
     * An optional duration specifying how long browsers can cache the results of a preflight request. This configures the Access-Control-Max-Age header. Example: `5h30m`.
     */
    maxAge?: string;
}
export interface AppSpecIngressRuleCorsAllowOrigins {
    /**
     * The `Access-Control-Allow-Origin` header will be set to the client's origin only if the client's origin exactly matches the value you provide.
     */
    exact?: string;
    /**
     * The `Access-Control-Allow-Origin` header will be set to the client's origin if the beginning of the client's origin matches the value you provide.
     *
     * @deprecated Prefix-based matching has been deprecated in favor of regex-based matching.
     */
    prefix?: string;
    /**
     * The `Access-Control-Allow-Origin` header will be set to the client's origin if the client’s origin matches the regex you provide, in [RE2 style syntax](https://github.com/google/re2/wiki/Syntax).
     */
    regex?: string;
}
export interface AppSpecIngressRuleMatch {
    /**
     * The authority (domain) to match on.
     */
    authority: outputs.AppSpecIngressRuleMatchAuthority;
    /**
     * The path to match on.
     */
    path: outputs.AppSpecIngressRuleMatchPath;
}
export interface AppSpecIngressRuleMatchAuthority {
    /**
     * Exact match.
     */
    exact: string;
}
export interface AppSpecIngressRuleMatchPath {
    /**
     * Prefix-based match.
     */
    prefix: string;
}
export interface AppSpecIngressRuleRedirect {
    /**
     * The authority/host to redirect to. This can be a hostname or IP address.
     */
    authority?: string;
    /**
     * The port to redirect to.
     */
    port?: number;
    /**
     * The redirect code to use. Supported values are `300`, `301`, `302`, `303`, `304`, `307`, `308`.
     */
    redirectCode?: number;
    /**
     * The scheme to redirect to. Supported values are `http` or `https`
     */
    scheme?: string;
    /**
     * An optional URI path to redirect to.
     */
    uri?: string;
}
export interface AppSpecIngressSecureHeader {
    /**
     * The name of the environment variable.
     */
    key: string;
    value: string;
}
export interface AppSpecJob {
    /**
     * Describes an alert policy for the component.
     */
    alerts?: outputs.AppSpecJobAlert[];
    /**
     * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/bitbucket/install). Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    bitbucket?: outputs.AppSpecJobBitbucket;
    /**
     * An optional build command to run while building this component from source.
     */
    buildCommand?: string;
    /**
     * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
     */
    dockerfilePath?: string;
    /**
     * An environment slug describing the type of this app.
     */
    environmentSlug?: string;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: outputs.AppSpecJobEnv[];
    /**
     * A Git repo to use as the component's source. The repository must be able to be cloned without authentication. Only one of `git`, `github` or `gitlab` may be set.
     */
    git?: outputs.AppSpecJobGit;
    /**
     * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
     */
    github?: outputs.AppSpecJobGithub;
    /**
     * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
     */
    gitlab?: outputs.AppSpecJobGitlab;
    /**
     * An image to use as the component's source. Only one of `git`, `github`, `gitlab`, or `image` may be set.
     */
    image?: outputs.AppSpecJobImage;
    /**
     * The amount of instances that this component should be scaled to.
     */
    instanceCount?: number;
    /**
     * The instance size to use for this component. This determines the plan (basic or professional) and the available CPU and memory. The list of available instance sizes can be [found with the API](https://docs.digitalocean.com/reference/api/digitalocean/#tag/Apps/operation/apps_list_instanceSizes) or using the [doctl CLI](https://docs.digitalocean.com/reference/doctl/) (`doctl apps tier instance-size list`). Default: `basic-xxs`
     */
    instanceSizeSlug?: string;
    /**
     * The type of job and when it will be run during the deployment process. It may be one of:
     * - `UNSPECIFIED`: Default job type, will auto-complete to POST_DEPLOY kind.
     * - `PRE_DEPLOY`: Indicates a job that runs before an app deployment.
     * - `POST_DEPLOY`: Indicates a job that runs after an app deployment.
     * - `FAILED_DEPLOY`: Indicates a job that runs after a component fails to deploy.
     */
    kind?: string;
    /**
     * Describes a log forwarding destination.
     */
    logDestinations?: outputs.AppSpecJobLogDestination[];
    /**
     * The name of the component.
     */
    name: string;
    /**
     * An optional run command to override the component's default.
     */
    runCommand?: string;
    /**
     * An optional path to the working directory to use for the build.
     */
    sourceDir?: string;
    /**
     * Contains a component's termination parameters.
     */
    termination?: outputs.AppSpecJobTermination;
}
export interface AppSpecJobAlert {
    /**
     * Specification for alert destination.
     */
    destinations?: outputs.AppSpecJobAlertDestinations;
    /**
     * Determines whether or not the alert is disabled (default: `false`).
     */
    disabled?: boolean;
    /**
     * The operator to use. This is either of `GREATER_THAN` or `LESS_THAN`.
     */
    operator: string;
    /**
     * The type of the alert to configure. Component app alert policies can be: `CPU_UTILIZATION`, `MEM_UTILIZATION`, or `RESTART_COUNT`.
     */
    rule: string;
    /**
     * The threshold for the type of the warning.
     */
    value: number;
    /**
     * The time before alerts should be triggered. This is may be one of: `FIVE_MINUTES`, `TEN_MINUTES`, `THIRTY_MINUTES`, `ONE_HOUR`.
     */
    window: string;
}
export interface AppSpecJobAlertDestinations {
    /**
     * Determines which emails receive alerts. The emails must be team members. If not set, the team's email is used by default.
     */
    emails?: string[];
    /**
     * Determines which slack channels or users receive alerts.
     */
    slackWebhooks?: outputs.AppSpecJobAlertDestinationsSlackWebhook[];
}
export interface AppSpecJobAlertDestinationsSlackWebhook {
    /**
     * The Slack channel to send notifications to.
     */
    channel: string;
    /**
     * The Slack webhook URL.
     */
    url: string;
}
export interface AppSpecJobBitbucket {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface AppSpecJobEnv {
    /**
     * The name of the environment variable.
     */
    key?: string;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: string;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type: string;
    /**
     * The value of the environment variable.
     */
    value?: string;
}
export interface AppSpecJobGit {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * The clone URL of the repo.
     */
    repoCloneUrl?: string;
}
export interface AppSpecJobGithub {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface AppSpecJobGitlab {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface AppSpecJobImage {
    /**
     * Configures automatically deploying images pushed to DOCR.
     */
    deployOnPushes: outputs.AppSpecJobImageDeployOnPush[];
    /**
     * The image digest. Cannot be specified if `tag` is provided.
     */
    digest?: string;
    /**
     * The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
     */
    registry?: string;
    /**
     * The credentials required to access a private Docker Hub or GitHub registry, in the following syntax `<username>:<token>`.
     */
    registryCredentials?: string;
    /**
     * The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
     */
    registryType: string;
    /**
     * The repository name.
     */
    repository: string;
    /**
     * The repository tag. Defaults to `latest` if not provided.
     */
    tag?: string;
}
export interface AppSpecJobImageDeployOnPush {
    /**
     * Whether to automatically deploy images pushed to DOCR.
     */
    enabled?: boolean;
}
export interface AppSpecJobLogDestination {
    /**
     * Datadog configuration.
     */
    datadog?: outputs.AppSpecJobLogDestinationDatadog;
    /**
     * Logtail configuration.
     */
    logtail?: outputs.AppSpecJobLogDestinationLogtail;
    /**
     * Name of the log destination. Minimum length: 2. Maximum length: 42.
     */
    name: string;
    /**
     * OpenSearch configuration.
     */
    openSearch?: outputs.AppSpecJobLogDestinationOpenSearch;
    /**
     * Papertrail configuration.
     */
    papertrail?: outputs.AppSpecJobLogDestinationPapertrail;
}
export interface AppSpecJobLogDestinationDatadog {
    /**
     * Datadog API key.
     */
    apiKey: string;
    /**
     * Datadog HTTP log intake endpoint.
     */
    endpoint?: string;
}
export interface AppSpecJobLogDestinationLogtail {
    /**
     * Logtail token.
     */
    token: string;
}
export interface AppSpecJobLogDestinationOpenSearch {
    /**
     * Basic authentication details.
     */
    basicAuth: outputs.AppSpecJobLogDestinationOpenSearchBasicAuth;
    /**
     * The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if `clusterName` is not set, a new cluster will be provisioned.
     */
    clusterName?: string;
    /**
     * OpenSearch endpoint.
     */
    endpoint?: string;
    /**
     * OpenSearch index name.
     */
    indexName?: string;
}
export interface AppSpecJobLogDestinationOpenSearchBasicAuth {
    /**
     * Password for basic authentication.
     */
    password?: string;
    /**
     * user for basic authentication.
     */
    user?: string;
}
export interface AppSpecJobLogDestinationPapertrail {
    /**
     * Papertrail syslog endpoint.
     */
    endpoint: string;
}
export interface AppSpecJobTermination {
    /**
     * The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
     *
     * A `function` component can contain:
     */
    gracePeriodSeconds?: number;
}
export interface AppSpecMaintenance {
    /**
     * Indicates whether the app should be archived. Setting this to true implies that enabled is set to true.
     */
    archive?: boolean;
    /**
     * Indicates whether maintenance mode should be enabled for the app.
     */
    enabled?: boolean;
    /**
     * A custom offline page to display when maintenance mode is enabled or the app is archived.
     */
    offlinePageUrl?: string;
}
export interface AppSpecService {
    /**
     * Describes an alert policy for the component.
     */
    alerts?: outputs.AppSpecServiceAlert[];
    /**
     * Configuration for automatically scaling this component based on metrics.
     */
    autoscaling?: outputs.AppSpecServiceAutoscaling;
    /**
     * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/bitbucket/install). Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    bitbucket?: outputs.AppSpecServiceBitbucket;
    /**
     * An optional build command to run while building this component from source.
     */
    buildCommand?: string;
    /**
     * The [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) policies of the app.
     *
     * @deprecated Service level CORS rules are deprecated in favor of ingresses
     */
    cors?: outputs.AppSpecServiceCors;
    /**
     * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
     */
    dockerfilePath?: string;
    /**
     * An environment slug describing the type of this app.
     */
    environmentSlug?: string;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: outputs.AppSpecServiceEnv[];
    /**
     * A Git repo to use as the component's source. The repository must be able to be cloned without authentication. Only one of `git`, `github` or `gitlab` may be set.
     */
    git?: outputs.AppSpecServiceGit;
    /**
     * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
     */
    github?: outputs.AppSpecServiceGithub;
    /**
     * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
     */
    gitlab?: outputs.AppSpecServiceGitlab;
    /**
     * A health check to determine the availability of this component.
     */
    healthCheck?: outputs.AppSpecServiceHealthCheck;
    /**
     * The internal port on which this service's run command will listen.
     */
    httpPort: number;
    /**
     * An image to use as the component's source. Only one of `git`, `github`, `gitlab`, or `image` may be set.
     */
    image?: outputs.AppSpecServiceImage;
    /**
     * The amount of instances that this component should be scaled to.
     */
    instanceCount?: number;
    /**
     * The instance size to use for this component. This determines the plan (basic or professional) and the available CPU and memory. The list of available instance sizes can be [found with the API](https://docs.digitalocean.com/reference/api/digitalocean/#tag/Apps/operation/apps_list_instanceSizes) or using the [doctl CLI](https://docs.digitalocean.com/reference/doctl/) (`doctl apps tier instance-size list`). Default: `basic-xxs`
     */
    instanceSizeSlug?: string;
    /**
     * A list of ports on which this service will listen for internal traffic.
     */
    internalPorts: number[];
    /**
     * Describes a log forwarding destination.
     */
    logDestinations?: outputs.AppSpecServiceLogDestination[];
    /**
     * The name of the component.
     */
    name: string;
    /**
     * An HTTP paths that should be routed to this component.
     *
     * @deprecated Service level routes are deprecated in favor of ingresses
     */
    routes: outputs.AppSpecServiceRoute[];
    /**
     * An optional run command to override the component's default.
     */
    runCommand: string;
    /**
     * An optional path to the working directory to use for the build.
     */
    sourceDir?: string;
    /**
     * Contains a component's termination parameters.
     */
    termination?: outputs.AppSpecServiceTermination;
}
export interface AppSpecServiceAlert {
    /**
     * Specification for alert destination.
     */
    destinations?: outputs.AppSpecServiceAlertDestinations;
    /**
     * Determines whether or not the alert is disabled (default: `false`).
     */
    disabled?: boolean;
    /**
     * The operator to use. This is either of `GREATER_THAN` or `LESS_THAN`.
     */
    operator: string;
    /**
     * The type of the alert to configure. Component app alert policies can be: `CPU_UTILIZATION`, `MEM_UTILIZATION`, or `RESTART_COUNT`.
     */
    rule: string;
    /**
     * The threshold for the type of the warning.
     */
    value: number;
    /**
     * The time before alerts should be triggered. This is may be one of: `FIVE_MINUTES`, `TEN_MINUTES`, `THIRTY_MINUTES`, `ONE_HOUR`.
     */
    window: string;
}
export interface AppSpecServiceAlertDestinations {
    /**
     * Determines which emails receive alerts. The emails must be team members. If not set, the team's email is used by default.
     */
    emails?: string[];
    /**
     * Determines which slack channels or users receive alerts.
     */
    slackWebhooks?: outputs.AppSpecServiceAlertDestinationsSlackWebhook[];
}
export interface AppSpecServiceAlertDestinationsSlackWebhook {
    /**
     * The Slack channel to send notifications to.
     */
    channel: string;
    /**
     * The Slack webhook URL.
     */
    url: string;
}
export interface AppSpecServiceAutoscaling {
    /**
     * The maximum amount of instances for this component. Must be more than min_instance_count.
     */
    maxInstanceCount: number;
    /**
     * The metrics that the component is scaled on.
     */
    metrics: outputs.AppSpecServiceAutoscalingMetrics;
    /**
     * The minimum amount of instances for this component. Must be less than max_instance_count.
     */
    minInstanceCount: number;
}
export interface AppSpecServiceAutoscalingMetrics {
    /**
     * Settings for scaling the component based on CPU utilization.
     */
    cpu?: outputs.AppSpecServiceAutoscalingMetricsCpu;
}
export interface AppSpecServiceAutoscalingMetricsCpu {
    /**
     * The average target CPU utilization for the component.
     */
    percent: number;
}
export interface AppSpecServiceBitbucket {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface AppSpecServiceCors {
    /**
     * Whether browsers should expose the response to the client-side JavaScript code when the request’s credentials mode is `include`. This configures the Access-Control-Allow-Credentials header.
     */
    allowCredentials?: boolean;
    /**
     * The set of allowed HTTP request headers. This configures the Access-Control-Allow-Headers header.
     */
    allowHeaders?: string[];
    /**
     * The set of allowed HTTP methods. This configures the Access-Control-Allow-Methods header.
     */
    allowMethods?: string[];
    /**
     * The set of allowed CORS origins. This configures the Access-Control-Allow-Origin header.
     */
    allowOrigins?: outputs.AppSpecServiceCorsAllowOrigins;
    /**
     * The set of HTTP response headers that browsers are allowed to access. This configures the Access-Control-Expose-Headers header.
     */
    exposeHeaders?: string[];
    /**
     * An optional duration specifying how long browsers can cache the results of a preflight request. This configures the Access-Control-Max-Age header. Example: `5h30m`.
     */
    maxAge?: string;
}
export interface AppSpecServiceCorsAllowOrigins {
    /**
     * Exact string match.
     */
    exact?: string;
    /**
     * Prefix-based match.
     *
     * @deprecated Prefix-based matching has been deprecated in favor of regex-based matching.
     */
    prefix?: string;
    /**
     * RE2 style regex-based match.
     */
    regex?: string;
}
export interface AppSpecServiceEnv {
    /**
     * The name of the environment variable.
     */
    key?: string;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: string;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type: string;
    /**
     * The value of the environment variable.
     */
    value?: string;
}
export interface AppSpecServiceGit {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * The clone URL of the repo.
     */
    repoCloneUrl?: string;
}
export interface AppSpecServiceGithub {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface AppSpecServiceGitlab {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface AppSpecServiceHealthCheck {
    /**
     * The number of failed health checks before considered unhealthy.
     */
    failureThreshold?: number;
    /**
     * The route path used for the HTTP health check ping.
     */
    httpPath?: string;
    /**
     * The number of seconds to wait before beginning health checks.
     */
    initialDelaySeconds?: number;
    /**
     * The number of seconds to wait between health checks.
     */
    periodSeconds?: number;
    /**
     * The health check will be performed on this port instead of component's HTTP port.
     */
    port?: number;
    /**
     * The number of successful health checks before considered healthy.
     */
    successThreshold?: number;
    /**
     * The number of seconds after which the check times out.
     */
    timeoutSeconds?: number;
}
export interface AppSpecServiceImage {
    /**
     * Configures automatically deploying images pushed to DOCR.
     */
    deployOnPushes: outputs.AppSpecServiceImageDeployOnPush[];
    /**
     * The image digest. Cannot be specified if `tag` is provided.
     */
    digest?: string;
    /**
     * The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
     */
    registry?: string;
    /**
     * The credentials required to access a private Docker Hub or GitHub registry, in the following syntax `<username>:<token>`.
     */
    registryCredentials?: string;
    /**
     * The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
     */
    registryType: string;
    /**
     * The repository name.
     */
    repository: string;
    /**
     * The repository tag. Defaults to `latest` if not provided.
     */
    tag?: string;
}
export interface AppSpecServiceImageDeployOnPush {
    /**
     * Whether to automatically deploy images pushed to DOCR.
     */
    enabled?: boolean;
}
export interface AppSpecServiceLogDestination {
    /**
     * Datadog configuration.
     */
    datadog?: outputs.AppSpecServiceLogDestinationDatadog;
    /**
     * Logtail configuration.
     */
    logtail?: outputs.AppSpecServiceLogDestinationLogtail;
    /**
     * Name of the log destination. Minimum length: 2. Maximum length: 42.
     */
    name: string;
    /**
     * OpenSearch configuration.
     */
    openSearch?: outputs.AppSpecServiceLogDestinationOpenSearch;
    /**
     * Papertrail configuration.
     */
    papertrail?: outputs.AppSpecServiceLogDestinationPapertrail;
}
export interface AppSpecServiceLogDestinationDatadog {
    /**
     * Datadog API key.
     */
    apiKey: string;
    /**
     * Datadog HTTP log intake endpoint.
     */
    endpoint?: string;
}
export interface AppSpecServiceLogDestinationLogtail {
    /**
     * Logtail token.
     */
    token: string;
}
export interface AppSpecServiceLogDestinationOpenSearch {
    /**
     * Basic authentication details.
     */
    basicAuth: outputs.AppSpecServiceLogDestinationOpenSearchBasicAuth;
    /**
     * The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if `clusterName` is not set, a new cluster will be provisioned.
     */
    clusterName?: string;
    /**
     * OpenSearch endpoint.
     */
    endpoint?: string;
    /**
     * OpenSearch index name.
     */
    indexName?: string;
}
export interface AppSpecServiceLogDestinationOpenSearchBasicAuth {
    /**
     * Password for basic authentication.
     */
    password?: string;
    /**
     * user for basic authentication.
     */
    user?: string;
}
export interface AppSpecServiceLogDestinationPapertrail {
    /**
     * Papertrail syslog endpoint.
     */
    endpoint: string;
}
export interface AppSpecServiceRoute {
    /**
     * Paths must start with `/` and must be unique within the app.
     */
    path?: string;
    /**
     * An optional flag to preserve the path that is forwarded to the backend service.
     */
    preservePathPrefix?: boolean;
}
export interface AppSpecServiceTermination {
    /**
     * The number of seconds to wait between selecting a container instance for termination and issuing the TERM signal. Selecting a container instance for termination begins an asynchronous drain of new requests on upstream load-balancers. Default: 15 seconds, Minimum 1, Maximum 110.
     *
     * A `staticSite` can contain:
     */
    drainSeconds?: number;
    /**
     * The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
     *
     * A `function` component can contain:
     */
    gracePeriodSeconds?: number;
}
export interface AppSpecStaticSite {
    /**
     * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/bitbucket/install). Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    bitbucket?: outputs.AppSpecStaticSiteBitbucket;
    /**
     * An optional build command to run while building this component from source.
     */
    buildCommand?: string;
    /**
     * The name of the document to use as the fallback for any requests to documents that are not found when serving this static site.
     */
    catchallDocument?: string;
    /**
     * The [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) policies of the app.
     *
     * @deprecated Service level CORS rules are deprecated in favor of ingresses
     */
    cors?: outputs.AppSpecStaticSiteCors;
    /**
     * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
     */
    dockerfilePath?: string;
    /**
     * An environment slug describing the type of this app.
     */
    environmentSlug?: string;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: outputs.AppSpecStaticSiteEnv[];
    /**
     * The name of the error document to use when serving this static site.
     */
    errorDocument?: string;
    /**
     * A Git repo to use as the component's source. The repository must be able to be cloned without authentication. Only one of `git`, `github` or `gitlab` may be set.
     */
    git?: outputs.AppSpecStaticSiteGit;
    /**
     * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
     */
    github?: outputs.AppSpecStaticSiteGithub;
    /**
     * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
     */
    gitlab?: outputs.AppSpecStaticSiteGitlab;
    /**
     * The name of the index document to use when serving this static site.
     */
    indexDocument?: string;
    /**
     * The name of the component.
     */
    name: string;
    /**
     * An optional path to where the built assets will be located, relative to the build context. If not set, App Platform will automatically scan for these directory names: `_static`, `dist`, `public`.
     */
    outputDir?: string;
    /**
     * An HTTP paths that should be routed to this component.
     *
     * @deprecated Service level routes are deprecated in favor of ingresses
     */
    routes: outputs.AppSpecStaticSiteRoute[];
    /**
     * An optional path to the working directory to use for the build.
     */
    sourceDir?: string;
}
export interface AppSpecStaticSiteBitbucket {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface AppSpecStaticSiteCors {
    /**
     * Whether browsers should expose the response to the client-side JavaScript code when the request’s credentials mode is `include`. This configures the Access-Control-Allow-Credentials header.
     */
    allowCredentials?: boolean;
    /**
     * The set of allowed HTTP request headers. This configures the Access-Control-Allow-Headers header.
     */
    allowHeaders?: string[];
    /**
     * The set of allowed HTTP methods. This configures the Access-Control-Allow-Methods header.
     */
    allowMethods?: string[];
    /**
     * The set of allowed CORS origins. This configures the Access-Control-Allow-Origin header.
     */
    allowOrigins?: outputs.AppSpecStaticSiteCorsAllowOrigins;
    /**
     * The set of HTTP response headers that browsers are allowed to access. This configures the Access-Control-Expose-Headers header.
     */
    exposeHeaders?: string[];
    /**
     * An optional duration specifying how long browsers can cache the results of a preflight request. This configures the Access-Control-Max-Age header. Example: `5h30m`.
     */
    maxAge?: string;
}
export interface AppSpecStaticSiteCorsAllowOrigins {
    /**
     * Exact string match.
     */
    exact?: string;
    /**
     * Prefix-based match.
     *
     * @deprecated Prefix-based matching has been deprecated in favor of regex-based matching.
     */
    prefix?: string;
    /**
     * RE2 style regex-based match.
     */
    regex?: string;
}
export interface AppSpecStaticSiteEnv {
    /**
     * The name of the environment variable.
     */
    key?: string;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: string;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type: string;
    /**
     * The value of the environment variable.
     */
    value?: string;
}
export interface AppSpecStaticSiteGit {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * The clone URL of the repo.
     */
    repoCloneUrl?: string;
}
export interface AppSpecStaticSiteGithub {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface AppSpecStaticSiteGitlab {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface AppSpecStaticSiteRoute {
    /**
     * Paths must start with `/` and must be unique within the app.
     */
    path?: string;
    /**
     * An optional flag to preserve the path that is forwarded to the backend service.
     */
    preservePathPrefix?: boolean;
}
export interface AppSpecVpc {
    /**
     * The ID of the VPC.
     */
    id: string;
}
export interface AppSpecWorker {
    /**
     * Describes an alert policy for the component.
     */
    alerts?: outputs.AppSpecWorkerAlert[];
    /**
     * Configuration for automatically scaling this component based on metrics.
     */
    autoscaling?: outputs.AppSpecWorkerAutoscaling;
    /**
     * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/bitbucket/install). Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    bitbucket?: outputs.AppSpecWorkerBitbucket;
    /**
     * An optional build command to run while building this component from source.
     */
    buildCommand?: string;
    /**
     * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
     */
    dockerfilePath?: string;
    /**
     * An environment slug describing the type of this app.
     */
    environmentSlug?: string;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: outputs.AppSpecWorkerEnv[];
    /**
     * A Git repo to use as the component's source. The repository must be able to be cloned without authentication. Only one of `git`, `github` or `gitlab` may be set.
     */
    git?: outputs.AppSpecWorkerGit;
    /**
     * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
     */
    github?: outputs.AppSpecWorkerGithub;
    /**
     * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
     */
    gitlab?: outputs.AppSpecWorkerGitlab;
    /**
     * An image to use as the component's source. Only one of `git`, `github`, `gitlab`, or `image` may be set.
     */
    image?: outputs.AppSpecWorkerImage;
    /**
     * The amount of instances that this component should be scaled to.
     */
    instanceCount?: number;
    /**
     * The instance size to use for this component. This determines the plan (basic or professional) and the available CPU and memory. The list of available instance sizes can be [found with the API](https://docs.digitalocean.com/reference/api/digitalocean/#tag/Apps/operation/apps_list_instanceSizes) or using the [doctl CLI](https://docs.digitalocean.com/reference/doctl/) (`doctl apps tier instance-size list`). Default: `basic-xxs`
     */
    instanceSizeSlug?: string;
    /**
     * Describes a log forwarding destination.
     */
    logDestinations?: outputs.AppSpecWorkerLogDestination[];
    /**
     * The name of the component.
     */
    name: string;
    /**
     * An optional run command to override the component's default.
     */
    runCommand?: string;
    /**
     * An optional path to the working directory to use for the build.
     */
    sourceDir?: string;
    /**
     * Contains a component's termination parameters.
     */
    termination?: outputs.AppSpecWorkerTermination;
}
export interface AppSpecWorkerAlert {
    /**
     * Specification for alert destination.
     */
    destinations?: outputs.AppSpecWorkerAlertDestinations;
    /**
     * Determines whether or not the alert is disabled (default: `false`).
     */
    disabled?: boolean;
    /**
     * The operator to use. This is either of `GREATER_THAN` or `LESS_THAN`.
     */
    operator: string;
    /**
     * The type of the alert to configure. Component app alert policies can be: `CPU_UTILIZATION`, `MEM_UTILIZATION`, or `RESTART_COUNT`.
     */
    rule: string;
    /**
     * The threshold for the type of the warning.
     */
    value: number;
    /**
     * The time before alerts should be triggered. This is may be one of: `FIVE_MINUTES`, `TEN_MINUTES`, `THIRTY_MINUTES`, `ONE_HOUR`.
     */
    window: string;
}
export interface AppSpecWorkerAlertDestinations {
    /**
     * Determines which emails receive alerts. The emails must be team members. If not set, the team's email is used by default.
     */
    emails?: string[];
    /**
     * Determines which slack channels or users receive alerts.
     */
    slackWebhooks?: outputs.AppSpecWorkerAlertDestinationsSlackWebhook[];
}
export interface AppSpecWorkerAlertDestinationsSlackWebhook {
    /**
     * The Slack channel to send notifications to.
     */
    channel: string;
    /**
     * The Slack webhook URL.
     */
    url: string;
}
export interface AppSpecWorkerAutoscaling {
    /**
     * The maximum amount of instances for this component. Must be more than min_instance_count.
     */
    maxInstanceCount: number;
    /**
     * The metrics that the component is scaled on.
     */
    metrics: outputs.AppSpecWorkerAutoscalingMetrics;
    /**
     * The minimum amount of instances for this component. Must be less than max_instance_count.
     */
    minInstanceCount: number;
}
export interface AppSpecWorkerAutoscalingMetrics {
    /**
     * Settings for scaling the component based on CPU utilization.
     */
    cpu?: outputs.AppSpecWorkerAutoscalingMetricsCpu;
}
export interface AppSpecWorkerAutoscalingMetricsCpu {
    /**
     * The average target CPU utilization for the component.
     */
    percent: number;
}
export interface AppSpecWorkerBitbucket {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface AppSpecWorkerEnv {
    /**
     * The name of the environment variable.
     */
    key?: string;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: string;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type: string;
    /**
     * The value of the environment variable.
     */
    value?: string;
}
export interface AppSpecWorkerGit {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * The clone URL of the repo.
     */
    repoCloneUrl?: string;
}
export interface AppSpecWorkerGithub {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface AppSpecWorkerGitlab {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface AppSpecWorkerImage {
    /**
     * Configures automatically deploying images pushed to DOCR.
     */
    deployOnPushes: outputs.AppSpecWorkerImageDeployOnPush[];
    /**
     * The image digest. Cannot be specified if `tag` is provided.
     */
    digest?: string;
    /**
     * The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
     */
    registry?: string;
    /**
     * The credentials required to access a private Docker Hub or GitHub registry, in the following syntax `<username>:<token>`.
     */
    registryCredentials?: string;
    /**
     * The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
     */
    registryType: string;
    /**
     * The repository name.
     */
    repository: string;
    /**
     * The repository tag. Defaults to `latest` if not provided.
     */
    tag?: string;
}
export interface AppSpecWorkerImageDeployOnPush {
    /**
     * Whether to automatically deploy images pushed to DOCR.
     */
    enabled?: boolean;
}
export interface AppSpecWorkerLogDestination {
    /**
     * Datadog configuration.
     */
    datadog?: outputs.AppSpecWorkerLogDestinationDatadog;
    /**
     * Logtail configuration.
     */
    logtail?: outputs.AppSpecWorkerLogDestinationLogtail;
    /**
     * Name of the log destination. Minimum length: 2. Maximum length: 42.
     */
    name: string;
    /**
     * OpenSearch configuration.
     */
    openSearch?: outputs.AppSpecWorkerLogDestinationOpenSearch;
    /**
     * Papertrail configuration.
     */
    papertrail?: outputs.AppSpecWorkerLogDestinationPapertrail;
}
export interface AppSpecWorkerLogDestinationDatadog {
    /**
     * Datadog API key.
     */
    apiKey: string;
    /**
     * Datadog HTTP log intake endpoint.
     */
    endpoint?: string;
}
export interface AppSpecWorkerLogDestinationLogtail {
    /**
     * Logtail token.
     */
    token: string;
}
export interface AppSpecWorkerLogDestinationOpenSearch {
    /**
     * Basic authentication details.
     */
    basicAuth: outputs.AppSpecWorkerLogDestinationOpenSearchBasicAuth;
    /**
     * The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if `clusterName` is not set, a new cluster will be provisioned.
     */
    clusterName?: string;
    /**
     * OpenSearch endpoint.
     */
    endpoint?: string;
    /**
     * OpenSearch index name.
     */
    indexName?: string;
}
export interface AppSpecWorkerLogDestinationOpenSearchBasicAuth {
    /**
     * Password for basic authentication.
     */
    password?: string;
    /**
     * user for basic authentication.
     */
    user?: string;
}
export interface AppSpecWorkerLogDestinationPapertrail {
    /**
     * Papertrail syslog endpoint.
     */
    endpoint: string;
}
export interface AppSpecWorkerTermination {
    /**
     * The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
     *
     * A `function` component can contain:
     */
    gracePeriodSeconds?: number;
}
export interface DatabaseClusterBackupRestore {
    /**
     * The timestamp of an existing database cluster backup in ISO8601 combined date and time format. The most recent backup will be used if excluded.
     *
     * This resource supports customized create timeouts. The default timeout is 30 minutes.
     */
    backupCreatedAt?: string;
    /**
     * The name of an existing database cluster from which the backup will be restored.
     */
    databaseName: string;
}
export interface DatabaseClusterMaintenanceWindow {
    /**
     * The day of the week on which to apply maintenance updates. May be one of `monday` through `sunday`.
     */
    day: string;
    /**
     * The hour in UTC at which maintenance updates will be applied as a string in 24 hour format, e.g. `13:00`.
     */
    hour: string;
}
export interface DatabaseFirewallRule {
    /**
     * The date and time when the firewall rule was created.
     */
    createdAt: string;
    /**
     * The type of resource that the firewall rule allows to access the database cluster. The possible values are: `droplet`, `k8s`, `ipAddr`, `tag`, or `app`.
     */
    type: string;
    /**
     * A unique identifier for the firewall rule.
     */
    uuid: string;
    /**
     * The ID of the specific resource, the name of a tag applied to a group of resources, or the IP address that the firewall rule allows to access the database cluster.
     */
    value: string;
}
export interface DatabaseKafkaTopicConfig {
    /**
     * The topic cleanup policy that describes whether messages should be deleted, compacted, or both when retention policies are violated.
     * This may be one of "delete", "compact", or "compactDelete".
     */
    cleanupPolicy: string;
    /**
     * The topic compression codecs used for a given topic.
     * This may be one of "uncompressed", "gzip", "snappy", "lz4", "producer", "zstd". "uncompressed" indicates that there is no compression and "producer" retains the original compression codec set by the producer.
     */
    compressionType: string;
    /**
     * The amount of time, in ms, that deleted records are retained.
     */
    deleteRetentionMs: string;
    /**
     * The amount of time, in ms, to wait before deleting a topic log segment from the filesystem.
     */
    fileDeleteDelayMs: string;
    /**
     * The number of messages accumulated on a topic partition before they are flushed to disk.
     */
    flushMessages: string;
    /**
     * The maximum time, in ms, that a topic is kept in memory before being flushed to disk.
     */
    flushMs: string;
    /**
     * The interval, in bytes, in which entries are added to the offset index.
     */
    indexIntervalBytes: string;
    /**
     * The maximum time, in ms, that a particular message will remain uncompacted. This will not apply if the `compressionType` is set to "uncompressed" or it is set to `producer` and the producer is not using compression.
     */
    maxCompactionLagMs: string;
    /**
     * The maximum size, in bytes, of a message.
     */
    maxMessageBytes: string;
    /**
     * Determines whether down-conversion of message formats for consumers is enabled.
     */
    messageDownConversionEnable: boolean;
    /**
     * The version of the inter-broker protocol that will be used. This may be one of "0.8.0", "0.8.1", "0.8.2", "0.9.0", "0.10.0", "0.10.0-IV0", "0.10.0-IV1", "0.10.1", "0.10.1-IV0", "0.10.1-IV1", "0.10.1-IV2", "0.10.2", "0.10.2-IV0", "0.11.0", "0.11.0-IV0", "0.11.0-IV1", "0.11.0-IV2", "1.0", "1.0-IV0", "1.1", "1.1-IV0", "2.0", "2.0-IV0", "2.0-IV1", "2.1", "2.1-IV0", "2.1-IV1", "2.1-IV2", "2.2", "2.2-IV0", "2.2-IV1", "2.3", "2.3-IV0", "2.3-IV1", "2.4", "2.4-IV0", "2.4-IV1", "2.5", "2.5-IV0", "2.6", "2.6-IV0", "2.7", "2.7-IV0", "2.7-IV1", "2.7-IV2", "2.8", "2.8-IV0", "2.8-IV1", "3.0", "3.0-IV0", "3.0-IV1", "3.1", "3.1-IV0", "3.2", "3.2-IV0", "3.3", "3.3-IV0", "3.3-IV1", "3.3-IV2", "3.3-IV3", "3.4", "3.4-IV0", "3.5", "3.5-IV0", "3.5-IV1", "3.5-IV2", "3.6", "3.6-IV0", "3.6-IV1", "3.6-IV2".
     */
    messageFormatVersion: string;
    /**
     * The maximum difference, in ms, between the timestamp specific in a message and when the broker receives the message.
     */
    messageTimestampDifferenceMaxMs: string;
    /**
     * Specifies which timestamp to use for the message. This may be one of "createTime" or "logAppendTime".
     */
    messageTimestampType: string;
    /**
     * A scale between 0.0 and 1.0 which controls the frequency of the compactor. Larger values mean more frequent compactions. This is often paired with `maxCompactionLagMs` to control the compactor frequency.
     */
    minCleanableDirtyRatio: number;
    minCompactionLagMs: string;
    /**
     * The number of replicas that must acknowledge a write before it is considered successful. -1 is a special setting to indicate that all nodes must ack a message before a write is considered successful. Default is 1, indicating at least 1 replica must acknowledge a write to be considered successful.
     */
    minInsyncReplicas?: number;
    /**
     * Determines whether to preallocate a file on disk when creating a new log segment within a topic.
     */
    preallocate: boolean;
    /**
     * The maximum size, in bytes, of a topic before messages are deleted. -1 is a special setting indicating that this setting has no limit.
     */
    retentionBytes: string;
    /**
     * The maximum time, in ms, that a topic log file is retained before deleting it. -1 is a special setting indicating that this setting has no limit.
     */
    retentionMs: string;
    /**
     * The maximum size, in bytes, of a single topic log file.
     */
    segmentBytes: string;
    /**
     * The maximum size, in bytes, of the offset index.
     */
    segmentIndexBytes: string;
    /**
     * The maximum time, in ms, subtracted from the scheduled segment disk flush time to avoid the thundering herd problem for segment flushing.
     */
    segmentJitterMs: string;
    /**
     * The maximum time, in ms, before the topic log will flush to disk.
     */
    segmentMs: string;
}
export interface DatabaseOnlineMigrationSource {
    /**
     * The name of the default database
     */
    dbName: string;
    /**
     * The FQDN pointing to the database cluster's current primary node.
     */
    host: string;
    /**
     * A randomly generated password for the default user.
     */
    password: string;
    /**
     * The port on which the database cluster is listening.
     */
    port: number;
    /**
     * The default user for the database.
     */
    username: string;
}
export interface DatabasePostgresqlConfigPgbouncer {
    autodbIdleTimeout: number;
    autodbMaxDbConnections: number;
    autodbPoolMode: string;
    autodbPoolSize: number;
    ignoreStartupParameters: string[];
    minPoolSize: number;
    serverIdleTimeout: number;
    serverLifetime: number;
    serverResetQueryAlways: boolean;
}
export interface DatabasePostgresqlConfigTimescaledb {
    maxBackgroundWorkers?: number;
}
export interface DatabaseUserSetting {
    /**
     * A set of ACLs (Access Control Lists) specifying permission on topics with a Kafka cluster. The properties of an individual ACL are described below:
     *
     * An individual ACL includes the following:
     */
    acls?: outputs.DatabaseUserSettingAcl[];
    opensearchAcls?: outputs.DatabaseUserSettingOpensearchAcl[];
}
export interface DatabaseUserSettingAcl {
    /**
     * An identifier for the ACL, this will be automatically assigned when you create an ACL entry
     */
    id: string;
    /**
     * The permission level applied to the ACL. This includes "admin", "consume", "produce", and "produceconsume". "admin" allows for producing and consuming as well as add/delete/update permission for topics. "consume" allows only for reading topic messages. "produce" allows only for writing topic messages. "produceconsume" allows for both reading and writing topic messages.
     */
    permission: string;
    /**
     * A regex for matching the topic(s) that this ACL should apply to. The regex can assume one of 3 patterns: "*", "<prefix>*", or "<literal>". "*" is a special value indicating a wildcard that matches on all topics. "<prefix>*" defines a regex that matches all topics with the prefix. "<literal>" performs an exact match on a topic name and only applies to that topic.
     */
    topic: string;
}
export interface DatabaseUserSettingOpensearchAcl {
    index: string;
    /**
     * The permission level applied to the ACL. This includes "admin", "consume", "produce", and "produceconsume". "admin" allows for producing and consuming as well as add/delete/update permission for topics. "consume" allows only for reading topic messages. "produce" allows only for writing topic messages. "produceconsume" allows for both reading and writing topic messages.
     */
    permission: string;
}
export interface DedicatedInferenceModelDeployment {
    /**
     * The GPU accelerators to allocate for this model deployment. Each `accelerators` block supports:
     */
    accelerators: outputs.DedicatedInferenceModelDeploymentAccelerator[];
    /**
     * The unique ID of the model.
     */
    modelId: string;
    /**
     * The provider of the model (e.g. `digitalocean`, `huggingface`).
     */
    modelProvider: string;
    /**
     * The slug identifier for the model to deploy.
     */
    modelSlug: string;
    /**
     * The provider-specific model ID. Required when modelProvider is 'hugging_face', optional for 'modelcatalog'.
     */
    providerModelId: string;
}
export interface DedicatedInferenceModelDeploymentAccelerator {
    /**
     * The slug identifier for the GPU accelerator type.
     */
    acceleratorSlug: string;
    /**
     * The number of accelerator units to allocate. Must be at least 1.
     */
    scale: number;
    /**
     * The accelerator type.
     */
    type: string;
}
export interface DropletAutoscaleConfig {
    /**
     * The cooldown duration between scaling events for the Droplet Autoscale pool.
     */
    cooldownMinutes?: number;
    /**
     * The maximum number of instances to maintain in the Droplet Autoscale pool.
     */
    maxInstances?: number;
    /**
     * The minimum number of instances to maintain in the Droplet Autoscale pool.
     */
    minInstances?: number;
    /**
     * The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool.
     */
    targetCpuUtilization?: number;
    /**
     * The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale
     * pool.
     */
    targetMemoryUtilization?: number;
    /**
     * The static number of instances to maintain in the pool Droplet Autoscale pool. This
     * argument cannot be used with any other config options.
     */
    targetNumberInstances?: number;
}
export interface DropletAutoscaleCurrentUtilization {
    /**
     * Average CPU utilization
     */
    cpu: number;
    /**
     * Average Memory utilization
     */
    memory: number;
}
export interface DropletAutoscaleDropletTemplate {
    /**
     * Image slug of the Droplet Autoscale pool underlying resource(s).
     */
    image: string;
    /**
     * Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s).
     */
    ipv6?: boolean;
    /**
     * Project UUID to create the Droplet Autoscale pool underlying resource(s).
     */
    projectId?: string;
    /**
     * A boolean indicating whether to enables public networking for the Droplet or not. By default, this is always enabled on new droplets. But, by explicitly setting it to false, you can create a droplet with public networking entirely disabled.
     */
    publicNetworking: boolean;
    /**
     * Region slug of the Droplet Autoscale pool underlying resource(s).
     */
    region: string;
    /**
     * Size slug of the Droplet Autoscale pool underlying resource(s).
     */
    size: string;
    /**
     * SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s).
     */
    sshKeys: string[];
    /**
     * List of tags to add to the Droplet Autoscale pool underlying resource(s).
     */
    tags?: string[];
    /**
     * Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a
     * cloud init script that user may configure to setup their application workload.
     */
    userData?: string;
    /**
     * VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred
     * from the specified `region` (default VPC).
     */
    vpcUuid?: string;
    /**
     * Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The
     * metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions.
     */
    withDropletAgent?: boolean;
}
export interface DropletBackupPolicy {
    /**
     * The hour of the day that the backup window will start (`0`, `4`, `8`, `12`, `16`, `20`).
     */
    hour?: number;
    /**
     * The backup plan used for the Droplet. The plan can be either `daily` or `weekly`.
     */
    plan?: string;
    /**
     * The day of the week on which the backup will occur (`SUN`, `MON`, `TUE`, `WED`, `THU`, `FRI`, `SAT`).
     */
    weekday?: string;
}
export interface FirewallInboundRule {
    /**
     * The ports on which traffic will be allowed
     * specified as a string containing a single port, a range (e.g. "8000-9000"),
     * or "1-65535" to open all ports for a protocol. Required for when protocol is
     * `tcp` or `udp`.
     */
    portRange?: string;
    /**
     * The type of traffic to be allowed.
     * This may be one of "tcp", "udp", or "icmp".
     */
    protocol: string;
    /**
     * An array of strings containing the IPv4
     * addresses, IPv6 addresses, IPv4 CIDRs, and/or IPv6 CIDRs from which the
     * inbound traffic will be accepted.
     */
    sourceAddresses?: string[];
    /**
     * An array containing the IDs of
     * the Droplets from which the inbound traffic will be accepted.
     */
    sourceDropletIds?: number[];
    /**
     * An array containing the IDs of
     * the Kubernetes clusters from which the inbound traffic will be accepted.
     */
    sourceKubernetesIds?: string[];
    /**
     * An array containing the IDs
     * of the Load Balancers from which the inbound traffic will be accepted.
     */
    sourceLoadBalancerUids?: string[];
    /**
     * An array containing the names of Tags
     * corresponding to groups of Droplets from which the inbound traffic
     * will be accepted.
     */
    sourceTags?: string[];
}
export interface FirewallOutboundRule {
    /**
     * An array of strings containing the IPv4
     * addresses, IPv6 addresses, IPv4 CIDRs, and/or IPv6 CIDRs to which the
     * outbound traffic will be allowed.
     */
    destinationAddresses?: string[];
    /**
     * An array containing the IDs of
     * the Droplets to which the outbound traffic will be allowed.
     */
    destinationDropletIds?: number[];
    /**
     * An array containing the IDs of
     * the Kubernetes clusters to which the outbound traffic will be allowed.
     */
    destinationKubernetesIds?: string[];
    /**
     * An array containing the IDs
     * of the Load Balancers to which the outbound traffic will be allowed.
     */
    destinationLoadBalancerUids?: string[];
    /**
     * An array containing the names of Tags
     * corresponding to groups of Droplets to which the outbound traffic will
     * be allowed.
     */
    destinationTags?: string[];
    /**
     * The ports on which traffic will be allowed
     * specified as a string containing a single port, a range (e.g. "8000-9000"),
     * or "1-65535" to open all ports for a protocol. Required for when protocol is
     * `tcp` or `udp`.
     */
    portRange?: string;
    /**
     * The type of traffic to be allowed.
     * This may be one of "tcp", "udp", or "icmp".
     */
    protocol: string;
}
export interface FirewallPendingChange {
    dropletId?: number;
    removing?: boolean;
    /**
     * A status string indicating the current state of the Firewall.
     * This can be "waiting", "succeeded", or "failed".
     */
    status?: string;
}
export interface GenaiAgentAgentGuardrail {
    /**
     * Agent UUID for the Guardrail
     */
    agentUuid?: string;
    /**
     * Created At timestamp for the Guardrail
     */
    createdAt: string;
    /**
     * Default response for the Guardrail
     */
    defaultResponse?: string;
    /**
     * Description of the Guardrail
     */
    description?: string;
    /**
     * Guardrail UUID
     */
    guardrailUuid?: string;
    /**
     * Indicates if the Guardrail is attached
     */
    isAttached: boolean;
    /**
     * Indicates if the Guardrail is default
     */
    isDefault?: boolean;
    /**
     * Name of Guardrail
     */
    name?: string;
    /**
     * Priority of the Guardrail
     */
    priority?: number;
    /**
     * Type of the Guardrail
     */
    type?: string;
    /**
     * Updated At timestamp for the Guardrail
     */
    updatedAt: string;
    /**
     * Guardrail UUID
     */
    uuid?: string;
}
export interface GenaiAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GenaiAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GenaiAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GenaiAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GenaiAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GenaiAgentChildAgent {
    /**
     * ID of the child agent
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GenaiAgentChildAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GenaiAgentChildAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GenaiAgentChildAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GenaiAgentChildAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GenaiAgentChildAgentChatbot[];
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GenaiAgentChildAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
}
export interface GenaiAgentChildAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GenaiAgentChildAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GenaiAgentChildAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GenaiAgentChildAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GenaiAgentChildAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GenaiAgentChildAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GenaiAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GenaiAgentFunction {
    /**
     * API Key value
     */
    apiKey?: string;
    /**
     * Created At timestamp for the Function
     */
    createdAt: string;
    /**
     * Description of the Function
     */
    description?: string;
    /**
     * Name of function
     */
    faasname?: string;
    /**
     * Namespace of function
     */
    faasnamespace?: string;
    /**
     * Guardrail UUID for the Function
     */
    guardrailUuid?: string;
    /**
     * Name of function
     */
    name?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GenaiAgentKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: outputs.GenaiAgentKnowledgeBaseLastIndexingJob;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: string;
    /**
     * Region of the Knowledge Base
     */
    region?: string;
    /**
     * List of tags
     */
    tags?: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId?: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GenaiAgentKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GenaiAgentModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GenaiAgentModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GenaiAgentModelVersion[];
}
export interface GenaiAgentModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GenaiAgentModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GenaiAgentOpenAiApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GenaiAgentParentAgent {
    /**
     * ID of the child agent
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GenaiAgentParentAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GenaiAgentParentAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GenaiAgentParentAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GenaiAgentParentAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GenaiAgentParentAgentChatbot[];
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GenaiAgentParentAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
}
export interface GenaiAgentParentAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GenaiAgentParentAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GenaiAgentParentAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GenaiAgentParentAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GenaiAgentParentAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GenaiAgentParentAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GenaiAgentTemplate {
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Description of the Agent Template
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction?: string;
    /**
     * K value for the Agent Template
     */
    k?: number;
    /**
     * List of Knowledge Bases
     */
    knowledgeBases?: outputs.GenaiAgentTemplateKnowledgeBase[];
    /**
     * Maximum tokens allowed
     */
    maxTokens?: number;
    /**
     * Model of the Agent Template
     */
    models?: outputs.GenaiAgentTemplateModel[];
    /**
     * Name of the Agent Template
     */
    name?: string;
    /**
     * Agent temperature setting
     */
    temperature?: number;
    /**
     * Top P sampling parameter
     */
    topP?: number;
    /**
     * Updated At timestamp for the Agent Template
     */
    updatedAt: string;
    /**
     * uuid of the Agent Template
     */
    uuid?: string;
}
export interface GenaiAgentTemplateKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: outputs.GenaiAgentTemplateKnowledgeBaseLastIndexingJob;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: string;
    /**
     * Region of the Knowledge Base
     */
    region?: string;
    /**
     * List of tags
     */
    tags?: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId?: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GenaiAgentTemplateKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GenaiAgentTemplateModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GenaiAgentTemplateModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GenaiAgentTemplateModelVersion[];
}
export interface GenaiAgentTemplateModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GenaiAgentTemplateModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GenaiKnowledgeBaseDataSourceSpacesDataSource {
    /**
     * The name of the Spaces bucket
     */
    bucketName?: string;
    /**
     * The path to the item in the bucket
     */
    itemPath?: string;
    /**
     * The region of the Spaces bucket
     */
    region?: string;
}
export interface GenaiKnowledgeBaseDataSourceWebCrawlerDataSource {
    /**
     * The base URL to crawl
     */
    baseUrl?: string;
    /**
     * Options for specifying how URLs found on pages should be handled.
     * - UNKNOWN: Default unknown value
     * - SCOPED: Only include the base URL.
     * - PATH: Crawl the base URL and linked pages within the URL path.
     * - DOMAIN: Crawl the base URL and linked pages within the same domain.
     * - SUBDOMAINS: Crawl the base URL and linked pages for any subdomain.
     */
    crawlingOption?: string;
    /**
     * Whether to embed media content
     */
    embedMedia?: boolean;
}
export interface GenaiKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GenaiOpenaiApiKeyModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GenaiOpenaiApiKeyModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GenaiOpenaiApiKeyModelVersion[];
}
export interface GenaiOpenaiApiKeyModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GenaiOpenaiApiKeyModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GetAppDedicatedIp {
    /**
     * The ID of the dedicated egress IP.
     */
    id: string;
    /**
     * The IP address of the dedicated egress IP.
     */
    ip: string;
    /**
     * The status of the dedicated egress IP.
     */
    status: string;
}
export interface GetAppSpec {
    /**
     * Describes an alert policy for the component.
     */
    alerts?: outputs.GetAppSpecAlert[];
    databases?: outputs.GetAppSpecDatabase[];
    /**
     * Whether to disable the edge cache for the app. Default is false, which enables the edge cache.
     */
    disableEdgeCache?: boolean;
    /**
     * Email obfuscation configuration for the app. Default is false, which keeps the email obfuscated.
     */
    disableEmailObfuscation?: boolean;
    domain: outputs.GetAppSpecDomain[];
    /**
     * @deprecated This attribute has been replaced by `domain` which supports additional functionality.
     */
    domains: string[];
    egresses?: outputs.GetAppSpecEgress[];
    /**
     * Whether to enable enhanced threat control for the app. Default is false. Set to true to enable enhanced threat control, putting additional security measures for Layer 7 DDoS attacks.
     */
    enhancedThreatControlEnabled?: boolean;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: outputs.GetAppSpecEnv[];
    /**
     * List of features which is applied to the app
     */
    features: string[];
    functions?: outputs.GetAppSpecFunction[];
    ingress: outputs.GetAppSpecIngress;
    jobs?: outputs.GetAppSpecJob[];
    /**
     * Specification to configure maintenance settings for the app, such as maintenance mode and archiving the app.
     */
    maintenance?: outputs.GetAppSpecMaintenance;
    /**
     * The name of the component.
     */
    name: string;
    /**
     * The slug for the DigitalOcean data center region hosting the app
     */
    region?: string;
    services?: outputs.GetAppSpecService[];
    staticSites?: outputs.GetAppSpecStaticSite[];
    vpcs?: outputs.GetAppSpecVpc[];
    workers?: outputs.GetAppSpecWorker[];
}
export interface GetAppSpecAlert {
    destinations?: outputs.GetAppSpecAlertDestinations;
    /**
     * Determines whether or not the alert is disabled (default: `false`).
     */
    disabled?: boolean;
    /**
     * The type of the alert to configure. Component app alert policies can be: `CPU_UTILIZATION`, `MEM_UTILIZATION`, or `RESTART_COUNT`.
     */
    rule: string;
}
export interface GetAppSpecAlertDestinations {
    emails?: string[];
    slackWebhooks?: outputs.GetAppSpecAlertDestinationsSlackWebhook[];
}
export interface GetAppSpecAlertDestinationsSlackWebhook {
    /**
     * The Slack channel to send notifications to.
     */
    channel: string;
    /**
     * The Slack webhook URL.
     */
    url: string;
}
export interface GetAppSpecDatabase {
    /**
     * The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if `clusterName` is not set, a new cluster will be provisioned.
     */
    clusterName?: string;
    /**
     * The name of the MySQL or PostgreSQL database to configure.
     */
    dbName?: string;
    /**
     * The name of the MySQL or PostgreSQL user to configure.
     */
    dbUser?: string;
    /**
     * The database engine to use (`MYSQL`, `PG`, `REDIS`, or `MONGODB`).
     */
    engine?: string;
    /**
     * The name of the component.
     */
    name?: string;
    /**
     * Whether this is a production or dev database.
     */
    production?: boolean;
    /**
     * The version of the database engine.
     */
    version?: string;
}
export interface GetAppSpecDomain {
    /**
     * The name of the component.
     */
    name: string;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type: string;
    /**
     * Indicates whether the domain includes all sub-domains, in addition to the given domain.
     */
    wildcard: boolean;
    /**
     * If the domain uses DigitalOcean DNS and you would like App Platform to automatically manage it for you, set this to the name of the domain on your account.
     */
    zone?: string;
}
export interface GetAppSpecEgress {
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type?: string;
}
export interface GetAppSpecEnv {
    /**
     * The name of the environment variable.
     */
    key?: string;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: string;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type: string;
    /**
     * The threshold for the type of the warning.
     */
    value?: string;
}
export interface GetAppSpecFunction {
    /**
     * Describes an alert policy for the component.
     */
    alerts?: outputs.GetAppSpecFunctionAlert[];
    /**
     * A Bitbucket repo to use as component's source. Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set. To read your repo, App Platform must be authorized to access your Bitbucket account. Go to this URL to link App Platform to your Bitbucket account: `https://cloud.digitalocean.com/apps/bitbucket/install`.
     */
    bitbucket?: outputs.GetAppSpecFunctionBitbucket;
    /**
     * The [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) policies of the app.
     *
     * @deprecated Service level CORS rules are deprecated in favor of ingresses
     */
    cors?: outputs.GetAppSpecFunctionCors;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: outputs.GetAppSpecFunctionEnv[];
    /**
     * A Git repo to use as the component's source. The repository must be able to be cloned without authentication.  Only one of `git`, `github` or `gitlab`  may be set.
     */
    git?: outputs.GetAppSpecFunctionGit;
    /**
     * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    github?: outputs.GetAppSpecFunctionGithub;
    /**
     * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    gitlab?: outputs.GetAppSpecFunctionGitlab;
    /**
     * Describes a log forwarding destination.
     */
    logDestinations?: outputs.GetAppSpecFunctionLogDestination[];
    /**
     * The name of the component.
     */
    name: string;
    /**
     * @deprecated Service level routes are deprecated in favor of ingresses
     */
    routes: outputs.GetAppSpecFunctionRoute[];
    /**
     * An optional path to the working directory to use for the build.
     */
    sourceDir?: string;
}
export interface GetAppSpecFunctionAlert {
    destinations?: outputs.GetAppSpecFunctionAlertDestinations;
    /**
     * Determines whether or not the alert is disabled (default: `false`).
     */
    disabled?: boolean;
    /**
     * The operator to use. This is either of `GREATER_THAN` or `LESS_THAN`.
     */
    operator: string;
    /**
     * The type of the alert to configure. Component app alert policies can be: `CPU_UTILIZATION`, `MEM_UTILIZATION`, or `RESTART_COUNT`.
     */
    rule: string;
    /**
     * The threshold for the type of the warning.
     */
    value: number;
    /**
     * The time before alerts should be triggered. This is may be one of: `FIVE_MINUTES`, `TEN_MINUTES`, `THIRTY_MINUTES`, `ONE_HOUR`.
     */
    window: string;
}
export interface GetAppSpecFunctionAlertDestinations {
    emails?: string[];
    slackWebhooks?: outputs.GetAppSpecFunctionAlertDestinationsSlackWebhook[];
}
export interface GetAppSpecFunctionAlertDestinationsSlackWebhook {
    /**
     * The Slack channel to send notifications to.
     */
    channel: string;
    /**
     * The Slack webhook URL.
     */
    url: string;
}
export interface GetAppSpecFunctionBitbucket {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface GetAppSpecFunctionCors {
    /**
     * Whether browsers should expose the response to the client-side JavaScript code when the request's credentials mode is `include`. This configures the `Access-Control-Allow-Credentials` header.
     */
    allowCredentials?: boolean;
    /**
     * The set of allowed HTTP request headers. This configures the `Access-Control-Allow-Headers` header.
     */
    allowHeaders?: string[];
    /**
     * The set of allowed HTTP methods. This configures the `Access-Control-Allow-Methods` header.
     */
    allowMethods?: string[];
    /**
     * The `Access-Control-Allow-Origin` can be
     */
    allowOrigins?: outputs.GetAppSpecFunctionCorsAllowOrigins;
    /**
     * The set of HTTP response headers that browsers are allowed to access. This configures the `Access-Control-Expose-Headers` header.
     */
    exposeHeaders?: string[];
    /**
     * An optional duration specifying how long browsers can cache the results of a preflight request. This configures the Access-Control-Max-Age header. Example: `5h30m`.
     */
    maxAge?: string;
}
export interface GetAppSpecFunctionCorsAllowOrigins {
    /**
     * The `Access-Control-Allow-Origin` header will be set to the client's origin only if the client's origin exactly matches the value you provide.
     */
    exact?: string;
    /**
     * The `Access-Control-Allow-Origin` header will be set to the client's origin if the beginning of the client's origin matches the value you provide.
     *
     * @deprecated Prefix-based matching has been deprecated in favor of regex-based matching.
     */
    prefix?: string;
    /**
     * The `Access-Control-Allow-Origin` header will be set to the client's origin if the client’s origin matches the regex you provide, in [RE2 style syntax](https://github.com/google/re2/wiki/Syntax).
     */
    regex?: string;
}
export interface GetAppSpecFunctionEnv {
    /**
     * The name of the environment variable.
     */
    key?: string;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: string;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type: string;
    /**
     * The threshold for the type of the warning.
     */
    value?: string;
}
export interface GetAppSpecFunctionGit {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * The clone URL of the repo.
     */
    repoCloneUrl?: string;
}
export interface GetAppSpecFunctionGithub {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface GetAppSpecFunctionGitlab {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface GetAppSpecFunctionLogDestination {
    /**
     * Datadog configuration.
     */
    datadog?: outputs.GetAppSpecFunctionLogDestinationDatadog;
    /**
     * Logtail configuration.
     */
    logtail?: outputs.GetAppSpecFunctionLogDestinationLogtail;
    /**
     * The name of the component.
     */
    name: string;
    /**
     * OpenSearch configuration.
     */
    openSearch?: outputs.GetAppSpecFunctionLogDestinationOpenSearch;
    /**
     * Papertrail configuration.
     */
    papertrail?: outputs.GetAppSpecFunctionLogDestinationPapertrail;
}
export interface GetAppSpecFunctionLogDestinationDatadog {
    /**
     * Datadog API key.
     */
    apiKey: string;
    /**
     * OpenSearch API Endpoint. Only HTTPS is supported. Format: https://<host>:<port>.
     */
    endpoint?: string;
}
export interface GetAppSpecFunctionLogDestinationLogtail {
    /**
     * Logtail token.
     */
    token: string;
}
export interface GetAppSpecFunctionLogDestinationOpenSearch {
    /**
     * OpenSearch basic auth
     */
    basicAuth: outputs.GetAppSpecFunctionLogDestinationOpenSearchBasicAuth;
    /**
     * The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if `clusterName` is not set, a new cluster will be provisioned.
     */
    clusterName?: string;
    /**
     * OpenSearch API Endpoint. Only HTTPS is supported. Format: https://<host>:<port>.
     */
    endpoint?: string;
    /**
     * The index name to use for the logs. If not set, the default index name is `logs`.
     */
    indexName?: string;
}
export interface GetAppSpecFunctionLogDestinationOpenSearchBasicAuth {
    /**
     * Password for user defined in User. Is required when endpoint is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster.
     */
    password?: string;
    /**
     * Username to authenticate with. Only required when endpoint is set. Defaults to doadmin when clusterName is set.
     */
    user?: string;
}
export interface GetAppSpecFunctionLogDestinationPapertrail {
    /**
     * OpenSearch API Endpoint. Only HTTPS is supported. Format: https://<host>:<port>.
     */
    endpoint: string;
}
export interface GetAppSpecFunctionRoute {
    /**
     * Paths must start with `/` and must be unique within the app.
     */
    path?: string;
    /**
     * An optional flag to preserve the path that is forwarded to the backend service.
     */
    preservePathPrefix?: boolean;
}
export interface GetAppSpecIngress {
    /**
     * The type of the alert to configure. Component app alert policies can be: `CPU_UTILIZATION`, `MEM_UTILIZATION`, or `RESTART_COUNT`.
     */
    rules?: outputs.GetAppSpecIngressRule[];
    secureHeader: outputs.GetAppSpecIngressSecureHeader;
}
export interface GetAppSpecIngressRule {
    component: outputs.GetAppSpecIngressRuleComponent;
    /**
     * The [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) policies of the app.
     */
    cors: outputs.GetAppSpecIngressRuleCors;
    match: outputs.GetAppSpecIngressRuleMatch;
    redirect?: outputs.GetAppSpecIngressRuleRedirect;
}
export interface GetAppSpecIngressRuleComponent {
    /**
     * The name of the component.
     */
    name: string;
    /**
     * An optional flag to preserve the path that is forwarded to the backend service.
     */
    preservePathPrefix: boolean;
    rewrite: string;
}
export interface GetAppSpecIngressRuleCors {
    /**
     * Whether browsers should expose the response to the client-side JavaScript code when the request's credentials mode is `include`. This configures the `Access-Control-Allow-Credentials` header.
     */
    allowCredentials?: boolean;
    /**
     * The set of allowed HTTP request headers. This configures the `Access-Control-Allow-Headers` header.
     */
    allowHeaders?: string[];
    /**
     * The set of allowed HTTP methods. This configures the `Access-Control-Allow-Methods` header.
     */
    allowMethods?: string[];
    /**
     * The `Access-Control-Allow-Origin` can be
     */
    allowOrigins?: outputs.GetAppSpecIngressRuleCorsAllowOrigins;
    /**
     * The set of HTTP response headers that browsers are allowed to access. This configures the `Access-Control-Expose-Headers` header.
     */
    exposeHeaders?: string[];
    /**
     * An optional duration specifying how long browsers can cache the results of a preflight request. This configures the Access-Control-Max-Age header. Example: `5h30m`.
     */
    maxAge?: string;
}
export interface GetAppSpecIngressRuleCorsAllowOrigins {
    /**
     * The `Access-Control-Allow-Origin` header will be set to the client's origin only if the client's origin exactly matches the value you provide.
     */
    exact?: string;
    /**
     * The `Access-Control-Allow-Origin` header will be set to the client's origin if the beginning of the client's origin matches the value you provide.
     *
     * @deprecated Prefix-based matching has been deprecated in favor of regex-based matching.
     */
    prefix?: string;
    /**
     * The `Access-Control-Allow-Origin` header will be set to the client's origin if the client’s origin matches the regex you provide, in [RE2 style syntax](https://github.com/google/re2/wiki/Syntax).
     */
    regex?: string;
}
export interface GetAppSpecIngressRuleMatch {
    authority: outputs.GetAppSpecIngressRuleMatchAuthority;
    /**
     * Paths must start with `/` and must be unique within the app.
     */
    path: outputs.GetAppSpecIngressRuleMatchPath;
}
export interface GetAppSpecIngressRuleMatchAuthority {
    /**
     * The `Access-Control-Allow-Origin` header will be set to the client's origin only if the client's origin exactly matches the value you provide.
     */
    exact: string;
}
export interface GetAppSpecIngressRuleMatchPath {
    /**
     * The `Access-Control-Allow-Origin` header will be set to the client's origin if the beginning of the client's origin matches the value you provide.
     */
    prefix: string;
}
export interface GetAppSpecIngressRuleRedirect {
    authority?: string;
    port?: number;
    redirectCode?: number;
    scheme?: string;
    uri?: string;
}
export interface GetAppSpecIngressSecureHeader {
    /**
     * The name of the environment variable.
     */
    key: string;
    /**
     * The threshold for the type of the warning.
     */
    value: string;
}
export interface GetAppSpecJob {
    /**
     * Describes an alert policy for the component.
     */
    alerts?: outputs.GetAppSpecJobAlert[];
    /**
     * A Bitbucket repo to use as component's source. Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set. To read your repo, App Platform must be authorized to access your Bitbucket account. Go to this URL to link App Platform to your Bitbucket account: `https://cloud.digitalocean.com/apps/bitbucket/install`.
     */
    bitbucket?: outputs.GetAppSpecJobBitbucket;
    /**
     * An optional build command to run while building this component from source.
     */
    buildCommand?: string;
    /**
     * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
     */
    dockerfilePath?: string;
    /**
     * An environment slug describing the type of this app.
     */
    environmentSlug?: string;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: outputs.GetAppSpecJobEnv[];
    /**
     * A Git repo to use as the component's source. The repository must be able to be cloned without authentication.  Only one of `git`, `github` or `gitlab`  may be set.
     */
    git?: outputs.GetAppSpecJobGit;
    /**
     * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    github?: outputs.GetAppSpecJobGithub;
    /**
     * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    gitlab?: outputs.GetAppSpecJobGitlab;
    /**
     * An image to use as the component's source. Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    image?: outputs.GetAppSpecJobImage;
    /**
     * The amount of instances that this component should be scaled to.
     */
    instanceCount?: number;
    /**
     * The instance size to use for this component.
     */
    instanceSizeSlug?: string;
    /**
     * The type of job and when it will be run during the deployment process. It may be one of:
     * - `UNSPECIFIED`: Default job type, will auto-complete to POST_DEPLOY kind.
     * - `PRE_DEPLOY`: Indicates a job that runs before an app deployment.
     * - `POST_DEPLOY`: Indicates a job that runs after an app deployment.
     * - `FAILED_DEPLOY`: Indicates a job that runs after a component fails to deploy.
     */
    kind?: string;
    /**
     * Describes a log forwarding destination.
     */
    logDestinations?: outputs.GetAppSpecJobLogDestination[];
    /**
     * The name of the component.
     */
    name: string;
    /**
     * An optional run command to override the component's default.
     */
    runCommand?: string;
    /**
     * An optional path to the working directory to use for the build.
     */
    sourceDir?: string;
    /**
     * Contains a component's termination parameters.
     */
    termination?: outputs.GetAppSpecJobTermination;
}
export interface GetAppSpecJobAlert {
    destinations?: outputs.GetAppSpecJobAlertDestinations;
    /**
     * Determines whether or not the alert is disabled (default: `false`).
     */
    disabled?: boolean;
    /**
     * The operator to use. This is either of `GREATER_THAN` or `LESS_THAN`.
     */
    operator: string;
    /**
     * The type of the alert to configure. Component app alert policies can be: `CPU_UTILIZATION`, `MEM_UTILIZATION`, or `RESTART_COUNT`.
     */
    rule: string;
    /**
     * The threshold for the type of the warning.
     */
    value: number;
    /**
     * The time before alerts should be triggered. This is may be one of: `FIVE_MINUTES`, `TEN_MINUTES`, `THIRTY_MINUTES`, `ONE_HOUR`.
     */
    window: string;
}
export interface GetAppSpecJobAlertDestinations {
    emails?: string[];
    slackWebhooks?: outputs.GetAppSpecJobAlertDestinationsSlackWebhook[];
}
export interface GetAppSpecJobAlertDestinationsSlackWebhook {
    /**
     * The Slack channel to send notifications to.
     */
    channel: string;
    /**
     * The Slack webhook URL.
     */
    url: string;
}
export interface GetAppSpecJobBitbucket {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface GetAppSpecJobEnv {
    /**
     * The name of the environment variable.
     */
    key?: string;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: string;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type: string;
    /**
     * The threshold for the type of the warning.
     */
    value?: string;
}
export interface GetAppSpecJobGit {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * The clone URL of the repo.
     */
    repoCloneUrl?: string;
}
export interface GetAppSpecJobGithub {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface GetAppSpecJobGitlab {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface GetAppSpecJobImage {
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPushes: outputs.GetAppSpecJobImageDeployOnPush[];
    /**
     * The image digest. Cannot be specified if `tag` is provided.
     */
    digest?: string;
    /**
     * The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
     */
    registry?: string;
    /**
     * Access credentials for third-party registries
     */
    registryCredentials?: string;
    /**
     * The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
     */
    registryType: string;
    /**
     * The repository name.
     */
    repository: string;
    /**
     * The repository tag. Defaults to `latest` if not provided.
     */
    tag?: string;
}
export interface GetAppSpecJobImageDeployOnPush {
    /**
     * Whether to automatically deploy images pushed to DOCR.
     */
    enabled?: boolean;
}
export interface GetAppSpecJobLogDestination {
    /**
     * Datadog configuration.
     */
    datadog?: outputs.GetAppSpecJobLogDestinationDatadog;
    /**
     * Logtail configuration.
     */
    logtail?: outputs.GetAppSpecJobLogDestinationLogtail;
    /**
     * The name of the component.
     */
    name: string;
    /**
     * OpenSearch configuration.
     */
    openSearch?: outputs.GetAppSpecJobLogDestinationOpenSearch;
    /**
     * Papertrail configuration.
     */
    papertrail?: outputs.GetAppSpecJobLogDestinationPapertrail;
}
export interface GetAppSpecJobLogDestinationDatadog {
    /**
     * Datadog API key.
     */
    apiKey: string;
    /**
     * OpenSearch API Endpoint. Only HTTPS is supported. Format: https://<host>:<port>.
     */
    endpoint?: string;
}
export interface GetAppSpecJobLogDestinationLogtail {
    /**
     * Logtail token.
     */
    token: string;
}
export interface GetAppSpecJobLogDestinationOpenSearch {
    /**
     * OpenSearch basic auth
     */
    basicAuth: outputs.GetAppSpecJobLogDestinationOpenSearchBasicAuth;
    /**
     * The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if `clusterName` is not set, a new cluster will be provisioned.
     */
    clusterName?: string;
    /**
     * OpenSearch API Endpoint. Only HTTPS is supported. Format: https://<host>:<port>.
     */
    endpoint?: string;
    /**
     * The index name to use for the logs. If not set, the default index name is `logs`.
     */
    indexName?: string;
}
export interface GetAppSpecJobLogDestinationOpenSearchBasicAuth {
    /**
     * Password for user defined in User. Is required when endpoint is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster.
     */
    password?: string;
    /**
     * Username to authenticate with. Only required when endpoint is set. Defaults to doadmin when clusterName is set.
     */
    user?: string;
}
export interface GetAppSpecJobLogDestinationPapertrail {
    /**
     * OpenSearch API Endpoint. Only HTTPS is supported. Format: https://<host>:<port>.
     */
    endpoint: string;
}
export interface GetAppSpecJobTermination {
    /**
     * The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
     */
    gracePeriodSeconds?: number;
}
export interface GetAppSpecMaintenance {
    /**
     * Indicates whether the app should be archived. Setting this to true implies that enabled is set to true.
     */
    archive?: boolean;
    /**
     * Whether to automatically deploy images pushed to DOCR.
     */
    enabled?: boolean;
    /**
     * A custom offline page to display when maintenance mode is enabled or the app is archived.
     */
    offlinePageUrl?: string;
}
export interface GetAppSpecService {
    /**
     * Describes an alert policy for the component.
     */
    alerts?: outputs.GetAppSpecServiceAlert[];
    /**
     * Configuration for automatically scaling this component based on metrics.
     */
    autoscaling?: outputs.GetAppSpecServiceAutoscaling;
    /**
     * A Bitbucket repo to use as component's source. Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set. To read your repo, App Platform must be authorized to access your Bitbucket account. Go to this URL to link App Platform to your Bitbucket account: `https://cloud.digitalocean.com/apps/bitbucket/install`.
     */
    bitbucket?: outputs.GetAppSpecServiceBitbucket;
    /**
     * An optional build command to run while building this component from source.
     */
    buildCommand?: string;
    /**
     * The [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) policies of the app.
     *
     * @deprecated Service level CORS rules are deprecated in favor of ingresses
     */
    cors?: outputs.GetAppSpecServiceCors;
    /**
     * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
     */
    dockerfilePath?: string;
    /**
     * An environment slug describing the type of this app.
     */
    environmentSlug?: string;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: outputs.GetAppSpecServiceEnv[];
    /**
     * A Git repo to use as the component's source. The repository must be able to be cloned without authentication.  Only one of `git`, `github` or `gitlab`  may be set.
     */
    git?: outputs.GetAppSpecServiceGit;
    /**
     * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    github?: outputs.GetAppSpecServiceGithub;
    /**
     * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    gitlab?: outputs.GetAppSpecServiceGitlab;
    /**
     * A health check to determine the availability of this component.
     */
    healthCheck?: outputs.GetAppSpecServiceHealthCheck;
    /**
     * The internal port on which this service's run command will listen.
     */
    httpPort: number;
    /**
     * An image to use as the component's source. Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    image?: outputs.GetAppSpecServiceImage;
    /**
     * The amount of instances that this component should be scaled to.
     */
    instanceCount?: number;
    /**
     * The instance size to use for this component.
     */
    instanceSizeSlug?: string;
    /**
     * A list of ports on which this service will listen for internal traffic.
     */
    internalPorts: number[];
    /**
     * Describes a log forwarding destination.
     */
    logDestinations?: outputs.GetAppSpecServiceLogDestination[];
    /**
     * The name of the component.
     */
    name: string;
    /**
     * @deprecated Service level routes are deprecated in favor of ingresses
     */
    routes: outputs.GetAppSpecServiceRoute[];
    /**
     * An optional run command to override the component's default.
     */
    runCommand: string;
    /**
     * An optional path to the working directory to use for the build.
     */
    sourceDir?: string;
    /**
     * Contains a component's termination parameters.
     */
    termination?: outputs.GetAppSpecServiceTermination;
}
export interface GetAppSpecServiceAlert {
    destinations?: outputs.GetAppSpecServiceAlertDestinations;
    /**
     * Determines whether or not the alert is disabled (default: `false`).
     */
    disabled?: boolean;
    /**
     * The operator to use. This is either of `GREATER_THAN` or `LESS_THAN`.
     */
    operator: string;
    /**
     * The type of the alert to configure. Component app alert policies can be: `CPU_UTILIZATION`, `MEM_UTILIZATION`, or `RESTART_COUNT`.
     */
    rule: string;
    /**
     * The threshold for the type of the warning.
     */
    value: number;
    /**
     * The time before alerts should be triggered. This is may be one of: `FIVE_MINUTES`, `TEN_MINUTES`, `THIRTY_MINUTES`, `ONE_HOUR`.
     */
    window: string;
}
export interface GetAppSpecServiceAlertDestinations {
    emails?: string[];
    slackWebhooks?: outputs.GetAppSpecServiceAlertDestinationsSlackWebhook[];
}
export interface GetAppSpecServiceAlertDestinationsSlackWebhook {
    /**
     * The Slack channel to send notifications to.
     */
    channel: string;
    /**
     * The Slack webhook URL.
     */
    url: string;
}
export interface GetAppSpecServiceAutoscaling {
    /**
     * The maximum amount of instances for this component. Must be more than min_instance_count.
     */
    maxInstanceCount: number;
    /**
     * The metrics that the component is scaled on.
     */
    metrics: outputs.GetAppSpecServiceAutoscalingMetrics;
    /**
     * The minimum amount of instances for this component. Must be less than max_instance_count.
     */
    minInstanceCount: number;
}
export interface GetAppSpecServiceAutoscalingMetrics {
    /**
     * Settings for scaling the component based on CPU utilization.
     */
    cpu?: outputs.GetAppSpecServiceAutoscalingMetricsCpu;
}
export interface GetAppSpecServiceAutoscalingMetricsCpu {
    /**
     * The average target CPU utilization for the component.
     */
    percent: number;
}
export interface GetAppSpecServiceBitbucket {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface GetAppSpecServiceCors {
    /**
     * Whether browsers should expose the response to the client-side JavaScript code when the request's credentials mode is `include`. This configures the `Access-Control-Allow-Credentials` header.
     */
    allowCredentials?: boolean;
    /**
     * The set of allowed HTTP request headers. This configures the `Access-Control-Allow-Headers` header.
     */
    allowHeaders?: string[];
    /**
     * The set of allowed HTTP methods. This configures the `Access-Control-Allow-Methods` header.
     */
    allowMethods?: string[];
    /**
     * The `Access-Control-Allow-Origin` can be
     */
    allowOrigins?: outputs.GetAppSpecServiceCorsAllowOrigins;
    /**
     * The set of HTTP response headers that browsers are allowed to access. This configures the `Access-Control-Expose-Headers` header.
     */
    exposeHeaders?: string[];
    /**
     * An optional duration specifying how long browsers can cache the results of a preflight request. This configures the Access-Control-Max-Age header. Example: `5h30m`.
     */
    maxAge?: string;
}
export interface GetAppSpecServiceCorsAllowOrigins {
    /**
     * The `Access-Control-Allow-Origin` header will be set to the client's origin only if the client's origin exactly matches the value you provide.
     */
    exact?: string;
    /**
     * The `Access-Control-Allow-Origin` header will be set to the client's origin if the beginning of the client's origin matches the value you provide.
     *
     * @deprecated Prefix-based matching has been deprecated in favor of regex-based matching.
     */
    prefix?: string;
    /**
     * The `Access-Control-Allow-Origin` header will be set to the client's origin if the client’s origin matches the regex you provide, in [RE2 style syntax](https://github.com/google/re2/wiki/Syntax).
     */
    regex?: string;
}
export interface GetAppSpecServiceEnv {
    /**
     * The name of the environment variable.
     */
    key?: string;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: string;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type: string;
    /**
     * The threshold for the type of the warning.
     */
    value?: string;
}
export interface GetAppSpecServiceGit {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * The clone URL of the repo.
     */
    repoCloneUrl?: string;
}
export interface GetAppSpecServiceGithub {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface GetAppSpecServiceGitlab {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface GetAppSpecServiceHealthCheck {
    /**
     * The number of failed health checks before considered unhealthy.
     */
    failureThreshold?: number;
    /**
     * The route path used for the HTTP health check ping.
     */
    httpPath?: string;
    /**
     * The number of seconds to wait before beginning health checks.
     */
    initialDelaySeconds?: number;
    /**
     * The number of seconds to wait between health checks.
     */
    periodSeconds?: number;
    /**
     * The port on which the health check will be performed. If not set, the health check will be performed on the component's http_port.
     */
    port?: number;
    /**
     * The number of successful health checks before considered healthy.
     */
    successThreshold?: number;
    /**
     * The number of seconds after which the check times out.
     */
    timeoutSeconds?: number;
}
export interface GetAppSpecServiceImage {
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPushes: outputs.GetAppSpecServiceImageDeployOnPush[];
    /**
     * The image digest. Cannot be specified if `tag` is provided.
     */
    digest?: string;
    /**
     * The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
     */
    registry?: string;
    /**
     * Access credentials for third-party registries
     */
    registryCredentials?: string;
    /**
     * The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
     */
    registryType: string;
    /**
     * The repository name.
     */
    repository: string;
    /**
     * The repository tag. Defaults to `latest` if not provided.
     */
    tag?: string;
}
export interface GetAppSpecServiceImageDeployOnPush {
    /**
     * Whether to automatically deploy images pushed to DOCR.
     */
    enabled?: boolean;
}
export interface GetAppSpecServiceLogDestination {
    /**
     * Datadog configuration.
     */
    datadog?: outputs.GetAppSpecServiceLogDestinationDatadog;
    /**
     * Logtail configuration.
     */
    logtail?: outputs.GetAppSpecServiceLogDestinationLogtail;
    /**
     * The name of the component.
     */
    name: string;
    /**
     * OpenSearch configuration.
     */
    openSearch?: outputs.GetAppSpecServiceLogDestinationOpenSearch;
    /**
     * Papertrail configuration.
     */
    papertrail?: outputs.GetAppSpecServiceLogDestinationPapertrail;
}
export interface GetAppSpecServiceLogDestinationDatadog {
    /**
     * Datadog API key.
     */
    apiKey: string;
    /**
     * OpenSearch API Endpoint. Only HTTPS is supported. Format: https://<host>:<port>.
     */
    endpoint?: string;
}
export interface GetAppSpecServiceLogDestinationLogtail {
    /**
     * Logtail token.
     */
    token: string;
}
export interface GetAppSpecServiceLogDestinationOpenSearch {
    /**
     * OpenSearch basic auth
     */
    basicAuth: outputs.GetAppSpecServiceLogDestinationOpenSearchBasicAuth;
    /**
     * The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if `clusterName` is not set, a new cluster will be provisioned.
     */
    clusterName?: string;
    /**
     * OpenSearch API Endpoint. Only HTTPS is supported. Format: https://<host>:<port>.
     */
    endpoint?: string;
    /**
     * The index name to use for the logs. If not set, the default index name is `logs`.
     */
    indexName?: string;
}
export interface GetAppSpecServiceLogDestinationOpenSearchBasicAuth {
    /**
     * Password for user defined in User. Is required when endpoint is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster.
     */
    password?: string;
    /**
     * Username to authenticate with. Only required when endpoint is set. Defaults to doadmin when clusterName is set.
     */
    user?: string;
}
export interface GetAppSpecServiceLogDestinationPapertrail {
    /**
     * OpenSearch API Endpoint. Only HTTPS is supported. Format: https://<host>:<port>.
     */
    endpoint: string;
}
export interface GetAppSpecServiceRoute {
    /**
     * Paths must start with `/` and must be unique within the app.
     */
    path?: string;
    /**
     * An optional flag to preserve the path that is forwarded to the backend service.
     */
    preservePathPrefix?: boolean;
}
export interface GetAppSpecServiceTermination {
    /**
     * The number of seconds to wait between selecting a container instance for termination and issuing the TERM signal. Selecting a container instance for termination begins an asynchronous drain of new requests on upstream load-balancers. Default: 15 seconds, Minimum 1, Maximum 110.
     */
    drainSeconds?: number;
    /**
     * The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
     */
    gracePeriodSeconds?: number;
}
export interface GetAppSpecStaticSite {
    /**
     * A Bitbucket repo to use as component's source. Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set. To read your repo, App Platform must be authorized to access your Bitbucket account. Go to this URL to link App Platform to your Bitbucket account: `https://cloud.digitalocean.com/apps/bitbucket/install`.
     */
    bitbucket?: outputs.GetAppSpecStaticSiteBitbucket;
    /**
     * An optional build command to run while building this component from source.
     */
    buildCommand?: string;
    /**
     * The name of the document to use as the fallback for any requests to documents that are not found when serving this static site.
     */
    catchallDocument?: string;
    /**
     * The [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) policies of the app.
     *
     * @deprecated Service level CORS rules are deprecated in favor of ingresses
     */
    cors?: outputs.GetAppSpecStaticSiteCors;
    /**
     * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
     */
    dockerfilePath?: string;
    /**
     * An environment slug describing the type of this app.
     */
    environmentSlug?: string;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: outputs.GetAppSpecStaticSiteEnv[];
    /**
     * The name of the error document to use when serving this static site.
     */
    errorDocument?: string;
    /**
     * A Git repo to use as the component's source. The repository must be able to be cloned without authentication.  Only one of `git`, `github` or `gitlab`  may be set.
     */
    git?: outputs.GetAppSpecStaticSiteGit;
    /**
     * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    github?: outputs.GetAppSpecStaticSiteGithub;
    /**
     * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    gitlab?: outputs.GetAppSpecStaticSiteGitlab;
    /**
     * The name of the index document to use when serving this static site.
     */
    indexDocument?: string;
    /**
     * The name of the component.
     */
    name: string;
    /**
     * An optional path to where the built assets will be located, relative to the build context. If not set, App Platform will automatically scan for these directory names: `_static`, `dist`, `public`.
     */
    outputDir?: string;
    /**
     * @deprecated Service level routes are deprecated in favor of ingresses
     */
    routes: outputs.GetAppSpecStaticSiteRoute[];
    /**
     * An optional path to the working directory to use for the build.
     */
    sourceDir?: string;
}
export interface GetAppSpecStaticSiteBitbucket {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface GetAppSpecStaticSiteCors {
    /**
     * Whether browsers should expose the response to the client-side JavaScript code when the request's credentials mode is `include`. This configures the `Access-Control-Allow-Credentials` header.
     */
    allowCredentials?: boolean;
    /**
     * The set of allowed HTTP request headers. This configures the `Access-Control-Allow-Headers` header.
     */
    allowHeaders?: string[];
    /**
     * The set of allowed HTTP methods. This configures the `Access-Control-Allow-Methods` header.
     */
    allowMethods?: string[];
    /**
     * The `Access-Control-Allow-Origin` can be
     */
    allowOrigins?: outputs.GetAppSpecStaticSiteCorsAllowOrigins;
    /**
     * The set of HTTP response headers that browsers are allowed to access. This configures the `Access-Control-Expose-Headers` header.
     */
    exposeHeaders?: string[];
    /**
     * An optional duration specifying how long browsers can cache the results of a preflight request. This configures the Access-Control-Max-Age header. Example: `5h30m`.
     */
    maxAge?: string;
}
export interface GetAppSpecStaticSiteCorsAllowOrigins {
    /**
     * The `Access-Control-Allow-Origin` header will be set to the client's origin only if the client's origin exactly matches the value you provide.
     */
    exact?: string;
    /**
     * The `Access-Control-Allow-Origin` header will be set to the client's origin if the beginning of the client's origin matches the value you provide.
     *
     * @deprecated Prefix-based matching has been deprecated in favor of regex-based matching.
     */
    prefix?: string;
    /**
     * The `Access-Control-Allow-Origin` header will be set to the client's origin if the client’s origin matches the regex you provide, in [RE2 style syntax](https://github.com/google/re2/wiki/Syntax).
     */
    regex?: string;
}
export interface GetAppSpecStaticSiteEnv {
    /**
     * The name of the environment variable.
     */
    key?: string;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: string;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type: string;
    /**
     * The threshold for the type of the warning.
     */
    value?: string;
}
export interface GetAppSpecStaticSiteGit {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * The clone URL of the repo.
     */
    repoCloneUrl?: string;
}
export interface GetAppSpecStaticSiteGithub {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface GetAppSpecStaticSiteGitlab {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface GetAppSpecStaticSiteRoute {
    /**
     * Paths must start with `/` and must be unique within the app.
     */
    path?: string;
    /**
     * An optional flag to preserve the path that is forwarded to the backend service.
     */
    preservePathPrefix?: boolean;
}
export interface GetAppSpecVpc {
    /**
     * The ID of the dedicated egress IP.
     */
    id: string;
}
export interface GetAppSpecWorker {
    /**
     * Describes an alert policy for the component.
     */
    alerts?: outputs.GetAppSpecWorkerAlert[];
    /**
     * Configuration for automatically scaling this component based on metrics.
     */
    autoscaling?: outputs.GetAppSpecWorkerAutoscaling;
    /**
     * A Bitbucket repo to use as component's source. Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set. To read your repo, App Platform must be authorized to access your Bitbucket account. Go to this URL to link App Platform to your Bitbucket account: `https://cloud.digitalocean.com/apps/bitbucket/install`.
     */
    bitbucket?: outputs.GetAppSpecWorkerBitbucket;
    /**
     * An optional build command to run while building this component from source.
     */
    buildCommand?: string;
    /**
     * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
     */
    dockerfilePath?: string;
    /**
     * An environment slug describing the type of this app.
     */
    environmentSlug?: string;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: outputs.GetAppSpecWorkerEnv[];
    /**
     * A Git repo to use as the component's source. The repository must be able to be cloned without authentication.  Only one of `git`, `github` or `gitlab`  may be set.
     */
    git?: outputs.GetAppSpecWorkerGit;
    /**
     * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    github?: outputs.GetAppSpecWorkerGithub;
    /**
     * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    gitlab?: outputs.GetAppSpecWorkerGitlab;
    /**
     * An image to use as the component's source. Only one of `git`, `github`, `bitbucket`, `gitlab`, or `image` may be set.
     */
    image?: outputs.GetAppSpecWorkerImage;
    /**
     * The amount of instances that this component should be scaled to.
     */
    instanceCount?: number;
    /**
     * The instance size to use for this component.
     */
    instanceSizeSlug?: string;
    /**
     * Describes a log forwarding destination.
     */
    logDestinations?: outputs.GetAppSpecWorkerLogDestination[];
    /**
     * The name of the component.
     */
    name: string;
    /**
     * An optional run command to override the component's default.
     */
    runCommand?: string;
    /**
     * An optional path to the working directory to use for the build.
     */
    sourceDir?: string;
    /**
     * Contains a component's termination parameters.
     */
    termination?: outputs.GetAppSpecWorkerTermination;
}
export interface GetAppSpecWorkerAlert {
    destinations?: outputs.GetAppSpecWorkerAlertDestinations;
    /**
     * Determines whether or not the alert is disabled (default: `false`).
     */
    disabled?: boolean;
    /**
     * The operator to use. This is either of `GREATER_THAN` or `LESS_THAN`.
     */
    operator: string;
    /**
     * The type of the alert to configure. Component app alert policies can be: `CPU_UTILIZATION`, `MEM_UTILIZATION`, or `RESTART_COUNT`.
     */
    rule: string;
    /**
     * The threshold for the type of the warning.
     */
    value: number;
    /**
     * The time before alerts should be triggered. This is may be one of: `FIVE_MINUTES`, `TEN_MINUTES`, `THIRTY_MINUTES`, `ONE_HOUR`.
     */
    window: string;
}
export interface GetAppSpecWorkerAlertDestinations {
    emails?: string[];
    slackWebhooks?: outputs.GetAppSpecWorkerAlertDestinationsSlackWebhook[];
}
export interface GetAppSpecWorkerAlertDestinationsSlackWebhook {
    /**
     * The Slack channel to send notifications to.
     */
    channel: string;
    /**
     * The Slack webhook URL.
     */
    url: string;
}
export interface GetAppSpecWorkerAutoscaling {
    /**
     * The maximum amount of instances for this component. Must be more than min_instance_count.
     */
    maxInstanceCount: number;
    /**
     * The metrics that the component is scaled on.
     */
    metrics: outputs.GetAppSpecWorkerAutoscalingMetrics;
    /**
     * The minimum amount of instances for this component. Must be less than max_instance_count.
     */
    minInstanceCount: number;
}
export interface GetAppSpecWorkerAutoscalingMetrics {
    /**
     * Settings for scaling the component based on CPU utilization.
     */
    cpu?: outputs.GetAppSpecWorkerAutoscalingMetricsCpu;
}
export interface GetAppSpecWorkerAutoscalingMetricsCpu {
    /**
     * The average target CPU utilization for the component.
     */
    percent: number;
}
export interface GetAppSpecWorkerBitbucket {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface GetAppSpecWorkerEnv {
    /**
     * The name of the environment variable.
     */
    key?: string;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: string;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type: string;
    /**
     * The threshold for the type of the warning.
     */
    value?: string;
}
export interface GetAppSpecWorkerGit {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * The clone URL of the repo.
     */
    repoCloneUrl?: string;
}
export interface GetAppSpecWorkerGithub {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface GetAppSpecWorkerGitlab {
    /**
     * The name of the branch to use.
     */
    branch?: string;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: boolean;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: string;
}
export interface GetAppSpecWorkerImage {
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPushes: outputs.GetAppSpecWorkerImageDeployOnPush[];
    /**
     * The image digest. Cannot be specified if `tag` is provided.
     */
    digest?: string;
    /**
     * The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
     */
    registry?: string;
    /**
     * Access credentials for third-party registries
     */
    registryCredentials?: string;
    /**
     * The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
     */
    registryType: string;
    /**
     * The repository name.
     */
    repository: string;
    /**
     * The repository tag. Defaults to `latest` if not provided.
     */
    tag?: string;
}
export interface GetAppSpecWorkerImageDeployOnPush {
    /**
     * Whether to automatically deploy images pushed to DOCR.
     */
    enabled?: boolean;
}
export interface GetAppSpecWorkerLogDestination {
    /**
     * Datadog configuration.
     */
    datadog?: outputs.GetAppSpecWorkerLogDestinationDatadog;
    /**
     * Logtail configuration.
     */
    logtail?: outputs.GetAppSpecWorkerLogDestinationLogtail;
    /**
     * The name of the component.
     */
    name: string;
    /**
     * OpenSearch configuration.
     */
    openSearch?: outputs.GetAppSpecWorkerLogDestinationOpenSearch;
    /**
     * Papertrail configuration.
     */
    papertrail?: outputs.GetAppSpecWorkerLogDestinationPapertrail;
}
export interface GetAppSpecWorkerLogDestinationDatadog {
    /**
     * Datadog API key.
     */
    apiKey: string;
    /**
     * OpenSearch API Endpoint. Only HTTPS is supported. Format: https://<host>:<port>.
     */
    endpoint?: string;
}
export interface GetAppSpecWorkerLogDestinationLogtail {
    /**
     * Logtail token.
     */
    token: string;
}
export interface GetAppSpecWorkerLogDestinationOpenSearch {
    /**
     * OpenSearch basic auth
     */
    basicAuth: outputs.GetAppSpecWorkerLogDestinationOpenSearchBasicAuth;
    /**
     * The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if `clusterName` is not set, a new cluster will be provisioned.
     */
    clusterName?: string;
    /**
     * OpenSearch API Endpoint. Only HTTPS is supported. Format: https://<host>:<port>.
     */
    endpoint?: string;
    /**
     * The index name to use for the logs. If not set, the default index name is `logs`.
     */
    indexName?: string;
}
export interface GetAppSpecWorkerLogDestinationOpenSearchBasicAuth {
    /**
     * Password for user defined in User. Is required when endpoint is set. Cannot be set if using a DigitalOcean DBaaS OpenSearch cluster.
     */
    password?: string;
    /**
     * Username to authenticate with. Only required when endpoint is set. Defaults to doadmin when clusterName is set.
     */
    user?: string;
}
export interface GetAppSpecWorkerLogDestinationPapertrail {
    /**
     * OpenSearch API Endpoint. Only HTTPS is supported. Format: https://<host>:<port>.
     */
    endpoint: string;
}
export interface GetAppSpecWorkerTermination {
    /**
     * The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
     */
    gracePeriodSeconds?: number;
}
export interface GetByoipPrefixResourcesAddress {
    /**
     * The timestamp when the IP was assigned.
     */
    assignedAt: string;
    /**
     * The unique identifier of the IP address allocation.
     */
    id: number;
    /**
     * The IP address.
     */
    ipAddress: string;
    /**
     * The region where the IP is allocated.
     */
    region: string;
}
export interface GetDatabaseClusterMaintenanceWindow {
    /**
     * The day of the week on which to apply maintenance updates.
     */
    day: string;
    /**
     * The hour in UTC at which maintenance updates will be applied in 24 hour format.
     */
    hour: string;
}
export interface GetDatabaseUserSetting {
    acls?: outputs.GetDatabaseUserSettingAcl[];
    opensearchAcls?: outputs.GetDatabaseUserSettingOpensearchAcl[];
}
export interface GetDatabaseUserSettingAcl {
    id: string;
    permission: string;
    topic: string;
}
export interface GetDatabaseUserSettingOpensearchAcl {
    index: string;
    permission: string;
}
export interface GetDedicatedInferenceAcceleratorsAccelerator {
    /**
     * The date and time when the accelerator was created.
     */
    createdAt: string;
    /**
     * The unique ID of the accelerator.
     */
    id: string;
    /**
     * The name of the accelerator.
     */
    name: string;
    /**
     * The slug identifier for the accelerator type.
     */
    slug: string;
    /**
     * The current status of the accelerator.
     */
    status: string;
}
export interface GetDedicatedInferenceAcceleratorsFilter {
    /**
     * Set to `true` to require that a field match all of the `values` instead of just one.
     */
    all?: boolean;
    /**
     * Filter the accelerators by this key. This may be one of `id`, `name`, `slug`, `status`, `createdAt`.
     */
    key: string;
    /**
     * One of `exact` (default), `re`, or `substring`.
     */
    matchBy?: string;
    /**
     * A list of values to match against the `key` field.
     */
    values: string[];
}
export interface GetDedicatedInferenceAcceleratorsSort {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: string;
    /**
     * Sort the accelerators by this key. This may be one of the keys listed in `filter`.
     */
    key: string;
}
export interface GetDedicatedInferenceGpuModelConfigGpuModelConfig {
    /**
     * The GPU slugs that support this model.
     */
    gpuSlugs: string[];
    /**
     * Whether the model requires gated access (e.g. a HuggingFace token).
     */
    isModelGated: boolean;
    /**
     * The human-readable name of the model.
     */
    modelName: string;
    /**
     * The slug identifier for the model.
     */
    modelSlug: string;
}
export interface GetDedicatedInferenceModelDeployment {
    /**
     * The GPU accelerators allocated for this model deployment. Each element contains:
     */
    accelerators: outputs.GetDedicatedInferenceModelDeploymentAccelerator[];
    /**
     * The unique ID of the model.
     */
    modelId: string;
    /**
     * The provider of the model.
     */
    modelProvider: string;
    /**
     * The slug identifier for the model.
     */
    modelSlug: string;
    /**
     * The provider-specific model ID.
     */
    providerModelId: string;
}
export interface GetDedicatedInferenceModelDeploymentAccelerator {
    /**
     * The slug identifier for the GPU accelerator type.
     */
    acceleratorSlug: string;
    /**
     * The number of accelerator units allocated.
     */
    scale: number;
    /**
     * The accelerator type.
     */
    type: string;
}
export interface GetDedicatedInferenceSizesSize {
    /**
     * The number of vCPUs.
     */
    cpu: number;
    /**
     * The currency for the price.
     */
    currency: string;
    /**
     * The disks attached to this size. Each element contains:
     */
    disks: outputs.GetDedicatedInferenceSizesSizeDisk[];
    /**
     * The slug identifier for this GPU size.
     */
    gpuSlug: string;
    /**
     * GPU hardware details. Each element contains:
     */
    gpus: outputs.GetDedicatedInferenceSizesSizeGpus[];
    /**
     * The amount of memory in MiB.
     */
    memory: number;
    /**
     * The hourly price for this GPU size.
     */
    pricePerHour: string;
    /**
     * The regions where this GPU size is available.
     */
    regions: string[];
    /**
     * The category this size belongs to. Each element contains:
     */
    sizeCategories: outputs.GetDedicatedInferenceSizesSizeSizeCategory[];
}
export interface GetDedicatedInferenceSizesSizeDisk {
    /**
     * The disk size in GiB.
     */
    sizeGb: number;
    /**
     * The disk type.
     */
    type: string;
}
export interface GetDedicatedInferenceSizesSizeGpus {
    /**
     * The number of GPUs.
     */
    count: number;
    /**
     * The GPU model slug.
     */
    slug: string;
    /**
     * The VRAM per GPU in GiB.
     */
    vramGb: number;
}
export interface GetDedicatedInferenceSizesSizeSizeCategory {
    /**
     * The fleet name associated with the size category.
     */
    fleetName: string;
    /**
     * The display name of the size category.
     */
    name: string;
}
export interface GetDedicatedInferenceTokensFilter {
    /**
     * Set to `true` to require that a field match all of the `values` instead of just one.
     */
    all?: boolean;
    /**
     * Filter the tokens by this key. This may be one of `id`, `name`, `createdAt`.
     */
    key: string;
    /**
     * One of `exact` (default), `re`, or `substring`.
     */
    matchBy?: string;
    /**
     * A list of values to match against the `key` field.
     */
    values: string[];
}
export interface GetDedicatedInferenceTokensSort {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: string;
    /**
     * Sort the tokens by this key. This may be one of the keys listed in `filter`.
     */
    key: string;
}
export interface GetDedicatedInferenceTokensToken {
    /**
     * The date and time when the token was created.
     */
    createdAt: string;
    /**
     * The unique ID of the token.
     */
    id: string;
    /**
     * The name of the token.
     */
    name: string;
}
export interface GetDedicatedInferencesDedicatedInference {
    /**
     * The date and time when the dedicated inference endpoint was created.
     */
    createdAt: string;
    /**
     * The unique ID of the dedicated inference endpoint.
     */
    id: string;
    /**
     * The name of the dedicated inference endpoint.
     */
    name: string;
    /**
     * The fully-qualified domain name of the private endpoint.
     */
    privateEndpointFqdn: string;
    /**
     * The list of provider model IDs for the dedicated inference endpoint.
     */
    providerModelIds: string[];
    /**
     * The fully-qualified domain name of the public endpoint, if enabled.
     */
    publicEndpointFqdn: string;
    /**
     * The region where the dedicated inference endpoint is deployed.
     */
    region: string;
    /**
     * The current status of the dedicated inference endpoint.
     */
    status: string;
    /**
     * The date and time when the dedicated inference endpoint was last updated.
     */
    updatedAt: string;
    /**
     * The UUID of the VPC the dedicated inference endpoint is deployed in.
     */
    vpcUuid: string;
}
export interface GetDedicatedInferencesFilter {
    /**
     * Set to `true` to require that a field match all of the `values` instead of just one.
     */
    all?: boolean;
    /**
     * Filter the dedicated inference endpoints by this key. This may be one of `id`, `name`, `region`, `status`, `vpcUuid`, `publicEndpointFqdn`, `privateEndpointFqdn`, `createdAt`, `updatedAt`.
     */
    key: string;
    /**
     * One of `exact` (default), `re`, or `substring`. For string-typed fields, the match mode controls how the filter is applied.
     */
    matchBy?: string;
    /**
     * A list of values to match against the `key` field.
     */
    values: string[];
}
export interface GetDedicatedInferencesSort {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: string;
    /**
     * Sort the dedicated inference endpoints by this key. This may be one of the keys listed in `filter`.
     */
    key: string;
}
export interface GetDomainsDomain {
    /**
     * (Required) The name of the domain.
     */
    name: string;
    /**
     * The TTL of the domain.
     */
    ttl: number;
    /**
     * The uniform resource name of the domain
     */
    urn: string;
}
export interface GetDomainsFilter {
    /**
     * Set to `true` to require that a field match all of the `values` instead of just one or more of
     * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
     * that all of the `values` are present in the list or set.
     */
    all?: boolean;
    /**
     * Filter the domains by this key. This may be one of `name`, `urn`, and `ttl`.
     */
    key: string;
    /**
     * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
     * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
     * substrings to find within the string field.
     */
    matchBy?: string;
    /**
     * A list of values to match against the `key` field. Only retrieves domains
     * where the `key` field takes on one or more of the values provided here.
     */
    values: string[];
}
export interface GetDomainsSort {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: string;
    /**
     * Sort the domains by this key. This may be one of `name`, `urn`, and `ttl`.
     */
    key: string;
}
export interface GetDropletAutoscaleConfig {
    /**
     * Cooldown duration
     */
    cooldownMinutes: number;
    /**
     * Max number of members
     */
    maxInstances: number;
    /**
     * Min number of members
     */
    minInstances: number;
    /**
     * CPU target threshold
     */
    targetCpuUtilization: number;
    /**
     * Memory target threshold
     */
    targetMemoryUtilization: number;
    /**
     * Target number of members
     */
    targetNumberInstances: number;
}
export interface GetDropletAutoscaleCurrentUtilization {
    /**
     * Average CPU utilization
     */
    cpu: number;
    /**
     * Average Memory utilization
     */
    memory: number;
}
export interface GetDropletAutoscaleDropletTemplate {
    /**
     * Droplet image
     */
    image: string;
    /**
     * Enable droplet IPv6
     */
    ipv6: boolean;
    /**
     * Droplet project ID
     */
    projectId: string;
    /**
     * Enables public networking for the Droplet. By default, this is always enabled on new Droplets, but by explicitly setting it to false, you can create a Droplet with public networking entirely disabled.
     */
    publicNetworking: boolean;
    /**
     * Droplet region
     */
    region: string;
    /**
     * Droplet size
     */
    size: string;
    /**
     * Droplet SSH keys
     */
    sshKeys: string[];
    /**
     * Droplet tags
     */
    tags: string[];
    /**
     * Droplet user data
     */
    userData: string;
    /**
     * Droplet VPC UUID
     */
    vpcUuid: string;
    /**
     * Enable droplet agent
     */
    withDropletAgent: boolean;
}
export interface GetDropletsDroplet {
    /**
     * Whether backups are enabled.
     */
    backups: boolean;
    /**
     * the creation date for the Droplet
     */
    createdAt: string;
    /**
     * The size of the Droplet's disk in GB.
     */
    disk: number;
    /**
     * The ID of the Droplet.
     */
    id: number;
    /**
     * The Droplet image ID or slug.
     */
    image: string;
    /**
     * The Droplet's public IPv4 address
     */
    ipv4Address: string;
    /**
     * The Droplet's private IPv4 address
     */
    ipv4AddressPrivate: string;
    /**
     * Whether IPv6 is enabled.
     */
    ipv6: boolean;
    /**
     * The Droplet's public IPv6 address
     */
    ipv6Address: string;
    /**
     * The Droplet's private IPv6 address
     */
    ipv6AddressPrivate: string;
    /**
     * Whether the Droplet is locked.
     */
    locked: boolean;
    /**
     * The amount of the Droplet's memory in MB.
     */
    memory: number;
    /**
     * Whether monitoring agent is installed.
     */
    monitoring: boolean;
    /**
     * name of the Droplet
     */
    name: string;
    /**
     * Droplet hourly price.
     */
    priceHourly: number;
    /**
     * Droplet monthly price.
     */
    priceMonthly: number;
    /**
     * Whether private networks are enabled.
     */
    privateNetworking: boolean;
    /**
     * The region the Droplet is running in.
     */
    region: string;
    /**
     * The unique slug that identifies the type of Droplet.
     */
    size: string;
    /**
     * The status of the Droplet.
     */
    status: string;
    /**
     * A list of the tags associated to the Droplet.
     */
    tags: string[];
    /**
     * The uniform resource name of the Droplet
     */
    urn: string;
    /**
     * The number of the Droplet's virtual CPUs.
     */
    vcpus: number;
    /**
     * List of the IDs of each volumes attached to the Droplet.
     */
    volumeIds: string[];
    /**
     * The ID of the VPC where the Droplet is located.
     */
    vpcUuid: string;
}
export interface GetDropletsFilter {
    /**
     * Set to `true` to require that a field match all of the `values` instead of just one or more of
     * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
     * that all of the `values` are present in the list or set.
     */
    all?: boolean;
    /**
     * Filter the Droplets by this key. This may be one of `backups`, `createdAt`, `disk`, `id`,
     * `image`, `ipv4Address`, `ipv4AddressPrivate`, `ipv6`, `ipv6Address`, `ipv6AddressPrivate`, `locked`,
     * `memory`, `monitoring`, `name`, `priceHourly`, `priceMonthly`, `privateNetworking`, `region`, `size`,
     * `status`, `tags`, `urn`, `vcpus`, `volumeIds`, or `vpcUuid`.
     */
    key: string;
    /**
     * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
     * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
     * substrings to find within the string field.
     */
    matchBy?: string;
    /**
     * A list of values to match against the `key` field. Only retrieves Droplets
     * where the `key` field takes on one or more of the values provided here.
     */
    values: string[];
}
export interface GetDropletsSort {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: string;
    /**
     * Sort the Droplets by this key. This may be one of `backups`, `createdAt`, `disk`, `id`,
     * `image`, `ipv4Address`, `ipv4AddressPrivate`, `ipv6`, `ipv6Address`, `ipv6AddressPrivate`, `locked`,
     * `memory`, `monitoring`, `name`, `priceHourly`, `priceMonthly`, `privateNetworking`, `region`, `size`,
     * `status`, `urn`, `vcpus`, or `vpcUuid`.
     */
    key: string;
}
export interface GetFirewallInboundRule {
    /**
     * The ports on which traffic will be allowed
     * specified as a string containing a single port, a range (e.g. "8000-9000"),
     * or "1-65535" to open all ports for a protocol. Required for when protocol is
     * `tcp` or `udp`.
     */
    portRange?: string;
    /**
     * The type of traffic to be allowed.
     * This may be one of "tcp", "udp", or "icmp".
     */
    protocol: string;
    /**
     * An array of strings containing the IPv4
     * addresses, IPv6 addresses, IPv4 CIDRs, and/or IPv6 CIDRs from which the
     * inbound traffic will be accepted.
     */
    sourceAddresses?: string[];
    /**
     * An array containing the IDs of
     * the Droplets from which the inbound traffic will be accepted.
     */
    sourceDropletIds?: number[];
    sourceKubernetesIds?: string[];
    /**
     * An array containing the IDs
     * of the Load Balancers from which the inbound traffic will be accepted.
     */
    sourceLoadBalancerUids?: string[];
    /**
     * A set of names of Tags corresponding to group of
     * Droplets from which the inbound traffic will be accepted.
     */
    sourceTags?: string[];
}
export interface GetFirewallOutboundRule {
    /**
     * An array of strings containing the IPv4
     * addresses, IPv6 addresses, IPv4 CIDRs, and/or IPv6 CIDRs to which the
     * outbound traffic will be allowed.
     */
    destinationAddresses?: string[];
    /**
     * An array containing the IDs of
     * the Droplets to which the outbound traffic will be allowed.
     */
    destinationDropletIds?: number[];
    destinationKubernetesIds?: string[];
    /**
     * An array containing the IDs
     * of the Load Balancers to which the outbound traffic will be allowed.
     */
    destinationLoadBalancerUids?: string[];
    /**
     * An array containing the names of Tags
     * corresponding to groups of Droplets to which the outbound traffic will
     * be allowed.
     * traffic.
     */
    destinationTags?: string[];
    /**
     * The ports on which traffic will be allowed
     * specified as a string containing a single port, a range (e.g. "8000-9000"),
     * or "1-65535" to open all ports for a protocol. Required for when protocol is
     * `tcp` or `udp`.
     */
    portRange?: string;
    /**
     * The type of traffic to be allowed.
     * This may be one of "tcp", "udp", or "icmp".
     */
    protocol: string;
}
export interface GetFirewallPendingChange {
    dropletId?: number;
    removing?: boolean;
    /**
     * A status string indicating the current state of the Firewall.
     * This can be "waiting", "succeeded", or "failed".
     */
    status?: string;
}
export interface GetGenaiAgentAgentGuardrail {
    /**
     * Agent UUID for the Guardrail
     */
    agentUuid?: string;
    /**
     * Created At timestamp for the Guardrail
     */
    createdAt: string;
    /**
     * Default response for the Guardrail
     */
    defaultResponse?: string;
    /**
     * Description of the Guardrail
     */
    description?: string;
    /**
     * Guardrail UUID
     */
    guardrailUuid?: string;
    /**
     * Indicates if the Guardrail is attached
     */
    isAttached: boolean;
    /**
     * Indicates if the Guardrail is default
     */
    isDefault?: boolean;
    /**
     * Name of Guardrail
     */
    name?: string;
    /**
     * Priority of the Guardrail
     */
    priority?: number;
    /**
     * Type of the Guardrail
     */
    type?: string;
    /**
     * Updated At timestamp for the Guardrail
     */
    updatedAt: string;
    /**
     * Guardrail UUID
     */
    uuid?: string;
}
export interface GetGenaiAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGenaiAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGenaiAgentChatbotIdentifier {
    /**
     * Chatbot ID
     */
    chatbotId?: string;
}
export interface GetGenaiAgentChildAgent {
    /**
     * ID of the child agent
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GetGenaiAgentChildAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GetGenaiAgentChildAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GetGenaiAgentChildAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GetGenaiAgentChildAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GetGenaiAgentChildAgentChatbot[];
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GetGenaiAgentChildAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
}
export interface GetGenaiAgentChildAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentChildAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGenaiAgentChildAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentChildAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGenaiAgentChildAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GetGenaiAgentChildAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGenaiAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGenaiAgentFunction {
    /**
     * API Key value
     */
    apiKey?: string;
    /**
     * Created At timestamp for the Function
     */
    createdAt: string;
    /**
     * Description of the Function
     */
    description?: string;
    /**
     * Name of function
     */
    faasname?: string;
    /**
     * Namespace of function
     */
    faasnamespace?: string;
    /**
     * Guardrail UUID for the Function
     */
    guardrailUuid?: string;
    /**
     * Name of function
     */
    name?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: outputs.GetGenaiAgentKnowledgeBaseLastIndexingJob;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: string;
    /**
     * Region of the Knowledge Base
     */
    region?: string;
    /**
     * List of tags
     */
    tags?: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId?: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GetGenaiAgentKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGenaiAgentModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GetGenaiAgentModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GetGenaiAgentModelVersion[];
}
export interface GetGenaiAgentModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGenaiAgentModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GetGenaiAgentOpenAiApiKey {
    /**
     * OpenAI API Key
     */
    apiKey?: string;
}
export interface GetGenaiAgentParentAgent {
    /**
     * ID of the child agent
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GetGenaiAgentParentAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GetGenaiAgentParentAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GetGenaiAgentParentAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GetGenaiAgentParentAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GetGenaiAgentParentAgentChatbot[];
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GetGenaiAgentParentAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
}
export interface GetGenaiAgentParentAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentParentAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGenaiAgentParentAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentParentAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGenaiAgentParentAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GetGenaiAgentParentAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGenaiAgentTemplate {
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Description of the Agent Template
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction?: string;
    /**
     * K value for the Agent Template
     */
    k?: number;
    /**
     * List of Knowledge Bases
     */
    knowledgeBases?: outputs.GetGenaiAgentTemplateKnowledgeBase[];
    /**
     * Maximum tokens allowed
     */
    maxTokens?: number;
    /**
     * Model of the Agent Template
     */
    models?: outputs.GetGenaiAgentTemplateModel[];
    /**
     * Name of the Agent Template
     */
    name?: string;
    /**
     * Agent temperature setting
     */
    temperature?: number;
    /**
     * Top P sampling parameter
     */
    topP?: number;
    /**
     * Updated At timestamp for the Agent Template
     */
    updatedAt: string;
    /**
     * uuid of the Agent Template
     */
    uuid?: string;
}
export interface GetGenaiAgentTemplateKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: outputs.GetGenaiAgentTemplateKnowledgeBaseLastIndexingJob;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: string;
    /**
     * Region of the Knowledge Base
     */
    region?: string;
    /**
     * List of tags
     */
    tags?: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId?: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GetGenaiAgentTemplateKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGenaiAgentTemplateModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GetGenaiAgentTemplateModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GetGenaiAgentTemplateModelVersion[];
}
export interface GetGenaiAgentTemplateModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGenaiAgentTemplateModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GetGenaiAgentVersionsAgentVersion {
    /**
     * ID of the Agent to retrieve versions for
     */
    agentUuid: string;
    /**
     * List of child agents attached to this version
     */
    attachedChildAgents: outputs.GetGenaiAgentVersionsAgentVersionAttachedChildAgent[];
    /**
     * List of functions attached to this version
     */
    attachedFunctions: outputs.GetGenaiAgentVersionsAgentVersionAttachedFunction[];
    /**
     * List of guardrails attached to this version
     */
    attachedGuardrails: outputs.GetGenaiAgentVersionsAgentVersionAttachedGuardrail[];
    /**
     * List of Knowledge Bases agent versions
     */
    attachedKnowledgeBases: outputs.GetGenaiAgentVersionsAgentVersionAttachedKnowledgeBase[];
    /**
     * Indicates if the version can be rolled back
     */
    canRollback: boolean;
    /**
     * Timestamp when the Agent Version was created
     */
    createdAt: string;
    /**
     * Email of the user who created this version
     */
    createdByEmail: string;
    /**
     * Indicates if this version is currently applied configuration
     */
    currentlyApplied: boolean;
    /**
     * Description of the Agent Version
     */
    description: string;
    /**
     * Id of the Agent Version
     */
    id: string;
    /**
     * Instruction for the Agent Version
     */
    instruction: string;
    /**
     * K value for the Agent Version
     */
    k: number;
    /**
     * Maximum tokens allowed for the Agent
     */
    maxTokens: number;
    /**
     * Name of model associated to the agent version
     */
    modelName: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Indicates if the should provide in-response citations
     */
    provideCitations: boolean;
    /**
     * Retrieval method used.
     * - RETRIEVAL_METHOD_UNKNOWN: The retrieval method is unknown
     * - RETRIEVAL_METHOD_REWRITE: The retrieval method is rewrite
     * - RETRIEVAL_METHOD_STEP_BACK: The retrieval method is step back
     * - RETRIEVAL_METHOD_SUB_QUERIES: The retrieval method is sub queries
     * - RETRIEVAL_METHOD_NONE: The retrieval method is none.
     */
    retrievalMethod: string;
    /**
     * List of Tags
     */
    tags: string[];
    /**
     * Temperature setting for the Agent Version
     */
    temperature: number;
    /**
     * Top P sampling parameter for the Agent Version
     */
    topP: number;
    /**
     * Trigger action for the Agent Version
     */
    triggerAction: string;
    /**
     * Hash of the Agent Version
     */
    versionHash: string;
}
export interface GetGenaiAgentVersionsAgentVersionAttachedChildAgent {
    /**
     * Name of the child agent
     */
    agentName: string;
    /**
     * Child agent unique identifier
     */
    childAgentUuid: string;
    /**
     * If case
     */
    ifCase: string;
    /**
     * Child agent is deleted
     */
    isDeleted: boolean;
    /**
     * Route name
     */
    routeName: string;
}
export interface GetGenaiAgentVersionsAgentVersionAttachedFunction {
    /**
     * Description of the function
     */
    description: string;
    /**
     * FaaS name of the function
     */
    faasName: string;
    /**
     * FaaS namespace of the function
     */
    faasNamespace: string;
    /**
     * Function is deleted
     */
    isDeleted: boolean;
    /**
     * Name of the function
     */
    name: string;
}
export interface GetGenaiAgentVersionsAgentVersionAttachedGuardrail {
    /**
     * Whether the guardrail is deleted
     */
    isDeleted: boolean;
    /**
     * Name of the guardrail
     */
    name: string;
    /**
     * Guardrail priority
     */
    priority: number;
    /**
     * Guardrail UUID
     */
    uuid: string;
}
export interface GetGenaiAgentVersionsAgentVersionAttachedKnowledgeBase {
    /**
     * Whether the knowledge base is deleted
     */
    isDeleted: boolean;
    /**
     * Name of the knowledge base
     */
    name: string;
    /**
     * Knowledge base UUID
     */
    uuid: string;
}
export interface GetGenaiAgentVersionsFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGenaiAgentVersionsSort {
    direction?: string;
    key: string;
}
export interface GetGenaiAgentsAgent {
    /**
     * AgentGuardrail represents a Guardrail attached to Gen AI Agent
     */
    agentGuardrails: outputs.GetGenaiAgentsAgentAgentGuardrail[];
    /**
     * ID of the Agent to retrieve
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys: outputs.GetGenaiAgentsAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos: outputs.GetGenaiAgentsAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys: outputs.GetGenaiAgentsAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers: outputs.GetGenaiAgentsAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots: outputs.GetGenaiAgentsAgentChatbot[];
    /**
     * List of child agents
     */
    childAgents: outputs.GetGenaiAgentsAgentChildAgent[];
    /**
     * Timestamp when the Agent was created
     */
    createdAt: string;
    /**
     * List of API Key Infos
     */
    deployments: outputs.GetGenaiAgentsAgentDeployment[];
    /**
     * Description for the Agent
     */
    description: string;
    /**
     * List of API Key Infos
     */
    functions: outputs.GetGenaiAgentsAgentFunction[];
    /**
     * If case condition
     */
    ifCase: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * K value
     */
    k: number;
    /**
     * List of Knowledge Bases
     */
    knowledgeBases: outputs.GetGenaiAgentsAgentKnowledgeBase[];
    /**
     * Maximum tokens allowed
     */
    maxTokens: number;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Model of the Agent
     */
    models: outputs.GetGenaiAgentsAgentModel[];
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * OpenAI API Key information
     */
    openAiApiKeys: outputs.GetGenaiAgentsAgentOpenAiApiKey[];
    /**
     * List of parent agents
     */
    parentAgents: outputs.GetGenaiAgentsAgentParentAgent[];
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
    /**
     * Retrieval method used
     */
    retrievalMethod: string;
    /**
     * Timestamp when the route was created
     */
    routeCreatedAt: string;
    /**
     * User who created the route
     */
    routeCreatedBy: string;
    /**
     * Route name
     */
    routeName: string;
    /**
     * Route UUID
     */
    routeUuid: string;
    /**
     * List of Tags
     */
    tags: string[];
    /**
     * Agent temperature setting
     */
    temperature: number;
    /**
     * Agent Template
     */
    templates: outputs.GetGenaiAgentsAgentTemplate[];
    /**
     * Top P sampling parameter
     */
    topP: number;
    /**
     * Timestamp when the Agent was updated
     */
    updatedAt: string;
    /**
     * URL for the Agent
     */
    url: string;
    /**
     * User ID linked with the Agent
     */
    userId: string;
}
export interface GetGenaiAgentsAgentAgentGuardrail {
    /**
     * Agent UUID for the Guardrail
     */
    agentUuid?: string;
    /**
     * Created At timestamp for the Guardrail
     */
    createdAt: string;
    /**
     * Default response for the Guardrail
     */
    defaultResponse?: string;
    /**
     * Description of the Guardrail
     */
    description?: string;
    /**
     * Guardrail UUID
     */
    guardrailUuid?: string;
    /**
     * Indicates if the Guardrail is attached
     */
    isAttached: boolean;
    /**
     * Indicates if the Guardrail is default
     */
    isDefault?: boolean;
    /**
     * Name of Guardrail
     */
    name?: string;
    /**
     * Priority of the Guardrail
     */
    priority?: number;
    /**
     * Type of the Guardrail
     */
    type?: string;
    /**
     * Updated At timestamp for the Guardrail
     */
    updatedAt: string;
    /**
     * Guardrail UUID
     */
    uuid?: string;
}
export interface GetGenaiAgentsAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentsAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGenaiAgentsAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentsAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGenaiAgentsAgentChatbotIdentifier {
    /**
     * Chatbot ID
     */
    chatbotId?: string;
}
export interface GetGenaiAgentsAgentChildAgent {
    /**
     * ID of the child agent
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GetGenaiAgentsAgentChildAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GetGenaiAgentsAgentChildAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GetGenaiAgentsAgentChildAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GetGenaiAgentsAgentChildAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GetGenaiAgentsAgentChildAgentChatbot[];
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GetGenaiAgentsAgentChildAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
}
export interface GetGenaiAgentsAgentChildAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentsAgentChildAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGenaiAgentsAgentChildAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentsAgentChildAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGenaiAgentsAgentChildAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GetGenaiAgentsAgentChildAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGenaiAgentsAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGenaiAgentsAgentFunction {
    /**
     * API Key value
     */
    apiKey?: string;
    /**
     * Created At timestamp for the Function
     */
    createdAt: string;
    /**
     * Description of the Function
     */
    description?: string;
    /**
     * Name of function
     */
    faasname?: string;
    /**
     * Namespace of function
     */
    faasnamespace?: string;
    /**
     * Guardrail UUID for the Function
     */
    guardrailUuid?: string;
    /**
     * Name of function
     */
    name?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentsAgentKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: outputs.GetGenaiAgentsAgentKnowledgeBaseLastIndexingJob;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: string;
    /**
     * Region of the Knowledge Base
     */
    region?: string;
    /**
     * List of tags
     */
    tags?: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId?: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GetGenaiAgentsAgentKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGenaiAgentsAgentModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GetGenaiAgentsAgentModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GetGenaiAgentsAgentModelVersion[];
}
export interface GetGenaiAgentsAgentModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGenaiAgentsAgentModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GetGenaiAgentsAgentOpenAiApiKey {
    /**
     * OpenAI API Key
     */
    apiKey?: string;
}
export interface GetGenaiAgentsAgentParentAgent {
    /**
     * ID of the child agent
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GetGenaiAgentsAgentParentAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GetGenaiAgentsAgentParentAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GetGenaiAgentsAgentParentAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GetGenaiAgentsAgentParentAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GetGenaiAgentsAgentParentAgentChatbot[];
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GetGenaiAgentsAgentParentAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
}
export interface GetGenaiAgentsAgentParentAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentsAgentParentAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGenaiAgentsAgentParentAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentsAgentParentAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGenaiAgentsAgentParentAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GetGenaiAgentsAgentParentAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGenaiAgentsAgentTemplate {
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Description of the Agent Template
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction?: string;
    /**
     * K value for the Agent Template
     */
    k?: number;
    /**
     * List of Knowledge Bases
     */
    knowledgeBases?: outputs.GetGenaiAgentsAgentTemplateKnowledgeBase[];
    /**
     * Maximum tokens allowed
     */
    maxTokens?: number;
    /**
     * Model of the Agent Template
     */
    models?: outputs.GetGenaiAgentsAgentTemplateModel[];
    /**
     * Name of the Agent Template
     */
    name?: string;
    /**
     * Agent temperature setting
     */
    temperature?: number;
    /**
     * Top P sampling parameter
     */
    topP?: number;
    /**
     * Updated At timestamp for the Agent Template
     */
    updatedAt: string;
    /**
     * uuid of the Agent Template
     */
    uuid?: string;
}
export interface GetGenaiAgentsAgentTemplateKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: outputs.GetGenaiAgentsAgentTemplateKnowledgeBaseLastIndexingJob;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: string;
    /**
     * Region of the Knowledge Base
     */
    region?: string;
    /**
     * List of tags
     */
    tags?: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId?: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GetGenaiAgentsAgentTemplateKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGenaiAgentsAgentTemplateModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GetGenaiAgentsAgentTemplateModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GetGenaiAgentsAgentTemplateModelVersion[];
}
export interface GetGenaiAgentsAgentTemplateModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGenaiAgentsAgentTemplateModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgent {
    /**
     * AgentGuardrail represents a Guardrail attached to Gen AI Agent
     */
    agentGuardrails?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentAgentGuardrail[];
    /**
     * ID of the Agent to retrieve
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentChatbot[];
    /**
     * List of child agents
     */
    childAgents: outputs.GetGenaiAgentsByOpenaiApiKeyAgentChildAgent[];
    /**
     * Timestamp when the Agent was created
     */
    createdAt: string;
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * List of API Key Infos
     */
    functions?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentFunction[];
    /**
     * If case condition
     */
    ifCase?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * K value
     */
    k?: number;
    /**
     * List of Knowledge Bases
     */
    knowledgeBases?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentKnowledgeBase[];
    /**
     * Maximum tokens allowed
     */
    maxTokens?: number;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Model of the Agent
     */
    models: outputs.GetGenaiAgentsByOpenaiApiKeyAgentModel[];
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * OpenAI API Key information
     */
    openAiApiKeys?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentOpenAiApiKey[];
    /**
     * List of parent agents
     */
    parentAgents: outputs.GetGenaiAgentsByOpenaiApiKeyAgentParentAgent[];
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
    /**
     * Retrieval method used
     */
    retrievalMethod?: string;
    /**
     * Timestamp when the route was created
     */
    routeCreatedAt: string;
    /**
     * User who created the route
     */
    routeCreatedBy?: string;
    /**
     * Route name
     */
    routeName?: string;
    /**
     * Route UUID
     */
    routeUuid?: string;
    /**
     * List of Tags
     */
    tags?: string[];
    /**
     * Agent temperature setting
     */
    temperature?: number;
    /**
     * Agent Template
     */
    templates?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentTemplate[];
    /**
     * Top P sampling parameter
     */
    topP?: number;
    /**
     * Timestamp when the Agent was updated
     */
    updatedAt: string;
    /**
     * URL for the Agent
     */
    url?: string;
    /**
     * User ID linked with the Agent
     */
    userId?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentAgentGuardrail {
    /**
     * Agent UUID for the Guardrail
     */
    agentUuid?: string;
    /**
     * Created At timestamp for the Guardrail
     */
    createdAt: string;
    /**
     * Default response for the Guardrail
     */
    defaultResponse?: string;
    /**
     * Description of the Guardrail
     */
    description?: string;
    /**
     * Guardrail UUID
     */
    guardrailUuid?: string;
    /**
     * Indicates if the Guardrail is attached
     */
    isAttached: boolean;
    /**
     * Indicates if the Guardrail is default
     */
    isDefault?: boolean;
    /**
     * Name of Guardrail
     */
    name?: string;
    /**
     * Priority of the Guardrail
     */
    priority?: number;
    /**
     * Type of the Guardrail
     */
    type?: string;
    /**
     * Updated At timestamp for the Guardrail
     */
    updatedAt: string;
    /**
     * Guardrail UUID
     */
    uuid?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentChatbotIdentifier {
    /**
     * Chatbot ID
     */
    chatbotId?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentChildAgent {
    /**
     * ID of the child agent
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentChildAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentChildAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentChildAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentChildAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentChildAgentChatbot[];
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentChildAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentChildAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentChildAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentChildAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentChildAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentChildAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentChildAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentFunction {
    /**
     * API Key value
     */
    apiKey?: string;
    /**
     * Created At timestamp for the Function
     */
    createdAt: string;
    /**
     * Description of the Function
     */
    description?: string;
    /**
     * Name of function
     */
    faasname?: string;
    /**
     * Namespace of function
     */
    faasnamespace?: string;
    /**
     * Guardrail UUID for the Function
     */
    guardrailUuid?: string;
    /**
     * Name of function
     */
    name?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentKnowledgeBaseLastIndexingJob;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: string;
    /**
     * Region of the Knowledge Base
     */
    region?: string;
    /**
     * List of tags
     */
    tags?: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId?: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentModelVersion[];
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentOpenAiApiKey {
    /**
     * OpenAI API Key
     */
    apiKey?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentParentAgent {
    /**
     * ID of the child agent
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentParentAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentParentAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentParentAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentParentAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentParentAgentChatbot[];
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentParentAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentParentAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentParentAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentParentAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentParentAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentParentAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentParentAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentTemplate {
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Description of the Agent Template
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction?: string;
    /**
     * K value for the Agent Template
     */
    k?: number;
    /**
     * List of Knowledge Bases
     */
    knowledgeBases?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentTemplateKnowledgeBase[];
    /**
     * Maximum tokens allowed
     */
    maxTokens?: number;
    /**
     * Model of the Agent Template
     */
    models?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentTemplateModel[];
    /**
     * Name of the Agent Template
     */
    name?: string;
    /**
     * Agent temperature setting
     */
    temperature?: number;
    /**
     * Top P sampling parameter
     */
    topP?: number;
    /**
     * Updated At timestamp for the Agent Template
     */
    updatedAt: string;
    /**
     * uuid of the Agent Template
     */
    uuid?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentTemplateKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentTemplateKnowledgeBaseLastIndexingJob;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: string;
    /**
     * Region of the Knowledge Base
     */
    region?: string;
    /**
     * List of tags
     */
    tags?: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId?: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentTemplateKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentTemplateModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentTemplateModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GetGenaiAgentsByOpenaiApiKeyAgentTemplateModelVersion[];
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentTemplateModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGenaiAgentsByOpenaiApiKeyAgentTemplateModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GetGenaiAgentsFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGenaiAgentsSort {
    direction?: string;
    key: string;
}
export interface GetGenaiIndexingJobDataSourcesIndexedDataSource {
    /**
     * Timestamp when data source completed indexing
     */
    completedAt: string;
    /**
     * UUID of the indexed data source
     */
    dataSourceUuid: string;
    /**
     * Detailed error description
     */
    errorDetails: string;
    /**
     * Error message if indexing failed
     */
    errorMsg: string;
    /**
     * Total count of items that have failed
     */
    failedItemCount: string;
    /**
     * Total count of files that have been indexed
     */
    indexedFileCount: string;
    /**
     * Total count of items that have been indexed
     */
    indexedItemCount: string;
    /**
     * Total count of items that have been removed
     */
    removedItemCount: string;
    /**
     * Total count of items that have been skipped
     */
    skippedItemCount: string;
    /**
     * Timestamp when data source started indexing
     */
    startedAt: string;
    /**
     * Status of the indexed data source
     */
    status: string;
    /**
     * Total size of files in data source in bytes
     */
    totalBytes: string;
    /**
     * Total size of indexed files in bytes
     */
    totalBytesIndexed: string;
    /**
     * Total file count in the data source
     */
    totalFileCount: string;
}
export interface GetGenaiKnowledgeBaseDataSourcesDatasource {
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * File upload data source configuration
     */
    fileUploadDataSources?: outputs.GetGenaiKnowledgeBaseDataSourcesDatasourceFileUploadDataSource[];
    /**
     * Last indexing job for the data source
     */
    lastIndexingJobs?: outputs.GetGenaiKnowledgeBaseDataSourcesDatasourceLastIndexingJob[];
    /**
     * Spaces data source configuration
     */
    spacesDataSources?: outputs.GetGenaiKnowledgeBaseDataSourcesDatasourceSpacesDataSource[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid?: string;
    /**
     * Web crawler data source configuration
     */
    webCrawlerDataSources?: outputs.GetGenaiKnowledgeBaseDataSourcesDatasourceWebCrawlerDataSource[];
}
export interface GetGenaiKnowledgeBaseDataSourcesDatasourceFileUploadDataSource {
    /**
     * The original name of the uploaded file
     */
    originalFileName?: string;
    /**
     * The size of the file in bytes
     */
    sizeInBytes?: string;
    /**
     * The stored object key for the file
     */
    storedObjectKey?: string;
}
export interface GetGenaiKnowledgeBaseDataSourcesDatasourceLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGenaiKnowledgeBaseDataSourcesDatasourceSpacesDataSource {
    /**
     * The name of the Spaces bucket
     */
    bucketName?: string;
    /**
     * The path to the item in the bucket
     */
    itemPath?: string;
    /**
     * The region of the Spaces bucket
     */
    region?: string;
}
export interface GetGenaiKnowledgeBaseDataSourcesDatasourceWebCrawlerDataSource {
    /**
     * The base URL to crawl
     */
    baseUrl?: string;
    /**
     * Options for specifying how URLs found on pages should be handled.
     * - UNKNOWN: Default unknown value
     * - SCOPED: Only include the base URL.
     * - PATH: Crawl the base URL and linked pages within the URL path.
     * - DOMAIN: Crawl the base URL and linked pages within the same domain.
     * - SUBDOMAINS: Crawl the base URL and linked pages for any subdomain.
     */
    crawlingOption?: string;
    /**
     * Whether to embed media content
     */
    embedMedia?: boolean;
}
export interface GetGenaiKnowledgeBaseIndexingJobsJob {
    /**
     * Number of datasources indexed completed
     */
    completedDatasources: number;
    /**
     * Creation timestamp
     */
    createdAt: string;
    /**
     * List of data source UUIDs
     */
    dataSourceUuids: string[];
    /**
     * Finish timestamp
     */
    finishedAt: string;
    /**
     * Knowledge base UUID
     */
    knowledgeBaseUuid: string;
    /**
     * Current phase of the batch job
     */
    phase: string;
    /**
     * Start timestamp
     */
    startedAt: string;
    /**
     * Status of the indexing job
     */
    status: string;
    /**
     * Number of tokens
     */
    tokens: number;
    /**
     * Total number of datasources being indexed
     */
    totalDatasources: number;
    /**
     * Total items failed
     */
    totalItemsFailed: string;
    /**
     * Total items indexed
     */
    totalItemsIndexed: string;
    /**
     * Total items skipped
     */
    totalItemsSkipped: string;
    /**
     * Last update timestamp
     */
    updatedAt: string;
    /**
     * Unique identifier of the indexing job
     */
    uuid: string;
}
export interface GetGenaiKnowledgeBaseIndexingJobsMeta {
    /**
     * Current page number
     */
    page: number;
    /**
     * Total number of pages
     */
    pages: number;
    /**
     * Total number of items
     */
    total: number;
}
export interface GetGenaiKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGenaiKnowledgeBasesFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGenaiKnowledgeBasesKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJobs: outputs.GetGenaiKnowledgeBasesKnowledgeBaseLastIndexingJob[];
    /**
     * Name of the Knowledge Base
     */
    name: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId: string;
    /**
     * Region of the Knowledge Base
     */
    region: string;
    /**
     * List of tags
     */
    tags: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GetGenaiKnowledgeBasesKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGenaiKnowledgeBasesSort {
    direction?: string;
    key: string;
}
export interface GetGenaiModelsFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGenaiModelsModel {
    /**
     * Agreement information for the model
     */
    agreements: outputs.GetGenaiModelsModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * ID of the Knowledge Base
     */
    id: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational: boolean;
    /**
     * Name of the Knowledge Base
     */
    name: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete: boolean;
    /**
     * URL of the Model
     */
    url: string;
    /**
     * UUID of the Model
     */
    uuid: string;
    /**
     * List of Versions for the Model
     */
    versions: outputs.GetGenaiModelsModelVersion[];
}
export interface GetGenaiModelsModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGenaiModelsModelVersion {
    /**
     * Major version of the model
     */
    major: number;
    /**
     * Minor version of the model
     */
    minor: number;
    /**
     * Patch version of the model
     */
    patch: number;
}
export interface GetGenaiModelsSort {
    direction?: string;
    key: string;
}
export interface GetGenaiOpenaiApiKeyModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GetGenaiOpenaiApiKeyModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GetGenaiOpenaiApiKeyModelVersion[];
}
export interface GetGenaiOpenaiApiKeyModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGenaiOpenaiApiKeyModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GetGenaiOpenaiApiKeysFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGenaiOpenaiApiKeysOpenaiApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * List of models associated with the API Key
     */
    models: outputs.GetGenaiOpenaiApiKeysOpenaiApiKeyModel[];
    /**
     * Name of the API Key
     */
    name: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * OpenAI API Key Uuid
     */
    uuid: string;
}
export interface GetGenaiOpenaiApiKeysOpenaiApiKeyModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GetGenaiOpenaiApiKeysOpenaiApiKeyModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GetGenaiOpenaiApiKeysOpenaiApiKeyModelVersion[];
}
export interface GetGenaiOpenaiApiKeysOpenaiApiKeyModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGenaiOpenaiApiKeysOpenaiApiKeyModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GetGenaiOpenaiApiKeysSort {
    direction?: string;
    key: string;
}
export interface GetGenaiRegionsFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGenaiRegionsRegion {
    /**
     * Inference URL for the model
     */
    inferenceUrl: string;
    /**
     * Region where the model is deployed
     */
    region: string;
    /**
     * Indicates if the model serves batch requests
     */
    servesBatch: boolean;
    /**
     * Indicates if the model serves inference requests
     */
    servesInference: boolean;
    /**
     * Streaming inference URL for the model
     */
    streamInferenceUrl: string;
}
export interface GetGenaiRegionsSort {
    direction?: string;
    key: string;
}
export interface GetGradientaiAgentAgentGuardrail {
    /**
     * Agent UUID for the Guardrail
     */
    agentUuid?: string;
    /**
     * Created At timestamp for the Guardrail
     */
    createdAt: string;
    /**
     * Default response for the Guardrail
     */
    defaultResponse?: string;
    /**
     * Description of the Guardrail
     */
    description?: string;
    /**
     * Guardrail UUID
     */
    guardrailUuid?: string;
    /**
     * Indicates if the Guardrail is attached
     */
    isAttached: boolean;
    /**
     * Indicates if the Guardrail is default
     */
    isDefault?: boolean;
    /**
     * Name of Guardrail
     */
    name?: string;
    /**
     * Priority of the Guardrail
     */
    priority?: number;
    /**
     * Type of the Guardrail
     */
    type?: string;
    /**
     * Updated At timestamp for the Guardrail
     */
    updatedAt: string;
    /**
     * Guardrail UUID
     */
    uuid?: string;
}
export interface GetGradientaiAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGradientaiAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGradientaiAgentChatbotIdentifier {
    /**
     * Chatbot ID
     */
    chatbotId?: string;
}
export interface GetGradientaiAgentChildAgent {
    /**
     * ID of the child agent
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GetGradientaiAgentChildAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GetGradientaiAgentChildAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GetGradientaiAgentChildAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GetGradientaiAgentChildAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GetGradientaiAgentChildAgentChatbot[];
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GetGradientaiAgentChildAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
}
export interface GetGradientaiAgentChildAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentChildAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGradientaiAgentChildAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentChildAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGradientaiAgentChildAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GetGradientaiAgentChildAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGradientaiAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGradientaiAgentFunction {
    /**
     * API Key value
     */
    apiKey?: string;
    /**
     * Created At timestamp for the Function
     */
    createdAt: string;
    /**
     * Description of the Function
     */
    description?: string;
    /**
     * Name of function
     */
    faasname?: string;
    /**
     * Namespace of function
     */
    faasnamespace?: string;
    /**
     * Guardrail UUID for the Function
     */
    guardrailUuid?: string;
    /**
     * Name of function
     */
    name?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: outputs.GetGradientaiAgentKnowledgeBaseLastIndexingJob;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: string;
    /**
     * Region of the Knowledge Base
     */
    region?: string;
    /**
     * List of tags
     */
    tags?: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId?: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GetGradientaiAgentKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGradientaiAgentModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GetGradientaiAgentModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GetGradientaiAgentModelVersion[];
}
export interface GetGradientaiAgentModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGradientaiAgentModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GetGradientaiAgentOpenAiApiKey {
    /**
     * OpenAI API Key
     */
    apiKey?: string;
}
export interface GetGradientaiAgentParentAgent {
    /**
     * ID of the child agent
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GetGradientaiAgentParentAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GetGradientaiAgentParentAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GetGradientaiAgentParentAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GetGradientaiAgentParentAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GetGradientaiAgentParentAgentChatbot[];
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GetGradientaiAgentParentAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
}
export interface GetGradientaiAgentParentAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentParentAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGradientaiAgentParentAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentParentAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGradientaiAgentParentAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GetGradientaiAgentParentAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGradientaiAgentTemplate {
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Description of the Agent Template
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction?: string;
    /**
     * K value for the Agent Template
     */
    k?: number;
    /**
     * List of Knowledge Bases
     */
    knowledgeBases?: outputs.GetGradientaiAgentTemplateKnowledgeBase[];
    /**
     * Maximum tokens allowed
     */
    maxTokens?: number;
    /**
     * Model of the Agent Template
     */
    models?: outputs.GetGradientaiAgentTemplateModel[];
    /**
     * Name of the Agent Template
     */
    name?: string;
    /**
     * Agent temperature setting
     */
    temperature?: number;
    /**
     * Top P sampling parameter
     */
    topP?: number;
    /**
     * Updated At timestamp for the Agent Template
     */
    updatedAt: string;
    /**
     * uuid of the Agent Template
     */
    uuid?: string;
}
export interface GetGradientaiAgentTemplateKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: outputs.GetGradientaiAgentTemplateKnowledgeBaseLastIndexingJob;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: string;
    /**
     * Region of the Knowledge Base
     */
    region?: string;
    /**
     * List of tags
     */
    tags?: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId?: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GetGradientaiAgentTemplateKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGradientaiAgentTemplateModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GetGradientaiAgentTemplateModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GetGradientaiAgentTemplateModelVersion[];
}
export interface GetGradientaiAgentTemplateModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGradientaiAgentTemplateModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GetGradientaiAgentVersionsAgentVersion {
    /**
     * ID of the Agent to retrieve versions for
     */
    agentUuid: string;
    /**
     * List of child agents attached to this version
     */
    attachedChildAgents: outputs.GetGradientaiAgentVersionsAgentVersionAttachedChildAgent[];
    /**
     * List of functions attached to this version
     */
    attachedFunctions: outputs.GetGradientaiAgentVersionsAgentVersionAttachedFunction[];
    /**
     * List of guardrails attached to this version
     */
    attachedGuardrails: outputs.GetGradientaiAgentVersionsAgentVersionAttachedGuardrail[];
    /**
     * List of Knowledge Bases agent versions
     */
    attachedKnowledgeBases: outputs.GetGradientaiAgentVersionsAgentVersionAttachedKnowledgeBase[];
    /**
     * Indicates if the version can be rolled back
     */
    canRollback: boolean;
    /**
     * Timestamp when the Agent Version was created
     */
    createdAt: string;
    /**
     * Email of the user who created this version
     */
    createdByEmail: string;
    /**
     * Indicates if this version is currently applied configuration
     */
    currentlyApplied: boolean;
    /**
     * Description of the Agent Version
     */
    description: string;
    /**
     * Id of the Agent Version
     */
    id: string;
    /**
     * Instruction for the Agent Version
     */
    instruction: string;
    /**
     * K value for the Agent Version
     */
    k: number;
    /**
     * Maximum tokens allowed for the Agent
     */
    maxTokens: number;
    /**
     * Name of model associated to the agent version
     */
    modelName: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Indicates if the should provide in-response citations
     */
    provideCitations: boolean;
    /**
     * Retrieval method used.
     * - RETRIEVAL_METHOD_UNKNOWN: The retrieval method is unknown
     * - RETRIEVAL_METHOD_REWRITE: The retrieval method is rewrite
     * - RETRIEVAL_METHOD_STEP_BACK: The retrieval method is step back
     * - RETRIEVAL_METHOD_SUB_QUERIES: The retrieval method is sub queries
     * - RETRIEVAL_METHOD_NONE: The retrieval method is none.
     */
    retrievalMethod: string;
    /**
     * List of Tags
     */
    tags: string[];
    /**
     * Temperature setting for the Agent Version
     */
    temperature: number;
    /**
     * Top P sampling parameter for the Agent Version
     */
    topP: number;
    /**
     * Trigger action for the Agent Version
     */
    triggerAction: string;
    /**
     * Hash of the Agent Version
     */
    versionHash: string;
}
export interface GetGradientaiAgentVersionsAgentVersionAttachedChildAgent {
    /**
     * Name of the child agent
     */
    agentName: string;
    /**
     * Child agent unique identifier
     */
    childAgentUuid: string;
    /**
     * If case
     */
    ifCase: string;
    /**
     * Child agent is deleted
     */
    isDeleted: boolean;
    /**
     * Route name
     */
    routeName: string;
}
export interface GetGradientaiAgentVersionsAgentVersionAttachedFunction {
    /**
     * Description of the function
     */
    description: string;
    /**
     * FaaS name of the function
     */
    faasName: string;
    /**
     * FaaS namespace of the function
     */
    faasNamespace: string;
    /**
     * Function is deleted
     */
    isDeleted: boolean;
    /**
     * Name of the function
     */
    name: string;
}
export interface GetGradientaiAgentVersionsAgentVersionAttachedGuardrail {
    /**
     * Whether the guardrail is deleted
     */
    isDeleted: boolean;
    /**
     * Name of the guardrail
     */
    name: string;
    /**
     * Guardrail priority
     */
    priority: number;
    /**
     * Guardrail UUID
     */
    uuid: string;
}
export interface GetGradientaiAgentVersionsAgentVersionAttachedKnowledgeBase {
    /**
     * Whether the knowledge base is deleted
     */
    isDeleted: boolean;
    /**
     * Name of the knowledge base
     */
    name: string;
    /**
     * Knowledge base UUID
     */
    uuid: string;
}
export interface GetGradientaiAgentVersionsFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGradientaiAgentVersionsSort {
    direction?: string;
    key: string;
}
export interface GetGradientaiAgentsAgent {
    /**
     * AgentGuardrail represents a Guardrail attached to Gen AI Agent
     */
    agentGuardrails: outputs.GetGradientaiAgentsAgentAgentGuardrail[];
    /**
     * ID of the Agent to retrieve
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys: outputs.GetGradientaiAgentsAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos: outputs.GetGradientaiAgentsAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys: outputs.GetGradientaiAgentsAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers: outputs.GetGradientaiAgentsAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots: outputs.GetGradientaiAgentsAgentChatbot[];
    /**
     * List of child agents
     */
    childAgents: outputs.GetGradientaiAgentsAgentChildAgent[];
    /**
     * Timestamp when the Agent was created
     */
    createdAt: string;
    /**
     * List of API Key Infos
     */
    deployments: outputs.GetGradientaiAgentsAgentDeployment[];
    /**
     * Description for the Agent
     */
    description: string;
    /**
     * List of API Key Infos
     */
    functions: outputs.GetGradientaiAgentsAgentFunction[];
    /**
     * If case condition
     */
    ifCase: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * K value
     */
    k: number;
    /**
     * List of Knowledge Bases
     */
    knowledgeBases: outputs.GetGradientaiAgentsAgentKnowledgeBase[];
    /**
     * Maximum tokens allowed
     */
    maxTokens: number;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Model of the Agent
     */
    models: outputs.GetGradientaiAgentsAgentModel[];
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * OpenAI API Key information
     */
    openAiApiKeys: outputs.GetGradientaiAgentsAgentOpenAiApiKey[];
    /**
     * List of parent agents
     */
    parentAgents: outputs.GetGradientaiAgentsAgentParentAgent[];
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
    /**
     * Retrieval method used
     */
    retrievalMethod: string;
    /**
     * Timestamp when the route was created
     */
    routeCreatedAt: string;
    /**
     * User who created the route
     */
    routeCreatedBy: string;
    /**
     * Route name
     */
    routeName: string;
    /**
     * Route UUID
     */
    routeUuid: string;
    /**
     * List of Tags
     */
    tags: string[];
    /**
     * Agent temperature setting
     */
    temperature: number;
    /**
     * Agent Template
     */
    templates: outputs.GetGradientaiAgentsAgentTemplate[];
    /**
     * Top P sampling parameter
     */
    topP: number;
    /**
     * Timestamp when the Agent was updated
     */
    updatedAt: string;
    /**
     * URL for the Agent
     */
    url: string;
    /**
     * User ID linked with the Agent
     */
    userId: string;
}
export interface GetGradientaiAgentsAgentAgentGuardrail {
    /**
     * Agent UUID for the Guardrail
     */
    agentUuid?: string;
    /**
     * Created At timestamp for the Guardrail
     */
    createdAt: string;
    /**
     * Default response for the Guardrail
     */
    defaultResponse?: string;
    /**
     * Description of the Guardrail
     */
    description?: string;
    /**
     * Guardrail UUID
     */
    guardrailUuid?: string;
    /**
     * Indicates if the Guardrail is attached
     */
    isAttached: boolean;
    /**
     * Indicates if the Guardrail is default
     */
    isDefault?: boolean;
    /**
     * Name of Guardrail
     */
    name?: string;
    /**
     * Priority of the Guardrail
     */
    priority?: number;
    /**
     * Type of the Guardrail
     */
    type?: string;
    /**
     * Updated At timestamp for the Guardrail
     */
    updatedAt: string;
    /**
     * Guardrail UUID
     */
    uuid?: string;
}
export interface GetGradientaiAgentsAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentsAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGradientaiAgentsAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentsAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGradientaiAgentsAgentChatbotIdentifier {
    /**
     * Chatbot ID
     */
    chatbotId?: string;
}
export interface GetGradientaiAgentsAgentChildAgent {
    /**
     * ID of the child agent
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GetGradientaiAgentsAgentChildAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GetGradientaiAgentsAgentChildAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GetGradientaiAgentsAgentChildAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GetGradientaiAgentsAgentChildAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GetGradientaiAgentsAgentChildAgentChatbot[];
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GetGradientaiAgentsAgentChildAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
}
export interface GetGradientaiAgentsAgentChildAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentsAgentChildAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGradientaiAgentsAgentChildAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentsAgentChildAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGradientaiAgentsAgentChildAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GetGradientaiAgentsAgentChildAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGradientaiAgentsAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGradientaiAgentsAgentFunction {
    /**
     * API Key value
     */
    apiKey?: string;
    /**
     * Created At timestamp for the Function
     */
    createdAt: string;
    /**
     * Description of the Function
     */
    description?: string;
    /**
     * Name of function
     */
    faasname?: string;
    /**
     * Namespace of function
     */
    faasnamespace?: string;
    /**
     * Guardrail UUID for the Function
     */
    guardrailUuid?: string;
    /**
     * Name of function
     */
    name?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentsAgentKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: outputs.GetGradientaiAgentsAgentKnowledgeBaseLastIndexingJob;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: string;
    /**
     * Region of the Knowledge Base
     */
    region?: string;
    /**
     * List of tags
     */
    tags?: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId?: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GetGradientaiAgentsAgentKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGradientaiAgentsAgentModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GetGradientaiAgentsAgentModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GetGradientaiAgentsAgentModelVersion[];
}
export interface GetGradientaiAgentsAgentModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGradientaiAgentsAgentModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GetGradientaiAgentsAgentOpenAiApiKey {
    /**
     * OpenAI API Key
     */
    apiKey?: string;
}
export interface GetGradientaiAgentsAgentParentAgent {
    /**
     * ID of the child agent
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GetGradientaiAgentsAgentParentAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GetGradientaiAgentsAgentParentAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GetGradientaiAgentsAgentParentAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GetGradientaiAgentsAgentParentAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GetGradientaiAgentsAgentParentAgentChatbot[];
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GetGradientaiAgentsAgentParentAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
}
export interface GetGradientaiAgentsAgentParentAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentsAgentParentAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGradientaiAgentsAgentParentAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentsAgentParentAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGradientaiAgentsAgentParentAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GetGradientaiAgentsAgentParentAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGradientaiAgentsAgentTemplate {
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Description of the Agent Template
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction?: string;
    /**
     * K value for the Agent Template
     */
    k?: number;
    /**
     * List of Knowledge Bases
     */
    knowledgeBases?: outputs.GetGradientaiAgentsAgentTemplateKnowledgeBase[];
    /**
     * Maximum tokens allowed
     */
    maxTokens?: number;
    /**
     * Model of the Agent Template
     */
    models?: outputs.GetGradientaiAgentsAgentTemplateModel[];
    /**
     * Name of the Agent Template
     */
    name?: string;
    /**
     * Agent temperature setting
     */
    temperature?: number;
    /**
     * Top P sampling parameter
     */
    topP?: number;
    /**
     * Updated At timestamp for the Agent Template
     */
    updatedAt: string;
    /**
     * uuid of the Agent Template
     */
    uuid?: string;
}
export interface GetGradientaiAgentsAgentTemplateKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: outputs.GetGradientaiAgentsAgentTemplateKnowledgeBaseLastIndexingJob;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: string;
    /**
     * Region of the Knowledge Base
     */
    region?: string;
    /**
     * List of tags
     */
    tags?: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId?: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GetGradientaiAgentsAgentTemplateKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGradientaiAgentsAgentTemplateModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GetGradientaiAgentsAgentTemplateModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GetGradientaiAgentsAgentTemplateModelVersion[];
}
export interface GetGradientaiAgentsAgentTemplateModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGradientaiAgentsAgentTemplateModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgent {
    /**
     * AgentGuardrail represents a Guardrail attached to Gen AI Agent
     */
    agentGuardrails?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentAgentGuardrail[];
    /**
     * ID of the Agent to retrieve
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentChatbot[];
    /**
     * List of child agents
     */
    childAgents: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentChildAgent[];
    /**
     * Timestamp when the Agent was created
     */
    createdAt: string;
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * List of API Key Infos
     */
    functions?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentFunction[];
    /**
     * If case condition
     */
    ifCase?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * K value
     */
    k?: number;
    /**
     * List of Knowledge Bases
     */
    knowledgeBases?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentKnowledgeBase[];
    /**
     * Maximum tokens allowed
     */
    maxTokens?: number;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Model of the Agent
     */
    models: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentModel[];
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * OpenAI API Key information
     */
    openAiApiKeys?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentOpenAiApiKey[];
    /**
     * List of parent agents
     */
    parentAgents: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentParentAgent[];
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
    /**
     * Retrieval method used
     */
    retrievalMethod?: string;
    /**
     * Timestamp when the route was created
     */
    routeCreatedAt: string;
    /**
     * User who created the route
     */
    routeCreatedBy?: string;
    /**
     * Route name
     */
    routeName?: string;
    /**
     * Route UUID
     */
    routeUuid?: string;
    /**
     * List of Tags
     */
    tags?: string[];
    /**
     * Agent temperature setting
     */
    temperature?: number;
    /**
     * Agent Template
     */
    templates?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentTemplate[];
    /**
     * Top P sampling parameter
     */
    topP?: number;
    /**
     * Timestamp when the Agent was updated
     */
    updatedAt: string;
    /**
     * URL for the Agent
     */
    url?: string;
    /**
     * User ID linked with the Agent
     */
    userId?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentAgentGuardrail {
    /**
     * Agent UUID for the Guardrail
     */
    agentUuid?: string;
    /**
     * Created At timestamp for the Guardrail
     */
    createdAt: string;
    /**
     * Default response for the Guardrail
     */
    defaultResponse?: string;
    /**
     * Description of the Guardrail
     */
    description?: string;
    /**
     * Guardrail UUID
     */
    guardrailUuid?: string;
    /**
     * Indicates if the Guardrail is attached
     */
    isAttached: boolean;
    /**
     * Indicates if the Guardrail is default
     */
    isDefault?: boolean;
    /**
     * Name of Guardrail
     */
    name?: string;
    /**
     * Priority of the Guardrail
     */
    priority?: number;
    /**
     * Type of the Guardrail
     */
    type?: string;
    /**
     * Updated At timestamp for the Guardrail
     */
    updatedAt: string;
    /**
     * Guardrail UUID
     */
    uuid?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentChatbotIdentifier {
    /**
     * Chatbot ID
     */
    chatbotId?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentChildAgent {
    /**
     * ID of the child agent
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentChildAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentChildAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentChildAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentChildAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentChildAgentChatbot[];
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentChildAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentChildAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentChildAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentChildAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentChildAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentChildAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentChildAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentFunction {
    /**
     * API Key value
     */
    apiKey?: string;
    /**
     * Created At timestamp for the Function
     */
    createdAt: string;
    /**
     * Description of the Function
     */
    description?: string;
    /**
     * Name of function
     */
    faasname?: string;
    /**
     * Namespace of function
     */
    faasnamespace?: string;
    /**
     * Guardrail UUID for the Function
     */
    guardrailUuid?: string;
    /**
     * Name of function
     */
    name?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentKnowledgeBaseLastIndexingJob;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: string;
    /**
     * Region of the Knowledge Base
     */
    region?: string;
    /**
     * List of tags
     */
    tags?: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId?: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentModelVersion[];
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentOpenAiApiKey {
    /**
     * OpenAI API Key
     */
    apiKey?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentParentAgent {
    /**
     * ID of the child agent
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentParentAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentParentAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentParentAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentParentAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentParentAgentChatbot[];
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentParentAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentParentAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentParentAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentParentAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentParentAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentParentAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentParentAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentTemplate {
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Description of the Agent Template
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction?: string;
    /**
     * K value for the Agent Template
     */
    k?: number;
    /**
     * List of Knowledge Bases
     */
    knowledgeBases?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentTemplateKnowledgeBase[];
    /**
     * Maximum tokens allowed
     */
    maxTokens?: number;
    /**
     * Model of the Agent Template
     */
    models?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentTemplateModel[];
    /**
     * Name of the Agent Template
     */
    name?: string;
    /**
     * Agent temperature setting
     */
    temperature?: number;
    /**
     * Top P sampling parameter
     */
    topP?: number;
    /**
     * Updated At timestamp for the Agent Template
     */
    updatedAt: string;
    /**
     * uuid of the Agent Template
     */
    uuid?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentTemplateKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentTemplateKnowledgeBaseLastIndexingJob;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: string;
    /**
     * Region of the Knowledge Base
     */
    region?: string;
    /**
     * List of tags
     */
    tags?: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId?: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentTemplateKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentTemplateModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentTemplateModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GetGradientaiAgentsByOpenaiApiKeyAgentTemplateModelVersion[];
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentTemplateModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGradientaiAgentsByOpenaiApiKeyAgentTemplateModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GetGradientaiAgentsFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGradientaiAgentsSort {
    direction?: string;
    key: string;
}
export interface GetGradientaiIndexingJobDataSourcesIndexedDataSource {
    /**
     * Timestamp when data source completed indexing
     */
    completedAt: string;
    /**
     * UUID of the indexed data source
     */
    dataSourceUuid: string;
    /**
     * Detailed error description
     */
    errorDetails: string;
    /**
     * Error message if indexing failed
     */
    errorMsg: string;
    /**
     * Total count of items that have failed
     */
    failedItemCount: string;
    /**
     * Total count of files that have been indexed
     */
    indexedFileCount: string;
    /**
     * Total count of items that have been indexed
     */
    indexedItemCount: string;
    /**
     * Total count of items that have been removed
     */
    removedItemCount: string;
    /**
     * Total count of items that have been skipped
     */
    skippedItemCount: string;
    /**
     * Timestamp when data source started indexing
     */
    startedAt: string;
    /**
     * Status of the indexed data source
     */
    status: string;
    /**
     * Total size of files in data source in bytes
     */
    totalBytes: string;
    /**
     * Total size of indexed files in bytes
     */
    totalBytesIndexed: string;
    /**
     * Total file count in the data source
     */
    totalFileCount: string;
}
export interface GetGradientaiKnowledgeBaseDataSourcesDatasource {
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * File upload data source configuration
     */
    fileUploadDataSources?: outputs.GetGradientaiKnowledgeBaseDataSourcesDatasourceFileUploadDataSource[];
    /**
     * Last indexing job for the data source
     */
    lastIndexingJobs?: outputs.GetGradientaiKnowledgeBaseDataSourcesDatasourceLastIndexingJob[];
    /**
     * Spaces data source configuration
     */
    spacesDataSources?: outputs.GetGradientaiKnowledgeBaseDataSourcesDatasourceSpacesDataSource[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid?: string;
    /**
     * Web crawler data source configuration
     */
    webCrawlerDataSources?: outputs.GetGradientaiKnowledgeBaseDataSourcesDatasourceWebCrawlerDataSource[];
}
export interface GetGradientaiKnowledgeBaseDataSourcesDatasourceFileUploadDataSource {
    /**
     * The original name of the uploaded file
     */
    originalFileName?: string;
    /**
     * The size of the file in bytes
     */
    sizeInBytes?: string;
    /**
     * The stored object key for the file
     */
    storedObjectKey?: string;
}
export interface GetGradientaiKnowledgeBaseDataSourcesDatasourceLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGradientaiKnowledgeBaseDataSourcesDatasourceSpacesDataSource {
    /**
     * The name of the Spaces bucket
     */
    bucketName?: string;
    /**
     * The path to the item in the bucket
     */
    itemPath?: string;
    /**
     * The region of the Spaces bucket
     */
    region?: string;
}
export interface GetGradientaiKnowledgeBaseDataSourcesDatasourceWebCrawlerDataSource {
    /**
     * The base URL to crawl
     */
    baseUrl?: string;
    /**
     * Options for specifying how URLs found on pages should be handled.
     * - UNKNOWN: Default unknown value
     * - SCOPED: Only include the base URL.
     * - PATH: Crawl the base URL and linked pages within the URL path.
     * - DOMAIN: Crawl the base URL and linked pages within the same domain.
     * - SUBDOMAINS: Crawl the base URL and linked pages for any subdomain.
     */
    crawlingOption?: string;
    /**
     * Whether to embed media content
     */
    embedMedia?: boolean;
}
export interface GetGradientaiKnowledgeBaseIndexingJobsJob {
    /**
     * Number of datasources indexed completed
     */
    completedDatasources: number;
    /**
     * Creation timestamp
     */
    createdAt: string;
    /**
     * List of data source UUIDs
     */
    dataSourceUuids: string[];
    /**
     * Finish timestamp
     */
    finishedAt: string;
    /**
     * Knowledge base UUID
     */
    knowledgeBaseUuid: string;
    /**
     * Current phase of the batch job
     */
    phase: string;
    /**
     * Start timestamp
     */
    startedAt: string;
    /**
     * Status of the indexing job
     */
    status: string;
    /**
     * Number of tokens
     */
    tokens: number;
    /**
     * Total number of datasources being indexed
     */
    totalDatasources: number;
    /**
     * Total items failed
     */
    totalItemsFailed: string;
    /**
     * Total items indexed
     */
    totalItemsIndexed: string;
    /**
     * Total items skipped
     */
    totalItemsSkipped: string;
    /**
     * Last update timestamp
     */
    updatedAt: string;
    /**
     * Unique identifier of the indexing job
     */
    uuid: string;
}
export interface GetGradientaiKnowledgeBaseIndexingJobsMeta {
    /**
     * Current page number
     */
    page: number;
    /**
     * Total number of pages
     */
    pages: number;
    /**
     * Total number of items
     */
    total: number;
}
export interface GetGradientaiKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGradientaiKnowledgeBasesFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGradientaiKnowledgeBasesKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJobs: outputs.GetGradientaiKnowledgeBasesKnowledgeBaseLastIndexingJob[];
    /**
     * Name of the Knowledge Base
     */
    name: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId: string;
    /**
     * Region of the Knowledge Base
     */
    region: string;
    /**
     * List of tags
     */
    tags: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GetGradientaiKnowledgeBasesKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GetGradientaiKnowledgeBasesSort {
    direction?: string;
    key: string;
}
export interface GetGradientaiModelsFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGradientaiModelsModel {
    /**
     * Agreement information for the model
     */
    agreements: outputs.GetGradientaiModelsModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * ID of the Knowledge Base
     */
    id: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational: boolean;
    /**
     * Name of the Knowledge Base
     */
    name: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete: boolean;
    /**
     * URL of the Model
     */
    url: string;
    /**
     * UUID of the Model
     */
    uuid: string;
    /**
     * List of Versions for the Model
     */
    versions: outputs.GetGradientaiModelsModelVersion[];
}
export interface GetGradientaiModelsModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGradientaiModelsModelVersion {
    /**
     * Major version of the model
     */
    major: number;
    /**
     * Minor version of the model
     */
    minor: number;
    /**
     * Patch version of the model
     */
    patch: number;
}
export interface GetGradientaiModelsSort {
    direction?: string;
    key: string;
}
export interface GetGradientaiOpenaiApiKeyModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GetGradientaiOpenaiApiKeyModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GetGradientaiOpenaiApiKeyModelVersion[];
}
export interface GetGradientaiOpenaiApiKeyModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGradientaiOpenaiApiKeyModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GetGradientaiOpenaiApiKeysFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGradientaiOpenaiApiKeysOpenaiApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * List of models associated with the API Key
     */
    models: outputs.GetGradientaiOpenaiApiKeysOpenaiApiKeyModel[];
    /**
     * Name of the API Key
     */
    name: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * OpenAI API Key Uuid
     */
    uuid: string;
}
export interface GetGradientaiOpenaiApiKeysOpenaiApiKeyModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GetGradientaiOpenaiApiKeysOpenaiApiKeyModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GetGradientaiOpenaiApiKeysOpenaiApiKeyModelVersion[];
}
export interface GetGradientaiOpenaiApiKeysOpenaiApiKeyModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GetGradientaiOpenaiApiKeysOpenaiApiKeyModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GetGradientaiOpenaiApiKeysSort {
    direction?: string;
    key: string;
}
export interface GetGradientaiRegionsFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGradientaiRegionsRegion {
    /**
     * Inference URL for the model
     */
    inferenceUrl: string;
    /**
     * Region where the model is deployed
     */
    region: string;
    /**
     * Indicates if the model serves batch requests
     */
    servesBatch: boolean;
    /**
     * Indicates if the model serves inference requests
     */
    servesInference: boolean;
    /**
     * Streaming inference URL for the model
     */
    streamInferenceUrl: string;
}
export interface GetGradientaiRegionsSort {
    direction?: string;
    key: string;
}
export interface GetImagesFilter {
    /**
     * Set to `true` to require that a field match all of the `values` instead of just one or more of
     * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
     * that all of the `values` are present in the list or set.
     */
    all?: boolean;
    /**
     * Filter the images by this key. This may be one of `distribution`, `errorMessage`,
     * `id`, `image`, `minDiskSize`, `name`, `private`, `regions`, `sizeGigabytes`, `slug`, `status`,
     * `tags`, or `type`.
     */
    key: string;
    /**
     * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
     * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
     * substrings to find within the string field.
     */
    matchBy?: string;
    /**
     * A list of values to match against the `key` field. Only retrieves images
     * where the `key` field takes on one or more of the values provided here.
     */
    values: string[];
}
export interface GetImagesImage {
    /**
     * When the image was created
     */
    created: string;
    /**
     * a description of the image
     */
    description: string;
    /**
     * The name of the distribution of the OS of the image.
     */
    distribution: string;
    /**
     * Any applicable error message pertaining to the image
     */
    errorMessage: string;
    /**
     * The ID of the image.
     */
    id: number;
    /**
     * The id of the image (legacy parameter).
     */
    image: string;
    /**
     * The minimum 'disk' required for the image.
     */
    minDiskSize: number;
    /**
     * The name of the image.
     */
    name: string;
    /**
     * Is image a public image or not. Public images represent
     * Linux distributions or One-Click Applications, while non-public images represent
     * snapshots and backups and are only available within your account.
     */
    private: boolean;
    /**
     * A set of the regions that the image is available in.
     */
    regions: string[];
    /**
     * The size of the image in GB.
     */
    sizeGigabytes: number;
    /**
     * Unique text identifier of the image.
     */
    slug: string;
    /**
     * Current status of the image
     */
    status: string;
    /**
     * A set of tags applied to the image
     */
    tags: string[];
    /**
     * Type of the image.
     */
    type: string;
}
export interface GetImagesSort {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: string;
    /**
     * Sort the images by this key. This may be one of `distribution`, `errorMessage`, `id`,
     * `image`, `minDiskSize`, `name`, `private`, `sizeGigabytes`, `slug`, `status`, or `type`.
     */
    key: string;
}
export interface GetKubernetesClusterAmdGpuDeviceMetricsExporterPlugin {
    enabled: boolean;
}
export interface GetKubernetesClusterAmdGpuDevicePlugin {
    enabled: boolean;
}
export interface GetKubernetesClusterClusterAutoscalerConfiguration {
    expanders?: string[];
    scaleDownUnneededTime?: string;
    scaleDownUtilizationThreshold?: number;
}
export interface GetKubernetesClusterControlPlaneFirewall {
    allowedAddresses: string[];
    enabled: boolean;
}
export interface GetKubernetesClusterKubeConfig {
    /**
     * The base64 encoded public certificate used by clients to access the cluster. Only available if token authentication is not supported on your cluster.
     */
    clientCertificate: string;
    /**
     * The base64 encoded private key used by clients to access the cluster. Only available if token authentication is not supported on your cluster.
     */
    clientKey: string;
    /**
     * The base64 encoded public certificate for the cluster's certificate authority.
     */
    clusterCaCertificate: string;
    /**
     * The date and time when the credentials will expire and need to be regenerated.
     */
    expiresAt: string;
    /**
     * The URL of the API server on the Kubernetes master node.
     */
    host: string;
    /**
     * The full contents of the Kubernetes cluster's kubeconfig file.
     */
    rawConfig: string;
    /**
     * The DigitalOcean API access token used by clients to access the cluster.
     */
    token: string;
}
export interface GetKubernetesClusterMaintenancePolicy {
    /**
     * The day for the service window of the Kubernetes cluster.
     */
    day: string;
    /**
     * The duration of the operation.
     */
    duration: string;
    /**
     * The start time of the upgrade operation.
     */
    startTime: string;
}
export interface GetKubernetesClusterNodePool {
    /**
     * The actual number of nodes in the node pool, which is especially useful when auto-scaling is enabled.
     */
    actualNodeCount: number;
    /**
     * A boolean indicating whether auto-scaling is enabled on the node pool.
     */
    autoScale: boolean;
    /**
     * A unique ID that can be used to identify and reference the node.
     */
    id: string;
    /**
     * A map of key/value pairs applied to nodes in the pool. The labels are exposed in the Kubernetes API as labels in the metadata of the corresponding [Node resources](https://kubernetes.io/docs/concepts/architecture/nodes/).
     */
    labels: {
        [key: string]: string;
    };
    /**
     * If auto-scaling is enabled, this represents the maximum number of nodes that the node pool can be scaled up to.
     */
    maxNodes: number;
    /**
     * If auto-scaling is enabled, this represents the minimum number of nodes that the node pool can be scaled down to.
     */
    minNodes: number;
    /**
     * The name of Kubernetes cluster.
     */
    name: string;
    /**
     * The number of Droplet instances in the node pool.
     */
    nodeCount: number;
    /**
     * A list of nodes in the pool. Each node exports the following attributes:
     */
    nodes: outputs.GetKubernetesClusterNodePoolNode[];
    /**
     * The slug identifier for the type of Droplet used as workers in the node pool.
     */
    size: string;
    /**
     * A list of tag names applied to the node pool.
     */
    tags: string[];
    /**
     * A list of taints applied to all nodes in the pool. Each taint exports the following attributes:
     */
    taints: outputs.GetKubernetesClusterNodePoolTaint[];
}
export interface GetKubernetesClusterNodePoolNode {
    /**
     * The date and time when the node was created.
     */
    createdAt: string;
    dropletId: string;
    /**
     * A unique ID that can be used to identify and reference the node.
     */
    id: string;
    /**
     * The name of Kubernetes cluster.
     */
    name: string;
    /**
     * A string indicating the current status of the individual node.
     */
    status: string;
    /**
     * The date and time when the node was last updated.
     */
    updatedAt: string;
}
export interface GetKubernetesClusterNodePoolTaint {
    /**
     * How the node reacts to pods that it won't tolerate. Available effect values are: "NoSchedule", "PreferNoSchedule", "NoExecute".
     */
    effect: string;
    /**
     * An arbitrary string. The "key" and "value" fields of the "taint" object form a key-value pair.
     */
    key: string;
    /**
     * An arbitrary string. The "key" and "value" fields of the "taint" object form a key-value pair.
     */
    value: string;
}
export interface GetKubernetesClusterNvidiaGpuDevicePlugin {
    enabled: boolean;
}
export interface GetKubernetesClusterRdmaSharedDevicePlugin {
    enabled: boolean;
}
export interface GetKubernetesClusterRoutingAgent {
    enabled: boolean;
}
export interface GetKubernetesClusterSso {
    clientId: string;
    enabled: boolean;
    issuerUrl: string;
    required: boolean;
}
export interface GetLoadBalancerDomain {
    /**
     * certificate ID for TLS handshaking
     */
    certificateId: string;
    /**
     * name of certificate required for TLS handshaking
     */
    certificateName: string;
    /**
     * flag indicating if domain is managed by DigitalOcean
     */
    isManaged: boolean;
    /**
     * The name of load balancer.
     */
    name: string;
    /**
     * list of domain SSL validation errors
     */
    sslValidationErrorReasons: string[];
    /**
     * list of domain verification errors
     */
    verificationErrorReasons: string[];
}
export interface GetLoadBalancerFirewall {
    /**
     * the rules for ALLOWING traffic to the LB (strings in the form: 'ip:1.2.3.4' or 'cidr:1.2.0.0/16')
     */
    allows: string[];
    /**
     * the rules for DENYING traffic to the LB (strings in the form: 'ip:1.2.3.4' or 'cidr:1.2.0.0/16')
     */
    denies: string[];
}
export interface GetLoadBalancerForwardingRule {
    /**
     * the id of the tls certificate used for ssl termination if enabled
     */
    certificateId: string;
    /**
     * the name of the tls certificate used for ssl termination if enabled
     */
    certificateName: string;
    /**
     * the port on which the load balancer instance will listen
     */
    entryPort: number;
    /**
     * the protocol used for traffic to the load balancer
     */
    entryProtocol: string;
    /**
     * the port on the backend Droplets to which the load balancer will send traffic
     */
    targetPort: number;
    /**
     * the protocol used for traffic to the backend droplets
     */
    targetProtocol: string;
    /**
     * whether ssl encrypted traffic will be passed through to the backend droplets
     */
    tlsPassthrough: boolean;
}
export interface GetLoadBalancerGlbSetting {
    /**
     * CDN specific configurations
     */
    cdns: outputs.GetLoadBalancerGlbSettingCdn[];
    /**
     * fail-over threshold
     */
    failoverThreshold: number;
    /**
     * region priority map
     */
    regionPriorities: {
        [key: string]: number;
    };
    /**
     * target port rules
     */
    targetPort: number;
    /**
     * target protocol rules
     */
    targetProtocol: string;
}
export interface GetLoadBalancerGlbSettingCdn {
    /**
     * cache enable flag
     */
    isEnabled: boolean;
}
export interface GetLoadBalancerHealthcheck {
    /**
     * the number of seconds between between two consecutive health checks
     */
    checkIntervalSeconds: number;
    /**
     * the number of times a health check must pass for a backend droplet to be marked 'healthy' and be re-added to the pool
     */
    healthyThreshold: number;
    /**
     * the path on the backend Droplets to which the Load Balancer will send a request
     */
    path: string;
    /**
     * the port on the backend droplets on which the health check will attempt a connection
     */
    port: number;
    /**
     * the protocol used for health checks sent to the backend droplets
     */
    protocol: string;
    /**
     * the number of seconds to wait for a response until marking a health check as failed
     */
    responseTimeoutSeconds: number;
    /**
     * The number of times a health check must fail for a backend droplet to be marked 'unhealthy' and be removed from the pool
     */
    unhealthyThreshold: number;
}
export interface GetLoadBalancerStickySession {
    /**
     * the name of the cookie sent to the client
     */
    cookieName: string;
    /**
     * the number of seconds until the cookie set by the Load Balancer expires
     */
    cookieTtlSeconds: number;
    /**
     * how and if requests from a client will be persistently served by the same backend droplet
     */
    type: string;
}
export interface GetPartnerAttachmentBgp {
    localRouterIp?: string;
    peerRouterAsn?: number;
    peerRouterIp?: string;
}
export interface GetProjectsFilter {
    /**
     * Set to `true` to require that a field match all of the `values` instead of just one or more of
     * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
     * that all of the `values` are present in the list or set.
     */
    all?: boolean;
    /**
     * Filter the projects by this key. This may be one of `name`,
     * `purpose`, `description`, `environment`, or `isDefault`.
     */
    key: string;
    /**
     * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
     * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
     * substrings to find within the string field.
     */
    matchBy?: string;
    /**
     * A list of values to match against the `key` field. Only retrieves projects
     * where the `key` field takes on one or more of the values provided here.
     */
    values: string[];
}
export interface GetProjectsProject {
    /**
     * The date and time when the project was created, (ISO8601)
     */
    createdAt: string;
    /**
     * The description of the project
     */
    description: string;
    /**
     * The environment of the project's resources. The possible values are: `Development`, `Staging`, `Production`.
     */
    environment: string;
    /**
     * The ID of the project
     */
    id: string;
    isDefault: boolean;
    /**
     * The name of the project
     */
    name: string;
    /**
     * The ID of the project owner
     */
    ownerId: number;
    /**
     * The unique universal identifier of the project owner
     */
    ownerUuid: string;
    /**
     * The purpose of the project (Default: "Web Application")
     */
    purpose: string;
    /**
     * A set of uniform resource names (URNs) for the resources associated with the project
     */
    resources: string[];
    /**
     * The date and time when the project was last updated, (ISO8601)
     */
    updatedAt: string;
}
export interface GetProjectsSort {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: string;
    /**
     * Sort the projects by this key. This may be one of `name`,
     * `purpose`, `description`, or `environment`.
     */
    key: string;
}
export interface GetRecordsFilter {
    /**
     * Set to `true` to require that a field match all of the `values` instead of just one or more of
     * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
     * that all of the `values` are present in the list or set.
     */
    all?: boolean;
    /**
     * Filter the DNS records by this key. This may be one of `domain`, `flags`, `name`, `port`,
     * `priority`, `tag`, `ttl`, `type`, `value`, or `weight`.
     */
    key: string;
    /**
     * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
     * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
     * substrings to find within the string field.
     */
    matchBy?: string;
    /**
     * A list of values to match against the `key` field. Only retrieves DNS records
     * where the `key` field takes on one or more of the values provided here.
     */
    values: string[];
}
export interface GetRecordsRecord {
    /**
     * The domain name to search for DNS records
     */
    domain: string;
    /**
     * An unsigned integer between 0-255 used for CAA records.
     */
    flags: number;
    /**
     * The ID of the record.
     */
    id: number;
    /**
     * The name of the DNS record.
     */
    name: string;
    /**
     * The port for SRV records.
     */
    port: number;
    /**
     * The priority for SRV and MX records.
     */
    priority: number;
    /**
     * The parameter tag for CAA records.
     */
    tag: string;
    /**
     * This value is the time to live for the record, in seconds. This defines the time frame that clients can cache queried information before a refresh should be requested.
     */
    ttl: number;
    /**
     * The type of the DNS record.
     */
    type: string;
    /**
     * Variable data depending on record type. For example, the "data" value for an A record would be the IPv4 address to which the domain will be mapped. For a CAA record, it would contain the domain name of the CA being granted permission to issue certificates.
     */
    value: string;
    /**
     * The weight for SRV records.
     */
    weight: number;
}
export interface GetRecordsSort {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: string;
    /**
     * Sort the DNS records by this key. This may be one of `domain`, `flags`, `name`, `port`,
     * `priority`, `tag`, `ttl`, `type`, `value`, or `weight`.
     */
    key: string;
}
export interface GetRegionsFilter {
    /**
     * Set to `true` to require that a field match all of the `values` instead of just one or more of
     * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
     * that all of the `values` are present in the list or set.
     */
    all?: boolean;
    /**
     * Filter the regions by this key. This may be one of `slug`,
     * `name`, `available`, `features`, or `sizes`.
     */
    key: string;
    /**
     * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
     * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
     * substrings to find within the string field.
     */
    matchBy?: string;
    /**
     * A list of values to match against the `key` field. Only retrieves regions
     * where the `key` field takes on one or more of the values provided here.
     */
    values: string[];
}
export interface GetRegionsRegion {
    /**
     * A boolean value that represents whether new Droplets can be created in this region.
     */
    available: boolean;
    /**
     * A set of features available in this region.
     */
    features: string[];
    /**
     * The display name of the region.
     */
    name: string;
    /**
     * A set of identifying slugs for the Droplet sizes available in this region.
     */
    sizes: string[];
    /**
     * A human-readable string that is used as a unique identifier for each region.
     */
    slug: string;
}
export interface GetRegionsSort {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: string;
    /**
     * Sort the regions by this key. This may be one of `slug`,
     * `name`, or `available`.
     */
    key: string;
}
export interface GetSizesFilter {
    /**
     * Set to `true` to require that a field match all of the `values` instead of just one or more of
     * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
     * that all of the `values` are present in the list or set.
     */
    all?: boolean;
    /**
     * Filter the sizes by this key. This may be one of `slug`,
     * `regions`, `memory`, `vcpus`, `disk`, `transfer`, `priceMonthly`,
     * `priceHourly`, or `available`.
     */
    key: string;
    /**
     * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
     * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
     * substrings to find within the string field.
     */
    matchBy?: string;
    /**
     * Only retrieves sizes which keys has value that matches
     * one of the values provided here.
     */
    values: string[];
}
export interface GetSizesSize {
    /**
     * This represents whether new Droplets can be created with this size.
     */
    available: boolean;
    /**
     * The amount of disk space set aside for Droplets of this size. The value is measured in gigabytes.
     */
    disk: number;
    /**
     * The amount of RAM allocated to Droplets created of this size. The value is measured in megabytes.
     */
    memory: number;
    /**
     * The hourly cost of Droplets created in this size as measured hourly. The value is measured in US dollars.
     */
    priceHourly: number;
    /**
     * The monthly cost of Droplets created in this size if they are kept for an entire month. The value is measured in US dollars.
     */
    priceMonthly: number;
    /**
     * List of region slugs where Droplets can be created in this size.
     */
    regions: string[];
    /**
     * A human-readable string that is used to uniquely identify each size.
     */
    slug: string;
    /**
     * The amount of transfer bandwidth that is available for Droplets created in this size. This only counts traffic on the public interface. The value is given in terabytes.
     */
    transfer: number;
    /**
     * The number of CPUs allocated to Droplets of this size.
     */
    vcpus: number;
}
export interface GetSizesSort {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: string;
    /**
     * Sort the sizes by this key. This may be one of `slug`,
     * `memory`, `vcpus`, `disk`, `transfer`, `priceMonthly`, or `priceHourly`.
     */
    key: string;
}
export interface GetSpacesBucketsBucket {
    /**
     * The FQDN of the bucket (e.g. bucket-name.nyc3.digitaloceanspaces.com)
     */
    bucketDomainName: string;
    /**
     * The FQDN of the bucket without the bucket name (e.g. nyc3.digitaloceanspaces.com)
     */
    endpoint: string;
    /**
     * The name of the Spaces bucket
     */
    name: string;
    /**
     * The slug of the region where the bucket is stored.
     */
    region: string;
    /**
     * The uniform resource name of the bucket
     */
    urn: string;
}
export interface GetSpacesBucketsFilter {
    /**
     * Set to `true` to require that a field match all of the `values` instead of just one or more of
     * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
     * that all of the `values` are present in the list or set.
     */
    all?: boolean;
    /**
     * Filter the images by this key. This may be one of `bucketDomainName`, `name`, `region`, or `urn`.
     */
    key: string;
    /**
     * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
     * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
     * substrings to find within the string field.
     */
    matchBy?: string;
    /**
     * A list of values to match against the `key` field. Only retrieves Spaces buckets
     * where the `key` field takes on one or more of the values provided here.
     */
    values: string[];
}
export interface GetSpacesBucketsSort {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: string;
    /**
     * Sort the images by this key. This may be one of `bucketDomainName`, `name`, `region`, or `urn`.
     */
    key: string;
}
export interface GetSpacesKeyGrant {
    /**
     * The name of the bucket to grant the key access to.
     */
    bucket: string;
    /**
     * The permission to grant the key. Valid values are `read`, `readwrite`, or `fullaccess`.
     */
    permission: string;
}
export interface GetSshKeysFilter {
    all?: boolean;
    /**
     * Filter the SSH Keys by this key. This may be one of `name`, `publicKey`, or `fingerprint`.
     */
    key: string;
    matchBy?: string;
    /**
     * A list of values to match against the key field. Only retrieves SSH keys where the key field matches one or more of the values provided here.
     */
    values: string[];
}
export interface GetSshKeysSort {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: string;
    /**
     * Sort the SSH Keys by this key. This may be one of `name`, `publicKey`, or `fingerprint`.
     */
    key: string;
}
export interface GetSshKeysSshKey {
    /**
     * The fingerprint of the public key of the ssh key.
     */
    fingerprint: string;
    /**
     * The ID of the ssh key.
     */
    id: number;
    /**
     * The name of the ssh key.
     */
    name: string;
    /**
     * The public key of the ssh key.
     */
    publicKey: string;
}
export interface GetTagsFilter {
    /**
     * Set to `true` to require that a field match all of the `values` instead of just one or more of
     * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
     * that all of the `values` are present in the list or set.
     */
    all?: boolean;
    /**
     * Filter the tags by this key. This may be one of `name`, `totalResourceCount`,  `dropletsCount`, `imagesCount`, `volumesCount`, `volumeSnapshotsCount`, or `databasesCount`.
     */
    key: string;
    /**
     * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
     * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
     * substrings to find within the string field.
     */
    matchBy?: string;
    /**
     * Only retrieves tags which keys has value that matches
     * one of the values provided here.
     */
    values: string[];
}
export interface GetTagsSort {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: string;
    /**
     * Sort the tags by this key. This may be one of `name`, `totalResourceCount`,  `dropletsCount`, `imagesCount`, `volumesCount`, `volumeSnapshotsCount`, or `databasesCount`.
     */
    key: string;
}
export interface GetTagsTag {
    /**
     * A count of the database clusters that the tag is applied to.
     */
    databasesCount: number;
    /**
     * A count of the Droplets the tag is applied to.
     */
    dropletsCount: number;
    /**
     * A count of the images that the tag is applied to.
     */
    imagesCount: number;
    /**
     * The name of the tag.
     */
    name: string;
    /**
     * A count of the total number of resources that the tag is applied to.
     */
    totalResourceCount: number;
    /**
     * A count of the volume snapshots that the tag is applied to.
     */
    volumeSnapshotsCount: number;
    /**
     * A count of the volumes that the tag is applied to.
     */
    volumesCount: number;
}
export interface GetVpcNatGatewayEgress {
    /**
     * List of public gateway IPs
     */
    publicGateways: outputs.GetVpcNatGatewayEgressPublicGateway[];
}
export interface GetVpcNatGatewayEgressPublicGateway {
    /**
     * IPv4 address
     */
    ipv4: string;
}
export interface GetVpcNatGatewayVpc {
    /**
     * Indicates if this is the default VPC NAT Gateway in the VPC
     */
    defaultGateway: boolean;
    /**
     * Gateway IP of the VPC NAT Gateway
     */
    gatewayIp: string;
    /**
     * ID of the ingress VPC
     */
    vpcUuid: string;
}
export interface GradientaiAgentAgentGuardrail {
    /**
     * Agent UUID for the Guardrail
     */
    agentUuid?: string;
    /**
     * Created At timestamp for the Guardrail
     */
    createdAt: string;
    /**
     * Default response for the Guardrail
     */
    defaultResponse?: string;
    /**
     * Description of the Guardrail
     */
    description?: string;
    /**
     * Guardrail UUID
     */
    guardrailUuid?: string;
    /**
     * Indicates if the Guardrail is attached
     */
    isAttached: boolean;
    /**
     * Indicates if the Guardrail is default
     */
    isDefault?: boolean;
    /**
     * Name of Guardrail
     */
    name?: string;
    /**
     * Priority of the Guardrail
     */
    priority?: number;
    /**
     * Type of the Guardrail
     */
    type?: string;
    /**
     * Updated At timestamp for the Guardrail
     */
    updatedAt: string;
    /**
     * Guardrail UUID
     */
    uuid?: string;
}
export interface GradientaiAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GradientaiAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GradientaiAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GradientaiAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GradientaiAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GradientaiAgentChildAgent {
    /**
     * ID of the child agent
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GradientaiAgentChildAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GradientaiAgentChildAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GradientaiAgentChildAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GradientaiAgentChildAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GradientaiAgentChildAgentChatbot[];
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GradientaiAgentChildAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
}
export interface GradientaiAgentChildAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GradientaiAgentChildAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GradientaiAgentChildAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GradientaiAgentChildAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GradientaiAgentChildAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GradientaiAgentChildAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GradientaiAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GradientaiAgentFunction {
    /**
     * API Key value
     */
    apiKey?: string;
    /**
     * Created At timestamp for the Function
     */
    createdAt: string;
    /**
     * Description of the Function
     */
    description?: string;
    /**
     * Name of function
     */
    faasname?: string;
    /**
     * Namespace of function
     */
    faasnamespace?: string;
    /**
     * Guardrail UUID for the Function
     */
    guardrailUuid?: string;
    /**
     * Name of function
     */
    name?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GradientaiAgentKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: outputs.GradientaiAgentKnowledgeBaseLastIndexingJob;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: string;
    /**
     * Region of the Knowledge Base
     */
    region?: string;
    /**
     * List of tags
     */
    tags?: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId?: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GradientaiAgentKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GradientaiAgentModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GradientaiAgentModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GradientaiAgentModelVersion[];
}
export interface GradientaiAgentModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GradientaiAgentModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GradientaiAgentOpenAiApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GradientaiAgentParentAgent {
    /**
     * ID of the child agent
     */
    agentId: string;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: outputs.GradientaiAgentParentAgentAnthropicApiKey[];
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: outputs.GradientaiAgentParentAgentApiKeyInfo[];
    /**
     * List of API Keys
     */
    apiKeys?: outputs.GradientaiAgentParentAgentApiKey[];
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: outputs.GradientaiAgentParentAgentChatbotIdentifier[];
    /**
     * ChatBot configuration
     */
    chatbots?: outputs.GradientaiAgentParentAgentChatbot[];
    /**
     * List of API Key Infos
     */
    deployments?: outputs.GradientaiAgentParentAgentDeployment[];
    /**
     * Description for the Agent
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction: string;
    /**
     * Model UUID of the Agent
     */
    modelUuid: string;
    /**
     * Name of the Agent
     */
    name: string;
    /**
     * Project ID of the Agent
     */
    projectId: string;
    /**
     * Region where the Agent is deployed
     */
    region: string;
}
export interface GradientaiAgentParentAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GradientaiAgentParentAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GradientaiAgentParentAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: string;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: string;
    /**
     * API Key value
     */
    uuid?: string;
}
export interface GradientaiAgentParentAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: string;
    /**
     * Logo for the chatbot
     */
    logo?: string;
    /**
     * Name of the chatbot
     */
    name?: string;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: string;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: string;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: string;
}
export interface GradientaiAgentParentAgentChatbotIdentifier {
    chatbotId: string;
}
export interface GradientaiAgentParentAgentDeployment {
    /**
     * API Key value
     */
    createdAt: string;
    /**
     * Name of the API Key
     */
    name?: string;
    /**
     * Status of the Deployment
     */
    status?: string;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt: string;
    /**
     * Url of the Deployment
     */
    url?: string;
    /**
     * API Key value
     */
    uuid?: string;
    /**
     * Visibility of the Deployment
     */
    visibility?: string;
}
export interface GradientaiAgentTemplate {
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Description of the Agent Template
     */
    description?: string;
    /**
     * Instruction for the Agent
     */
    instruction?: string;
    /**
     * K value for the Agent Template
     */
    k?: number;
    /**
     * List of Knowledge Bases
     */
    knowledgeBases?: outputs.GradientaiAgentTemplateKnowledgeBase[];
    /**
     * Maximum tokens allowed
     */
    maxTokens?: number;
    /**
     * Model of the Agent Template
     */
    models?: outputs.GradientaiAgentTemplateModel[];
    /**
     * Name of the Agent Template
     */
    name?: string;
    /**
     * Agent temperature setting
     */
    temperature?: number;
    /**
     * Top P sampling parameter
     */
    topP?: number;
    /**
     * Updated At timestamp for the Agent Template
     */
    updatedAt: string;
    /**
     * uuid of the Agent Template
     */
    uuid?: string;
}
export interface GradientaiAgentTemplateKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt: string;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: string;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: string;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: boolean;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: outputs.GradientaiAgentTemplateKnowledgeBaseLastIndexingJob;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: string;
    /**
     * Region of the Knowledge Base
     */
    region?: string;
    /**
     * List of tags
     */
    tags?: string[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * User ID of the Knowledge Base
     */
    userId?: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid: string;
}
export interface GradientaiAgentTemplateKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GradientaiAgentTemplateModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GradientaiAgentTemplateModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GradientaiAgentTemplateModelVersion[];
}
export interface GradientaiAgentTemplateModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GradientaiAgentTemplateModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface GradientaiKnowledgeBaseDataSource {
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * File upload data source configuration
     */
    fileUploadDataSources?: outputs.GradientaiKnowledgeBaseDataSourceFileUploadDataSource[];
    /**
     * Last indexing job for the data source
     */
    lastIndexingJobs?: outputs.GradientaiKnowledgeBaseDataSourceLastIndexingJob[];
    /**
     * Spaces data source configuration
     */
    spacesDataSources?: outputs.GradientaiKnowledgeBaseDataSourceSpacesDataSource[];
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * UUID of the Knowledge Base
     */
    uuid?: string;
    /**
     * Web crawler data source configuration
     */
    webCrawlerDataSources?: outputs.GradientaiKnowledgeBaseDataSourceWebCrawlerDataSource[];
}
export interface GradientaiKnowledgeBaseDataSourceFileUploadDataSource {
    /**
     * The original name of the uploaded file
     */
    originalFileName?: string;
    /**
     * The size of the file in bytes
     */
    sizeInBytes?: string;
    /**
     * The stored object key for the file
     */
    storedObjectKey?: string;
}
export interface GradientaiKnowledgeBaseDataSourceLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GradientaiKnowledgeBaseDataSourceSpacesDataSource {
    /**
     * The name of the Spaces bucket
     */
    bucketName?: string;
    /**
     * The path to the item in the bucket
     */
    itemPath?: string;
    /**
     * The region of the Spaces bucket
     */
    region?: string;
}
export interface GradientaiKnowledgeBaseDataSourceWebCrawlerDataSource {
    /**
     * The base URL to crawl
     */
    baseUrl?: string;
    /**
     * Options for specifying how URLs found on pages should be handled.
     * - UNKNOWN: Default unknown value
     * - SCOPED: Only include the base URL.
     * - PATH: Crawl the base URL and linked pages within the URL path.
     * - DOMAIN: Crawl the base URL and linked pages within the same domain.
     * - SUBDOMAINS: Crawl the base URL and linked pages for any subdomain.
     */
    crawlingOption?: string;
    /**
     * Whether to embed media content
     */
    embedMedia?: boolean;
}
export interface GradientaiKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: number;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt: string;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: string[];
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt: string;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid: string;
    /**
     * Phase of the last indexing job
     */
    phase?: string;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt: string;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: number;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: number;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt: string;
    /**
     * UUID  of the last indexing job
     */
    uuid?: string;
}
export interface GradientaiOpenaiApiKeyModel {
    /**
     * Agreement information for the model
     */
    agreements?: outputs.GradientaiOpenaiApiKeyModelAgreement[];
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt: string;
    /**
     * Inference name of the model
     */
    inferenceName?: string;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: string;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: boolean;
    /**
     * Name of the Knowledge Base
     */
    name?: string;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: string;
    /**
     * Provider of the Model
     */
    provider?: string;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt: string;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: boolean;
    /**
     * URL of the Model
     */
    url?: string;
    /**
     * List of Usecases for the Model
     */
    usecases?: string[];
    /**
     * URL of the Model
     */
    versions?: outputs.GradientaiOpenaiApiKeyModelVersion[];
}
export interface GradientaiOpenaiApiKeyModelAgreement {
    /**
     * Description of the agreement
     */
    description?: string;
    /**
     * Name of the agreement
     */
    name?: string;
    /**
     * URL of the agreement
     */
    url?: string;
    /**
     * UUID of the agreement
     */
    uuid?: string;
}
export interface GradientaiOpenaiApiKeyModelVersion {
    /**
     * Major version of the model
     */
    major?: number;
    /**
     * Minor version of the model
     */
    minor?: number;
    /**
     * Patch version of the model
     */
    patch?: number;
}
export interface KubernetesClusterAmdGpuDeviceMetricsExporterPlugin {
    /**
     * Boolean flag whether the component is enabled or not.
     */
    enabled: boolean;
}
export interface KubernetesClusterAmdGpuDevicePlugin {
    /**
     * Boolean flag whether the component should be enabled or not.
     * `amdGpuDeviceMetricsExporterPlugin` - (Optional) Block containing options for the AMD GPU device metrics exporter component. If not specified, the component will not be installed in the cluster.
     */
    enabled: boolean;
}
export interface KubernetesClusterClusterAutoscalerConfiguration {
    expanders?: string[];
    /**
     * String setting how long a node should be unneeded before it's eligible for scale down.
     *
     * This resource supports customized create timeouts. The default timeout is 30 minutes.
     */
    scaleDownUnneededTime?: string;
    /**
     * Float setting the Node utilization level, defined as sum of requested resources divided by capacity, in which a node can be considered for scale down.
     */
    scaleDownUtilizationThreshold?: number;
}
export interface KubernetesClusterControlPlaneFirewall {
    /**
     * A list of addresses allowed (CIDR notation).
     */
    allowedAddresses: string[];
    /**
     * Boolean flag whether the firewall should be enabled or not.
     */
    enabled: boolean;
}
export interface KubernetesClusterKubeConfig {
    /**
     * The base64 encoded public certificate used by clients to access the cluster. Only available if token authentication is not supported on your cluster.
     */
    clientCertificate: string;
    /**
     * The base64 encoded private key used by clients to access the cluster. Only available if token authentication is not supported on your cluster.
     */
    clientKey: string;
    /**
     * The base64 encoded public certificate for the cluster's certificate authority.
     */
    clusterCaCertificate: string;
    /**
     * The date and time when the credentials will expire and need to be regenerated.
     */
    expiresAt: string;
    /**
     * The URL of the API server on the Kubernetes master node.
     */
    host: string;
    /**
     * The full contents of the Kubernetes cluster's kubeconfig file.
     */
    rawConfig: string;
    /**
     * The DigitalOcean API access token used by clients to access the cluster.
     */
    token: string;
}
export interface KubernetesClusterMaintenancePolicy {
    /**
     * The day of the maintenance window policy. May be one of "monday" through "sunday", or "any" to indicate an arbitrary week day.
     */
    day: string;
    /**
     * A string denoting the duration of the service window, e.g., "04:00".
     */
    duration: string;
    /**
     * The start time in UTC of the maintenance window policy in 24-hour clock format / HH:MM notation (e.g., 15:00).
     */
    startTime: string;
}
export interface KubernetesClusterNodePool {
    /**
     * A computed field representing the actual number of nodes in the node pool, which is especially useful when auto-scaling is enabled.
     */
    actualNodeCount: number;
    /**
     * Enable auto-scaling of the number of nodes in the node pool within the given min/max range.
     */
    autoScale?: boolean;
    /**
     * A unique ID that can be used to identify and reference the node.
     */
    id: string;
    /**
     * A map of key/value pairs to apply to nodes in the pool. The labels are exposed in the Kubernetes API as labels in the metadata of the corresponding [Node resources](https://kubernetes.io/docs/concepts/architecture/nodes/).
     */
    labels?: {
        [key: string]: string;
    };
    /**
     * If auto-scaling is enabled, this represents the maximum number of nodes that the node pool can be scaled up to.
     */
    maxNodes?: number;
    /**
     * If auto-scaling is enabled, this represents the minimum number of nodes that the node pool can be scaled down to.
     */
    minNodes?: number;
    /**
     * A name for the node pool.
     */
    name: string;
    /**
     * The number of Droplet instances in the node pool. If auto-scaling is enabled, this should only be set if the desired result is to explicitly reset the number of nodes to this value. If auto-scaling is enabled, and the node count is outside of the given min/max range, it will use the min nodes value.
     */
    nodeCount?: number;
    /**
     * A list of nodes in the pool. Each node exports the following attributes:
     */
    nodes: outputs.KubernetesClusterNodePoolNode[];
    /**
     * The slug identifier for the type of Droplet to be used as workers in the node pool.
     */
    size: string;
    /**
     * A list of tag names applied to the node pool.
     */
    tags?: string[];
    /**
     * A block representing a taint applied to all nodes in the pool. Each taint exports the following attributes (taints must be unique by key and effect pair):
     */
    taints?: outputs.KubernetesClusterNodePoolTaint[];
}
export interface KubernetesClusterNodePoolNode {
    /**
     * The date and time when the node was created.
     */
    createdAt: string;
    /**
     * The id of the node's droplet
     */
    dropletId: string;
    /**
     * A unique ID that can be used to identify and reference the node.
     */
    id: string;
    /**
     * A name for the Kubernetes cluster.
     */
    name: string;
    /**
     * A string indicating the current status of the individual node.
     */
    status: string;
    /**
     * The date and time when the node was last updated.
     */
    updatedAt: string;
}
export interface KubernetesClusterNodePoolTaint {
    /**
     * How the node reacts to pods that it won't tolerate. Available effect values are: "NoSchedule", "PreferNoSchedule", "NoExecute".
     */
    effect: string;
    /**
     * An arbitrary string. The "key" and "value" fields of the "taint" object form a key-value pair.
     */
    key: string;
    /**
     * An arbitrary string. The "key" and "value" fields of the "taint" object form a key-value pair.
     */
    value: string;
}
export interface KubernetesClusterNvidiaGpuDevicePlugin {
    /**
     * Boolean flag whether the component should be enabled or not.
     * `rdmaSharedDevicePlugin` - (Optional) Block containing options for the RDMA Shared Device Plugin (k8s-rdma-shared-dev-plugin) component. If not specified, the component will be enabled by default for clusters with GPU nodes connected to a dedicated high-speed networking fabric.
     */
    enabled: boolean;
}
export interface KubernetesClusterRdmaSharedDevicePlugin {
    /**
     * Boolean flag whether the component is enabled or not.
     */
    enabled: boolean;
}
export interface KubernetesClusterRoutingAgent {
    /**
     * Boolean flag whether the routing-agent should be enabled or not.
     */
    enabled: boolean;
}
export interface KubernetesClusterSso {
    clientId?: string;
    /**
     * Boolean flag whether the component is enabled or not.
     */
    enabled: boolean;
    issuerUrl?: string;
    required?: boolean;
}
export interface KubernetesNodePoolNode {
    /**
     * The date and time when the node was created.
     */
    createdAt: string;
    /**
     * The id of the node's droplet
     */
    dropletId: string;
    /**
     * A unique ID that can be used to identify and reference the node.
     */
    id: string;
    /**
     * A name for the node pool.
     */
    name: string;
    /**
     * A string indicating the current status of the individual node.
     */
    status: string;
    /**
     * The date and time when the node was last updated.
     */
    updatedAt: string;
}
export interface KubernetesNodePoolTaint {
    /**
     * How the node reacts to pods that it won't tolerate. Available effect values are: "NoSchedule", "PreferNoSchedule", "NoExecute".
     */
    effect: string;
    /**
     * An arbitrary string. The "key" and "value" fields of the "taint" object form a key-value pair.
     */
    key: string;
    /**
     * An arbitrary string. The "key" and "value" fields of the "taint" object form a key-value pair.
     */
    value: string;
}
export interface LoadBalancerDomain {
    /**
     * **Deprecated** The certificate ID to be used for TLS handshaking.
     */
    certificateId: string;
    /**
     * The certificate name to be used for TLS handshaking.
     *
     * After create and after update when `domains` changes, the provider polls the load balancer (for up to 15 minutes) until each non-managed domain’s `certificateName` reported by the API matches the configuration. That reduces race conditions when replacing `digitalocean.Certificate` resources that use `createBeforeDestroy`.
     */
    certificateName: string;
    /**
     * Control flag to specify whether the domain is managed by DigitalOcean.
     */
    isManaged?: boolean;
    /**
     * The domain name to be used for ingressing traffic to a Global Load Balancer.
     */
    name: string;
    /**
     * list of domain SSL validation errors
     */
    sslValidationErrorReasons: string[];
    /**
     * list of domain verification errors
     */
    verificationErrorReasons: string[];
}
export interface LoadBalancerFirewall {
    /**
     * A list of strings describing allow rules. Must be colon delimited strings of the form `{type}:{source}`
     * * Ex. `deny = ["cidr:1.2.0.0/16", "ip:2.3.4.5"]` or `allow = ["ip:1.2.3.4", "cidr:2.3.4.0/24"]`
     */
    allows?: string[];
    /**
     * A list of strings describing deny rules. Must be colon delimited strings of the form `{type}:{source}`
     */
    denies?: string[];
}
export interface LoadBalancerForwardingRule {
    /**
     * **Deprecated** The ID of the TLS certificate to be used for SSL termination. Use `certificateName` instead.
     *
     * @deprecated Certificate IDs may change, for example when a Let's Encrypt certificate is auto-renewed. Please specify 'certificate_name' instead.
     */
    certificateId: string;
    /**
     * The unique name of the TLS certificate to be used for SSL termination.
     */
    certificateName: string;
    /**
     * An integer representing the port on which the Load Balancer instance will listen.
     */
    entryPort: number;
    /**
     * The protocol used for traffic to the Load Balancer. The possible values are: `http`, `https`, `http2`, `http3`, `tcp`, or `udp`.
     */
    entryProtocol: string;
    /**
     * An integer representing the port on the backend Droplets to which the Load Balancer will send traffic.
     */
    targetPort: number;
    /**
     * The protocol used for traffic from the Load Balancer to the backend Droplets. The possible values are: `http`, `https`, `http2`, `tcp`, or `udp`.
     */
    targetProtocol: string;
    /**
     * A boolean value indicating whether SSL encrypted traffic will be passed through to the backend Droplets. The default value is `false`.
     */
    tlsPassthrough?: boolean;
}
export interface LoadBalancerGlbSettings {
    /**
     * CDN configuration supporting the following:
     */
    cdn?: outputs.LoadBalancerGlbSettingsCdn;
    /**
     * fail-over threshold
     */
    failoverThreshold?: number;
    /**
     * region priority map
     */
    regionPriorities?: {
        [key: string]: number;
    };
    /**
     * An integer representing the port on the backend Droplets to which the Load Balancer will send traffic. The possible values are: `80` for `http` and `443` for `https`.
     */
    targetPort: number;
    /**
     * The protocol used for traffic from the Load Balancer to the backend Droplets. The possible values are: `http` and `https`.
     */
    targetProtocol: string;
}
export interface LoadBalancerGlbSettingsCdn {
    /**
     * Control flag to specify if caching is enabled.
     */
    isEnabled?: boolean;
}
export interface LoadBalancerHealthcheck {
    /**
     * The number of seconds between two consecutive health checks. If not specified, the default value is `10`.
     */
    checkIntervalSeconds?: number;
    /**
     * The number of times a health check must pass for a backend Droplet to be marked "healthy" and be re-added to the pool. If not specified, the default value is `5`.
     */
    healthyThreshold?: number;
    /**
     * The path on the backend Droplets to which the Load Balancer instance will send a request.
     */
    path?: string;
    /**
     * An integer representing the port on the backend Droplets on which the health check will attempt a connection.
     */
    port: number;
    /**
     * The protocol used for health checks sent to the backend Droplets. The possible values are `http`, `https` or `tcp`.
     */
    protocol: string;
    /**
     * The number of seconds the Load Balancer instance will wait for a response until marking a health check as failed. If not specified, the default value is `5`.
     */
    responseTimeoutSeconds?: number;
    /**
     * The number of times a health check must fail for a backend Droplet to be marked "unhealthy" and be removed from the pool. If not specified, the default value is `3`.
     */
    unhealthyThreshold?: number;
}
export interface LoadBalancerStickySessions {
    /**
     * The name to be used for the cookie sent to the client. This attribute is required when using `cookies` for the sticky sessions type.
     */
    cookieName?: string;
    /**
     * The number of seconds until the cookie set by the Load Balancer expires. This attribute is required when using `cookies` for the sticky sessions type.
     */
    cookieTtlSeconds?: number;
    /**
     * An attribute indicating how and if requests from a client will be persistently served by the same backend Droplet. The possible values are `cookies` or `none`. If not specified, the default value is `none`.
     */
    type?: string;
}
export interface MonitorAlertAlerts {
    /**
     * List of email addresses to sent notifications to
     */
    emails?: string[];
    slacks?: outputs.MonitorAlertAlertsSlack[];
}
export interface MonitorAlertAlertsSlack {
    /**
     * The Slack channel to send alerts to
     */
    channel: string;
    /**
     * The webhook URL for Slack
     */
    url: string;
}
export interface PartnerAttachmentBgp {
    authKey?: string;
    localRouterIp?: string;
    peerRouterAsn?: number;
    peerRouterIp?: string;
}
export interface SpacesBucketCorsConfigurationCorsRule {
    /**
     * Set of Headers that are specified in the Access-Control-Request-Headers header.
     */
    allowedHeaders?: string[];
    /**
     * Set of HTTP methods that you allow the origin to execute. Valid values are GET, PUT, HEAD, POST, and DELETE.
     */
    allowedMethods: string[];
    /**
     * Set of origins you want customers to be able to access the bucket from.
     */
    allowedOrigins: string[];
    /**
     * Set of headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object).
     */
    exposeHeaders?: string[];
    /**
     * Unique identifier for the rule. The value cannot be longer than 255 characters.
     */
    id?: string;
    /**
     * Time in seconds that your browser is to cache the preflight response for the specified resource.
     */
    maxAgeSeconds?: number;
}
export interface SpacesBucketCorsRule {
    /**
     * A list of headers that will be included in the CORS preflight request's `Access-Control-Request-Headers`. A header may contain one wildcard (e.g. `x-amz-*`).
     */
    allowedHeaders?: string[];
    /**
     * A list of HTTP methods (e.g. `GET`) which are allowed from the specified origin.
     */
    allowedMethods: string[];
    /**
     * A list of hosts from which requests using the specified methods are allowed. A host may contain one wildcard (e.g. http://*.example.com).
     */
    allowedOrigins: string[];
    /**
     * The time in seconds that browser can cache the response for a preflight request.
     */
    maxAgeSeconds?: number;
}
export interface SpacesBucketLifecycleRule {
    /**
     * Specifies the number of days after initiating a multipart
     * upload when the multipart upload must be completed or else Spaces will abort the upload.
     */
    abortIncompleteMultipartUploadDays?: number;
    /**
     * Specifies lifecycle rule status.
     */
    enabled: boolean;
    /**
     * Specifies a time period after which applicable objects expire (documented below).
     */
    expiration?: outputs.SpacesBucketLifecycleRuleExpiration;
    /**
     * Unique identifier for the rule.
     */
    id: string;
    /**
     * Specifies when non-current object versions expire (documented below).
     *
     * At least one of `expiration` or `noncurrentVersionExpiration` must be specified.
     */
    noncurrentVersionExpiration?: outputs.SpacesBucketLifecycleRuleNoncurrentVersionExpiration;
    /**
     * Object key prefix identifying one or more objects to which the rule applies.
     */
    prefix?: string;
}
export interface SpacesBucketLifecycleRuleExpiration {
    /**
     * Specifies the date/time after which you want applicable objects to expire. The argument uses
     * RFC3339 format, e.g. "2020-03-22T15:03:55Z" or parts thereof e.g. "2019-02-28".
     */
    date?: string;
    /**
     * Specifies the number of days after object creation when the applicable objects will expire.
     */
    days?: number;
    /**
     * On a versioned bucket (versioning-enabled or versioning-suspended
     * bucket), setting this to true directs Spaces to delete expired object delete markers.
     */
    expiredObjectDeleteMarker?: boolean;
}
export interface SpacesBucketLifecycleRuleNoncurrentVersionExpiration {
    /**
     * Specifies the number of days after which an object's non-current versions expire.
     */
    days?: number;
}
export interface SpacesBucketVersioning {
    /**
     * Enable versioning. Once you version-enable a bucket, it can never return to an unversioned
     * state. You can, however, suspend versioning on that bucket.
     */
    enabled?: boolean;
}
export interface SpacesKeyGrant {
    /**
     * Name of the bucket associated with this grant. In case of a `fullaccess` permission, this value should be an empty string.
     */
    bucket: string;
    /**
     * Permission associated with this grant. Values can be `read`, `readwrite`, `fullaccess`.
     */
    permission: string;
}
export interface UptimeAlertNotification {
    /**
     * List of email addresses to sent notifications to.
     */
    emails?: string[];
    slacks?: outputs.UptimeAlertNotificationSlack[];
}
export interface UptimeAlertNotificationSlack {
    /**
     * The Slack channel to send alerts to.
     */
    channel: string;
    /**
     * The webhook URL for Slack.
     */
    url: string;
}
export interface VpcNatGatewayEgress {
    /**
     * List of public gateway IPs
     */
    publicGateways: outputs.VpcNatGatewayEgressPublicGateway[];
}
export interface VpcNatGatewayEgressPublicGateway {
    /**
     * IPv4 address
     */
    ipv4: string;
}
export interface VpcNatGatewayVpc {
    /**
     * Boolean flag indicating if this should be the default gateway in this VPC
     */
    defaultGateway?: boolean;
    /**
     * The private IP of the VPC NAT Gateway
     */
    gatewayIp: string;
    /**
     * The ID of the ingress VPC
     */
    vpcUuid: string;
}
//# sourceMappingURL=output.d.ts.map