@pulumiverse/scaleway
Version:
A Pulumi package for creating and managing Scaleway cloud resources.
1,536 lines • 223 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
export interface AppleSiliconServerPrivateIp {
/**
* The private IP address.
*/
address?: pulumi.Input<string | undefined>;
/**
* The ID of the IP address resource.
*/
id?: pulumi.Input<string | undefined>;
}
export interface AppleSiliconServerPrivateNetwork {
/**
* The date and time the private network was created.
*/
createdAt?: pulumi.Input<string | undefined>;
/**
* The private network ID
*/
id: pulumi.Input<string>;
/**
* A list of IPAM IP IDs to attach to the server.
*/
ipamIpIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* The current status of the private network.
*/
status?: pulumi.Input<string | undefined>;
/**
* The date and time the private network was last updated.
*/
updatedAt?: pulumi.Input<string | undefined>;
/**
* The VLAN ID associated with the private network.
*/
vlan?: pulumi.Input<number | undefined>;
}
export interface BaremetalServerIp {
/**
* The address of the IPv6.
*/
address?: pulumi.Input<string | undefined>;
/**
* The ID of the IPv6.
*/
id?: pulumi.Input<string | undefined>;
/**
* The reverse of the IPv6.
*/
reverse?: pulumi.Input<string | undefined>;
/**
* The type of the IPv6.
*/
version?: pulumi.Input<string | undefined>;
}
export interface BaremetalServerIpv4 {
/**
* The address of the IPv6.
*/
address?: pulumi.Input<string | undefined>;
/**
* The ID of the IPv6.
*/
id?: pulumi.Input<string | undefined>;
/**
* The reverse of the IPv6.
*/
reverse?: pulumi.Input<string | undefined>;
/**
* The type of the IPv6.
*/
version?: pulumi.Input<string | undefined>;
}
export interface BaremetalServerIpv6 {
/**
* The address of the IPv6.
*/
address?: pulumi.Input<string | undefined>;
/**
* The ID of the IPv6.
*/
id?: pulumi.Input<string | undefined>;
/**
* The reverse of the IPv6.
*/
reverse?: pulumi.Input<string | undefined>;
/**
* The type of the IPv6.
*/
version?: pulumi.Input<string | undefined>;
}
export interface BaremetalServerOption {
/**
* The auto expiration date for compatible options
*/
expiresAt?: pulumi.Input<string | undefined>;
/**
* The id of the option to enable. Use [this endpoint](https://www.scaleway.com/en/developers/api/elastic-metal/#path-options-list-options) to find the available options IDs.
*/
id: pulumi.Input<string>;
/**
* The name of the server.
*/
name?: pulumi.Input<string | undefined>;
}
export interface BaremetalServerPrivateIp {
/**
* The address of the IPv6.
*/
address?: pulumi.Input<string | undefined>;
/**
* The ID of the IPv6.
*/
id?: pulumi.Input<string | undefined>;
}
export interface BaremetalServerPrivateNetwork {
/**
* The date and time of the creation of the private network.
*/
createdAt?: pulumi.Input<string | undefined>;
/**
* The id of the private network to attach.
*/
id: pulumi.Input<string>;
/**
* List of IPAM IP IDs to assign to the server in the requested private network.
*/
ipamIpIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* The ID of the Server-to-Private Network mapping.
*/
mappingId?: pulumi.Input<string | undefined>;
/**
* The private network status.
*/
status?: pulumi.Input<string | undefined>;
/**
* The date and time of the last update of the private network.
*/
updatedAt?: pulumi.Input<string | undefined>;
/**
* The VLAN ID associated to the private network.
*/
vlan?: pulumi.Input<number | undefined>;
}
export interface BlockSnapshotExport {
/**
* The name of the bucket where the QCOW file will be saved.
*/
bucket: pulumi.Input<string>;
/**
* The desired key (path) for the QCOW file within the bucket.
*/
key: pulumi.Input<string>;
}
export interface BlockSnapshotImport {
/**
* The name of the bucket containing the QCOW file.
*/
bucket: pulumi.Input<string>;
/**
* The key of the QCOW file within the bucket.
*/
key: pulumi.Input<string>;
}
export interface CockpitAlertManagerContactPoint {
/**
* Email addresses for the alert receivers
*/
email?: pulumi.Input<string | undefined>;
}
export interface CockpitEndpoint {
/**
* (Deprecated) URL for the [Alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager).
*/
alertmanagerUrl?: pulumi.Input<string | undefined>;
/**
* (Deprecated) URL for Grafana.
*/
grafanaUrl?: pulumi.Input<string | undefined>;
/**
* (Deprecated) URL for [logs](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#logs) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.
*/
logsUrl?: pulumi.Input<string | undefined>;
/**
* (Deprecated) URL for [metrics](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#metric) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.
*/
metricsUrl?: pulumi.Input<string | undefined>;
/**
* (Deprecated) URL for [traces](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#traces) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.
*/
tracesUrl?: pulumi.Input<string | undefined>;
}
export interface CockpitPushUrl {
/**
* Push URL for logs (Grafana Loki)
*/
pushLogsUrl?: pulumi.Input<string | undefined>;
/**
* Push URL for metrics (Grafana Mimir)
*/
pushMetricsUrl?: pulumi.Input<string | undefined>;
}
export interface CockpitTokenScopes {
/**
* Permission to query logs.
*/
queryLogs?: pulumi.Input<boolean | undefined>;
/**
* Permission to query metrics.
*/
queryMetrics?: pulumi.Input<boolean | undefined>;
/**
* Permission to query traces.
*/
queryTraces?: pulumi.Input<boolean | undefined>;
/**
* Permission to set up alerts.
*/
setupAlerts?: pulumi.Input<boolean | undefined>;
/**
* Permission to set up logs rules.
*/
setupLogsRules?: pulumi.Input<boolean | undefined>;
/**
* Permission to set up metrics rules.
*/
setupMetricsRules?: pulumi.Input<boolean | undefined>;
/**
* Permission to write logs.
*/
writeLogs?: pulumi.Input<boolean | undefined>;
/**
* Permission to write metrics.
*/
writeMetrics?: pulumi.Input<boolean | undefined>;
/**
* Permission to write traces.
*/
writeTraces?: pulumi.Input<boolean | undefined>;
}
export interface ContainerHealthCheck {
/**
* Number of consecutive health check failures before considering the container unhealthy.
*/
failureThreshold?: pulumi.Input<number | undefined>;
/**
* HTTP health check configuration.
*/
https?: pulumi.Input<pulumi.Input<inputs.ContainerHealthCheckHttp>[] | undefined>;
/**
* Period between health checks (in seconds).
*
* > **Important:** Only one of `livenessProbe` or `healthCheck` can be set at a time.
*/
interval?: pulumi.Input<string | undefined>;
/**
* When set to `true`, performs TCP checks on the container.
*/
tcp?: pulumi.Input<boolean | undefined>;
}
export interface ContainerHealthCheckHttp {
/**
* Path to use for the HTTP health check.
*/
path?: pulumi.Input<string | undefined>;
}
export interface ContainerLivenessProbe {
/**
* Number of consecutive failures before considering the container has to be restarted.
*/
failureThreshold: pulumi.Input<number>;
/**
* Perform HTTP check on the container with the specified path.
*/
http?: pulumi.Input<inputs.ContainerLivenessProbeHttp | undefined>;
/**
* Time interval between checks (in duration notation, e.g. "30s").
*/
interval: pulumi.Input<string>;
/**
* When set to `true`, performs TCP checks on the container.
*/
tcp?: pulumi.Input<boolean | 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<string>;
}
export interface ContainerLivenessProbeHttp {
/**
* Path to use for the HTTP health check.
*/
path: pulumi.Input<string>;
}
export interface ContainerScalingOption {
/**
* Scale depending on the number of concurrent requests being processed per container instance.
*/
concurrentRequestsThreshold?: pulumi.Input<number | undefined>;
/**
* Scale depending on the CPU usage of a container instance.
*/
cpuUsageThreshold?: pulumi.Input<number | undefined>;
/**
* Scale depending on the memory usage of a container instance.
*/
memoryUsageThreshold?: pulumi.Input<number | undefined>;
}
export interface ContainerStartupProbe {
/**
* Number of consecutive failures before considering the container has to be restarted.
*/
failureThreshold: pulumi.Input<number>;
/**
* Perform HTTP check on the container with the specified path.
*/
http?: pulumi.Input<inputs.ContainerStartupProbeHttp | undefined>;
/**
* Time interval between checks (in duration notation, e.g. "30s").
*/
interval: pulumi.Input<string>;
/**
* When set to `true`, performs TCP checks on the container.
*/
tcp?: pulumi.Input<boolean | 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<string>;
}
export interface ContainerStartupProbeHttp {
/**
* Path to use for the HTTP health check.
*/
path: pulumi.Input<string>;
}
export interface ContainerTriggerCron {
/**
* Body to send to the container when the trigger is invoked.
*/
body?: pulumi.Input<string | undefined>;
/**
* Additional headers to send to the container when the trigger is invoked.
*/
headers?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
} | undefined>;
/**
* UNIX cron schedule to run job (e.g., "* * * * *").
*/
schedule: pulumi.Input<string>;
/**
* Timezone for the cron schedule, in tz database format (e.g., "Europe/Paris").
*/
timezone: pulumi.Input<string>;
}
export interface ContainerTriggerDestinationConfig {
/**
* The HTTP method to use when sending the request (e.g., get, post, put, patch, delete).
*/
httpMethod: pulumi.Input<string>;
/**
* The HTTP path to send the request to (e.g., "/my-webhook-endpoint").
*/
httpPath: pulumi.Input<string>;
}
export interface ContainerTriggerNats {
/**
* unique identifier of the Messaging and Queuing NATS account.
*/
accountId?: pulumi.Input<string | undefined>;
/**
* The content of the NATS credentials file that will be used to authenticate with the NATS server and subscribe to the specified subject.
*/
credentialsFileContent: pulumi.Input<string>;
/**
* The ID of the project that contains the Messaging and Queuing NATS account (defaults to provider `projectId`)
*/
projectId?: pulumi.Input<string | undefined>;
/**
* Region where the Messaging and Queuing NATS account is enabled (defaults to provider `region`)
*/
region?: pulumi.Input<string | undefined>;
/**
* The list of URLs of the NATS server (e.g., "nats://nats.mnq.fr-par.scaleway.com:4222").
*/
serverUrls: pulumi.Input<pulumi.Input<string>[]>;
/**
* NATS subject to subscribe to (e.g., \"my-subject\")."
*/
subject: pulumi.Input<string>;
}
export interface ContainerTriggerSqs {
/**
* The access key for accessing the SQS queue.
*/
accessKey: pulumi.Input<string>;
/**
* Endpoint URL to use to access SQS (e.g., <https://sqs.mnq.fr-par.scaleway.com>).
*/
endpoint: pulumi.Input<string>;
/**
* The ID of the project in which SQS is enabled, (defaults to provider `projectId`)
*/
projectId?: pulumi.Input<string | undefined>;
/**
* The name of the SQS queue. This argument is no longer supported.
*
* @deprecated This field is no longer supported, please use queueUrl instead to identify the queue.
*/
queue?: pulumi.Input<string | undefined>;
/**
* The URL of the SQS queue to monitor for messages.
*/
queueUrl: pulumi.Input<string>;
/**
* Region where SQS is enabled (defaults to provider `region`)
*/
region?: pulumi.Input<string | undefined>;
/**
* The secret key for accessing the SQS queue.
*/
secretKey: pulumi.Input<string>;
}
export interface DatabaseAclAclRule {
/**
* A text describing this rule. Default description: `IP allowed`
*/
description?: pulumi.Input<string | undefined>;
/**
* The IPv4 address or range to whitelist in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation). IPv6 is not supported by the Scaleway API.
*/
ip: pulumi.Input<string>;
}
export interface DatabaseInstanceLoadBalancer {
/**
* The ID of the endpoint.
*/
endpointId?: pulumi.Input<string | undefined>;
/**
* Hostname of the endpoint.
*/
hostname?: pulumi.Input<string | undefined>;
/**
* IPv4 address on the network.
*/
ip?: pulumi.Input<string | undefined>;
/**
* The name of the Database Instance.
*/
name?: pulumi.Input<string | undefined>;
/**
* Port in the Private Network.
*/
port?: pulumi.Input<number | undefined>;
}
export interface DatabaseInstanceLogsPolicy {
/**
* The max age (in days) of remote logs to keep on the Database Instance
*/
maxAgeRetention?: pulumi.Input<number | undefined>;
/**
* The max disk size of remote logs to keep on the Database Instance.
*/
totalDiskRetention?: pulumi.Input<number | undefined>;
}
export interface DatabaseInstanceMaintenance {
/**
* Closed maintenance date.
*/
closedAt?: pulumi.Input<string | undefined>;
/**
* Time when Scaleway-side maintenance will be applied.
*/
forcedAt?: pulumi.Input<string | undefined>;
/**
* Whether the maintenance can be applied by the user.
*/
isApplicable?: pulumi.Input<boolean | undefined>;
/**
* Maintenance information message.
*/
reason?: pulumi.Input<string | undefined>;
/**
* Start date of the maintenance window.
*/
startsAt?: pulumi.Input<string | undefined>;
/**
* Status of the maintenance (`pending`, `ongoing`, `done`, `canceled`, `unknown`).
*/
status?: pulumi.Input<string | undefined>;
/**
* End date of the maintenance window.
*/
stopsAt?: pulumi.Input<string | undefined>;
}
export interface DatabaseInstancePrivateIp {
/**
* The private IPv4 address.
*/
address?: pulumi.Input<string | undefined>;
/**
* Version ID to use in upgrade requests.
*/
id?: pulumi.Input<string | undefined>;
}
export interface DatabaseInstancePrivateNetwork {
/**
* Whether or not the private network endpoint should be configured with IPAM
*/
enableIpam?: pulumi.Input<boolean | undefined>;
/**
* The ID of the endpoint.
*/
endpointId?: pulumi.Input<string | undefined>;
/**
* Hostname of the endpoint.
*/
hostname?: pulumi.Input<string | undefined>;
/**
* IPv4 address on the network.
*/
ip?: pulumi.Input<string | undefined>;
/**
* The IP with the given mask within the private subnet
*/
ipNet?: pulumi.Input<string | undefined>;
/**
* The name of the Database Instance.
*/
name?: pulumi.Input<string | undefined>;
/**
* The private network ID
*/
pnId: pulumi.Input<string>;
/**
* Port in the Private Network.
*/
port?: pulumi.Input<number | undefined>;
/**
* The zone you want to attach the resource to
*/
zone?: pulumi.Input<string | undefined>;
}
export interface DatabaseInstanceReadReplica {
/**
* IPv4 address on the network.
*/
ip?: pulumi.Input<string | undefined>;
/**
* The name of the Database Instance.
*/
name?: pulumi.Input<string | undefined>;
/**
* Port in the Private Network.
*/
port?: pulumi.Input<number | undefined>;
}
export interface DatabaseInstanceUpgradableVersion {
/**
* Version ID to use in upgrade requests.
*/
id?: pulumi.Input<string | undefined>;
/**
* Minor version string (e.g., `15.5.0`).
*/
minorVersion?: pulumi.Input<string | undefined>;
/**
* The name of the Database Instance.
*/
name?: pulumi.Input<string | undefined>;
/**
* Version string (e.g., `15.5`).
*/
version?: pulumi.Input<string | undefined>;
}
export interface DatabaseReadReplicaDirectAccess {
/**
* The ID of the endpoint of the Read Replica.
*/
endpointId?: pulumi.Input<string | undefined>;
/**
* Hostname of the endpoint. Only one of IP and hostname may be set.
*/
hostname?: pulumi.Input<string | undefined>;
/**
* IPv4 address of the endpoint (IP address). Only one of IP and hostname may be set.
*/
ip?: pulumi.Input<string | undefined>;
/**
* Name of the endpoint.
*/
name?: pulumi.Input<string | undefined>;
/**
* TCP port of the endpoint.
*/
port?: pulumi.Input<number | undefined>;
}
export interface DatabaseReadReplicaPrivateNetwork {
/**
* If true, the IP network address within the private subnet is determined by the IP Address Management (IPAM) service.
*
* > **Important:** One of `serviceIp` or `enable_ipam=true` must be set.
*/
enableIpam?: pulumi.Input<boolean | undefined>;
/**
* The ID of the endpoint of the Read Replica.
*/
endpointId?: pulumi.Input<string | undefined>;
/**
* Hostname of the endpoint. Only one of IP and hostname may be set.
*/
hostname?: pulumi.Input<string | undefined>;
/**
* IPv4 address of the endpoint (IP address). Only one of IP and hostname may be set.
*/
ip?: pulumi.Input<string | undefined>;
/**
* Name of the endpoint.
*/
name?: pulumi.Input<string | undefined>;
/**
* TCP port of the endpoint.
*/
port?: pulumi.Input<number | undefined>;
/**
* UUID of the Private Netork to be connected to the Read Replica.
*/
privateNetworkId: pulumi.Input<string>;
/**
* The IP network address within the private subnet. This must be an IPv4 address with a CIDR notation. If not set, The IP network address within the private subnet is determined by the IP Address Management (IPAM) service.
*/
serviceIp?: pulumi.Input<string | undefined>;
/**
* Private network zone
*/
zone?: pulumi.Input<string | undefined>;
}
export interface DomainRecordGeoIp {
/**
* The list of matches
*/
matches: pulumi.Input<pulumi.Input<inputs.DomainRecordGeoIpMatch>[]>;
}
export interface DomainRecordGeoIpMatch {
/**
* List of continents (eg: EU for Europe, NA for North America, AS for Asia...). List of all continents code: https://api.scaleway.com/domain-private/v2beta1/continents
*/
continents?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* List of countries (eg: FR for France, US for the United States, GB for Great Britain...). List of all countries code: https://api.scaleway.com/domain-private/v2beta1/countries
*/
countries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).
*/
data: pulumi.Input<string>;
}
export interface DomainRecordHttpService {
/**
* IPs to check
*/
ips: pulumi.Input<pulumi.Input<string>[]>;
/**
* Text to search
*/
mustContain: pulumi.Input<string>;
/**
* Strategy to return an IP from the IPs list
*/
strategy: pulumi.Input<string>;
/**
* URL to match the mustContain text to validate an IP
*/
url: pulumi.Input<string>;
/**
* User-agent used when checking the URL
*/
userAgent?: pulumi.Input<string | undefined>;
}
export interface DomainRecordView {
/**
* The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).
*/
data: pulumi.Input<string>;
/**
* The subnet of the view
*/
subnet: pulumi.Input<string>;
}
export interface DomainRecordWeighted {
/**
* The weighted IP
*/
ip: pulumi.Input<string>;
/**
* The weight of the IP
*/
weight: pulumi.Input<number>;
}
export interface EdgeServicesBackendStageContainerBackendConfig {
/**
* The ID of the Serverless Container.
*/
containerId: pulumi.Input<string>;
/**
* `region`) The region of the Serverless Container.
*/
region?: pulumi.Input<string | undefined>;
}
export interface EdgeServicesBackendStageFunctionBackendConfig {
/**
* The ID of the Serverless Function.
*/
functionId: pulumi.Input<string>;
/**
* `region`) The region of the Serverless Function.
*/
region?: pulumi.Input<string | undefined>;
}
export interface EdgeServicesBackendStageLbBackendConfig {
/**
* The Load Balancer config.
*/
lbConfig?: pulumi.Input<inputs.EdgeServicesBackendStageLbBackendConfigLbConfig | undefined>;
}
export interface EdgeServicesBackendStageLbBackendConfigLbConfig {
/**
* The Fully Qualified Domain Name (in the format subdomain.example.com) to use in HTTP requests sent towards your Load Balancer.
*/
domainName?: pulumi.Input<string | undefined>;
/**
* The ID of the frontend.
*/
frontendId?: pulumi.Input<string | undefined>;
/**
* Defines whether to forward websocket requests to the load balancer.
*/
hasWebsocket?: pulumi.Input<boolean | undefined>;
/**
* The ID of the Load Balancer.
*/
id?: pulumi.Input<string | undefined>;
/**
* Defines whether the Load Balancer's frontend handles SSL connections.
*/
isSsl?: pulumi.Input<boolean | undefined>;
/**
* `zone`) The zone of the Load Balancer.
*/
zone?: pulumi.Input<string | undefined>;
}
export interface EdgeServicesBackendStageS3BackendConfig {
/**
* The name of the Bucket.
*/
bucketName?: pulumi.Input<string | undefined>;
/**
* The region of the Bucket.
*/
bucketRegion?: pulumi.Input<string | undefined>;
/**
* Defines whether the bucket website feature is enabled.
*/
isWebsite?: pulumi.Input<boolean | undefined>;
}
export interface EdgeServicesCacheStagePurgeRequest {
/**
* Defines whether to purge all content.
*/
all?: pulumi.Input<boolean | undefined>;
/**
* The list of asserts to purge.
*/
assets?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* The pipeline ID in which the purge request will be created.
*/
pipelineId?: pulumi.Input<string | undefined>;
}
export interface EdgeServicesRouteStageRule {
/**
* The ID of the backend stage that requests matching the rule should be forwarded to. Conflicts with `wafStageId` within the same rule.
*/
backendStageId?: pulumi.Input<string | undefined>;
/**
* The rule condition to be matched. Requests matching the condition defined here will be forwarded to the stage specified by `backendStageId` or `wafStageId`. Requests that do not match will be checked by the next rule's condition.
*/
ruleHttpMatch?: pulumi.Input<inputs.EdgeServicesRouteStageRuleRuleHttpMatch | undefined>;
/**
* The ID of the WAF stage that requests matching the rule should be forwarded to. Conflicts with `backendStageId` within the same rule.
*/
wafStageId?: pulumi.Input<string | undefined>;
}
export interface EdgeServicesRouteStageRuleRuleHttpMatch {
/**
* Host to filter for. A request whose host matches the given filter will be considered to match the rule. All hosts will match if none is provided.
*/
hostFilter?: pulumi.Input<inputs.EdgeServicesRouteStageRuleRuleHttpMatchHostFilter | undefined>;
/**
* HTTP methods to filter for. A request using any of these methods will be considered to match the rule. Possible values are `get`, `post`, `put`, `patch`, `delete`, `head`, `options`. All methods will match if none is provided.
*/
methodFilters?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* HTTP URL path to filter for. A request whose path matches the given filter will be considered to match the rule. All paths will match if none is provided.
*/
pathFilter?: pulumi.Input<inputs.EdgeServicesRouteStageRuleRuleHttpMatchPathFilter | undefined>;
}
export interface EdgeServicesRouteStageRuleRuleHttpMatchHostFilter {
/**
* The type of filter to match for the host. Use the `regex` type.
*/
hostFilterType: pulumi.Input<string>;
/**
* The value to be matched for the host.
*/
value: pulumi.Input<string>;
}
export interface EdgeServicesRouteStageRuleRuleHttpMatchPathFilter {
/**
* The type of filter to match for the HTTP URL path. For now, all path filters must be written in regex and use the `regex` type.
*/
pathFilterType: pulumi.Input<string>;
/**
* The value to be matched for the HTTP URL path.
*/
value: pulumi.Input<string>;
}
export interface EdgeServicesTlsStageSecret {
/**
* The region of the secret.
*/
region?: pulumi.Input<string | undefined>;
/**
* The ID of the Secret
*/
secretId?: pulumi.Input<string | undefined>;
}
export interface FunctionTriggerNats {
/**
* unique identifier of the Messaging and Queuing NATS account.
*/
accountId?: pulumi.Input<string | undefined>;
/**
* THe ID of the project that contains the Messaging and Queuing NATS account (defaults to provider `projectId`)
*/
projectId?: pulumi.Input<string | undefined>;
/**
* Region where the Messaging and Queuing NATS account is enabled (defaults to provider `region`)
*/
region?: pulumi.Input<string | undefined>;
/**
* The subject to listen to.
*/
subject: pulumi.Input<string>;
}
export interface FunctionTriggerSqs {
/**
* ID of the Messaging and Queuing namespace. This argument is deprecated.
*
* @deprecated The 'namespace_id' field is deprecated and will be removed in the next major version. It is no longer necessary to specify it
*/
namespaceId?: pulumi.Input<string | undefined>;
/**
* The ID of the project in which SQS is enabled, (defaults to provider `projectId`)
*/
projectId?: pulumi.Input<string | undefined>;
/**
* The name of the SQS queue.
*/
queue: pulumi.Input<string>;
/**
* Region where SQS is enabled (defaults to provider `region`)
*/
region?: pulumi.Input<string | undefined>;
}
export interface GetIpamIpResource {
/**
* The ID of the resource that the IP is attached to.
*/
id?: string;
/**
* The name of the resource the IP is attached to.
*/
name?: string;
/**
* The type of the resource the IP is attached to. [Documentation](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/ipam/v1#pkg-constants) with type list.
*/
type: string;
}
export interface GetIpamIpResourceArgs {
/**
* The ID of the resource that the IP is attached to.
*/
id?: pulumi.Input<string | undefined>;
/**
* The name of the resource the IP is attached to.
*/
name?: pulumi.Input<string | undefined>;
/**
* The type of the resource the IP is attached to. [Documentation](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/ipam/v1#pkg-constants) with type list.
*/
type: pulumi.Input<string>;
}
export interface GetIpamIpsResource {
/**
* The ID of the attached resource.
*/
id?: string;
/**
* The name of the attached resource.
*/
name?: string;
/**
* The type of the attached resource. [Documentation](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/ipam/v1#pkg-constants) with type list.
*/
type: string;
}
export interface GetIpamIpsResourceArgs {
/**
* The ID of the attached resource.
*/
id?: pulumi.Input<string | undefined>;
/**
* The name of the attached resource.
*/
name?: pulumi.Input<string | undefined>;
/**
* The type of the attached resource. [Documentation](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/ipam/v1#pkg-constants) with type list.
*/
type: pulumi.Input<string>;
}
export interface IamPolicyRule {
/**
* The condition of the rule.
*
* **_TIP:_** You can use the Scaleway CLI to list the permissions details. e.g:
*
* ```shell
* scw iam permission-set list
* ```
*/
condition?: pulumi.Input<string | undefined>;
/**
* ID of organization scoped to the rule, this can be used to create a rule for all projects in an organization.
*/
organizationId?: pulumi.Input<string | undefined>;
/**
* Names of permission sets bind to the rule.
*/
permissionSetNames: pulumi.Input<pulumi.Input<string>[]>;
/**
* List of project IDs scoped to the rule.
*
* > **Important** One `organizationId` or `projectIds` must be set per rule.
*/
projectIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
export interface InferenceDeploymentPrivateEndpoint {
/**
* Disable the authentication on the endpoint.
*/
disableAuth?: pulumi.Input<boolean | undefined>;
/**
* (Optional) The id of the public endpoint.
*/
id?: pulumi.Input<string | undefined>;
/**
* The ID of the private network to use.
*/
privateNetworkId?: pulumi.Input<string | undefined>;
/**
* (Optional) The URL of the endpoint.
*/
url?: pulumi.Input<string | undefined>;
}
export interface InferenceDeploymentPrivateIp {
/**
* The private IPv4 address.
*/
address?: pulumi.Input<string | undefined>;
/**
* (Optional) The id of the public endpoint.
*/
id?: pulumi.Input<string | undefined>;
}
export interface InferenceDeploymentPublicEndpoint {
/**
* Disable the authentication on the endpoint.
*/
disableAuth?: pulumi.Input<boolean | undefined>;
/**
* (Optional) The id of the public endpoint.
*/
id?: pulumi.Input<string | undefined>;
/**
* Enable or disable public endpoint.
*/
isEnabled?: pulumi.Input<boolean | undefined>;
/**
* (Optional) The URL of the endpoint.
*/
url?: pulumi.Input<string | undefined>;
}
export interface InstanceImageAdditionalVolume {
/**
* ID of the server containing the volume.
*/
id?: pulumi.Input<string | undefined>;
/**
* The name of the image. If not provided it will be randomly generated.
*/
name?: pulumi.Input<string | undefined>;
/**
* Description of the server containing the volume (in case the image is a backup from a server).
*/
server?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
} | undefined>;
/**
* The size of the volume.
*/
size?: pulumi.Input<number | undefined>;
/**
* A list of tags to apply to the image.
*/
tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* The type of volume, possible values are `lSsd` and `sbsSnapshot`.
*/
volumeType?: pulumi.Input<string | undefined>;
}
export interface InstanceImageRootVolume {
/**
* ID of the server containing the volume.
*/
id?: pulumi.Input<string | undefined>;
/**
* The name of the image. If not provided it will be randomly generated.
*/
name?: pulumi.Input<string | undefined>;
/**
* The size of the volume.
*/
size?: pulumi.Input<number | undefined>;
/**
* The type of volume, possible values are `lSsd` and `sbsSnapshot`.
*/
volumeType?: pulumi.Input<string | undefined>;
}
export interface InstancePrivateNicPrivateIp {
/**
* The private IP address.
*/
address?: pulumi.Input<string | undefined>;
/**
* The ID of the IP address resource.
*/
id?: pulumi.Input<string | undefined>;
}
export interface InstanceSecurityGroupInboundRule {
/**
* The action to take when rule match. Possible values are: `accept` or `drop`.
*/
action: pulumi.Input<string>;
/**
* The ip this rule apply to. If no `ip` nor `ipRange` are specified, rule will apply to all ip. Only one of `ip` and `ipRange` should be specified.
*
* @deprecated Ip address is deprecated. Please use ipRange instead
*/
ip?: pulumi.Input<string | undefined>;
/**
* The ip range (e.g `192.168.1.0/24`) this rule applies to. If no `ip` nor `ipRange` are specified, rule will apply to all ip. Only one of `ip` and `ipRange` should be specified.
*/
ipRange?: pulumi.Input<string | undefined>;
/**
* The port this rule applies to. If no `port` nor `portRange` are specified, the rule will apply to all port. Only one of `port` and `portRange` should be specified.
*/
port?: pulumi.Input<number | undefined>;
/**
* Need terraform >= 0.13.0 (Optional) The port range (e.g `22-23`) this rule applies to.
* If no `port` nor `portRange` are specified, rule will apply to all port.
* Only one of `port` and `portRange` should be specified.
*/
portRange?: pulumi.Input<string | undefined>;
/**
* The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`.
*/
protocol?: pulumi.Input<string | undefined>;
}
export interface InstanceSecurityGroupOutboundRule {
/**
* Action when rule match request (drop or accept)
*/
action: pulumi.Input<string>;
/**
* Ip address for this rule (e.g: 1.1.1.1). Only one of ip or ipRange should be provided
*
* @deprecated Ip address is deprecated. Please use ipRange instead
*/
ip?: pulumi.Input<string | undefined>;
/**
* Ip range for this rule (e.g: 192.168.1.0/24). Only one of ip or ipRange should be provided
*/
ipRange?: pulumi.Input<string | undefined>;
/**
* Network port for this rule
*/
port?: pulumi.Input<number | undefined>;
/**
* Computed port range for this rule (e.g: 1-1024, 22-22)
*/
portRange?: pulumi.Input<string | undefined>;
/**
* Protocol for this rule (TCP, UDP, ICMP or ANY)
*/
protocol?: pulumi.Input<string | undefined>;
}
export interface InstanceSecurityGroupRulesInboundRule {
/**
* The action to take when rule match. Possible values are: `accept` or `drop`.
*/
action: pulumi.Input<string>;
/**
* The ip this rule apply to. If no `ip` nor `ipRange` are specified, rule will apply to all ip. Only one of `ip` and `ipRange` should be specified.
*
* @deprecated Ip address is deprecated. Please use ipRange instead
*/
ip?: pulumi.Input<string | undefined>;
/**
* The ip range (e.g `192.168.1.0/24`) this rule applies to. If no `ip` nor `ipRange` are specified, rule will apply to all ip. Only one of `ip` and `ipRange` should be specified.
*/
ipRange?: pulumi.Input<string | undefined>;
/**
* The port this rule apply to. If no port is specified, rule will apply to all port.
*/
port?: pulumi.Input<number | undefined>;
/**
* Need terraform >= 0.13.0 (Optional) The port range (e.g `22-23`) this rule applies to.
* If no `port` nor `portRange` are specified, rule will apply to all port.
* Only one of `port` and `portRange` should be specified.
*/
portRange?: pulumi.Input<string | undefined>;
/**
* The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`.
*/
protocol?: pulumi.Input<string | undefined>;
}
export interface InstanceSecurityGroupRulesOutboundRule {
/**
* Action when rule match request (drop or accept)
*/
action: pulumi.Input<string>;
/**
* Ip address for this rule (e.g: 1.1.1.1). Only one of ip or ipRange should be provided
*
* @deprecated Ip address is deprecated. Please use ipRange instead
*/
ip?: pulumi.Input<string | undefined>;
/**
* Ip range for this rule (e.g: 192.168.1.0/24). Only one of ip or ipRange should be provided
*/
ipRange?: pulumi.Input<string | undefined>;
/**
* Network port for this rule
*/
port?: pulumi.Input<number | undefined>;
/**
* Computed port range for this rule (e.g: 1-1024, 22-22)
*/
portRange?: pulumi.Input<string | undefined>;
/**
* Protocol for this rule (TCP, UDP, ICMP or ANY)
*/
protocol?: pulumi.Input<string | undefined>;
}
export interface InstanceServerFilesystem {
/**
* The unique ID of the filesystem attached to the server.
*/
filesystemId?: pulumi.Input<string | undefined>;
/**
* The state of the filesystem
*/
status?: pulumi.Input<string | undefined>;
}
export interface InstanceServerPrivateIp {
/**
* The private IP address.
*/
address?: pulumi.Input<string | undefined>;
/**
* The ID of the IP address resource.
*/
id?: pulumi.Input<string | undefined>;
}
export interface InstanceServerPrivateNetwork {
/**
* MAC address of the NIC
*/
macAddress?: pulumi.Input<string | undefined>;
/**
* The Private Network ID
*/
pnId: pulumi.Input<string>;
/**
* The ID of the NIC
*/
pnicId?: pulumi.Input<string | undefined>;
/**
* The private NIC state
*/
status?: pulumi.Input<string | undefined>;
/**
* `zone`) The zone in which the server should be created.
*/
zone?: pulumi.Input<string | undefined>;
}
export interface InstanceServerPublicIp {
/**
* The address of the IP.
*/
address?: pulumi.Input<string | undefined>;
/**
* Whether the IP is dynamic.
*/
dynamic?: pulumi.Input<boolean | undefined>;
/**
* The IP address' family.
*/
family?: pulumi.Input<string | undefined>;
/**
* The IP of the Gateway associated with the IP.
*/
gateway?: pulumi.Input<string | undefined>;
/**
* The ID of the IP.
*/
id?: pulumi.Input<string | undefined>;
/**
* The CIDR netmask of the IP.
*/
netmask?: pulumi.Input<string | undefined>;
/**
* The provisioning mode of the IP
*/
provisioningMode?: pulumi.Input<string | undefined>;
}
export interface InstanceServerRootVolume {
/**
* Set the volume where the boot the server
*/
boot?: pulumi.Input<boolean | undefined>;
/**
* Forces deletion of the root volume on instance termination.
*/
deleteOnTermination?: pulumi.Input<boolean | undefined>;
/**
* Name of the root volume.
*/
name?: pulumi.Input<string | undefined>;
/**
* Choose IOPS of your sbs volume, has to be used with `sbsVolume` for root volume type.
*
* > **Important:** It is not possible to change `root_volume.size_in_gb` for local volumes (`lSsd`). Changes to this field will recreate the server.
* It is possible to increase `root_volume.size_in_gb` for SBS volumes, but they cannot be resized down without recreating the server.
*/
sbsIops?: pulumi.Input<number | undefined>;
/**
* Size of the root volume in gigabytes.
* To find the right size use [this endpoint](https://www.scaleway.com/en/developers/api/instance/#path-instances-list-all-instances) and
* check the `volumes_constraint.{min|max}_size` (in bytes) for your `commercialType`.
* Depending on `volumeType`, updates to this field may recreate a new resource.
*/
sizeInGb?: pulumi.Input<number | undefined>;
/**
* The volume ID of the root volume of the server, allows you to create server with an existing volume. If empty, will be computed to a created volume ID.
*/
volumeId?: pulumi.Input<string | undefined>;
/**
* Volume type of root volume, can be `lSsd` or `sbsVolume`, default value depends on server type
*/
volumeType?: pulumi.Input<string | undefined>;
}
export interface InstanceSnapshotImport {
/**
* Bucket name containing [qcow2](https://en.wikipedia.org/wiki/Qcow) to import
*/
bucket: pulumi.Input<string>;
/**
* Key of the object to import
*/
key: pulumi.Input<string>;
}
export interface IotDeviceCertificate {
/**
* X509 PEM encoded certificate of the device
*/
crt?: pulumi.Input<string | undefined>;
/**
* The private key of the device, in case it is generated by Scaleway.
*/
key?: pulumi.Input<string | undefined>;
}
export interface IotDeviceMessageFilters {
/**
* Rules used to restrict topics the device can publish to.
*/
publish?: pulumi.Input<inputs.IotDeviceMessageFiltersPublish | undefined>;
/**
* Rules used to restrict topics the device can subscribe to.
*/
subscribe?: pulumi.Input<inputs.IotDeviceMessageFiltersSubscribe | undefined>;
}
export interface IotDeviceMessageFiltersPublish {
/**
* Filtering policy (eg `accept` or `reject`)
*/
policy?: pulumi.Input<string | undefined>;
/**
* List of topics to match (eg `foo/bar/+/baz/#`)
*/
topics?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
export interface IotDeviceMessageFiltersSubscribe {
/**
* Same as publish rules.
*/
policy?: pulumi.Input<string | undefined>;
/**
* Same as publish rules.
*
* - `certificate.crt` - (Optional) The certificate of the device, either generated by Scaleway or provided.
*
* > **Important:** Updates to `certificate.crt` will disconnect connected devices and the previous certificate will be deleted and won't be recoverable.
*/
topics?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
export interface IotRouteDatabase {
/**
* The database name (e.g. `measurements`).
*/
dbname: pulumi.Input<string>;
/**
* The database hostname. Can be an IP or a FQDN.
*/
host: pulumi.Input<string>;
/**
* The database password.
*/
password: pulumi.Input<string>;
/**
* The database port (e.g. `5432`)
*/
port: pulumi.Input<number>;
/**
* The SQL query that will be executed when receiving a message ($TOPIC and $PAYLOAD variables are available, see documentation, e.g. `INSERT INTO mytable(date, topic, value) VALUES (NOW(), $TOPIC, $PAYLOAD)`).
*/
query: pulumi.Input<string>;
/**
* The database username.
*/
username: pulumi.Input<string>;
}
export interface IotRouteRest {
/**
* a map of the extra headers to send with the HTTP call (e.g. `X-Header = Value`).
*/
headers: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The URI of the Rest endpoint (e.g. `https://internal.mycompany.com/ingest/mqttdata`).
*/
uri: pulumi.Input<string>;
/**
* The HTTP Verb used to call Rest URI (e.g. `post`).
*/
verb: pulumi.Input<string>;
}
export interface IotRouteS3 {
/**
* The name of the S3 route's destination bucket (e.g. `my-object-storage`).
*/
bucketName: pulumi.Input<string>;
/**
* The region of the S3 route's destination bucket (e.g. `fr-par`).
*/
bucketRegion: pulumi.Input<string>;
/**
* The string to prefix object names with (e.g. `mykeyprefix-`).
*/
objectPrefix?: pulumi.Input<string | undefined>;
/**
* How the S3 route's objects will be created (e.g. `perTopic`). See [documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for behaviour details.
*/
strategy: pulumi.Input<string>;
}
export interface IpamIpCustomResource {
/**
* The MAC address of the custom resource.
*/
macAddress: pulumi.Input<string>;
/**
* When the resource is in a Private Network, a DNS record is available to resolve the resource name.
*/
name?: pulumi.Input<string | undefined>;
}
export interface IpamIpResource {
/**
* The ID of the resource that the IP is attached to.
*/
id?: pulumi.Input<string | undefined>;
/**
* The MAC address of the resource the IP is attached to.
*/
macAddress?: pulumi.Input<string | undefined>;
/**
* The name of the resource the IP is attached to.
*/
name?: pulumi.Input<string | undefined>;
/**
* The type of resource the IP is attached to.
*/
type?: pulumi.Input<string | undefined>;
}
export interface IpamIpReverse {
/**
* Request a specific IP in the specified source pool.
*
* > **Important:** when requesting specific IP addresses, it is best ensure these are created before any other resource in the Private Network. This can be achieved by using `dependsOn` relations, or moving the declarations to another Terraform module. Otherwise, other resources may take the requested address first, blocking the whole Terraform setup. Static IPs should be avoided unless necessary, as we cannot guarantee full automation. We recommend to use DNS, or to not request a specific IP.
*/
address?: pulumi.Input<string | undefined>;
/**
* The reverse domain name.
*/
hostname?: pulumi.Input<string | undefined>;
}
export interface IpamIpSource {
/**
* The Private Network of the IP (if the IP is a private IP).
*/
privateNetworkId?: pulumi.Input<string | undefined>;
/**
* The Private Network subnet of the IP (if the IP is a private IP).
*/
subnetId?: pulumi.Input<string | undefined>;
/**
* The zone of the IP (if the IP is public and zoned, rather than private and/or regional)
*/
zonal?: pulumi.Input<string | undefined>;
}
export interface JobDefinitionCron {
/**
* Cron format string.
*/
schedule: pulumi.Input<string>;
/**
* The timezone, must be a canonical TZ identifier as found in this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
*/
timezone: pulumi.Input<string>;
}
export interface JobDefinitionRetryPolicy {
/**
* The maximum number of retries upon job failure.
*/
maxRetries?: pulumi.Input<number | undefined>;
}
export interface JobDefinitionSecretReference {
/**
* An environment variable containing the secret value. Must be specified if `file` is not specified.
*/
environment?: pulumi.Input<string | undefined>;
/**
* The absolute file path where the secret will be mounted. Must be specified if `environment` is not specified.
*/
file?: pulumi.Input<string | undefined>;
/**
* The secret unique identifier, it could be formatted as region/UUID or UUID. In case the region is passed, it must be the same as the job definition. You could reference the same secret multiple times in the same job definition.
*/
secretId: pulumi.Input<string>;
/**
* The secret reference UUID that is automatically generated by the provider.
*/
secretReferenceId?: pulumi.Input<string | undefined>;
/**
* The secret version.
*/
secretVersion?: pulumi.Input<string | undefined>;
}
export interface KeyManagerKeyRotationPolicy {
/**
* The date and time of the next scheduled rotation.
*/
nextRotationAt?: pulumi.Input<string | undefined>;
/**
* – The period between key rotations (e.g., `"720h"` for 30 days).
*/
rotationPeriod: pulumi.Input<string>;
}
export interface KubernetesClusterAutoUpgrade {
/**
* Set to `true` to enable Kubernetes patch version auto upgrades.
* > **Important:** When enabling auto upgrades, the `version` field take a minor version like x.y (ie 1.18).
*/
enable: pulumi.Input<boolean>;
/**
* The day of the auto upgrade maintenance window (`monday` to `sunday`, or `any`).
*/
maintenanceWindowDay: pulumi.Input<string>;
/**
* The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23).
*/
maintenanceWindowStartHour: pulumi.Input<number>;
}
export interface KubernetesClusterAutoscalerConfig {
/**
* Detect similar node groups and balance the number of nodes between them.
*/
balanceSimilarNodeGroups?: pulumi.Input<boolean | undefined>;
/**
* Disables the scale down feature of the autoscaler.
*/
disableScaleDown?: pulumi.Input<boolean | undefined>;
/**
* Type of resource estimator to be used in scale up.
*/
estimator?: pulumi.Input<string | undefined>;
/**
* Type of node group expander to be used in scale up.
*/
expander?: pulumi.Input<string | undefined>;
/**
* Pods with priority below cutoff will be expendable. They can