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 be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.
     */
    expendablePodsPriorityCutoff?: pulumi.Input<number | undefined>;
    /**
     * Ignore DaemonSet pods when calculating resource utilization for scaling down.
     */
    ignoreDaemonsetsUtilization?: pulumi.Input<boolean | undefined>;
    /**
     * Autoscaler logging level expressed from 0 (least verbose) to 4 (most verbose).
     * Check out the [autoscaler's FAQ](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#how-can-i-increase-the-information-that-the-ca-is-logging) for details.
     *
     * > **Important:** For now, it is not possible to change the value of `logLevel` after creation. Changes to this field will recreate a new cluster resource.
     */
    logLevel?: pulumi.Input<number | undefined>;
    /**
     * Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node
     */
    maxGracefulTerminationSec?: pulumi.Input<number | undefined>;
    /**
     * How long after scale up that scale down evaluation resumes.
     */
    scaleDownDelayAfterAdd?: pulumi.Input<string | undefined>;
    /**
     * How long a node should be unneeded before it is eligible for scale down.
     */
    scaleDownUnneededTime?: pulumi.Input<string | undefined>;
    /**
     * Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down
     */
    scaleDownUtilizationThreshold?: pulumi.Input<number | undefined>;
    /**
     * If set to true, the autoscaler will never delete nodes with pods with local storage, e.g. EmptyDir or HostPath.
     *
     * > **Important:** For now, it is not possible to change the value of `skipNodesWithLocalStorage` after creation. Changes to this field will recreate a new cluster resource.
     */
    skipNodesWithLocalStorage?: pulumi.Input<boolean | undefined>;
}
export interface KubernetesClusterKubeconfig {
    /**
     * The CA certificate of the Kubernetes API server.
     */
    clusterCaCertificate?: pulumi.Input<string | undefined>;
    /**
     * The raw kubeconfig file.
     */
    configFile?: pulumi.Input<string | undefined>;
    /**
     * The URL of the Kubernetes API server.
     */
    host?: pulumi.Input<string | undefined>;
    /**
     * The token to connect to the Kubernetes API server.
     */
    token?: pulumi.Input<string | undefined>;
}
export interface KubernetesClusterOpenIdConnectConfig {
    /**
     * A client id that all tokens must be issued for
     */
    clientId: pulumi.Input<string>;
    /**
     * JWT claim to use as the user's group
     */
    groupsClaims?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Prefix prepended to group claims
     */
    groupsPrefix?: pulumi.Input<string | undefined>;
    /**
     * URL of the provider which allows the API server to discover public signing keys
     */
    issuerUrl: pulumi.Input<string>;
    /**
     * Multiple key=value pairs that describes a required claim in the ID Token
     */
    requiredClaims?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * JWT claim to use as the user name
     */
    usernameClaim?: pulumi.Input<string | undefined>;
    /**
     * Prefix prepended to username
     */
    usernamePrefix?: pulumi.Input<string | undefined>;
}
export interface KubernetesNodePoolNode {
    /**
     * The ID of the IP address resource.
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * The name for the pool. If not provided it will be generated.
     *
     * > **Important:** Updates to this field will recreate a new resource.
     *
     * > Note: In order to use the `createBeforeDestroy` option of the `lifecycle` field, `name` has to be generated, otherwise Terraform will try to create the new pool with the same name and the API does not allow that.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The list of private IPv4 and IPv6 addresses associated with the node.
     */
    privateIps?: pulumi.Input<pulumi.Input<inputs.KubernetesNodePoolNodePrivateIp>[] | undefined>;
    /**
     * The public IPv4. (Deprecated, Please use the official Kubernetes provider and the kubernetesNodes data source)
     *
     * @deprecated Please use the official Kubernetes provider and the kubernetesNodes data source
     */
    publicIp?: pulumi.Input<string | undefined>;
    /**
     * The public IPv6. (Deprecated, Please use the official Kubernetes provider and the kubernetesNodes data source)
     *
     * @deprecated Please use the official Kubernetes provider and the kubernetesNodes data source
     */
    publicIpV6?: pulumi.Input<string | undefined>;
    /**
     * The status of the node.
     */
    status?: pulumi.Input<string | undefined>;
}
export interface KubernetesNodePoolNodePrivateIp {
    /**
     * The private IP address.
     */
    address?: pulumi.Input<string | undefined>;
    /**
     * The ID of the IP address resource.
     */
    id?: pulumi.Input<string | undefined>;
}
export interface KubernetesNodePoolStartupTaint {
    /**
     * Effect of the taint
     */
    effect: pulumi.Input<string>;
    /**
     * Key of the taint
     */
    key: pulumi.Input<string>;
    /**
     * Value of the taint
     */
    value: pulumi.Input<string>;
}
export interface KubernetesNodePoolTaint {
    /**
     * Effect of the taint
     */
    effect: pulumi.Input<string>;
    /**
     * Key of the taint
     */
    key: pulumi.Input<string>;
    /**
     * Value of the taint
     */
    value: pulumi.Input<string>;
}
export interface KubernetesNodePoolUpgradePolicy {
    /**
     * The maximum number of nodes to be created during the upgrade
     */
    maxSurge?: pulumi.Input<number | undefined>;
    /**
     * The maximum number of nodes that can be not ready at the same time
     */
    maxUnavailable?: pulumi.Input<number | undefined>;
}
export interface LoadbalancerAclAction {
    /**
     * Redirect parameters when using an ACL with `redirect` action.
     */
    redirects?: pulumi.Input<pulumi.Input<inputs.LoadbalancerAclActionRedirect>[] | undefined>;
    /**
     * The action type. Possible values are: `allow` or `deny` or `redirect`.
     */
    type: pulumi.Input<string>;
}
export interface LoadbalancerAclActionRedirect {
    /**
     * The HTTP redirect code to use. Valid values are `301`, `302`, `303`, `307` and `308`.
     */
    code?: pulumi.Input<number | undefined>;
    /**
     * An URL can be used in case of a location redirect (e.g. `https://scaleway.com` will redirect to this same URL). A scheme name (e.g. `https`, `http`, `ftp`, `git`) will replace the request's original scheme.
     */
    target?: pulumi.Input<string | undefined>;
    /**
     * The redirect type. Possible values are: `location` or `scheme`.
     */
    type?: pulumi.Input<string | undefined>;
}
export interface LoadbalancerAclMatch {
    /**
     * The HTTP filter to match. This filter is supported only if your backend protocol has an HTTP forward protocol.
     * It extracts the request's URL path, which starts at the first slash and ends before the question mark (without the host part).
     * Possible values are: `aclHttpFilterNone`, `pathBegin`, `pathEnd`, `httpHeaderMatch` or `regex`.
     */
    httpFilter?: pulumi.Input<string | undefined>;
    /**
     * If you have `httpFilter` at `httpHeaderMatch`, you can use this field to filter on the HTTP header's value.
     */
    httpFilterOption?: pulumi.Input<string | undefined>;
    /**
     * A list of possible values to match for the given HTTP filter.
     * Keep in mind that in the case of `httpHeaderMatch` the HTTP header field name is case insensitive.
     */
    httpFilterValues?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * If set to `true`, the condition will be of type "unless".
     */
    invert?: pulumi.Input<boolean | undefined>;
    /**
     * A list of IPs, or CIDR v4/v6 addresses of the session client, to match. Only one of `ipSubnet` and `ipsEdgeServices` should be specified.
     */
    ipSubnets?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Defines whether Edge Services IPs should be matched. Only one of `ipSubnet` and `ipsEdgeServices` should be specified.
     */
    ipsEdgeServices?: pulumi.Input<boolean | undefined>;
}
export interface LoadbalancerBackendHealthCheckHttp {
    /**
     * The expected HTTP status code
     */
    code?: pulumi.Input<number | undefined>;
    /**
     * The HTTP host header to use for HC requests
     */
    hostHeader?: pulumi.Input<string | undefined>;
    /**
     * The HTTP method to use for HC requests
     */
    method?: pulumi.Input<string | undefined>;
    /**
     * The HTTP endpoint URL to call for HC requests
     */
    uri: pulumi.Input<string>;
}
export interface LoadbalancerBackendHealthCheckHttps {
    /**
     * The expected HTTP status code
     */
    code?: pulumi.Input<number | undefined>;
    /**
     * The HTTP host header to use for HC requests
     */
    hostHeader?: pulumi.Input<string | undefined>;
    /**
     * The HTTP method to use for HC requests
     */
    method?: pulumi.Input<string | undefined>;
    /**
     * The SNI to use for HC requests over SSL
     */
    sni?: pulumi.Input<string | undefined>;
    /**
     * The HTTPS endpoint URL to call for HC requests
     */
    uri: pulumi.Input<string>;
}
export interface LoadbalancerBackendHealthCheckTcp {
}
export interface LoadbalancerCertificateCustomCertificate {
    /**
     * The full PEM-formatted certificate chain
     */
    certificateChain: pulumi.Input<string>;
}
export interface LoadbalancerCertificateLetsencrypt {
    /**
     * Main domain of the certificate
     */
    commonName: pulumi.Input<string>;
    /**
     * The alternative domain names of the certificate
     */
    subjectAlternativeNames?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
export interface LoadbalancerFrontendAcl {
    /**
     * Action to undertake when an ACL filter matches.
     */
    action: pulumi.Input<inputs.LoadbalancerFrontendAclAction>;
    /**
     * The date and time the frontend was created.
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Description of the ACL
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * The ACL match rule. At least `ipSubnet` or `ipsEdgeServices` or `httpFilter` and `httpFilterValue` are required.
     */
    match: pulumi.Input<inputs.LoadbalancerFrontendAclMatch>;
    /**
     * The ACL name. If not provided it will be randomly generated.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The date and time the frontend resource was updated.
     */
    updatedAt?: pulumi.Input<string | undefined>;
}
export interface LoadbalancerFrontendAclAction {
    /**
     * Redirect parameters when using an ACL with `redirect` action.
     */
    redirects?: pulumi.Input<pulumi.Input<inputs.LoadbalancerFrontendAclActionRedirect>[] | undefined>;
    /**
     * The action type. Possible values are: `allow` or `deny` or `redirect`.
     */
    type: pulumi.Input<string>;
}
export interface LoadbalancerFrontendAclActionRedirect {
    /**
     * The HTTP redirect code to use. Valid values are `301`, `302`, `303`, `307` and `308`.
     */
    code?: pulumi.Input<number | undefined>;
    /**
     * A URL can be used in case of a location redirect (e.g. `https://scaleway.com` will redirect to this same URL). A scheme name (e.g. `https`, `http`, `ftp`, `git`) will replace the request's original scheme.
     */
    target?: pulumi.Input<string | undefined>;
    /**
     * The redirect type. Possible values are: `location` or `scheme`.
     */
    type?: pulumi.Input<string | undefined>;
}
export interface LoadbalancerFrontendAclMatch {
    /**
     * The HTTP filter to match. This filter is supported only if your backend protocol has an HTTP forward protocol.
     * It extracts the request's URL path, which starts at the first slash and ends before the question mark (without the host part).
     * Possible values are: `aclHttpFilterNone`, `pathBegin`, `pathEnd`, `httpHeaderMatch` or `regex`.
     */
    httpFilter?: pulumi.Input<string | undefined>;
    /**
     * If you have `httpFilter` at `httpHeaderMatch`, you can use this field to filter on the HTTP header's value.
     */
    httpFilterOption?: pulumi.Input<string | undefined>;
    /**
     * A list of possible values to match for the given HTTP filter.
     * Keep in mind that in the case of `httpHeaderMatch` the HTTP header field name is case insensitive.
     */
    httpFilterValues?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * If set to `true`, the condition will be of type "unless".
     */
    invert?: pulumi.Input<boolean | undefined>;
    /**
     * A list of IPs, or CIDR v4/v6 addresses of the session client, to match. Only one of `ipSubnet` and `ipsEdgeServices` should be specified.
     */
    ipSubnets?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Defines whether Edge Services IPs should be matched. Only one of `ipSubnet` and `ipsEdgeServices` should be specified.
     */
    ipsEdgeServices?: pulumi.Input<boolean | undefined>;
}
export interface LoadbalancerPrivateIp {
    /**
     * The private IP address.
     */
    address?: pulumi.Input<string | undefined>;
    /**
     * The ID of the IP address resource.
     */
    id?: pulumi.Input<string | undefined>;
}
export interface LoadbalancerPrivateNetwork {
    /**
     * Set to true if you want to let DHCP assign IP addresses
     *
     * @deprecated dhcp_config field is deprecated, please use `privateNetworkId` or `ipamIds` instead
     */
    dhcpConfig?: pulumi.Input<boolean | undefined>;
    /**
     * IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.
     */
    ipamIds?: pulumi.Input<string | undefined>;
    /**
     * The ID of the Private Network to attach to.
     * - > **Important:** Updates to `privateNetwork` will recreate the attachment.
     */
    privateNetworkId: pulumi.Input<string>;
    /**
     * Define an IP address in the subnet of your private network that will be assigned to your load balancer instance
     *
     * @deprecated static_config field is deprecated, please use `privateNetworkId` or `ipamIds` instead
     */
    staticConfigs?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The status of the private network connection.
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * `zone`) The zone of the Load Balancer.
     */
    zone?: pulumi.Input<string | undefined>;
}
export interface MnqSnsCredentialsPermissions {
    /**
     * . Defines whether the user can manage the associated resource(s).
     */
    canManage?: pulumi.Input<boolean | undefined>;
    /**
     * . Defines whether the user can publish messages to the service.
     */
    canPublish?: pulumi.Input<boolean | undefined>;
    /**
     * . Defines whether the user can receive messages from the service.
     */
    canReceive?: pulumi.Input<boolean | undefined>;
}
export interface MnqSqsCredentialsPermissions {
    /**
     * . Defines whether the user can manage the associated resource(s).
     */
    canManage?: pulumi.Input<boolean | undefined>;
    /**
     * . Defines whether the user can publish messages to the service.
     */
    canPublish?: pulumi.Input<boolean | undefined>;
    /**
     * . Defines whether the user can receive messages from the service.
     */
    canReceive?: pulumi.Input<boolean | undefined>;
}
export interface MnqSqsQueueDeadLetterQueue {
    /**
     * The ID of the queue with format `{region/{project-id}/{queue-name}`
     */
    id: pulumi.Input<string>;
    /**
     * The number of times a message is delivered to the source queue before being sent to the dead-letter queue. Must be between 1 and 1,000.
     */
    maxReceiveCount: pulumi.Input<number>;
}
export interface MongoDbInstancePrivateIp {
    /**
     * The private IPv4 address.
     */
    address?: pulumi.Input<string | undefined>;
    /**
     * The ID of the endpoint.
     */
    id?: pulumi.Input<string | undefined>;
}
export interface MongoDbInstancePrivateNetwork {
    /**
     * List of DNS records for your endpoint.
     */
    dnsRecords?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The ID of the endpoint.
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * List of IP addresses for your endpoint.
     */
    ips?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The ID of the Private Network.
     */
    pnId: pulumi.Input<string>;
    /**
     * TCP port of the endpoint.
     */
    port?: pulumi.Input<number | undefined>;
}
export interface MongoDbInstancePublicNetwork {
    /**
     * The DNS record of your endpoint
     */
    dnsRecord?: pulumi.Input<string | undefined>;
    /**
     * The ID of the endpoint.
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * TCP port of the endpoint.
     */
    port?: pulumi.Input<number | undefined>;
}
export interface ObjectBucketAclAccessControlPolicy {
    /**
     * Grant
     */
    grants?: pulumi.Input<pulumi.Input<inputs.ObjectBucketAclAccessControlPolicyGrant>[] | undefined>;
    /**
     * Configuration block of the bucket project owner's display organization ID.
     */
    owner: pulumi.Input<inputs.ObjectBucketAclAccessControlPolicyOwner>;
}
export interface ObjectBucketAclAccessControlPolicyGrant {
    /**
     * Configuration block for the project being granted permissions.
     */
    grantee?: pulumi.Input<inputs.ObjectBucketAclAccessControlPolicyGrantGrantee | undefined>;
    /**
     * Logging permissions assigned to the grantee for the bucket.
     */
    permission: pulumi.Input<string>;
}
export interface ObjectBucketAclAccessControlPolicyGrantGrantee {
    /**
     * Display name of the grantee to grant access to.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * The `region`, `bucket` and `acl` separated by (`/`).
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * Type of grantee. Valid values: `CanonicalUser`, `Group`
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * The uri of the grantee if you are granting permissions to a predefined group.
     */
    uri?: pulumi.Input<string | undefined>;
}
export interface ObjectBucketAclAccessControlPolicyOwner {
    /**
     * The project ID of the grantee.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * The `region`, `bucket` and `acl` separated by (`/`).
     */
    id: pulumi.Input<string>;
}
export interface ObjectBucketCorsRule {
    /**
     * Specifies which headers are allowed.
     */
    allowedHeaders?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Specifies which methods are allowed (`GET`, `PUT`, `POST`, `DELETE` or `HEAD`).
     */
    allowedMethods: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Specifies which origins are allowed.
     */
    allowedOrigins: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Specifies header exposure in the response.
     */
    exposeHeaders?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Specifies time in seconds that the browser can cache the response for a preflight request.
     */
    maxAgeSeconds?: pulumi.Input<number | undefined>;
}
export interface ObjectBucketLifecycleRule {
    /**
     * Specifies the number
     * of days after initiating a multipart upload when the multipart upload must
     * be completed.
     *
     * > **Important:** Avoid using `prefix` for `AbortIncompleteMultipartUpload`,
     * as any incomplete multipart upload will be billed.
     */
    abortIncompleteMultipartUploadDays?: pulumi.Input<number | undefined>;
    /**
     * The element value can be either Enabled or
     * Disabled. If a rule is disabled, Scaleway Object Storage does not perform
     * any of the actions defined in the rule.
     */
    enabled: pulumi.Input<boolean>;
    /**
     * Specifies a period of expiration for the object.
     */
    expiration?: pulumi.Input<inputs.ObjectBucketLifecycleRuleExpiration | undefined>;
    /**
     * Unique identifier for the rule. Must be less than or
     * equal to 255 characters in length.
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * Configuration block that
     * specifies when noncurrent object versions expire. Supports the following:
     */
    noncurrentVersionExpiration?: pulumi.Input<inputs.ObjectBucketLifecycleRuleNoncurrentVersionExpiration | undefined>;
    /**
     * Set of configuration blocks
     * that specify the transition rule for the lifecycle rule that describes when
     * noncurrent objects transition to a specific storage class. Supports the
     * following:
     */
    noncurrentVersionTransitions?: pulumi.Input<pulumi.Input<inputs.ObjectBucketLifecycleRuleNoncurrentVersionTransition>[] | undefined>;
    /**
     * Minimum object size (in bytes) to
     * which the rule applies.
     */
    objectSizeGreaterThan?: pulumi.Input<number | undefined>;
    /**
     * Maximum object size (in bytes) to
     * which the rule applies.
     */
    objectSizeLessThan?: pulumi.Input<number | undefined>;
    /**
     * Object key prefix identifying one or more objects
     * to which the rule applies.
     */
    prefix?: pulumi.Input<string | undefined>;
    /**
     * Specifies object tags key and value.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Specifies a period in the object's transitions.
     */
    transitions?: pulumi.Input<pulumi.Input<inputs.ObjectBucketLifecycleRuleTransition>[] | undefined>;
}
export interface ObjectBucketLifecycleRuleExpiration {
    /**
     * Specifies the date the object is to be moved or
     * deleted. The date value must be in RFC3339 full-date format e.g.
     * `2023-08-22`.
     */
    date?: pulumi.Input<string | undefined>;
    /**
     * Specifies the number of days after object creation
     * when the specific rule action takes effect.
     */
    days?: pulumi.Input<number | undefined>;
    /**
     * Specifies whether Scaleway
     * Object will remove a delete marker with no noncurrent versions. If set
     * to `true`, the delete marker will be expired; if set to `false` the
     * policy takes no action.
     */
    expiredObjectDeleteMarker?: pulumi.Input<boolean | undefined>;
}
export interface ObjectBucketLifecycleRuleNoncurrentVersionExpiration {
    /**
     * Number of noncurrent versions
     * Scaleway Object Storage will retain. Must be a non-zero positive integer.
     */
    newerNoncurrentVersions?: pulumi.Input<number | undefined>;
    /**
     * Number of days an object is noncurrent
     * before Scaleway Object Storage can perform the associated action. Must
     * be a positive integer.
     */
    noncurrentDays?: pulumi.Input<number | undefined>;
}
export interface ObjectBucketLifecycleRuleNoncurrentVersionTransition {
    /**
     * Number of noncurrent versions
     * Scaleway Object Storage will retain. Must be a non-zero positive integer.
     */
    newerNoncurrentVersions?: pulumi.Input<number | undefined>;
    /**
     * Number of days an object is noncurrent
     * before Scaleway Object Storage can perform the associated action.
     */
    noncurrentDays: pulumi.Input<number>;
    /**
     * Specifies the Scaleway [storage class](https://www.scaleway.com/en/docs/object-storage/concepts/#storage-class)
     * `STANDARD`, `GLACIER`, `ONEZONE_IA` to which you want the object to
     * transition.
     *
     * > **Important:** If versioning is enabled, this rule only deletes the current
     * version of an object.
     */
    storageClass: pulumi.Input<string>;
}
export interface ObjectBucketLifecycleRuleTransition {
    /**
     * Specifies the date objects are transitioned to the
     * specified storage class. The date value must be in RFC3339 full-date
     * format e.g. `2023-08-22`.
     */
    date?: pulumi.Input<string | undefined>;
    /**
     * Specifies the number of days after object creation
     * when the specific rule action takes effect.
     */
    days?: pulumi.Input<number | undefined>;
    /**
     * Specifies the Scaleway [storage class](https://www.scaleway.com/en/docs/object-storage/concepts/#storage-class)
     * `STANDARD`, `GLACIER`, `ONEZONE_IA` to which you want the object to
     * transition.
     *
     * > **Important:** `ONEZONE_IA` is only available in `fr-par` region. The
     * storage class `GLACIER` is not available in `pl-waw` region.
     *
     * > **Important:** At least one of `abortIncompleteMultipartUploadDays`,
     * `expiration`, `transition` must be specified.
     */
    storageClass: pulumi.Input<string>;
}
export interface ObjectBucketLockConfigurationRule {
    /**
     * The default retention for the lock.
     */
    defaultRetention: pulumi.Input<inputs.ObjectBucketLockConfigurationRuleDefaultRetention>;
}
export interface ObjectBucketLockConfigurationRuleDefaultRetention {
    /**
     * The number of days you want to specify for the default retention period.
     */
    days?: pulumi.Input<number | undefined>;
    /**
     * The default object lock retention mode you want to apply to new objects placed in the specified bucket. Valid values are `GOVERNANCE` or `COMPLIANCE`. Refer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/object-lock/#retention-modes) for more information on retention modes.
     */
    mode: pulumi.Input<string>;
    /**
     * The number of years you want to specify for the default retention period.
     */
    years?: pulumi.Input<number | undefined>;
}
export interface ObjectBucketVersioning {
    /**
     * 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 ObjectBucketWebsiteConfigurationErrorDocument {
    /**
     * The object key name to use when a 4XX class error occurs.
     */
    key: pulumi.Input<string>;
}
export interface ObjectBucketWebsiteConfigurationIndexDocument {
    /**
     * A suffix that is appended to a request targeting a specific directory on the website endpoint.
     *
     * > **Important:** The suffix must not be empty and must not include a slash character. The routing is not supported.
     */
    suffix: pulumi.Input<string>;
}
export interface RedisClusterAcl {
    /**
     * A text describing this rule. Default description: `Allow IP`
     *
     * > The `acl` conflict with `privateNetwork`. Only one should be specified.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * The ID of the IPv4 address resource.
     */
    id?: 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 RedisClusterPrivateIp {
    /**
     * The private IPv4 address.
     */
    address?: pulumi.Input<string | undefined>;
    /**
     * The ID of the IPv4 address resource.
     */
    id?: pulumi.Input<string | undefined>;
}
export interface RedisClusterPrivateNetwork {
    /**
     * The ID of the endpoint.
     */
    endpointId?: pulumi.Input<string | undefined>;
    /**
     * The UUID of the Private Network resource.
     */
    id: pulumi.Input<string>;
    /**
     * List of IPv4 addresses of the endpoint.
     */
    ips?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * TCP port of the endpoint.
     */
    port?: pulumi.Input<number | undefined>;
    /**
     * Endpoint IPv4 addresses in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) (IPv6 is not supported by the Scaleway API). You must provide at least one IP per node.
     * Keep in mind that in cluster mode you cannot edit your Private Network after its creation so if you want to be able to
     * scale your cluster horizontally (adding nodes) later, you should provide more IPs than nodes.
     * If not set, the IP network address within the private subnet is determined by the IP Address Management (IPAM) service.
     * > **Important:** When IPAM is enabled, the IPs specified here will be ignored and should not be provided.
     *
     * > The `privateNetwork` conflicts with `acl`. Only one should be specified.
     *
     * > **Important:** The way to use Private Networks differs whether you are using Redis™ in Standalone or cluster mode.
     *
     * - Standalone mode (`clusterSize` = 1) : you can attach as many Private Networks as you want (each must be a separate
     * block). If you detach your only Private Network, your cluster won't be reachable until you define a new Private or
     * Public Network. You can modify your `privateNetwork` and its specs, you can have both a Private and Public Network side
     * by side.
     *
     * - Cluster mode (`clusterSize` > 2) : you can define a single Private Network as you create your cluster, you won't be
     * able to edit or detach it afterward, unless you create another cluster. This also means that, if you are using a static
     * configuration (`serviceIps`), you won't be able to scale your cluster horizontally (add more nodes) since it would
     * require updating the Private Network to add IPs.
     * Your `serviceIps` must be listed as follows:
     */
    serviceIps?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * `zone`) The zone in which the
     * Redis™ cluster should be created.
     */
    zone?: pulumi.Input<string | undefined>;
}
export interface RedisClusterPublicNetwork {
    /**
     * The ID of the IPv4 address resource.
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * List of IPv4 addresses of the endpoint.
     */
    ips?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * TCP port of the endpoint.
     */
    port?: pulumi.Input<number | undefined>;
}
export interface SecretEphemeralPolicy {
    /**
     * Action to perform when the version of a secret expires. Available values can be found in [SDK constants](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/secret/v1beta1#pkg-constants).
     */
    action: pulumi.Input<string>;
    /**
     * True if the secret version expires after a single user access.
     */
    expiresOnceAccessed?: pulumi.Input<boolean | undefined>;
    /**
     * Time frame, from one second and up to one year, during which the secret's versions are valid. Has to be specified in [Go Duration format](https://pkg.go.dev/time#ParseDuration) (ex: "30m", "24h").
     */
    ttl?: pulumi.Input<string | undefined>;
}
export interface SecretVersion {
    /**
     * Date and time of the secret's creation (in RFC 3339 format).
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Description of the secret (e.g. `my-new-description`).
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Returns true if the version is the latest.
     */
    latest?: pulumi.Input<boolean | undefined>;
    /**
     * The revision of secret version
     */
    revision?: pulumi.Input<string | undefined>;
    /**
     * The secret ID associated with this version
     */
    secretId?: pulumi.Input<string | undefined>;
    /**
     * The status of the secret.
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * Date and time of the secret's last update (in RFC 3339 format).
     */
    updatedAt?: pulumi.Input<string | undefined>;
}
export interface TemDomainReputation {
    /**
     * The previously-calculated domain's reputation score.
     */
    previousScore?: pulumi.Input<number | undefined>;
    /**
     * The time and date the previous reputation score was calculated.
     */
    previousScoredAt?: pulumi.Input<string | undefined>;
    /**
     * A range from 0 to 100 that determines your domain's reputation score.
     */
    score?: pulumi.Input<number | undefined>;
    /**
     * The time and date the score was calculated.
     */
    scoredAt?: pulumi.Input<string | undefined>;
    /**
     * The status of the domain's reputation.
     */
    status?: pulumi.Input<string | undefined>;
}
export interface VpcGatewayNetworkIpamConfig {
    /**
     * Use this IPAM-booked IP ID as the Gateway's IP in this Private Network.
     */
    ipamIpId?: pulumi.Input<string | undefined>;
    /**
     * Defines whether to enable the default route on the GatewayNetwork.
     */
    pushDefaultRoute?: pulumi.Input<boolean | undefined>;
}
export interface VpcGatewayNetworkPrivateIp {
    /**
     * The private IPv4 address.
     */
    address?: pulumi.Input<string | undefined>;
    /**
     * The ID of the IPv4 address resource.
     */
    id?: pulumi.Input<string | undefined>;
}
export interface VpcPrivateNetworkIpv4Subnet {
    /**
     * The network address of the subnet in hexadecimal notation, e.g., '2001:db8::' for a '2001:db8::/64' subnet.
     */
    address?: pulumi.Input<string | undefined>;
    /**
     * The date and time of the creation of the subnet.
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * The subnet ID.
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * The length of the network prefix, e.g., 64 for a 'ffff:ffff:ffff:ffff::' mask.
     */
    prefixLength?: pulumi.Input<number | undefined>;
    /**
     * The subnet CIDR.
     */
    subnet?: pulumi.Input<string | undefined>;
    /**
     * The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet
     */
    subnetMask?: pulumi.Input<string | undefined>;
    /**
     * The date and time of the last update of the subnet.
     */
    updatedAt?: pulumi.Input<string | undefined>;
}
export interface VpcPrivateNetworkIpv6Subnet {
    /**
     * The network address of the subnet in hexadecimal notation, e.g., '2001:db8::' for a '2001:db8::/64' subnet.
     */
    address?: pulumi.Input<string | undefined>;
    /**
     * The date and time of the creation of the subnet.
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * The subnet ID.
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * The length of the network prefix, e.g., 64 for a 'ffff:ffff:ffff:ffff::' mask.
     */
    prefixLength?: pulumi.Input<number | undefined>;
    /**
     * The subnet CIDR.
     */
    subnet?: pulumi.Input<string | undefined>;
    /**
     * The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet
     */
    subnetMask?: pulumi.Input<string | undefined>;
    /**
     * The date and time of the last update of the subnet.
     */
    updatedAt?: pulumi.Input<string | undefined>;
}
export interface WebhostingCpanelUrl {
    /**
     * The URL of the Dashboard.
     */
    dashboard?: pulumi.Input<string | undefined>;
    /**
     * The URL of the Webmail interface.
     */
    webmail?: pulumi.Input<string | undefined>;
}
export interface WebhostingNameServer {
    /**
     * Hostname of the server
     */
    hostname?: pulumi.Input<string | undefined>;
    /**
     * Whether or not the webhosting is the default one
     */
    isDefault?: pulumi.Input<boolean | undefined>;
    /**
     * The hosting status.
     */
    status?: pulumi.Input<string | undefined>;
}
export interface WebhostingOption {
    /**
     * The option ID.
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * The option name.
     */
    name?: pulumi.Input<string | undefined>;
}
export interface WebhostingRecord {
    /**
     * The option name.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Priority of DNS records associated with the webhosting.
     */
    priority?: pulumi.Input<number | undefined>;
    /**
     * The hosting status.
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * Time to live in seconds of the record
     */
    ttl?: pulumi.Input<number | undefined>;
    /**
     * Type of the DNS record
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * Value of the DNS record
     */
    value?: pulumi.Input<string | undefined>;
}
export declare namespace account {
}
export declare namespace applesilicon {
    interface ServerPrivateIp {
        /**
         * The private IP address.
         */
        address?: pulumi.Input<string | undefined>;
        /**
         * The ID of the IP address resource.
         */
        id?: pulumi.Input<string | undefined>;
    }
    interface ServerPrivateNetwork {
        /**
         * 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 declare namespace audittrail {
}
export declare namespace autoscaling {
    interface InstanceGroupCapacity {
        /**
         * Time (in seconds) after a scaling action during which requests to carry out a new scaling action will be denied.
         */
        cooldownDelay?: pulumi.Input<number | undefined>;
        /**
         * The maximum count of Instances for the Instance group.
         */
        maxReplicas?: pulumi.Input<number | undefined>;
        /**
         * The minimum count of Instances for the Instance group.
         */
        minReplicas?: pulumi.Input<number | undefined>;
    }
    interface InstanceGroupLoadBalancer {
        /**
         * The Load Balancer backend IDs.
         */
        backendIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * The ID of the Load Balancer.
         */
        id?: pulumi.Input<string | undefined>;
        /**
         * The ID of the Private Network attached to the Load Balancer.
         */
        privateNetworkId?: pulumi.Input<string | undefined>;
    }
    interface InstancePolicyMetric {
        /**
         * How the values sampled for the `metric` should be aggregated.
         */
        aggregate: pulumi.Input<string>;
        /**
         * The custom metric to use for this policy. This must be stored in Scaleway Cockpit. The metric forms the basis of the condition that will be checked to determine whether a scaling action should be triggered
         */
        cockpitMetricName?: pulumi.Input<string | undefined>;
        /**
         * The managed metric to use for this policy. These are available by default in Cockpit without any configuration or `nodeExporter`. The chosen metric forms the basis of the condition that will be checked to determine whether a scaling action should be triggered.
         */
        managedMetric?: pulumi.Input<string | undefined>;
        /**
         * Name or description of the metric policy.
         */
        name: pulumi.Input<string>;
        /**
         * Operator used when comparing the threshold value of the chosen `metric` to the actual sampled and aggregated value.
         */
        operator: pulumi.Input<string>;
        /**
         * The Interval of time, in minutes, during which metric is sampled.
         */
        samplingRangeMin?: pulumi.Input<number | undefined>;
        /**
         * The threshold value to measure the aggregated sampled `metric` value against. Combined with the `operator` field, determines whether a scaling action should be triggered.
         */
        threshold?: pulumi.Input<number | undefined>;
    }
    interface InstanceTemplateVolume {
        /**
         * Force the Instance to boot on this volume.
         */
        boot?: pulumi.Input<boolean | undefined>;
        /**
         * Volume instance template from empty
         */
        fromEmpty?: pulumi.Input<inputs.autoscaling.InstanceTemplateVolumeFromEmpty | undefined>;
        /**
         * Volume instance template from snapshot
         */
        fromSnapshot?: pulumi.Input<inputs.autoscaling.InstanceTemplateVolumeFromSnapshot | undefined>;
        /**
         * The name of the volume.
         */
        name: pulumi.Input<string>;
        /**
         * The maximum IO/s expected, according to the different options available in stock (`5000 | 15000`).
         */
        perfIops?: pulumi.Input<number | undefined>;
        /**
         * The list of tags assigned to the volume.
         */
        tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * The type of the volume.
         */
        volumeType: pulumi.Input<string>;
    }
    interface InstanceTemplateVolumeFromEmpty {
        /**
         * Size in GB of the new empty volume
         */
        size: pulumi.Input<number>;
    }
    interface InstanceTemplateVolumeFromSnapshot {
        /**
         * Override size (in GB) of the cloned volume
         */
        size?: pulumi.Input<number | undefined>;
        /**
         * ID of the snapshot to clone
         */
        snapshotId: pulumi.Input<string>;
    }
}
export declare namespace billing {
}
export declare namespace block {
    interface SnapshotExport {
        /**
         * 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>;
    }
    interface SnapshotImport {
        /**
         * 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 declare namespace containers {
    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.containers.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>;
    }
    interface ContainerHealthCheckHttp {
        /**
         * Path to use for the HTTP health check.
         */
        path?: pulumi.Input<string | undefined>;
    }
    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.containers.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>;
    }
    interface ContainerLivenessProbeHttp {
        /**
         * Path to use for the HTTP health check.
         */
        path: pulumi.Input<string>;
    }
    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>;
    }
    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.containers.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>;
    }
    interface ContainerStartupProbeHttp {
        /**
         * Path to use for the HTTP health check.
         */
        path: pulumi.Input<string>;
    }
    interface TriggerCron {
        /**
         * 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>;
    }
    interface TriggerDestinationConfig {
        /**
         * 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>;
    }
    interface TriggerNats {
        /**
         * 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>;
    }
    interface TriggerSqs {
        /**
         * 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 declare namespace databases {
    interface AclAclRule {
        /**
         * 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>;
    }
    interface InstanceLoadBalancer {
        /**
         * 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>;
    }
    interface InstanceLogsPolicy {
        /**
         * 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>;
    }
    interface InstanceMaintenance {
        /**
         * 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>;
    }
    interface InstancePrivateIp {
        /**
         * The private IPv4 address.
         */
        address?: pulumi.Input<string | undefined>;
        /**
         * Version ID to use in upgrade requests.
         */
        id?: pulumi.Input<string | undefined>;
    }
    interface InstancePrivateNetwork {
        /**
         * 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>;
    }
    interface InstanceReadReplica {
        /**
         * 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>;
    }
    interface InstanceUpgradableVersion {
        /**
         * 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>;
    }
    interface ReadReplicaDirectAccess {
        /**
         * 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>;
    }
    interface ReadReplicaPrivateNetwork {
        /**
         * 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 declare namespace datalab {
    interface DatalabMain {
        /**
         * The node type for the main node.
         */
        nodeType: pulumi.Input<string>;
        /**
         * Volume details for worker nodes.
         */
        rootVolume?: pulumi.Input<inputs.datalab.DatalabMainRootVolume | undefined>;
        /**
         * The Spark master URL within the VPC.
         */
        sparkMasterUrl?: pulumi.Input<string | undefined>;
        /**
         * The Spark UI URL.
         */
        sparkUiUrl?: pulumi.Input<string | undefined>;
    }
    interface DatalabMainRootVolume {
        /**
         * The volume size in bytes.
         */
        size?: pulumi.Input<number | undefined>;
        /**
         * The volume type.
         */
        type?: pulumi.Input<string | undefined>;
    }
    interface DatalabTotalStorage {
        /**
         * The volume size in bytes.
         */
        size?: pulumi.Input<number | undefined>;
        /**
         * The volume type. Defaults to `sbs5k`.
         */
        type?: pulumi.Input<string | undefined>;
    }
    interface DatalabWorker {
        /**
         * The number of worker nodes.
         */
        nodeCount: pulumi.Input<number>;
        /**
         * The node type for worker nodes.
         */
        nodeType: pulumi.Input<string>;
        /**
         * Volume details for worker nodes.
         */
        rootVolume?: pulumi.Input<inputs.datalab.DatalabWorkerRootVolume | undefined>;
    }
    interface DatalabWorkerRootVolume {
        /**
         * The volume size in bytes.
         */
        size?: pulumi.Input<number | undefined>;
        /**
         * The volume type.
         */
        type?: pulumi.Input<string | undefined>;
    }
}
export declare namespace datawarehouse {
    interface DeploymentPrivateNetwork {
        /**
         * DNS record for the private endpoint.
         */
        dnsRecord?: pulumi.Input<string | undefined>;
        /**
         * The ID of the private endpoint.
         */
        id?: pulumi.Input<string | undefined>;
        /**
         * The ID of the private network. Format: `{region}/{id}` or just `{id}`.
         */
        pnId: pulumi.Input<string>;
        /**
         * List of services exposed on the private endpoint.
         */
        services?: pulumi.Input<pulumi.Input<inputs.datawarehouse.DeploymentPrivateNetworkService>[] | undefined>;
    }
    interface DeploymentPrivateNetworkService {
        /**
         * TCP port number.
         */
        port?: pulumi.Input<number | undefined>;
        /**
         * Service protocol (e.g., "tcp", "https", "mysql").
         */
        protocol?: pulumi.Input<string | undefined>;
    }
    interface DeploymentPublicNetwork {
        /**
         * DNS record for the private endpoint.
         */
        dnsRecord?: pulumi.Input<string | undefined>;
        /**
         * The ID of the private endpoint.
         */
        id?: pulumi.Input<string | undefined>;
        /**
         * List of services exposed on the private endpoint.
         */
        services?: pulumi.Input<pulumi.Input<inputs.datawarehouse.DeploymentPublicNetworkService>[] | undefined>;
    }
    interface DeploymentPublicNetworkService {
        /**
         * TCP port number.
         */
        port?: pulumi.Input<number | undefined>;
        /**
         * Service protocol (e.g., "tcp", "https", "mysql").
         */
        protocol?: pulumi.Input<string | undefined>;
    }
}
export declare namespace domain {
    interface RecordGeoIp {
        /**
         * The list of matches
         */
        matches: pulumi.Input<pulumi.Input<inputs.domain.RecordGeoIpMatch>[]>;
    }
    interface RecordGeoIpMatch {
        /**
         * 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>;
    }
    interface RecordHttpService {
        /**
         * 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>;
    }
    interface RecordView {
        /**
         * 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>;
    }
    interface RecordWeighted {
        /**
         * The weighted IP
         */
        ip: pulumi.Input<string>;
        /**
         * The weight of the IP
         */
        weight: pulumi.Input<number>;
    }
    interface RegistrationAdministrativeContact {
        /**
         * Primary address line for the contact.
         */
        addressLine1: pulumi.Input<string>;
        /**
         * Secondary address line for the contact (optional).
         */
        addressLine2?: pulumi.Input<string | undefined>;
        /**
         * City of the contact's address.
         */
        city: pulumi.Input<string>;
        /**
         * Company identification code (e.g., SIREN/SIRET in France) for the contact.
         */
        companyIdentificationCode?: pulumi.Input<string | undefined>;
        /**
         * Name of the company associated with the contact (if applicable).
         */
        companyName?: pulumi.Input<string | undefined>;
        /**
         * Country code of the contact's address (ISO format).
         */
        country: pulumi.Input<string>;
        /**
         * Primary email address of the contact.
         */
        email: pulumi.Input<string>;
        /**
         * Alternative email address for the contact.
         */
        emailAlt?: pulumi.Input<string | undefined>;
        /**
         * Details specific to European domain extensions.
         */
        extensionEu?: pulumi.Input<inputs.domain.RegistrationAdministrativeContactExtensionEu | undefined>;
        /**
         * Details specific to French domain extensions.
         */
        extensionFr?: pulumi.Input<inputs.domain.RegistrationAdministrativeContactExtensionFr | undefined>;
        /**
         * Extension details specific to Dutch domain registrations.
         */
        extensionNls?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * Fax number for the contact (if available).
         */
        faxNumber?: pulumi.Input<string | undefined>;
        /**
         * First name of the contact.
         */
        firstname: pulumi.Input<string>;
        /**
         * Preferred language of the contact (e.g., 'en_US', 'fr_FR').
         */
        lang?: pulumi.Input<string | undefined>;
        /**
         * Last name of the contact.
         */
        lastname: pulumi.Input<string>;
        /**
         * Legal form of the contact (e.g., 'individual' or 'organization').
         */
        legalForm: pulumi.Input<string>;
        /**
         * Primary phone number of the contact.
         */
        phoneNumber: pulumi.Input<string>;
        /**
         * Indicates if the contact is used for resale purposes.
         */
        resale?: pulumi.Input<boolean | undefined>;
        /**
         * State or region of the contact.
         */
        state?: pulumi.Input<string | undefined>;
        /**
         * VAT identification code of the contact, if applicable.
         */
        vatIdentificationCode?: pulumi.Input<string | undefined>;
        /**
         * Indicates whether the contact has opted into WHOIS publishing.
         */
        whoisOptIn?: pulumi.Input<boolean | undefined>;
        /**
         * Postal code of the contact's address.
         */
        zip: pulumi.Input<string>;
    }
    interface RegistrationAdministrativeContactExtensionEu {
        /**
         * Indicates the European citizenship of the contact.
         */
        europeanCitizenship?: pulumi.Input<string | undefined>;
    }
    interface RegistrationAdministrativeContactExtensionFr {
        /**
         * Association-specific information for the domain (French extension).
         */
        associationInfo?: pulumi.Input<inputs.domain.RegistrationAdministrativeContactExtensionFrAssociationInfo | undefined>;
        /**
         * AFNIC authorization information for the contact (French extension).
         */
        codeAuthAfnicInfo?: pulumi.Input<inputs.domain.RegistrationAdministrativeContactExtensionFrCodeAuthAfnicInfo | undefined>;
        /**
         * DUNS information for the domain owner (specific to French domains).
         */
        dunsInfo?: pulumi.Input<inputs.domain.RegistrationAdministrativeContactExtensionFrDunsInfo | undefined>;
        /**
         * Information about the individual registration for French domains.
         */
        individualInfo?: pulumi.Input<inputs.domain.RegistrationAdministrativeContactExtensionFrIndividualInfo | undefined>;
        /**
         * Mode of the French extension (e.g., 'individual', 'duns', 'association', etc.).
         */
        mode?: pulumi.Input<string | undefined>;
        /**
         * Trademark-related information for the domain (French extension).
         */
        trademarkInfo?: pulumi.Input<inputs.domain.RegistrationAdministrativeContactExtensionFrTrademarkInfo | undefined>;
    }
    interface RegistrationAdministrativeContactExtensionFrAssociationInfo {
        /**
         * Publication date in the Official Journal (RFC3339 format) for association information.
         */
        publicationJo?: pulumi.Input<string | undefined>;
        /**
         * Page number of the publication in the Official Journal for association information.
         */
        publicationJoPage?: pulumi.Input<number | undefined>;
    }
    interface RegistrationAdministrativeContactExtensionFrCodeAuthAfnicInfo {
        /**
         * AFNIC authorization code for the contact (specific to French domains).
         */
        codeAuthAfnic?: pulumi.Input<string | undefined>;
    }
    interface RegistrationAdministrativeContactExtensionFrDunsInfo {
        /**
         * DUNS ID associated with the domain owner (for French domains).
         */
        dunsId?: pulumi.Input<string | undefined>;
        /**
         * Local identifier of the domain owner (for French domains).
         */
        localId?: pulumi.Input<string | undefined>;
    }
    interface RegistrationAdministrativeContactExtensionFrIndividualInfo {
        /**
         * Whether the individual contact has opted into WHOIS publishing.
         */
        whoisOptIn?: pulumi.Input<boolean | undefined>;
    }
    interface RegistrationAdministrativeContactExtensionFrTrademarkInfo {
        /**
         * Trademark information from INPI (French extension).
         */
        trademarkInpi?: pulumi.Input<string | undefined>;
    }
    interface RegistrationDsRecord {
        /**
         * The algorithm used for dnssec (e.g., rsasha256, ecdsap256sha256).
         */
        algorithm?: pulumi.Input<string | undefined>;
        /**
         * Details about the digest.
         */
        digests?: pulumi.Input<pulumi.Input<inputs.domain.RegistrationDsRecordDigest>[] | undefined>;
        /**
         * The identifier for the dnssec key.
         */
        keyId?: pulumi.Input<number | undefined>;
        /**
         * Public key associated with the dnssec record.
         */
        publicKeys?: pulumi.Input<pulumi.Input<inputs.domain.RegistrationDsRecordPublicKey>[] | undefined>;
    }
    interface RegistrationDsRecordDigest {
        /**
         * The digest value.
         */
        digest?: pulumi.Input<string | undefined>;
        /**
         * The public key associated with the digest.
         */
        publicKeys?: pulumi.Input<pulumi.Input<inputs.domain.RegistrationDsRecordDigestPublicKey>[] | undefined>;
        /**
         * The digest type for the DS record (e.g., sha_1, sha_256, gost_r_34_11_94, sha_384).
         */
        type?: pulumi.Input<string | undefined>;
    }
    interface RegistrationDsRecordDigestPublicKey {
        /**
         * The public key value.
         */
        key: pulumi.Input<string>;
    }
    interface RegistrationDsRecordPublicKey {
        /**
         * The public key value.
         */
        key: pulumi.Input<string>;
    }
    interface RegistrationOwnerContact {
        /**
         * Primary address line for the contact.
         */
        addressLine1: pulumi.Input<string>;
        /**
         * Secondary address line for the contact (optional).
         */
        addressLine2?: pulumi.Input<string | undefined>;
        /**
         * City of the contact's address.
         */
        city: pulumi.Input<string>;
        /**
         * Company identification code (e.g., SIREN/SIRET in France) for the contact.
         */
        companyIdentificationCode?: pulumi.Input<string | undefined>;
        /**
         * Name of the company associated with the contact (if applicable).
         */
        companyName?: pulumi.Input<string | undefined>;
        /**
         * Country code of the contact's address (ISO format).
         */
        country: pulumi.Input<string>;
        /**
         * Primary email address of the contact.
         */
        email: pulumi.Input<string>;
        /**
         * Alternative email address for the contact.
         */
        emailAlt?: pulumi.Input<string | undefined>;
        /**
         * Details specific to European domain extensions.
         */
        extensionEu?: pulumi.Input<inputs.domain.RegistrationOwnerContactExtensionEu | undefined>;
        /**
         * Details specific to French domain extensions.
         */
        extensionFr?: pulumi.Input<inputs.domain.RegistrationOwnerContactExtensionFr | undefined>;
        /**
         * Extension details specific to Dutch domain registrations.
         */
        extensionNls?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * Fax number for the contact (if available).
         */
        faxNumber?: pulumi.Input<string | undefined>;
        /**
         * First name of the contact.
         */
        firstname: pulumi.Input<string>;
        /**
         * Preferred language of the contact (e.g., 'en_US', 'fr_FR').
         */
        lang?: pulumi.Input<string | undefined>;
        /**
         * Last name of the contact.
         */
        lastname: pulumi.Input<string>;
        /**
         * Legal form of the contact (e.g., 'individual' or 'organization').
         */
        legalForm: pulumi.Input<string>;
        /**
         * Primary phone number of the contact.
         */
        phoneNumber: pulumi.Input<string>;
        /**
         * Indicates if the contact is used for resale purposes.
         */
        resale?: pulumi.Input<boolean | undefined>;
        /**
         * State or region of the contact.
         */
        state?: pulumi.Input<string | undefined>;
        /**
         * VAT identification code of the contact, if applicable.
         */
        vatIdentificationCode?: pulumi.Input<string | undefined>;
        /**
         * Indicates whether the contact has opted into WHOIS publishing.
         */
        whoisOptIn?: pulumi.Input<boolean | undefined>;
        /**
         * Postal code of the contact's address.
         */
        zip: pulumi.Input<string>;
    }
    interface RegistrationOwnerContactExtensionEu {
        /**
         * Indicates the European citizenship of the contact.
         */
        europeanCitizenship?: pulumi.Input<string | undefined>;
    }
    interface RegistrationOwnerContactExtensionFr {
        /**
         * Association-specific information for the domain (French extension).
         */
        associationInfo?: pulumi.Input<inputs.domain.RegistrationOwnerContactExtensionFrAssociationInfo | undefined>;
        /**
         * AFNIC authorization information for the contact (French extension).
         */
        codeAuthAfnicInfo?: pulumi.Input<inputs.domain.RegistrationOwnerContactExtensionFrCodeAuthAfnicInfo | undefined>;
        /**
         * DUNS information for the domain owner (specific to French domains).
         */
        dunsInfo?: pulumi.Input<inputs.domain.RegistrationOwnerContactExtensionFrDunsInfo | undefined>;
        /**
         * Information about the individual registration for French domains.
         */
        individualInfo?: pulumi.Input<inputs.domain.RegistrationOwnerContactExtensionFrIndividualInfo | undefined>;
        /**
         * Mode of the French extension (e.g., 'individual', 'duns', 'association', etc.).
         */
        mode?: pulumi.Input<string | undefined>;
        /**
         * Trademark-related information for the domain (French extension).
         */
        trademarkInfo?: pulumi.Input<inputs.domain.RegistrationOwnerContactExtensionFrTrademarkInfo | undefined>;
    }
    interface RegistrationOwnerContactExtensionFrAssociationInfo {
        /**
         * Publication date in the Official Journal (RFC3339 format) for association information.
         */
        publicationJo?: pulumi.Input<string | undefined>;
        /**
         * Page number of the publication in the Official Journal for association information.
         */
        publicationJoPage?: pulumi.Input<number | undefined>;
    }
    interface RegistrationOwnerContactExtensionFrCodeAuthAfnicInfo {
        /**
         * AFNIC authorization code for the contact (specific to French domains).
         */
        codeAuthAfnic?: pulumi.Input<string | undefined>;
    }
    interface RegistrationOwnerContactExtensionFrDunsInfo {
        /**
         * DUNS ID associated with the domain owner (for French domains).
         */
        dunsId?: pulumi.Input<string | undefined>;
        /**
         * Local identifier of the domain owner (for French domains).
         */
        localId?: pulumi.Input<string | undefined>;
    }
    interface RegistrationOwnerContactExtensionFrIndividualInfo {
        /**
         * Whether the individual contact has opted into WHOIS publishing.
         */
        whoisOptIn?: pulumi.Input<boolean | undefined>;
    }
    interface RegistrationOwnerContactExtensionFrTrademarkInfo {
        /**
         * Trademark information from INPI (French extension).
         */
        trademarkInpi?: pulumi.Input<string | undefined>;
    }
    interface RegistrationTechnicalContact {
        /**
         * Primary address line for the contact.
         */
        addressLine1: pulumi.Input<string>;
        /**
         * Secondary address line for the contact (optional).
         */
        addressLine2?: pulumi.Input<string | undefined>;
        /**
         * City of the contact's address.
         */
        city: pulumi.Input<string>;
        /**
         * Company identification code (e.g., SIREN/SIRET in France) for the contact.
         */
        companyIdentificationCode?: pulumi.Input<string | undefined>;
        /**
         * Name of the company associated with the contact (if applicable).
         */
        companyName?: pulumi.Input<string | undefined>;
        /**
         * Country code of the contact's address (ISO format).
         */
        country: pulumi.Input<string>;
        /**
         * Primary email address of the contact.
         */
        email: pulumi.Input<string>;
        /**
         * Alternative email address for the contact.
         */
        emailAlt?: pulumi.Input<string | undefined>;
        /**
         * Details specific to European domain extensions.
         */
        extensionEu?: pulumi.Input<inputs.domain.RegistrationTechnicalContactExtensionEu | undefined>;
        /**
         * Details specific to French domain extensions.
         */
        extensionFr?: pulumi.Input<inputs.domain.RegistrationTechnicalContactExtensionFr | undefined>;
        /**
         * Extension details specific to Dutch domain registrations.
         */
        extensionNls?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * Fax number for the contact (if available).
         */
        faxNumber?: pulumi.Input<string | undefined>;
        /**
         * First name of the contact.
         */
        firstname: pulumi.Input<string>;
        /**
         * Preferred language of the contact (e.g., 'en_US', 'fr_FR').
         */
        lang?: pulumi.Input<string | undefined>;
        /**
         * Last name of the contact.
         */
        lastname: pulumi.Input<string>;
        /**
         * Legal form of the contact (e.g., 'individual' or 'organization').
         */
        legalForm: pulumi.Input<string>;
        /**
         * Primary phone number of the contact.
         */
        phoneNumber: pulumi.Input<string>;
        /**
         * Indicates if the contact is used for resale purposes.
         */
        resale?: pulumi.Input<boolean | undefined>;
        /**
         * State or region of the contact.
         */
        state?: pulumi.Input<string | undefined>;
        /**
         * VAT identification code of the contact, if applicable.
         */
        vatIdentificationCode?: pulumi.Input<string | undefined>;
        /**
         * Indicates whether the contact has opted into WHOIS publishing.
         */
        whoisOptIn?: pulumi.Input<boolean | undefined>;
        /**
         * Postal code of the contact's address.
         */
        zip: pulumi.Input<string>;
    }
    interface RegistrationTechnicalContactExtensionEu {
        /**
         * Indicates the European citizenship of the contact.
         */
        europeanCitizenship?: pulumi.Input<string | undefined>;
    }
    interface RegistrationTechnicalContactExtensionFr {
        /**
         * Association-specific information for the domain (French extension).
         */
        associationInfo?: pulumi.Input<inputs.domain.RegistrationTechnicalContactExtensionFrAssociationInfo | undefined>;
        /**
         * AFNIC authorization information for the contact (French extension).
         */
        codeAuthAfnicInfo?: pulumi.Input<inputs.domain.RegistrationTechnicalContactExtensionFrCodeAuthAfnicInfo | undefined>;
        /**
         * DUNS information for the domain owner (specific to French domains).
         */
        dunsInfo?: pulumi.Input<inputs.domain.RegistrationTechnicalContactExtensionFrDunsInfo | undefined>;
        /**
         * Information about the individual registration for French domains.
         */
        individualInfo?: pulumi.Input<inputs.domain.RegistrationTechnicalContactExtensionFrIndividualInfo | undefined>;
        /**
         * Mode of the French extension (e.g., 'individual', 'duns', 'association', etc.).
         */
        mode?: pulumi.Input<string | undefined>;
        /**
         * Trademark-related information for the domain (French extension).
         */
        trademarkInfo?: pulumi.Input<inputs.domain.RegistrationTechnicalContactExtensionFrTrademarkInfo | undefined>;
    }
    interface RegistrationTechnicalContactExtensionFrAssociationInfo {
        /**
         * Publication date in the Official Journal (RFC3339 format) for association information.
         */
        publicationJo?: pulumi.Input<string | undefined>;
        /**
         * Page number of the publication in the Official Journal for association information.
         */
        publicationJoPage?: pulumi.Input<number | undefined>;
    }
    interface RegistrationTechnicalContactExtensionFrCodeAuthAfnicInfo {
        /**
         * AFNIC authorization code for the contact (specific to French domains).
         */
        codeAuthAfnic?: pulumi.Input<string | undefined>;
    }
    interface RegistrationTechnicalContactExtensionFrDunsInfo {
        /**
         * DUNS ID associated with the domain owner (for French domains).
         */
        dunsId?: pulumi.Input<string | undefined>;
        /**
         * Local identifier of the domain owner (for French domains).
         */
        localId?: pulumi.Input<string | undefined>;
    }
    interface RegistrationTechnicalContactExtensionFrIndividualInfo {
        /**
         * Whether the individual contact has opted into WHOIS publishing.
         */
        whoisOptIn?: pulumi.Input<boolean | undefined>;
    }
    interface RegistrationTechnicalContactExtensionFrTrademarkInfo {
        /**
         * Trademark information from INPI (French extension).
         */
        trademarkInpi?: pulumi.Input<string | undefined>;
    }
}
export declare namespace edgeservices {
    interface BackendStageContainerBackendConfig {
        /**
         * The ID of the Serverless Container.
         */
        containerId: pulumi.Input<string>;
        /**
         * `region`) The region of the Serverless Container.
         */
        region?: pulumi.Input<string | undefined>;
    }
    interface BackendStageFunctionBackendConfig {
        /**
         * The ID of the Serverless Function.
         */
        functionId: pulumi.Input<string>;
        /**
         * `region`) The region of the Serverless Function.
         */
        region?: pulumi.Input<string | undefined>;
    }
    interface BackendStageLbBackendConfig {
        /**
         * The Load Balancer config.
         */
        lbConfig?: pulumi.Input<inputs.edgeservices.BackendStageLbBackendConfigLbConfig | undefined>;
    }
    interface BackendStageLbBackendConfigLbConfig {
        /**
         * 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>;
    }
    interface BackendStageS3BackendConfig {
        /**
         * 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>;
    }
    interface CacheStagePurgeRequest {
        /**
         * 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>;
    }
    interface RouteStageRule {
        /**
         * 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.edgeservices.RouteStageRuleRuleHttpMatch | 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>;
    }
    interface RouteStageRuleRuleHttpMatch {
        /**
         * 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.edgeservices.RouteStageRuleRuleHttpMatchHostFilter | 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.edgeservices.RouteStageRuleRuleHttpMatchPathFilter | undefined>;
    }
    interface RouteStageRuleRuleHttpMatchHostFilter {
        /**
         * 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>;
    }
    interface RouteStageRuleRuleHttpMatchPathFilter {
        /**
         * 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>;
    }
    interface TlsStageSecret {
        /**
         * The region of the secret.
         */
        region?: pulumi.Input<string | undefined>;
        /**
         * The ID of the Secret
         */
        secretId?: pulumi.Input<string | undefined>;
    }
}
export declare namespace elasticmetal {
    interface ServerIp {
        /**
         * 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>;
    }
    interface ServerIpv4 {
        /**
         * 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>;
    }
    interface ServerIpv6 {
        /**
         * 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>;
    }
    interface ServerOption {
        /**
         * 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>;
    }
    interface ServerPrivateIp {
        /**
         * The address of the IPv6.
         */
        address?: pulumi.Input<string | undefined>;
        /**
         * The ID of the IPv6.
         */
        id?: pulumi.Input<string | undefined>;
    }
    interface ServerPrivateNetwork {
        /**
         * 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 declare namespace functions {
    interface TriggerNats {
        /**
         * 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>;
    }
    interface TriggerSqs {
        /**
         * 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 declare namespace hosting {
    interface HostingCpanelUrl {
        /**
         * The URL of the Dashboard.
         */
        dashboard?: pulumi.Input<string | undefined>;
        /**
         * The URL of the Webmail interface.
         */
        webmail?: pulumi.Input<string | undefined>;
    }
    interface HostingNameServer {
        /**
         * Hostname of the server
         */
        hostname?: pulumi.Input<string | undefined>;
        /**
         * Whether or not the webhosting is the default one
         */
        isDefault?: pulumi.Input<boolean | undefined>;
        /**
         * The hosting status.
         */
        status?: pulumi.Input<string | undefined>;
    }
    interface HostingOption {
        /**
         * The option ID.
         */
        id?: pulumi.Input<string | undefined>;
        /**
         * The option name.
         */
        name?: pulumi.Input<string | undefined>;
    }
    interface HostingRecord {
        /**
         * The option name.
         */
        name?: pulumi.Input<string | undefined>;
        /**
         * Priority of DNS records associated with the webhosting.
         */
        priority?: pulumi.Input<number | undefined>;
        /**
         * The hosting status.
         */
        status?: pulumi.Input<string | undefined>;
        /**
         * Time to live in seconds of the record
         */
        ttl?: pulumi.Input<number | undefined>;
        /**
         * Type of the DNS record
         */
        type?: pulumi.Input<string | undefined>;
        /**
         * Value of the DNS record
         */
        value?: pulumi.Input<string | undefined>;
    }
}
export declare namespace iam {
    interface PolicyRule {
        /**
         * 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>;
    }
    interface SamlServiceProvider {
        /**
         * (Computed) The assertion consumer service URL of the Service Provider.
         */
        assertionConsumerServiceUrl: pulumi.Input<string>;
        /**
         * (Computed) The entity ID of the Service Provider.
         */
        entityId: pulumi.Input<string>;
    }
}
export declare namespace inference {
    interface DeploymentPrivateEndpoint {
        /**
         * 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>;
    }
    interface DeploymentPrivateIp {
        /**
         * The private IPv4 address.
         */
        address?: pulumi.Input<string | undefined>;
        /**
         * (Optional) The id of the public endpoint.
         */
        id?: pulumi.Input<string | undefined>;
    }
    interface DeploymentPublicEndpoint {
        /**
         * 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>;
    }
    interface ModelNodesSupport {
        /**
         * The type of node supported.
         */
        nodeTypeName?: pulumi.Input<string | undefined>;
        /**
         * A list of supported quantization options, including:
         */
        quantizations?: pulumi.Input<pulumi.Input<inputs.inference.ModelNodesSupportQuantization>[] | undefined>;
    }
    interface ModelNodesSupportQuantization {
        /**
         * Whether this quantization is allowed.
         */
        allowed?: pulumi.Input<boolean | undefined>;
        /**
         * Maximum context length supported by this quantization.
         */
        maxContextSize?: pulumi.Input<number | undefined>;
        /**
         * Number of bits used for quantization (e.g., 8, 16).
         */
        quantizationBits?: pulumi.Input<number | undefined>;
    }
}
export declare namespace instance {
    interface ImageAdditionalVolume {
        /**
         * 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>;
    }
    interface ImageRootVolume {
        /**
         * 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>;
    }
    interface PrivateNicPrivateIp {
        /**
         * The private IP address.
         */
        address?: pulumi.Input<string | undefined>;
        /**
         * The ID of the IP address resource.
         */
        id?: pulumi.Input<string | undefined>;
    }
    interface SecurityGroupInboundRule {
        /**
         * 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>;
    }
    interface SecurityGroupOutboundRule {
        /**
         * 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>;
    }
    interface SecurityGroupRulesInboundRule {
        /**
         * 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>;
    }
    interface SecurityGroupRulesOutboundRule {
        /**
         * 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>;
    }
    interface ServerFilesystem {
        /**
         * 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>;
    }
    interface ServerPrivateIp {
        /**
         * The private IP address.
         */
        address?: pulumi.Input<string | undefined>;
        /**
         * The ID of the IP address resource.
         */
        id?: pulumi.Input<string | undefined>;
    }
    interface ServerPrivateNetwork {
        /**
         * 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>;
    }
    interface ServerPublicIp {
        /**
         * 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>;
    }
    interface ServerRootVolume {
        /**
         * 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>;
    }
    interface SnapshotImport {
        /**
         * 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 declare namespace interlink {
    interface LinkPeerBgpConfig {
        /**
         * AS Number of the BGP peer
         */
        asn?: pulumi.Input<number | undefined>;
        /**
         * IPv4 address of the BGP peer
         */
        ipv4?: pulumi.Input<string | undefined>;
        /**
         * IPv6 address of the BGP peer
         */
        ipv6?: pulumi.Input<string | undefined>;
    }
    interface LinkScwBgpConfig {
        /**
         * AS Number of the BGP peer
         */
        asn?: pulumi.Input<number | undefined>;
        /**
         * IPv4 address of the BGP peer
         */
        ipv4?: pulumi.Input<string | undefined>;
        /**
         * IPv6 address of the BGP peer
         */
        ipv6?: pulumi.Input<string | undefined>;
    }
}
export declare namespace iot {
    interface DeviceCertificate {
        /**
         * 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>;
    }
    interface DeviceMessageFilters {
        /**
         * Rules used to restrict topics the device can publish to.
         */
        publish?: pulumi.Input<inputs.iot.DeviceMessageFiltersPublish | undefined>;
        /**
         * Rules used to restrict topics the device can subscribe to.
         */
        subscribe?: pulumi.Input<inputs.iot.DeviceMessageFiltersSubscribe | undefined>;
    }
    interface DeviceMessageFiltersPublish {
        /**
         * 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>;
    }
    interface DeviceMessageFiltersSubscribe {
        /**
         * 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>;
    }
    interface RouteDatabase {
        /**
         * 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>;
    }
    interface RouteRest {
        /**
         * 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>;
    }
    interface RouteS3 {
        /**
         * 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 declare namespace ipam {
    interface GetIpResource {
        /**
         * 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;
    }
    interface GetIpResourceArgs {
        /**
         * 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>;
    }
    interface GetIpsResource {
        /**
         * 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;
    }
    interface GetIpsResourceArgs {
        /**
         * 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>;
    }
    interface IpCustomResource {
        /**
         * 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>;
    }
    interface IpResource {
        /**
         * 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>;
    }
    interface IpReverse {
        /**
         * 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>;
    }
    interface IpSource {
        /**
         * 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 declare namespace job {
    interface DefinitionCron {
        /**
         * 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>;
    }
    interface DefinitionRetryPolicy {
        /**
         * The maximum number of retries upon job failure.
         */
        maxRetries?: pulumi.Input<number | undefined>;
    }
    interface DefinitionSecretReference {
        /**
         * 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 declare namespace kafka {
    interface ClusterPrivateNetwork {
        /**
         * List of DNS records for the private endpoint.
         */
        dnsRecords?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * The ID of the private endpoint.
         */
        id?: pulumi.Input<string | undefined>;
        /**
         * The private network ID (same as input).
         */
        pnId: pulumi.Input<string>;
        /**
         * TCP port number.
         */
        port?: pulumi.Input<number | undefined>;
    }
    interface ClusterPublicNetwork {
        /**
         * List of DNS records for the private endpoint.
         */
        dnsRecords?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * The ID of the private endpoint.
         */
        id?: pulumi.Input<string | undefined>;
        /**
         * TCP port number.
         */
        port?: pulumi.Input<number | undefined>;
    }
}
export declare namespace keymanager {
    interface KeyRotationPolicy {
        /**
         * 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 declare namespace kubernetes {
    interface AclAclRule {
        /**
         * A text describing this rule.
         */
        description?: pulumi.Input<string | undefined>;
        /**
         * The ID of the ACL resource. It is the same as the ID of the cluster.
         */
        id?: pulumi.Input<string | undefined>;
        /**
         * The IP range to whitelist in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation)
         *
         * > **Important:** If the `ip` field is set, `scalewayRanges` cannot be set to true in the same rule.
         */
        ip?: pulumi.Input<string | undefined>;
        /**
         * Allow access to cluster from all Scaleway ranges as defined in [Scaleway Network Information - IP ranges used by Scaleway](https://www.scaleway.com/en/docs/console/account/reference-content/scaleway-network-information/#ip-ranges-used-by-scaleway).
         * Only one rule with this field set to true can be added.
         *
         * > **Important:** If the `scalewayRanges` field is set to true, the `ip` field cannot be set on the same rule.
         */
        scalewayRanges?: pulumi.Input<boolean | undefined>;
    }
    interface ClusterAutoUpgrade {
        /**
         * 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>;
    }
    interface ClusterAutoscalerConfig {
        /**
         * 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 be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.
         */
        expendablePodsPriorityCutoff?: pulumi.Input<number | undefined>;
        /**
         * Ignore DaemonSet pods when calculating resource utilization for scaling down.
         */
        ignoreDaemonsetsUtilization?: pulumi.Input<boolean | undefined>;
        /**
         * Autoscaler logging level expressed from 0 (least verbose) to 4 (most verbose).
         * Check out the [autoscaler's FAQ](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#how-can-i-increase-the-information-that-the-ca-is-logging) for details.
         *
         * > **Important:** For now, it is not possible to change the value of `logLevel` after creation. Changes to this field will recreate a new cluster resource.
         */
        logLevel?: pulumi.Input<number | undefined>;
        /**
         * Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node
         */
        maxGracefulTerminationSec?: pulumi.Input<number | undefined>;
        /**
         * How long after scale up that scale down evaluation resumes.
         */
        scaleDownDelayAfterAdd?: pulumi.Input<string | undefined>;
        /**
         * How long a node should be unneeded before it is eligible for scale down.
         */
        scaleDownUnneededTime?: pulumi.Input<string | undefined>;
        /**
         * Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down
         */
        scaleDownUtilizationThreshold?: pulumi.Input<number | undefined>;
        /**
         * If set to true, the autoscaler will never delete nodes with pods with local storage, e.g. EmptyDir or HostPath.
         *
         * > **Important:** For now, it is not possible to change the value of `skipNodesWithLocalStorage` after creation. Changes to this field will recreate a new cluster resource.
         */
        skipNodesWithLocalStorage?: pulumi.Input<boolean | undefined>;
    }
    interface ClusterKubeconfig {
        /**
         * The CA certificate of the Kubernetes API server.
         */
        clusterCaCertificate?: pulumi.Input<string | undefined>;
        /**
         * The raw kubeconfig file.
         */
        configFile?: pulumi.Input<string | undefined>;
        /**
         * The URL of the Kubernetes API server.
         */
        host?: pulumi.Input<string | undefined>;
        /**
         * The token to connect to the Kubernetes API server.
         */
        token?: pulumi.Input<string | undefined>;
    }
    interface ClusterOpenIdConnectConfig {
        /**
         * A client id that all tokens must be issued for
         */
        clientId: pulumi.Input<string>;
        /**
         * JWT claim to use as the user's group
         */
        groupsClaims?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * Prefix prepended to group claims
         */
        groupsPrefix?: pulumi.Input<string | undefined>;
        /**
         * URL of the provider which allows the API server to discover public signing keys
         */
        issuerUrl: pulumi.Input<string>;
        /**
         * Multiple key=value pairs that describes a required claim in the ID Token
         */
        requiredClaims?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * JWT claim to use as the user name
         */
        usernameClaim?: pulumi.Input<string | undefined>;
        /**
         * Prefix prepended to username
         */
        usernamePrefix?: pulumi.Input<string | undefined>;
    }
    interface PoolNode {
        /**
         * The ID of the IP address resource.
         */
        id?: pulumi.Input<string | undefined>;
        /**
         * The name for the pool. If not provided it will be generated.
         *
         * > **Important:** Updates to this field will recreate a new resource.
         *
         * > Note: In order to use the `createBeforeDestroy` option of the `lifecycle` field, `name` has to be generated, otherwise Terraform will try to create the new pool with the same name and the API does not allow that.
         */
        name?: pulumi.Input<string | undefined>;
        /**
         * The list of private IPv4 and IPv6 addresses associated with the node.
         */
        privateIps?: pulumi.Input<pulumi.Input<inputs.kubernetes.PoolNodePrivateIp>[] | undefined>;
        /**
         * The public IPv4. (Deprecated, Please use the official Kubernetes provider and the kubernetesNodes data source)
         *
         * @deprecated Please use the official Kubernetes provider and the kubernetesNodes data source
         */
        publicIp?: pulumi.Input<string | undefined>;
        /**
         * The public IPv6. (Deprecated, Please use the official Kubernetes provider and the kubernetesNodes data source)
         *
         * @deprecated Please use the official Kubernetes provider and the kubernetesNodes data source
         */
        publicIpV6?: pulumi.Input<string | undefined>;
        /**
         * The status of the node.
         */
        status?: pulumi.Input<string | undefined>;
    }
    interface PoolNodePrivateIp {
        /**
         * The private IP address.
         */
        address?: pulumi.Input<string | undefined>;
        /**
         * The ID of the IP address resource.
         */
        id?: pulumi.Input<string | undefined>;
    }
    interface PoolStartupTaint {
        /**
         * Effect of the taint
         */
        effect: pulumi.Input<string>;
        /**
         * Key of the taint
         */
        key: pulumi.Input<string>;
        /**
         * Value of the taint
         */
        value: pulumi.Input<string>;
    }
    interface PoolTaint {
        /**
         * Effect of the taint
         */
        effect: pulumi.Input<string>;
        /**
         * Key of the taint
         */
        key: pulumi.Input<string>;
        /**
         * Value of the taint
         */
        value: pulumi.Input<string>;
    }
    interface PoolUpgradePolicy {
        /**
         * The maximum number of nodes to be created during the upgrade
         */
        maxSurge?: pulumi.Input<number | undefined>;
        /**
         * The maximum number of nodes that can be not ready at the same time
         */
        maxUnavailable?: pulumi.Input<number | undefined>;
    }
}
export declare namespace loadbalancers {
    interface AclAction {
        /**
         * Redirect parameters when using an ACL with `redirect` action.
         */
        redirects?: pulumi.Input<pulumi.Input<inputs.loadbalancers.AclActionRedirect>[] | undefined>;
        /**
         * The action type. Possible values are: `allow` or `deny` or `redirect`.
         */
        type: pulumi.Input<string>;
    }
    interface AclActionRedirect {
        /**
         * The HTTP redirect code to use. Valid values are `301`, `302`, `303`, `307` and `308`.
         */
        code?: pulumi.Input<number | undefined>;
        /**
         * An URL can be used in case of a location redirect (e.g. `https://scaleway.com` will redirect to this same URL). A scheme name (e.g. `https`, `http`, `ftp`, `git`) will replace the request's original scheme.
         */
        target?: pulumi.Input<string | undefined>;
        /**
         * The redirect type. Possible values are: `location` or `scheme`.
         */
        type?: pulumi.Input<string | undefined>;
    }
    interface AclMatch {
        /**
         * The HTTP filter to match. This filter is supported only if your backend protocol has an HTTP forward protocol.
         * It extracts the request's URL path, which starts at the first slash and ends before the question mark (without the host part).
         * Possible values are: `aclHttpFilterNone`, `pathBegin`, `pathEnd`, `httpHeaderMatch` or `regex`.
         */
        httpFilter?: pulumi.Input<string | undefined>;
        /**
         * If you have `httpFilter` at `httpHeaderMatch`, you can use this field to filter on the HTTP header's value.
         */
        httpFilterOption?: pulumi.Input<string | undefined>;
        /**
         * A list of possible values to match for the given HTTP filter.
         * Keep in mind that in the case of `httpHeaderMatch` the HTTP header field name is case insensitive.
         */
        httpFilterValues?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * If set to `true`, the condition will be of type "unless".
         */
        invert?: pulumi.Input<boolean | undefined>;
        /**
         * A list of IPs, or CIDR v4/v6 addresses of the session client, to match. Only one of `ipSubnet` and `ipsEdgeServices` should be specified.
         */
        ipSubnets?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * Defines whether Edge Services IPs should be matched. Only one of `ipSubnet` and `ipsEdgeServices` should be specified.
         */
        ipsEdgeServices?: pulumi.Input<boolean | undefined>;
    }
    interface BackendHealthCheckHttp {
        /**
         * The expected HTTP status code
         */
        code?: pulumi.Input<number | undefined>;
        /**
         * The HTTP host header to use for HC requests
         */
        hostHeader?: pulumi.Input<string | undefined>;
        /**
         * The HTTP method to use for HC requests
         */
        method?: pulumi.Input<string | undefined>;
        /**
         * The HTTP endpoint URL to call for HC requests
         */
        uri: pulumi.Input<string>;
    }
    interface BackendHealthCheckHttps {
        /**
         * The expected HTTP status code
         */
        code?: pulumi.Input<number | undefined>;
        /**
         * The HTTP host header to use for HC requests
         */
        hostHeader?: pulumi.Input<string | undefined>;
        /**
         * The HTTP method to use for HC requests
         */
        method?: pulumi.Input<string | undefined>;
        /**
         * The SNI to use for HC requests over SSL
         */
        sni?: pulumi.Input<string | undefined>;
        /**
         * The HTTPS endpoint URL to call for HC requests
         */
        uri: pulumi.Input<string>;
    }
    interface BackendHealthCheckTcp {
    }
    interface CertificateCustomCertificate {
        /**
         * The full PEM-formatted certificate chain
         */
        certificateChain: pulumi.Input<string>;
    }
    interface CertificateLetsencrypt {
        /**
         * Main domain of the certificate
         */
        commonName: pulumi.Input<string>;
        /**
         * The alternative domain names of the certificate
         */
        subjectAlternativeNames?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    }
    interface FrontendAcl {
        /**
         * Action to undertake when an ACL filter matches.
         */
        action: pulumi.Input<inputs.loadbalancers.FrontendAclAction>;
        /**
         * The date and time the frontend was created.
         */
        createdAt?: pulumi.Input<string | undefined>;
        /**
         * Description of the ACL
         */
        description?: pulumi.Input<string | undefined>;
        /**
         * The ACL match rule. At least `ipSubnet` or `ipsEdgeServices` or `httpFilter` and `httpFilterValue` are required.
         */
        match: pulumi.Input<inputs.loadbalancers.FrontendAclMatch>;
        /**
         * The ACL name. If not provided it will be randomly generated.
         */
        name?: pulumi.Input<string | undefined>;
        /**
         * The date and time the frontend resource was updated.
         */
        updatedAt?: pulumi.Input<string | undefined>;
    }
    interface FrontendAclAction {
        /**
         * Redirect parameters when using an ACL with `redirect` action.
         */
        redirects?: pulumi.Input<pulumi.Input<inputs.loadbalancers.FrontendAclActionRedirect>[] | undefined>;
        /**
         * The action type. Possible values are: `allow` or `deny` or `redirect`.
         */
        type: pulumi.Input<string>;
    }
    interface FrontendAclActionRedirect {
        /**
         * The HTTP redirect code to use. Valid values are `301`, `302`, `303`, `307` and `308`.
         */
        code?: pulumi.Input<number | undefined>;
        /**
         * A URL can be used in case of a location redirect (e.g. `https://scaleway.com` will redirect to this same URL). A scheme name (e.g. `https`, `http`, `ftp`, `git`) will replace the request's original scheme.
         */
        target?: pulumi.Input<string | undefined>;
        /**
         * The redirect type. Possible values are: `location` or `scheme`.
         */
        type?: pulumi.Input<string | undefined>;
    }
    interface FrontendAclMatch {
        /**
         * The HTTP filter to match. This filter is supported only if your backend protocol has an HTTP forward protocol.
         * It extracts the request's URL path, which starts at the first slash and ends before the question mark (without the host part).
         * Possible values are: `aclHttpFilterNone`, `pathBegin`, `pathEnd`, `httpHeaderMatch` or `regex`.
         */
        httpFilter?: pulumi.Input<string | undefined>;
        /**
         * If you have `httpFilter` at `httpHeaderMatch`, you can use this field to filter on the HTTP header's value.
         */
        httpFilterOption?: pulumi.Input<string | undefined>;
        /**
         * A list of possible values to match for the given HTTP filter.
         * Keep in mind that in the case of `httpHeaderMatch` the HTTP header field name is case insensitive.
         */
        httpFilterValues?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * If set to `true`, the condition will be of type "unless".
         */
        invert?: pulumi.Input<boolean | undefined>;
        /**
         * A list of IPs, or CIDR v4/v6 addresses of the session client, to match. Only one of `ipSubnet` and `ipsEdgeServices` should be specified.
         */
        ipSubnets?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * Defines whether Edge Services IPs should be matched. Only one of `ipSubnet` and `ipsEdgeServices` should be specified.
         */
        ipsEdgeServices?: pulumi.Input<boolean | undefined>;
    }
    interface LoadBalancerPrivateIp {
        /**
         * The private IP address.
         */
        address?: pulumi.Input<string | undefined>;
        /**
         * The ID of the IP address resource.
         */
        id?: pulumi.Input<string | undefined>;
    }
    interface LoadBalancerPrivateNetwork {
        /**
         * Set to true if you want to let DHCP assign IP addresses
         *
         * @deprecated dhcp_config field is deprecated, please use `privateNetworkId` or `ipamIds` instead
         */
        dhcpConfig?: pulumi.Input<boolean | undefined>;
        /**
         * IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.
         */
        ipamIds?: pulumi.Input<string | undefined>;
        /**
         * The ID of the Private Network to attach to.
         * - > **Important:** Updates to `privateNetwork` will recreate the attachment.
         */
        privateNetworkId: pulumi.Input<string>;
        /**
         * Define an IP address in the subnet of your private network that will be assigned to your load balancer instance
         *
         * @deprecated static_config field is deprecated, please use `privateNetworkId` or `ipamIds` instead
         */
        staticConfigs?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * The status of the private network connection.
         */
        status?: pulumi.Input<string | undefined>;
        /**
         * `zone`) The zone of the Load Balancer.
         */
        zone?: pulumi.Input<string | undefined>;
    }
}
export declare namespace mnq {
    interface SnsCredentialsPermissions {
        /**
         * . Defines whether the user can manage the associated resource(s).
         */
        canManage?: pulumi.Input<boolean | undefined>;
        /**
         * . Defines whether the user can publish messages to the service.
         */
        canPublish?: pulumi.Input<boolean | undefined>;
        /**
         * . Defines whether the user can receive messages from the service.
         */
        canReceive?: pulumi.Input<boolean | undefined>;
    }
    interface SqsCredentialsPermissions {
        /**
         * . Defines whether the user can manage the associated resource(s).
         */
        canManage?: pulumi.Input<boolean | undefined>;
        /**
         * . Defines whether the user can publish messages to the service.
         */
        canPublish?: pulumi.Input<boolean | undefined>;
        /**
         * . Defines whether the user can receive messages from the service.
         */
        canReceive?: pulumi.Input<boolean | undefined>;
    }
    interface SqsQueueDeadLetterQueue {
        /**
         * The ID of the queue with format `{region/{project-id}/{queue-name}`
         */
        id: pulumi.Input<string>;
        /**
         * The number of times a message is delivered to the source queue before being sent to the dead-letter queue. Must be between 1 and 1,000.
         */
        maxReceiveCount: pulumi.Input<number>;
    }
}
export declare namespace mongodb {
    interface InstancePrivateIp {
        /**
         * The private IPv4 address.
         */
        address?: pulumi.Input<string | undefined>;
        /**
         * The ID of the endpoint.
         */
        id?: pulumi.Input<string | undefined>;
    }
    interface InstancePrivateNetwork {
        /**
         * List of DNS records for your endpoint.
         */
        dnsRecords?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * The ID of the endpoint.
         */
        id?: pulumi.Input<string | undefined>;
        /**
         * List of IP addresses for your endpoint.
         */
        ips?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * The ID of the Private Network.
         */
        pnId: pulumi.Input<string>;
        /**
         * TCP port of the endpoint.
         */
        port?: pulumi.Input<number | undefined>;
    }
    interface InstancePublicNetwork {
        /**
         * The DNS record of your endpoint
         */
        dnsRecord?: pulumi.Input<string | undefined>;
        /**
         * The ID of the endpoint.
         */
        id?: pulumi.Input<string | undefined>;
        /**
         * TCP port of the endpoint.
         */
        port?: pulumi.Input<number | undefined>;
    }
    interface UserRole {
        /**
         * Apply the role to all databases. Cannot be used with `databaseName`.
         */
        anyDatabase?: pulumi.Input<boolean | undefined>;
        /**
         * The database name for the role. Cannot be used with `anyDatabase`.
         */
        databaseName?: pulumi.Input<string | undefined>;
        /**
         * The role name. Valid values are `read`, `readWrite`, `dbAdmin`, `sync`.
         */
        role: pulumi.Input<string>;
    }
}
export declare namespace network {
    interface AclRule {
        /**
         * The policy to apply to the packet.
         */
        action?: pulumi.Input<string | undefined>;
        /**
         * The rule description.
         */
        description?: pulumi.Input<string | undefined>;
        /**
         * The destination IP range to which this rule applies (CIDR notation with subnet mask).
         */
        destination?: pulumi.Input<string | undefined>;
        /**
         * The ending port of the destination port range to which this rule applies (inclusive).
         */
        dstPortHigh?: pulumi.Input<number | undefined>;
        /**
         * The starting port of the destination port range to which this rule applies (inclusive).
         */
        dstPortLow?: pulumi.Input<number | undefined>;
        /**
         * The protocol to which this rule applies. Default value: ANY.
         */
        protocol?: pulumi.Input<string | undefined>;
        /**
         * The Source IP range to which this rule applies (CIDR notation with subnet mask).
         */
        source?: pulumi.Input<string | undefined>;
        /**
         * The ending port of the source port range to which this rule applies (inclusive).
         */
        srcPortHigh?: pulumi.Input<number | undefined>;
        /**
         * The starting port of the source port range to which this rule applies (inclusive).
         */
        srcPortLow?: pulumi.Input<number | undefined>;
    }
    interface GatewayNetworkIpamConfig {
        /**
         * Use this IPAM-booked IP ID as the Gateway's IP in this Private Network.
         */
        ipamIpId?: pulumi.Input<string | undefined>;
        /**
         * Defines whether to enable the default route on the GatewayNetwork.
         */
        pushDefaultRoute?: pulumi.Input<boolean | undefined>;
    }
    interface GatewayNetworkPrivateIp {
        /**
         * The private IPv4 address.
         */
        address?: pulumi.Input<string | undefined>;
        /**
         * The ID of the IPv4 address resource.
         */
        id?: pulumi.Input<string | undefined>;
    }
    interface PrivateNetworkIpv4Subnet {
        /**
         * The network address of the subnet in hexadecimal notation, e.g., '2001:db8::' for a '2001:db8::/64' subnet.
         */
        address?: pulumi.Input<string | undefined>;
        /**
         * The date and time of the creation of the subnet.
         */
        createdAt?: pulumi.Input<string | undefined>;
        /**
         * The subnet ID.
         */
        id?: pulumi.Input<string | undefined>;
        /**
         * The length of the network prefix, e.g., 64 for a 'ffff:ffff:ffff:ffff::' mask.
         */
        prefixLength?: pulumi.Input<number | undefined>;
        /**
         * The subnet CIDR.
         */
        subnet?: pulumi.Input<string | undefined>;
        /**
         * The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet
         */
        subnetMask?: pulumi.Input<string | undefined>;
        /**
         * The date and time of the last update of the subnet.
         */
        updatedAt?: pulumi.Input<string | undefined>;
    }
    interface PrivateNetworkIpv6Subnet {
        /**
         * The network address of the subnet in hexadecimal notation, e.g., '2001:db8::' for a '2001:db8::/64' subnet.
         */
        address?: pulumi.Input<string | undefined>;
        /**
         * The date and time of the creation of the subnet.
         */
        createdAt?: pulumi.Input<string | undefined>;
        /**
         * The subnet ID.
         */
        id?: pulumi.Input<string | undefined>;
        /**
         * The length of the network prefix, e.g., 64 for a 'ffff:ffff:ffff:ffff::' mask.
         */
        prefixLength?: pulumi.Input<number | undefined>;
        /**
         * The subnet CIDR.
         */
        subnet?: pulumi.Input<string | undefined>;
        /**
         * The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet
         */
        subnetMask?: pulumi.Input<string | undefined>;
        /**
         * The date and time of the last update of the subnet.
         */
        updatedAt?: pulumi.Input<string | undefined>;
    }
}
export declare namespace object {
    interface BucketAclAccessControlPolicy {
        /**
         * Grant
         */
        grants?: pulumi.Input<pulumi.Input<inputs.object.BucketAclAccessControlPolicyGrant>[] | undefined>;
        /**
         * Configuration block of the bucket project owner's display organization ID.
         */
        owner: pulumi.Input<inputs.object.BucketAclAccessControlPolicyOwner>;
    }
    interface BucketAclAccessControlPolicyGrant {
        /**
         * Configuration block for the project being granted permissions.
         */
        grantee?: pulumi.Input<inputs.object.BucketAclAccessControlPolicyGrantGrantee | undefined>;
        /**
         * Logging permissions assigned to the grantee for the bucket.
         */
        permission: pulumi.Input<string>;
    }
    interface BucketAclAccessControlPolicyGrantGrantee {
        /**
         * Display name of the grantee to grant access to.
         */
        displayName?: pulumi.Input<string | undefined>;
        /**
         * The `region`, `bucket` and `acl` separated by (`/`).
         */
        id?: pulumi.Input<string | undefined>;
        /**
         * Type of grantee. Valid values: `CanonicalUser`, `Group`
         */
        type?: pulumi.Input<string | undefined>;
        /**
         * The uri of the grantee if you are granting permissions to a predefined group.
         */
        uri?: pulumi.Input<string | undefined>;
    }
    interface BucketAclAccessControlPolicyOwner {
        /**
         * The project ID of the grantee.
         */
        displayName?: pulumi.Input<string | undefined>;
        /**
         * The `region`, `bucket` and `acl` separated by (`/`).
         */
        id: pulumi.Input<string>;
    }
    interface BucketCorsRule {
        /**
         * Specifies which headers are allowed.
         */
        allowedHeaders?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * Specifies which methods are allowed (`GET`, `PUT`, `POST`, `DELETE` or `HEAD`).
         */
        allowedMethods: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Specifies which origins are allowed.
         */
        allowedOrigins: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Specifies header exposure in the response.
         */
        exposeHeaders?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * Specifies time in seconds that the browser can cache the response for a preflight request.
         */
        maxAgeSeconds?: pulumi.Input<number | undefined>;
    }
    interface BucketLifecycleRule {
        /**
         * Specifies the number
         * of days after initiating a multipart upload when the multipart upload must
         * be completed.
         *
         * > **Important:** Avoid using `prefix` for `AbortIncompleteMultipartUpload`,
         * as any incomplete multipart upload will be billed.
         */
        abortIncompleteMultipartUploadDays?: pulumi.Input<number | undefined>;
        /**
         * The element value can be either Enabled or
         * Disabled. If a rule is disabled, Scaleway Object Storage does not perform
         * any of the actions defined in the rule.
         */
        enabled: pulumi.Input<boolean>;
        /**
         * Specifies a period of expiration for the object.
         */
        expiration?: pulumi.Input<inputs.object.BucketLifecycleRuleExpiration | undefined>;
        /**
         * Unique identifier for the rule. Must be less than or
         * equal to 255 characters in length.
         */
        id?: pulumi.Input<string | undefined>;
        /**
         * Configuration block that
         * specifies when noncurrent object versions expire. Supports the following:
         */
        noncurrentVersionExpiration?: pulumi.Input<inputs.object.BucketLifecycleRuleNoncurrentVersionExpiration | undefined>;
        /**
         * Set of configuration blocks
         * that specify the transition rule for the lifecycle rule that describes when
         * noncurrent objects transition to a specific storage class. Supports the
         * following:
         */
        noncurrentVersionTransitions?: pulumi.Input<pulumi.Input<inputs.object.BucketLifecycleRuleNoncurrentVersionTransition>[] | undefined>;
        /**
         * Minimum object size (in bytes) to
         * which the rule applies.
         */
        objectSizeGreaterThan?: pulumi.Input<number | undefined>;
        /**
         * Maximum object size (in bytes) to
         * which the rule applies.
         */
        objectSizeLessThan?: pulumi.Input<number | undefined>;
        /**
         * Object key prefix identifying one or more objects
         * to which the rule applies.
         */
        prefix?: pulumi.Input<string | undefined>;
        /**
         * Specifies object tags key and value.
         */
        tags?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        } | undefined>;
        /**
         * Specifies a period in the object's transitions.
         */
        transitions?: pulumi.Input<pulumi.Input<inputs.object.BucketLifecycleRuleTransition>[] | undefined>;
    }
    interface BucketLifecycleRuleExpiration {
        /**
         * Specifies the date the object is to be moved or
         * deleted. The date value must be in RFC3339 full-date format e.g.
         * `2023-08-22`.
         */
        date?: pulumi.Input<string | undefined>;
        /**
         * Specifies the number of days after object creation
         * when the specific rule action takes effect.
         */
        days?: pulumi.Input<number | undefined>;
        /**
         * Specifies whether Scaleway
         * Object will remove a delete marker with no noncurrent versions. If set
         * to `true`, the delete marker will be expired; if set to `false` the
         * policy takes no action.
         */
        expiredObjectDeleteMarker?: pulumi.Input<boolean | undefined>;
    }
    interface BucketLifecycleRuleNoncurrentVersionExpiration {
        /**
         * Number of noncurrent versions
         * Scaleway Object Storage will retain. Must be a non-zero positive integer.
         */
        newerNoncurrentVersions?: pulumi.Input<number | undefined>;
        /**
         * Number of days an object is noncurrent
         * before Scaleway Object Storage can perform the associated action. Must
         * be a positive integer.
         */
        noncurrentDays?: pulumi.Input<number | undefined>;
    }
    interface BucketLifecycleRuleNoncurrentVersionTransition {
        /**
         * Number of noncurrent versions
         * Scaleway Object Storage will retain. Must be a non-zero positive integer.
         */
        newerNoncurrentVersions?: pulumi.Input<number | undefined>;
        /**
         * Number of days an object is noncurrent
         * before Scaleway Object Storage can perform the associated action.
         */
        noncurrentDays: pulumi.Input<number>;
        /**
         * Specifies the Scaleway [storage class](https://www.scaleway.com/en/docs/object-storage/concepts/#storage-class)
         * `STANDARD`, `GLACIER`, `ONEZONE_IA` to which you want the object to
         * transition.
         *
         * > **Important:** If versioning is enabled, this rule only deletes the current
         * version of an object.
         */
        storageClass: pulumi.Input<string>;
    }
    interface BucketLifecycleRuleTransition {
        /**
         * Specifies the date objects are transitioned to the
         * specified storage class. The date value must be in RFC3339 full-date
         * format e.g. `2023-08-22`.
         */
        date?: pulumi.Input<string | undefined>;
        /**
         * Specifies the number of days after object creation
         * when the specific rule action takes effect.
         */
        days?: pulumi.Input<number | undefined>;
        /**
         * Specifies the Scaleway [storage class](https://www.scaleway.com/en/docs/object-storage/concepts/#storage-class)
         * `STANDARD`, `GLACIER`, `ONEZONE_IA` to which you want the object to
         * transition.
         *
         * > **Important:** `ONEZONE_IA` is only available in `fr-par` region. The
         * storage class `GLACIER` is not available in `pl-waw` region.
         *
         * > **Important:** At least one of `abortIncompleteMultipartUploadDays`,
         * `expiration`, `transition` must be specified.
         */
        storageClass: pulumi.Input<string>;
    }
    interface BucketLockConfigurationRule {
        /**
         * The default retention for the lock.
         */
        defaultRetention: pulumi.Input<inputs.object.BucketLockConfigurationRuleDefaultRetention>;
    }
    interface BucketLockConfigurationRuleDefaultRetention {
        /**
         * The number of days you want to specify for the default retention period.
         */
        days?: pulumi.Input<number | undefined>;
        /**
         * The default object lock retention mode you want to apply to new objects placed in the specified bucket. Valid values are `GOVERNANCE` or `COMPLIANCE`. Refer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/object-lock/#retention-modes) for more information on retention modes.
         */
        mode: pulumi.Input<string>;
        /**
         * The number of years you want to specify for the default retention period.
         */
        years?: pulumi.Input<number | undefined>;
    }
    interface BucketServerSideEncryptionConfigurationRule {
        /**
         * Single object for setting server-side encryption by default.
         */
        applyServerSideEncryptionByDefault?: pulumi.Input<inputs.object.BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault | undefined>;
        /**
         * Whether or not to use Scaleway Object Bucket Keys for SSE-KMS.
         */
        bucketKeyEnabled?: pulumi.Input<boolean | undefined>;
    }
    interface BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault {
        /**
         * Scaleway KMS master key ID used for the SSE-KMS encryption.
         * This can only be used when you set the value of sseAlgorithm as `aws:kms`. Will return an error
         * if this element is absent while the sseAlgorithm is `aws:kms`.
         */
        kmsMasterKeyId?: pulumi.Input<string | undefined>;
        /**
         * Server-side encryption algorithm to use. Valid values are `AES256`, `aws:kms`.
         */
        sseAlgorithm: pulumi.Input<string>;
    }
    interface BucketVersioning {
        /**
         * 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>;
    }
    interface BucketWebsiteConfigurationErrorDocument {
        /**
         * The object key name to use when a 4XX class error occurs.
         */
        key: pulumi.Input<string>;
    }
    interface BucketWebsiteConfigurationIndexDocument {
        /**
         * A suffix that is appended to a request targeting a specific directory on the website endpoint.
         *
         * > **Important:** The suffix must not be empty and must not include a slash character. The routing is not supported.
         */
        suffix: pulumi.Input<string>;
    }
}
export declare namespace observability {
    interface AlertManagerContactPoint {
        /**
         * Email addresses for the alert receivers
         */
        email?: pulumi.Input<string | undefined>;
    }
    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>;
    }
    interface CockpitPushUrl {
        /**
         * Push URL for logs (Grafana Loki)
         */
        pushLogsUrl?: pulumi.Input<string | undefined>;
        /**
         * Push URL for metrics (Grafana Mimir)
         */
        pushMetricsUrl?: pulumi.Input<string | undefined>;
    }
    interface ExporterDatadogDestination {
        /**
         * Datadog API key. Sensitive.
         */
        apiKey: pulumi.Input<string>;
        /**
         * Datadog endpoint URL. Defaults to `https://api.datadoghq.com`.
         */
        endpoint?: pulumi.Input<string | undefined>;
    }
    interface ExporterOtlpDestination {
        /**
         * OTLP endpoint URL.
         */
        endpoint: pulumi.Input<string>;
        /**
         * Headers to include in requests.
         */
        headers?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        } | undefined>;
    }
    interface TokenScopes {
        /**
         * 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 declare namespace opensearch {
    interface DeploymentEndpoint {
        /**
         * The ID of the endpoint.
         */
        id?: pulumi.Input<string | undefined>;
        /**
         * Private network ID if the endpoint is private.
         */
        privateNetworkId?: pulumi.Input<string | undefined>;
        /**
         * Whether the endpoint is public (true) or private (false).
         */
        public?: pulumi.Input<boolean | undefined>;
        /**
         * List of services exposed on the endpoint.
         */
        services?: pulumi.Input<pulumi.Input<inputs.opensearch.DeploymentEndpointService>[] | undefined>;
    }
    interface DeploymentEndpointService {
        /**
         * Name of the OpenSearch deployment. If not specified, a random name will be generated.
         */
        name?: pulumi.Input<string | undefined>;
        /**
         * Service port number.
         */
        port?: pulumi.Input<number | undefined>;
        /**
         * Full URL to access the service (e.g., <https://abc-123.searchdb.fr-par.scw.cloud:9200>).
         */
        url?: pulumi.Input<string | undefined>;
    }
    interface DeploymentPrivateNetwork {
        /**
         * The ID of the private network. Format: `{region}/{id}` or just `{id}`.
         */
        privateNetworkId: pulumi.Input<string>;
    }
    interface DeploymentVolume {
        /**
         * Volume size in GB. Changing this forces recreation of the deployment.
         */
        sizeInGb: pulumi.Input<number>;
        /**
         * Volume type. Valid values are `sbs5k` (5K IOPS) or `sbs15k` (15K IOPS). Changing this forces recreation of the deployment.
         */
        type: pulumi.Input<string>;
    }
}
export declare namespace redis {
    interface ClusterAcl {
        /**
         * A text describing this rule. Default description: `Allow IP`
         *
         * > The `acl` conflict with `privateNetwork`. Only one should be specified.
         */
        description?: pulumi.Input<string | undefined>;
        /**
         * The ID of the IPv4 address resource.
         */
        id?: 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>;
    }
    interface ClusterPrivateIp {
        /**
         * The private IPv4 address.
         */
        address?: pulumi.Input<string | undefined>;
        /**
         * The ID of the IPv4 address resource.
         */
        id?: pulumi.Input<string | undefined>;
    }
    interface ClusterPrivateNetwork {
        /**
         * The ID of the endpoint.
         */
        endpointId?: pulumi.Input<string | undefined>;
        /**
         * The UUID of the Private Network resource.
         */
        id: pulumi.Input<string>;
        /**
         * List of IPv4 addresses of the endpoint.
         */
        ips?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * TCP port of the endpoint.
         */
        port?: pulumi.Input<number | undefined>;
        /**
         * Endpoint IPv4 addresses in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) (IPv6 is not supported by the Scaleway API). You must provide at least one IP per node.
         * Keep in mind that in cluster mode you cannot edit your Private Network after its creation so if you want to be able to
         * scale your cluster horizontally (adding nodes) later, you should provide more IPs than nodes.
         * If not set, the IP network address within the private subnet is determined by the IP Address Management (IPAM) service.
         * > **Important:** When IPAM is enabled, the IPs specified here will be ignored and should not be provided.
         *
         * > The `privateNetwork` conflicts with `acl`. Only one should be specified.
         *
         * > **Important:** The way to use Private Networks differs whether you are using Redis™ in Standalone or cluster mode.
         *
         * - Standalone mode (`clusterSize` = 1) : you can attach as many Private Networks as you want (each must be a separate
         * block). If you detach your only Private Network, your cluster won't be reachable until you define a new Private or
         * Public Network. You can modify your `privateNetwork` and its specs, you can have both a Private and Public Network side
         * by side.
         *
         * - Cluster mode (`clusterSize` > 2) : you can define a single Private Network as you create your cluster, you won't be
         * able to edit or detach it afterward, unless you create another cluster. This also means that, if you are using a static
         * configuration (`serviceIps`), you won't be able to scale your cluster horizontally (add more nodes) since it would
         * require updating the Private Network to add IPs.
         * Your `serviceIps` must be listed as follows:
         */
        serviceIps?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * `zone`) The zone in which the
         * Redis™ cluster should be created.
         */
        zone?: pulumi.Input<string | undefined>;
    }
    interface ClusterPublicNetwork {
        /**
         * The ID of the IPv4 address resource.
         */
        id?: pulumi.Input<string | undefined>;
        /**
         * List of IPv4 addresses of the endpoint.
         */
        ips?: pulumi.Input<pulumi.Input<string>[] | undefined>;
        /**
         * TCP port of the endpoint.
         */
        port?: pulumi.Input<number | undefined>;
    }
}
export declare namespace s2svpn {
    interface ConnectionBgpConfigIpv4 {
        /**
         * The BGP peer IP on customer side (within the tunnel).
         */
        peerPrivateIp?: pulumi.Input<string | undefined>;
        /**
         * The BGP peer IP on Scaleway side (within the tunnel).
         */
        privateIp?: pulumi.Input<string | undefined>;
        /**
         * The routing policy ID used for this BGP session.
         */
        routingPolicyId: pulumi.Input<string>;
    }
    interface ConnectionBgpConfigIpv6 {
        /**
         * The BGP peer IP on customer side (within the tunnel).
         */
        peerPrivateIp?: pulumi.Input<string | undefined>;
        /**
         * The BGP peer IP on Scaleway side (within the tunnel).
         */
        privateIp?: pulumi.Input<string | undefined>;
        /**
         * The routing policy ID used for this BGP session.
         */
        routingPolicyId: pulumi.Input<string>;
    }
    interface ConnectionBgpSessionIpv4 {
        /**
         * The BGP peer IP on customer side (within the tunnel).
         */
        peerPrivateIp?: pulumi.Input<string | undefined>;
        /**
         * The BGP peer IP on Scaleway side (within the tunnel).
         */
        privateIp?: pulumi.Input<string | undefined>;
        /**
         * The routing policy ID used for this BGP session.
         */
        routingPolicyId?: pulumi.Input<string | undefined>;
    }
    interface ConnectionBgpSessionIpv6 {
        /**
         * The BGP peer IP on customer side (within the tunnel).
         */
        peerPrivateIp?: pulumi.Input<string | undefined>;
        /**
         * The BGP peer IP on Scaleway side (within the tunnel).
         */
        privateIp?: pulumi.Input<string | undefined>;
        /**
         * The routing policy ID used for this BGP session.
         */
        routingPolicyId?: pulumi.Input<string | undefined>;
    }
    interface ConnectionEspCipher {
        /**
         * The Diffie-Hellman group
         */
        dhGroup?: pulumi.Input<string | undefined>;
        /**
         * The encryption algorithm
         */
        encryption: pulumi.Input<string>;
        /**
         * The integrity/hash algorithm
         */
        integrity?: pulumi.Input<string | undefined>;
    }
    interface ConnectionIkev2Cipher {
        /**
         * The Diffie-Hellman group
         */
        dhGroup?: pulumi.Input<string | undefined>;
        /**
         * The encryption algorithm
         */
        encryption: pulumi.Input<string>;
        /**
         * The integrity/hash algorithm
         */
        integrity?: pulumi.Input<string | undefined>;
    }
    interface GatewayPublicConfig {
        /**
         * The ID of the IPAM IPv4 address to use as the public IP for the VPN gateway.
         */
        ipamIpv4Id?: pulumi.Input<string | undefined>;
        /**
         * The ID of the IPAM IPv6 address to use as the public IP for the VPN gateway.
         */
        ipamIpv6Id?: pulumi.Input<string | undefined>;
    }
}
export declare namespace secrets {
    interface SecretEphemeralPolicy {
        /**
         * Action to perform when the version of a secret expires. Available values can be found in [SDK constants](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/secret/v1beta1#pkg-constants).
         */
        action: pulumi.Input<string>;
        /**
         * True if the secret version expires after a single user access.
         */
        expiresOnceAccessed?: pulumi.Input<boolean | undefined>;
        /**
         * Time frame, from one second and up to one year, during which the secret's versions are valid. Has to be specified in [Go Duration format](https://pkg.go.dev/time#ParseDuration) (ex: "30m", "24h").
         */
        ttl?: pulumi.Input<string | undefined>;
    }
    interface SecretVersion {
        /**
         * Date and time of the secret's creation (in RFC 3339 format).
         */
        createdAt?: pulumi.Input<string | undefined>;
        /**
         * Description of the secret (e.g. `my-new-description`).
         */
        description?: pulumi.Input<string | undefined>;
        /**
         * Returns true if the version is the latest.
         */
        latest?: pulumi.Input<boolean | undefined>;
        /**
         * The revision of secret version
         */
        revision?: pulumi.Input<string | undefined>;
        /**
         * The secret ID associated with this version
         */
        secretId?: pulumi.Input<string | undefined>;
        /**
         * The status of the secret.
         */
        status?: pulumi.Input<string | undefined>;
        /**
         * Date and time of the secret's last update (in RFC 3339 format).
         */
        updatedAt?: pulumi.Input<string | undefined>;
    }
}
export declare namespace tem {
    interface DomainReputation {
        /**
         * The previously-calculated domain's reputation score.
         */
        previousScore?: pulumi.Input<number | undefined>;
        /**
         * The time and date the previous reputation score was calculated.
         */
        previousScoredAt?: pulumi.Input<string | undefined>;
        /**
         * A range from 0 to 100 that determines your domain's reputation score.
         */
        score?: pulumi.Input<number | undefined>;
        /**
         * The time and date the score was calculated.
         */
        scoredAt?: pulumi.Input<string | undefined>;
        /**
         * The status of the domain's reputation.
         */
        status?: pulumi.Input<string | undefined>;
    }
}
//# sourceMappingURL=input.d.ts.map