UNPKG

@pulumiverse/scaleway

Version:

A Pulumi package for creating and managing Scaleway cloud resources.

1,616 lines 159 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; export interface AppleSiliconServerPrivateNetwork { /** * The date and time of the creation of the Apple Silicon server. */ createdAt?: pulumi.Input<string>; /** * The ID of the server. */ id: pulumi.Input<string>; /** * List of IPAM IP IDs to attach to the server */ ipamIpIds?: pulumi.Input<pulumi.Input<string>[]>; /** * The private network status */ status?: pulumi.Input<string>; /** * The date and time of the last update of the Apple Silicon server. */ updatedAt?: pulumi.Input<string>; /** * The VLAN ID associated to the private network */ vlan?: pulumi.Input<number>; } export interface BaremetalServerIp { /** * The address of the IPv6. */ address?: pulumi.Input<string>; /** * The ID of the IPv6. */ id?: pulumi.Input<string>; /** * The reverse of the IPv6. */ reverse?: pulumi.Input<string>; /** * The type of the IPv6. */ version?: pulumi.Input<string>; } export interface BaremetalServerIpv4 { /** * The address of the IPv6. */ address?: pulumi.Input<string>; /** * The ID of the IPv6. */ id?: pulumi.Input<string>; /** * The reverse of the IPv6. */ reverse?: pulumi.Input<string>; /** * The type of the IPv6. */ version?: pulumi.Input<string>; } export interface BaremetalServerIpv6 { /** * The address of the IPv6. */ address?: pulumi.Input<string>; /** * The ID of the IPv6. */ id?: pulumi.Input<string>; /** * The reverse of the IPv6. */ reverse?: pulumi.Input<string>; /** * The type of the IPv6. */ version?: pulumi.Input<string>; } export interface BaremetalServerOption { /** * The auto expiration date for compatible options */ expiresAt?: pulumi.Input<string>; /** * 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>; } export interface BaremetalServerPrivateIp { /** * The address of the IPv6. */ address?: pulumi.Input<string>; /** * The ID of the IPv6. */ id?: pulumi.Input<string>; } export interface BaremetalServerPrivateNetwork { /** * The date and time of the creation of the private network. */ createdAt?: pulumi.Input<string>; /** * 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>[]>; /** * The ID of the Server-to-Private Network mapping. */ mappingId?: pulumi.Input<string>; /** * The private network status. */ status?: pulumi.Input<string>; /** * The date and time of the last update of the private network. */ updatedAt?: pulumi.Input<string>; /** * The VLAN ID associated to the private network. */ vlan?: pulumi.Input<number>; } export interface BlockSnapshotImport { /** * Bucket containing qcow */ bucket: pulumi.Input<string>; /** * Key of the qcow file in the specified bucket */ key: pulumi.Input<string>; } export interface CockpitAlertManagerContactPoint { /** * Email addresses for the alert receivers */ email?: pulumi.Input<string>; } export interface CockpitEndpoint { /** * (Deprecated) URL for the [Alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager). */ alertmanagerUrl?: pulumi.Input<string>; /** * (Deprecated) URL for Grafana. */ grafanaUrl?: pulumi.Input<string>; /** * (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>; /** * (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>; /** * (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>; } export interface CockpitPushUrl { /** * Push URL for logs (Grafana Loki) */ pushLogsUrl?: pulumi.Input<string>; /** * Push URL for metrics (Grafana Mimir) */ pushMetricsUrl?: pulumi.Input<string>; } export interface CockpitTokenScopes { /** * Permission to query logs. */ queryLogs?: pulumi.Input<boolean>; /** * Permission to query metrics. */ queryMetrics?: pulumi.Input<boolean>; /** * Permission to query traces. */ queryTraces?: pulumi.Input<boolean>; /** * Permission to set up alerts. */ setupAlerts?: pulumi.Input<boolean>; /** * Permission to set up logs rules. */ setupLogsRules?: pulumi.Input<boolean>; /** * Permission to set up metrics rules. */ setupMetricsRules?: pulumi.Input<boolean>; /** * Permission to write logs. */ writeLogs?: pulumi.Input<boolean>; /** * Permission to write metrics. */ writeMetrics?: pulumi.Input<boolean>; /** * Permission to write traces. */ writeTraces?: pulumi.Input<boolean>; } export interface ContainerHealthCheck { /** * Number of consecutive health check failures before considering the container unhealthy. */ failureThreshold: pulumi.Input<number>; /** * HTTP health check configuration. */ https: pulumi.Input<pulumi.Input<inputs.ContainerHealthCheckHttp>[]>; /** * Period between health checks (in seconds). */ interval: pulumi.Input<string>; } export interface ContainerHealthCheckHttp { /** * 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>; /** * Scale depending on the CPU usage of a container instance. */ cpuUsageThreshold?: pulumi.Input<number>; /** * Scale depending on the memory usage of a container instance. */ memoryUsageThreshold?: pulumi.Input<number>; } export interface ContainerTriggerNats { /** * unique identifier of the Messaging and Queuing NATS account. */ accountId?: pulumi.Input<string>; /** * THe ID of the project that contains the Messaging and Queuing NATS account (defaults to provider `projectId`) */ projectId?: pulumi.Input<string>; /** * Region where the Messaging and Queuing NATS account is enabled (defaults to provider `region`) */ region?: pulumi.Input<string>; /** * The subject to listen to. */ subject: pulumi.Input<string>; } 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<string>; /** * The ID of the project in which SQS is enabled, (defaults to provider `projectId`) */ projectId?: pulumi.Input<string>; /** * The name of the SQS queue. */ queue: pulumi.Input<string>; /** * Region where SQS is enabled (defaults to provider `region`) */ region?: pulumi.Input<string>; } export interface DatabaseAclAclRule { /** * A text describing this rule. Default description: `IP allowed` */ description?: pulumi.Input<string>; /** * The IP range to whitelist in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) */ ip: pulumi.Input<string>; } export interface DatabaseInstanceLoadBalancer { /** * The ID of the endpoint. */ endpointId?: pulumi.Input<string>; /** * Hostname of the endpoint. */ hostname?: pulumi.Input<string>; /** * IPv4 address on the network. */ ip?: pulumi.Input<string>; /** * The name of the Database Instance. */ name?: pulumi.Input<string>; /** * Port in the Private Network. */ port?: pulumi.Input<number>; } export interface DatabaseInstanceLogsPolicy { /** * The max age (in days) of remote logs to keep on the Database Instance */ maxAgeRetention?: pulumi.Input<number>; /** * The max disk size of remote logs to keep on the Database Instance. */ totalDiskRetention?: pulumi.Input<number>; } export interface DatabaseInstancePrivateIp { /** * The private IPv4 address. */ address?: pulumi.Input<string>; /** * The ID of the IPv4 address resource. */ id?: pulumi.Input<string>; } export interface DatabaseInstancePrivateNetwork { /** * Whether or not the private network endpoint should be configured with IPAM */ enableIpam?: pulumi.Input<boolean>; /** * The ID of the endpoint. */ endpointId?: pulumi.Input<string>; /** * Hostname of the endpoint. */ hostname?: pulumi.Input<string>; /** * IPv4 address on the network. */ ip?: pulumi.Input<string>; /** * The IP with the given mask within the private subnet */ ipNet?: pulumi.Input<string>; /** * The name of the Database Instance. */ name?: pulumi.Input<string>; /** * The private network ID */ pnId: pulumi.Input<string>; /** * Port in the Private Network. */ port?: pulumi.Input<number>; /** * The zone you want to attach the resource to */ zone?: pulumi.Input<string>; } export interface DatabaseInstanceReadReplica { /** * IPv4 address on the network. */ ip?: pulumi.Input<string>; /** * The name of the Database Instance. */ name?: pulumi.Input<string>; /** * Port in the Private Network. */ port?: pulumi.Input<number>; } export interface DatabaseReadReplicaDirectAccess { /** * The ID of the endpoint of the Read Replica. */ endpointId?: pulumi.Input<string>; /** * Hostname of the endpoint. Only one of IP and hostname may be set. */ hostname?: pulumi.Input<string>; /** * IPv4 address of the endpoint (IP address). Only one of IP and hostname may be set. */ ip?: pulumi.Input<string>; /** * Name of the endpoint. */ name?: pulumi.Input<string>; /** * TCP port of the endpoint. */ port?: pulumi.Input<number>; } 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>; /** * The ID of the endpoint of the Read Replica. */ endpointId?: pulumi.Input<string>; /** * Hostname of the endpoint. Only one of IP and hostname may be set. */ hostname?: pulumi.Input<string>; /** * IPv4 address of the endpoint (IP address). Only one of IP and hostname may be set. */ ip?: pulumi.Input<string>; /** * Name of the endpoint. */ name?: pulumi.Input<string>; /** * TCP port of the endpoint. */ port?: pulumi.Input<number>; /** * 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>; /** * Private network zone */ zone?: pulumi.Input<string>; } 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>[]>; /** * 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>[]>; /** * 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>; } 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 EdgeServicesBackendStageLbBackendConfig { /** * The Load Balancer config. */ lbConfig?: pulumi.Input<inputs.EdgeServicesBackendStageLbBackendConfigLbConfig>; } 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>; /** * The ID of the frontend. */ frontendId?: pulumi.Input<string>; /** * The ID of the Load Balancer. */ id?: pulumi.Input<string>; /** * Defines whether the Load Balancer's frontend handles SSL connections. */ isSsl?: pulumi.Input<boolean>; /** * `zone`) The zone of the Load Balancer. */ zone?: pulumi.Input<string>; } export interface EdgeServicesBackendStageS3BackendConfig { /** * The name of the Bucket. */ bucketName?: pulumi.Input<string>; /** * The region of the Bucket. */ bucketRegion?: pulumi.Input<string>; /** * Defines whether the bucket website feature is enabled. */ isWebsite?: pulumi.Input<boolean>; } export interface EdgeServicesCacheStagePurgeRequest { /** * Defines whether to purge all content. */ all?: pulumi.Input<boolean>; /** * The list of asserts to purge. */ assets?: pulumi.Input<pulumi.Input<string>[]>; /** * The pipeline ID in which the purge request will be created. */ pipelineId?: pulumi.Input<string>; } export interface EdgeServicesRouteStageRule { /** * The ID of the backend stage that requests matching the rule should be forwarded to. */ backendStageId: pulumi.Input<string>; /** * The rule condition to be matched. Requests matching the condition defined here will be directly forwarded to the backend specified by the `backendStageId` field. Requests that do not match will be checked by the next rule's condition. */ ruleHttpMatch?: pulumi.Input<inputs.EdgeServicesRouteStageRuleRuleHttpMatch>; } export interface EdgeServicesRouteStageRuleRuleHttpMatch { /** * 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>[]>; /** * 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>; } 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>; /** * The ID of the Secret */ secretId?: pulumi.Input<string>; } export interface FunctionTriggerNats { /** * unique identifier of the Messaging and Queuing NATS account. */ accountId?: pulumi.Input<string>; /** * THe ID of the project that contains the Messaging and Queuing NATS account (defaults to provider `projectId`) */ projectId?: pulumi.Input<string>; /** * Region where the Messaging and Queuing NATS account is enabled (defaults to provider `region`) */ region?: pulumi.Input<string>; /** * 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>; /** * The ID of the project in which SQS is enabled, (defaults to provider `projectId`) */ projectId?: pulumi.Input<string>; /** * The name of the SQS queue. */ queue: pulumi.Input<string>; /** * Region where SQS is enabled (defaults to provider `region`) */ region?: pulumi.Input<string>; } 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>; /** * The name of the resource the IP is attached to. */ name?: pulumi.Input<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: 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>; /** * The name of the attached resource. */ name?: pulumi.Input<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: 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>; /** * 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>; /** * 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>[]>; } export interface InferenceDeploymentPrivateEndpoint { /** * Disable the authentication on the endpoint. */ disableAuth?: pulumi.Input<boolean>; /** * (Optional) The id of the public endpoint. */ id?: pulumi.Input<string>; /** * The ID of the private network to use. */ privateNetworkId?: pulumi.Input<string>; /** * (Optional) The URL of the endpoint. */ url?: pulumi.Input<string>; } export interface InferenceDeploymentPublicEndpoint { /** * Disable the authentication on the endpoint. */ disableAuth?: pulumi.Input<boolean>; /** * (Optional) The id of the public endpoint. */ id?: pulumi.Input<string>; /** * Enable or disable public endpoint. */ isEnabled?: pulumi.Input<boolean>; /** * (Optional) The URL of the endpoint. */ url?: pulumi.Input<string>; } export interface InstanceImageAdditionalVolume { /** * Date of the volume creation. */ creationDate?: pulumi.Input<string>; /** * The export URI of the volume. */ exportUri?: pulumi.Input<string>; /** * ID of the server containing the volume. */ id?: pulumi.Input<string>; /** * Date of volume latest update. */ modificationDate?: pulumi.Input<string>; /** * The name of the image. If not provided it will be randomly generated. */ name?: pulumi.Input<string>; /** * The organization ID the volume is associated with. */ organization?: pulumi.Input<string>; /** * ID of the project the volume is associated with */ project?: pulumi.Input<string>; /** * 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>; }>; /** * The size of the volume. */ size?: pulumi.Input<number>; /** * State of the volume. */ state?: pulumi.Input<string>; /** * A list of tags to apply to the image. */ tags?: pulumi.Input<pulumi.Input<string>[]>; /** * The type of volume, possible values are `lSsd` and `bSsd`. */ volumeType?: pulumi.Input<string>; /** * The zone in which the image should be created. */ zone?: pulumi.Input<string>; } export interface InstancePrivateNicPrivateIp { /** * The private IP address. */ address?: pulumi.Input<string>; /** * The ID of the IP address resource. */ id?: pulumi.Input<string>; } 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>; /** * 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>; /** * 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>; /** * Computed port range for this rule (e.g: 1-1024, 22-22) */ portRange?: pulumi.Input<string>; /** * The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`. */ protocol?: pulumi.Input<string>; } 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>; /** * 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>; /** * Network port for this rule */ port?: pulumi.Input<number>; /** * Computed port range for this rule (e.g: 1-1024, 22-22) */ portRange?: pulumi.Input<string>; /** * Protocol for this rule (TCP, UDP, ICMP or ANY) */ protocol?: pulumi.Input<string>; } 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>; /** * 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>; /** * The port this rule apply to. If no port is specified, rule will apply to all port. */ port?: pulumi.Input<number>; /** * Computed port range for this rule (e.g: 1-1024, 22-22) */ portRange?: pulumi.Input<string>; /** * The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`. */ protocol?: pulumi.Input<string>; } 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>; /** * 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>; /** * Network port for this rule */ port?: pulumi.Input<number>; /** * Computed port range for this rule (e.g: 1-1024, 22-22) */ portRange?: pulumi.Input<string>; /** * Protocol for this rule (TCP, UDP, ICMP or ANY) */ protocol?: pulumi.Input<string>; } export interface InstanceServerPrivateIp { /** * The private IP address. */ address?: pulumi.Input<string>; /** * The ID of the IP address resource. */ id?: pulumi.Input<string>; } export interface InstanceServerPrivateNetwork { /** * MAC address of the NIC */ macAddress?: pulumi.Input<string>; /** * The Private Network ID */ pnId: pulumi.Input<string>; /** * The ID of the NIC */ pnicId?: pulumi.Input<string>; /** * The private NIC state */ status?: pulumi.Input<string>; /** * `zone`) The zone in which the server should be created. */ zone?: pulumi.Input<string>; } export interface InstanceServerPublicIp { /** * The address of the IP */ address?: pulumi.Input<string>; /** * The ID of the IP */ id?: pulumi.Input<string>; } export interface InstanceServerRootVolume { /** * Set the volume where the boot the server */ boot?: pulumi.Input<boolean>; /** * Forces deletion of the root volume on instance termination. */ deleteOnTermination?: pulumi.Input<boolean>; /** * The name of the server. */ name?: pulumi.Input<string>; /** * 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<number>; /** * 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>; /** * 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>; /** * Volume type of root volume, can be `bSsd`, `lSsd` or `sbsVolume`, default value depends on server type */ volumeType?: pulumi.Input<string>; } 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 * * > **Note:** The type `unified` could be instantiated on both `lSsd` and `bSsd` volumes. */ key: pulumi.Input<string>; } export interface IotDeviceCertificate { /** * X509 PEM encoded certificate of the device */ crt?: pulumi.Input<string>; /** * The private key of the device, in case it is generated by Scaleway. */ key?: pulumi.Input<string>; } export interface IotDeviceMessageFilters { /** * Rules used to restrict topics the device can publish to. */ publish?: pulumi.Input<inputs.IotDeviceMessageFiltersPublish>; /** * Rules used to restrict topics the device can subscribe to. */ subscribe?: pulumi.Input<inputs.IotDeviceMessageFiltersSubscribe>; } export interface IotDeviceMessageFiltersPublish { /** * Filtering policy (eg `accept` or `reject`) */ policy?: pulumi.Input<string>; /** * List of topics to match (eg `foo/bar/+/baz/#`) */ topics?: pulumi.Input<pulumi.Input<string>[]>; } export interface IotDeviceMessageFiltersSubscribe { /** * Same as publish rules. */ policy?: pulumi.Input<string>; /** * 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>[]>; } 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>; /** * 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 resource the IP is attached to. */ macAddress: pulumi.Input<string>; /** * The name of the resource the IP is attached to. */ name?: pulumi.Input<string>; } export interface IpamIpResource { /** * The ID of the resource that the IP is attached to. */ id?: pulumi.Input<string>; /** * The MAC address of the resource the IP is attached to. */ macAddress?: pulumi.Input<string>; /** * The name of the resource the IP is attached to. */ name?: pulumi.Input<string>; /** * The type of resource the IP is attached to. */ type?: pulumi.Input<string>; } export interface IpamIpReverse { /** * The IP corresponding to the hostname */ address?: pulumi.Input<string>; /** * The reverse domain name. */ hostname?: pulumi.Input<string>; } export interface IpamIpSource { /** * The Private Network of the IP (if the IP is a private IP). */ privateNetworkId?: pulumi.Input<string>; /** * The Private Network subnet of the IP (if the IP is a private IP). */ subnetId?: pulumi.Input<string>; /** * The zone of the IP (if the IP is public and zoned, rather than private and/or regional) */ zonal?: pulumi.Input<string>; } 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 JobDefinitionSecretReference { /** * An environment variable containing the secret value. Must be specified if `file` is not specified. */ environment?: pulumi.Input<string>; /** * The absolute file path where the secret will be mounted. Must be specified if `environment` is not specified. */ file?: pulumi.Input<string>; /** * 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>; /** * The secret version. */ secretVersion?: 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>; /** * Disables the scale down feature of the autoscaler. */ disableScaleDown?: pulumi.Input<boolean>; /** * Type of resource estimator to be used in scale up. */ estimator?: pulumi.Input<string>; /** * Type of node group expander to be used in scale up. */ expander?: pulumi.Input<string>; /** * 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>; /** * Ignore DaemonSet pods when calculating resource utilization for scaling down. */ ignoreDaemonsetsUtilization?: pulumi.Input<boolean>; /** * Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node */ maxGracefulTerminationSec?: pulumi.Input<number>; /** * How long after scale up that scale down evaluation resumes. */ scaleDownDelayAfterAdd?: pulumi.Input<string>; /** * How long a node should be unneeded before it is eligible for scale down. */ scaleDownUnneededTime?: pulumi.Input<string>; /** * 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>; } export interface KubernetesClusterKubeconfig { /** * The CA certificate of the Kubernetes API server. */ clusterCaCertificate?: pulumi.Input<string>; /** * The raw kubeconfig file. */ configFile?: pulumi.Input<string>; /** * The URL of the Kubernetes API server. */ host?: pulumi.Input<string>; /** * The token to connect to the Kubernetes API server. */ token?: pulumi.Input<string>; } 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>[]>; /** * Prefix prepended to group claims */ groupsPrefix?: pulumi.Input<string>; /** * 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>[]>; /** * JWT claim to use as the user name */ usernameClaim?: pulumi.Input<string>; /** * Prefix prepended to username */ usernamePrefix?: pulumi.Input<string>; } export interface KubernetesNodePoolNode { /** * The ID of the IP address resource. */ id?: pulumi.Input<string>; /** * The name for the pool. * * > **Important:** Updates to this field will recreate a new resource. */ name?: pulumi.Input<string>; /** * The list of private IPv4 and IPv6 addresses associated with the node. */ privateIps?: pulumi.Input<pulumi.Input<inputs.KubernetesNodePoolNodePrivateIp>[]>; /** * 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>; /** * 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>; /** * The status of the node. */ status?: pulumi.Input<string>; } export interface KubernetesNodePoolNodePrivateIp { /** * The private IP address. */ address?: pulumi.Input<string>; /** * The ID of the IP address resource. */ id?: pulumi.Input<string>; } export interface KubernetesNodePoolUpgradePolicy { /** * The maximum number of nodes to be created during the upgrade */ maxSurge?: pulumi.Input<number>; /** * The maximum number of nodes that can be not ready at the same time */ maxUnavailable?: pulumi.Input<number>; } export interface LoadbalancerAclAction { /** * Redirect parameters when using an ACL with `redirect` action. */ redirects?: pulumi.Input<pulumi.Input<inputs.LoadbalancerAclActionRedirect>[]>; /** * 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>; /** * 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>; /** * The redirect type. Possible values are: `location` or `scheme`. */ type?: pulumi.Input<string>; } 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>; /** * If you have `httpFilter` at `httpHeaderMatch`, you can use this field to filter on the HTTP header's value. */ httpFilterOption?: pulumi.Input<string>; /** * 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>[]>; /** * If set to `true`, the condition will be of type "unless". */ invert?: pulumi.Input<boolean>; /** * A list of IPs, or CIDR v4/v6 addresses of the session client, to match. */ ipSubnets?: pulumi.Input<pulumi.Input<string>[]>; } export interface LoadbalancerBackendHealthCheckHttp { /** * The expected HTTP status code */ code?: pulumi.Input<number>; /** * The HTTP host header to use for HC requests */ hostHeader?: pulumi.Input<string>; /** * The HTTP method to use for HC requests */ method?: pulumi.Input<string>; /** * 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>; /** * The HTTP host header to use for HC requests */ hostHeader?: pulumi.Input<string>; /** * The HTTP method to use for HC requests */ method?: pulumi.Input<string>; /** * The SNI to use for HC requests over SSL */ sni?: pulumi.Input<string>; /** * 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>[]>; } export interface LoadbalancerFrontendAcl { /** * Action to undertake when an ACL filter matches. */ action: pulumi.Input<inputs.LoadbalancerFrontendAclAction>; /** * IsDate and time of ACL's creation (RFC 3339 format) */ createdAt?: pulumi.Input<string>; /** * Description of the ACL */ description?: pulumi.Input<string>; /** * The ACL match rule. At least `ipSubnet` 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>; /** * IsDate and time of ACL's update (RFC 3339 format) */ updatedAt?: pulumi.Input<string>; } export interface LoadbalancerFrontendAclAction { /** * Redirect parameters when using an ACL with `redirect` action. */ redirects?: pulumi.Input<pulumi.Input<inputs.LoadbalancerFrontendAclActionRedirect>[]>; /** * 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>; /** * 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>; /** * The redirect type. Possible values are: `location` or `scheme`. */ type?: pulumi.Input<string>; } 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>; /** * If you have `httpFilter` at `httpHeaderMatch`, you can use this field to filter on the HTTP header's value. */ httpFilterOption?: pulumi.Input<string>; /** * 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>[]>; /** * If set to `true`, the condition will be of type "unless". */ invert?: pulumi.Input<boolean>; /** * A list of IPs, or CIDR v4/v6 addresses of the session client, to match. */ ipSubnets?: pulumi.Input<pulumi.Input<string>[]>; } export interface LoadbalancerPrivateIp { /** * The private IP address. */ address?: pulumi.Input<string>; /** * The ID of the IP address resource. */ id?: pulumi.Input<string>; } export interface LoadbalancerPrivateNetwork { /** * 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<boolean>; /** * IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network. */ ipamIds?: pulumi.Input<string>; /** * The ID of the Private Network to attach to. * - > **Important:** Updates to `privateNetwork` will recreate the attachment. */ privateNetworkId: pulumi.Input<string>; /** * 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<string>; /** * The status of the private network connection. */ status?: pulumi.Input<string>; /** * `zone`) The zone of the Load Balancer. */ zone?: pulumi.Input<string>; } export interface MnqSnsCredentialsPermissions { /** * . Defines whether the user can manage the associated resource(s). */ canManage?: pulumi.Input<boolean>; /** * . Defines whether the user can publis