@pulumiverse/scaleway
Version:
A Pulumi package for creating and managing Scaleway cloud resources.
2,008 lines • 370 kB
TypeScript
import * as outputs from "../types/output";
export interface AppleSiliconServerPrivateIp {
/**
* The private IP address.
*/
address: string;
/**
* The ID of the IP address resource.
*/
id: string;
}
export interface AppleSiliconServerPrivateNetwork {
/**
* The date and time the private network was created.
*/
createdAt: string;
/**
* The private network ID
*/
id: string;
/**
* A list of IPAM IP IDs to attach to the server.
*/
ipamIpIds: string[];
/**
* The current status of the private network.
*/
status: string;
/**
* The date and time the private network was last updated.
*/
updatedAt: string;
/**
* The VLAN ID associated with the private network.
*/
vlan: number;
}
export interface BaremetalServerIp {
/**
* The address of the IPv6.
*/
address: string;
/**
* The ID of the IPv6.
*/
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 IPv6.
*/
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 IPv6.
*/
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 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: string;
/**
* The name of the server.
*/
name: string;
}
export interface BaremetalServerPrivateIp {
/**
* The address of the IPv6.
*/
address: string;
/**
* The ID of the IPv6.
*/
id: 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;
/**
* List of IPAM IP IDs to assign to the server in the requested private network.
*/
ipamIpIds: string[];
/**
* The ID of the Server-to-Private Network mapping.
*/
mappingId: 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 BlockSnapshotExport {
/**
* The name of the bucket where the QCOW file will be saved.
*/
bucket: string;
/**
* The desired key (path) for the QCOW file within the bucket.
*/
key: string;
}
export interface BlockSnapshotImport {
/**
* The name of the bucket containing the QCOW file.
*/
bucket: string;
/**
* The key of the QCOW file within the bucket.
*/
key: string;
}
export interface CockpitAlertManagerContactPoint {
/**
* Email addresses for the alert receivers
*/
email?: string;
}
export interface CockpitEndpoint {
/**
* (Deprecated) URL for the [Alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager).
*/
alertmanagerUrl: string;
/**
* (Deprecated) URL for Grafana.
*/
grafanaUrl: 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: 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: 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: string;
}
export interface CockpitPushUrl {
/**
* Push URL for logs (Grafana Loki)
*/
pushLogsUrl: string;
/**
* Push URL for metrics (Grafana Mimir)
*/
pushMetricsUrl: string;
}
export interface CockpitTokenScopes {
/**
* Permission to query logs.
*/
queryLogs?: boolean;
/**
* Permission to query metrics.
*/
queryMetrics?: boolean;
/**
* Permission to query traces.
*/
queryTraces?: boolean;
/**
* Permission to set up alerts.
*/
setupAlerts?: boolean;
/**
* Permission to set up logs rules.
*/
setupLogsRules?: boolean;
/**
* Permission to set up metrics rules.
*/
setupMetricsRules?: boolean;
/**
* Permission to write logs.
*/
writeLogs?: boolean;
/**
* Permission to write metrics.
*/
writeMetrics?: boolean;
/**
* Permission to write traces.
*/
writeTraces?: boolean;
}
export interface ContainerHealthCheck {
/**
* Number of consecutive health check failures before considering the container unhealthy.
*/
failureThreshold: number;
/**
* HTTP health check configuration.
*/
https: outputs.ContainerHealthCheckHttp[];
/**
* Period between health checks (in seconds).
*
* > **Important:** Only one of `livenessProbe` or `healthCheck` can be set at a time.
*/
interval: string;
/**
* When set to `true`, performs TCP checks on the container.
*/
tcp: boolean;
}
export interface ContainerHealthCheckHttp {
/**
* Path to use for the HTTP health check.
*/
path: string;
}
export interface ContainerLivenessProbe {
/**
* Number of consecutive failures before considering the container has to be restarted.
*/
failureThreshold: number;
/**
* Perform HTTP check on the container with the specified path.
*/
http?: outputs.ContainerLivenessProbeHttp;
/**
* Time interval between checks (in duration notation, e.g. "30s").
*/
interval: string;
/**
* When set to `true`, performs TCP checks on the container.
*/
tcp?: boolean;
/**
* The maximum amount of time in seconds your container can spend processing a request before being stopped. Default to `300` seconds.
*/
timeout: string;
}
export interface ContainerLivenessProbeHttp {
/**
* Path to use for the HTTP health check.
*/
path: string;
}
export interface ContainerScalingOption {
/**
* Scale depending on the number of concurrent requests being processed per container instance.
*/
concurrentRequestsThreshold?: number;
/**
* Scale depending on the CPU usage of a container instance.
*/
cpuUsageThreshold?: number;
/**
* Scale depending on the memory usage of a container instance.
*/
memoryUsageThreshold?: number;
}
export interface ContainerStartupProbe {
/**
* Number of consecutive failures before considering the container has to be restarted.
*/
failureThreshold: number;
/**
* Perform HTTP check on the container with the specified path.
*/
http?: outputs.ContainerStartupProbeHttp;
/**
* Time interval between checks (in duration notation, e.g. "30s").
*/
interval: string;
/**
* When set to `true`, performs TCP checks on the container.
*/
tcp?: boolean;
/**
* The maximum amount of time in seconds your container can spend processing a request before being stopped. Default to `300` seconds.
*/
timeout: string;
}
export interface ContainerStartupProbeHttp {
/**
* Path to use for the HTTP health check.
*/
path: string;
}
export interface ContainerTriggerCron {
/**
* Body to send to the container when the trigger is invoked.
*/
body?: string;
/**
* Additional headers to send to the container when the trigger is invoked.
*/
headers?: {
[key: string]: string;
};
/**
* UNIX cron schedule to run job (e.g., "* * * * *").
*/
schedule: string;
/**
* Timezone for the cron schedule, in tz database format (e.g., "Europe/Paris").
*/
timezone: string;
}
export interface ContainerTriggerDestinationConfig {
/**
* The HTTP method to use when sending the request (e.g., get, post, put, patch, delete).
*/
httpMethod: string;
/**
* The HTTP path to send the request to (e.g., "/my-webhook-endpoint").
*/
httpPath: string;
}
export interface ContainerTriggerNats {
/**
* unique identifier of the Messaging and Queuing NATS account.
*/
accountId?: string;
/**
* The content of the NATS credentials file that will be used to authenticate with the NATS server and subscribe to the specified subject.
*/
credentialsFileContent: string;
/**
* The ID of the project that contains the Messaging and Queuing NATS account (defaults to provider `projectId`)
*/
projectId: string;
/**
* Region where the Messaging and Queuing NATS account is enabled (defaults to provider `region`)
*/
region: string;
/**
* The list of URLs of the NATS server (e.g., "nats://nats.mnq.fr-par.scaleway.com:4222").
*/
serverUrls: string[];
/**
* NATS subject to subscribe to (e.g., \"my-subject\")."
*/
subject: string;
}
export interface ContainerTriggerSqs {
/**
* The access key for accessing the SQS queue.
*/
accessKey: string;
/**
* Endpoint URL to use to access SQS (e.g., <https://sqs.mnq.fr-par.scaleway.com>).
*/
endpoint: string;
/**
* The ID of the project in which SQS is enabled, (defaults to provider `projectId`)
*/
projectId: string;
/**
* The name of the SQS queue. This argument is no longer supported.
*
* @deprecated This field is no longer supported, please use queueUrl instead to identify the queue.
*/
queue?: string;
/**
* The URL of the SQS queue to monitor for messages.
*/
queueUrl: string;
/**
* Region where SQS is enabled (defaults to provider `region`)
*/
region: string;
/**
* The secret key for accessing the SQS queue.
*/
secretKey: string;
}
export interface DatabaseAclAclRule {
/**
* A text describing this rule. Default description: `IP allowed`
*/
description: string;
/**
* The IPv4 address or range to whitelist in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation). IPv6 is not supported by the Scaleway API.
*/
ip: 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 DatabaseInstanceLogsPolicy {
/**
* The max age (in days) of remote logs to keep on the Database Instance
*/
maxAgeRetention: number;
/**
* The max disk size of remote logs to keep on the Database Instance.
*/
totalDiskRetention: number;
}
export interface DatabaseInstanceMaintenance {
/**
* Closed maintenance date.
*/
closedAt: string;
/**
* Time when Scaleway-side maintenance will be applied.
*/
forcedAt: string;
/**
* Whether the maintenance can be applied by the user.
*/
isApplicable: boolean;
/**
* Maintenance information message.
*/
reason: string;
/**
* Start date of the maintenance window.
*/
startsAt: string;
/**
* Status of the maintenance (`pending`, `ongoing`, `done`, `canceled`, `unknown`).
*/
status: string;
/**
* End date of the maintenance window.
*/
stopsAt: string;
}
export interface DatabaseInstancePrivateIp {
/**
* The private IPv4 address.
*/
address: string;
/**
* Version ID to use in upgrade requests.
*/
id: string;
}
export interface DatabaseInstancePrivateNetwork {
/**
* Whether or not the private network endpoint should be configured with IPAM
*/
enableIpam: boolean;
/**
* The ID of the endpoint.
*/
endpointId: string;
/**
* Hostname of the endpoint.
*/
hostname: string;
/**
* IPv4 address on the network.
*/
ip: string;
/**
* The IP with the given mask within the private subnet
*/
ipNet: string;
/**
* The name of the Database Instance.
*/
name: string;
/**
* The private network ID
*/
pnId: string;
/**
* Port in the Private Network.
*/
port: number;
/**
* The zone you want to attach the resource to
*/
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 DatabaseInstanceUpgradableVersion {
/**
* Version ID to use in upgrade requests.
*/
id: string;
/**
* Minor version string (e.g., `15.5.0`).
*/
minorVersion: string;
/**
* The name of the Database Instance.
*/
name: string;
/**
* Version string (e.g., `15.5`).
*/
version: string;
}
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 {
/**
* 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: boolean;
/**
* 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 Netork 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. If not set, The IP network address within the private subnet is determined by the IP Address Management (IPAM) service.
*/
serviceIp: string;
/**
* Private network zone
*/
zone: string;
}
export interface DomainRecordGeoIp {
/**
* The list of matches
*/
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` record, a string for a `TXT` record, etc.).
*/
data: string;
}
export interface DomainRecordHttpService {
/**
* IPs to check
*/
ips: string[];
/**
* Text to search
*/
mustContain: string;
/**
* Strategy to return an IP from the IPs list
*/
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` record, a string for a `TXT` record, etc.).
*/
data: string;
/**
* The subnet of the view
*/
subnet: string;
}
export interface DomainRecordWeighted {
/**
* The weighted IP
*/
ip: string;
/**
* The weight of the IP
*/
weight: number;
}
export interface EdgeServicesBackendStageContainerBackendConfig {
/**
* The ID of the Serverless Container.
*/
containerId: string;
/**
* `region`) The region of the Serverless Container.
*/
region?: string;
}
export interface EdgeServicesBackendStageFunctionBackendConfig {
/**
* The ID of the Serverless Function.
*/
functionId: string;
/**
* `region`) The region of the Serverless Function.
*/
region?: string;
}
export interface EdgeServicesBackendStageLbBackendConfig {
/**
* The Load Balancer config.
*/
lbConfig?: outputs.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?: string;
/**
* The ID of the frontend.
*/
frontendId?: string;
/**
* Defines whether to forward websocket requests to the load balancer.
*/
hasWebsocket?: boolean;
/**
* The ID of the Load Balancer.
*/
id?: string;
/**
* Defines whether the Load Balancer's frontend handles SSL connections.
*/
isSsl?: boolean;
/**
* `zone`) The zone of the Load Balancer.
*/
zone?: string;
}
export interface EdgeServicesBackendStageS3BackendConfig {
/**
* The name of the Bucket.
*/
bucketName?: string;
/**
* The region of the Bucket.
*/
bucketRegion?: string;
/**
* Defines whether the bucket website feature is enabled.
*/
isWebsite?: boolean;
}
export interface EdgeServicesCacheStagePurgeRequest {
/**
* Defines whether to purge all content.
*/
all?: boolean;
/**
* The list of asserts to purge.
*/
assets?: string[];
/**
* The pipeline ID in which the purge request will be created.
*/
pipelineId?: string;
}
export interface EdgeServicesRouteStageRule {
/**
* The ID of the backend stage that requests matching the rule should be forwarded to. Conflicts with `wafStageId` within the same rule.
*/
backendStageId?: string;
/**
* The rule condition to be matched. Requests matching the condition defined here will be forwarded to the stage specified by `backendStageId` or `wafStageId`. Requests that do not match will be checked by the next rule's condition.
*/
ruleHttpMatch?: outputs.EdgeServicesRouteStageRuleRuleHttpMatch;
/**
* The ID of the WAF stage that requests matching the rule should be forwarded to. Conflicts with `backendStageId` within the same rule.
*/
wafStageId?: string;
}
export interface EdgeServicesRouteStageRuleRuleHttpMatch {
/**
* Host to filter for. A request whose host matches the given filter will be considered to match the rule. All hosts will match if none is provided.
*/
hostFilter?: outputs.EdgeServicesRouteStageRuleRuleHttpMatchHostFilter;
/**
* 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: 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?: outputs.EdgeServicesRouteStageRuleRuleHttpMatchPathFilter;
}
export interface EdgeServicesRouteStageRuleRuleHttpMatchHostFilter {
/**
* The type of filter to match for the host. Use the `regex` type.
*/
hostFilterType: string;
/**
* The value to be matched for the host.
*/
value: string;
}
export interface EdgeServicesRouteStageRuleRuleHttpMatchPathFilter {
/**
* The type of filter to match for the HTTP URL path. For now, all path filters must be written in regex and use the `regex` type.
*/
pathFilterType: string;
/**
* The value to be matched for the HTTP URL path.
*/
value: string;
}
export interface EdgeServicesTlsStageSecret {
/**
* The region of the secret.
*/
region?: string;
/**
* The ID of the Secret
*/
secretId: string;
}
export interface FunctionTriggerNats {
/**
* unique identifier of the Messaging and Queuing NATS account.
*/
accountId?: string;
/**
* THe ID of the project that contains the Messaging and Queuing NATS account (defaults to provider `projectId`)
*/
projectId: string;
/**
* Region where the Messaging and Queuing NATS account is enabled (defaults to provider `region`)
*/
region: string;
/**
* The subject to listen to.
*/
subject: 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?: string;
/**
* The ID of the project in which SQS is enabled, (defaults to provider `projectId`)
*/
projectId: string;
/**
* The name of the SQS queue.
*/
queue: string;
/**
* Region where SQS is enabled (defaults to provider `region`)
*/
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 {
/**
* The IPv6 address
*/
address: string;
/**
* The ID of the server.
*/
id: string;
/**
* The Reverse of the IPv6
*/
reverse: string;
/**
* The version of the IPv6
*/
version: string;
}
export interface GetBaremetalServerIpv4 {
/**
* The IPv6 address
*/
address: string;
/**
* The ID of the server.
*/
id: string;
/**
* The Reverse of the IPv6
*/
reverse: string;
/**
* The version of the IPv6
*/
version: string;
}
export interface GetBaremetalServerIpv6 {
/**
* The IPv6 address
*/
address: string;
/**
* The ID of the server.
*/
id: string;
/**
* The Reverse of the IPv6
*/
reverse: string;
/**
* The version of the IPv6
*/
version: string;
}
export interface GetBaremetalServerOption {
/**
* Auto expire the option after this date
*/
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 GetBaremetalServerPrivateIp {
/**
* The private IP address
*/
address: string;
/**
* The ID of the server.
*/
id: string;
}
export interface GetBaremetalServerPrivateNetwork {
/**
* The date and time of the creation of the private network
*/
createdAt: string;
/**
* The ID of the server.
*/
id: string;
/**
* List of IPAM IP IDs to attach to the server
*/
ipamIpIds: string[];
/**
* The ID of the Server-to-Private Network mapping
*/
mappingId: 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 GetBillingConsumptionsConsumption {
/**
* The consumed quantity.
*/
billedQuantity: string;
/**
* The name of the consumption category.
*/
categoryName: string;
/**
* The product name.
*/
productName: string;
/**
* `projectId`) The ID of the project the consumption list is associated with.
*/
projectId: string;
/**
* The unique identifier of the product.
*/
sku: string;
/**
* The unit of consumed quantity.
*/
unit: string;
/**
* The monetary value of the consumption.
*/
value: string;
}
export interface GetBillingInvoicesInvoice {
/**
* The billing period of the invoice in the YYYY-MM format.
*/
billingPeriod: string;
/**
* 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 organization name.
*/
organizationName: string;
/**
* The name of the seller (Scaleway).
*/
sellerName: string;
/**
* The start date of the billing period (RFC 3339 format).
*/
startDate: string;
/**
* The state of the invoice.
*/
state: string;
/**
* The end date of the billing period (RFC 3339 format).
*/
stopDate: string;
/**
* The total discount amount of the invoice.
*/
totalDiscount: string;
/**
* The total tax amount of the invoice.
*/
totalTax: string;
/**
* The total amount, taxed.
*/
totalTaxed: string;
/**
* The total amount of the invoice before applying the discount.
*/
totalUndiscount: string;
/**
* The total amount, untaxed.
*/
totalUntaxed: string;
}
export interface GetBlockSnapshotExport {
/**
* Bucket containing qcow
*/
bucket: string;
/**
* Key of the qcow file in the specified bucket
*/
key: string;
}
export interface GetBlockSnapshotImport {
/**
* Bucket containing qcow
*/
bucket: string;
/**
* Key of the qcow file in the specified bucket
*/
key: string;
}
export interface GetCockpitEndpoint {
/**
* (Deprecated) URL for the [Alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager).
*/
alertmanagerUrl: string;
/**
* (Deprecated) URL for Grafana.
*/
grafanaUrl: 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: 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: string;
/**
* The traces URL.
*/
tracesUrl: string;
}
export interface GetCockpitPushUrl {
/**
* Push URL for logs (Grafana Loki)
*/
pushLogsUrl: string;
/**
* Push URL for metrics (Grafana Mimir)
*/
pushMetricsUrl: string;
}
export interface GetContainerHealthCheck {
/**
* Number of consecutive failures before considering the container has to be restarted.
*/
failureThreshold: number;
/**
* Perform HTTP check on the container with the specified path.
*/
https: outputs.GetContainerHealthCheckHttp[];
/**
* Time interval between checks (in duration notation, e.g. "30s").
*/
interval: string;
/**
* When set to `true`, performs TCP checks on the container.
*/
tcp: boolean;
}
export interface GetContainerHealthCheckHttp {
/**
* Path to use for the HTTP health check.
*/
path: string;
}
export interface GetContainerLivenessProbe {
/**
* Number of consecutive failures before considering the container has to be restarted.
*/
failureThreshold: number;
/**
* Perform HTTP check on the container with the specified path.
*/
https: outputs.GetContainerLivenessProbeHttp[];
/**
* Time interval between checks (in duration notation, e.g. "30s").
*/
interval: string;
/**
* When set to `true`, performs TCP checks on the container.
*/
tcp: boolean;
/**
* The maximum amount of time in seconds your container can spend processing a request before being stopped. Default to `300` seconds.
*/
timeout: string;
}
export interface GetContainerLivenessProbeHttp {
/**
* Path to use for the HTTP health check.
*/
path: string;
}
export interface GetContainerScalingOption {
/**
* Scale depending on the number of concurrent requests being processed per container instance.
*/
concurrentRequestsThreshold: number;
/**
* Scale depending on the CPU usage of a container instance.
*/
cpuUsageThreshold: number;
/**
* Scale depending on the memory usage of a container instance.
*/
memoryUsageThreshold: number;
}
export interface GetContainerStartupProbe {
/**
* Number of consecutive failures before considering the container has to be restarted.
*/
failureThreshold: number;
/**
* Perform HTTP check on the container with the specified path.
*/
https: outputs.GetContainerStartupProbeHttp[];
/**
* Time interval between checks (in duration notation, e.g. "30s").
*/
interval: string;
/**
* When set to `true`, performs TCP checks on the container.
*/
tcp: boolean;
/**
* The maximum amount of time in seconds your container can spend processing a request before being stopped. Default to `300` seconds.
*/
timeout: string;
}
export interface GetContainerStartupProbeHttp {
/**
* Path to use for the HTTP health check.
*/
path: string;
}
export interface GetDatabaseAclAclRule {
/**
* A simple text describing this rule
*/
description: string;
/**
* The IPv4 address or range to whitelist in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation). IPv6 is not supported by the Scaleway API.
*/
ip: string;
}
export interface GetDatabaseInstanceLoadBalancer {
/**
* The endpoint ID
*/
endpointId: string;
/**
* The hostname of your endpoint
*/
hostname: string;
/**
* The IP of your load balancer service
*/
ip: string;
/**
* The name of the RDB instance.
*/
name: string;
/**
* The port of your load balancer service
*/
port: number;
}
export interface GetDatabaseInstanceLogsPolicy {
/**
* The max age (in days) of remote logs to keep on the Database Instance
*/
maxAgeRetention: number;
/**
* The max disk size of remote logs to keep on the Database Instance.
*/
totalDiskRetention: number;
}
export interface GetDatabaseInstanceMaintenance {
/**
* Closed maintenance date
*/
closedAt: string;
/**
* Time when Scaleway-side maintenance will be applied
*/
forcedAt: string;
/**
* Whether the maintenance can be applied by the user
*/
isApplicable: boolean;
/**
* Maintenance information message
*/
reason: string;
/**
* Start date of the maintenance window
*/
startsAt: string;
/**
* Status of the maintenance
*/
status: string;
/**
* End date of the maintenance window
*/
stopsAt: string;
}
export interface GetDatabaseInstancePrivateIp {
/**
* The private IPv4 address
*/
address: string;
/**
* The ID of the Database Instance.
*/
id: string;
}
export interface GetDatabaseInstancePrivateNetwork {
/**
* Whether or not the private network endpoint should be configured with IPAM
*/
enableIpam: boolean;
/**
* The endpoint ID
*/
endpointId: string;
/**
* The hostname of your endpoint
*/
hostname: string;
/**
* The IP of your Instance within the private service
*/
ip: string;
/**
* The IP with the given mask within the private subnet
*/
ipNet: string;
/**
* The name of the RDB instance.
*/
name: string;
/**
* The private network ID
*/
pnId: string;
/**
* The port of your private service
*/
port: number;
/**
* The zone you want to attach the resource to
*/
zone: string;
}
export interface GetDatabaseInstanceReadReplica {
/**
* IP of the replica
*/
ip: string;
/**
* The name of the RDB instance.
*/
name: string;
/**
* Port of the replica
*/
port: number;
}
export interface GetDatabaseInstanceUpgradableVersion {
/**
* The ID of the Database Instance.
*/
id: string;
/**
* Minor version string
*/
minorVersion: string;
/**
* The name of the RDB instance.
*/
name: string;
/**
* Version string
*/
version: string;
}
export interface GetDomainRecordGeoIp {
/**
* The list of matches
*/
matches: outputs.GetDomainRecordGeoIpMatch[];
}
export interface GetDomainRecordGeoIpMatch {
/**
* 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 (e.g., an IPv4 address for an `A` record or a string for a `TXT` record). Cannot be used with `recordId`.
*/
data: string;
}
export interface GetDomainRecordHttpService {
/**
* IPs to check
*/
ips: string[];
/**
* Text to search
*/
mustContain: string;
/**
* Strategy to return an IP from the IPs list
*/
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 GetDomainRecordView {
/**
* The content of the record (e.g., an IPv4 address for an `A` record or a string for a `TXT` record). Cannot be used with `recordId`.
*/
data: string;
/**
* The subnet of the view
*/
subnet: string;
}
export interface GetDomainRecordWeighted {
/**
* The weighted IP
*/
ip: string;
/**
* The weight of the IP
*/
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;
/**
* IP address of the flexible IP
*/
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 GetInstancePrivateNicPrivateIp {
/**
* The private IP address
*/
address: string;
/**
* The ID of the IP address resource
*/
id: 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;
/**
* The port range (e.g `22-23`) this rule applies to.
* If no `port` nor `portRange` are specified, rule will apply to all port.
* Only one of `port` and `portRange` should be specified.
*/
portRange: 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;
/**
* The port range (e.g `22-23`) this rule applies to.
* If no `port` nor `portRange` are specified, rule will apply to all port.
* Only one of `port` and `portRange` should be specified.
*/
portRange: string;
/**
* The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`.
*/
protocol: string;
}
export interface GetInstanceServerFilesystem {
/**
* The filesystem ID attached to the server
*/
filesystemId: string;
/**
* The state of the filesystem
*/
status: string;
}
export interface GetInstanceServerPrivateIp {
/**
* The private IP address.
*/
address: string;
/**
* The ID of the IP address resource.
*/
id: string;
}
export interface GetInstanceServerPrivateNetwork {
/**
* MAC address of the NIC
*/
macAddress: string;
/**
* The Private Network ID
*/
pnId: string;
/**
* The ID of the NIC
*/
pnicId: string;
/**
* The private NIC state
*/
status: string;
/**
* `zone`) The zone in which the server exists.
*/
zone: string;
}
export interface GetInstanceServerPublicIp {
/**
* The private IP address.
*/
address: string;
/**
* Whether the IP is dynamic
*/
dynamic: boolean;
/**
* IP address family (inet or inet6)
*/
family: string;
/**
* Gateway's IP address
*/
gateway: string;
/**
* The ID of the IP address resource.
*/
id: string;
/**
* CIDR netmask
*/
netmask: string;
/**
* Provisioning mode of the IP address
*/
provisioningMode: string;
}
export interface GetInstanceServerRootVolume {
/**
* Set the volume where the boot the server
*/
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;
/**
* SBS Volume IOPS, only with volumeType as sbs_volume
*/
sbsIops: number;
/**
* Size of the root volume in gigabytes.
*/
sizeInGb: number;
/**
* The volume ID of the root volume of the server.
*/
volumeId: string;
/**
* Volume type of the root volume
*/
volumeType: string;
}
export interface GetInstanceServersServer {
/**
* The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`.
*/
bootType: string;
/**
* UUID of the bootscript
*
* @deprecated bootscript are not supported
*/
bootscriptId: string;
/**
* If true a dynamic IP will be attached to the server.
*/
enableDynamicIp: boolean;
/**
* The ID of the IP
*/
id: string;
/**
* The UUID or the label of the base image used by the server.
*/
image: string;
/**
* 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;
/**
* Whether the placement group policy respected or not
*/
placementGroupPolicyRespected: boolean;
/**
* The list of private IPv4 and IPv6 addresses associated with the server.
*/
privateIps: outputs.GetInstanceServersServerPrivateIp[];
/**
* The ID of the project the server is associated with.
*/
projectId: string;
/**
* The list of public IPs of the server
*/
publicIps: outputs.GetInstanceServersServerPublicIp[];
/**
* 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 GetInstanceServersServerPrivateIp {
/**
* The address of the IP
*/
address: string;
/**
* The ID of the IP
*/
id: string;
}
export interface GetInstanceServersServerPublicIp {
/**
* The address of the IP
*/
address: string;
/**
* Whether the IP is dynamic.
*/
dynamic: boolean;
/**
* IP address family (inet or inet6).
*/
family: string;
/**
* Gateway's IP address.
*/
gateway: string;
/**
* The ID of the IP
*/
id: string;
/**
* CIDR netmask.
*/
netmask: string;
/**
* Provisioning mode of the IP address.
*/
provisioningMode: string;
}
export interface GetInstanceSnapshotImport {
/**
* Bucket containing qcow
*/
bucket: string;
/**
* Key of the qcow file in the specified bucket
*/
key: string;
}
export interface GetIotDeviceCertificate {
/**
* X509 PEM encoded certificate of the device
*/
crt: string;
/**
* X509 PEM encoded key of the device
*/
key: string;
}
export interface GetIotDeviceMessageFilter {
/**
* Rule to restrict topics the device can publish to
*/
publishes: outputs.GetIotDeviceMessageFilterPublish[];
/**
* Rule to restrict topics the device can subscribe to
*/
subscribes: outputs.GetIotDeviceMessageFilterSubscribe[];
}
export interface GetIotDeviceMessageFilterPublish {
/**
* Publish message filter policy
*/
policy: string;
/**
* List of topics in the set
*/
topics: string[];
}
export interface GetIotDeviceMessageFilterSubscribe {
/**
* Subscribe message filter policy
*/
policy: string;
/**
* List of topics in the set
*/
topics: 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 GetIpamIpsIp {
/**
* The Scaleway internal IP address of the resource.
*/
address: string;
/**
* The date and time of the creation of the IP.
*/
createdAt: string;
/**
* The ID of the resource.
*/
id: string;
/**
* The ID of the Project to filter for.
*/
projectId: string;
/**
* The region to filter for.
*/
region: string;
/**
* Filter for a resource attached to the IP, using resource ID, type or name.
*/
resources: outputs.GetIpamIpsIpResource[];
/**
* The IP tags to filter for.
*/
tags: string[];
/**
* The date and time of the last update of the IP.
*/
updatedAt: string;
/**
* The zone of the IP.
*/
zone: string;
}
export interface GetIpamIpsIpResource {
/**
* The ID of the attached resource.
*/
id: string;
/**
* The linked MAC address to filter for.
*/
macAddress: 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 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 GetKeyManagerKeyRotationPolicy {
/**
* Timestamp indicating the next scheduled rotation.
*/
nextRotationAt: string;
/**
* Time interval between two key rotations. The minimum duration is 24 hours and the maximum duration is 1 year (876000 hours).
*/
rotationPeriod: 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 de