UNPKG

@lbrlabs/pulumi-scaleway

Version:

A Pulumi package for creating and managing scaleway cloud resources.

1,980 lines 71.1 kB
import * as outputs from "../types/output"; export interface BaremetalServerIp { /** * The address of the IPv6. */ address: string; /** * The id of the private network to attach. */ id: string; /** * The reverse of the IPv6. */ reverse: string; /** * The type of the IPv6. */ version: string; } export interface BaremetalServerIpv4 { /** * The address of the IPv6. */ address: string; /** * The id of the private network to attach. */ id: string; /** * The reverse of the IPv6. */ reverse: string; /** * The type of the IPv6. */ version: string; } export interface BaremetalServerIpv6 { /** * The address of the IPv6. */ address: string; /** * The id of the private network to attach. */ id: string; /** * The reverse of the IPv6. */ reverse: string; /** * The type of the IPv6. */ version: string; } export interface BaremetalServerOption { /** * The auto expiration date for compatible options */ expiresAt: string; /** * The id of the private network to attach. */ id: string; /** * The name of the server. */ name: string; } export interface BaremetalServerPrivateNetwork { /** * The date and time of the creation of the private network. */ createdAt: string; /** * The id of the private network to attach. */ id: string; /** * The private network status. */ status: string; /** * The date and time of the last update of the private network. */ updatedAt: string; /** * The VLAN ID associated to the private network. */ vlan: number; } export interface CockpitEndpoint { /** * The alertmanager URL */ alertmanagerUrl: string; /** * The grafana URL */ grafanaUrl: string; /** * The logs URL */ logsUrl: string; /** * The metrics URL */ metricsUrl: string; } export interface CockpitTokenScopes { /** * Query logs */ queryLogs?: boolean; /** * Query metrics */ queryMetrics?: boolean; /** * Setup alerts */ setupAlerts?: boolean; /** * Setup logs rules */ setupLogsRules?: boolean; /** * Setup metrics rules */ setupMetricsRules?: boolean; /** * Write logs */ writeLogs?: boolean; /** * Write metrics */ writeMetrics?: boolean; } export interface ContainerTriggerNats { /** * ID of the mnq nats account. */ accountId?: string; /** * ID of the project that contain the mnq nats account, defaults to provider's project */ projectId: string; /** * `region`). The region in which the namespace should be created. */ region: string; /** * The subject to listen to */ subject: string; } export interface ContainerTriggerSqs { /** * ID of the mnq namespace. Deprecated. */ namespaceId?: string; /** * ID of the project that contain the mnq nats account, defaults to provider's project */ projectId: string; /** * Name of the queue */ queue: string; /** * `region`). The region in which the namespace should be created. */ region: string; } export interface DatabaseAclAclRule { /** * A text describing this rule. Default description: `IP allowed` */ description: string; /** * The ip range to whitelist in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) */ ip: string; } export interface DatabaseInstanceLoadBalancer { /** * The ID of the endpoint. */ endpointId: string; /** * Hostname of the endpoint. */ hostname: string; /** * IPv4 address on the network. */ ip: string; /** * The name of the Database Instance. */ name: string; /** * Port in the Private Network. */ port: number; } export interface DatabaseInstancePrivateNetwork { /** * The ID of the endpoint. */ endpointId: string; /** * Hostname of the endpoint. */ hostname: string; /** * IPv4 address on the network. */ ip: string; ipNet: string; /** * The name of the Database Instance. */ name: string; pnId: string; /** * Port in the Private Network. */ port: number; zone: string; } export interface DatabaseInstanceReadReplica { /** * IPv4 address on the network. */ ip: string; /** * The name of the Database Instance. */ name: string; /** * Port in the Private Network. */ port: number; } export interface DatabaseReadReplicaDirectAccess { /** * The ID of the endpoint of the read replica. */ endpointId: string; /** * Hostname of the endpoint. Only one of ip and hostname may be set. */ hostname: string; /** * IPv4 address of the endpoint (IP address). Only one of ip and hostname may be set. */ ip: string; /** * Name of the endpoint. */ name: string; /** * TCP port of the endpoint. */ port: number; } export interface DatabaseReadReplicaPrivateNetwork { /** * The ID of the endpoint of the read replica. */ endpointId: string; /** * Hostname of the endpoint. Only one of ip and hostname may be set. */ hostname: string; /** * IPv4 address of the endpoint (IP address). Only one of ip and hostname may be set. */ ip: string; /** * Name of the endpoint. */ name: string; /** * TCP port of the endpoint. */ port: number; /** * UUID of the private network to be connected to the read replica. */ privateNetworkId: string; /** * The IP network address within the private subnet. This must be an IPv4 address with a * CIDR notation. The IP network address within the private subnet is determined by the IP Address Management (IPAM) * service if not set. */ serviceIp: string; zone: string; } export interface DocumentdbReadReplicaDirectAccess { /** * The ID of the endpoint of the read replica. */ endpointId: string; /** * Hostname of the endpoint. Only one of ip and hostname may be set. */ hostname: string; /** * IPv4 address of the endpoint (IP address). Only one of ip and hostname may be set. */ ip: string; /** * Name of the endpoint. */ name: string; /** * TCP port of the endpoint. */ port: number; } export interface DocumentdbReadReplicaPrivateNetwork { /** * The ID of the endpoint of the read replica. */ endpointId: string; /** * Hostname of the endpoint. Only one of ip and hostname may be set. */ hostname: string; /** * IPv4 address of the endpoint (IP address). Only one of ip and hostname may be set. */ ip: string; /** * Name of the endpoint. */ name: string; /** * TCP port of the endpoint. */ port: number; /** * UUID of the private network to be connected to the read replica. */ privateNetworkId: string; /** * The IP network address within the private subnet. This must be an IPv4 address with a * CIDR notation. The IP network address within the private subnet is determined by the IP Address Management (IPAM) * service if not set. */ serviceIp: string; zone: string; } export interface DomainRecordGeoIp { /** * The list of matches. *(Can be more than 1)* */ matches: outputs.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?: 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?: string[]; /** * The content of the record (an IPv4 for an `A`, a string for a `TXT`...). */ data: string; } export interface DomainRecordHttpService { /** * List of IPs to check */ ips: string[]; /** * Text to search */ mustContain: string; /** * Strategy to return an IP from the IPs list. Can be `random`, `hashed` or `all` */ strategy: string; /** * URL to match the `mustContain` text to validate an IP */ url: string; /** * User-agent used when checking the URL */ userAgent?: string; } export interface DomainRecordView { /** * The content of the record (an IPv4 for an `A`, a string for a `TXT`...). */ data: string; /** * The subnet of the view */ subnet: string; } export interface DomainRecordWeighted { /** * The weighted IP */ ip: string; /** * The weight of the IP as an integer UInt32. */ weight: number; } export interface FunctionTriggerNats { /** * ID of the mnq nats account. */ accountId?: string; /** * ID of the project that contain the mnq nats account, defaults to provider's project */ projectId: string; /** * `region`). The region in which the namespace should be created. */ region: string; /** * The subject to listen to */ subject: string; } export interface FunctionTriggerSqs { /** * ID of the mnq namespace. Deprecated. */ namespaceId?: string; /** * ID of the project that contain the mnq nats account, defaults to provider's project */ projectId: string; /** * Name of the queue */ queue: string; /** * `region`). The region in which the namespace should be created. */ region: string; } export interface GetBaremetalOfferCpu { /** * Number of core on this CPU. */ coreCount: number; /** * Frequency of the memory in MHz. */ frequency: number; /** * The offer name. Only one of `name` and `offerId` should be specified. */ name: string; /** * Number of thread on this CPU. */ threadCount: number; } export interface GetBaremetalOfferDisk { /** * Capacity of the memory in GB. */ capacity: number; /** * Type of memory. */ type: string; } export interface GetBaremetalOfferMemory { /** * Capacity of the memory in GB. */ capacity: number; /** * Frequency of the memory in MHz. */ frequency: number; /** * True if error-correcting code is available on this memory. */ isEcc: boolean; /** * Type of memory. */ type: string; } export interface GetBaremetalServerIp { address: string; /** * The ID of the server. */ id: string; reverse: string; version: string; } export interface GetBaremetalServerIpv4 { address: string; /** * The ID of the server. */ id: string; reverse: string; version: string; } export interface GetBaremetalServerIpv6 { address: string; /** * The ID of the server. */ id: string; reverse: string; version: string; } export interface GetBaremetalServerOption { expiresAt: string; /** * The ID of the server. */ id: string; /** * The server name. Only one of `name` and `serverId` should be specified. */ name: string; } export interface GetBaremetalServerPrivateNetwork { createdAt: string; /** * The ID of the server. */ id: string; status: string; updatedAt: string; vlan: number; } export interface GetBillingConsumptionsConsumption { category: string; description: string; operationPath: string; projectId: string; value: string; } export interface GetBillingInvoicesInvoice { /** * The payment time limit, set according to the Organization's payment conditions (RFC 3339 format). */ dueDate: string; /** * The associated invoice ID. */ id: string; /** * Invoices with the given type are listed. Valid values are `periodic` and `purchase`. */ invoiceType: string; /** * The date when the invoice was sent to the customer (RFC 3339 format). */ issuedDate: string; /** * The invoice number. */ number: number; /** * The start date of the billing period (RFC 3339 format). */ startDate: string; /** * The total amount, taxed. */ totalTaxed: string; /** * The total amount, untaxed. */ totalUntaxed: string; } export interface GetCockpitEndpoint { /** * The alertmanager URL */ alertmanagerUrl: string; /** * The grafana URL */ grafanaUrl: string; /** * The logs URL */ logsUrl: string; /** * The metrics URL */ metricsUrl: string; } export interface GetDatabaseAclAclRule { /** * A simple text describing this rule */ description: string; /** * The ip range to whitelist in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) */ ip: string; } export interface GetDatabaseInstanceLoadBalancer { endpointId: string; hostname: string; ip: string; /** * The name of the RDB instance. * Only one of `name` and `instanceId` should be specified. */ name: string; port: number; } export interface GetDatabaseInstancePrivateNetwork { endpointId: string; hostname: string; ip: string; ipNet: string; /** * The name of the RDB instance. * Only one of `name` and `instanceId` should be specified. */ name: string; pnId: string; port: number; zone: string; } export interface GetDatabaseInstanceReadReplica { ip: string; /** * The name of the RDB instance. * Only one of `name` and `instanceId` should be specified. */ name: string; port: number; } export interface GetDomainRecordGeoIp { matches: outputs.GetDomainRecordGeoIpMatch[]; } export interface GetDomainRecordGeoIpMatch { continents: string[]; countries: string[]; /** * The content of the record (an IPv4 for an `A`, a string for a `TXT`...). * Cannot be used with `recordId`. */ data: string; } export interface GetDomainRecordHttpService { ips: string[]; mustContain: string; strategy: string; url: string; userAgent: string; } export interface GetDomainRecordView { /** * The content of the record (an IPv4 for an `A`, a string for a `TXT`...). * Cannot be used with `recordId`. */ data: string; subnet: string; } export interface GetDomainRecordWeighted { ip: string; weight: number; } export interface GetFlexibleIpsIp { /** * The date on which the flexible IP was created (RFC 3339 format). */ createdAt: string; /** * The description of the flexible IP. */ description: string; /** * The MAC address ID. */ id: string; ipAddress: string; /** * The MAC address of the Virtual MAC. */ macAddresses: outputs.GetFlexibleIpsIpMacAddress[]; /** * (Defaults to provider `organizationId`) The ID of the organization the IP is in. */ organizationId: string; /** * (Defaults to provider `projectId`) The ID of the project the IP is in. */ projectId: string; /** * The reverse domain associated with this IP. */ reverse: string; /** * The status of virtual MAC. */ status: string; /** * List of tags used as filter. IPs with these exact tags are listed. */ tags: string[]; /** * The date on which the flexible IP was last updated (RFC 3339 format). */ updatedAt: string; /** * `zone`) The zone in which IPs exist. */ zone: string; } export interface GetFlexibleIpsIpMacAddress { /** * The date on which the flexible IP was created (RFC 3339 format). */ createdAt: string; /** * The MAC address ID. */ id: string; /** * The MAC address of the Virtual MAC. */ macAddress: string; /** * The type of virtual MAC. */ macType: string; /** * The status of virtual MAC. */ status: string; /** * The date on which the flexible IP was last updated (RFC 3339 format). */ updatedAt: string; /** * `zone`) The zone in which IPs exist. */ zone: string; } export interface GetInstanceSecurityGroupInboundRule { /** * The action to take when rule match. Possible values are: `accept` or `drop`. */ action: string; /** * The ip this rule apply to. */ ip: string; /** * The ip range (e.g `192.168.1.0/24`) this rule apply to. */ ipRange: string; /** * The port this rule apply to. If no port is specified, rule will apply to all port. */ port: number; portRange: string; /** * The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`. */ protocol: string; } export interface GetInstanceSecurityGroupOutboundRule { /** * The action to take when rule match. Possible values are: `accept` or `drop`. */ action: string; /** * The ip this rule apply to. */ ip: string; /** * The ip range (e.g `192.168.1.0/24`) this rule apply to. */ ipRange: string; /** * The port this rule apply to. If no port is specified, rule will apply to all port. */ port: number; portRange: string; /** * The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`. */ protocol: string; } export interface GetInstanceServerPrivateNetwork { macAddress: string; pnId: string; status: string; /** * `zone`) The zone in which the server exists. */ zone: string; } export interface GetInstanceServerPublicIp { /** * The address of the IP */ address: string; /** * The ID of the IP */ id: string; } export interface GetInstanceServerRootVolume { boot: boolean; /** * Forces deletion of the root volume on instance termination. */ deleteOnTermination: boolean; /** * The server name. Only one of `name` and `serverId` should be specified. */ name: string; /** * Size of the root volume in gigabytes. */ sizeInGb: number; /** * The volume ID of the root volume of the server. */ volumeId: string; volumeType: string; } export interface GetInstanceServersServer { /** * The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`. */ bootType: string; /** * The ID of the bootscript. */ bootscriptId: string; /** * If true a dynamic IP will be attached to the server. */ enableDynamicIp: boolean; /** * Determines if IPv6 is enabled for the server. */ enableIpv6: boolean; /** * The ID of the IP */ id: string; /** * The UUID or the label of the base image used by the server. */ image: string; /** * The default ipv6 address routed to the server. ( Only set when enableIpv6 is set to true ) */ ipv6Address: string; /** * The ipv6 gateway address. ( Only set when enableIpv6 is set to true ) */ ipv6Gateway: string; /** * The prefix length of the ipv6 subnet routed to the server. ( Only set when enableIpv6 is set to true ) */ ipv6PrefixLength: number; /** * The server name used as filter. Servers with a name like it are listed. */ name: string; /** * The organization ID the server is associated with. */ organizationId: string; /** * The [placement group](https://developers.scaleway.com/en/products/instance/api/#placement-groups-d8f653) the server is attached to. */ placementGroupId: string; placementGroupPolicyRespected: boolean; /** * The Scaleway internal IP address of the server. */ privateIp: string; /** * The ID of the project the server is associated with. */ projectId: string; /** * The public IP address of the server. */ publicIp: string; /** * The list of public IPs of the server */ publicIps: outputs.GetInstanceServersServerPublicIp[]; /** * True if the server support routed ip only. */ routedIpEnabled: boolean; /** * The [security group](https://developers.scaleway.com/en/products/instance/api/#security-groups-8d7f89) the server is attached to. */ securityGroupId: string; /** * The state of the server. Possible values are: `started`, `stopped` or `standby`. */ state: string; /** * List of tags used as filter. Servers with these exact tags are listed. */ tags: string[]; /** * The commercial type of the server. */ type: string; /** * `zone`) The zone in which servers exist. */ zone: string; } export interface GetInstanceServersServerPublicIp { /** * The address of the IP */ address: string; /** * The ID of the IP */ id: string; } export interface GetInstanceSnapshotImport { bucket: string; key: string; } export interface GetIotDeviceCertificate { crt: string; key: string; } export interface GetIotDeviceMessageFilter { publishes: outputs.GetIotDeviceMessageFilterPublish[]; subscribes: outputs.GetIotDeviceMessageFilterSubscribe[]; } export interface GetIotDeviceMessageFilterPublish { policy: string; topics: string[]; } export interface GetIotDeviceMessageFilterSubscribe { policy: string; topics: string[]; } export interface GetIpamIpResource { /** * The ID of the resource that the IP is bound to. */ id?: string; /** * The type of the resource to get the IP from. [Documentation](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/ipam/v1alpha1#pkg-constants) with type list. */ type?: string; } export interface GetKubernetesClusterAutoUpgrade { /** * True if Kubernetes patch version auto upgrades is enabled. */ enable: boolean; /** * The day of the auto upgrade maintenance window (`monday` to `sunday`, or `any`). */ maintenanceWindowDay: string; /** * The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23). */ maintenanceWindowStartHour: number; } export interface GetKubernetesClusterAutoscalerConfig { /** * True if detecting similar node groups and balance the number of nodes between them is enabled. */ balanceSimilarNodeGroups: boolean; /** * True if the scale down feature of the autoscaler is disabled. */ disableScaleDown: boolean; /** * The type of resource estimator used in scale up. */ estimator: string; /** * The type of node group expander be used in scale up. */ expander: 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: number; /** * True if ignoring DaemonSet pods when calculating resource utilization for scaling down is enabled. */ ignoreDaemonsetsUtilization: boolean; maxGracefulTerminationSec: number; /** * The duration after scale up that scale down evaluation resumes. */ scaleDownDelayAfterAdd: string; /** * The duration a node should be unneeded before it is eligible for scale down. */ scaleDownUnneededTime: string; scaleDownUtilizationThreshold: number; } export interface GetKubernetesClusterKubeconfig { /** * The CA certificate of the Kubernetes API server. */ clusterCaCertificate: string; /** * The raw kubeconfig file. */ configFile: string; /** * The URL of the Kubernetes API server. */ host: string; /** * The token to connect to the Kubernetes API server. */ token: string; } export interface GetKubernetesClusterOpenIdConnectConfig { clientId: string; groupsClaims: string[]; groupsPrefix: string; issuerUrl: string; requiredClaims: string[]; usernameClaim: string; usernamePrefix: string; } export interface GetKubernetesNodePoolNode { /** * The pool name. Only one of `name` and `poolId` should be specified. `clusterId` should be specified with `name`. */ name: string; /** * The public IPv4. */ publicIp: string; /** * The public IPv6. */ publicIpV6: string; /** * The status of the node. */ status: string; } export interface GetKubernetesNodePoolUpgradePolicy { maxSurge: number; maxUnavailable: number; } export interface GetLbAclsAcl { /** * The action that has been undertaken when an ACL filter had matched. */ actions: outputs.GetLbAclsAclAction[]; /** * The date at which the ACL was created (RFC 3339 format). */ createdAt: string; /** * The description of the ACL resource. */ description: string; /** * The frontend ID this ACL is attached to. ACLs with a frontend ID like it are listed. * > **Important:** LB Frontends' IDs are zoned, which means they are of the form `{zone}/{id}`, e.g. `fr-par-1/11111111-1111-1111-1111-111111111111` */ frontendId: string; /** * The associated ACL ID. * > **Important:** LB ACLs' IDs are zoned, which means they are of the form `{zone}/{id}`, e.g. `fr-par-1/11111111-1111-1111-1111-111111111111` */ id: string; /** * The order between the ACLs. */ index: number; /** * The ACL match rule. */ matches: outputs.GetLbAclsAclMatch[]; /** * The ACL name used as filter. ACLs with a name like it are listed. */ name: string; /** * The date at which the ACL was last updated (RFC 3339 format). */ updateAt: string; } export interface GetLbAclsAclAction { /** * Redirect parameters when using an ACL with `redirect` action. */ redirects: outputs.GetLbAclsAclActionRedirect[]; /** * The redirect type. */ type: string; } export interface GetLbAclsAclActionRedirect { /** * The HTTP redirect code used. */ code: number; /** * The URL used in case of a location redirect or the scheme name that replaces the request's original scheme. */ target: string; /** * The redirect type. */ type: string; } export interface GetLbAclsAclMatch { /** * The matched HTTP filter. */ httpFilter: string; httpFilterOption: string; /** * The possible values matched for a given HTTP filter. */ httpFilterValues: string[]; /** * The condition will be of type "unless" if invert is set to `true` */ invert: boolean; /** * A list of matched IPs or CIDR v4/v6 addresses of the client of the session. */ ipSubnets: string[]; } export interface GetLbBackendHealthCheckHttp { code: number; hostHeader: string; method: string; sni: string; uri: string; } export interface GetLbBackendHealthCheckTcp { } export interface GetLbBackendsBackend { /** * The date at which the backend was created (RFC 3339 format). */ createdAt: string; /** * Scaleway S3 bucket website to be served in case all backend servers are down. */ failoverHost: string; /** * User sessions will be forwarded to this port of backend servers. */ forwardPort: number; /** * Load balancing algorithm. */ forwardPortAlgorithm: string; /** * Backend protocol. */ forwardProtocol: string; /** * Interval between two HC requests. */ healthCheckDelay: string; /** * This block enable HTTP health check. */ healthCheckHttp: outputs.GetLbBackendsBackendHealthCheckHttp[]; /** * This block enable HTTPS health check. */ healthCheckHttps: outputs.GetLbBackendsBackendHealthCheckHttp[]; /** * Number of allowed failed HC requests before the backend server is marked down. */ healthCheckMaxRetries: number; /** * Port the HC requests will be sent to. */ healthCheckPort: number; /** * This block enable TCP health check. */ healthCheckTcps: outputs.GetLbBackendsBackendHealthCheckTcp[]; /** * Timeout before we consider a HC request failed. */ healthCheckTimeout: string; /** * The associated backend ID. */ id: string; /** * Specifies whether the Load Balancer should check the backend server’s certificate before initiating a connection. */ ignoreSslServerVerify: boolean; /** * The load-balancer ID this backend is attached to. backends with a LB ID like it are listed. */ lbId: string; /** * The backend name used as filter. Backends with a name like it are listed. */ name: string; /** * Modify what occurs when a backend server is marked down. */ onMarkedDownAction: string; /** * The type of PROXY protocol. */ proxyProtocol: string; /** * List of backend server IP addresses. */ serverIps: string[]; /** * Enables SSL between load balancer and backend servers. */ sslBridging: boolean; /** * Enables cookie-based session persistence. */ stickySessions: string; /** * Cookie name for sticky sessions. */ stickySessionsCookieName: string; /** * Maximum initial server connection establishment time. */ timeoutConnect: string; /** * Maximum server connection inactivity time. */ timeoutServer: string; /** * Maximum tunnel inactivity time. */ timeoutTunnel: string; /** * The date at which the backend was last updated (RFC 3339 format). */ updateAt: string; } export interface GetLbBackendsBackendHealthCheckHttp { /** * The expected HTTP status code. */ code: number; /** * The HTTP host header to use for HC requests. */ hostHeader: string; /** * The HTTP method to use for HC requests. */ method: string; /** * The SNI to use for HC requests over SSL. */ sni: string; /** * The HTTPS endpoint URL to call for HC requests. */ uri: string; } export interface GetLbBackendsBackendHealthCheckTcp { } export interface GetLbFrontendAcl { actions: outputs.GetLbFrontendAclAction[]; createdAt: string; description: string; matches: outputs.GetLbFrontendAclMatch[]; /** * The name of the frontend. * - When using the `name` you should specify the `lb-id` */ name: string; updatedAt: string; } export interface GetLbFrontendAclAction { redirects: outputs.GetLbFrontendAclActionRedirect[]; type: string; } export interface GetLbFrontendAclActionRedirect { code: number; target: string; type: string; } export interface GetLbFrontendAclMatch { httpFilter: string; httpFilterOption: string; httpFilterValues: string[]; invert: boolean; ipSubnets: string[]; } export interface GetLbFrontendsFrontend { /** * The load-balancer backend ID this frontend is attached to. * > **Important:** LB backends' IDs are zoned, which means they are of the form `{zone}/{id}`, e.g. `fr-par-1/11111111-1111-1111-1111-111111111111` */ backendId: string; /** * List of Certificate IDs that are used by the frontend. */ certificateIds: string[]; /** * The date at which the frontend was created (RFC 3339 format). */ createdAt: string; /** * If HTTP/3 protocol is activated. */ enableHttp3: boolean; /** * The associated frontend ID. * > **Important:** LB frontends' IDs are zoned, which means they are of the form `{zone}/{id}`, e.g. `fr-par-1/11111111-1111-1111-1111-111111111111` */ id: string; /** * TCP port the frontend listen to. */ inboundPort: number; /** * The load-balancer ID this frontend is attached to. frontends with a LB ID like it are listed. */ lbId: string; /** * The frontend name used as filter. Frontends with a name like it are listed. */ name: string; /** * Maximum inactivity time on the client side. */ timeoutClient: string; /** * The date at which the frontend was last updated (RFC 3339 format). */ updateAt: string; } export interface GetLbIpsIp { /** * The associated IP ID. */ id: string; /** * The IP Address */ ipAddress: string; /** * The associated load-balancer ID if any */ lbId: string; /** * The organization ID the load-balancer is associated with. */ organizationId: string; /** * The ID of the project the load-balancer is associated with. */ projectId: string; /** * The reverse domain associated with this IP. */ reverse: string; /** * `zone`) The zone in which IPs exist. */ zone: string; } export interface GetLbRoutesRoute { /** * The backend ID destination of redirection */ backendId: string; /** * The date at which the route was created (RFC 3339 format). */ createdAt: string; /** * The frontend ID origin of redirection used as a filter. routes with a frontend ID like it are listed. */ frontendId: string; /** * The associated route ID. */ id: string; /** * Specifies the host of the server to which the request is being sent. */ matchHostHeader: string; /** * Server Name Indication TLS extension field from an incoming connection made via an SSL/TLS transport layer. */ matchSni: string; /** * The date at which the route was last updated (RFC 3339 format). */ updateAt: string; } export interface GetLbsLb { /** * Number of backends the Load balancer has. */ backendCount: number; /** * Date at which the Load balancer was created. */ createdAt: string; /** * The description of the load-balancer. */ description: string; /** * Number of frontends the Load balancer has. */ frontendCount: number; /** * The ID of the load-balancer. */ id: string; /** * List of underlying instances. */ instances: outputs.GetLbsLbInstance[]; /** * List of IPs attached to the Load balancer. */ ips: outputs.GetLbsLbIp[]; /** * The load balancer name used as a filter. LBs with a name like it are listed. */ name: string; /** * The organization ID the load-balancer is associated with. */ organizationId: string; /** * Number of private networks attached to the Load balancer. */ privateNetworkCount: number; /** * The ID of the project the load-balancer is associated with. */ projectId: string; /** * Number of routes the Load balancer has. */ routeCount: number; /** * Determines the minimal SSL version which needs to be supported on client side. */ sslCompatibilityLevel: string; /** * The state of the LB's instance. Possible values are: `unknown`, `ready`, `pending`, `stopped`, `error`, `locked` and `migrating`. */ status: string; /** * The subscriber information. */ subscriber: string; /** * The tags associated with the load-balancer. */ tags: string[]; /** * The offer type of the load-balancer. */ type: string; /** * Date at which the Load balancer was updated. */ updatedAt: string; /** * `zone`) The zone in which LBs exist. */ zone: string; } export interface GetLbsLbInstance { /** * Date at which the Load balancer was created. */ createdAt: string; /** * The ID of the load-balancer. */ id: string; ipAddress: string; /** * The state of the LB's instance. Possible values are: `unknown`, `ready`, `pending`, `stopped`, `error`, `locked` and `migrating`. */ status: string; /** * Date at which the Load balancer was updated. */ updatedAt: string; /** * `zone`) The zone in which LBs exist. */ zone: string; } export interface GetLbsLbIp { /** * The ID of the load-balancer. */ id: string; ipAddress: string; lbId: string; /** * The organization ID the load-balancer is associated with. */ organizationId: string; /** * The ID of the project the load-balancer is associated with. */ projectId: string; reverse: string; /** * `zone`) The zone in which LBs exist. */ zone: string; } export interface GetLoadbalancerCertificateCustomCertificate { certificateChain: string; } export interface GetLoadbalancerCertificateLetsencrypt { commonName: string; subjectAlternativeNames: string[]; } export interface GetLoadbalancerPrivateNetwork { dhcpConfig: boolean; privateNetworkId: string; staticConfigs: string[]; status: string; /** * (Defaults to provider `zone`) The zone in which the LB exists. */ zone: string; } export interface GetObjectBucketCorsRule { allowedHeaders: string[]; allowedMethods: string[]; allowedOrigins: string[]; exposeHeaders: string[]; maxAgeSeconds: number; } export interface GetObjectBucketLifecycleRule { abortIncompleteMultipartUploadDays: number; enabled: boolean; expirations: outputs.GetObjectBucketLifecycleRuleExpiration[]; /** * The unique name of the bucket. */ id: string; prefix: string; tags: { [key: string]: string; }; transitions: outputs.GetObjectBucketLifecycleRuleTransition[]; } export interface GetObjectBucketLifecycleRuleExpiration { days: number; } export interface GetObjectBucketLifecycleRuleTransition { days: number; storageClass: string; } export interface GetObjectBucketVersioning { enabled: boolean; } export interface GetRedisClusterAcl { description: string; /** * The ID of the Redis cluster. */ id: string; ip: string; } export interface GetRedisClusterPrivateNetwork { endpointId: string; /** * The ID of the Redis cluster. */ id: string; serviceIps: string[]; /** * `region`) The zone in which the server exists. */ zone: string; } export interface GetRedisClusterPublicNetwork { /** * The ID of the Redis cluster. */ id: string; ips: string[]; port: number; } export interface GetVpcGatewayNetworkIpamConfig { pushDefaultRoute: boolean; } export interface GetVpcPrivateNetworkIpv4Subnet { address: string; createdAt: string; /** * The ID of the private network. */ id: string; prefixLength: number; subnet: string; subnetMask: string; updatedAt: string; } export interface GetVpcPrivateNetworkIpv6Subnet { address: string; createdAt: string; /** * The ID of the private network. */ id: string; prefixLength: number; subnet: string; subnetMask: string; updatedAt: string; } export interface GetVpcsVpc { /** * Date and time of VPC's creation (RFC 3339 format). */ createdAt: string; /** * The associated VPC ID. * > **Important:** VPCs' IDs are regional, which means they are of the form `{region}/{id}`, e.g. `fr-par/11111111-1111-1111-1111-111111111111 */ id: string; /** * Defines whether the VPC is the default one for its Project. */ isDefault: boolean; /** * The VPC name used as filter. VPCs with a name like it are listed. */ name: string; /** * The organization ID the VPC is associated with. */ organizationId: string; /** * The ID of the project the VPC is associated with. */ projectId: string; /** * `region`). The region in which vpcs exist. */ region: string; /** * List of tags used as filter. VPCs with these exact tags are listed. */ tags: string[]; updateAt: string; } export interface GetWebHostOfferProduct { /** * The quota of databases. */ databasesQuota: number; /** * The quota of email accounts. */ emailAccountsQuota: number; /** * The quota of email storage. */ emailStorageQuota: number; /** * The quota of hosting storage. */ hostingStorageQuota: number; /** * The offer name. Only one of `name` and `offerId` should be specified. */ name: string; /** * The product option. */ option: boolean; /** * The capacity of the memory in GB. */ ram: number; /** * If support is included. */ supportIncluded: boolean; /** * The number of cores. */ vCpu: number; } export interface GetWebhostingCpanelUrl { dashboard: string; webmail: string; } export interface GetWebhostingOption { id: string; name: string; } export interface IamPolicyRule { /** * ID of organization scoped to the rule. */ organizationId?: string; /** * Names of permission sets bound to the rule. * * **_TIP:_** You can use the Scaleway CLI to list the permissions details. e.g: */ permissionSetNames: string[]; /** * List of project IDs scoped to the rule. * * > **Important** One of `organizationId` or `projectIds` must be set per rule. */ projectIds?: string[]; } export interface InstanceImageAdditionalVolume { /** * Date of the volume creation. */ creationDate: string; /** * The export URI of the volume. */ exportUri: string; /** * ID of the server containing the volume. */ id: string; /** * Date of volume latest update. */ modificationDate: string; /** * The name of the image. If not provided it will be randomly generated. */ name: string; /** * The organization ID the volume is associated with. */ organization: string; /** * ID of the project the volume is associated with */ project: string; /** * Description of the server containing the volume (in case the image is a backup from a server). */ server: { [key: string]: string; }; /** * The size of the volume. */ size: number; /** * State of the volume. */ state: string; /** * A list of tags to apply to the image. */ tags: string[]; /** * The type of volume, possible values are `lSsd` and `bSsd`. */ volumeType: string; /** * The zone in which the image should be created. */ zone: string; } export interface InstanceSecurityGroupInboundRule { /** * The action to take when rule match. Possible values are: `accept` or `drop`. */ action: 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 ip_range instead */ ip?: 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?: 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?: number; portRange?: string; /** * The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`. */ protocol?: string; } export interface InstanceSecurityGroupOutboundRule { /** * The action to take when rule match. Possible values are: `accept` or `drop`. */ action: 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 ip_range instead */ ip?: 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?: 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?: number; portRange?: string; /** * The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`. */ protocol?: string; } export interface InstanceSecurityGroupRulesInboundRule { /** * The action to take when rule match. Possible values are: `accept` or `drop`. */ action: 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 ip_range instead */ ip?: 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?: string; /** * The port this rule apply to. If no port is specified, rule will apply to all port. */ port?: number; portRange?: string; /** * The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`. */ protocol?: string; } export interface InstanceSecurityGroupRulesOutboundRule { /** * The action to take when rule match. Possible values are: `accept` or `drop`. */ action: 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 ip_range instead */ ip?: 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?: string; /** * The port this rule apply to. If no port is specified, rule will apply to all port. */ port?: number; portRange?: string; /** * The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`. */ protocol?: string; } export interface InstanceServerPrivateNetwork { macAddress: string; pnId: string; status: string; /** * `zone`) The zone in which the server should be created. */ zone: string; } export interface InstanceServerPublicIp { /** * The address of the IP */ address: string; /** * The ID of the IP */ id: string; } export interface InstanceServerRootVolume { boot?: boolean; /** * Forces deletion of the root volume on instance termination. * * > **Important:** Updates to `root_volume.size_in_gb` will be ignored after the creation of the server. */ deleteOnTermination?: boolean; /** * The name of the server. */ name: string; /** * Size of the root volume in gigabytes. * To find the right size use [this endpoint](https://api.scaleway.com/instance/v1/zones/fr-par-1/products/servers) and * check the `volumes_constraint.{min|max}_size` (in bytes) for your `commercialType`. * Updates to this field will recreate a new resource. */ sizeInGb: 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: string; /** * Volume type of root volume, can be `bSsd` or `lSsd`, default value depends on server type */ volumeType: string; } export interface InstanceSnapshotImport { /** * Bucket name containing [qcow2](https://en.wikipedia.org/wiki/Qcow) to import */ bucket: string; /** * Key of the object to import * * > **Note:** The type `unified` could be instantiated on both `lSsd` and `bSsd` volumes. */ key: string; } export interface IotDeviceCertificate { crt: string; /** * The private key of the device, in case it is generated by Scaleway. */ key: string; } export interface IotDeviceMessageFilters { /** * Rules used to restrict topics the device can publish to. */ publish?: outputs.IotDeviceMessa