UNPKG

@pulumiverse/scaleway

Version:

A Pulumi package for creating and managing Scaleway cloud resources.

819 lines 33.4 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * The `scaleway.containers.Container` resource allows you to create and manage [Serverless Containers](https://www.scaleway.com/en/docs/serverless/containers/). * * Refer to the Serverless Containers [product documentation](https://www.scaleway.com/en/docs/serverless/containers/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-containers/) for more information. * * For more information on the limitations of Serverless Containers, refer to the [dedicated documentation](https://www.scaleway.com/en/docs/serverless-containers/reference-content/containers-limitations/). * * ## Example Usage * * ### Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@pulumiverse/scaleway"; * * const main = new scaleway.containers.Namespace("main", {}); * const mainContainer = new scaleway.containers.Container("main", { * name: "my-container", * description: "This container has a description.", * tags: [ * "tag1", * "tag2", * ], * namespaceId: main.id, * image: "nginx:latest", * port: 80, * cpuLimit: 1024, * memoryLimitBytes: 2048000000, * minScale: 3, * maxScale: 5, * timeout: 600, * protocol: "http1", * commands: [ * "bash", * "-c", * "script.sh", * ], * args: [ * "some", * "args", * ], * environmentVariables: { * foo: "var", * }, * secretEnvironmentVariables: { * key: "secret", * }, * }); * ``` * * ### VPC integration * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@pulumiverse/scaleway"; * * const vpc = new scaleway.network.Vpc("vpc", {}); * const pn = new scaleway.network.PrivateNetwork("pn", {vpcId: vpc.id}); * const withPn = new scaleway.containers.Namespace("with_pn", {}); * const withPnContainer = new scaleway.containers.Container("with_pn", { * namespaceId: withPn.id, * name: "container-with-private-network", * image: "my-image:latest", * privateNetworkId: pn.id, * }); * ``` * * ### Redeploy the container everytime an update is made * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@pulumiverse/scaleway"; * import * as std from "@pulumi/std"; * * const main = scaleway.registry.getNamespace({ * name: "my-registry", * }); * const mainGetImage = main.then(main => scaleway.registry.getImage({ * namespaceId: main.id, * name: "nginx-1-29-2-alpine", * })); * const mainNamespace = new scaleway.containers.Namespace("main", {}); * const mainContainer = new scaleway.containers.Container("main", { * name: "my-container", * namespaceId: mainNamespace.id, * image: Promise.all([main, mainGetImage, mainGetImage]).then(([main, mainGetImage, mainGetImage1]) => `${main.endpoint}/${mainGetImage.name}:${mainGetImage1.tags?.[0]}`), * port: 80, * registrySha256: std.timestamp({}).result, * }); * ``` * * ### Redeploy the container when the image changes * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@pulumiverse/scaleway"; * * // When using mutable images (e.g., `latest` tag), you can use the `scaleway_registry_image_tag` data source along * // with the `registry_sha256` argument to trigger container redeployments when the image is updated. * // Ideally, you would create the namespace separately. * // For demonstration purposes, this example assumes the "nginx:latest" image is already available * // in the referenced namespace. * const main = new scaleway.registry.Namespace("main", {name: "some-unique-name"}); * const nginx = scaleway.registry.getImageOutput({ * namespaceId: main.id, * name: "nginx", * }); * const nginxLatest = nginx.apply(nginx => scaleway.registry.getImageTagOutput({ * imageId: nginx.id, * name: "latest", * })); * const mainNamespace = new scaleway.containers.Namespace("main", {name: "my-container-namespace"}); * const mainContainer = new scaleway.containers.Container("main", { * name: "nginx-latest", * namespaceId: mainNamespace.id, * image: pulumi.all([nginx, nginxLatest]).apply(([nginx, nginxLatest]) => `${mainScalewayRegistryNamespace.endpoint}/${nginx.name}:${nginxLatest.name}`), * port: 80, * registrySha256: nginxLatest.apply(nginxLatest => nginxLatest.digest), * }); * ``` * * ### Managing authentication of private containers with IAM * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@pulumiverse/scaleway"; * * // Project to be referenced in the IAM policy * const _default = scaleway.account.getProject({ * name: "default", * }); * // IAM resources * const containerAuth = new scaleway.iam.Application("container_auth", {name: "container-auth"}); * const accessPrivateContainers = new scaleway.iam.Policy("access_private_containers", { * applicationId: containerAuth.id, * rules: [{ * projectIds: [_default.then(_default => _default.id)], * permissionSetNames: ["ContainersPrivateAccess"], * }], * }); * const apiKey = new scaleway.iam.ApiKey("api_key", {applicationId: containerAuth.id}); * // Container resources * const _private = new scaleway.containers.Namespace("private", {name: "private-container-namespace"}); * const privateContainer = new scaleway.containers.Container("private", { * namespaceId: _private.id, * image: "rg.fr-par.scw.cloud/my-registry-ns/my-image:latest", * privacy: "private", * }); * export const secretKey = apiKey.secretKey; * export const containerEndpoint = privateContainer.domainName; * ``` * * ## Protocols * * The following protocols are supported: * * - `h2c`: HTTP/2 over TCP. * - `http1`: Hypertext Transfer Protocol. * * > **Important:** Refer to the official [Apache documentation](https://httpd.apache.org/docs/2.4/howto/http2.html) for more information. * * ## Privacy * * By default, creating a container will make it `public`, meaning that anybody knowing the endpoint can execute it. * * A container can be made `private` with the privacy parameter. * * Refer to the [technical information](https://www.scaleway.com/en/developers/api/serverless-containers/#protocol-9dd4c8) for more information on container authentication. * * ## Memory and vCPUs configuration * * The vCPU represents a portion of the underlying, physical CPU that is assigned to a particular virtual machine (VM). * * You can determine the computing resources to allocate to each container. * * The `memoryLimitBytes` must correspond with the right amount of vCPU. Refer to the table below to determine the right memory/vCPU combination. * * | Memory (in MB) | vCPU | * |----------------|------| * | 128 | 70m | * | 256 | 140m | * | 512 | 280m | * | 1024 | 560m | * | 2048 | 1120 | * | 3072 | 1680 | * | 4096 | 2240 | * * ~>**Important:** Make sure to select the right resources, as you will be billed based on compute usage over time and the number of Containers executions. * Refer to the [Serverless Containers pricing](https://www.scaleway.com/en/docs/faq/serverless-containers/#prices) for more information. * * ## Health check configuration * * Custom health checks can be configured on the container. * * It's possible to specify the HTTP path that the probe will listen to and the number of failures before considering the container as unhealthy. * During a deployment, if a newly created container fails to pass the health check, the deployment is aborted. * As a result, lowering this value can help to reduce the time it takes to detect a failed deployment. * The period between health checks is also configurable. * * Example: * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@pulumiverse/scaleway"; * * const main = new scaleway.containers.Container("main", { * name: "my-container", * namespaceId: mainScalewayContainerNamespace.id, * image: "nginx:latest", * livenessProbe: { * http: { * path: "/ping", * }, * failureThreshold: 40, * interval: "5s", * timeout: "1m", * }, * }); * ``` * * ~>**Important:** Another probe type can be set to TCP with the API, but currently the SDK has not been updated with this parameter. * This is why the only probe that can be used here is the HTTP probe. * Refer to the [Serverless Containers pricing](https://www.scaleway.com/en/docs/faq/serverless-containers/#prices) for more information. * * ## Scaling option configuration * * Scaling option block configuration allows you to choose which parameter will scale up/down containers. * Options are number of concurrent requests, CPU or memory usage. * * Example: * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@pulumiverse/scaleway"; * * const main = new scaleway.containers.Container("main", { * name: "my-container-02", * namespaceId: mainScalewayContainerNamespace.id, * scalingOptions: [{ * concurrentRequestsThreshold: 15, * }], * }); * ``` * * ~>**Important**: A maximum of one of these parameters may be set. Also, when `cpuUsageThreshold` or `memoryUsageThreshold` are used, `minScale` can't be set to 0. * Refer to the [API Reference](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-create-a-new-container) for more information. * * ## Import * * Containers can be imported using, `{region}/{id}`, as shown below: * * ```sh * $ pulumi import scaleway:index/container:Container main fr-par/11111111-1111-1111-1111-111111111111 * ``` * * @deprecated scaleway.index/container.Container has been deprecated in favor of scaleway.containers/container.Container */ export declare class Container extends pulumi.CustomResource { /** * Get an existing Container resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ContainerState, opts?: pulumi.CustomResourceOptions): Container; /** * Returns true if the given object is an instance of Container. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is Container; /** * Arguments passed to the command specified in the `command` field. These override the default arguments from the container image, and behave like command-line parameters. */ readonly args: pulumi.Output<string[] | undefined>; /** * Command executed when the container starts. This overrides the default command defined in the container image. This is usually the main executable, or entry point script to run. */ readonly commands: pulumi.Output<string[] | undefined>; /** * The amount of vCPU computing resources to allocate to each container. */ readonly cpuLimit: pulumi.Output<number>; /** * The cron status * * @deprecated Please refer to the scaleway.containers.Trigger resource instead. */ readonly cronStatus: pulumi.Output<string>; /** * Boolean indicating whether the container is in a production environment. * * > **Important:** Containers are now automatically deployed and redeployed; setting this attribute will not have any effect. * * @deprecated Containers are now automatically deployed or redeployed; setting this attribute will not have any effect. */ readonly deploy: pulumi.Output<boolean | undefined>; /** * The description of the container. */ readonly description: pulumi.Output<string | undefined>; /** * The native domain name of the container * * @deprecated This attribute will be removed in the future, please use publicEndpoint instead */ readonly domainName: pulumi.Output<string>; /** * The [environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#environment-variables) of the container. */ readonly environmentVariables: pulumi.Output<{ [key: string]: string; }>; /** * The error message of the container. */ readonly errorMessage: pulumi.Output<string>; /** * Health check configuration block of the container. * * @deprecated Please use livenessProbe instead */ readonly healthChecks: pulumi.Output<outputs.ContainerHealthCheck[]>; /** * Allows both HTTP and HTTPS (`enabled`) or redirect HTTP to HTTPS (`redirected`). Defaults to `enabled`. * * > **Important:** Only one of `httpsConnectionsOnly` or `httpOption` can be set at a time. * * @deprecated Please use httpsConnectionsOnly instead */ readonly httpOption: pulumi.Output<string>; /** * Allows both HTTP and HTTPS (`false`) or redirect HTTP to HTTPS (`true`). Defaults to `false`. */ readonly httpsConnectionsOnly: pulumi.Output<boolean>; /** * The image address (e.g., `rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE`) */ readonly image: pulumi.Output<string>; /** * Defines how to check if the container is running. */ readonly livenessProbe: pulumi.Output<outputs.ContainerLivenessProbe>; /** * Local storage limit of the container (in MB) * * > **Important:** Only one of `localStorageLimitBytes` or `localStorageLimit` can be set at a time. * * @deprecated Please use localStorageLimitBytes instead */ readonly localStorageLimit: pulumi.Output<number>; /** * Local storage limit of the container (in bytes). */ readonly localStorageLimitBytes: pulumi.Output<number>; /** * The maximum number of instances this container can scale to. */ readonly maxScale: pulumi.Output<number>; /** * The memory resources in MB to allocate to each container. * * > **Important:** Only one of `memoryLimit` or `memoryLimitBytes` can be set at a time. * * @deprecated Please use memoryLimitBytes instead */ readonly memoryLimit: pulumi.Output<number>; /** * The memory resources in bytes to allocate to each container. */ readonly memoryLimitBytes: pulumi.Output<number>; /** * The minimum number of container instances running continuously. */ readonly minScale: pulumi.Output<number>; /** * The unique name of the container name. * * > **Important** Updating the `name` argument will recreate the container. */ readonly name: pulumi.Output<string>; /** * The Containers namespace ID of the container. */ readonly namespaceId: pulumi.Output<string>; /** * The port to expose the container. */ readonly port: pulumi.Output<number>; /** * The privacy type defines the way to authenticate to your container. Please check our dedicated [section](https://www.scaleway.com/en/developers/api/serverless-containers/#protocol-9dd4c8). */ readonly privacy: pulumi.Output<string | undefined>; /** * The ID of the Private Network the container is connected to. * * Note that if you want to use your own configuration, you must consult our configuration [restrictions](https://www.scaleway.com/en/docs/serverless-containers/reference-content/containers-limitations/#configuration-restrictions) section. */ readonly privateNetworkId: pulumi.Output<string | undefined>; /** * The communication [protocol](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-update-an-existing-container) `http1` or `h2c`. Defaults to `http1`. */ readonly protocol: pulumi.Output<string | undefined>; /** * The native domain name of the container */ readonly publicEndpoint: pulumi.Output<string>; /** * (Defaults to provider `region`) The region in which the container was created. */ readonly region: pulumi.Output<string | undefined>; /** * The registry image address (e.g., `rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE`) * * - > **Important:** Exactly one of `image` or `registryImage` must be set. * * @deprecated Please use image instead */ readonly registryImage: pulumi.Output<string>; /** * The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. */ readonly registrySha256: pulumi.Output<string | undefined>; /** * Execution environment of the container. */ readonly sandbox: pulumi.Output<string>; /** * Configuration block used to decide when to scale up or down. Possible values: */ readonly scalingOptions: pulumi.Output<outputs.ContainerScalingOption[]>; /** * The [secret environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#secrets) of the container. */ readonly secretEnvironmentVariables: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Defines how to check if the container has started successfully. */ readonly startupProbe: pulumi.Output<outputs.ContainerStartupProbe | undefined>; /** * The container status. In case the status is different from `ready`, a warning will be displayed when Terraform reads the resource. */ readonly status: pulumi.Output<string>; /** * The list of tags associated with the container. */ readonly tags: pulumi.Output<string[] | undefined>; /** * The maximum amount of time in seconds your container can spend processing a request before being stopped. Default to `300` seconds. */ readonly timeout: pulumi.Output<number>; /** * Create a Container resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ /** @deprecated scaleway.index/container.Container has been deprecated in favor of scaleway.containers/container.Container */ constructor(name: string, args: ContainerArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Container resources. */ export interface ContainerState { /** * Arguments passed to the command specified in the `command` field. These override the default arguments from the container image, and behave like command-line parameters. */ args?: pulumi.Input<pulumi.Input<string>[] | undefined>; /** * Command executed when the container starts. This overrides the default command defined in the container image. This is usually the main executable, or entry point script to run. */ commands?: pulumi.Input<pulumi.Input<string>[] | undefined>; /** * The amount of vCPU computing resources to allocate to each container. */ cpuLimit?: pulumi.Input<number | undefined>; /** * The cron status * * @deprecated Please refer to the scaleway.containers.Trigger resource instead. */ cronStatus?: pulumi.Input<string | undefined>; /** * Boolean indicating whether the container is in a production environment. * * > **Important:** Containers are now automatically deployed and redeployed; setting this attribute will not have any effect. * * @deprecated Containers are now automatically deployed or redeployed; setting this attribute will not have any effect. */ deploy?: pulumi.Input<boolean | undefined>; /** * The description of the container. */ description?: pulumi.Input<string | undefined>; /** * The native domain name of the container * * @deprecated This attribute will be removed in the future, please use publicEndpoint instead */ domainName?: pulumi.Input<string | undefined>; /** * The [environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#environment-variables) of the container. */ environmentVariables?: pulumi.Input<{ [key: string]: pulumi.Input<string>; } | undefined>; /** * The error message of the container. */ errorMessage?: pulumi.Input<string | undefined>; /** * Health check configuration block of the container. * * @deprecated Please use livenessProbe instead */ healthChecks?: pulumi.Input<pulumi.Input<inputs.ContainerHealthCheck>[] | undefined>; /** * Allows both HTTP and HTTPS (`enabled`) or redirect HTTP to HTTPS (`redirected`). Defaults to `enabled`. * * > **Important:** Only one of `httpsConnectionsOnly` or `httpOption` can be set at a time. * * @deprecated Please use httpsConnectionsOnly instead */ httpOption?: pulumi.Input<string | undefined>; /** * Allows both HTTP and HTTPS (`false`) or redirect HTTP to HTTPS (`true`). Defaults to `false`. */ httpsConnectionsOnly?: pulumi.Input<boolean | undefined>; /** * The image address (e.g., `rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE`) */ image?: pulumi.Input<string | undefined>; /** * Defines how to check if the container is running. */ livenessProbe?: pulumi.Input<inputs.ContainerLivenessProbe | undefined>; /** * Local storage limit of the container (in MB) * * > **Important:** Only one of `localStorageLimitBytes` or `localStorageLimit` can be set at a time. * * @deprecated Please use localStorageLimitBytes instead */ localStorageLimit?: pulumi.Input<number | undefined>; /** * Local storage limit of the container (in bytes). */ localStorageLimitBytes?: pulumi.Input<number | undefined>; /** * The maximum number of instances this container can scale to. */ maxScale?: pulumi.Input<number | undefined>; /** * The memory resources in MB to allocate to each container. * * > **Important:** Only one of `memoryLimit` or `memoryLimitBytes` can be set at a time. * * @deprecated Please use memoryLimitBytes instead */ memoryLimit?: pulumi.Input<number | undefined>; /** * The memory resources in bytes to allocate to each container. */ memoryLimitBytes?: pulumi.Input<number | undefined>; /** * The minimum number of container instances running continuously. */ minScale?: pulumi.Input<number | undefined>; /** * The unique name of the container name. * * > **Important** Updating the `name` argument will recreate the container. */ name?: pulumi.Input<string | undefined>; /** * The Containers namespace ID of the container. */ namespaceId?: pulumi.Input<string | undefined>; /** * The port to expose the container. */ port?: pulumi.Input<number | undefined>; /** * The privacy type defines the way to authenticate to your container. Please check our dedicated [section](https://www.scaleway.com/en/developers/api/serverless-containers/#protocol-9dd4c8). */ privacy?: pulumi.Input<string | undefined>; /** * The ID of the Private Network the container is connected to. * * Note that if you want to use your own configuration, you must consult our configuration [restrictions](https://www.scaleway.com/en/docs/serverless-containers/reference-content/containers-limitations/#configuration-restrictions) section. */ privateNetworkId?: pulumi.Input<string | undefined>; /** * The communication [protocol](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-update-an-existing-container) `http1` or `h2c`. Defaults to `http1`. */ protocol?: pulumi.Input<string | undefined>; /** * The native domain name of the container */ publicEndpoint?: pulumi.Input<string | undefined>; /** * (Defaults to provider `region`) The region in which the container was created. */ region?: pulumi.Input<string | undefined>; /** * The registry image address (e.g., `rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE`) * * - > **Important:** Exactly one of `image` or `registryImage` must be set. * * @deprecated Please use image instead */ registryImage?: pulumi.Input<string | undefined>; /** * The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. */ registrySha256?: pulumi.Input<string | undefined>; /** * Execution environment of the container. */ sandbox?: pulumi.Input<string | undefined>; /** * Configuration block used to decide when to scale up or down. Possible values: */ scalingOptions?: pulumi.Input<pulumi.Input<inputs.ContainerScalingOption>[] | undefined>; /** * The [secret environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#secrets) of the container. */ secretEnvironmentVariables?: pulumi.Input<{ [key: string]: pulumi.Input<string>; } | undefined>; /** * Defines how to check if the container has started successfully. */ startupProbe?: pulumi.Input<inputs.ContainerStartupProbe | undefined>; /** * The container status. In case the status is different from `ready`, a warning will be displayed when Terraform reads the resource. */ status?: pulumi.Input<string | undefined>; /** * The list of tags associated with the container. */ tags?: pulumi.Input<pulumi.Input<string>[] | undefined>; /** * The maximum amount of time in seconds your container can spend processing a request before being stopped. Default to `300` seconds. */ timeout?: pulumi.Input<number | undefined>; } /** * The set of arguments for constructing a Container resource. */ export interface ContainerArgs { /** * Arguments passed to the command specified in the `command` field. These override the default arguments from the container image, and behave like command-line parameters. */ args?: pulumi.Input<pulumi.Input<string>[] | undefined>; /** * Command executed when the container starts. This overrides the default command defined in the container image. This is usually the main executable, or entry point script to run. */ commands?: pulumi.Input<pulumi.Input<string>[] | undefined>; /** * The amount of vCPU computing resources to allocate to each container. */ cpuLimit?: pulumi.Input<number | undefined>; /** * Boolean indicating whether the container is in a production environment. * * > **Important:** Containers are now automatically deployed and redeployed; setting this attribute will not have any effect. * * @deprecated Containers are now automatically deployed or redeployed; setting this attribute will not have any effect. */ deploy?: pulumi.Input<boolean | undefined>; /** * The description of the container. */ description?: pulumi.Input<string | undefined>; /** * The [environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#environment-variables) of the container. */ environmentVariables?: pulumi.Input<{ [key: string]: pulumi.Input<string>; } | undefined>; /** * Health check configuration block of the container. * * @deprecated Please use livenessProbe instead */ healthChecks?: pulumi.Input<pulumi.Input<inputs.ContainerHealthCheck>[] | undefined>; /** * Allows both HTTP and HTTPS (`enabled`) or redirect HTTP to HTTPS (`redirected`). Defaults to `enabled`. * * > **Important:** Only one of `httpsConnectionsOnly` or `httpOption` can be set at a time. * * @deprecated Please use httpsConnectionsOnly instead */ httpOption?: pulumi.Input<string | undefined>; /** * Allows both HTTP and HTTPS (`false`) or redirect HTTP to HTTPS (`true`). Defaults to `false`. */ httpsConnectionsOnly?: pulumi.Input<boolean | undefined>; /** * The image address (e.g., `rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE`) */ image?: pulumi.Input<string | undefined>; /** * Defines how to check if the container is running. */ livenessProbe?: pulumi.Input<inputs.ContainerLivenessProbe | undefined>; /** * Local storage limit of the container (in MB) * * > **Important:** Only one of `localStorageLimitBytes` or `localStorageLimit` can be set at a time. * * @deprecated Please use localStorageLimitBytes instead */ localStorageLimit?: pulumi.Input<number | undefined>; /** * Local storage limit of the container (in bytes). */ localStorageLimitBytes?: pulumi.Input<number | undefined>; /** * The maximum number of instances this container can scale to. */ maxScale?: pulumi.Input<number | undefined>; /** * The memory resources in MB to allocate to each container. * * > **Important:** Only one of `memoryLimit` or `memoryLimitBytes` can be set at a time. * * @deprecated Please use memoryLimitBytes instead */ memoryLimit?: pulumi.Input<number | undefined>; /** * The memory resources in bytes to allocate to each container. */ memoryLimitBytes?: pulumi.Input<number | undefined>; /** * The minimum number of container instances running continuously. */ minScale?: pulumi.Input<number | undefined>; /** * The unique name of the container name. * * > **Important** Updating the `name` argument will recreate the container. */ name?: pulumi.Input<string | undefined>; /** * The Containers namespace ID of the container. */ namespaceId: pulumi.Input<string>; /** * The port to expose the container. */ port?: pulumi.Input<number | undefined>; /** * The privacy type defines the way to authenticate to your container. Please check our dedicated [section](https://www.scaleway.com/en/developers/api/serverless-containers/#protocol-9dd4c8). */ privacy?: pulumi.Input<string | undefined>; /** * The ID of the Private Network the container is connected to. * * Note that if you want to use your own configuration, you must consult our configuration [restrictions](https://www.scaleway.com/en/docs/serverless-containers/reference-content/containers-limitations/#configuration-restrictions) section. */ privateNetworkId?: pulumi.Input<string | undefined>; /** * The communication [protocol](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-update-an-existing-container) `http1` or `h2c`. Defaults to `http1`. */ protocol?: pulumi.Input<string | undefined>; /** * (Defaults to provider `region`) The region in which the container was created. */ region?: pulumi.Input<string | undefined>; /** * The registry image address (e.g., `rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE`) * * - > **Important:** Exactly one of `image` or `registryImage` must be set. * * @deprecated Please use image instead */ registryImage?: pulumi.Input<string | undefined>; /** * The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. */ registrySha256?: pulumi.Input<string | undefined>; /** * Execution environment of the container. */ sandbox?: pulumi.Input<string | undefined>; /** * Configuration block used to decide when to scale up or down. Possible values: */ scalingOptions?: pulumi.Input<pulumi.Input<inputs.ContainerScalingOption>[] | undefined>; /** * The [secret environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#secrets) of the container. */ secretEnvironmentVariables?: pulumi.Input<{ [key: string]: pulumi.Input<string>; } | undefined>; /** * Defines how to check if the container has started successfully. */ startupProbe?: pulumi.Input<inputs.ContainerStartupProbe | undefined>; /** * The list of tags associated with the container. */ tags?: pulumi.Input<pulumi.Input<string>[] | undefined>; /** * The maximum amount of time in seconds your container can spend processing a request before being stopped. Default to `300` seconds. */ timeout?: pulumi.Input<number | undefined>; } //# sourceMappingURL=container.d.ts.map