import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
export interface ProjectConfigArgs {
    configs?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.types.ConfigObjConfigArgs>;
    }>;
    name?: pulumi.Input<string>;
    networks?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.types.NetworkConfigArgs>;
    }>;
    secrets?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.types.SecretConfigArgs>;
    }>;
    services: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.types.ServiceConfigArgs>;
    }>;
    volumes?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.types.VolumeConfigArgs>;
    }>;
}
export declare namespace types {
    interface BlkioConfigArgs {
        device_read_bps?: pulumi.Input<pulumi.Input<inputs.types.ThrottleDeviceArgs>[]>;
        device_read_iops?: pulumi.Input<pulumi.Input<inputs.types.ThrottleDeviceArgs>[]>;
        device_write_bps?: pulumi.Input<pulumi.Input<inputs.types.ThrottleDeviceArgs>[]>;
        device_write_iops?: pulumi.Input<pulumi.Input<inputs.types.ThrottleDeviceArgs>[]>;
        weight?: pulumi.Input<number>;
        weight_device?: pulumi.Input<pulumi.Input<inputs.types.WeightDeviceArgs>[]>;
    }
    interface BuildConfigArgs {
        additional_contexts?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        args?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        cache_from?: pulumi.Input<pulumi.Input<string>[]>;
        cache_to?: pulumi.Input<pulumi.Input<string>[]>;
        context?: pulumi.Input<string>;
        dockerfile?: pulumi.Input<string>;
        dockerfile_inline?: pulumi.Input<string>;
        entitlements?: pulumi.Input<pulumi.Input<string>[]>;
        extra_hosts?: pulumi.Input<{
            [key: string]: pulumi.Input<pulumi.Input<string>[]>;
        }>;
        isolation?: pulumi.Input<string>;
        labels?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        network?: pulumi.Input<string>;
        no_cache?: pulumi.Input<boolean>;
        platforms?: pulumi.Input<pulumi.Input<string>[]>;
        privileged?: pulumi.Input<boolean>;
        pull?: pulumi.Input<boolean>;
        secrets?: pulumi.Input<pulumi.Input<inputs.types.ServiceSecretConfigArgs>[]>;
        shm_size?: pulumi.Input<number>;
        ssh?: pulumi.Input<pulumi.Input<inputs.types.SSHKeyArgs>[]>;
        tags?: pulumi.Input<pulumi.Input<string>[]>;
        target?: pulumi.Input<string>;
        ulimits?: pulumi.Input<{
            [key: string]: pulumi.Input<inputs.types.UlimitsConfigArgs>;
        }>;
    }
    interface ConfigObjConfigArgs {
        content?: pulumi.Input<string>;
        driver?: pulumi.Input<string>;
        driver_opts?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        environment?: pulumi.Input<string>;
        external?: pulumi.Input<boolean>;
        file?: pulumi.Input<string>;
        labels?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        name?: pulumi.Input<string>;
        template_driver?: pulumi.Input<string>;
    }
    interface CredentialSpecConfigArgs {
        config?: pulumi.Input<string>;
        file?: pulumi.Input<string>;
        registry?: pulumi.Input<string>;
    }
    interface DeployConfigArgs {
        endpoint_mode?: pulumi.Input<string>;
        labels?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        mode?: pulumi.Input<string>;
        placement?: pulumi.Input<inputs.types.PlacementArgs>;
        replicas?: pulumi.Input<number>;
        resources: pulumi.Input<inputs.types.ResourcesArgs>;
        restart_policy?: pulumi.Input<inputs.types.RestartPolicyArgs>;
        rollback_config?: pulumi.Input<inputs.types.UpdateConfigArgs>;
        update_config?: pulumi.Input<inputs.types.UpdateConfigArgs>;
    }
    interface DevelopConfigArgs {
        watch?: pulumi.Input<pulumi.Input<inputs.types.TriggerArgs>[]>;
    }
    interface DeviceMappingArgs {
        permissions?: pulumi.Input<string>;
        source?: pulumi.Input<string>;
        target?: pulumi.Input<string>;
    }
    interface DeviceRequestArgs {
        capabilities?: pulumi.Input<pulumi.Input<string>[]>;
        count?: pulumi.Input<number>;
        device_ids?: pulumi.Input<pulumi.Input<string>[]>;
        driver?: pulumi.Input<string>;
        options?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
    }
    interface DiscreteGenericResourceArgs {
        kind: pulumi.Input<string>;
        value: pulumi.Input<number>;
    }
    interface EnvFileArgs {
        format?: pulumi.Input<string>;
        path?: pulumi.Input<string>;
        required: pulumi.Input<boolean>;
    }
    interface ExtendsConfigArgs {
        file?: pulumi.Input<string>;
        service?: pulumi.Input<string>;
    }
    interface GenericResourceArgs {
        discrete_resource_spec?: pulumi.Input<inputs.types.DiscreteGenericResourceArgs>;
    }
    interface HealthCheckConfigArgs {
        disable?: pulumi.Input<boolean>;
        interval?: pulumi.Input<number>;
        retries?: pulumi.Input<number>;
        start_interval?: pulumi.Input<number>;
        start_period?: pulumi.Input<number>;
        test?: pulumi.Input<pulumi.Input<string>[]>;
        timeout?: pulumi.Input<number>;
    }
    interface IPAMConfigArgs {
        config?: pulumi.Input<pulumi.Input<inputs.types.IPAMPoolArgs>[]>;
        driver?: pulumi.Input<string>;
    }
    interface IPAMPoolArgs {
        aux_addresses?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        gateway?: pulumi.Input<string>;
        ip_range?: pulumi.Input<string>;
        subnet?: pulumi.Input<string>;
    }
    interface LoggingConfigArgs {
        driver?: pulumi.Input<string>;
        options?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
    }
    interface NetworkConfigArgs {
        attachable?: pulumi.Input<boolean>;
        driver?: pulumi.Input<string>;
        driver_opts?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        enable_ipv6?: pulumi.Input<boolean>;
        external?: pulumi.Input<boolean>;
        internal?: pulumi.Input<boolean>;
        ipam: pulumi.Input<inputs.types.IPAMConfigArgs>;
        labels?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        name?: pulumi.Input<string>;
    }
    interface PlacementArgs {
        constraints?: pulumi.Input<pulumi.Input<string>[]>;
        max_replicas_per_node?: pulumi.Input<number>;
        preferences?: pulumi.Input<pulumi.Input<inputs.types.PlacementPreferencesArgs>[]>;
    }
    interface PlacementPreferencesArgs {
        spread?: pulumi.Input<string>;
    }
    interface ResourceArgs {
        cpus?: pulumi.Input<number>;
        devices?: pulumi.Input<pulumi.Input<inputs.types.DeviceRequestArgs>[]>;
        generic_resources?: pulumi.Input<pulumi.Input<inputs.types.GenericResourceArgs>[]>;
        memory?: pulumi.Input<number>;
        pids?: pulumi.Input<number>;
    }
    interface ResourcesArgs {
        limits?: pulumi.Input<inputs.types.ResourceArgs>;
        reservations?: pulumi.Input<inputs.types.ResourceArgs>;
    }
    interface RestartPolicyArgs {
        condition?: pulumi.Input<string>;
        delay?: pulumi.Input<number>;
        max_attempts?: pulumi.Input<number>;
        window?: pulumi.Input<number>;
    }
    interface SSHKeyArgs {
        id?: pulumi.Input<string>;
        path?: pulumi.Input<string>;
    }
    interface SecretConfigArgs {
        content?: pulumi.Input<string>;
        driver?: pulumi.Input<string>;
        driver_opts?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        environment?: pulumi.Input<string>;
        external?: pulumi.Input<boolean>;
        file?: pulumi.Input<string>;
        labels?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        name?: pulumi.Input<string>;
        template_driver?: pulumi.Input<string>;
    }
    interface ServiceConfigArgs {
        annotations?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        attach?: pulumi.Input<boolean>;
        blkio_config?: pulumi.Input<inputs.types.BlkioConfigArgs>;
        build?: pulumi.Input<inputs.types.BuildConfigArgs>;
        cap_add?: pulumi.Input<pulumi.Input<string>[]>;
        cap_drop?: pulumi.Input<pulumi.Input<string>[]>;
        cgroup?: pulumi.Input<string>;
        cgroup_parent?: pulumi.Input<string>;
        command?: pulumi.Input<pulumi.Input<string>[]>;
        configs?: pulumi.Input<pulumi.Input<inputs.types.ServiceConfigObjConfigArgs>[]>;
        container_name?: pulumi.Input<string>;
        cpu_count?: pulumi.Input<number>;
        cpu_percent?: pulumi.Input<number>;
        cpu_period?: pulumi.Input<number>;
        cpu_quota?: pulumi.Input<number>;
        cpu_rt_period?: pulumi.Input<number>;
        cpu_rt_runtime?: pulumi.Input<number>;
        cpu_shares?: pulumi.Input<number>;
        cpus?: pulumi.Input<number>;
        cpuset?: pulumi.Input<string>;
        credential_spec?: pulumi.Input<inputs.types.CredentialSpecConfigArgs>;
        defang_llm?: pulumi.Input<boolean>;
        defang_postgres?: pulumi.Input<boolean>;
        defang_redis?: pulumi.Input<boolean>;
        defang_static_files?: pulumi.Input<boolean>;
        depends_on?: pulumi.Input<{
            [key: string]: pulumi.Input<inputs.types.ServiceDependencyArgs>;
        }>;
        deploy?: pulumi.Input<inputs.types.DeployConfigArgs>;
        develop?: pulumi.Input<inputs.types.DevelopConfigArgs>;
        device_cgroup_rules?: pulumi.Input<pulumi.Input<string>[]>;
        devices?: pulumi.Input<pulumi.Input<inputs.types.DeviceMappingArgs>[]>;
        dns?: pulumi.Input<pulumi.Input<string>[]>;
        dns_opt?: pulumi.Input<pulumi.Input<string>[]>;
        dns_search?: pulumi.Input<pulumi.Input<string>[]>;
        dockerfile?: pulumi.Input<string>;
        domainname?: pulumi.Input<string>;
        entrypoint?: pulumi.Input<pulumi.Input<string>[]>;
        env_file?: pulumi.Input<pulumi.Input<inputs.types.EnvFileArgs>[]>;
        environment?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        expose?: pulumi.Input<pulumi.Input<string>[]>;
        extends?: pulumi.Input<inputs.types.ExtendsConfigArgs>;
        external_links?: pulumi.Input<pulumi.Input<string>[]>;
        extra_hosts?: pulumi.Input<{
            [key: string]: pulumi.Input<pulumi.Input<string>[]>;
        }>;
        gpus?: pulumi.Input<pulumi.Input<inputs.types.DeviceRequestArgs>[]>;
        group_add?: pulumi.Input<pulumi.Input<string>[]>;
        healthcheck?: pulumi.Input<inputs.types.HealthCheckConfigArgs>;
        hostname?: pulumi.Input<string>;
        image?: pulumi.Input<string>;
        init?: pulumi.Input<boolean>;
        ipc?: pulumi.Input<string>;
        isolation?: pulumi.Input<string>;
        labels?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        links?: pulumi.Input<pulumi.Input<string>[]>;
        log_driver?: pulumi.Input<string>;
        log_opt?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        logging?: pulumi.Input<inputs.types.LoggingConfigArgs>;
        mac_address?: pulumi.Input<string>;
        mem_limit?: pulumi.Input<number>;
        mem_reservation?: pulumi.Input<number>;
        mem_swappiness?: pulumi.Input<number>;
        memswap_limit?: pulumi.Input<number>;
        net?: pulumi.Input<string>;
        network_mode?: pulumi.Input<string>;
        networks?: pulumi.Input<{
            [key: string]: pulumi.Input<inputs.types.ServiceNetworkConfigArgs>;
        }>;
        oom_kill_disable?: pulumi.Input<boolean>;
        oom_score_adj?: pulumi.Input<number>;
        pid?: pulumi.Input<string>;
        pids_limit?: pulumi.Input<number>;
        platform?: pulumi.Input<string>;
        ports?: pulumi.Input<pulumi.Input<inputs.types.ServicePortConfigArgs>[]>;
        post_start?: pulumi.Input<pulumi.Input<inputs.types.ServiceHookArgs>[]>;
        pre_stop?: pulumi.Input<pulumi.Input<inputs.types.ServiceHookArgs>[]>;
        privileged?: pulumi.Input<boolean>;
        profiles?: pulumi.Input<pulumi.Input<string>[]>;
        pull_policy?: pulumi.Input<string>;
        read_only?: pulumi.Input<boolean>;
        restart?: pulumi.Input<string>;
        runtime?: pulumi.Input<string>;
        scale?: pulumi.Input<number>;
        secrets?: pulumi.Input<pulumi.Input<inputs.types.ServiceSecretConfigArgs>[]>;
        security_opt?: pulumi.Input<pulumi.Input<string>[]>;
        shm_size?: pulumi.Input<number>;
        stdin_open?: pulumi.Input<boolean>;
        stop_grace_period?: pulumi.Input<number>;
        stop_signal?: pulumi.Input<string>;
        storage_opt?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        sysctls?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        tmpfs?: pulumi.Input<pulumi.Input<string>[]>;
        tty?: pulumi.Input<boolean>;
        ulimits?: pulumi.Input<{
            [key: string]: pulumi.Input<inputs.types.UlimitsConfigArgs>;
        }>;
        user?: pulumi.Input<string>;
        userns_mode?: pulumi.Input<string>;
        uts?: pulumi.Input<string>;
        volume_driver?: pulumi.Input<string>;
        volumes?: pulumi.Input<pulumi.Input<inputs.types.ServiceVolumeConfigArgs>[]>;
        volumes_from?: pulumi.Input<pulumi.Input<string>[]>;
        working_dir?: pulumi.Input<string>;
    }
    interface ServiceConfigObjConfigArgs {
        gid?: pulumi.Input<string>;
        mode?: pulumi.Input<number>;
        source?: pulumi.Input<string>;
        target?: pulumi.Input<string>;
        uid?: pulumi.Input<string>;
    }
    interface ServiceDependencyArgs {
        condition?: pulumi.Input<string>;
        required: pulumi.Input<boolean>;
        restart?: pulumi.Input<boolean>;
    }
    interface ServiceHookArgs {
        command: pulumi.Input<pulumi.Input<string>[]>;
        environment?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        privileged?: pulumi.Input<boolean>;
        user?: pulumi.Input<string>;
        working_dir?: pulumi.Input<string>;
    }
    interface ServiceNetworkConfigArgs {
        aliases?: pulumi.Input<pulumi.Input<string>[]>;
        driver_opts?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        ipv4_address?: pulumi.Input<string>;
        ipv6_address?: pulumi.Input<string>;
        link_local_ips?: pulumi.Input<pulumi.Input<string>[]>;
        mac_address?: pulumi.Input<string>;
        priority?: pulumi.Input<number>;
    }
    interface ServicePortConfigArgs {
        app_protocol?: pulumi.Input<string>;
        defang_listener?: pulumi.Input<string>;
        host_ip?: pulumi.Input<string>;
        mode?: pulumi.Input<string>;
        name?: pulumi.Input<string>;
        protocol?: pulumi.Input<string>;
        published?: pulumi.Input<string>;
        target?: pulumi.Input<number>;
    }
    interface ServiceSecretConfigArgs {
        gid?: pulumi.Input<string>;
        mode?: pulumi.Input<number>;
        source?: pulumi.Input<string>;
        target?: pulumi.Input<string>;
        uid?: pulumi.Input<string>;
    }
    interface ServiceVolumeBindArgs {
        create_host_path?: pulumi.Input<boolean>;
        propagation?: pulumi.Input<string>;
        recursive?: pulumi.Input<string>;
        selinux?: pulumi.Input<string>;
    }
    interface ServiceVolumeConfigArgs {
        bind?: pulumi.Input<inputs.types.ServiceVolumeBindArgs>;
        consistency?: pulumi.Input<string>;
        read_only?: pulumi.Input<boolean>;
        source?: pulumi.Input<string>;
        target?: pulumi.Input<string>;
        tmpfs?: pulumi.Input<inputs.types.ServiceVolumeTmpfsArgs>;
        type?: pulumi.Input<string>;
        volume?: pulumi.Input<inputs.types.ServiceVolumeVolumeArgs>;
    }
    interface ServiceVolumeTmpfsArgs {
        mode?: pulumi.Input<number>;
        size?: pulumi.Input<number>;
    }
    interface ServiceVolumeVolumeArgs {
        nocopy?: pulumi.Input<boolean>;
        subpath?: pulumi.Input<string>;
    }
    interface ThrottleDeviceArgs {
    }
    interface TriggerArgs {
        action: pulumi.Input<string>;
        ignore?: pulumi.Input<pulumi.Input<string>[]>;
        path: pulumi.Input<string>;
        target?: pulumi.Input<string>;
    }
    interface UlimitsConfigArgs {
        hard?: pulumi.Input<number>;
        single?: pulumi.Input<number>;
        soft?: pulumi.Input<number>;
    }
    interface UpdateConfigArgs {
        delay?: pulumi.Input<number>;
        failure_action?: pulumi.Input<string>;
        max_failure_ratio?: pulumi.Input<number>;
        monitor?: pulumi.Input<number>;
        order?: pulumi.Input<string>;
        parallelism?: pulumi.Input<number>;
    }
    interface VolumeConfigArgs {
        driver?: pulumi.Input<string>;
        driver_opts?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        external?: pulumi.Input<boolean>;
        labels?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        name?: pulumi.Input<string>;
    }
    interface WeightDeviceArgs {
    }
}
