import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
export interface AppDedicatedIp {
    /**
     * The ID of the app.
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * The IP address of the dedicated egress IP.
     */
    ip?: pulumi.Input<string | undefined>;
    /**
     * The status of the dedicated egress IP: 'UNKNOWN', 'ASSIGNING', 'ASSIGNED', or 'REMOVED'
     */
    status?: pulumi.Input<string | undefined>;
}
export interface AppSpec {
    /**
     * Describes an alert policy for the component.
     */
    alerts?: pulumi.Input<pulumi.Input<inputs.AppSpecAlert>[] | undefined>;
    databases?: pulumi.Input<pulumi.Input<inputs.AppSpecDatabase>[] | undefined>;
    /**
     * 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?: pulumi.Input<boolean | undefined>;
    /**
     * 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?: pulumi.Input<boolean | undefined>;
    /**
     * Describes a domain where the application will be made available.
     */
    domainNames?: pulumi.Input<pulumi.Input<inputs.AppSpecDomainName>[] | undefined>;
    /**
     * @deprecated This attribute has been replaced by `domain` which supports additional functionality.
     */
    domains?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Specification for app egress configurations.
     */
    egresses?: pulumi.Input<pulumi.Input<inputs.AppSpecEgress>[] | undefined>;
    /**
     * 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?: pulumi.Input<boolean | undefined>;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: pulumi.Input<pulumi.Input<inputs.AppSpecEnv>[] | undefined>;
    /**
     * 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?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    functions?: pulumi.Input<pulumi.Input<inputs.AppSpecFunction>[] | undefined>;
    /**
     * Specification for component routing, rewrites, and redirects.
     */
    ingress?: pulumi.Input<inputs.AppSpecIngress | undefined>;
    jobs?: pulumi.Input<pulumi.Input<inputs.AppSpecJob>[] | undefined>;
    /**
     * Specification to configure maintenance settings for the app, such as maintenance mode and archiving the app.
     */
    maintenance?: pulumi.Input<inputs.AppSpecMaintenance | undefined>;
    /**
     * The name of the component.
     */
    name: pulumi.Input<string>;
    /**
     * The slug for the DigitalOcean data center region hosting the app.
     */
    region?: pulumi.Input<string | undefined>;
    services?: pulumi.Input<pulumi.Input<inputs.AppSpecService>[] | undefined>;
    staticSites?: pulumi.Input<pulumi.Input<inputs.AppSpecStaticSite>[] | undefined>;
    /**
     * Specification for VPC.
     */
    vpcs?: pulumi.Input<pulumi.Input<inputs.AppSpecVpc>[] | undefined>;
    workers?: pulumi.Input<pulumi.Input<inputs.AppSpecWorker>[] | undefined>;
}
export interface AppSpecAlert {
    /**
     * Specification for alert destination.
     */
    destinations?: pulumi.Input<inputs.AppSpecAlertDestinations | undefined>;
    /**
     * Determines whether or not the alert is disabled (default: `false`).
     */
    disabled?: pulumi.Input<boolean | undefined>;
    /**
     * The type of the alert to configure. Component app alert policies can be: `CPU_UTILIZATION`, `MEM_UTILIZATION`, or `RESTART_COUNT`.
     */
    rule: pulumi.Input<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?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Determines which slack channels or users receive alerts.
     */
    slackWebhooks?: pulumi.Input<pulumi.Input<inputs.AppSpecAlertDestinationsSlackWebhook>[] | undefined>;
}
export interface AppSpecAlertDestinationsSlackWebhook {
    /**
     * The Slack channel to send notifications to.
     */
    channel: pulumi.Input<string>;
    /**
     * The Slack webhook URL.
     */
    url: pulumi.Input<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?: pulumi.Input<string | undefined>;
    /**
     * The name of the MySQL or PostgreSQL database to configure.
     */
    dbName?: pulumi.Input<string | undefined>;
    /**
     * The name of the MySQL or PostgreSQL user to configure.
     *
     * This resource supports customized create timeouts. The default timeout is 30 minutes.
     */
    dbUser?: pulumi.Input<string | undefined>;
    /**
     * The database engine to use (`MYSQL`, `PG`, `REDIS`, `MONGODB`, `KAFKA`, or `OPENSEARCH`).
     */
    engine?: pulumi.Input<string | undefined>;
    /**
     * The name of the component.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Whether this is a production or dev database.
     */
    production?: pulumi.Input<boolean | undefined>;
    /**
     * The version of the database engine.
     */
    version?: pulumi.Input<string | undefined>;
}
export interface AppSpecDomainName {
    /**
     * The hostname for the domain.
     */
    name: pulumi.Input<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?: pulumi.Input<string | undefined>;
    /**
     * A boolean indicating whether the domain includes all sub-domains, in addition to the given domain.
     */
    wildcard?: pulumi.Input<boolean | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
}
export interface AppSpecEgress {
    /**
     * The app egress type: `AUTOASSIGN`, `DEDICATED_IP`
     */
    type?: pulumi.Input<string | undefined>;
}
export interface AppSpecEnv {
    /**
     * The name of the environment variable.
     */
    key?: pulumi.Input<string | undefined>;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: pulumi.Input<string | undefined>;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * The value of the environment variable.
     */
    value?: pulumi.Input<string | undefined>;
}
export interface AppSpecFunction {
    /**
     * Describes an alert policy for the component.
     */
    alerts?: pulumi.Input<pulumi.Input<inputs.AppSpecFunctionAlert>[] | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecFunctionBitbucket | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecFunctionCors | undefined>;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: pulumi.Input<pulumi.Input<inputs.AppSpecFunctionEnv>[] | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecFunctionGit | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecFunctionGithub | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecFunctionGitlab | undefined>;
    /**
     * Describes a log forwarding destination.
     */
    logDestinations?: pulumi.Input<pulumi.Input<inputs.AppSpecFunctionLogDestination>[] | undefined>;
    /**
     * The name of the component.
     */
    name: pulumi.Input<string>;
    /**
     * An HTTP paths that should be routed to this component.
     *
     * @deprecated Service level routes are deprecated in favor of ingresses
     */
    routes?: pulumi.Input<pulumi.Input<inputs.AppSpecFunctionRoute>[] | undefined>;
    /**
     * An optional path to the working directory to use for the build.
     */
    sourceDir?: pulumi.Input<string | undefined>;
}
export interface AppSpecFunctionAlert {
    /**
     * Specification for alert destination.
     */
    destinations?: pulumi.Input<inputs.AppSpecFunctionAlertDestinations | undefined>;
    /**
     * Determines whether or not the alert is disabled (default: `false`).
     */
    disabled?: pulumi.Input<boolean | undefined>;
    /**
     * The operator to use. This is either of `GREATER_THAN` or `LESS_THAN`.
     */
    operator: pulumi.Input<string>;
    /**
     * The type of the alert to configure. Component app alert policies can be: `CPU_UTILIZATION`, `MEM_UTILIZATION`, or `RESTART_COUNT`.
     */
    rule: pulumi.Input<string>;
    /**
     * The threshold for the type of the warning.
     */
    value: pulumi.Input<number>;
    /**
     * The time before alerts should be triggered. This is may be one of: `FIVE_MINUTES`, `TEN_MINUTES`, `THIRTY_MINUTES`, `ONE_HOUR`.
     */
    window: pulumi.Input<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?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Determines which slack channels or users receive alerts.
     */
    slackWebhooks?: pulumi.Input<pulumi.Input<inputs.AppSpecFunctionAlertDestinationsSlackWebhook>[] | undefined>;
}
export interface AppSpecFunctionAlertDestinationsSlackWebhook {
    /**
     * The Slack channel to send notifications to.
     */
    channel: pulumi.Input<string>;
    /**
     * The Slack webhook URL.
     */
    url: pulumi.Input<string>;
}
export interface AppSpecFunctionBitbucket {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: pulumi.Input<string | undefined>;
}
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?: pulumi.Input<boolean | undefined>;
    /**
     * The set of allowed HTTP request headers. This configures the Access-Control-Allow-Headers header.
     */
    allowHeaders?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The set of allowed HTTP methods. This configures the Access-Control-Allow-Methods header.
     */
    allowMethods?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The set of allowed CORS origins. This configures the Access-Control-Allow-Origin header.
     */
    allowOrigins?: pulumi.Input<inputs.AppSpecFunctionCorsAllowOrigins | undefined>;
    /**
     * The set of HTTP response headers that browsers are allowed to access. This configures the Access-Control-Expose-Headers header.
     */
    exposeHeaders?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
}
export interface AppSpecFunctionCorsAllowOrigins {
    /**
     * Exact string match.
     */
    exact?: pulumi.Input<string | undefined>;
    /**
     * Prefix-based match.
     *
     * @deprecated Prefix-based matching has been deprecated in favor of regex-based matching.
     */
    prefix?: pulumi.Input<string | undefined>;
    /**
     * RE2 style regex-based match.
     */
    regex?: pulumi.Input<string | undefined>;
}
export interface AppSpecFunctionEnv {
    /**
     * The name of the environment variable.
     */
    key?: pulumi.Input<string | undefined>;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: pulumi.Input<string | undefined>;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * The value of the environment variable.
     */
    value?: pulumi.Input<string | undefined>;
}
export interface AppSpecFunctionGit {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * The clone URL of the repo.
     */
    repoCloneUrl?: pulumi.Input<string | undefined>;
}
export interface AppSpecFunctionGithub {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: pulumi.Input<string | undefined>;
}
export interface AppSpecFunctionGitlab {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: pulumi.Input<string | undefined>;
}
export interface AppSpecFunctionLogDestination {
    /**
     * Datadog configuration.
     */
    datadog?: pulumi.Input<inputs.AppSpecFunctionLogDestinationDatadog | undefined>;
    /**
     * Logtail configuration.
     */
    logtail?: pulumi.Input<inputs.AppSpecFunctionLogDestinationLogtail | undefined>;
    /**
     * Name of the log destination. Minimum length: 2. Maximum length: 42.
     */
    name: pulumi.Input<string>;
    /**
     * OpenSearch configuration.
     */
    openSearch?: pulumi.Input<inputs.AppSpecFunctionLogDestinationOpenSearch | undefined>;
    /**
     * Papertrail configuration.
     */
    papertrail?: pulumi.Input<inputs.AppSpecFunctionLogDestinationPapertrail | undefined>;
}
export interface AppSpecFunctionLogDestinationDatadog {
    /**
     * Datadog API key.
     */
    apiKey: pulumi.Input<string>;
    /**
     * Datadog HTTP log intake endpoint.
     */
    endpoint?: pulumi.Input<string | undefined>;
}
export interface AppSpecFunctionLogDestinationLogtail {
    /**
     * Logtail token.
     */
    token: pulumi.Input<string>;
}
export interface AppSpecFunctionLogDestinationOpenSearch {
    /**
     * Basic authentication details.
     */
    basicAuth: pulumi.Input<inputs.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?: pulumi.Input<string | undefined>;
    /**
     * OpenSearch endpoint.
     */
    endpoint?: pulumi.Input<string | undefined>;
    /**
     * OpenSearch index name.
     */
    indexName?: pulumi.Input<string | undefined>;
}
export interface AppSpecFunctionLogDestinationOpenSearchBasicAuth {
    /**
     * Password for basic authentication.
     */
    password?: pulumi.Input<string | undefined>;
    /**
     * user for basic authentication.
     */
    user?: pulumi.Input<string | undefined>;
}
export interface AppSpecFunctionLogDestinationPapertrail {
    /**
     * Papertrail syslog endpoint.
     */
    endpoint: pulumi.Input<string>;
}
export interface AppSpecFunctionRoute {
    /**
     * Paths must start with `/` and must be unique within the app.
     */
    path?: pulumi.Input<string | undefined>;
    /**
     * An optional flag to preserve the path that is forwarded to the backend service.
     */
    preservePathPrefix?: pulumi.Input<boolean | undefined>;
}
export interface AppSpecIngress {
    /**
     * Rules for configuring HTTP ingress for component routes, CORS, rewrites, and redirects.
     */
    rules?: pulumi.Input<pulumi.Input<inputs.AppSpecIngressRule>[] | undefined>;
    secureHeader?: pulumi.Input<inputs.AppSpecIngressSecureHeader | undefined>;
}
export interface AppSpecIngressRule {
    /**
     * The component to route to. Only one of `component` or `redirect` may be set.
     */
    component?: pulumi.Input<inputs.AppSpecIngressRuleComponent | undefined>;
    /**
     * The [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) policies of the app.
     */
    cors?: pulumi.Input<inputs.AppSpecIngressRuleCors | undefined>;
    /**
     * The match configuration for the rule
     */
    match?: pulumi.Input<inputs.AppSpecIngressRuleMatch | undefined>;
    /**
     * The redirect configuration for the rule. Only one of `component` or `redirect` may be set.
     */
    redirect?: pulumi.Input<inputs.AppSpecIngressRuleRedirect | undefined>;
}
export interface AppSpecIngressRuleComponent {
    /**
     * The name of the component to route to.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<boolean | undefined>;
    /**
     * An optional field that will rewrite the path of the component to be what is specified here. This is mutually exclusive with `preservePathPrefix`.
     */
    rewrite?: pulumi.Input<string | undefined>;
}
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?: pulumi.Input<boolean | undefined>;
    /**
     * The set of allowed HTTP request headers. This configures the `Access-Control-Allow-Headers` header.
     */
    allowHeaders?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The set of allowed HTTP methods. This configures the `Access-Control-Allow-Methods` header.
     */
    allowMethods?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The `Access-Control-Allow-Origin` can be
     */
    allowOrigins?: pulumi.Input<inputs.AppSpecIngressRuleCorsAllowOrigins | undefined>;
    /**
     * The set of HTTP response headers that browsers are allowed to access. This configures the `Access-Control-Expose-Headers` header.
     */
    exposeHeaders?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
}
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?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
}
export interface AppSpecIngressRuleMatch {
    /**
     * The authority (domain) to match on.
     */
    authority?: pulumi.Input<inputs.AppSpecIngressRuleMatchAuthority | undefined>;
    /**
     * The path to match on.
     */
    path?: pulumi.Input<inputs.AppSpecIngressRuleMatchPath | undefined>;
}
export interface AppSpecIngressRuleMatchAuthority {
    /**
     * Exact match.
     */
    exact?: pulumi.Input<string | undefined>;
}
export interface AppSpecIngressRuleMatchPath {
    /**
     * Prefix-based match.
     */
    prefix?: pulumi.Input<string | undefined>;
}
export interface AppSpecIngressRuleRedirect {
    /**
     * The authority/host to redirect to. This can be a hostname or IP address.
     */
    authority?: pulumi.Input<string | undefined>;
    /**
     * The port to redirect to.
     */
    port?: pulumi.Input<number | undefined>;
    /**
     * The redirect code to use. Supported values are `300`, `301`, `302`, `303`, `304`, `307`, `308`.
     */
    redirectCode?: pulumi.Input<number | undefined>;
    /**
     * The scheme to redirect to. Supported values are `http` or `https`
     */
    scheme?: pulumi.Input<string | undefined>;
    /**
     * An optional URI path to redirect to.
     */
    uri?: pulumi.Input<string | undefined>;
}
export interface AppSpecIngressSecureHeader {
    /**
     * The name of the environment variable.
     */
    key?: pulumi.Input<string | undefined>;
    value?: pulumi.Input<string | undefined>;
}
export interface AppSpecJob {
    /**
     * Describes an alert policy for the component.
     */
    alerts?: pulumi.Input<pulumi.Input<inputs.AppSpecJobAlert>[] | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecJobBitbucket | undefined>;
    /**
     * An optional build command to run while building this component from source.
     */
    buildCommand?: pulumi.Input<string | undefined>;
    /**
     * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
     */
    dockerfilePath?: pulumi.Input<string | undefined>;
    /**
     * An environment slug describing the type of this app.
     */
    environmentSlug?: pulumi.Input<string | undefined>;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: pulumi.Input<pulumi.Input<inputs.AppSpecJobEnv>[] | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecJobGit | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecJobGithub | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecJobGitlab | undefined>;
    /**
     * An image to use as the component's source. Only one of `git`, `github`, `gitlab`, or `image` may be set.
     */
    image?: pulumi.Input<inputs.AppSpecJobImage | undefined>;
    /**
     * The amount of instances that this component should be scaled to.
     */
    instanceCount?: pulumi.Input<number | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * Describes a log forwarding destination.
     */
    logDestinations?: pulumi.Input<pulumi.Input<inputs.AppSpecJobLogDestination>[] | undefined>;
    /**
     * The name of the component.
     */
    name: pulumi.Input<string>;
    /**
     * An optional run command to override the component's default.
     */
    runCommand?: pulumi.Input<string | undefined>;
    /**
     * An optional path to the working directory to use for the build.
     */
    sourceDir?: pulumi.Input<string | undefined>;
    /**
     * Contains a component's termination parameters.
     */
    termination?: pulumi.Input<inputs.AppSpecJobTermination | undefined>;
}
export interface AppSpecJobAlert {
    /**
     * Specification for alert destination.
     */
    destinations?: pulumi.Input<inputs.AppSpecJobAlertDestinations | undefined>;
    /**
     * Determines whether or not the alert is disabled (default: `false`).
     */
    disabled?: pulumi.Input<boolean | undefined>;
    /**
     * The operator to use. This is either of `GREATER_THAN` or `LESS_THAN`.
     */
    operator: pulumi.Input<string>;
    /**
     * The type of the alert to configure. Component app alert policies can be: `CPU_UTILIZATION`, `MEM_UTILIZATION`, or `RESTART_COUNT`.
     */
    rule: pulumi.Input<string>;
    /**
     * The threshold for the type of the warning.
     */
    value: pulumi.Input<number>;
    /**
     * The time before alerts should be triggered. This is may be one of: `FIVE_MINUTES`, `TEN_MINUTES`, `THIRTY_MINUTES`, `ONE_HOUR`.
     */
    window: pulumi.Input<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?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Determines which slack channels or users receive alerts.
     */
    slackWebhooks?: pulumi.Input<pulumi.Input<inputs.AppSpecJobAlertDestinationsSlackWebhook>[] | undefined>;
}
export interface AppSpecJobAlertDestinationsSlackWebhook {
    /**
     * The Slack channel to send notifications to.
     */
    channel: pulumi.Input<string>;
    /**
     * The Slack webhook URL.
     */
    url: pulumi.Input<string>;
}
export interface AppSpecJobBitbucket {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: pulumi.Input<string | undefined>;
}
export interface AppSpecJobEnv {
    /**
     * The name of the environment variable.
     */
    key?: pulumi.Input<string | undefined>;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: pulumi.Input<string | undefined>;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * The value of the environment variable.
     */
    value?: pulumi.Input<string | undefined>;
}
export interface AppSpecJobGit {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * The clone URL of the repo.
     */
    repoCloneUrl?: pulumi.Input<string | undefined>;
}
export interface AppSpecJobGithub {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: pulumi.Input<string | undefined>;
}
export interface AppSpecJobGitlab {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: pulumi.Input<string | undefined>;
}
export interface AppSpecJobImage {
    /**
     * Configures automatically deploying images pushed to DOCR.
     */
    deployOnPushes?: pulumi.Input<pulumi.Input<inputs.AppSpecJobImageDeployOnPush>[] | undefined>;
    /**
     * The image digest. Cannot be specified if `tag` is provided.
     */
    digest?: pulumi.Input<string | undefined>;
    /**
     * The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
     */
    registry?: pulumi.Input<string | undefined>;
    /**
     * The credentials required to access a private Docker Hub or GitHub registry, in the following syntax `<username>:<token>`.
     */
    registryCredentials?: pulumi.Input<string | undefined>;
    /**
     * The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
     */
    registryType: pulumi.Input<string>;
    /**
     * The repository name.
     */
    repository: pulumi.Input<string>;
    /**
     * The repository tag. Defaults to `latest` if not provided.
     */
    tag?: pulumi.Input<string | undefined>;
}
export interface AppSpecJobImageDeployOnPush {
    /**
     * Whether to automatically deploy images pushed to DOCR.
     */
    enabled?: pulumi.Input<boolean | undefined>;
}
export interface AppSpecJobLogDestination {
    /**
     * Datadog configuration.
     */
    datadog?: pulumi.Input<inputs.AppSpecJobLogDestinationDatadog | undefined>;
    /**
     * Logtail configuration.
     */
    logtail?: pulumi.Input<inputs.AppSpecJobLogDestinationLogtail | undefined>;
    /**
     * Name of the log destination. Minimum length: 2. Maximum length: 42.
     */
    name: pulumi.Input<string>;
    /**
     * OpenSearch configuration.
     */
    openSearch?: pulumi.Input<inputs.AppSpecJobLogDestinationOpenSearch | undefined>;
    /**
     * Papertrail configuration.
     */
    papertrail?: pulumi.Input<inputs.AppSpecJobLogDestinationPapertrail | undefined>;
}
export interface AppSpecJobLogDestinationDatadog {
    /**
     * Datadog API key.
     */
    apiKey: pulumi.Input<string>;
    /**
     * Datadog HTTP log intake endpoint.
     */
    endpoint?: pulumi.Input<string | undefined>;
}
export interface AppSpecJobLogDestinationLogtail {
    /**
     * Logtail token.
     */
    token: pulumi.Input<string>;
}
export interface AppSpecJobLogDestinationOpenSearch {
    /**
     * Basic authentication details.
     */
    basicAuth: pulumi.Input<inputs.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?: pulumi.Input<string | undefined>;
    /**
     * OpenSearch endpoint.
     */
    endpoint?: pulumi.Input<string | undefined>;
    /**
     * OpenSearch index name.
     */
    indexName?: pulumi.Input<string | undefined>;
}
export interface AppSpecJobLogDestinationOpenSearchBasicAuth {
    /**
     * Password for basic authentication.
     */
    password?: pulumi.Input<string | undefined>;
    /**
     * user for basic authentication.
     */
    user?: pulumi.Input<string | undefined>;
}
export interface AppSpecJobLogDestinationPapertrail {
    /**
     * Papertrail syslog endpoint.
     */
    endpoint: pulumi.Input<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?: pulumi.Input<number | undefined>;
}
export interface AppSpecMaintenance {
    /**
     * Indicates whether the app should be archived. Setting this to true implies that enabled is set to true.
     */
    archive?: pulumi.Input<boolean | undefined>;
    /**
     * Indicates whether maintenance mode should be enabled for the app.
     */
    enabled?: pulumi.Input<boolean | undefined>;
    /**
     * A custom offline page to display when maintenance mode is enabled or the app is archived.
     */
    offlinePageUrl?: pulumi.Input<string | undefined>;
}
export interface AppSpecService {
    /**
     * Describes an alert policy for the component.
     */
    alerts?: pulumi.Input<pulumi.Input<inputs.AppSpecServiceAlert>[] | undefined>;
    /**
     * Configuration for automatically scaling this component based on metrics.
     */
    autoscaling?: pulumi.Input<inputs.AppSpecServiceAutoscaling | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecServiceBitbucket | undefined>;
    /**
     * An optional build command to run while building this component from source.
     */
    buildCommand?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecServiceCors | undefined>;
    /**
     * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
     */
    dockerfilePath?: pulumi.Input<string | undefined>;
    /**
     * An environment slug describing the type of this app.
     */
    environmentSlug?: pulumi.Input<string | undefined>;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: pulumi.Input<pulumi.Input<inputs.AppSpecServiceEnv>[] | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecServiceGit | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecServiceGithub | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecServiceGitlab | undefined>;
    /**
     * A health check to determine the availability of this component.
     */
    healthCheck?: pulumi.Input<inputs.AppSpecServiceHealthCheck | undefined>;
    /**
     * The internal port on which this service's run command will listen.
     */
    httpPort?: pulumi.Input<number | undefined>;
    /**
     * An image to use as the component's source. Only one of `git`, `github`, `gitlab`, or `image` may be set.
     */
    image?: pulumi.Input<inputs.AppSpecServiceImage | undefined>;
    /**
     * The amount of instances that this component should be scaled to.
     */
    instanceCount?: pulumi.Input<number | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * A list of ports on which this service will listen for internal traffic.
     */
    internalPorts?: pulumi.Input<pulumi.Input<number>[] | undefined>;
    /**
     * Describes a log forwarding destination.
     */
    logDestinations?: pulumi.Input<pulumi.Input<inputs.AppSpecServiceLogDestination>[] | undefined>;
    /**
     * The name of the component.
     */
    name: pulumi.Input<string>;
    /**
     * An HTTP paths that should be routed to this component.
     *
     * @deprecated Service level routes are deprecated in favor of ingresses
     */
    routes?: pulumi.Input<pulumi.Input<inputs.AppSpecServiceRoute>[] | undefined>;
    /**
     * An optional run command to override the component's default.
     */
    runCommand?: pulumi.Input<string | undefined>;
    /**
     * An optional path to the working directory to use for the build.
     */
    sourceDir?: pulumi.Input<string | undefined>;
    /**
     * Contains a component's termination parameters.
     */
    termination?: pulumi.Input<inputs.AppSpecServiceTermination | undefined>;
}
export interface AppSpecServiceAlert {
    /**
     * Specification for alert destination.
     */
    destinations?: pulumi.Input<inputs.AppSpecServiceAlertDestinations | undefined>;
    /**
     * Determines whether or not the alert is disabled (default: `false`).
     */
    disabled?: pulumi.Input<boolean | undefined>;
    /**
     * The operator to use. This is either of `GREATER_THAN` or `LESS_THAN`.
     */
    operator: pulumi.Input<string>;
    /**
     * The type of the alert to configure. Component app alert policies can be: `CPU_UTILIZATION`, `MEM_UTILIZATION`, or `RESTART_COUNT`.
     */
    rule: pulumi.Input<string>;
    /**
     * The threshold for the type of the warning.
     */
    value: pulumi.Input<number>;
    /**
     * The time before alerts should be triggered. This is may be one of: `FIVE_MINUTES`, `TEN_MINUTES`, `THIRTY_MINUTES`, `ONE_HOUR`.
     */
    window: pulumi.Input<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?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Determines which slack channels or users receive alerts.
     */
    slackWebhooks?: pulumi.Input<pulumi.Input<inputs.AppSpecServiceAlertDestinationsSlackWebhook>[] | undefined>;
}
export interface AppSpecServiceAlertDestinationsSlackWebhook {
    /**
     * The Slack channel to send notifications to.
     */
    channel: pulumi.Input<string>;
    /**
     * The Slack webhook URL.
     */
    url: pulumi.Input<string>;
}
export interface AppSpecServiceAutoscaling {
    /**
     * The maximum amount of instances for this component. Must be more than min_instance_count.
     */
    maxInstanceCount: pulumi.Input<number>;
    /**
     * The metrics that the component is scaled on.
     */
    metrics: pulumi.Input<inputs.AppSpecServiceAutoscalingMetrics>;
    /**
     * The minimum amount of instances for this component. Must be less than max_instance_count.
     */
    minInstanceCount: pulumi.Input<number>;
}
export interface AppSpecServiceAutoscalingMetrics {
    /**
     * Settings for scaling the component based on CPU utilization.
     */
    cpu?: pulumi.Input<inputs.AppSpecServiceAutoscalingMetricsCpu | undefined>;
}
export interface AppSpecServiceAutoscalingMetricsCpu {
    /**
     * The average target CPU utilization for the component.
     */
    percent: pulumi.Input<number>;
}
export interface AppSpecServiceBitbucket {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: pulumi.Input<string | undefined>;
}
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?: pulumi.Input<boolean | undefined>;
    /**
     * The set of allowed HTTP request headers. This configures the Access-Control-Allow-Headers header.
     */
    allowHeaders?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The set of allowed HTTP methods. This configures the Access-Control-Allow-Methods header.
     */
    allowMethods?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The set of allowed CORS origins. This configures the Access-Control-Allow-Origin header.
     */
    allowOrigins?: pulumi.Input<inputs.AppSpecServiceCorsAllowOrigins | undefined>;
    /**
     * The set of HTTP response headers that browsers are allowed to access. This configures the Access-Control-Expose-Headers header.
     */
    exposeHeaders?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
}
export interface AppSpecServiceCorsAllowOrigins {
    /**
     * Exact string match.
     */
    exact?: pulumi.Input<string | undefined>;
    /**
     * Prefix-based match.
     *
     * @deprecated Prefix-based matching has been deprecated in favor of regex-based matching.
     */
    prefix?: pulumi.Input<string | undefined>;
    /**
     * RE2 style regex-based match.
     */
    regex?: pulumi.Input<string | undefined>;
}
export interface AppSpecServiceEnv {
    /**
     * The name of the environment variable.
     */
    key?: pulumi.Input<string | undefined>;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: pulumi.Input<string | undefined>;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * The value of the environment variable.
     */
    value?: pulumi.Input<string | undefined>;
}
export interface AppSpecServiceGit {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * The clone URL of the repo.
     */
    repoCloneUrl?: pulumi.Input<string | undefined>;
}
export interface AppSpecServiceGithub {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: pulumi.Input<string | undefined>;
}
export interface AppSpecServiceGitlab {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: pulumi.Input<string | undefined>;
}
export interface AppSpecServiceHealthCheck {
    /**
     * The number of failed health checks before considered unhealthy.
     */
    failureThreshold?: pulumi.Input<number | undefined>;
    /**
     * The route path used for the HTTP health check ping.
     */
    httpPath?: pulumi.Input<string | undefined>;
    /**
     * The number of seconds to wait before beginning health checks.
     */
    initialDelaySeconds?: pulumi.Input<number | undefined>;
    /**
     * The number of seconds to wait between health checks.
     */
    periodSeconds?: pulumi.Input<number | undefined>;
    /**
     * The health check will be performed on this port instead of component's HTTP port.
     */
    port?: pulumi.Input<number | undefined>;
    /**
     * The number of successful health checks before considered healthy.
     */
    successThreshold?: pulumi.Input<number | undefined>;
    /**
     * The number of seconds after which the check times out.
     */
    timeoutSeconds?: pulumi.Input<number | undefined>;
}
export interface AppSpecServiceImage {
    /**
     * Configures automatically deploying images pushed to DOCR.
     */
    deployOnPushes?: pulumi.Input<pulumi.Input<inputs.AppSpecServiceImageDeployOnPush>[] | undefined>;
    /**
     * The image digest. Cannot be specified if `tag` is provided.
     */
    digest?: pulumi.Input<string | undefined>;
    /**
     * The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
     */
    registry?: pulumi.Input<string | undefined>;
    /**
     * The credentials required to access a private Docker Hub or GitHub registry, in the following syntax `<username>:<token>`.
     */
    registryCredentials?: pulumi.Input<string | undefined>;
    /**
     * The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
     */
    registryType: pulumi.Input<string>;
    /**
     * The repository name.
     */
    repository: pulumi.Input<string>;
    /**
     * The repository tag. Defaults to `latest` if not provided.
     */
    tag?: pulumi.Input<string | undefined>;
}
export interface AppSpecServiceImageDeployOnPush {
    /**
     * Whether to automatically deploy images pushed to DOCR.
     */
    enabled?: pulumi.Input<boolean | undefined>;
}
export interface AppSpecServiceLogDestination {
    /**
     * Datadog configuration.
     */
    datadog?: pulumi.Input<inputs.AppSpecServiceLogDestinationDatadog | undefined>;
    /**
     * Logtail configuration.
     */
    logtail?: pulumi.Input<inputs.AppSpecServiceLogDestinationLogtail | undefined>;
    /**
     * Name of the log destination. Minimum length: 2. Maximum length: 42.
     */
    name: pulumi.Input<string>;
    /**
     * OpenSearch configuration.
     */
    openSearch?: pulumi.Input<inputs.AppSpecServiceLogDestinationOpenSearch | undefined>;
    /**
     * Papertrail configuration.
     */
    papertrail?: pulumi.Input<inputs.AppSpecServiceLogDestinationPapertrail | undefined>;
}
export interface AppSpecServiceLogDestinationDatadog {
    /**
     * Datadog API key.
     */
    apiKey: pulumi.Input<string>;
    /**
     * Datadog HTTP log intake endpoint.
     */
    endpoint?: pulumi.Input<string | undefined>;
}
export interface AppSpecServiceLogDestinationLogtail {
    /**
     * Logtail token.
     */
    token: pulumi.Input<string>;
}
export interface AppSpecServiceLogDestinationOpenSearch {
    /**
     * Basic authentication details.
     */
    basicAuth: pulumi.Input<inputs.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?: pulumi.Input<string | undefined>;
    /**
     * OpenSearch endpoint.
     */
    endpoint?: pulumi.Input<string | undefined>;
    /**
     * OpenSearch index name.
     */
    indexName?: pulumi.Input<string | undefined>;
}
export interface AppSpecServiceLogDestinationOpenSearchBasicAuth {
    /**
     * Password for basic authentication.
     */
    password?: pulumi.Input<string | undefined>;
    /**
     * user for basic authentication.
     */
    user?: pulumi.Input<string | undefined>;
}
export interface AppSpecServiceLogDestinationPapertrail {
    /**
     * Papertrail syslog endpoint.
     */
    endpoint: pulumi.Input<string>;
}
export interface AppSpecServiceRoute {
    /**
     * Paths must start with `/` and must be unique within the app.
     */
    path?: pulumi.Input<string | undefined>;
    /**
     * An optional flag to preserve the path that is forwarded to the backend service.
     */
    preservePathPrefix?: pulumi.Input<boolean | undefined>;
}
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?: pulumi.Input<number | undefined>;
    /**
     * 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?: pulumi.Input<number | undefined>;
}
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?: pulumi.Input<inputs.AppSpecStaticSiteBitbucket | undefined>;
    /**
     * An optional build command to run while building this component from source.
     */
    buildCommand?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecStaticSiteCors | undefined>;
    /**
     * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
     */
    dockerfilePath?: pulumi.Input<string | undefined>;
    /**
     * An environment slug describing the type of this app.
     */
    environmentSlug?: pulumi.Input<string | undefined>;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: pulumi.Input<pulumi.Input<inputs.AppSpecStaticSiteEnv>[] | undefined>;
    /**
     * The name of the error document to use when serving this static site.
     */
    errorDocument?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecStaticSiteGit | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecStaticSiteGithub | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecStaticSiteGitlab | undefined>;
    /**
     * The name of the index document to use when serving this static site.
     */
    indexDocument?: pulumi.Input<string | undefined>;
    /**
     * The name of the component.
     */
    name: pulumi.Input<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?: pulumi.Input<string | undefined>;
    /**
     * An HTTP paths that should be routed to this component.
     *
     * @deprecated Service level routes are deprecated in favor of ingresses
     */
    routes?: pulumi.Input<pulumi.Input<inputs.AppSpecStaticSiteRoute>[] | undefined>;
    /**
     * An optional path to the working directory to use for the build.
     */
    sourceDir?: pulumi.Input<string | undefined>;
}
export interface AppSpecStaticSiteBitbucket {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: pulumi.Input<string | undefined>;
}
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?: pulumi.Input<boolean | undefined>;
    /**
     * The set of allowed HTTP request headers. This configures the Access-Control-Allow-Headers header.
     */
    allowHeaders?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The set of allowed HTTP methods. This configures the Access-Control-Allow-Methods header.
     */
    allowMethods?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The set of allowed CORS origins. This configures the Access-Control-Allow-Origin header.
     */
    allowOrigins?: pulumi.Input<inputs.AppSpecStaticSiteCorsAllowOrigins | undefined>;
    /**
     * The set of HTTP response headers that browsers are allowed to access. This configures the Access-Control-Expose-Headers header.
     */
    exposeHeaders?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
}
export interface AppSpecStaticSiteCorsAllowOrigins {
    /**
     * Exact string match.
     */
    exact?: pulumi.Input<string | undefined>;
    /**
     * Prefix-based match.
     *
     * @deprecated Prefix-based matching has been deprecated in favor of regex-based matching.
     */
    prefix?: pulumi.Input<string | undefined>;
    /**
     * RE2 style regex-based match.
     */
    regex?: pulumi.Input<string | undefined>;
}
export interface AppSpecStaticSiteEnv {
    /**
     * The name of the environment variable.
     */
    key?: pulumi.Input<string | undefined>;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: pulumi.Input<string | undefined>;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * The value of the environment variable.
     */
    value?: pulumi.Input<string | undefined>;
}
export interface AppSpecStaticSiteGit {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * The clone URL of the repo.
     */
    repoCloneUrl?: pulumi.Input<string | undefined>;
}
export interface AppSpecStaticSiteGithub {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: pulumi.Input<string | undefined>;
}
export interface AppSpecStaticSiteGitlab {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: pulumi.Input<string | undefined>;
}
export interface AppSpecStaticSiteRoute {
    /**
     * Paths must start with `/` and must be unique within the app.
     */
    path?: pulumi.Input<string | undefined>;
    /**
     * An optional flag to preserve the path that is forwarded to the backend service.
     */
    preservePathPrefix?: pulumi.Input<boolean | undefined>;
}
export interface AppSpecVpc {
    /**
     * The ID of the VPC.
     */
    id: pulumi.Input<string>;
}
export interface AppSpecWorker {
    /**
     * Describes an alert policy for the component.
     */
    alerts?: pulumi.Input<pulumi.Input<inputs.AppSpecWorkerAlert>[] | undefined>;
    /**
     * Configuration for automatically scaling this component based on metrics.
     */
    autoscaling?: pulumi.Input<inputs.AppSpecWorkerAutoscaling | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecWorkerBitbucket | undefined>;
    /**
     * An optional build command to run while building this component from source.
     */
    buildCommand?: pulumi.Input<string | undefined>;
    /**
     * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
     */
    dockerfilePath?: pulumi.Input<string | undefined>;
    /**
     * An environment slug describing the type of this app.
     */
    environmentSlug?: pulumi.Input<string | undefined>;
    /**
     * Describes an environment variable made available to an app competent.
     */
    envs?: pulumi.Input<pulumi.Input<inputs.AppSpecWorkerEnv>[] | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecWorkerGit | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecWorkerGithub | undefined>;
    /**
     * 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?: pulumi.Input<inputs.AppSpecWorkerGitlab | undefined>;
    /**
     * An image to use as the component's source. Only one of `git`, `github`, `gitlab`, or `image` may be set.
     */
    image?: pulumi.Input<inputs.AppSpecWorkerImage | undefined>;
    /**
     * The amount of instances that this component should be scaled to.
     */
    instanceCount?: pulumi.Input<number | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * Describes a log forwarding destination.
     */
    logDestinations?: pulumi.Input<pulumi.Input<inputs.AppSpecWorkerLogDestination>[] | undefined>;
    /**
     * The name of the component.
     */
    name: pulumi.Input<string>;
    /**
     * An optional run command to override the component's default.
     */
    runCommand?: pulumi.Input<string | undefined>;
    /**
     * An optional path to the working directory to use for the build.
     */
    sourceDir?: pulumi.Input<string | undefined>;
    /**
     * Contains a component's termination parameters.
     */
    termination?: pulumi.Input<inputs.AppSpecWorkerTermination | undefined>;
}
export interface AppSpecWorkerAlert {
    /**
     * Specification for alert destination.
     */
    destinations?: pulumi.Input<inputs.AppSpecWorkerAlertDestinations | undefined>;
    /**
     * Determines whether or not the alert is disabled (default: `false`).
     */
    disabled?: pulumi.Input<boolean | undefined>;
    /**
     * The operator to use. This is either of `GREATER_THAN` or `LESS_THAN`.
     */
    operator: pulumi.Input<string>;
    /**
     * The type of the alert to configure. Component app alert policies can be: `CPU_UTILIZATION`, `MEM_UTILIZATION`, or `RESTART_COUNT`.
     */
    rule: pulumi.Input<string>;
    /**
     * The threshold for the type of the warning.
     */
    value: pulumi.Input<number>;
    /**
     * The time before alerts should be triggered. This is may be one of: `FIVE_MINUTES`, `TEN_MINUTES`, `THIRTY_MINUTES`, `ONE_HOUR`.
     */
    window: pulumi.Input<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?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Determines which slack channels or users receive alerts.
     */
    slackWebhooks?: pulumi.Input<pulumi.Input<inputs.AppSpecWorkerAlertDestinationsSlackWebhook>[] | undefined>;
}
export interface AppSpecWorkerAlertDestinationsSlackWebhook {
    /**
     * The Slack channel to send notifications to.
     */
    channel: pulumi.Input<string>;
    /**
     * The Slack webhook URL.
     */
    url: pulumi.Input<string>;
}
export interface AppSpecWorkerAutoscaling {
    /**
     * The maximum amount of instances for this component. Must be more than min_instance_count.
     */
    maxInstanceCount: pulumi.Input<number>;
    /**
     * The metrics that the component is scaled on.
     */
    metrics: pulumi.Input<inputs.AppSpecWorkerAutoscalingMetrics>;
    /**
     * The minimum amount of instances for this component. Must be less than max_instance_count.
     */
    minInstanceCount: pulumi.Input<number>;
}
export interface AppSpecWorkerAutoscalingMetrics {
    /**
     * Settings for scaling the component based on CPU utilization.
     */
    cpu?: pulumi.Input<inputs.AppSpecWorkerAutoscalingMetricsCpu | undefined>;
}
export interface AppSpecWorkerAutoscalingMetricsCpu {
    /**
     * The average target CPU utilization for the component.
     */
    percent: pulumi.Input<number>;
}
export interface AppSpecWorkerBitbucket {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: pulumi.Input<string | undefined>;
}
export interface AppSpecWorkerEnv {
    /**
     * The name of the environment variable.
     */
    key?: pulumi.Input<string | undefined>;
    /**
     * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
     */
    scope?: pulumi.Input<string | undefined>;
    /**
     * The type of the environment variable, `GENERAL` or `SECRET`.
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * The value of the environment variable.
     */
    value?: pulumi.Input<string | undefined>;
}
export interface AppSpecWorkerGit {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * The clone URL of the repo.
     */
    repoCloneUrl?: pulumi.Input<string | undefined>;
}
export interface AppSpecWorkerGithub {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: pulumi.Input<string | undefined>;
}
export interface AppSpecWorkerGitlab {
    /**
     * The name of the branch to use.
     */
    branch?: pulumi.Input<string | undefined>;
    /**
     * Whether to automatically deploy new commits made to the repo.
     */
    deployOnPush?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the repo in the format `owner/repo`.
     */
    repo?: pulumi.Input<string | undefined>;
}
export interface AppSpecWorkerImage {
    /**
     * Configures automatically deploying images pushed to DOCR.
     */
    deployOnPushes?: pulumi.Input<pulumi.Input<inputs.AppSpecWorkerImageDeployOnPush>[] | undefined>;
    /**
     * The image digest. Cannot be specified if `tag` is provided.
     */
    digest?: pulumi.Input<string | undefined>;
    /**
     * The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
     */
    registry?: pulumi.Input<string | undefined>;
    /**
     * The credentials required to access a private Docker Hub or GitHub registry, in the following syntax `<username>:<token>`.
     */
    registryCredentials?: pulumi.Input<string | undefined>;
    /**
     * The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
     */
    registryType: pulumi.Input<string>;
    /**
     * The repository name.
     */
    repository: pulumi.Input<string>;
    /**
     * The repository tag. Defaults to `latest` if not provided.
     */
    tag?: pulumi.Input<string | undefined>;
}
export interface AppSpecWorkerImageDeployOnPush {
    /**
     * Whether to automatically deploy images pushed to DOCR.
     */
    enabled?: pulumi.Input<boolean | undefined>;
}
export interface AppSpecWorkerLogDestination {
    /**
     * Datadog configuration.
     */
    datadog?: pulumi.Input<inputs.AppSpecWorkerLogDestinationDatadog | undefined>;
    /**
     * Logtail configuration.
     */
    logtail?: pulumi.Input<inputs.AppSpecWorkerLogDestinationLogtail | undefined>;
    /**
     * Name of the log destination. Minimum length: 2. Maximum length: 42.
     */
    name: pulumi.Input<string>;
    /**
     * OpenSearch configuration.
     */
    openSearch?: pulumi.Input<inputs.AppSpecWorkerLogDestinationOpenSearch | undefined>;
    /**
     * Papertrail configuration.
     */
    papertrail?: pulumi.Input<inputs.AppSpecWorkerLogDestinationPapertrail | undefined>;
}
export interface AppSpecWorkerLogDestinationDatadog {
    /**
     * Datadog API key.
     */
    apiKey: pulumi.Input<string>;
    /**
     * Datadog HTTP log intake endpoint.
     */
    endpoint?: pulumi.Input<string | undefined>;
}
export interface AppSpecWorkerLogDestinationLogtail {
    /**
     * Logtail token.
     */
    token: pulumi.Input<string>;
}
export interface AppSpecWorkerLogDestinationOpenSearch {
    /**
     * Basic authentication details.
     */
    basicAuth: pulumi.Input<inputs.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?: pulumi.Input<string | undefined>;
    /**
     * OpenSearch endpoint.
     */
    endpoint?: pulumi.Input<string | undefined>;
    /**
     * OpenSearch index name.
     */
    indexName?: pulumi.Input<string | undefined>;
}
export interface AppSpecWorkerLogDestinationOpenSearchBasicAuth {
    /**
     * Password for basic authentication.
     */
    password?: pulumi.Input<string | undefined>;
    /**
     * user for basic authentication.
     */
    user?: pulumi.Input<string | undefined>;
}
export interface AppSpecWorkerLogDestinationPapertrail {
    /**
     * Papertrail syslog endpoint.
     */
    endpoint: pulumi.Input<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?: pulumi.Input<number | undefined>;
}
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?: pulumi.Input<string | undefined>;
    /**
     * The name of an existing database cluster from which the backup will be restored.
     */
    databaseName: pulumi.Input<string>;
}
export interface DatabaseClusterMaintenanceWindow {
    /**
     * The day of the week on which to apply maintenance updates. May be one of `monday` through `sunday`.
     */
    day: pulumi.Input<string>;
    /**
     * The hour in UTC at which maintenance updates will be applied as a string in 24 hour format, e.g. `13:00`.
     */
    hour: pulumi.Input<string>;
}
export interface DatabaseFirewallRule {
    /**
     * The date and time when the firewall rule was created.
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * 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: pulumi.Input<string>;
    /**
     * A unique identifier for the firewall rule.
     */
    uuid?: pulumi.Input<string | undefined>;
    /**
     * 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: pulumi.Input<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?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * The amount of time, in ms, that deleted records are retained.
     */
    deleteRetentionMs?: pulumi.Input<string | undefined>;
    /**
     * The amount of time, in ms, to wait before deleting a topic log segment from the filesystem.
     */
    fileDeleteDelayMs?: pulumi.Input<string | undefined>;
    /**
     * The number of messages accumulated on a topic partition before they are flushed to disk.
     */
    flushMessages?: pulumi.Input<string | undefined>;
    /**
     * The maximum time, in ms, that a topic is kept in memory before being flushed to disk.
     */
    flushMs?: pulumi.Input<string | undefined>;
    /**
     * The interval, in bytes, in which entries are added to the offset index.
     */
    indexIntervalBytes?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * The maximum size, in bytes, of a message.
     */
    maxMessageBytes?: pulumi.Input<string | undefined>;
    /**
     * Determines whether down-conversion of message formats for consumers is enabled.
     */
    messageDownConversionEnable?: pulumi.Input<boolean | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * The maximum difference, in ms, between the timestamp specific in a message and when the broker receives the message.
     */
    messageTimestampDifferenceMaxMs?: pulumi.Input<string | undefined>;
    /**
     * Specifies which timestamp to use for the message. This may be one of "createTime" or "logAppendTime".
     */
    messageTimestampType?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<number | undefined>;
    minCompactionLagMs?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<number | undefined>;
    /**
     * Determines whether to preallocate a file on disk when creating a new log segment within a topic.
     */
    preallocate?: pulumi.Input<boolean | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * The maximum size, in bytes, of a single topic log file.
     */
    segmentBytes?: pulumi.Input<string | undefined>;
    /**
     * The maximum size, in bytes, of the offset index.
     */
    segmentIndexBytes?: pulumi.Input<string | undefined>;
    /**
     * The maximum time, in ms, subtracted from the scheduled segment disk flush time to avoid the thundering herd problem for segment flushing.
     */
    segmentJitterMs?: pulumi.Input<string | undefined>;
    /**
     * The maximum time, in ms, before the topic log will flush to disk.
     */
    segmentMs?: pulumi.Input<string | undefined>;
}
export interface DatabaseOnlineMigrationSource {
    /**
     * The name of the default database
     */
    dbName: pulumi.Input<string>;
    /**
     * The FQDN pointing to the database cluster's current primary node.
     */
    host: pulumi.Input<string>;
    /**
     * A randomly generated password for the default user.
     */
    password: pulumi.Input<string>;
    /**
     * The port on which the database cluster is listening.
     */
    port: pulumi.Input<number>;
    /**
     * The default user for the database.
     */
    username: pulumi.Input<string>;
}
export interface DatabasePostgresqlConfigPgbouncer {
    autodbIdleTimeout?: pulumi.Input<number | undefined>;
    autodbMaxDbConnections?: pulumi.Input<number | undefined>;
    autodbPoolMode?: pulumi.Input<string | undefined>;
    autodbPoolSize?: pulumi.Input<number | undefined>;
    ignoreStartupParameters?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    minPoolSize?: pulumi.Input<number | undefined>;
    serverIdleTimeout?: pulumi.Input<number | undefined>;
    serverLifetime?: pulumi.Input<number | undefined>;
    serverResetQueryAlways?: pulumi.Input<boolean | undefined>;
}
export interface DatabasePostgresqlConfigTimescaledb {
    maxBackgroundWorkers?: pulumi.Input<number | undefined>;
}
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?: pulumi.Input<pulumi.Input<inputs.DatabaseUserSettingAcl>[] | undefined>;
    opensearchAcls?: pulumi.Input<pulumi.Input<inputs.DatabaseUserSettingOpensearchAcl>[] | undefined>;
}
export interface DatabaseUserSettingAcl {
    /**
     * An identifier for the ACL, this will be automatically assigned when you create an ACL entry
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * 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: pulumi.Input<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: pulumi.Input<string>;
}
export interface DatabaseUserSettingOpensearchAcl {
    index: pulumi.Input<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: pulumi.Input<string>;
}
export interface DedicatedInferenceModelDeployment {
    /**
     * The GPU accelerators to allocate for this model deployment. Each `accelerators` block supports:
     */
    accelerators: pulumi.Input<pulumi.Input<inputs.DedicatedInferenceModelDeploymentAccelerator>[]>;
    /**
     * The unique ID of the model.
     */
    modelId?: pulumi.Input<string | undefined>;
    /**
     * The provider of the model (e.g. `digitalocean`, `huggingface`).
     */
    modelProvider: pulumi.Input<string>;
    /**
     * The slug identifier for the model to deploy.
     */
    modelSlug: pulumi.Input<string>;
    /**
     * The provider-specific model ID. Required when modelProvider is 'hugging_face', optional for 'modelcatalog'.
     */
    providerModelId?: pulumi.Input<string | undefined>;
}
export interface DedicatedInferenceModelDeploymentAccelerator {
    /**
     * The slug identifier for the GPU accelerator type.
     */
    acceleratorSlug: pulumi.Input<string>;
    /**
     * The number of accelerator units to allocate. Must be at least 1.
     */
    scale: pulumi.Input<number>;
    /**
     * The accelerator type.
     */
    type: pulumi.Input<string>;
}
export interface DropletAutoscaleConfig {
    /**
     * The cooldown duration between scaling events for the Droplet Autoscale pool.
     */
    cooldownMinutes?: pulumi.Input<number | undefined>;
    /**
     * The maximum number of instances to maintain in the Droplet Autoscale pool.
     */
    maxInstances?: pulumi.Input<number | undefined>;
    /**
     * The minimum number of instances to maintain in the Droplet Autoscale pool.
     */
    minInstances?: pulumi.Input<number | undefined>;
    /**
     * The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool.
     */
    targetCpuUtilization?: pulumi.Input<number | undefined>;
    /**
     * The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale
     * pool.
     */
    targetMemoryUtilization?: pulumi.Input<number | undefined>;
    /**
     * The static number of instances to maintain in the pool Droplet Autoscale pool. This
     * argument cannot be used with any other config options.
     */
    targetNumberInstances?: pulumi.Input<number | undefined>;
}
export interface DropletAutoscaleCurrentUtilization {
    /**
     * Average CPU utilization
     */
    cpu?: pulumi.Input<number | undefined>;
    /**
     * Average Memory utilization
     */
    memory?: pulumi.Input<number | undefined>;
}
export interface DropletAutoscaleDropletTemplate {
    /**
     * Image slug of the Droplet Autoscale pool underlying resource(s).
     */
    image: pulumi.Input<string>;
    /**
     * Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s).
     */
    ipv6?: pulumi.Input<boolean | undefined>;
    /**
     * Project UUID to create the Droplet Autoscale pool underlying resource(s).
     */
    projectId?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<boolean | undefined>;
    /**
     * Region slug of the Droplet Autoscale pool underlying resource(s).
     */
    region: pulumi.Input<string>;
    /**
     * Size slug of the Droplet Autoscale pool underlying resource(s).
     */
    size: pulumi.Input<string>;
    /**
     * SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s).
     */
    sshKeys: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * List of tags to add to the Droplet Autoscale pool underlying resource(s).
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred
     * from the specified `region` (default VPC).
     */
    vpcUuid?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<boolean | undefined>;
}
export interface DropletBackupPolicy {
    /**
     * The hour of the day that the backup window will start (`0`, `4`, `8`, `12`, `16`, `20`).
     */
    hour?: pulumi.Input<number | undefined>;
    /**
     * The backup plan used for the Droplet. The plan can be either `daily` or `weekly`.
     */
    plan?: pulumi.Input<string | undefined>;
    /**
     * The day of the week on which the backup will occur (`SUN`, `MON`, `TUE`, `WED`, `THU`, `FRI`, `SAT`).
     */
    weekday?: pulumi.Input<string | undefined>;
}
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?: pulumi.Input<string | undefined>;
    /**
     * The type of traffic to be allowed.
     * This may be one of "tcp", "udp", or "icmp".
     */
    protocol: pulumi.Input<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?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * An array containing the IDs of
     * the Droplets from which the inbound traffic will be accepted.
     */
    sourceDropletIds?: pulumi.Input<pulumi.Input<number>[] | undefined>;
    /**
     * An array containing the IDs of
     * the Kubernetes clusters from which the inbound traffic will be accepted.
     */
    sourceKubernetesIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * An array containing the IDs
     * of the Load Balancers from which the inbound traffic will be accepted.
     */
    sourceLoadBalancerUids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * An array containing the names of Tags
     * corresponding to groups of Droplets from which the inbound traffic
     * will be accepted.
     */
    sourceTags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
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?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * An array containing the IDs of
     * the Droplets to which the outbound traffic will be allowed.
     */
    destinationDropletIds?: pulumi.Input<pulumi.Input<number>[] | undefined>;
    /**
     * An array containing the IDs of
     * the Kubernetes clusters to which the outbound traffic will be allowed.
     */
    destinationKubernetesIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * An array containing the IDs
     * of the Load Balancers to which the outbound traffic will be allowed.
     */
    destinationLoadBalancerUids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * An array containing the names of Tags
     * corresponding to groups of Droplets to which the outbound traffic will
     * be allowed.
     */
    destinationTags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * The type of traffic to be allowed.
     * This may be one of "tcp", "udp", or "icmp".
     */
    protocol: pulumi.Input<string>;
}
export interface FirewallPendingChange {
    dropletId?: pulumi.Input<number | undefined>;
    removing?: pulumi.Input<boolean | undefined>;
    /**
     * A status string indicating the current state of the Firewall.
     * This can be "waiting", "succeeded", or "failed".
     */
    status?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentAgentGuardrail {
    /**
     * Agent UUID for the Guardrail
     */
    agentUuid?: pulumi.Input<string | undefined>;
    /**
     * Created At timestamp for the Guardrail
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Default response for the Guardrail
     */
    defaultResponse?: pulumi.Input<string | undefined>;
    /**
     * Description of the Guardrail
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Guardrail UUID
     */
    guardrailUuid?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Guardrail is attached
     */
    isAttached?: pulumi.Input<boolean | undefined>;
    /**
     * Indicates if the Guardrail is default
     */
    isDefault?: pulumi.Input<boolean | undefined>;
    /**
     * Name of Guardrail
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Priority of the Guardrail
     */
    priority?: pulumi.Input<number | undefined>;
    /**
     * Type of the Guardrail
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the Guardrail
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Guardrail UUID
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: pulumi.Input<string | undefined>;
    /**
     * Logo for the chatbot
     */
    logo?: pulumi.Input<string | undefined>;
    /**
     * Name of the chatbot
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: pulumi.Input<string | undefined>;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: pulumi.Input<string | undefined>;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentChatbotIdentifier {
    chatbotId?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentChildAgent {
    /**
     * ID of the child agent
     */
    agentId?: pulumi.Input<string | undefined>;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: pulumi.Input<pulumi.Input<inputs.GenaiAgentChildAgentAnthropicApiKey>[] | undefined>;
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: pulumi.Input<pulumi.Input<inputs.GenaiAgentChildAgentApiKeyInfo>[] | undefined>;
    /**
     * List of API Keys
     */
    apiKeys?: pulumi.Input<pulumi.Input<inputs.GenaiAgentChildAgentApiKey>[] | undefined>;
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: pulumi.Input<pulumi.Input<inputs.GenaiAgentChildAgentChatbotIdentifier>[] | undefined>;
    /**
     * ChatBot configuration
     */
    chatbots?: pulumi.Input<pulumi.Input<inputs.GenaiAgentChildAgentChatbot>[] | undefined>;
    /**
     * List of API Key Infos
     */
    deployments?: pulumi.Input<pulumi.Input<inputs.GenaiAgentChildAgentDeployment>[] | undefined>;
    /**
     * Description for the Agent
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Instruction for the Agent
     */
    instruction: pulumi.Input<string>;
    /**
     * Model UUID of the Agent
     */
    modelUuid: pulumi.Input<string>;
    /**
     * Name of the Agent
     */
    name: pulumi.Input<string>;
    /**
     * Project ID of the Agent
     */
    projectId: pulumi.Input<string>;
    /**
     * Region where the Agent is deployed
     */
    region: pulumi.Input<string>;
}
export interface GenaiAgentChildAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentChildAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentChildAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentChildAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: pulumi.Input<string | undefined>;
    /**
     * Logo for the chatbot
     */
    logo?: pulumi.Input<string | undefined>;
    /**
     * Name of the chatbot
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: pulumi.Input<string | undefined>;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: pulumi.Input<string | undefined>;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentChildAgentChatbotIdentifier {
    chatbotId?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentChildAgentDeployment {
    /**
     * API Key value
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Status of the Deployment
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Url of the Deployment
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
    /**
     * Visibility of the Deployment
     */
    visibility?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentDeployment {
    /**
     * API Key value
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Status of the Deployment
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Url of the Deployment
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
    /**
     * Visibility of the Deployment
     */
    visibility?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentFunction {
    /**
     * API Key value
     */
    apiKey?: pulumi.Input<string | undefined>;
    /**
     * Created At timestamp for the Function
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Description of the Function
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Name of function
     */
    faasname?: pulumi.Input<string | undefined>;
    /**
     * Namespace of function
     */
    faasnamespace?: pulumi.Input<string | undefined>;
    /**
     * Guardrail UUID for the Function
     */
    guardrailUuid?: pulumi.Input<string | undefined>;
    /**
     * Name of function
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Url of the Deployment
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt?: pulumi.Input<string | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: pulumi.Input<string | undefined>;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: pulumi.Input<boolean | undefined>;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: pulumi.Input<inputs.GenaiAgentKnowledgeBaseLastIndexingJob | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: pulumi.Input<string | undefined>;
    /**
     * Region of the Knowledge Base
     */
    region?: pulumi.Input<string | undefined>;
    /**
     * List of tags
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * User ID of the Knowledge Base
     */
    userId?: pulumi.Input<string | undefined>;
    /**
     * UUID of the Knowledge Base
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: pulumi.Input<number | undefined>;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid?: pulumi.Input<string | undefined>;
    /**
     * Phase of the last indexing job
     */
    phase?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt?: pulumi.Input<string | undefined>;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: pulumi.Input<number | undefined>;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: pulumi.Input<number | undefined>;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the last indexing job
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentModel {
    /**
     * Agreement information for the model
     */
    agreements?: pulumi.Input<pulumi.Input<inputs.GenaiAgentModelAgreement>[] | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Inference name of the model
     */
    inferenceName?: pulumi.Input<string | undefined>;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: pulumi.Input<boolean | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: pulumi.Input<string | undefined>;
    /**
     * Provider of the Model
     */
    provider?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: pulumi.Input<boolean | undefined>;
    /**
     * URL of the Model
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * List of Usecases for the Model
     */
    usecases?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * URL of the Model
     */
    versions?: pulumi.Input<pulumi.Input<inputs.GenaiAgentModelVersion>[] | undefined>;
}
export interface GenaiAgentModelAgreement {
    /**
     * Description of the agreement
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Name of the agreement
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * URL of the agreement
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * UUID of the agreement
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentModelVersion {
    /**
     * Major version of the model
     */
    major?: pulumi.Input<number | undefined>;
    /**
     * Minor version of the model
     */
    minor?: pulumi.Input<number | undefined>;
    /**
     * Patch version of the model
     */
    patch?: pulumi.Input<number | undefined>;
}
export interface GenaiAgentOpenAiApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentParentAgent {
    /**
     * ID of the child agent
     */
    agentId?: pulumi.Input<string | undefined>;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: pulumi.Input<pulumi.Input<inputs.GenaiAgentParentAgentAnthropicApiKey>[] | undefined>;
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: pulumi.Input<pulumi.Input<inputs.GenaiAgentParentAgentApiKeyInfo>[] | undefined>;
    /**
     * List of API Keys
     */
    apiKeys?: pulumi.Input<pulumi.Input<inputs.GenaiAgentParentAgentApiKey>[] | undefined>;
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: pulumi.Input<pulumi.Input<inputs.GenaiAgentParentAgentChatbotIdentifier>[] | undefined>;
    /**
     * ChatBot configuration
     */
    chatbots?: pulumi.Input<pulumi.Input<inputs.GenaiAgentParentAgentChatbot>[] | undefined>;
    /**
     * List of API Key Infos
     */
    deployments?: pulumi.Input<pulumi.Input<inputs.GenaiAgentParentAgentDeployment>[] | undefined>;
    /**
     * Description for the Agent
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Instruction for the Agent
     */
    instruction: pulumi.Input<string>;
    /**
     * Model UUID of the Agent
     */
    modelUuid: pulumi.Input<string>;
    /**
     * Name of the Agent
     */
    name: pulumi.Input<string>;
    /**
     * Project ID of the Agent
     */
    projectId: pulumi.Input<string>;
    /**
     * Region where the Agent is deployed
     */
    region: pulumi.Input<string>;
}
export interface GenaiAgentParentAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentParentAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentParentAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentParentAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: pulumi.Input<string | undefined>;
    /**
     * Logo for the chatbot
     */
    logo?: pulumi.Input<string | undefined>;
    /**
     * Name of the chatbot
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: pulumi.Input<string | undefined>;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: pulumi.Input<string | undefined>;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentParentAgentChatbotIdentifier {
    chatbotId?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentParentAgentDeployment {
    /**
     * API Key value
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Status of the Deployment
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Url of the Deployment
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
    /**
     * Visibility of the Deployment
     */
    visibility?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentTemplate {
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Description of the Agent Template
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Instruction for the Agent
     */
    instruction?: pulumi.Input<string | undefined>;
    /**
     * K value for the Agent Template
     */
    k?: pulumi.Input<number | undefined>;
    /**
     * List of Knowledge Bases
     */
    knowledgeBases?: pulumi.Input<pulumi.Input<inputs.GenaiAgentTemplateKnowledgeBase>[] | undefined>;
    /**
     * Maximum tokens allowed
     */
    maxTokens?: pulumi.Input<number | undefined>;
    /**
     * Model of the Agent Template
     */
    models?: pulumi.Input<pulumi.Input<inputs.GenaiAgentTemplateModel>[] | undefined>;
    /**
     * Name of the Agent Template
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Agent temperature setting
     */
    temperature?: pulumi.Input<number | undefined>;
    /**
     * Top P sampling parameter
     */
    topP?: pulumi.Input<number | undefined>;
    /**
     * Updated At timestamp for the Agent Template
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * uuid of the Agent Template
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentTemplateKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt?: pulumi.Input<string | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: pulumi.Input<string | undefined>;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: pulumi.Input<boolean | undefined>;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: pulumi.Input<inputs.GenaiAgentTemplateKnowledgeBaseLastIndexingJob | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: pulumi.Input<string | undefined>;
    /**
     * Region of the Knowledge Base
     */
    region?: pulumi.Input<string | undefined>;
    /**
     * List of tags
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * User ID of the Knowledge Base
     */
    userId?: pulumi.Input<string | undefined>;
    /**
     * UUID of the Knowledge Base
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentTemplateKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: pulumi.Input<number | undefined>;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid?: pulumi.Input<string | undefined>;
    /**
     * Phase of the last indexing job
     */
    phase?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt?: pulumi.Input<string | undefined>;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: pulumi.Input<number | undefined>;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: pulumi.Input<number | undefined>;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the last indexing job
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentTemplateModel {
    /**
     * Agreement information for the model
     */
    agreements?: pulumi.Input<pulumi.Input<inputs.GenaiAgentTemplateModelAgreement>[] | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Inference name of the model
     */
    inferenceName?: pulumi.Input<string | undefined>;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: pulumi.Input<boolean | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: pulumi.Input<string | undefined>;
    /**
     * Provider of the Model
     */
    provider?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: pulumi.Input<boolean | undefined>;
    /**
     * URL of the Model
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * List of Usecases for the Model
     */
    usecases?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * URL of the Model
     */
    versions?: pulumi.Input<pulumi.Input<inputs.GenaiAgentTemplateModelVersion>[] | undefined>;
}
export interface GenaiAgentTemplateModelAgreement {
    /**
     * Description of the agreement
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Name of the agreement
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * URL of the agreement
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * UUID of the agreement
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiAgentTemplateModelVersion {
    /**
     * Major version of the model
     */
    major?: pulumi.Input<number | undefined>;
    /**
     * Minor version of the model
     */
    minor?: pulumi.Input<number | undefined>;
    /**
     * Patch version of the model
     */
    patch?: pulumi.Input<number | undefined>;
}
export interface GenaiKnowledgeBaseDataSourceSpacesDataSource {
    /**
     * The name of the Spaces bucket
     */
    bucketName?: pulumi.Input<string | undefined>;
    /**
     * The path to the item in the bucket
     */
    itemPath?: pulumi.Input<string | undefined>;
    /**
     * The region of the Spaces bucket
     */
    region?: pulumi.Input<string | undefined>;
}
export interface GenaiKnowledgeBaseDataSourceWebCrawlerDataSource {
    /**
     * The base URL to crawl
     */
    baseUrl?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * Whether to embed media content
     */
    embedMedia?: pulumi.Input<boolean | undefined>;
}
export interface GenaiKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: pulumi.Input<number | undefined>;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid?: pulumi.Input<string | undefined>;
    /**
     * Phase of the last indexing job
     */
    phase?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt?: pulumi.Input<string | undefined>;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: pulumi.Input<number | undefined>;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: pulumi.Input<number | undefined>;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the last indexing job
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiOpenaiApiKeyModel {
    /**
     * Agreement information for the model
     */
    agreements?: pulumi.Input<pulumi.Input<inputs.GenaiOpenaiApiKeyModelAgreement>[] | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Inference name of the model
     */
    inferenceName?: pulumi.Input<string | undefined>;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: pulumi.Input<boolean | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: pulumi.Input<string | undefined>;
    /**
     * Provider of the Model
     */
    provider?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: pulumi.Input<boolean | undefined>;
    /**
     * URL of the Model
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * List of Usecases for the Model
     */
    usecases?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * URL of the Model
     */
    versions?: pulumi.Input<pulumi.Input<inputs.GenaiOpenaiApiKeyModelVersion>[] | undefined>;
}
export interface GenaiOpenaiApiKeyModelAgreement {
    /**
     * Description of the agreement
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Name of the agreement
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * URL of the agreement
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * UUID of the agreement
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GenaiOpenaiApiKeyModelVersion {
    /**
     * Major version of the model
     */
    major?: pulumi.Input<number | undefined>;
    /**
     * Minor version of the model
     */
    minor?: pulumi.Input<number | undefined>;
    /**
     * Patch version of the model
     */
    patch?: pulumi.Input<number | undefined>;
}
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 GetAppDedicatedIpArgs {
    /**
     * The ID of the dedicated egress IP.
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * The IP address of the dedicated egress IP.
     */
    ip?: pulumi.Input<string | undefined>;
    /**
     * The status of the dedicated egress IP.
     */
    status?: pulumi.Input<string | undefined>;
}
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 GetDedicatedInferenceAcceleratorsFilterArgs {
    /**
     * Set to `true` to require that a field match all of the `values` instead of just one.
     */
    all?: pulumi.Input<boolean | undefined>;
    /**
     * Filter the accelerators by this key. This may be one of `id`, `name`, `slug`, `status`, `createdAt`.
     */
    key: pulumi.Input<string>;
    /**
     * One of `exact` (default), `re`, or `substring`.
     */
    matchBy?: pulumi.Input<string | undefined>;
    /**
     * A list of values to match against the `key` field.
     */
    values: pulumi.Input<pulumi.Input<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 GetDedicatedInferenceAcceleratorsSortArgs {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: pulumi.Input<string | undefined>;
    /**
     * Sort the accelerators by this key. This may be one of the keys listed in `filter`.
     */
    key: pulumi.Input<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 GetDedicatedInferenceTokensFilterArgs {
    /**
     * Set to `true` to require that a field match all of the `values` instead of just one.
     */
    all?: pulumi.Input<boolean | undefined>;
    /**
     * Filter the tokens by this key. This may be one of `id`, `name`, `createdAt`.
     */
    key: pulumi.Input<string>;
    /**
     * One of `exact` (default), `re`, or `substring`.
     */
    matchBy?: pulumi.Input<string | undefined>;
    /**
     * A list of values to match against the `key` field.
     */
    values: pulumi.Input<pulumi.Input<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 GetDedicatedInferenceTokensSortArgs {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: pulumi.Input<string | undefined>;
    /**
     * Sort the tokens by this key. This may be one of the keys listed in `filter`.
     */
    key: pulumi.Input<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 GetDedicatedInferencesFilterArgs {
    /**
     * Set to `true` to require that a field match all of the `values` instead of just one.
     */
    all?: pulumi.Input<boolean | undefined>;
    /**
     * Filter the dedicated inference endpoints by this key. This may be one of `id`, `name`, `region`, `status`, `vpcUuid`, `publicEndpointFqdn`, `privateEndpointFqdn`, `createdAt`, `updatedAt`.
     */
    key: pulumi.Input<string>;
    /**
     * One of `exact` (default), `re`, or `substring`. For string-typed fields, the match mode controls how the filter is applied.
     */
    matchBy?: pulumi.Input<string | undefined>;
    /**
     * A list of values to match against the `key` field.
     */
    values: pulumi.Input<pulumi.Input<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 GetDedicatedInferencesSortArgs {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: pulumi.Input<string | undefined>;
    /**
     * Sort the dedicated inference endpoints by this key. This may be one of the keys listed in `filter`.
     */
    key: pulumi.Input<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 GetDomainsFilterArgs {
    /**
     * 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?: pulumi.Input<boolean | undefined>;
    /**
     * Filter the domains by this key. This may be one of `name`, `urn`, and `ttl`.
     */
    key: pulumi.Input<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?: pulumi.Input<string | undefined>;
    /**
     * 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: pulumi.Input<pulumi.Input<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 GetDomainsSortArgs {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: pulumi.Input<string | undefined>;
    /**
     * Sort the domains by this key. This may be one of `name`, `urn`, and `ttl`.
     */
    key: pulumi.Input<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 GetDropletsFilterArgs {
    /**
     * 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?: pulumi.Input<boolean | undefined>;
    /**
     * 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: pulumi.Input<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?: pulumi.Input<string | undefined>;
    /**
     * 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: pulumi.Input<pulumi.Input<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 GetDropletsSortArgs {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: pulumi.Input<string | undefined>;
    /**
     * 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: pulumi.Input<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 GetFirewallInboundRuleArgs {
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * The type of traffic to be allowed.
     * This may be one of "tcp", "udp", or "icmp".
     */
    protocol: pulumi.Input<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?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * An array containing the IDs of
     * the Droplets from which the inbound traffic will be accepted.
     */
    sourceDropletIds?: pulumi.Input<pulumi.Input<number>[] | undefined>;
    sourceKubernetesIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * An array containing the IDs
     * of the Load Balancers from which the inbound traffic will be accepted.
     */
    sourceLoadBalancerUids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * A set of names of Tags corresponding to group of
     * Droplets from which the inbound traffic will be accepted.
     */
    sourceTags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
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 GetFirewallOutboundRuleArgs {
    /**
     * 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?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * An array containing the IDs of
     * the Droplets to which the outbound traffic will be allowed.
     */
    destinationDropletIds?: pulumi.Input<pulumi.Input<number>[] | undefined>;
    destinationKubernetesIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * An array containing the IDs
     * of the Load Balancers to which the outbound traffic will be allowed.
     */
    destinationLoadBalancerUids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * An array containing the names of Tags
     * corresponding to groups of Droplets to which the outbound traffic will
     * be allowed.
     * traffic.
     */
    destinationTags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * The type of traffic to be allowed.
     * This may be one of "tcp", "udp", or "icmp".
     */
    protocol: pulumi.Input<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 GetGenaiAgentAgentGuardrailArgs {
    /**
     * Agent UUID for the Guardrail
     */
    agentUuid?: pulumi.Input<string | undefined>;
    /**
     * Created At timestamp for the Guardrail
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Default response for the Guardrail
     */
    defaultResponse?: pulumi.Input<string | undefined>;
    /**
     * Description of the Guardrail
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Guardrail UUID
     */
    guardrailUuid?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Guardrail is attached
     */
    isAttached?: pulumi.Input<boolean | undefined>;
    /**
     * Indicates if the Guardrail is default
     */
    isDefault?: pulumi.Input<boolean | undefined>;
    /**
     * Name of Guardrail
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Priority of the Guardrail
     */
    priority?: pulumi.Input<number | undefined>;
    /**
     * Type of the Guardrail
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the Guardrail
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Guardrail UUID
     */
    uuid?: pulumi.Input<string | undefined>;
}
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 GetGenaiAgentAnthropicApiKeyArgs {
    /**
     * Timestamp when the API Key was created
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GetGenaiAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGenaiAgentApiKeyArgs {
    /**
     * API Key value
     */
    apiKey?: pulumi.Input<string | undefined>;
}
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 GetGenaiAgentApiKeyInfoArgs {
    /**
     * API Key value
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
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 GetGenaiAgentChatbotArgs {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: pulumi.Input<string | undefined>;
    /**
     * Logo for the chatbot
     */
    logo?: pulumi.Input<string | undefined>;
    /**
     * Name of the chatbot
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: pulumi.Input<string | undefined>;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: pulumi.Input<string | undefined>;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: pulumi.Input<string | undefined>;
}
export interface GetGenaiAgentChatbotIdentifier {
    /**
     * Chatbot ID
     */
    chatbotId?: string;
}
export interface GetGenaiAgentChatbotIdentifierArgs {
    /**
     * Chatbot ID
     */
    chatbotId?: pulumi.Input<string | undefined>;
}
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 GetGenaiAgentDeploymentArgs {
    /**
     * API Key value
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Status of the Deployment
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Url of the Deployment
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
    /**
     * Visibility of the Deployment
     */
    visibility?: pulumi.Input<string | undefined>;
}
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 GetGenaiAgentFunctionArgs {
    /**
     * API Key value
     */
    apiKey?: pulumi.Input<string | undefined>;
    /**
     * Created At timestamp for the Function
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Description of the Function
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Name of function
     */
    faasname?: pulumi.Input<string | undefined>;
    /**
     * Namespace of function
     */
    faasnamespace?: pulumi.Input<string | undefined>;
    /**
     * Guardrail UUID for the Function
     */
    guardrailUuid?: pulumi.Input<string | undefined>;
    /**
     * Name of function
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Url of the Deployment
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
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?: inputs.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 GetGenaiAgentKnowledgeBaseArgs {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt?: pulumi.Input<string | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: pulumi.Input<string | undefined>;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: pulumi.Input<boolean | undefined>;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: pulumi.Input<inputs.GetGenaiAgentKnowledgeBaseLastIndexingJobArgs | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: pulumi.Input<string | undefined>;
    /**
     * Region of the Knowledge Base
     */
    region?: pulumi.Input<string | undefined>;
    /**
     * List of tags
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * User ID of the Knowledge Base
     */
    userId?: pulumi.Input<string | undefined>;
    /**
     * UUID of the Knowledge Base
     */
    uuid?: pulumi.Input<string | undefined>;
}
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 GetGenaiAgentKnowledgeBaseLastIndexingJobArgs {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: pulumi.Input<number | undefined>;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid?: pulumi.Input<string | undefined>;
    /**
     * Phase of the last indexing job
     */
    phase?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt?: pulumi.Input<string | undefined>;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: pulumi.Input<number | undefined>;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: pulumi.Input<number | undefined>;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the last indexing job
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GetGenaiAgentModel {
    /**
     * Agreement information for the model
     */
    agreements?: inputs.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?: inputs.GetGenaiAgentModelVersion[];
}
export interface GetGenaiAgentModelArgs {
    /**
     * Agreement information for the model
     */
    agreements?: pulumi.Input<pulumi.Input<inputs.GetGenaiAgentModelAgreementArgs>[] | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Inference name of the model
     */
    inferenceName?: pulumi.Input<string | undefined>;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: pulumi.Input<boolean | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: pulumi.Input<string | undefined>;
    /**
     * Provider of the Model
     */
    provider?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: pulumi.Input<boolean | undefined>;
    /**
     * URL of the Model
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * List of Usecases for the Model
     */
    usecases?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * URL of the Model
     */
    versions?: pulumi.Input<pulumi.Input<inputs.GetGenaiAgentModelVersionArgs>[] | undefined>;
}
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 GetGenaiAgentModelAgreementArgs {
    /**
     * Description of the agreement
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Name of the agreement
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * URL of the agreement
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * UUID of the agreement
     */
    uuid?: pulumi.Input<string | undefined>;
}
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 GetGenaiAgentModelVersionArgs {
    /**
     * Major version of the model
     */
    major?: pulumi.Input<number | undefined>;
    /**
     * Minor version of the model
     */
    minor?: pulumi.Input<number | undefined>;
    /**
     * Patch version of the model
     */
    patch?: pulumi.Input<number | undefined>;
}
export interface GetGenaiAgentOpenAiApiKey {
    /**
     * OpenAI API Key
     */
    apiKey?: string;
}
export interface GetGenaiAgentOpenAiApiKeyArgs {
    /**
     * OpenAI API Key
     */
    apiKey?: pulumi.Input<string | undefined>;
}
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?: inputs.GetGenaiAgentTemplateKnowledgeBase[];
    /**
     * Maximum tokens allowed
     */
    maxTokens?: number;
    /**
     * Model of the Agent Template
     */
    models?: inputs.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 GetGenaiAgentTemplateArgs {
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Description of the Agent Template
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Instruction for the Agent
     */
    instruction?: pulumi.Input<string | undefined>;
    /**
     * K value for the Agent Template
     */
    k?: pulumi.Input<number | undefined>;
    /**
     * List of Knowledge Bases
     */
    knowledgeBases?: pulumi.Input<pulumi.Input<inputs.GetGenaiAgentTemplateKnowledgeBaseArgs>[] | undefined>;
    /**
     * Maximum tokens allowed
     */
    maxTokens?: pulumi.Input<number | undefined>;
    /**
     * Model of the Agent Template
     */
    models?: pulumi.Input<pulumi.Input<inputs.GetGenaiAgentTemplateModelArgs>[] | undefined>;
    /**
     * Name of the Agent Template
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Agent temperature setting
     */
    temperature?: pulumi.Input<number | undefined>;
    /**
     * Top P sampling parameter
     */
    topP?: pulumi.Input<number | undefined>;
    /**
     * Updated At timestamp for the Agent Template
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * uuid of the Agent Template
     */
    uuid?: pulumi.Input<string | undefined>;
}
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?: inputs.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 GetGenaiAgentTemplateKnowledgeBaseArgs {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt?: pulumi.Input<string | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: pulumi.Input<string | undefined>;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: pulumi.Input<boolean | undefined>;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: pulumi.Input<inputs.GetGenaiAgentTemplateKnowledgeBaseLastIndexingJobArgs | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: pulumi.Input<string | undefined>;
    /**
     * Region of the Knowledge Base
     */
    region?: pulumi.Input<string | undefined>;
    /**
     * List of tags
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * User ID of the Knowledge Base
     */
    userId?: pulumi.Input<string | undefined>;
    /**
     * UUID of the Knowledge Base
     */
    uuid?: pulumi.Input<string | undefined>;
}
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 GetGenaiAgentTemplateKnowledgeBaseLastIndexingJobArgs {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: pulumi.Input<number | undefined>;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid?: pulumi.Input<string | undefined>;
    /**
     * Phase of the last indexing job
     */
    phase?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt?: pulumi.Input<string | undefined>;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: pulumi.Input<number | undefined>;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: pulumi.Input<number | undefined>;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the last indexing job
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GetGenaiAgentTemplateModel {
    /**
     * Agreement information for the model
     */
    agreements?: inputs.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?: inputs.GetGenaiAgentTemplateModelVersion[];
}
export interface GetGenaiAgentTemplateModelArgs {
    /**
     * Agreement information for the model
     */
    agreements?: pulumi.Input<pulumi.Input<inputs.GetGenaiAgentTemplateModelAgreementArgs>[] | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Inference name of the model
     */
    inferenceName?: pulumi.Input<string | undefined>;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: pulumi.Input<boolean | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: pulumi.Input<string | undefined>;
    /**
     * Provider of the Model
     */
    provider?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: pulumi.Input<boolean | undefined>;
    /**
     * URL of the Model
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * List of Usecases for the Model
     */
    usecases?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * URL of the Model
     */
    versions?: pulumi.Input<pulumi.Input<inputs.GetGenaiAgentTemplateModelVersionArgs>[] | undefined>;
}
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 GetGenaiAgentTemplateModelAgreementArgs {
    /**
     * Description of the agreement
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Name of the agreement
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * URL of the agreement
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * UUID of the agreement
     */
    uuid?: pulumi.Input<string | undefined>;
}
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 GetGenaiAgentTemplateModelVersionArgs {
    /**
     * Major version of the model
     */
    major?: pulumi.Input<number | undefined>;
    /**
     * Minor version of the model
     */
    minor?: pulumi.Input<number | undefined>;
    /**
     * Patch version of the model
     */
    patch?: pulumi.Input<number | undefined>;
}
export interface GetGenaiAgentVersionsFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGenaiAgentVersionsFilterArgs {
    all?: pulumi.Input<boolean | undefined>;
    key: pulumi.Input<string>;
    matchBy?: pulumi.Input<string | undefined>;
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetGenaiAgentVersionsSort {
    direction?: string;
    key: string;
}
export interface GetGenaiAgentVersionsSortArgs {
    direction?: pulumi.Input<string | undefined>;
    key: pulumi.Input<string>;
}
export interface GetGenaiAgentsFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGenaiAgentsFilterArgs {
    all?: pulumi.Input<boolean | undefined>;
    key: pulumi.Input<string>;
    matchBy?: pulumi.Input<string | undefined>;
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetGenaiAgentsSort {
    direction?: string;
    key: string;
}
export interface GetGenaiAgentsSortArgs {
    direction?: pulumi.Input<string | undefined>;
    key: pulumi.Input<string>;
}
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 GetGenaiKnowledgeBaseLastIndexingJobArgs {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: pulumi.Input<number | undefined>;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid?: pulumi.Input<string | undefined>;
    /**
     * Phase of the last indexing job
     */
    phase?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt?: pulumi.Input<string | undefined>;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: pulumi.Input<number | undefined>;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: pulumi.Input<number | undefined>;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the last indexing job
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GetGenaiKnowledgeBasesFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGenaiKnowledgeBasesFilterArgs {
    all?: pulumi.Input<boolean | undefined>;
    key: pulumi.Input<string>;
    matchBy?: pulumi.Input<string | undefined>;
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetGenaiKnowledgeBasesSort {
    direction?: string;
    key: string;
}
export interface GetGenaiKnowledgeBasesSortArgs {
    direction?: pulumi.Input<string | undefined>;
    key: pulumi.Input<string>;
}
export interface GetGenaiModelsFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGenaiModelsFilterArgs {
    all?: pulumi.Input<boolean | undefined>;
    key: pulumi.Input<string>;
    matchBy?: pulumi.Input<string | undefined>;
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetGenaiModelsSort {
    direction?: string;
    key: string;
}
export interface GetGenaiModelsSortArgs {
    direction?: pulumi.Input<string | undefined>;
    key: pulumi.Input<string>;
}
export interface GetGenaiOpenaiApiKeysFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGenaiOpenaiApiKeysFilterArgs {
    all?: pulumi.Input<boolean | undefined>;
    key: pulumi.Input<string>;
    matchBy?: pulumi.Input<string | undefined>;
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetGenaiOpenaiApiKeysSort {
    direction?: string;
    key: string;
}
export interface GetGenaiOpenaiApiKeysSortArgs {
    direction?: pulumi.Input<string | undefined>;
    key: pulumi.Input<string>;
}
export interface GetGenaiRegionsFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGenaiRegionsFilterArgs {
    all?: pulumi.Input<boolean | undefined>;
    key: pulumi.Input<string>;
    matchBy?: pulumi.Input<string | undefined>;
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetGenaiRegionsSort {
    direction?: string;
    key: string;
}
export interface GetGenaiRegionsSortArgs {
    direction?: pulumi.Input<string | undefined>;
    key: pulumi.Input<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 GetGradientaiAgentAgentGuardrailArgs {
    /**
     * Agent UUID for the Guardrail
     */
    agentUuid?: pulumi.Input<string | undefined>;
    /**
     * Created At timestamp for the Guardrail
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Default response for the Guardrail
     */
    defaultResponse?: pulumi.Input<string | undefined>;
    /**
     * Description of the Guardrail
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Guardrail UUID
     */
    guardrailUuid?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Guardrail is attached
     */
    isAttached?: pulumi.Input<boolean | undefined>;
    /**
     * Indicates if the Guardrail is default
     */
    isDefault?: pulumi.Input<boolean | undefined>;
    /**
     * Name of Guardrail
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Priority of the Guardrail
     */
    priority?: pulumi.Input<number | undefined>;
    /**
     * Type of the Guardrail
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the Guardrail
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Guardrail UUID
     */
    uuid?: pulumi.Input<string | undefined>;
}
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 GetGradientaiAgentAnthropicApiKeyArgs {
    /**
     * Timestamp when the API Key was created
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GetGradientaiAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: string;
}
export interface GetGradientaiAgentApiKeyArgs {
    /**
     * API Key value
     */
    apiKey?: pulumi.Input<string | undefined>;
}
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 GetGradientaiAgentApiKeyInfoArgs {
    /**
     * API Key value
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
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 GetGradientaiAgentChatbotArgs {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: pulumi.Input<string | undefined>;
    /**
     * Logo for the chatbot
     */
    logo?: pulumi.Input<string | undefined>;
    /**
     * Name of the chatbot
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: pulumi.Input<string | undefined>;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: pulumi.Input<string | undefined>;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: pulumi.Input<string | undefined>;
}
export interface GetGradientaiAgentChatbotIdentifier {
    /**
     * Chatbot ID
     */
    chatbotId?: string;
}
export interface GetGradientaiAgentChatbotIdentifierArgs {
    /**
     * Chatbot ID
     */
    chatbotId?: pulumi.Input<string | undefined>;
}
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 GetGradientaiAgentDeploymentArgs {
    /**
     * API Key value
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Status of the Deployment
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Url of the Deployment
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
    /**
     * Visibility of the Deployment
     */
    visibility?: pulumi.Input<string | undefined>;
}
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 GetGradientaiAgentFunctionArgs {
    /**
     * API Key value
     */
    apiKey?: pulumi.Input<string | undefined>;
    /**
     * Created At timestamp for the Function
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Description of the Function
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Name of function
     */
    faasname?: pulumi.Input<string | undefined>;
    /**
     * Namespace of function
     */
    faasnamespace?: pulumi.Input<string | undefined>;
    /**
     * Guardrail UUID for the Function
     */
    guardrailUuid?: pulumi.Input<string | undefined>;
    /**
     * Name of function
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Url of the Deployment
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
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?: inputs.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 GetGradientaiAgentKnowledgeBaseArgs {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt?: pulumi.Input<string | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: pulumi.Input<string | undefined>;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: pulumi.Input<boolean | undefined>;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: pulumi.Input<inputs.GetGradientaiAgentKnowledgeBaseLastIndexingJobArgs | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: pulumi.Input<string | undefined>;
    /**
     * Region of the Knowledge Base
     */
    region?: pulumi.Input<string | undefined>;
    /**
     * List of tags
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * User ID of the Knowledge Base
     */
    userId?: pulumi.Input<string | undefined>;
    /**
     * UUID of the Knowledge Base
     */
    uuid?: pulumi.Input<string | undefined>;
}
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 GetGradientaiAgentKnowledgeBaseLastIndexingJobArgs {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: pulumi.Input<number | undefined>;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid?: pulumi.Input<string | undefined>;
    /**
     * Phase of the last indexing job
     */
    phase?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt?: pulumi.Input<string | undefined>;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: pulumi.Input<number | undefined>;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: pulumi.Input<number | undefined>;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the last indexing job
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GetGradientaiAgentModel {
    /**
     * Agreement information for the model
     */
    agreements?: inputs.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?: inputs.GetGradientaiAgentModelVersion[];
}
export interface GetGradientaiAgentModelArgs {
    /**
     * Agreement information for the model
     */
    agreements?: pulumi.Input<pulumi.Input<inputs.GetGradientaiAgentModelAgreementArgs>[] | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Inference name of the model
     */
    inferenceName?: pulumi.Input<string | undefined>;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: pulumi.Input<boolean | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: pulumi.Input<string | undefined>;
    /**
     * Provider of the Model
     */
    provider?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: pulumi.Input<boolean | undefined>;
    /**
     * URL of the Model
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * List of Usecases for the Model
     */
    usecases?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * URL of the Model
     */
    versions?: pulumi.Input<pulumi.Input<inputs.GetGradientaiAgentModelVersionArgs>[] | undefined>;
}
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 GetGradientaiAgentModelAgreementArgs {
    /**
     * Description of the agreement
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Name of the agreement
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * URL of the agreement
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * UUID of the agreement
     */
    uuid?: pulumi.Input<string | undefined>;
}
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 GetGradientaiAgentModelVersionArgs {
    /**
     * Major version of the model
     */
    major?: pulumi.Input<number | undefined>;
    /**
     * Minor version of the model
     */
    minor?: pulumi.Input<number | undefined>;
    /**
     * Patch version of the model
     */
    patch?: pulumi.Input<number | undefined>;
}
export interface GetGradientaiAgentOpenAiApiKey {
    /**
     * OpenAI API Key
     */
    apiKey?: string;
}
export interface GetGradientaiAgentOpenAiApiKeyArgs {
    /**
     * OpenAI API Key
     */
    apiKey?: pulumi.Input<string | undefined>;
}
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?: inputs.GetGradientaiAgentTemplateKnowledgeBase[];
    /**
     * Maximum tokens allowed
     */
    maxTokens?: number;
    /**
     * Model of the Agent Template
     */
    models?: inputs.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 GetGradientaiAgentTemplateArgs {
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Description of the Agent Template
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Instruction for the Agent
     */
    instruction?: pulumi.Input<string | undefined>;
    /**
     * K value for the Agent Template
     */
    k?: pulumi.Input<number | undefined>;
    /**
     * List of Knowledge Bases
     */
    knowledgeBases?: pulumi.Input<pulumi.Input<inputs.GetGradientaiAgentTemplateKnowledgeBaseArgs>[] | undefined>;
    /**
     * Maximum tokens allowed
     */
    maxTokens?: pulumi.Input<number | undefined>;
    /**
     * Model of the Agent Template
     */
    models?: pulumi.Input<pulumi.Input<inputs.GetGradientaiAgentTemplateModelArgs>[] | undefined>;
    /**
     * Name of the Agent Template
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Agent temperature setting
     */
    temperature?: pulumi.Input<number | undefined>;
    /**
     * Top P sampling parameter
     */
    topP?: pulumi.Input<number | undefined>;
    /**
     * Updated At timestamp for the Agent Template
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * uuid of the Agent Template
     */
    uuid?: pulumi.Input<string | undefined>;
}
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?: inputs.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 GetGradientaiAgentTemplateKnowledgeBaseArgs {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt?: pulumi.Input<string | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: pulumi.Input<string | undefined>;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: pulumi.Input<boolean | undefined>;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: pulumi.Input<inputs.GetGradientaiAgentTemplateKnowledgeBaseLastIndexingJobArgs | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: pulumi.Input<string | undefined>;
    /**
     * Region of the Knowledge Base
     */
    region?: pulumi.Input<string | undefined>;
    /**
     * List of tags
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * User ID of the Knowledge Base
     */
    userId?: pulumi.Input<string | undefined>;
    /**
     * UUID of the Knowledge Base
     */
    uuid?: pulumi.Input<string | undefined>;
}
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 GetGradientaiAgentTemplateKnowledgeBaseLastIndexingJobArgs {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: pulumi.Input<number | undefined>;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid?: pulumi.Input<string | undefined>;
    /**
     * Phase of the last indexing job
     */
    phase?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt?: pulumi.Input<string | undefined>;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: pulumi.Input<number | undefined>;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: pulumi.Input<number | undefined>;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the last indexing job
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GetGradientaiAgentTemplateModel {
    /**
     * Agreement information for the model
     */
    agreements?: inputs.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?: inputs.GetGradientaiAgentTemplateModelVersion[];
}
export interface GetGradientaiAgentTemplateModelArgs {
    /**
     * Agreement information for the model
     */
    agreements?: pulumi.Input<pulumi.Input<inputs.GetGradientaiAgentTemplateModelAgreementArgs>[] | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Inference name of the model
     */
    inferenceName?: pulumi.Input<string | undefined>;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: pulumi.Input<boolean | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: pulumi.Input<string | undefined>;
    /**
     * Provider of the Model
     */
    provider?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: pulumi.Input<boolean | undefined>;
    /**
     * URL of the Model
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * List of Usecases for the Model
     */
    usecases?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * URL of the Model
     */
    versions?: pulumi.Input<pulumi.Input<inputs.GetGradientaiAgentTemplateModelVersionArgs>[] | undefined>;
}
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 GetGradientaiAgentTemplateModelAgreementArgs {
    /**
     * Description of the agreement
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Name of the agreement
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * URL of the agreement
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * UUID of the agreement
     */
    uuid?: pulumi.Input<string | undefined>;
}
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 GetGradientaiAgentTemplateModelVersionArgs {
    /**
     * Major version of the model
     */
    major?: pulumi.Input<number | undefined>;
    /**
     * Minor version of the model
     */
    minor?: pulumi.Input<number | undefined>;
    /**
     * Patch version of the model
     */
    patch?: pulumi.Input<number | undefined>;
}
export interface GetGradientaiAgentVersionsFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGradientaiAgentVersionsFilterArgs {
    all?: pulumi.Input<boolean | undefined>;
    key: pulumi.Input<string>;
    matchBy?: pulumi.Input<string | undefined>;
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetGradientaiAgentVersionsSort {
    direction?: string;
    key: string;
}
export interface GetGradientaiAgentVersionsSortArgs {
    direction?: pulumi.Input<string | undefined>;
    key: pulumi.Input<string>;
}
export interface GetGradientaiAgentsFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGradientaiAgentsFilterArgs {
    all?: pulumi.Input<boolean | undefined>;
    key: pulumi.Input<string>;
    matchBy?: pulumi.Input<string | undefined>;
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetGradientaiAgentsSort {
    direction?: string;
    key: string;
}
export interface GetGradientaiAgentsSortArgs {
    direction?: pulumi.Input<string | undefined>;
    key: pulumi.Input<string>;
}
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 GetGradientaiKnowledgeBaseLastIndexingJobArgs {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: pulumi.Input<number | undefined>;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid?: pulumi.Input<string | undefined>;
    /**
     * Phase of the last indexing job
     */
    phase?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt?: pulumi.Input<string | undefined>;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: pulumi.Input<number | undefined>;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: pulumi.Input<number | undefined>;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the last indexing job
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GetGradientaiKnowledgeBasesFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGradientaiKnowledgeBasesFilterArgs {
    all?: pulumi.Input<boolean | undefined>;
    key: pulumi.Input<string>;
    matchBy?: pulumi.Input<string | undefined>;
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetGradientaiKnowledgeBasesSort {
    direction?: string;
    key: string;
}
export interface GetGradientaiKnowledgeBasesSortArgs {
    direction?: pulumi.Input<string | undefined>;
    key: pulumi.Input<string>;
}
export interface GetGradientaiModelsFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGradientaiModelsFilterArgs {
    all?: pulumi.Input<boolean | undefined>;
    key: pulumi.Input<string>;
    matchBy?: pulumi.Input<string | undefined>;
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetGradientaiModelsSort {
    direction?: string;
    key: string;
}
export interface GetGradientaiModelsSortArgs {
    direction?: pulumi.Input<string | undefined>;
    key: pulumi.Input<string>;
}
export interface GetGradientaiOpenaiApiKeysFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGradientaiOpenaiApiKeysFilterArgs {
    all?: pulumi.Input<boolean | undefined>;
    key: pulumi.Input<string>;
    matchBy?: pulumi.Input<string | undefined>;
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetGradientaiOpenaiApiKeysSort {
    direction?: string;
    key: string;
}
export interface GetGradientaiOpenaiApiKeysSortArgs {
    direction?: pulumi.Input<string | undefined>;
    key: pulumi.Input<string>;
}
export interface GetGradientaiRegionsFilter {
    all?: boolean;
    key: string;
    matchBy?: string;
    values: string[];
}
export interface GetGradientaiRegionsFilterArgs {
    all?: pulumi.Input<boolean | undefined>;
    key: pulumi.Input<string>;
    matchBy?: pulumi.Input<string | undefined>;
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetGradientaiRegionsSort {
    direction?: string;
    key: string;
}
export interface GetGradientaiRegionsSortArgs {
    direction?: pulumi.Input<string | undefined>;
    key: pulumi.Input<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 GetImagesFilterArgs {
    /**
     * 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?: pulumi.Input<boolean | undefined>;
    /**
     * 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: pulumi.Input<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?: pulumi.Input<string | undefined>;
    /**
     * 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: pulumi.Input<pulumi.Input<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 GetImagesSortArgs {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: pulumi.Input<string | undefined>;
    /**
     * Sort the images by this key. This may be one of `distribution`, `errorMessage`, `id`,
     * `image`, `minDiskSize`, `name`, `private`, `sizeGigabytes`, `slug`, `status`, or `type`.
     */
    key: pulumi.Input<string>;
}
export interface GetKubernetesClusterAmdGpuDeviceMetricsExporterPlugin {
    enabled?: boolean;
}
export interface GetKubernetesClusterAmdGpuDeviceMetricsExporterPluginArgs {
    enabled?: pulumi.Input<boolean | undefined>;
}
export interface GetKubernetesClusterAmdGpuDevicePlugin {
    enabled?: boolean;
}
export interface GetKubernetesClusterAmdGpuDevicePluginArgs {
    enabled?: pulumi.Input<boolean | undefined>;
}
export interface GetKubernetesClusterClusterAutoscalerConfiguration {
    expanders?: string[];
    scaleDownUnneededTime?: string;
    scaleDownUtilizationThreshold?: number;
}
export interface GetKubernetesClusterClusterAutoscalerConfigurationArgs {
    expanders?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    scaleDownUnneededTime?: pulumi.Input<string | undefined>;
    scaleDownUtilizationThreshold?: pulumi.Input<number | undefined>;
}
export interface GetKubernetesClusterNvidiaGpuDevicePlugin {
    enabled?: boolean;
}
export interface GetKubernetesClusterNvidiaGpuDevicePluginArgs {
    enabled?: pulumi.Input<boolean | undefined>;
}
export interface GetKubernetesClusterRdmaSharedDevicePlugin {
    enabled?: boolean;
}
export interface GetKubernetesClusterRdmaSharedDevicePluginArgs {
    enabled?: pulumi.Input<boolean | undefined>;
}
export interface GetKubernetesClusterRoutingAgent {
    enabled?: boolean;
}
export interface GetKubernetesClusterRoutingAgentArgs {
    enabled?: pulumi.Input<boolean | undefined>;
}
export interface GetKubernetesClusterSso {
    clientId?: string;
    enabled?: boolean;
    issuerUrl?: string;
    required?: boolean;
}
export interface GetKubernetesClusterSsoArgs {
    clientId?: pulumi.Input<string | undefined>;
    enabled?: pulumi.Input<boolean | undefined>;
    issuerUrl?: pulumi.Input<string | undefined>;
    required?: pulumi.Input<boolean | undefined>;
}
export interface GetPartnerAttachmentBgp {
    localRouterIp?: string;
    peerRouterAsn?: number;
    peerRouterIp?: string;
}
export interface GetPartnerAttachmentBgpArgs {
    localRouterIp?: pulumi.Input<string | undefined>;
    peerRouterAsn?: pulumi.Input<number | undefined>;
    peerRouterIp?: pulumi.Input<string | undefined>;
}
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 GetProjectsFilterArgs {
    /**
     * 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?: pulumi.Input<boolean | undefined>;
    /**
     * Filter the projects by this key. This may be one of `name`,
     * `purpose`, `description`, `environment`, or `isDefault`.
     */
    key: pulumi.Input<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?: pulumi.Input<string | undefined>;
    /**
     * 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: pulumi.Input<pulumi.Input<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 GetProjectsSortArgs {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: pulumi.Input<string | undefined>;
    /**
     * Sort the projects by this key. This may be one of `name`,
     * `purpose`, `description`, or `environment`.
     */
    key: pulumi.Input<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 GetRecordsFilterArgs {
    /**
     * 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?: pulumi.Input<boolean | undefined>;
    /**
     * Filter the DNS records by this key. This may be one of `domain`, `flags`, `name`, `port`,
     * `priority`, `tag`, `ttl`, `type`, `value`, or `weight`.
     */
    key: pulumi.Input<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?: pulumi.Input<string | undefined>;
    /**
     * 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: pulumi.Input<pulumi.Input<string>[]>;
}
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 GetRecordsSortArgs {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: pulumi.Input<string | undefined>;
    /**
     * Sort the DNS records by this key. This may be one of `domain`, `flags`, `name`, `port`,
     * `priority`, `tag`, `ttl`, `type`, `value`, or `weight`.
     */
    key: pulumi.Input<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 GetRegionsFilterArgs {
    /**
     * 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?: pulumi.Input<boolean | undefined>;
    /**
     * Filter the regions by this key. This may be one of `slug`,
     * `name`, `available`, `features`, or `sizes`.
     */
    key: pulumi.Input<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?: pulumi.Input<string | undefined>;
    /**
     * 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: pulumi.Input<pulumi.Input<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 GetRegionsSortArgs {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: pulumi.Input<string | undefined>;
    /**
     * Sort the regions by this key. This may be one of `slug`,
     * `name`, or `available`.
     */
    key: pulumi.Input<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 GetSizesFilterArgs {
    /**
     * 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?: pulumi.Input<boolean | undefined>;
    /**
     * Filter the sizes by this key. This may be one of `slug`,
     * `regions`, `memory`, `vcpus`, `disk`, `transfer`, `priceMonthly`,
     * `priceHourly`, or `available`.
     */
    key: pulumi.Input<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?: pulumi.Input<string | undefined>;
    /**
     * Only retrieves sizes which keys has value that matches
     * one of the values provided here.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
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 GetSizesSortArgs {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: pulumi.Input<string | undefined>;
    /**
     * Sort the sizes by this key. This may be one of `slug`,
     * `memory`, `vcpus`, `disk`, `transfer`, `priceMonthly`, or `priceHourly`.
     */
    key: pulumi.Input<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 GetSpacesBucketsFilterArgs {
    /**
     * 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?: pulumi.Input<boolean | undefined>;
    /**
     * Filter the images by this key. This may be one of `bucketDomainName`, `name`, `region`, or `urn`.
     */
    key: pulumi.Input<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?: pulumi.Input<string | undefined>;
    /**
     * 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: pulumi.Input<pulumi.Input<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 GetSpacesBucketsSortArgs {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: pulumi.Input<string | undefined>;
    /**
     * Sort the images by this key. This may be one of `bucketDomainName`, `name`, `region`, or `urn`.
     */
    key: pulumi.Input<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 GetSshKeysFilterArgs {
    all?: pulumi.Input<boolean | undefined>;
    /**
     * Filter the SSH Keys by this key. This may be one of `name`, `publicKey`, or `fingerprint`.
     */
    key: pulumi.Input<string>;
    matchBy?: pulumi.Input<string | undefined>;
    /**
     * 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: pulumi.Input<pulumi.Input<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 GetSshKeysSortArgs {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: pulumi.Input<string | undefined>;
    /**
     * Sort the SSH Keys by this key. This may be one of `name`, `publicKey`, or `fingerprint`.
     */
    key: pulumi.Input<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 GetTagsFilterArgs {
    /**
     * 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?: pulumi.Input<boolean | undefined>;
    /**
     * Filter the tags by this key. This may be one of `name`, `totalResourceCount`,  `dropletsCount`, `imagesCount`, `volumesCount`, `volumeSnapshotsCount`, or `databasesCount`.
     */
    key: pulumi.Input<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?: pulumi.Input<string | undefined>;
    /**
     * Only retrieves tags which keys has value that matches
     * one of the values provided here.
     */
    values: pulumi.Input<pulumi.Input<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 GetTagsSortArgs {
    /**
     * The sort direction. This may be either `asc` or `desc`.
     */
    direction?: pulumi.Input<string | undefined>;
    /**
     * Sort the tags by this key. This may be one of `name`, `totalResourceCount`,  `dropletsCount`, `imagesCount`, `volumesCount`, `volumeSnapshotsCount`, or `databasesCount`.
     */
    key: pulumi.Input<string>;
}
export interface GradientaiAgentAgentGuardrail {
    /**
     * Agent UUID for the Guardrail
     */
    agentUuid?: pulumi.Input<string | undefined>;
    /**
     * Created At timestamp for the Guardrail
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Default response for the Guardrail
     */
    defaultResponse?: pulumi.Input<string | undefined>;
    /**
     * Description of the Guardrail
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Guardrail UUID
     */
    guardrailUuid?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Guardrail is attached
     */
    isAttached?: pulumi.Input<boolean | undefined>;
    /**
     * Indicates if the Guardrail is default
     */
    isDefault?: pulumi.Input<boolean | undefined>;
    /**
     * Name of Guardrail
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Priority of the Guardrail
     */
    priority?: pulumi.Input<number | undefined>;
    /**
     * Type of the Guardrail
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the Guardrail
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Guardrail UUID
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: pulumi.Input<string | undefined>;
    /**
     * Logo for the chatbot
     */
    logo?: pulumi.Input<string | undefined>;
    /**
     * Name of the chatbot
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: pulumi.Input<string | undefined>;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: pulumi.Input<string | undefined>;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentChatbotIdentifier {
    chatbotId?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentChildAgent {
    /**
     * ID of the child agent
     */
    agentId?: pulumi.Input<string | undefined>;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentChildAgentAnthropicApiKey>[] | undefined>;
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentChildAgentApiKeyInfo>[] | undefined>;
    /**
     * List of API Keys
     */
    apiKeys?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentChildAgentApiKey>[] | undefined>;
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentChildAgentChatbotIdentifier>[] | undefined>;
    /**
     * ChatBot configuration
     */
    chatbots?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentChildAgentChatbot>[] | undefined>;
    /**
     * List of API Key Infos
     */
    deployments?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentChildAgentDeployment>[] | undefined>;
    /**
     * Description for the Agent
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Instruction for the Agent
     */
    instruction: pulumi.Input<string>;
    /**
     * Model UUID of the Agent
     */
    modelUuid: pulumi.Input<string>;
    /**
     * Name of the Agent
     */
    name: pulumi.Input<string>;
    /**
     * Project ID of the Agent
     */
    projectId: pulumi.Input<string>;
    /**
     * Region where the Agent is deployed
     */
    region: pulumi.Input<string>;
}
export interface GradientaiAgentChildAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentChildAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentChildAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentChildAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: pulumi.Input<string | undefined>;
    /**
     * Logo for the chatbot
     */
    logo?: pulumi.Input<string | undefined>;
    /**
     * Name of the chatbot
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: pulumi.Input<string | undefined>;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: pulumi.Input<string | undefined>;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentChildAgentChatbotIdentifier {
    chatbotId?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentChildAgentDeployment {
    /**
     * API Key value
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Status of the Deployment
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Url of the Deployment
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
    /**
     * Visibility of the Deployment
     */
    visibility?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentDeployment {
    /**
     * API Key value
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Status of the Deployment
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Url of the Deployment
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
    /**
     * Visibility of the Deployment
     */
    visibility?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentFunction {
    /**
     * API Key value
     */
    apiKey?: pulumi.Input<string | undefined>;
    /**
     * Created At timestamp for the Function
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Description of the Function
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Name of function
     */
    faasname?: pulumi.Input<string | undefined>;
    /**
     * Namespace of function
     */
    faasnamespace?: pulumi.Input<string | undefined>;
    /**
     * Guardrail UUID for the Function
     */
    guardrailUuid?: pulumi.Input<string | undefined>;
    /**
     * Name of function
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Url of the Deployment
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt?: pulumi.Input<string | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: pulumi.Input<string | undefined>;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: pulumi.Input<boolean | undefined>;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: pulumi.Input<inputs.GradientaiAgentKnowledgeBaseLastIndexingJob | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: pulumi.Input<string | undefined>;
    /**
     * Region of the Knowledge Base
     */
    region?: pulumi.Input<string | undefined>;
    /**
     * List of tags
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * User ID of the Knowledge Base
     */
    userId?: pulumi.Input<string | undefined>;
    /**
     * UUID of the Knowledge Base
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: pulumi.Input<number | undefined>;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid?: pulumi.Input<string | undefined>;
    /**
     * Phase of the last indexing job
     */
    phase?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt?: pulumi.Input<string | undefined>;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: pulumi.Input<number | undefined>;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: pulumi.Input<number | undefined>;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the last indexing job
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentModel {
    /**
     * Agreement information for the model
     */
    agreements?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentModelAgreement>[] | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Inference name of the model
     */
    inferenceName?: pulumi.Input<string | undefined>;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: pulumi.Input<boolean | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: pulumi.Input<string | undefined>;
    /**
     * Provider of the Model
     */
    provider?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: pulumi.Input<boolean | undefined>;
    /**
     * URL of the Model
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * List of Usecases for the Model
     */
    usecases?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * URL of the Model
     */
    versions?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentModelVersion>[] | undefined>;
}
export interface GradientaiAgentModelAgreement {
    /**
     * Description of the agreement
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Name of the agreement
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * URL of the agreement
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * UUID of the agreement
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentModelVersion {
    /**
     * Major version of the model
     */
    major?: pulumi.Input<number | undefined>;
    /**
     * Minor version of the model
     */
    minor?: pulumi.Input<number | undefined>;
    /**
     * Patch version of the model
     */
    patch?: pulumi.Input<number | undefined>;
}
export interface GradientaiAgentOpenAiApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentParentAgent {
    /**
     * ID of the child agent
     */
    agentId?: pulumi.Input<string | undefined>;
    /**
     * Anthropic API Key information
     */
    anthropicApiKeys?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentParentAgentAnthropicApiKey>[] | undefined>;
    /**
     * List of API Key Infos
     */
    apiKeyInfos?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentParentAgentApiKeyInfo>[] | undefined>;
    /**
     * List of API Keys
     */
    apiKeys?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentParentAgentApiKey>[] | undefined>;
    /**
     * List of Chatbot Identifiers
     */
    chatbotIdentifiers?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentParentAgentChatbotIdentifier>[] | undefined>;
    /**
     * ChatBot configuration
     */
    chatbots?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentParentAgentChatbot>[] | undefined>;
    /**
     * List of API Key Infos
     */
    deployments?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentParentAgentDeployment>[] | undefined>;
    /**
     * Description for the Agent
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Instruction for the Agent
     */
    instruction: pulumi.Input<string>;
    /**
     * Model UUID of the Agent
     */
    modelUuid: pulumi.Input<string>;
    /**
     * Name of the Agent
     */
    name: pulumi.Input<string>;
    /**
     * Project ID of the Agent
     */
    projectId: pulumi.Input<string>;
    /**
     * Region where the Agent is deployed
     */
    region: pulumi.Input<string>;
}
export interface GradientaiAgentParentAgentAnthropicApiKey {
    /**
     * Timestamp when the API Key was created
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentParentAgentApiKey {
    /**
     * API Key value
     */
    apiKey?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentParentAgentApiKeyInfo {
    /**
     * API Key value
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Created By user ID for the API Key
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * Deleted At timestamp for the API Key
     */
    deletedAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the API Key
     */
    secretKey?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentParentAgentChatbot {
    /**
     * Background color for the chatbot button
     */
    buttonBackgroundColor?: pulumi.Input<string | undefined>;
    /**
     * Logo for the chatbot
     */
    logo?: pulumi.Input<string | undefined>;
    /**
     * Name of the chatbot
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Primary color for the chatbot
     */
    primaryColor?: pulumi.Input<string | undefined>;
    /**
     * Secondary color for the chatbot
     */
    secondaryColor?: pulumi.Input<string | undefined>;
    /**
     * Starting message for the chatbot
     */
    startingMessage?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentParentAgentChatbotIdentifier {
    chatbotId?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentParentAgentDeployment {
    /**
     * API Key value
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the API Key
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Status of the Deployment
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * Updated At timestamp for the Agent
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Url of the Deployment
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * API Key value
     */
    uuid?: pulumi.Input<string | undefined>;
    /**
     * Visibility of the Deployment
     */
    visibility?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentTemplate {
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Description of the Agent Template
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Instruction for the Agent
     */
    instruction?: pulumi.Input<string | undefined>;
    /**
     * K value for the Agent Template
     */
    k?: pulumi.Input<number | undefined>;
    /**
     * List of Knowledge Bases
     */
    knowledgeBases?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentTemplateKnowledgeBase>[] | undefined>;
    /**
     * Maximum tokens allowed
     */
    maxTokens?: pulumi.Input<number | undefined>;
    /**
     * Model of the Agent Template
     */
    models?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentTemplateModel>[] | undefined>;
    /**
     * Name of the Agent Template
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Agent temperature setting
     */
    temperature?: pulumi.Input<number | undefined>;
    /**
     * Top P sampling parameter
     */
    topP?: pulumi.Input<number | undefined>;
    /**
     * Updated At timestamp for the Agent Template
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * uuid of the Agent Template
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentTemplateKnowledgeBase {
    /**
     * Timestamp when the Knowledge Base was added to the Agent
     */
    addedToAgentAt?: pulumi.Input<string | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Database ID of the Knowledge Base
     */
    databaseId?: pulumi.Input<string | undefined>;
    /**
     * Embedding model UUID for the Knowledge Base
     */
    embeddingModelUuid?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Knowledge Base is public
     */
    isPublic?: pulumi.Input<boolean | undefined>;
    /**
     * Last indexing job for the Knowledge Base
     */
    lastIndexingJob?: pulumi.Input<inputs.GradientaiAgentTemplateKnowledgeBaseLastIndexingJob | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Project ID of the Knowledge Base
     */
    projectId?: pulumi.Input<string | undefined>;
    /**
     * Region of the Knowledge Base
     */
    region?: pulumi.Input<string | undefined>;
    /**
     * List of tags
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * User ID of the Knowledge Base
     */
    userId?: pulumi.Input<string | undefined>;
    /**
     * UUID of the Knowledge Base
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentTemplateKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: pulumi.Input<number | undefined>;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid?: pulumi.Input<string | undefined>;
    /**
     * Phase of the last indexing job
     */
    phase?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt?: pulumi.Input<string | undefined>;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: pulumi.Input<number | undefined>;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: pulumi.Input<number | undefined>;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the last indexing job
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentTemplateModel {
    /**
     * Agreement information for the model
     */
    agreements?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentTemplateModelAgreement>[] | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Inference name of the model
     */
    inferenceName?: pulumi.Input<string | undefined>;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: pulumi.Input<boolean | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: pulumi.Input<string | undefined>;
    /**
     * Provider of the Model
     */
    provider?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: pulumi.Input<boolean | undefined>;
    /**
     * URL of the Model
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * List of Usecases for the Model
     */
    usecases?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * URL of the Model
     */
    versions?: pulumi.Input<pulumi.Input<inputs.GradientaiAgentTemplateModelVersion>[] | undefined>;
}
export interface GradientaiAgentTemplateModelAgreement {
    /**
     * Description of the agreement
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Name of the agreement
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * URL of the agreement
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * UUID of the agreement
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiAgentTemplateModelVersion {
    /**
     * Major version of the model
     */
    major?: pulumi.Input<number | undefined>;
    /**
     * Minor version of the model
     */
    minor?: pulumi.Input<number | undefined>;
    /**
     * Patch version of the model
     */
    patch?: pulumi.Input<number | undefined>;
}
export interface GradientaiKnowledgeBaseDataSource {
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * File upload data source configuration
     */
    fileUploadDataSources?: pulumi.Input<pulumi.Input<inputs.GradientaiKnowledgeBaseDataSourceFileUploadDataSource>[] | undefined>;
    /**
     * Last indexing job for the data source
     */
    lastIndexingJobs?: pulumi.Input<pulumi.Input<inputs.GradientaiKnowledgeBaseDataSourceLastIndexingJob>[] | undefined>;
    /**
     * Spaces data source configuration
     */
    spacesDataSources?: pulumi.Input<pulumi.Input<inputs.GradientaiKnowledgeBaseDataSourceSpacesDataSource>[] | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID of the Knowledge Base
     */
    uuid?: pulumi.Input<string | undefined>;
    /**
     * Web crawler data source configuration
     */
    webCrawlerDataSources?: pulumi.Input<pulumi.Input<inputs.GradientaiKnowledgeBaseDataSourceWebCrawlerDataSource>[] | undefined>;
}
export interface GradientaiKnowledgeBaseDataSourceFileUploadDataSource {
    /**
     * The original name of the uploaded file
     */
    originalFileName?: pulumi.Input<string | undefined>;
    /**
     * The size of the file in bytes
     */
    sizeInBytes?: pulumi.Input<string | undefined>;
    /**
     * The stored object key for the file
     */
    storedObjectKey?: pulumi.Input<string | undefined>;
}
export interface GradientaiKnowledgeBaseDataSourceLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: pulumi.Input<number | undefined>;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid?: pulumi.Input<string | undefined>;
    /**
     * Phase of the last indexing job
     */
    phase?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt?: pulumi.Input<string | undefined>;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: pulumi.Input<number | undefined>;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: pulumi.Input<number | undefined>;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the last indexing job
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiKnowledgeBaseDataSourceSpacesDataSource {
    /**
     * The name of the Spaces bucket
     */
    bucketName?: pulumi.Input<string | undefined>;
    /**
     * The path to the item in the bucket
     */
    itemPath?: pulumi.Input<string | undefined>;
    /**
     * The region of the Spaces bucket
     */
    region?: pulumi.Input<string | undefined>;
}
export interface GradientaiKnowledgeBaseDataSourceWebCrawlerDataSource {
    /**
     * The base URL to crawl
     */
    baseUrl?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * Whether to embed media content
     */
    embedMedia?: pulumi.Input<boolean | undefined>;
}
export interface GradientaiKnowledgeBaseLastIndexingJob {
    /**
     * Number of completed datasources in the last indexing job
     */
    completedDatasources?: pulumi.Input<number | undefined>;
    /**
     * Created At timestamp for the last indexing job
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Datasource UUIDs for the last indexing job
     */
    dataSourceUuids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timestamp when the last indexing job finished
     */
    finishedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the Knowledge Base for the last indexing job
     */
    knowledgeBaseUuid?: pulumi.Input<string | undefined>;
    /**
     * Phase of the last indexing job
     */
    phase?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the last indexing job started
     */
    startedAt?: pulumi.Input<string | undefined>;
    /**
     * Number of tokens processed in the last indexing job
     */
    tokens?: pulumi.Input<number | undefined>;
    /**
     * Total number of datasources in the last indexing job
     */
    totalDatasources?: pulumi.Input<number | undefined>;
    /**
     * Timestamp when the last indexing job updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * UUID  of the last indexing job
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiOpenaiApiKeyModel {
    /**
     * Agreement information for the model
     */
    agreements?: pulumi.Input<pulumi.Input<inputs.GradientaiOpenaiApiKeyModelAgreement>[] | undefined>;
    /**
     * Created At timestamp for the Knowledge Base
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Inference name of the model
     */
    inferenceName?: pulumi.Input<string | undefined>;
    /**
     * Infernce version of the model
     */
    inferenceVersion?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model Base is foundational
     */
    isFoundational?: pulumi.Input<boolean | undefined>;
    /**
     * Name of the Knowledge Base
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Parent UUID of the Model
     */
    parentUuid?: pulumi.Input<string | undefined>;
    /**
     * Provider of the Model
     */
    provider?: pulumi.Input<string | undefined>;
    /**
     * Timestamp when the Knowledge Base was updated
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * Indicates if the Model upload is complete
     */
    uploadComplete?: pulumi.Input<boolean | undefined>;
    /**
     * URL of the Model
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * List of Usecases for the Model
     */
    usecases?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * URL of the Model
     */
    versions?: pulumi.Input<pulumi.Input<inputs.GradientaiOpenaiApiKeyModelVersion>[] | undefined>;
}
export interface GradientaiOpenaiApiKeyModelAgreement {
    /**
     * Description of the agreement
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Name of the agreement
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * URL of the agreement
     */
    url?: pulumi.Input<string | undefined>;
    /**
     * UUID of the agreement
     */
    uuid?: pulumi.Input<string | undefined>;
}
export interface GradientaiOpenaiApiKeyModelVersion {
    /**
     * Major version of the model
     */
    major?: pulumi.Input<number | undefined>;
    /**
     * Minor version of the model
     */
    minor?: pulumi.Input<number | undefined>;
    /**
     * Patch version of the model
     */
    patch?: pulumi.Input<number | undefined>;
}
export interface KubernetesClusterAmdGpuDeviceMetricsExporterPlugin {
    /**
     * Boolean flag whether the component is enabled or not.
     */
    enabled: pulumi.Input<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: pulumi.Input<boolean>;
}
export interface KubernetesClusterClusterAutoscalerConfiguration {
    expanders?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<number | undefined>;
}
export interface KubernetesClusterControlPlaneFirewall {
    /**
     * A list of addresses allowed (CIDR notation).
     */
    allowedAddresses: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Boolean flag whether the firewall should be enabled or not.
     */
    enabled: pulumi.Input<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?: pulumi.Input<string | undefined>;
    /**
     * The base64 encoded private key used by clients to access the cluster. Only available if token authentication is not supported on your cluster.
     */
    clientKey?: pulumi.Input<string | undefined>;
    /**
     * The base64 encoded public certificate for the cluster's certificate authority.
     */
    clusterCaCertificate?: pulumi.Input<string | undefined>;
    /**
     * The date and time when the credentials will expire and need to be regenerated.
     */
    expiresAt?: pulumi.Input<string | undefined>;
    /**
     * The URL of the API server on the Kubernetes master node.
     */
    host?: pulumi.Input<string | undefined>;
    /**
     * The full contents of the Kubernetes cluster's kubeconfig file.
     */
    rawConfig?: pulumi.Input<string | undefined>;
    /**
     * The DigitalOcean API access token used by clients to access the cluster.
     */
    token?: pulumi.Input<string | undefined>;
}
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?: pulumi.Input<string | undefined>;
    /**
     * A string denoting the duration of the service window, e.g., "04:00".
     */
    duration?: pulumi.Input<string | undefined>;
    /**
     * The start time in UTC of the maintenance window policy in 24-hour clock format / HH:MM notation (e.g., 15:00).
     */
    startTime?: pulumi.Input<string | undefined>;
}
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?: pulumi.Input<number | undefined>;
    /**
     * Enable auto-scaling of the number of nodes in the node pool within the given min/max range.
     */
    autoScale?: pulumi.Input<boolean | undefined>;
    /**
     * A unique ID that can be used to identify and reference the node.
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * If auto-scaling is enabled, this represents the maximum number of nodes that the node pool can be scaled up to.
     */
    maxNodes?: pulumi.Input<number | undefined>;
    /**
     * If auto-scaling is enabled, this represents the minimum number of nodes that the node pool can be scaled down to.
     */
    minNodes?: pulumi.Input<number | undefined>;
    /**
     * A name for the node pool.
     */
    name: pulumi.Input<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?: pulumi.Input<number | undefined>;
    /**
     * A list of nodes in the pool. Each node exports the following attributes:
     */
    nodes?: pulumi.Input<pulumi.Input<inputs.KubernetesClusterNodePoolNode>[] | undefined>;
    /**
     * The slug identifier for the type of Droplet to be used as workers in the node pool.
     */
    size: pulumi.Input<string>;
    /**
     * A list of tag names applied to the node pool.
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * 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?: pulumi.Input<pulumi.Input<inputs.KubernetesClusterNodePoolTaint>[] | undefined>;
}
export interface KubernetesClusterNodePoolNode {
    /**
     * The date and time when the node was created.
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * The id of the node's droplet
     */
    dropletId?: pulumi.Input<string | undefined>;
    /**
     * A unique ID that can be used to identify and reference the node.
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * A name for the Kubernetes cluster.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * A string indicating the current status of the individual node.
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * The date and time when the node was last updated.
     */
    updatedAt?: pulumi.Input<string | undefined>;
}
export interface KubernetesClusterNodePoolTaint {
    /**
     * How the node reacts to pods that it won't tolerate. Available effect values are: "NoSchedule", "PreferNoSchedule", "NoExecute".
     */
    effect: pulumi.Input<string>;
    /**
     * An arbitrary string. The "key" and "value" fields of the "taint" object form a key-value pair.
     */
    key: pulumi.Input<string>;
    /**
     * An arbitrary string. The "key" and "value" fields of the "taint" object form a key-value pair.
     */
    value: pulumi.Input<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: pulumi.Input<boolean>;
}
export interface KubernetesClusterRdmaSharedDevicePlugin {
    /**
     * Boolean flag whether the component is enabled or not.
     */
    enabled: pulumi.Input<boolean>;
}
export interface KubernetesClusterRoutingAgent {
    /**
     * Boolean flag whether the routing-agent should be enabled or not.
     */
    enabled: pulumi.Input<boolean>;
}
export interface KubernetesClusterSso {
    clientId?: pulumi.Input<string | undefined>;
    /**
     * Boolean flag whether the component is enabled or not.
     */
    enabled: pulumi.Input<boolean>;
    issuerUrl?: pulumi.Input<string | undefined>;
    required?: pulumi.Input<boolean | undefined>;
}
export interface KubernetesNodePoolNode {
    /**
     * The date and time when the node was created.
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * The id of the node's droplet
     */
    dropletId?: pulumi.Input<string | undefined>;
    /**
     * A unique ID that can be used to identify and reference the node.
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * A name for the node pool.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * A string indicating the current status of the individual node.
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * The date and time when the node was last updated.
     */
    updatedAt?: pulumi.Input<string | undefined>;
}
export interface KubernetesNodePoolTaint {
    /**
     * How the node reacts to pods that it won't tolerate. Available effect values are: "NoSchedule", "PreferNoSchedule", "NoExecute".
     */
    effect: pulumi.Input<string>;
    /**
     * An arbitrary string. The "key" and "value" fields of the "taint" object form a key-value pair.
     */
    key: pulumi.Input<string>;
    /**
     * An arbitrary string. The "key" and "value" fields of the "taint" object form a key-value pair.
     */
    value: pulumi.Input<string>;
}
export interface LoadBalancerDomain {
    /**
     * **Deprecated** The certificate ID to be used for TLS handshaking.
     */
    certificateId?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
    /**
     * Control flag to specify whether the domain is managed by DigitalOcean.
     */
    isManaged?: pulumi.Input<boolean | undefined>;
    /**
     * The domain name to be used for ingressing traffic to a Global Load Balancer.
     */
    name: pulumi.Input<string>;
    /**
     * list of domain SSL validation errors
     */
    sslValidationErrorReasons?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * list of domain verification errors
     */
    verificationErrorReasons?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
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?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * A list of strings describing deny rules. Must be colon delimited strings of the form `{type}:{source}`
     */
    denies?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
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?: pulumi.Input<string | undefined>;
    /**
     * The unique name of the TLS certificate to be used for SSL termination.
     */
    certificateName?: pulumi.Input<string | undefined>;
    /**
     * An integer representing the port on which the Load Balancer instance will listen.
     */
    entryPort: pulumi.Input<number>;
    /**
     * The protocol used for traffic to the Load Balancer. The possible values are: `http`, `https`, `http2`, `http3`, `tcp`, or `udp`.
     */
    entryProtocol: pulumi.Input<string>;
    /**
     * An integer representing the port on the backend Droplets to which the Load Balancer will send traffic.
     */
    targetPort: pulumi.Input<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: pulumi.Input<string>;
    /**
     * A boolean value indicating whether SSL encrypted traffic will be passed through to the backend Droplets. The default value is `false`.
     */
    tlsPassthrough?: pulumi.Input<boolean | undefined>;
}
export interface LoadBalancerGlbSettings {
    /**
     * CDN configuration supporting the following:
     */
    cdn?: pulumi.Input<inputs.LoadBalancerGlbSettingsCdn | undefined>;
    /**
     * fail-over threshold
     */
    failoverThreshold?: pulumi.Input<number | undefined>;
    /**
     * region priority map
     */
    regionPriorities?: pulumi.Input<{
        [key: string]: pulumi.Input<number>;
    } | undefined>;
    /**
     * 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: pulumi.Input<number>;
    /**
     * The protocol used for traffic from the Load Balancer to the backend Droplets. The possible values are: `http` and `https`.
     */
    targetProtocol: pulumi.Input<string>;
}
export interface LoadBalancerGlbSettingsCdn {
    /**
     * Control flag to specify if caching is enabled.
     */
    isEnabled?: pulumi.Input<boolean | undefined>;
}
export interface LoadBalancerHealthcheck {
    /**
     * The number of seconds between two consecutive health checks. If not specified, the default value is `10`.
     */
    checkIntervalSeconds?: pulumi.Input<number | undefined>;
    /**
     * 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?: pulumi.Input<number | undefined>;
    /**
     * The path on the backend Droplets to which the Load Balancer instance will send a request.
     */
    path?: pulumi.Input<string | undefined>;
    /**
     * An integer representing the port on the backend Droplets on which the health check will attempt a connection.
     */
    port: pulumi.Input<number>;
    /**
     * The protocol used for health checks sent to the backend Droplets. The possible values are `http`, `https` or `tcp`.
     */
    protocol: pulumi.Input<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?: pulumi.Input<number | undefined>;
    /**
     * 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?: pulumi.Input<number | undefined>;
}
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?: pulumi.Input<string | undefined>;
    /**
     * 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?: pulumi.Input<number | undefined>;
    /**
     * 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?: pulumi.Input<string | undefined>;
}
export interface MonitorAlertAlerts {
    /**
     * List of email addresses to sent notifications to
     */
    emails?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    slacks?: pulumi.Input<pulumi.Input<inputs.MonitorAlertAlertsSlack>[] | undefined>;
}
export interface MonitorAlertAlertsSlack {
    /**
     * The Slack channel to send alerts to
     */
    channel: pulumi.Input<string>;
    /**
     * The webhook URL for Slack
     */
    url: pulumi.Input<string>;
}
export interface PartnerAttachmentBgp {
    authKey?: pulumi.Input<string | undefined>;
    localRouterIp?: pulumi.Input<string | undefined>;
    peerRouterAsn?: pulumi.Input<number | undefined>;
    peerRouterIp?: pulumi.Input<string | undefined>;
}
export interface SpacesBucketCorsConfigurationCorsRule {
    /**
     * Set of Headers that are specified in the Access-Control-Request-Headers header.
     */
    allowedHeaders?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Set of HTTP methods that you allow the origin to execute. Valid values are GET, PUT, HEAD, POST, and DELETE.
     */
    allowedMethods: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Set of origins you want customers to be able to access the bucket from.
     */
    allowedOrigins: pulumi.Input<pulumi.Input<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?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Unique identifier for the rule. The value cannot be longer than 255 characters.
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * Time in seconds that your browser is to cache the preflight response for the specified resource.
     */
    maxAgeSeconds?: pulumi.Input<number | undefined>;
}
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?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * A list of HTTP methods (e.g. `GET`) which are allowed from the specified origin.
     */
    allowedMethods: pulumi.Input<pulumi.Input<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: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The time in seconds that browser can cache the response for a preflight request.
     */
    maxAgeSeconds?: pulumi.Input<number | undefined>;
}
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?: pulumi.Input<number | undefined>;
    /**
     * Specifies lifecycle rule status.
     */
    enabled: pulumi.Input<boolean>;
    /**
     * Specifies a time period after which applicable objects expire (documented below).
     */
    expiration?: pulumi.Input<inputs.SpacesBucketLifecycleRuleExpiration | undefined>;
    /**
     * Unique identifier for the rule.
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * Specifies when non-current object versions expire (documented below).
     *
     * At least one of `expiration` or `noncurrentVersionExpiration` must be specified.
     */
    noncurrentVersionExpiration?: pulumi.Input<inputs.SpacesBucketLifecycleRuleNoncurrentVersionExpiration | undefined>;
    /**
     * Object key prefix identifying one or more objects to which the rule applies.
     */
    prefix?: pulumi.Input<string | undefined>;
}
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?: pulumi.Input<string | undefined>;
    /**
     * Specifies the number of days after object creation when the applicable objects will expire.
     */
    days?: pulumi.Input<number | undefined>;
    /**
     * On a versioned bucket (versioning-enabled or versioning-suspended
     * bucket), setting this to true directs Spaces to delete expired object delete markers.
     */
    expiredObjectDeleteMarker?: pulumi.Input<boolean | undefined>;
}
export interface SpacesBucketLifecycleRuleNoncurrentVersionExpiration {
    /**
     * Specifies the number of days after which an object's non-current versions expire.
     */
    days?: pulumi.Input<number | undefined>;
}
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?: pulumi.Input<boolean | undefined>;
}
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: pulumi.Input<string>;
    /**
     * Permission associated with this grant. Values can be `read`, `readwrite`, `fullaccess`.
     */
    permission: pulumi.Input<string>;
}
export interface UptimeAlertNotification {
    /**
     * List of email addresses to sent notifications to.
     */
    emails?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    slacks?: pulumi.Input<pulumi.Input<inputs.UptimeAlertNotificationSlack>[] | undefined>;
}
export interface UptimeAlertNotificationSlack {
    /**
     * The Slack channel to send alerts to.
     */
    channel: pulumi.Input<string>;
    /**
     * The webhook URL for Slack.
     */
    url: pulumi.Input<string>;
}
export interface VpcNatGatewayEgress {
    /**
     * List of public gateway IPs
     */
    publicGateways?: pulumi.Input<pulumi.Input<inputs.VpcNatGatewayEgressPublicGateway>[] | undefined>;
}
export interface VpcNatGatewayEgressPublicGateway {
    /**
     * IPv4 address
     */
    ipv4?: pulumi.Input<string | undefined>;
}
export interface VpcNatGatewayVpc {
    /**
     * Boolean flag indicating if this should be the default gateway in this VPC
     */
    defaultGateway?: pulumi.Input<boolean | undefined>;
    /**
     * The private IP of the VPC NAT Gateway
     */
    gatewayIp?: pulumi.Input<string | undefined>;
    /**
     * The ID of the ingress VPC
     */
    vpcUuid: pulumi.Input<string>;
}
//# sourceMappingURL=input.d.ts.map