import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; export interface BaremetalServerIp { /** * The address of the IPv6. */ address?: pulumi.Input; /** * The ID of the IPv6. */ id?: pulumi.Input; /** * The reverse of the IPv6. */ reverse?: pulumi.Input; /** * The type of the IPv6. */ version?: pulumi.Input; } export interface BaremetalServerIpv4 { /** * The address of the IPv6. */ address?: pulumi.Input; /** * The ID of the IPv6. */ id?: pulumi.Input; /** * The reverse of the IPv6. */ reverse?: pulumi.Input; /** * The type of the IPv6. */ version?: pulumi.Input; } export interface BaremetalServerIpv6 { /** * The address of the IPv6. */ address?: pulumi.Input; /** * The ID of the IPv6. */ id?: pulumi.Input; /** * The reverse of the IPv6. */ reverse?: pulumi.Input; /** * The type of the IPv6. */ version?: pulumi.Input; } export interface BaremetalServerOption { /** * The auto expiration date for compatible options */ expiresAt?: pulumi.Input; /** * 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; /** * The name of the server. */ name?: pulumi.Input; } export interface BaremetalServerPrivateNetwork { /** * The date and time of the creation of the private network. */ createdAt?: pulumi.Input; /** * The id of the private network to attach. */ id: pulumi.Input; /** * List of IPAM IP IDs to assign to the server in the requested private network. */ ipamIpIds?: pulumi.Input[]>; /** * The private network status. */ status?: pulumi.Input; /** * The date and time of the last update of the private network. */ updatedAt?: pulumi.Input; /** * The VLAN ID associated to the private network. */ vlan?: pulumi.Input; } export interface CockpitAlertManagerContactPoint { /** * Email addresses for the alert receivers */ email?: pulumi.Input; } export interface CockpitEndpoint { /** * (Deprecated) URL for the [Alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager). */ alertmanagerUrl?: pulumi.Input; /** * (Deprecated) URL for Grafana. */ grafanaUrl?: pulumi.Input; /** * (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; /** * (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; /** * (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; } export interface CockpitPushUrl { /** * Push URL for logs (Grafana Loki) */ pushLogsUrl?: pulumi.Input; /** * Push URL for metrics (Grafana Mimir) */ pushMetricsUrl?: pulumi.Input; } export interface CockpitTokenScopes { /** * Permission to query logs. */ queryLogs?: pulumi.Input; /** * Permission to query metrics. */ queryMetrics?: pulumi.Input; /** * Permission to query traces. */ queryTraces?: pulumi.Input; /** * Permission to set up alerts. */ setupAlerts?: pulumi.Input; /** * Permission to set up logs rules. */ setupLogsRules?: pulumi.Input; /** * Permission to set up metrics rules. */ setupMetricsRules?: pulumi.Input; /** * Permission to write logs. */ writeLogs?: pulumi.Input; /** * Permission to write metrics. */ writeMetrics?: pulumi.Input; /** * Permission to write traces. */ writeTraces?: pulumi.Input; } export interface ContainerTriggerNats { /** * unique identifier of the Messaging and Queuing NATS account. */ accountId?: pulumi.Input; /** * THe ID of the project that contains the Messaging and Queuing NATS account (defaults to provider `projectId`) */ projectId?: pulumi.Input; /** * Region where the Messaging and Queuing NATS account is enabled (defaults to provider `region`) */ region?: pulumi.Input; /** * The subject to listen to. */ subject: pulumi.Input; } export interface ContainerTriggerSqs { /** * 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; /** * The ID of the project in which SQS is enabled, (defaults to provider `projectId`) */ projectId?: pulumi.Input; /** * The name of the SQS queue. */ queue: pulumi.Input; /** * Region where SQS is enabled (defaults to provider `region`) */ region?: pulumi.Input; } export interface DomainRecordGeoIp { /** * The list of matches */ matches: pulumi.Input[]>; } 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[]>; /** * 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[]>; /** * The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.). */ data: pulumi.Input; } export interface DomainRecordHttpService { /** * IPs to check */ ips: pulumi.Input[]>; /** * Text to search */ mustContain: pulumi.Input; /** * Strategy to return an IP from the IPs list */ strategy: pulumi.Input; /** * URL to match the mustContain text to validate an IP */ url: pulumi.Input; /** * User-agent used when checking the URL */ userAgent?: pulumi.Input; } export interface DomainRecordView { /** * The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.). */ data: pulumi.Input; /** * The subnet of the view */ subnet: pulumi.Input; } export interface DomainRecordWeighted { /** * The weighted IP */ ip: pulumi.Input; /** * The weight of the IP */ weight: pulumi.Input; } export interface FunctionTriggerNats { /** * unique identifier of the Messaging and Queuing NATS account. */ accountId?: pulumi.Input; /** * THe ID of the project that contains the Messaging and Queuing NATS account (defaults to provider `projectId`) */ projectId?: pulumi.Input; /** * Region where the Messaging and Queuing NATS account is enabled (defaults to provider `region`) */ region?: pulumi.Input; /** * The subject to listen to. */ subject: pulumi.Input; } 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; /** * The ID of the project in which SQS is enabled, (defaults to provider `projectId`) */ projectId?: pulumi.Input; /** * The name of the SQS queue. */ queue: pulumi.Input; /** * Region where SQS is enabled (defaults to provider `region`) */ region?: pulumi.Input; } 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; /** * The name of the resource the IP is attached to. */ name?: pulumi.Input; /** * 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; } 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; /** * The name of the attached resource. */ name?: pulumi.Input; /** * 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; } export interface IamPolicyRule { /** * The condition of the IAM policy. */ condition?: pulumi.Input; /** * ID of organization scoped to the rule, this can be used to create a rule for all projects in an organization. */ organizationId?: pulumi.Input; /** * Names of permission sets bind to the rule. * * **_TIP:_** You can use the Scaleway CLI to list the permissions details. e.g: * * ```shell * scw IAM permission-set list * ``` */ permissionSetNames: pulumi.Input[]>; /** * List of project IDs scoped to the rule. * * > **Important** One `organizationId` or `projectIds` must be set per rule. */ projectIds?: pulumi.Input[]>; } export interface InferenceDeploymentPrivateEndpoint { /** * Disable the authentication on the endpoint. */ disableAuth?: pulumi.Input; /** * (Optional) The id of the public endpoint. */ id?: pulumi.Input; /** * The ID of the private network to use. */ privateNetworkId?: pulumi.Input; /** * (Optional) The URL of the endpoint. */ url?: pulumi.Input; } export interface InferenceDeploymentPublicEndpoint { /** * Disable the authentication on the endpoint. */ disableAuth?: pulumi.Input; /** * (Optional) The id of the public endpoint. */ id?: pulumi.Input; /** * Enable or disable public endpoint. */ isEnabled?: pulumi.Input; /** * (Optional) The URL of the endpoint. */ url?: pulumi.Input; } export interface InstanceImageAdditionalVolume { /** * Date of the volume creation. */ creationDate?: pulumi.Input; /** * The export URI of the volume. */ exportUri?: pulumi.Input; /** * ID of the server containing the volume. */ id?: pulumi.Input; /** * Date of volume latest update. */ modificationDate?: pulumi.Input; /** * The name of the image. If not provided it will be randomly generated. */ name?: pulumi.Input; /** * The organization ID the volume is associated with. */ organization?: pulumi.Input; /** * ID of the project the volume is associated with */ project?: pulumi.Input; /** * Description of the server containing the volume (in case the image is a backup from a server). */ server?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The size of the volume. */ size?: pulumi.Input; /** * State of the volume. */ state?: pulumi.Input; /** * A list of tags to apply to the image. */ tags?: pulumi.Input[]>; /** * The type of volume, possible values are `lSsd` and `bSsd`. */ volumeType?: pulumi.Input; /** * The zone in which the image should be created. */ zone?: pulumi.Input; } export interface InstanceSecurityGroupInboundRule { /** * The action to take when rule match. Possible values are: `accept` or `drop`. */ action: pulumi.Input; /** * 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; /** * 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; /** * 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; /** * Computed port range for this rule (e.g: 1-1024, 22-22) */ portRange?: pulumi.Input; /** * The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`. */ protocol?: pulumi.Input; } export interface InstanceSecurityGroupOutboundRule { /** * Action when rule match request (drop or accept) */ action: pulumi.Input; /** * 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; /** * Ip range for this rule (e.g: 192.168.1.0/24). Only one of ip or ipRange should be provided */ ipRange?: pulumi.Input; /** * Network port for this rule */ port?: pulumi.Input; /** * Computed port range for this rule (e.g: 1-1024, 22-22) */ portRange?: pulumi.Input; /** * Protocol for this rule (TCP, UDP, ICMP or ANY) */ protocol?: pulumi.Input; } export interface InstanceSecurityGroupRulesInboundRule { /** * The action to take when rule match. Possible values are: `accept` or `drop`. */ action: pulumi.Input; /** * 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; /** * 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; /** * The port this rule apply to. If no port is specified, rule will apply to all port. */ port?: pulumi.Input; /** * Computed port range for this rule (e.g: 1-1024, 22-22) */ portRange?: pulumi.Input; /** * The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`. */ protocol?: pulumi.Input; } export interface InstanceSecurityGroupRulesOutboundRule { /** * Action when rule match request (drop or accept) */ action: pulumi.Input; /** * 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; /** * Ip range for this rule (e.g: 192.168.1.0/24). Only one of ip or ipRange should be provided */ ipRange?: pulumi.Input; /** * Network port for this rule */ port?: pulumi.Input; /** * Computed port range for this rule (e.g: 1-1024, 22-22) */ portRange?: pulumi.Input; /** * Protocol for this rule (TCP, UDP, ICMP or ANY) */ protocol?: pulumi.Input; } export interface InstanceServerPrivateNetwork { /** * MAC address of the NIC */ macAddress?: pulumi.Input; /** * The Private Network ID */ pnId: pulumi.Input; /** * The ID of the NIC */ pnicId?: pulumi.Input; /** * The private NIC state */ status?: pulumi.Input; /** * `zone`) The zone in which the server should be created. */ zone?: pulumi.Input; } export interface InstanceServerPublicIp { /** * The address of the IP */ address?: pulumi.Input; /** * The ID of the IP */ id?: pulumi.Input; } export interface InstanceServerRootVolume { /** * Set the volume where the boot the server */ boot?: pulumi.Input; /** * Forces deletion of the root volume on instance termination. */ deleteOnTermination?: pulumi.Input; /** * The name of the server. */ name?: pulumi.Input; /** * Choose IOPS of your sbs volume, has to be used with `sbsVolume` for root volume type. * * > **Important:** Updates to `root_volume.size_in_gb` will be ignored after the creation of the server. */ sbsIops?: pulumi.Input; /** * 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`. * Updates to this field will recreate a new resource. */ sizeInGb?: pulumi.Input; /** * 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; /** * Volume type of root volume, can be `bSsd`, `lSsd` or `sbsVolume`, default value depends on server type */ volumeType?: pulumi.Input; } export interface InstanceSnapshotImport { /** * Bucket name containing [qcow2](https://en.wikipedia.org/wiki/Qcow) to import */ bucket: pulumi.Input; /** * Key of the object to import * * > **Note:** The type `unified` could be instantiated on both `lSsd` and `bSsd` volumes. */ key: pulumi.Input; } export interface IotDeviceCertificate { /** * X509 PEM encoded certificate of the device */ crt?: pulumi.Input; /** * The private key of the device, in case it is generated by Scaleway. */ key?: pulumi.Input; } export interface IotDeviceMessageFilters { /** * Rules used to restrict topics the device can publish to. */ publish?: pulumi.Input; /** * Rules used to restrict topics the device can subscribe to. */ subscribe?: pulumi.Input; } export interface IotDeviceMessageFiltersPublish { /** * Filtering policy (eg `accept` or `reject`) */ policy?: pulumi.Input; /** * List of topics to match (eg `foo/bar/+/baz/#`) */ topics?: pulumi.Input[]>; } export interface IotDeviceMessageFiltersSubscribe { /** * Same as publish rules. */ policy?: pulumi.Input; /** * 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[]>; } export interface IotRouteDatabase { /** * The database name (e.g. `measurements`). */ dbname: pulumi.Input; /** * The database hostname. Can be an IP or a FQDN. */ host: pulumi.Input; /** * The database password. */ password: pulumi.Input; /** * The database port (e.g. `5432`) */ port: pulumi.Input; /** * 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; /** * The database username. */ username: pulumi.Input; } 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; }>; /** * The URI of the Rest endpoint (e.g. `https://internal.mycompany.com/ingest/mqttdata`). */ uri: pulumi.Input; /** * The HTTP Verb used to call Rest URI (e.g. `post`). */ verb: pulumi.Input; } export interface IotRouteS3 { /** * The name of the S3 route's destination bucket (e.g. `my-object-storage`). */ bucketName: pulumi.Input; /** * The region of the S3 route's destination bucket (e.g. `fr-par`). */ bucketRegion: pulumi.Input; /** * The string to prefix object names with (e.g. `mykeyprefix-`). */ objectPrefix?: pulumi.Input; /** * How the S3 route's objects will be created (e.g. `perTopic`). See [documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-Messages-Store-Strategies) for behaviour details. */ strategy: pulumi.Input; } export interface IpamIpCustomResource { /** * The MAC address of the resource the IP is attached to. */ macAddress: pulumi.Input; /** * The name of the resource the IP is attached to. */ name?: pulumi.Input; } export interface IpamIpResource { /** * The ID of the resource that the IP is attached to. */ id?: pulumi.Input; /** * The MAC address of the resource the IP is attached to. */ macAddress?: pulumi.Input; /** * The name of the resource the IP is attached to. */ name?: pulumi.Input; /** * The type of resource the IP is attached to. */ type?: pulumi.Input; } export interface IpamIpReverse { /** * The IP corresponding to the hostname */ address?: pulumi.Input; /** * The reverse domain name. */ hostname?: pulumi.Input; } export interface IpamIpSource { /** * The Private Network of the IP (if the IP is a private IP). */ privateNetworkId?: pulumi.Input; /** * The Private Network subnet of the IP (if the IP is a private IP). */ subnetId?: pulumi.Input; /** * The zone of the IP (if the IP is public and zoned, rather than private and/or regional) */ zonal?: pulumi.Input; } export interface JobDefinitionCron { /** * Cron format string. */ schedule: pulumi.Input; /** * 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; } export interface K8sClusterAutoUpgrade { /** * 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; /** * The day of the auto upgrade maintenance window (`monday` to `sunday`, or `any`). */ maintenanceWindowDay: pulumi.Input; /** * The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23). */ maintenanceWindowStartHour: pulumi.Input; } export interface K8sClusterAutoscalerConfig { /** * Detect similar node groups and balance the number of nodes between them. */ balanceSimilarNodeGroups?: pulumi.Input; /** * Disables the scale down feature of the autoscaler. */ disableScaleDown?: pulumi.Input; /** * Type of resource estimator to be used in scale up. */ estimator?: pulumi.Input; /** * Type of node group expander to be used in scale up. */ expander?: pulumi.Input; /** * 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; /** * Ignore DaemonSet pods when calculating resource utilization for scaling down. */ ignoreDaemonsetsUtilization?: pulumi.Input; /** * Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node */ maxGracefulTerminationSec?: pulumi.Input; /** * How long after scale up that scale down evaluation resumes. */ scaleDownDelayAfterAdd?: pulumi.Input; /** * How long a node should be unneeded before it is eligible for scale down. */ scaleDownUnneededTime?: pulumi.Input; /** * 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; } export interface K8sClusterKubeconfig { /** * The CA certificate of the Kubernetes API server. */ clusterCaCertificate?: pulumi.Input; /** * The raw kubeconfig file. */ configFile?: pulumi.Input; /** * The URL of the Kubernetes API server. */ host?: pulumi.Input; /** * The token to connect to the Kubernetes API server. */ token?: pulumi.Input; } export interface K8sClusterOpenIdConnectConfig { /** * A client id that all tokens must be issued for */ clientId: pulumi.Input; /** * JWT claim to use as the user's group */ groupsClaims?: pulumi.Input[]>; /** * Prefix prepended to group claims */ groupsPrefix?: pulumi.Input; /** * URL of the provider which allows the API server to discover public signing keys */ issuerUrl: pulumi.Input; /** * Multiple key=value pairs that describes a required claim in the ID Token */ requiredClaims?: pulumi.Input[]>; /** * JWT claim to use as the user name */ usernameClaim?: pulumi.Input; /** * Prefix prepended to username */ usernamePrefix?: pulumi.Input; } export interface K8sPoolNode { /** * The name for the pool. * > **Important:** Updates to this field will recreate a new resource. */ name?: pulumi.Input; /** * 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; /** * 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; /** * The status of the node. */ status?: pulumi.Input; } export interface K8sPoolUpgradePolicy { /** * The maximum number of nodes to be created during the upgrade */ maxSurge?: pulumi.Input; /** * The maximum number of nodes that can be not ready at the same time */ maxUnavailable?: pulumi.Input; } export interface LbAclAction { /** * Redirect parameters when using an ACL with `redirect` action. */ redirects?: pulumi.Input[]>; /** * The action type. Possible values are: `allow` or `deny` or `redirect`. */ type: pulumi.Input; } export interface LbAclActionRedirect { /** * The HTTP redirect code to use. Valid values are `301`, `302`, `303`, `307` and `308`. */ code?: pulumi.Input; /** * 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; /** * The redirect type. Possible values are: `location` or `scheme`. */ type?: pulumi.Input; } export interface LbAclMatch { /** * 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; /** * If you have `httpFilter` at `httpHeaderMatch`, you can use this field to filter on the HTTP header's value. */ httpFilterOption?: pulumi.Input; /** * 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[]>; /** * If set to `true`, the condition will be of type "unless". */ invert?: pulumi.Input; /** * A list of IPs, or CIDR v4/v6 addresses of the session client, to match. */ ipSubnets?: pulumi.Input[]>; } export interface LbBackendHealthCheckHttp { /** * The expected HTTP status code */ code?: pulumi.Input; /** * The HTTP host header to use for HC requests */ hostHeader?: pulumi.Input; /** * The HTTP method to use for HC requests */ method?: pulumi.Input; /** * The HTTP endpoint URL to call for HC requests */ uri: pulumi.Input; } export interface LbBackendHealthCheckHttps { /** * The expected HTTP status code */ code?: pulumi.Input; /** * The HTTP host header to use for HC requests */ hostHeader?: pulumi.Input; /** * The HTTP method to use for HC requests */ method?: pulumi.Input; /** * The SNI to use for HC requests over SSL */ sni?: pulumi.Input; /** * The HTTPS endpoint URL to call for HC requests */ uri: pulumi.Input; } export interface LbBackendHealthCheckTcp { } export interface LbCertificateCustomCertificate { /** * The full PEM-formatted certificate chain */ certificateChain: pulumi.Input; } export interface LbCertificateLetsencrypt { /** * Main domain of the certificate */ commonName: pulumi.Input; /** * The alternative domain names of the certificate */ subjectAlternativeNames?: pulumi.Input[]>; } export interface LbFrontendAcl { /** * Action to undertake when an ACL filter matches. */ action: pulumi.Input; /** * IsDate and time of ACL's creation (RFC 3339 format) */ createdAt?: pulumi.Input; /** * Description of the ACL */ description?: pulumi.Input; /** * The ACL match rule. At least `ipSubnet` or `httpFilter` and `httpFilterValue` are required. */ match: pulumi.Input; /** * The ACL name. If not provided it will be randomly generated. */ name?: pulumi.Input; /** * IsDate and time of ACL's update (RFC 3339 format) */ updatedAt?: pulumi.Input; } export interface LbFrontendAclAction { /** * Redirect parameters when using an ACL with `redirect` action. */ redirects?: pulumi.Input[]>; /** * The action type. Possible values are: `allow` or `deny` or `redirect`. */ type: pulumi.Input; } export interface LbFrontendAclActionRedirect { /** * The HTTP redirect code to use. Valid values are `301`, `302`, `303`, `307` and `308`. */ code?: pulumi.Input; /** * 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; /** * The redirect type. Possible values are: `location` or `scheme`. */ type?: pulumi.Input; } export interface LbFrontendAclMatch { /** * 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; /** * If you have `httpFilter` at `httpHeaderMatch`, you can use this field to filter on the HTTP header's value. */ httpFilterOption?: pulumi.Input; /** * 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[]>; /** * If set to `true`, the condition will be of type "unless". */ invert?: pulumi.Input; /** * A list of IPs, or CIDR v4/v6 addresses of the session client, to match. */ ipSubnets?: pulumi.Input[]>; } export interface LbPrivateNetwork { /** * Please use `ipamIds`. 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; /** * IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network. */ ipamIds?: pulumi.Input; /** * The ID of the Private Network to attach to. * - > **Important:** Updates to `privateNetwork` will recreate the attachment. */ privateNetworkId: pulumi.Input; /** * Please use `ipamIds`. Define a local ip address of your choice for the load balancer instance. * * @deprecated static_config field is deprecated, please use `privateNetworkId` or `ipamIds` instead */ staticConfig?: pulumi.Input; /** * The status of the private network connection. */ status?: pulumi.Input; /** * `zone`) The zone of the Load Balancer. */ zone?: pulumi.Input; } export interface MnqSnsCredentialsPermissions { /** * . Defines whether the user can manage the associated resource(s). */ canManage?: pulumi.Input; /** * . Defines whether the user can publish messages to the service. */ canPublish?: pulumi.Input; /** * . Defines whether the user can receive messages from the service. */ canReceive?: pulumi.Input; } export interface MnqSqsCredentialsPermissions { /** * . Defines whether the user can manage the associated resource(s). */ canManage?: pulumi.Input; /** * . Defines whether the user can publish messages to the service. */ canPublish?: pulumi.Input; /** * . Defines whether the user can receive messages from the service. */ canReceive?: pulumi.Input; } export interface MongodbInstancePublicNetwork { /** * The DNS record of your endpoint */ dnsRecord?: pulumi.Input; /** * The ID of the MongoDB® instance. */ id?: pulumi.Input; /** * TCP port of the endpoint */ port?: pulumi.Input; } export interface ObjectBucketAclAccessControlPolicy { grants?: pulumi.Input[]>; /** * Configuration block of the bucket project owner's display organization ID. */ owner: pulumi.Input; } export interface ObjectBucketAclAccessControlPolicyGrant { /** * Configuration block for the project being granted permissions. */ grantee?: pulumi.Input; /** * Logging permissions assigned to the grantee for the bucket. */ permission: pulumi.Input; } export interface ObjectBucketAclAccessControlPolicyGrantGrantee { displayName?: pulumi.Input; /** * The `region`, `bucket` and `acl` separated by (`/`). */ id: pulumi.Input; /** * Type of grantee. Valid values: `CanonicalUser` */ type: pulumi.Input; } export interface ObjectBucketAclAccessControlPolicyOwner { /** * The project ID of the grantee. */ displayName?: pulumi.Input; /** * The `region`, `bucket` and `acl` separated by (`/`). */ id: pulumi.Input; } export interface ObjectBucketCorsRule { /** * Specifies which headers are allowed. */ allowedHeaders?: pulumi.Input[]>; /** * Specifies which methods are allowed (`GET`, `PUT`, `POST`, `DELETE` or `HEAD`). */ allowedMethods: pulumi.Input[]>; /** * Specifies which origins are allowed. */ allowedOrigins: pulumi.Input[]>; /** * Specifies header exposure in the response. */ exposeHeaders?: pulumi.Input[]>; /** * Specifies time in seconds that the browser can cache the response for a preflight request. */ maxAgeSeconds?: pulumi.Input; } 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; /** * 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; /** * Specifies a period in the object's expire */ expiration?: pulumi.Input; /** * Unique identifier for the rule. Must be less than or equal to 255 characters in length. */ id?: pulumi.Input; /** * Object key prefix identifying one or more objects to which the rule applies. */ prefix?: pulumi.Input; /** * Specifies object tags key and value. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Define when objects transition to another storage class */ transitions?: pulumi.Input[]>; } export interface ObjectBucketLifecycleRuleExpiration { /** * Specifies the number of days after object creation when the specific rule action takes effect. */ days: pulumi.Input; } export interface ObjectBucketLifecycleRuleTransition { /** * Specifies the number of days after object creation when the specific rule action takes effect. */ days?: pulumi.Input; /** * Specifies the Scaleway [storage class](https://www.scaleway.com/en/docs/storage/object/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. * > **Important:** If versioning is enabled, this rule only deletes the current version of an object. * * * > **Important:** `ONEZONE_IA` is only available in `fr-par` region. The storage class `GLACIER` is not available in `pl-waw` region. * > **Important:** `ONEZONE_IA` is only available in `fr-par` region. The storage class `GLACIER` is not available in `pl-waw` region. */ storageClass: pulumi.Input; } export interface ObjectBucketLockConfigurationRule { /** * The default retention for the lock. */ defaultRetention: pulumi.Input; } export interface ObjectBucketLockConfigurationRuleDefaultRetention { /** * The number of days you want to specify for the default retention period. */ days?: pulumi.Input; /** * 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/storage/object/api-cli/object-lock/#retention-modes) for more information on retention modes. */ mode: pulumi.Input; /** * The number of years you want to specify for the default retention period. */ years?: pulumi.Input; } 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; } export interface ObjectBucketWebsiteConfigurationErrorDocument { /** * The object key name to use when a 4XX class error occurs. */ key: pulumi.Input; } 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; } export interface RdbAclAclRule { /** * A text describing this rule. Default description: `IP allowed` */ description?: pulumi.Input; /** * The IP range to whitelist in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) */ ip: pulumi.Input; } export interface RdbInstanceLoadBalancer { /** * The ID of the endpoint. */ endpointId?: pulumi.Input; /** * Hostname of the endpoint. */ hostname?: pulumi.Input; /** * IPv4 address on the network. */ ip?: pulumi.Input; /** * The name of the Database Instance. */ name?: pulumi.Input; /** * Port in the Private Network. */ port?: pulumi.Input; } export interface RdbInstanceLogsPolicy { /** * The max age (in days) of remote logs to keep on the Database Instance */ maxAgeRetention?: pulumi.Input; /** * The max disk size of remote logs to keep on the Database Instance. */ totalDiskRetention?: pulumi.Input; } export interface RdbInstancePrivateNetwork { /** * Whether or not the private network endpoint should be configured with IPAM */ enableIpam?: pulumi.Input; /** * The ID of the endpoint. */ endpointId?: pulumi.Input; /** * Hostname of the endpoint. */ hostname?: pulumi.Input; /** * IPv4 address on the network. */ ip?: pulumi.Input; /** * The IP with the given mask within the private subnet */ ipNet?: pulumi.Input; /** * The name of the Database Instance. */ name?: pulumi.Input; /** * The private network ID */ pnId: pulumi.Input; /** * Port in the Private Network. */ port?: pulumi.Input; /** * The zone you want to attach the resource to */ zone?: pulumi.Input; } export interface RdbInstanceReadReplica { /** * IPv4 address on the network. */ ip?: pulumi.Input; /** * The name of the Database Instance. */ name?: pulumi.Input; /** * Port in the Private Network. */ port?: pulumi.Input; } export interface RdbReadReplicaDirectAccess { /** * The ID of the endpoint of the Read Replica. */ endpointId?: pulumi.Input; /** * Hostname of the endpoint. Only one of IP and hostname may be set. */ hostname?: pulumi.Input; /** * IPv4 address of the endpoint (IP address). Only one of IP and hostname may be set. */ ip?: pulumi.Input; /** * Name of the endpoint. */ name?: pulumi.Input; /** * TCP port of the endpoint. */ port?: pulumi.Input; } export interface RdbReadReplicaPrivateNetwork { /** * 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; /** * The ID of the endpoint of the Read Replica. */ endpointId?: pulumi.Input; /** * Hostname of the endpoint. Only one of IP and hostname may be set. */ hostname?: pulumi.Input; /** * IPv4 address of the endpoint (IP address). Only one of IP and hostname may be set. */ ip?: pulumi.Input; /** * Name of the endpoint. */ name?: pulumi.Input; /** * TCP port of the endpoint. */ port?: pulumi.Input; /** * UUID of the Private Netork to be connected to the Read Replica. */ privateNetworkId: pulumi.Input; /** * 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; /** * Private network zone */ zone?: pulumi.Input; } 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; /** * (Required) The UUID of the endpoint. */ id?: pulumi.Input; /** * The IP range to whitelist * in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) */ ip: pulumi.Input; } export interface RedisClusterPrivateNetwork { /** * The ID of the endpoint. */ endpointId?: pulumi.Input; /** * The UUID of the Private Network resource. */ id: pulumi.Input; /** * Endpoint IPv4 addresses in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation). 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. * * > 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: * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * ``` */ serviceIps?: pulumi.Input[]>; /** * `zone`) The zone in which the * Redis™ cluster should be created. */ zone?: pulumi.Input; } export interface RedisClusterPublicNetwork { /** * (Required) The UUID of the endpoint. */ id?: pulumi.Input; /** * Lis of IPv4 address of the endpoint (IP address). */ ips?: pulumi.Input[]>; /** * TCP port of the endpoint. */ port?: pulumi.Input; } 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; /** * True if the secret version expires after a single user access. */ expiresOnceAccessed?: pulumi.Input; /** * 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; } export interface TemDomainReputation { /** * The previously-calculated domain's reputation score. */ previousScore?: pulumi.Input; /** * The time and date the previous reputation score was calculated. */ previousScoredAt?: pulumi.Input; /** * A range from 0 to 100 that determines your domain's reputation score. */ score?: pulumi.Input; /** * The time and date the score was calculated. */ scoredAt?: pulumi.Input; /** * The status of the domain's reputation. */ status?: pulumi.Input; } export interface VpcGatewayNetworkIpamConfig { /** * Use this IPAM-booked IP ID as the Gateway's IP in this Private Network. */ ipamIpId?: pulumi.Input; /** * Defines whether to enable the default route on the GatewayNetwork. */ pushDefaultRoute?: pulumi.Input; } 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; /** * The date and time of the creation of the subnet. */ createdAt?: pulumi.Input; /** * The subnet ID. */ id?: pulumi.Input; /** * The length of the network prefix, e.g., 64 for a 'ffff:ffff:ffff:ffff::' mask. */ prefixLength?: pulumi.Input; /** * The subnet CIDR. */ subnet?: pulumi.Input; /** * The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet */ subnetMask?: pulumi.Input; /** * The date and time of the last update of the subnet. */ updatedAt?: pulumi.Input; } 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; /** * The date and time of the creation of the subnet. */ createdAt?: pulumi.Input; /** * The subnet ID. */ id?: pulumi.Input; /** * The length of the network prefix, e.g., 64 for a 'ffff:ffff:ffff:ffff::' mask. */ prefixLength?: pulumi.Input; /** * The subnet CIDR. */ subnet?: pulumi.Input; /** * The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet */ subnetMask?: pulumi.Input; /** * The date and time of the last update of the subnet. */ updatedAt?: pulumi.Input; } export interface WebhostingCpanelUrl { /** * The URL of the Dashboard. */ dashboard?: pulumi.Input; /** * The URL of the Webmail interface. */ webmail?: pulumi.Input; } export interface WebhostingOption { /** * The option ID. */ id?: pulumi.Input; /** * The option name. */ name?: pulumi.Input; }