diff --git a/go.work.sum b/go.work.sum
index 1941152..7d05d10 100644
--- a/go.work.sum
+++ b/go.work.sum
@@ -1,5 +1,7 @@
cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY=
cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw=
+cel.dev/expr v0.25.1 h1:1KrZg61W6TWSxuNZ37Xy49ps13NUovb66QLprthtwi4=
+cel.dev/expr v0.25.1/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4=
cloud.google.com/go/accessapproval v1.7.5 h1:uzmAMSgYcnlHa9X9YSQZ4Q1wlfl4NNkZyQgho1Z6p04=
cloud.google.com/go/accessapproval v1.7.5/go.mod h1:g88i1ok5dvQ9XJsxpUInWWvUBrIZhyPDPbk4T01OoJ0=
cloud.google.com/go/accesscontextmanager v1.8.5 h1:2GLNaNu9KRJhJBFTIVRoPwk6xE5mUDgD47abBq4Zp/I=
@@ -343,6 +345,7 @@ github.com/dustinkirkland/golang-petname v0.0.0-20191129215211-8e5a1ed0cff0/go.m
github.com/envoyproxy/go-control-plane v0.13.4 h1:zEqyPVyku6IvWCFwux4x9RxkLOMUL+1vC9xUFv5l2/M=
github.com/envoyproxy/go-control-plane v0.13.4/go.mod h1:kDfuBlDVsSj2MjrLEtRWtHlsWIFcGyB2RMO44Dc5GZA=
github.com/envoyproxy/go-control-plane v0.13.5-0.20251024222203-75eaa193e329/go.mod h1:Alz8LEClvR7xKsrq3qzoc4N0guvVNSS8KmSChGYr9hs=
+github.com/envoyproxy/go-control-plane v0.14.0/go.mod h1:NcS5X47pLl/hfqxU70yPwL9ZMkUlwlKxtAohpi2wBEU=
github.com/envoyproxy/go-control-plane/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A=
github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw=
github.com/envoyproxy/go-control-plane/ratelimit v0.1.0 h1:/G9QYbddjL25KvtKTv3an9lx6VBE2cnb8wp1vEGNYGI=
@@ -542,6 +545,8 @@ go.opentelemetry.io/contrib/detectors/gcp v1.36.0 h1:F7q2tNlCaHY9nMKHR6XH9/qkp8F
go.opentelemetry.io/contrib/detectors/gcp v1.36.0/go.mod h1:IbBN8uAIIx734PTonTPxAxnjc2pQTxWNkwfstZ+6H2k=
go.opentelemetry.io/contrib/detectors/gcp v1.38.0 h1:ZoYbqX7OaA/TAikspPl3ozPI6iY6LiIY9I8cUfm+pJs=
go.opentelemetry.io/contrib/detectors/gcp v1.38.0/go.mod h1:SU+iU7nu5ud4oCb3LQOhIZ3nRLj6FNVrKgtflbaf2ts=
+go.opentelemetry.io/contrib/detectors/gcp v1.39.0 h1:kWRNZMsfBHZ+uHjiH4y7Etn2FK26LAGkNFw7RHv1DhE=
+go.opentelemetry.io/contrib/detectors/gcp v1.39.0/go.mod h1:t/OGqzHBa5v6RHZwrDBJ2OirWc+4q/w2fTbLZwAKjTk=
go.opentelemetry.io/contrib/exporters/autoexport v0.64.0 h1:9pzPj3RFyKOxBAMkM2w84LpT+rdHam1XoFA+QhARiRw=
go.opentelemetry.io/contrib/exporters/autoexport v0.64.0/go.mod h1:hlVZx1btWH0XTfXpuGX9dsquB50s+tc3fYFOO5elo2M=
go.opentelemetry.io/contrib/exporters/autoexport v0.65.0 h1:2gApdml7SznX9szEKFjKjM4qGcGSvAybYLBY319XG3g=
diff --git a/provider/cmd/pulumi-resource-stackit/bridge-metadata.json b/provider/cmd/pulumi-resource-stackit/bridge-metadata.json
index af66f51..3bc9b3e 100644
--- a/provider/cmd/pulumi-resource-stackit/bridge-metadata.json
+++ b/provider/cmd/pulumi-resource-stackit/bridge-metadata.json
@@ -9,6 +9,91 @@
}
}
},
+ "stackit_application_load_balancer": {
+ "current": "stackit:index/applicationLoadBalancer:ApplicationLoadBalancer",
+ "fields": {
+ "errors": {
+ "maxItemsOne": false
+ },
+ "listeners": {
+ "maxItemsOne": false,
+ "elem": {
+ "fields": {
+ "http": {
+ "fields": {
+ "hosts": {
+ "maxItemsOne": false,
+ "elem": {
+ "fields": {
+ "rules": {
+ "maxItemsOne": false,
+ "elem": {
+ "fields": {
+ "headers": {
+ "maxItemsOne": false
+ },
+ "query_parameters": {
+ "maxItemsOne": false
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "https": {
+ "fields": {
+ "certificate_config": {
+ "fields": {
+ "certificate_ids": {
+ "maxItemsOne": false
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "networks": {
+ "maxItemsOne": false
+ },
+ "options": {
+ "fields": {
+ "access_control": {
+ "fields": {
+ "allowed_source_ranges": {
+ "maxItemsOne": false
+ }
+ }
+ }
+ }
+ },
+ "target_pools": {
+ "maxItemsOne": false,
+ "elem": {
+ "fields": {
+ "active_health_check": {
+ "fields": {
+ "http_health_checks": {
+ "fields": {
+ "ok_status": {
+ "maxItemsOne": false
+ }
+ }
+ }
+ }
+ },
+ "targets": {
+ "maxItemsOne": false
+ }
+ }
+ }
+ }
+ }
+ },
"stackit_authorization_folder_role_assignment": {
"current": "stackit:index/authorizationFolderRoleAssignment:AuthorizationFolderRoleAssignment"
},
@@ -572,9 +657,6 @@
"stackit_service_account": {
"current": "stackit:index/serviceAccount:ServiceAccount"
},
- "stackit_service_account_access_token": {
- "current": "stackit:index/serviceAccountAccessToken:ServiceAccountAccessToken"
- },
"stackit_service_account_key": {
"current": "stackit:index/serviceAccountKey:ServiceAccountKey"
},
@@ -681,6 +763,91 @@
}
}
},
+ "stackit_application_load_balancer": {
+ "current": "stackit:index/getApplicationLoadBalancer:getApplicationLoadBalancer",
+ "fields": {
+ "errors": {
+ "maxItemsOne": false
+ },
+ "listeners": {
+ "maxItemsOne": false,
+ "elem": {
+ "fields": {
+ "http": {
+ "fields": {
+ "hosts": {
+ "maxItemsOne": false,
+ "elem": {
+ "fields": {
+ "rules": {
+ "maxItemsOne": false,
+ "elem": {
+ "fields": {
+ "headers": {
+ "maxItemsOne": false
+ },
+ "query_parameters": {
+ "maxItemsOne": false
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "https": {
+ "fields": {
+ "certificate_config": {
+ "fields": {
+ "certificate_ids": {
+ "maxItemsOne": false
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "networks": {
+ "maxItemsOne": false
+ },
+ "options": {
+ "fields": {
+ "access_control": {
+ "fields": {
+ "allowed_source_ranges": {
+ "maxItemsOne": false
+ }
+ }
+ }
+ }
+ },
+ "target_pools": {
+ "maxItemsOne": false,
+ "elem": {
+ "fields": {
+ "active_health_check": {
+ "fields": {
+ "http_health_checks": {
+ "fields": {
+ "ok_status": {
+ "maxItemsOne": false
+ }
+ }
+ }
+ }
+ },
+ "targets": {
+ "maxItemsOne": false
+ }
+ }
+ }
+ }
+ }
+ },
"stackit_authorization_project_custom_role": {
"current": "stackit:index/getAuthorizationProjectCustomRole:getAuthorizationProjectCustomRole",
"fields": {
@@ -1284,6 +1451,14 @@
"stackit_service_account": {
"current": "stackit:index/getServiceAccount:getServiceAccount"
},
+ "stackit_service_accounts": {
+ "current": "stackit:index/getServiceAccounts:getServiceAccounts",
+ "fields": {
+ "items": {
+ "maxItemsOne": false
+ }
+ }
+ },
"stackit_sfs_export_policy": {
"current": "stackit:index/getSfsExportPolicy:getSfsExportPolicy",
"fields": {
diff --git a/provider/cmd/pulumi-resource-stackit/schema.json b/provider/cmd/pulumi-resource-stackit/schema.json
index b50195b..81b1216 100644
--- a/provider/cmd/pulumi-resource-stackit/schema.json
+++ b/provider/cmd/pulumi-resource-stackit/schema.json
@@ -55,6 +55,10 @@
},
"config": {
"variables": {
+ "albCustomEndpoint": {
+ "type": "string",
+ "description": "Custom endpoint for the Application Load Balancer service"
+ },
"authorizationCustomEndpoint": {
"type": "string",
"description": "Custom endpoint for the Membership service"
@@ -247,1352 +251,1475 @@
}
},
"types": {
- "stackit:index/CdnCustomDomainCertificate:CdnCustomDomainCertificate": {
+ "stackit:index/ApplicationLoadBalancerError:ApplicationLoadBalancerError": {
"properties": {
- "certificate": {
+ "description": {
"type": "string",
- "description": "The PEM-encoded TLS certificate. Required for custom certificates.\n",
- "secret": true
+ "description": "The error description contains additional helpful user information to fix the error state of the Application Load Balancer. For example the IP 45.135.247.139 does not exist in the project, then the description will report: Floating IP \"45.135.247.139\" could not be found.\n"
},
- "privateKey": {
+ "type": {
"type": "string",
- "description": "The PEM-encoded private key for the certificate. Required for custom certificates. The certificate will be updated if this field is changed.\n",
- "secret": true
- },
- "version": {
- "type": "integer",
- "description": "A version identifier for the certificate. Required for custom certificates. The certificate will be updated if this field is changed.\n"
+ "description": "The error type specifies which part of the Application Load Balancer encountered the error. I.e. the API will not check if a provided public IP is actually available in the project. Instead the Application Load Balancer with try to use the provided IP and if not available reports TYPE*FIP*NOT_CONFIGURED error. Possible values are: `TYPE_UNSPECIFIED`, `TYPE_INTERNAL`, `TYPE_QUOTA_SECGROUP_EXCEEDED`, `TYPE_QUOTA_SECGROUPRULE_EXCEEDED`, `TYPE_PORT_NOT_CONFIGURED`, `TYPE_FIP_NOT_CONFIGURED`, `TYPE_TARGET_NOT_ACTIVE`, `TYPE_METRICS_MISCONFIGURED`, `TYPE_LOGS_MISCONFIGURED`.\n"
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
- "version"
+ "description",
+ "type"
]
}
}
},
- "stackit:index/CdnDistributionConfig:CdnDistributionConfig": {
+ "stackit:index/ApplicationLoadBalancerListener:ApplicationLoadBalancerListener": {
"properties": {
- "backend": {
- "$ref": "#/types/stackit:index/CdnDistributionConfigBackend:CdnDistributionConfigBackend",
- "description": "The configured backend for the distribution\n"
+ "http": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerListenerHttp:ApplicationLoadBalancerListenerHttp",
+ "description": "Configuration for HTTP traffic.\n"
},
- "blockedCountries": {
+ "https": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerListenerHttps:ApplicationLoadBalancerListenerHttps",
+ "description": "Configuration for handling HTTPS traffic on this listener.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Unique name for the listener\n"
+ },
+ "port": {
+ "type": "integer",
+ "description": "Port number on which the listener receives incoming traffic.\n"
+ },
+ "protocol": {
+ "type": "string",
+ "description": "Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`.\n"
+ },
+ "wafConfigName": {
+ "type": "string",
+ "description": "Enable Web Application Firewall (WAF), referenced by name. See \"Application Load Balancer - Web Application Firewall API\" for more information.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "http",
+ "name",
+ "port",
+ "protocol"
+ ]
+ },
+ "stackit:index/ApplicationLoadBalancerListenerHttp:ApplicationLoadBalancerListenerHttp": {
+ "properties": {
+ "hosts": {
"type": "array",
"items": {
- "type": "string"
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerListenerHttpHost:ApplicationLoadBalancerListenerHttpHost"
},
- "description": "The configured countries where distribution of content is blocked\n"
+ "description": "Defines routing rules grouped by hostname.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "hosts"
+ ]
+ },
+ "stackit:index/ApplicationLoadBalancerListenerHttpHost:ApplicationLoadBalancerListenerHttpHost": {
+ "properties": {
+ "host": {
+ "type": "string",
+ "description": "Hostname to match. Supports wildcards (e.g. *.example.com).\n"
},
- "optimizer": {
- "$ref": "#/types/stackit:index/CdnDistributionConfigOptimizer:CdnDistributionConfigOptimizer",
- "description": "Configuration for the Image Optimizer. This is a paid feature that automatically optimizes images to reduce their file size for faster delivery, leading to improved website performance and a better user experience.\n"
+ "rules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerListenerHttpHostRule:ApplicationLoadBalancerListenerHttpHostRule"
+ },
+ "description": "Routing rules under the specified host, matched by path prefix.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "host",
+ "rules"
+ ]
+ },
+ "stackit:index/ApplicationLoadBalancerListenerHttpHostRule:ApplicationLoadBalancerListenerHttpHostRule": {
+ "properties": {
+ "cookiePersistence": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence:ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence",
+ "description": "Routing persistence via cookies.\n"
},
- "regions": {
+ "headers": {
"type": "array",
"items": {
- "type": "string"
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerListenerHttpHostRuleHeader:ApplicationLoadBalancerListenerHttpHostRuleHeader"
},
- "description": "The configured regions where content will be hosted\n"
+ "description": "Headers for the rule.\n"
+ },
+ "path": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerListenerHttpHostRulePath:ApplicationLoadBalancerListenerHttpHostRulePath",
+ "description": "Routing via path.\n"
+ },
+ "queryParameters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerListenerHttpHostRuleQueryParameter:ApplicationLoadBalancerListenerHttpHostRuleQueryParameter"
+ },
+ "description": "Query parameters for the rule.\n"
+ },
+ "targetPool": {
+ "type": "string",
+ "description": "Reference target pool by target pool name.\n"
+ },
+ "webSocket": {
+ "type": "boolean",
+ "description": "If enabled, when client sends an HTTP request with and Upgrade header, indicating the desire to establish a Websocket connection, if backend server supports WebSocket, it responds with HTTP 101 status code, switching protocols from HTTP to WebSocket. Hence the client and the server can exchange data in real-time using one long-lived TCP connection.\n"
}
},
"type": "object",
"required": [
- "backend",
- "regions"
+ "targetPool"
],
"language": {
"nodejs": {
"requiredOutputs": [
- "backend",
- "blockedCountries",
- "optimizer",
- "regions"
+ "targetPool",
+ "webSocket"
]
}
}
},
- "stackit:index/CdnDistributionConfigBackend:CdnDistributionConfigBackend": {
+ "stackit:index/ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence:ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence": {
"properties": {
- "bucketUrl": {
+ "name": {
"type": "string",
- "description": "The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'.\n"
+ "description": "The name of the cookie to use.\n"
},
- "credentials": {
- "$ref": "#/types/stackit:index/CdnDistributionConfigBackendCredentials:CdnDistributionConfigBackendCredentials",
- "description": "The credentials for the bucket. Required if type is 'bucket'.\n"
- },
- "geofencing": {
- "type": "object",
- "additionalProperties": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "description": "The configured type http to configure countries where content is allowed. A map of URLs to a list of countries\n"
- },
- "originRequestHeaders": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "description": "The configured type http origin request headers for the backend\n"
- },
- "originUrl": {
+ "ttl": {
"type": "string",
- "description": "The configured backend type http for the distribution\n"
- },
- "region": {
+ "description": "TTL specifies the time-to-live for the cookie. The default value is 0s, and it acts as a session cookie, expiring when the client session ends.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "name",
+ "ttl"
+ ]
+ },
+ "stackit:index/ApplicationLoadBalancerListenerHttpHostRuleHeader:ApplicationLoadBalancerListenerHttpHostRuleHeader": {
+ "properties": {
+ "exactMatch": {
"type": "string",
- "description": "The region where the bucket is hosted. Required if type is 'bucket'.\n"
+ "description": "Exact match for the header value.\n"
},
- "type": {
+ "name": {
"type": "string",
- "description": "The configured backend type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bucket`\" pulumi-lang-dotnet=\"`Bucket`\" pulumi-lang-go=\"`bucket`\" pulumi-lang-python=\"`bucket`\" pulumi-lang-yaml=\"`bucket`\" pulumi-lang-java=\"`bucket`\"\u003e`bucket`\u003c/span\u003e.\n"
+ "description": "Header name.\n"
}
},
"type": "object",
"required": [
- "type"
+ "name"
]
},
- "stackit:index/CdnDistributionConfigBackendCredentials:CdnDistributionConfigBackendCredentials": {
+ "stackit:index/ApplicationLoadBalancerListenerHttpHostRulePath:ApplicationLoadBalancerListenerHttpHostRulePath": {
"properties": {
- "accessKeyId": {
+ "exactMatch": {
"type": "string",
- "description": "The access key for the bucket. Required if type is 'bucket'.\n",
- "secret": true
+ "description": "Exact path match. Only a request path exactly equal to the value will match, e.g. '/foo' matches only '/foo', not '/foo/bar' or '/foobar'.\n"
},
- "secretAccessKey": {
+ "prefix": {
"type": "string",
- "description": "The access key for the bucket. Required if type is 'bucket'.\n",
- "secret": true
+ "description": "Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'.\n"
+ }
+ },
+ "type": "object"
+ },
+ "stackit:index/ApplicationLoadBalancerListenerHttpHostRuleQueryParameter:ApplicationLoadBalancerListenerHttpHostRuleQueryParameter": {
+ "properties": {
+ "exactMatch": {
+ "type": "string",
+ "description": "Exact match for the query parameters value.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Query parameter name.\n"
}
},
"type": "object",
"required": [
- "accessKeyId",
- "secretAccessKey"
+ "name"
]
},
- "stackit:index/CdnDistributionConfigOptimizer:CdnDistributionConfigOptimizer": {
+ "stackit:index/ApplicationLoadBalancerListenerHttps:ApplicationLoadBalancerListenerHttps": {
"properties": {
- "enabled": {
- "type": "boolean"
+ "certificateConfig": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerListenerHttpsCertificateConfig:ApplicationLoadBalancerListenerHttpsCertificateConfig",
+ "description": "TLS termination certificate configuration.\n"
}
},
"type": "object",
- "language": {
- "nodejs": {
- "requiredOutputs": [
- "enabled"
- ]
- }
- }
+ "required": [
+ "certificateConfig"
+ ]
},
- "stackit:index/CdnDistributionDomain:CdnDistributionDomain": {
+ "stackit:index/ApplicationLoadBalancerListenerHttpsCertificateConfig:ApplicationLoadBalancerListenerHttpsCertificateConfig": {
"properties": {
- "errors": {
+ "certificateIds": {
"type": "array",
"items": {
"type": "string"
},
- "description": "List of domain errors\n"
- },
- "name": {
- "type": "string",
- "description": "The name of the domain\n"
- },
- "status": {
+ "description": "Certificate IDs for TLS termination.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "certificateIds"
+ ]
+ },
+ "stackit:index/ApplicationLoadBalancerLoadBalancerSecurityGroup:ApplicationLoadBalancerLoadBalancerSecurityGroup": {
+ "properties": {
+ "id": {
"type": "string",
- "description": "The status of the domain\n"
+ "description": "ID of the security Group\n"
},
- "type": {
+ "name": {
"type": "string",
- "description": "The type of the domain. Each distribution has one domain of type \"managed\", and domains of type \"custom\" may be additionally created by the user\n"
+ "description": "Name of the security Group\n"
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
- "errors",
- "name",
- "status",
- "type"
+ "id",
+ "name"
]
}
}
},
- "stackit:index/ImageChecksum:ImageChecksum": {
+ "stackit:index/ApplicationLoadBalancerNetwork:ApplicationLoadBalancerNetwork": {
"properties": {
- "algorithm": {
+ "networkId": {
"type": "string",
- "description": "Algorithm for the checksum of the image data.\n"
+ "description": "STACKIT network ID the Application Load Balancer and/or targets are in.\n"
},
- "digest": {
+ "role": {
"type": "string",
- "description": "Hexdigest of the checksum of the image data.\n"
+ "description": "The role defines how the Application Load Balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "networkId",
+ "role"
+ ]
+ },
+ "stackit:index/ApplicationLoadBalancerOptions:ApplicationLoadBalancerOptions": {
+ "properties": {
+ "accessControl": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerOptionsAccessControl:ApplicationLoadBalancerOptionsAccessControl",
+ "description": "Use this option to limit the IP ranges that can use the Application Load Balancer.\n"
+ },
+ "ephemeralAddress": {
+ "type": "boolean",
+ "description": "This option automates the handling of the external IP address for an Application Load Balancer. If set to true a new IP address will be automatically created. It will also be automatically deleted when the Load Balancer is deleted.\n"
+ },
+ "observability": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerOptionsObservability:ApplicationLoadBalancerOptionsObservability",
+ "description": "We offer Load Balancer observability via STACKIT Observability or external solutions.\n"
+ },
+ "privateNetworkOnly": {
+ "type": "boolean",
+ "description": "Application Load Balancer is accessible only via a private network ip address. Not changeable after creation.\n"
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
- "algorithm",
- "digest"
+ "ephemeralAddress",
+ "privateNetworkOnly"
]
}
}
},
- "stackit:index/ImageConfig:ImageConfig": {
+ "stackit:index/ApplicationLoadBalancerOptionsAccessControl:ApplicationLoadBalancerOptionsAccessControl": {
"properties": {
- "bootMenu": {
- "type": "boolean",
- "description": "Enables the BIOS bootmenu.\n"
- },
- "cdromBus": {
- "type": "string",
- "description": "Sets CDROM bus controller type.\n"
+ "allowedSourceRanges": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Application Load Balancer is accessible only from an IP address in this range.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "allowedSourceRanges"
+ ]
+ },
+ "stackit:index/ApplicationLoadBalancerOptionsObservability:ApplicationLoadBalancerOptionsObservability": {
+ "properties": {
+ "logs": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerOptionsObservabilityLogs:ApplicationLoadBalancerOptionsObservabilityLogs",
+ "description": "Observability logs configuration.\n"
},
- "diskBus": {
+ "metrics": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerOptionsObservabilityMetrics:ApplicationLoadBalancerOptionsObservabilityMetrics",
+ "description": "Observability metrics configuration.\n"
+ }
+ },
+ "type": "object"
+ },
+ "stackit:index/ApplicationLoadBalancerOptionsObservabilityLogs:ApplicationLoadBalancerOptionsObservabilityLogs": {
+ "properties": {
+ "credentialsRef": {
"type": "string",
- "description": "Sets Disk bus controller type.\n"
+ "description": "Credentials reference for logging. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the logging solution the push URL points to. Then this enables monitoring via remote write for the Application Load Balancer.\n"
},
- "nicModel": {
+ "pushUrl": {
"type": "string",
- "description": "Sets virtual network interface model.\n"
- },
- "operatingSystem": {
- "type": "string",
- "description": "Enables operating system specific optimizations.\n"
- },
- "operatingSystemDistro": {
- "type": "string",
- "description": "Operating system distribution.\n"
- },
- "operatingSystemVersion": {
- "type": "string",
- "description": "Version of the operating system.\n"
- },
- "rescueBus": {
- "type": "string",
- "description": "Sets the device bus when the image is used as a rescue image.\n"
- },
- "rescueDevice": {
+ "description": "Credentials reference for logging. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the logging solution the push URL points to. Then this enables monitoring via remote write for the Application Load Balancer.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "credentialsRef",
+ "pushUrl"
+ ]
+ },
+ "stackit:index/ApplicationLoadBalancerOptionsObservabilityMetrics:ApplicationLoadBalancerOptionsObservabilityMetrics": {
+ "properties": {
+ "credentialsRef": {
"type": "string",
- "description": "Sets the device when the image is used as a rescue image.\n"
- },
- "secureBoot": {
- "type": "boolean",
- "description": "Enables Secure Boot.\n"
- },
- "uefi": {
- "type": "boolean",
- "description": "Enables UEFI boot.\n"
+ "description": "Credentials reference for metrics. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the metrics solution the push URL points to. Then this enables monitoring via remote write for the Application Load Balancer.\n"
},
- "videoModel": {
+ "pushUrl": {
"type": "string",
- "description": "Sets Graphic device model.\n"
- },
- "virtioScsi": {
- "type": "boolean",
- "description": "Enables the use of VirtIO SCSI to provide block device access. By default instances use VirtIO Block.\n"
+ "description": "Credentials reference for metrics. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the metrics solution the push URL points to. Then this enables monitoring via remote write for the Application Load Balancer.\n"
}
},
"type": "object",
- "language": {
- "nodejs": {
- "requiredOutputs": [
- "bootMenu",
- "cdromBus",
- "diskBus",
- "nicModel",
- "operatingSystem",
- "operatingSystemDistro",
- "operatingSystemVersion",
- "rescueBus",
- "rescueDevice",
- "secureBoot",
- "uefi",
- "videoModel",
- "virtioScsi"
- ]
- }
- }
+ "required": [
+ "credentialsRef",
+ "pushUrl"
+ ]
},
- "stackit:index/LoadbalancerListener:LoadbalancerListener": {
+ "stackit:index/ApplicationLoadBalancerTargetPool:ApplicationLoadBalancerTargetPool": {
"properties": {
- "displayName": {
- "type": "string"
- },
- "port": {
- "type": "integer",
- "description": "Port number where we listen for traffic.\n"
+ "activeHealthCheck": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerTargetPoolActiveHealthCheck:ApplicationLoadBalancerTargetPoolActiveHealthCheck"
},
- "protocol": {
+ "name": {
"type": "string",
- "description": "Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`.\n"
+ "description": "Target pool name.\n"
},
- "serverNameIndicators": {
+ "targetPort": {
+ "type": "integer",
+ "description": "The number identifying the port where each target listens for traffic.\n"
+ },
+ "targets": {
"type": "array",
"items": {
- "$ref": "#/types/stackit:index/LoadbalancerListenerServerNameIndicator:LoadbalancerListenerServerNameIndicator"
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerTargetPoolTarget:ApplicationLoadBalancerTargetPoolTarget"
},
- "description": "A list of domain names to match in order to pass TLS traffic to the target pool in the current listener\n"
- },
- "targetPool": {
- "type": "string",
- "description": "Reference target pool by target pool name.\n"
+ "description": "List of all targets which will be used in the pool. Limited to 250.\n"
},
- "tcp": {
- "$ref": "#/types/stackit:index/LoadbalancerListenerTcp:LoadbalancerListenerTcp",
- "description": "Options that are specific to the TCP protocol.\n"
- },
- "udp": {
- "$ref": "#/types/stackit:index/LoadbalancerListenerUdp:LoadbalancerListenerUdp",
- "description": "Options that are specific to the UDP protocol.\n"
+ "tlsConfig": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerTargetPoolTlsConfig:ApplicationLoadBalancerTargetPoolTlsConfig",
+ "description": "Configuration for TLS bridging.\n"
}
},
"type": "object",
"required": [
- "port",
- "protocol",
- "targetPool"
- ],
- "language": {
- "nodejs": {
- "requiredOutputs": [
- "displayName",
- "port",
- "protocol",
- "targetPool"
- ]
- }
- }
+ "name",
+ "targetPort",
+ "targets"
+ ]
},
- "stackit:index/LoadbalancerListenerServerNameIndicator:LoadbalancerListenerServerNameIndicator": {
+ "stackit:index/ApplicationLoadBalancerTargetPoolActiveHealthCheck:ApplicationLoadBalancerTargetPoolActiveHealthCheck": {
"properties": {
- "name": {
+ "healthyThreshold": {
+ "type": "integer",
+ "description": "Healthy threshold of the health checking.\n"
+ },
+ "httpHealthChecks": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks:ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks",
+ "description": "Options for the HTTP health checking.\n"
+ },
+ "interval": {
"type": "string",
- "description": "A domain name to match in order to pass TLS traffic to the target pool in the current listener\n"
- }
- },
- "type": "object"
- },
- "stackit:index/LoadbalancerListenerTcp:LoadbalancerListenerTcp": {
- "properties": {
- "idleTimeout": {
+ "description": "Interval duration of health checking in seconds.\n"
+ },
+ "intervalJitter": {
"type": "string",
- "description": "Time after which an idle connection is closed. The default value is set to 300 seconds, and the maximum value is 3600 seconds. The format is a duration and the unit must be seconds. Example: 30s\n"
+ "description": "Interval duration threshold of the health checking in seconds.\n"
+ },
+ "timeout": {
+ "type": "string",
+ "description": "Active health checking timeout duration in seconds.\n"
+ },
+ "unhealthyThreshold": {
+ "type": "integer",
+ "description": "Unhealthy threshold of the health checking.\n"
}
},
- "type": "object"
+ "type": "object",
+ "required": [
+ "healthyThreshold",
+ "interval",
+ "intervalJitter",
+ "timeout",
+ "unhealthyThreshold"
+ ]
},
- "stackit:index/LoadbalancerListenerUdp:LoadbalancerListenerUdp": {
+ "stackit:index/ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks:ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks": {
"properties": {
- "idleTimeout": {
+ "okStatuses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of HTTP status codes that indicate a healthy response.\n"
+ },
+ "path": {
"type": "string",
- "description": "Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. The format is a duration and the unit must be seconds. Example: 30s\n"
+ "description": "Path to send the health check request to.\n"
}
},
- "type": "object"
+ "type": "object",
+ "required": [
+ "okStatuses",
+ "path"
+ ]
},
- "stackit:index/LoadbalancerNetwork:LoadbalancerNetwork": {
+ "stackit:index/ApplicationLoadBalancerTargetPoolTarget:ApplicationLoadBalancerTargetPoolTarget": {
"properties": {
- "networkId": {
+ "displayName": {
"type": "string",
- "description": "Openstack network ID.\n"
+ "description": "Target display name\n"
},
- "role": {
+ "ip": {
"type": "string",
- "description": "The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`.\n"
+ "description": "Private target IP, which must by unique within a target pool.\n"
}
},
"type": "object",
"required": [
- "networkId",
- "role"
+ "ip"
]
},
- "stackit:index/LoadbalancerOptions:LoadbalancerOptions": {
+ "stackit:index/ApplicationLoadBalancerTargetPoolTlsConfig:ApplicationLoadBalancerTargetPoolTlsConfig": {
"properties": {
- "acls": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "Load Balancer is accessible only from an IP address in this range.\n"
+ "customCa": {
+ "type": "string",
+ "description": "Specifies a custom Certificate Authority (CA). When provided, the target pool will trust certificates signed by this CA, in addition to any system-trusted CAs. This is useful for scenarios where the target pool needs to communicate with servers using self-signed or internally-issued certificates. Enabled needs to be set to true and skip validation to false for this option.\n"
},
- "observability": {
- "$ref": "#/types/stackit:index/LoadbalancerOptionsObservability:LoadbalancerOptionsObservability",
- "description": "We offer Load Balancer metrics observability via ARGUS or external solutions. Not changeable after creation.\n"
+ "enabled": {
+ "type": "boolean",
+ "description": "Enable TLS (Transport Layer Security) bridging for the connection between Application Load Balancer and targets in this pool. When enabled, public CAs are trusted. Can be used in tandem with the options either custom CA or skip validation or alone.\n"
},
- "privateNetworkOnly": {
+ "skipCertificateValidation": {
"type": "boolean",
- "description": "If true, Load Balancer is accessible only via a private network IP address.\n"
+ "description": "Bypass certificate validation for TLS bridging in this target pool. This option is insecure and can only be used with public CAs by setting enabled true. Meant to be used for testing purposes only!\n"
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
- "acls",
- "observability",
- "privateNetworkOnly"
+ "enabled",
+ "skipCertificateValidation"
]
}
}
},
- "stackit:index/LoadbalancerOptionsObservability:LoadbalancerOptionsObservability": {
+ "stackit:index/ApplicationLoadBalancerTargetSecurityGroup:ApplicationLoadBalancerTargetSecurityGroup": {
"properties": {
- "logs": {
- "$ref": "#/types/stackit:index/LoadbalancerOptionsObservabilityLogs:LoadbalancerOptionsObservabilityLogs",
- "description": "Observability logs configuration. Not changeable after creation.\n"
+ "id": {
+ "type": "string",
+ "description": "ID of the security Group\n"
},
- "metrics": {
- "$ref": "#/types/stackit:index/LoadbalancerOptionsObservabilityMetrics:LoadbalancerOptionsObservabilityMetrics",
- "description": "Observability metrics configuration. Not changeable after creation.\n"
+ "name": {
+ "type": "string",
+ "description": "Name of the security Group\n"
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
- "logs",
- "metrics"
+ "id",
+ "name"
]
}
}
},
- "stackit:index/LoadbalancerOptionsObservabilityLogs:LoadbalancerOptionsObservabilityLogs": {
+ "stackit:index/CdnCustomDomainCertificate:CdnCustomDomainCertificate": {
"properties": {
- "credentialsRef": {
+ "certificate": {
"type": "string",
- "description": "Credentials reference for logs. Not changeable after creation.\n"
+ "description": "The PEM-encoded TLS certificate. Required for custom certificates.\n",
+ "secret": true
},
- "pushUrl": {
+ "privateKey": {
"type": "string",
- "description": "Credentials reference for logs. Not changeable after creation.\n"
+ "description": "The PEM-encoded private key for the certificate. Required for custom certificates. The certificate will be updated if this field is changed.\n",
+ "secret": true
+ },
+ "version": {
+ "type": "integer",
+ "description": "A version identifier for the certificate. Required for custom certificates. The certificate will be updated if this field is changed.\n"
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
- "credentialsRef",
- "pushUrl"
+ "version"
]
}
}
},
- "stackit:index/LoadbalancerOptionsObservabilityMetrics:LoadbalancerOptionsObservabilityMetrics": {
+ "stackit:index/CdnDistributionConfig:CdnDistributionConfig": {
"properties": {
- "credentialsRef": {
- "type": "string",
- "description": "Credentials reference for metrics. Not changeable after creation.\n"
+ "backend": {
+ "$ref": "#/types/stackit:index/CdnDistributionConfigBackend:CdnDistributionConfigBackend",
+ "description": "The configured backend for the distribution\n"
},
- "pushUrl": {
- "type": "string",
- "description": "Credentials reference for metrics. Not changeable after creation.\n"
+ "blockedCountries": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The configured countries where distribution of content is blocked\n"
+ },
+ "optimizer": {
+ "$ref": "#/types/stackit:index/CdnDistributionConfigOptimizer:CdnDistributionConfigOptimizer",
+ "description": "Configuration for the Image Optimizer. This is a paid feature that automatically optimizes images to reduce their file size for faster delivery, leading to improved website performance and a better user experience.\n"
+ },
+ "regions": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The configured regions where content will be hosted\n"
}
},
"type": "object",
- "language": {
- "nodejs": {
+ "required": [
+ "backend",
+ "regions"
+ ],
+ "language": {
+ "nodejs": {
"requiredOutputs": [
- "credentialsRef",
- "pushUrl"
+ "backend",
+ "blockedCountries",
+ "optimizer",
+ "regions"
]
}
}
},
- "stackit:index/LoadbalancerTargetPool:LoadbalancerTargetPool": {
+ "stackit:index/CdnDistributionConfigBackend:CdnDistributionConfigBackend": {
"properties": {
- "activeHealthCheck": {
- "$ref": "#/types/stackit:index/LoadbalancerTargetPoolActiveHealthCheck:LoadbalancerTargetPoolActiveHealthCheck"
- },
- "name": {
+ "bucketUrl": {
"type": "string",
- "description": "Target pool name.\n"
+ "description": "The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'.\n"
},
- "sessionPersistence": {
- "$ref": "#/types/stackit:index/LoadbalancerTargetPoolSessionPersistence:LoadbalancerTargetPoolSessionPersistence",
- "description": "Here you can setup various session persistence options, so far only \"\u003cspan pulumi-lang-nodejs=\"`useSourceIpAddress`\" pulumi-lang-dotnet=\"`UseSourceIpAddress`\" pulumi-lang-go=\"`useSourceIpAddress`\" pulumi-lang-python=\"`use_source_ip_address`\" pulumi-lang-yaml=\"`useSourceIpAddress`\" pulumi-lang-java=\"`useSourceIpAddress`\"\u003e`use_source_ip_address`\u003c/span\u003e\" is supported.\n"
+ "credentials": {
+ "$ref": "#/types/stackit:index/CdnDistributionConfigBackendCredentials:CdnDistributionConfigBackendCredentials",
+ "description": "The credentials for the bucket. Required if type is 'bucket'.\n"
},
- "targetPort": {
- "type": "integer",
- "description": "Identical port number where each target listens for traffic.\n"
+ "geofencing": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "description": "The configured type http to configure countries where content is allowed. A map of URLs to a list of countries\n"
},
- "targets": {
- "type": "array",
- "items": {
- "$ref": "#/types/stackit:index/LoadbalancerTargetPoolTarget:LoadbalancerTargetPoolTarget"
+ "originRequestHeaders": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
},
- "description": "List of all targets which will be used in the pool. Limited to 1000.\n"
+ "description": "The configured type http origin request headers for the backend\n"
+ },
+ "originUrl": {
+ "type": "string",
+ "description": "The configured backend type http for the distribution\n"
+ },
+ "region": {
+ "type": "string",
+ "description": "The region where the bucket is hosted. Required if type is 'bucket'.\n"
+ },
+ "type": {
+ "type": "string",
+ "description": "The configured backend type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bucket`\" pulumi-lang-dotnet=\"`Bucket`\" pulumi-lang-go=\"`bucket`\" pulumi-lang-python=\"`bucket`\" pulumi-lang-yaml=\"`bucket`\" pulumi-lang-java=\"`bucket`\"\u003e`bucket`\u003c/span\u003e.\n"
}
},
"type": "object",
"required": [
- "name",
- "targetPort",
- "targets"
- ],
+ "type"
+ ]
+ },
+ "stackit:index/CdnDistributionConfigBackendCredentials:CdnDistributionConfigBackendCredentials": {
+ "properties": {
+ "accessKeyId": {
+ "type": "string",
+ "description": "The access key for the bucket. Required if type is 'bucket'.\n",
+ "secret": true
+ },
+ "secretAccessKey": {
+ "type": "string",
+ "description": "The access key for the bucket. Required if type is 'bucket'.\n",
+ "secret": true
+ }
+ },
+ "type": "object",
+ "required": [
+ "accessKeyId",
+ "secretAccessKey"
+ ]
+ },
+ "stackit:index/CdnDistributionConfigOptimizer:CdnDistributionConfigOptimizer": {
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ }
+ },
+ "type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
- "activeHealthCheck",
- "name",
- "targetPort",
- "targets"
+ "enabled"
]
}
}
},
- "stackit:index/LoadbalancerTargetPoolActiveHealthCheck:LoadbalancerTargetPoolActiveHealthCheck": {
+ "stackit:index/CdnDistributionDomain:CdnDistributionDomain": {
"properties": {
- "healthyThreshold": {
- "type": "integer",
- "description": "Healthy threshold of the health checking.\n"
+ "errors": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of domain errors\n"
},
- "interval": {
+ "name": {
"type": "string",
- "description": "Interval duration of health checking in seconds.\n"
+ "description": "The name of the domain\n"
},
- "intervalJitter": {
+ "status": {
"type": "string",
- "description": "Interval duration threshold of the health checking in seconds.\n"
+ "description": "The status of the domain\n"
},
- "timeout": {
+ "type": {
"type": "string",
- "description": "Active health checking timeout duration in seconds.\n"
- },
- "unhealthyThreshold": {
- "type": "integer",
- "description": "Unhealthy threshold of the health checking.\n"
+ "description": "The type of the domain. Each distribution has one domain of type \"managed\", and domains of type \"custom\" may be additionally created by the user\n"
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
- "healthyThreshold",
- "interval",
- "intervalJitter",
- "timeout",
- "unhealthyThreshold"
+ "errors",
+ "name",
+ "status",
+ "type"
]
}
}
},
- "stackit:index/LoadbalancerTargetPoolSessionPersistence:LoadbalancerTargetPoolSessionPersistence": {
- "properties": {
- "useSourceIpAddress": {
- "type": "boolean",
- "description": "If true then all connections from one source IP address are redirected to the same target. This setting changes the load balancing algorithm to Maglev.\n"
- }
- },
- "type": "object"
- },
- "stackit:index/LoadbalancerTargetPoolTarget:LoadbalancerTargetPoolTarget": {
+ "stackit:index/ImageChecksum:ImageChecksum": {
"properties": {
- "displayName": {
+ "algorithm": {
"type": "string",
- "description": "Target display name\n"
+ "description": "Algorithm for the checksum of the image data.\n"
},
- "ip": {
+ "digest": {
"type": "string",
- "description": "Target IP\n"
+ "description": "Hexdigest of the checksum of the image data.\n"
}
},
"type": "object",
- "required": [
- "displayName",
- "ip"
- ]
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "algorithm",
+ "digest"
+ ]
+ }
+ }
},
- "stackit:index/LogmeInstanceParameters:LogmeInstanceParameters": {
+ "stackit:index/ImageConfig:ImageConfig": {
"properties": {
- "enableMonitoring": {
+ "bootMenu": {
"type": "boolean",
- "description": "Enable monitoring.\n"
- },
- "fluentdTcp": {
- "type": "integer"
- },
- "fluentdTls": {
- "type": "integer"
- },
- "fluentdTlsCiphers": {
- "type": "string"
- },
- "fluentdTlsMaxVersion": {
- "type": "string"
- },
- "fluentdTlsMinVersion": {
- "type": "string"
- },
- "fluentdTlsVersion": {
- "type": "string"
- },
- "fluentdUdp": {
- "type": "integer"
+ "description": "Enables the BIOS bootmenu.\n"
},
- "graphite": {
+ "cdromBus": {
"type": "string",
- "description": "If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port).\n"
+ "description": "Sets CDROM bus controller type.\n"
},
- "ismDeletionAfter": {
+ "diskBus": {
"type": "string",
- "description": "Combination of an integer and a timerange when an index will be considered \"old\" and can be deleted. Possible values for the timerange are \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e.\n"
- },
- "ismJitter": {
- "type": "number"
- },
- "ismJobInterval": {
- "type": "integer",
- "description": "Jitter of the execution time.\n"
+ "description": "Sets Disk bus controller type.\n"
},
- "javaHeapspace": {
- "type": "integer",
- "description": "The amount of memory (in MB) allocated as heap by the JVM for OpenSearch.\n"
+ "nicModel": {
+ "type": "string",
+ "description": "Sets virtual network interface model.\n"
},
- "javaMaxmetaspace": {
- "type": "integer",
- "description": "The amount of memory (in MB) used by the JVM to store metadata for OpenSearch.\n"
+ "operatingSystem": {
+ "type": "string",
+ "description": "Enables operating system specific optimizations.\n"
},
- "maxDiskThreshold": {
- "type": "integer",
- "description": "The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped.\n"
+ "operatingSystemDistro": {
+ "type": "string",
+ "description": "Operating system distribution.\n"
},
- "metricsFrequency": {
- "type": "integer",
- "description": "The frequency in seconds at which metrics are emitted (in seconds).\n"
+ "operatingSystemVersion": {
+ "type": "string",
+ "description": "Version of the operating system.\n"
},
- "metricsPrefix": {
+ "rescueBus": {
"type": "string",
- "description": "The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key.\n"
+ "description": "Sets the device bus when the image is used as a rescue image.\n"
},
- "monitoringInstanceId": {
+ "rescueDevice": {
"type": "string",
- "description": "The ID of the STACKIT monitoring instance.\n"
+ "description": "Sets the device when the image is used as a rescue image.\n"
},
- "opensearchTlsCiphers": {
- "type": "array",
- "items": {
- "type": "string"
- }
+ "secureBoot": {
+ "type": "boolean",
+ "description": "Enables Secure Boot.\n"
},
- "opensearchTlsProtocols": {
- "type": "array",
- "items": {
- "type": "string"
- }
+ "uefi": {
+ "type": "boolean",
+ "description": "Enables UEFI boot.\n"
},
- "sgwAcl": {
+ "videoModel": {
"type": "string",
- "description": "Comma separated list of IP networks in CIDR notation which are allowed to access this instance.\n"
+ "description": "Sets Graphic device model.\n"
},
- "syslogs": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "List of syslog servers to send logs to.\n"
+ "virtioScsi": {
+ "type": "boolean",
+ "description": "Enables the use of VirtIO SCSI to provide block device access. By default instances use VirtIO Block.\n"
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
- "enableMonitoring",
- "fluentdTcp",
- "fluentdTls",
- "fluentdTlsCiphers",
- "fluentdTlsMaxVersion",
- "fluentdTlsMinVersion",
- "fluentdTlsVersion",
- "fluentdUdp",
- "graphite",
- "ismDeletionAfter",
- "ismJitter",
- "ismJobInterval",
- "javaHeapspace",
- "javaMaxmetaspace",
- "maxDiskThreshold",
- "metricsFrequency",
- "metricsPrefix",
- "monitoringInstanceId",
- "opensearchTlsCiphers",
- "opensearchTlsProtocols",
- "sgwAcl",
- "syslogs"
+ "bootMenu",
+ "cdromBus",
+ "diskBus",
+ "nicModel",
+ "operatingSystem",
+ "operatingSystemDistro",
+ "operatingSystemVersion",
+ "rescueBus",
+ "rescueDevice",
+ "secureBoot",
+ "uefi",
+ "videoModel",
+ "virtioScsi"
]
}
}
},
- "stackit:index/MariadbInstanceParameters:MariadbInstanceParameters": {
+ "stackit:index/LoadbalancerListener:LoadbalancerListener": {
"properties": {
- "enableMonitoring": {
- "type": "boolean",
- "description": "Enable monitoring.\n"
- },
- "graphite": {
- "type": "string",
- "description": "Graphite server URL (host and port). If set, monitoring with Graphite will be enabled.\n"
- },
- "maxDiskThreshold": {
- "type": "integer",
- "description": "The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped.\n"
+ "displayName": {
+ "type": "string"
},
- "metricsFrequency": {
+ "port": {
"type": "integer",
- "description": "The frequency in seconds at which metrics are emitted.\n"
- },
- "metricsPrefix": {
- "type": "string",
- "description": "The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key\n"
- },
- "monitoringInstanceId": {
- "type": "string",
- "description": "The ID of the STACKIT monitoring instance. Monitoring instances with the plan \"Observability-Monitoring-Starter\" are not supported.\n"
+ "description": "Port number where we listen for traffic.\n"
},
- "sgwAcl": {
+ "protocol": {
"type": "string",
- "description": "Comma separated list of IP networks in CIDR notation which are allowed to access this instance.\n"
+ "description": "Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`.\n"
},
- "syslogs": {
+ "serverNameIndicators": {
"type": "array",
"items": {
- "type": "string"
+ "$ref": "#/types/stackit:index/LoadbalancerListenerServerNameIndicator:LoadbalancerListenerServerNameIndicator"
},
- "description": "List of syslog servers to send logs to.\n"
- }
- },
- "type": "object",
- "language": {
- "nodejs": {
- "requiredOutputs": [
- "enableMonitoring",
- "graphite",
- "maxDiskThreshold",
- "metricsFrequency",
- "metricsPrefix",
- "monitoringInstanceId",
- "sgwAcl",
- "syslogs"
- ]
- }
- }
- },
- "stackit:index/MongodbflexInstanceFlavor:MongodbflexInstanceFlavor": {
- "properties": {
- "cpu": {
- "type": "integer"
+ "description": "A list of domain names to match in order to pass TLS traffic to the target pool in the current listener\n"
},
- "description": {
- "type": "string"
+ "targetPool": {
+ "type": "string",
+ "description": "Reference target pool by target pool name.\n"
},
- "id": {
- "type": "string"
+ "tcp": {
+ "$ref": "#/types/stackit:index/LoadbalancerListenerTcp:LoadbalancerListenerTcp",
+ "description": "Options that are specific to the TCP protocol.\n"
},
- "ram": {
- "type": "integer"
+ "udp": {
+ "$ref": "#/types/stackit:index/LoadbalancerListenerUdp:LoadbalancerListenerUdp",
+ "description": "Options that are specific to the UDP protocol.\n"
}
},
"type": "object",
"required": [
- "cpu",
- "ram"
+ "port",
+ "protocol",
+ "targetPool"
],
"language": {
"nodejs": {
"requiredOutputs": [
- "cpu",
- "description",
- "id",
- "ram"
+ "displayName",
+ "port",
+ "protocol",
+ "targetPool"
]
}
}
},
- "stackit:index/MongodbflexInstanceOptions:MongodbflexInstanceOptions": {
+ "stackit:index/LoadbalancerListenerServerNameIndicator:LoadbalancerListenerServerNameIndicator": {
"properties": {
- "dailySnapshotRetentionDays": {
- "type": "integer",
- "description": "The number of days that daily backups will be retained.\n"
- },
- "monthlySnapshotRetentionMonths": {
- "type": "integer",
- "description": "The number of months that monthly backups will be retained.\n"
- },
- "pointInTimeWindowHours": {
- "type": "integer",
- "description": "The number of hours back in time the point-in-time recovery feature will be able to recover.\n"
- },
- "snapshotRetentionDays": {
- "type": "integer",
- "description": "The number of days that continuous backups (controlled via the \u003cspan pulumi-lang-nodejs=\"`backupSchedule`\" pulumi-lang-dotnet=\"`BackupSchedule`\" pulumi-lang-go=\"`backupSchedule`\" pulumi-lang-python=\"`backup_schedule`\" pulumi-lang-yaml=\"`backupSchedule`\" pulumi-lang-java=\"`backupSchedule`\"\u003e`backup_schedule`\u003c/span\u003e) will be retained.\n"
- },
- "type": {
+ "name": {
"type": "string",
- "description": "Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`.\n"
- },
- "weeklySnapshotRetentionWeeks": {
- "type": "integer",
- "description": "The number of weeks that weekly backups will be retained.\n"
+ "description": "A domain name to match in order to pass TLS traffic to the target pool in the current listener\n"
}
},
- "type": "object",
- "required": [
- "pointInTimeWindowHours",
- "type"
- ],
- "language": {
- "nodejs": {
- "requiredOutputs": [
- "dailySnapshotRetentionDays",
- "monthlySnapshotRetentionMonths",
- "pointInTimeWindowHours",
- "snapshotRetentionDays",
- "type",
- "weeklySnapshotRetentionWeeks"
- ]
+ "type": "object"
+ },
+ "stackit:index/LoadbalancerListenerTcp:LoadbalancerListenerTcp": {
+ "properties": {
+ "idleTimeout": {
+ "type": "string",
+ "description": "Time after which an idle connection is closed. The default value is set to 300 seconds, and the maximum value is 3600 seconds. The format is a duration and the unit must be seconds. Example: 30s\n"
}
- }
+ },
+ "type": "object"
},
- "stackit:index/MongodbflexInstanceStorage:MongodbflexInstanceStorage": {
+ "stackit:index/LoadbalancerListenerUdp:LoadbalancerListenerUdp": {
"properties": {
- "class": {
- "type": "string"
+ "idleTimeout": {
+ "type": "string",
+ "description": "Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. The format is a duration and the unit must be seconds. Example: 30s\n"
+ }
+ },
+ "type": "object"
+ },
+ "stackit:index/LoadbalancerNetwork:LoadbalancerNetwork": {
+ "properties": {
+ "networkId": {
+ "type": "string",
+ "description": "Openstack network ID.\n"
},
- "size": {
- "type": "integer"
+ "role": {
+ "type": "string",
+ "description": "The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`.\n"
}
},
"type": "object",
"required": [
- "class",
- "size"
+ "networkId",
+ "role"
]
},
- "stackit:index/NetworkAreaNetworkRange:NetworkAreaNetworkRange": {
+ "stackit:index/LoadbalancerOptions:LoadbalancerOptions": {
"properties": {
- "networkRangeId": {
- "type": "string",
- "deprecationMessage": "Deprecated because of the IaaS API v1 -\u003e v2 migration. Will be removed in May 2026. Use the new \u003cspan pulumi-lang-nodejs=\"`stackit.NetworkAreaRegion`\" pulumi-lang-dotnet=\"`stackit.NetworkAreaRegion`\" pulumi-lang-go=\"`NetworkAreaRegion`\" pulumi-lang-python=\"`NetworkAreaRegion`\" pulumi-lang-yaml=\"`stackit.NetworkAreaRegion`\" pulumi-lang-java=\"`stackit.NetworkAreaRegion`\"\u003e`stackit.NetworkAreaRegion`\u003c/span\u003e resource instead."
+ "acls": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Load Balancer is accessible only from an IP address in this range.\n"
},
- "prefix": {
- "type": "string",
- "description": "Classless Inter-Domain Routing (CIDR).\n",
- "deprecationMessage": "Deprecated because of the IaaS API v1 -\u003e v2 migration. Will be removed in May 2026. Use the new \u003cspan pulumi-lang-nodejs=\"`stackit.NetworkAreaRegion`\" pulumi-lang-dotnet=\"`stackit.NetworkAreaRegion`\" pulumi-lang-go=\"`NetworkAreaRegion`\" pulumi-lang-python=\"`NetworkAreaRegion`\" pulumi-lang-yaml=\"`stackit.NetworkAreaRegion`\" pulumi-lang-java=\"`stackit.NetworkAreaRegion`\"\u003e`stackit.NetworkAreaRegion`\u003c/span\u003e resource instead."
+ "observability": {
+ "$ref": "#/types/stackit:index/LoadbalancerOptionsObservability:LoadbalancerOptionsObservability",
+ "description": "We offer Load Balancer metrics observability via ARGUS or external solutions. Not changeable after creation.\n"
+ },
+ "privateNetworkOnly": {
+ "type": "boolean",
+ "description": "If true, Load Balancer is accessible only via a private network IP address.\n"
}
},
"type": "object",
- "required": [
- "prefix"
- ],
"language": {
"nodejs": {
"requiredOutputs": [
- "networkRangeId",
- "prefix"
+ "acls",
+ "observability",
+ "privateNetworkOnly"
]
}
}
},
- "stackit:index/NetworkAreaRegionIpv4:NetworkAreaRegionIpv4": {
+ "stackit:index/LoadbalancerOptionsObservability:LoadbalancerOptionsObservability": {
"properties": {
- "defaultNameservers": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "List of DNS Servers/Nameservers.\n"
- },
- "defaultPrefixLength": {
- "type": "integer",
- "description": "The default prefix length for networks in the network area.\n"
+ "logs": {
+ "$ref": "#/types/stackit:index/LoadbalancerOptionsObservabilityLogs:LoadbalancerOptionsObservabilityLogs",
+ "description": "Observability logs configuration. Not changeable after creation.\n"
},
- "maxPrefixLength": {
- "type": "integer",
- "description": "The maximal prefix length for networks in the network area.\n"
- },
- "minPrefixLength": {
- "type": "integer",
- "description": "The minimal prefix length for networks in the network area.\n"
- },
- "networkRanges": {
- "type": "array",
- "items": {
- "$ref": "#/types/stackit:index/NetworkAreaRegionIpv4NetworkRange:NetworkAreaRegionIpv4NetworkRange"
- },
- "description": "List of Network ranges.\n"
- },
- "transferNetwork": {
- "type": "string",
- "description": "IPv4 Classless Inter-Domain Routing (CIDR).\n"
+ "metrics": {
+ "$ref": "#/types/stackit:index/LoadbalancerOptionsObservabilityMetrics:LoadbalancerOptionsObservabilityMetrics",
+ "description": "Observability metrics configuration. Not changeable after creation.\n"
}
},
"type": "object",
- "required": [
- "networkRanges",
- "transferNetwork"
- ],
"language": {
"nodejs": {
"requiredOutputs": [
- "defaultPrefixLength",
- "maxPrefixLength",
- "minPrefixLength",
- "networkRanges",
- "transferNetwork"
+ "logs",
+ "metrics"
]
}
}
},
- "stackit:index/NetworkAreaRegionIpv4NetworkRange:NetworkAreaRegionIpv4NetworkRange": {
+ "stackit:index/LoadbalancerOptionsObservabilityLogs:LoadbalancerOptionsObservabilityLogs": {
"properties": {
- "networkRangeId": {
- "type": "string"
+ "credentialsRef": {
+ "type": "string",
+ "description": "Credentials reference for logs. Not changeable after creation.\n"
},
- "prefix": {
+ "pushUrl": {
"type": "string",
- "description": "Classless Inter-Domain Routing (CIDR).\n"
+ "description": "Credentials reference for logs. Not changeable after creation.\n"
}
},
"type": "object",
- "required": [
- "prefix"
- ],
"language": {
"nodejs": {
"requiredOutputs": [
- "networkRangeId",
- "prefix"
+ "credentialsRef",
+ "pushUrl"
]
}
}
},
- "stackit:index/NetworkAreaRouteDestination:NetworkAreaRouteDestination": {
+ "stackit:index/LoadbalancerOptionsObservabilityMetrics:LoadbalancerOptionsObservabilityMetrics": {
"properties": {
- "type": {
+ "credentialsRef": {
"type": "string",
- "description": "CIDRV type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`cidrv4`\" pulumi-lang-dotnet=\"`Cidrv4`\" pulumi-lang-go=\"`cidrv4`\" pulumi-lang-python=\"`cidrv4`\" pulumi-lang-yaml=\"`cidrv4`\" pulumi-lang-java=\"`cidrv4`\"\u003e`cidrv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cidrv6`\" pulumi-lang-dotnet=\"`Cidrv6`\" pulumi-lang-go=\"`cidrv6`\" pulumi-lang-python=\"`cidrv6`\" pulumi-lang-yaml=\"`cidrv6`\" pulumi-lang-java=\"`cidrv6`\"\u003e`cidrv6`\u003c/span\u003e. Only \u003cspan pulumi-lang-nodejs=\"`cidrv4`\" pulumi-lang-dotnet=\"`Cidrv4`\" pulumi-lang-go=\"`cidrv4`\" pulumi-lang-python=\"`cidrv4`\" pulumi-lang-yaml=\"`cidrv4`\" pulumi-lang-java=\"`cidrv4`\"\u003e`cidrv4`\u003c/span\u003e is supported currently.\n"
+ "description": "Credentials reference for metrics. Not changeable after creation.\n"
},
- "value": {
+ "pushUrl": {
"type": "string",
- "description": "An CIDR string.\n"
+ "description": "Credentials reference for metrics. Not changeable after creation.\n"
}
},
"type": "object",
- "required": [
- "type",
- "value"
- ]
- },
- "stackit:index/NetworkAreaRouteNextHop:NetworkAreaRouteNextHop": {
- "properties": {
- "type": {
- "type": "string",
- "description": "Type of the next hop. Possible values are: \u003cspan pulumi-lang-nodejs=\"`blackhole`\" pulumi-lang-dotnet=\"`Blackhole`\" pulumi-lang-go=\"`blackhole`\" pulumi-lang-python=\"`blackhole`\" pulumi-lang-yaml=\"`blackhole`\" pulumi-lang-java=\"`blackhole`\"\u003e`blackhole`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e. Only \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e supported currently.\n"
- },
- "value": {
- "type": "string",
- "description": "Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported currently.\n"
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "credentialsRef",
+ "pushUrl"
+ ]
}
- },
- "type": "object",
- "required": [
- "type"
- ]
+ }
},
- "stackit:index/ObservabilityAlertgroupRule:ObservabilityAlertgroupRule": {
+ "stackit:index/LoadbalancerTargetPool:LoadbalancerTargetPool": {
"properties": {
- "alert": {
- "type": "string",
- "description": "The name of the alert rule. Is the identifier and must be unique in the group.\n"
- },
- "annotations": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "description": "A map of key:value. Annotations to add or overwrite for each alert\n"
- },
- "expression": {
- "type": "string",
- "description": "The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts.\n"
+ "activeHealthCheck": {
+ "$ref": "#/types/stackit:index/LoadbalancerTargetPoolActiveHealthCheck:LoadbalancerTargetPoolActiveHealthCheck"
},
- "for": {
+ "name": {
"type": "string",
- "description": "Alerts are considered firing once they have been returned for this long. Alerts which have not yet fired for long enough are considered pending. Default is 0s\n"
+ "description": "Target pool name.\n"
},
- "labels": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "description": "A map of key:value. Labels to add or overwrite for each alert\n"
+ "sessionPersistence": {
+ "$ref": "#/types/stackit:index/LoadbalancerTargetPoolSessionPersistence:LoadbalancerTargetPoolSessionPersistence",
+ "description": "Here you can setup various session persistence options, so far only \"\u003cspan pulumi-lang-nodejs=\"`useSourceIpAddress`\" pulumi-lang-dotnet=\"`UseSourceIpAddress`\" pulumi-lang-go=\"`useSourceIpAddress`\" pulumi-lang-python=\"`use_source_ip_address`\" pulumi-lang-yaml=\"`useSourceIpAddress`\" pulumi-lang-java=\"`useSourceIpAddress`\"\u003e`use_source_ip_address`\u003c/span\u003e\" is supported.\n"
},
- "record": {
- "type": "string",
- "description": "The name of the metric. It's the identifier and must be unique in the group.\n"
- }
- },
- "type": "object",
- "required": [
- "expression"
- ]
- },
- "stackit:index/ObservabilityInstanceAlertConfig:ObservabilityInstanceAlertConfig": {
- "properties": {
- "global": {
- "$ref": "#/types/stackit:index/ObservabilityInstanceAlertConfigGlobal:ObservabilityInstanceAlertConfigGlobal",
- "description": "Global configuration for the alerts. If nothing passed the default argus config will be used. It is only possible to update the entire global part, not individual attributes.\n"
+ "targetPort": {
+ "type": "integer",
+ "description": "Identical port number where each target listens for traffic.\n"
},
- "receivers": {
+ "targets": {
"type": "array",
"items": {
- "$ref": "#/types/stackit:index/ObservabilityInstanceAlertConfigReceiver:ObservabilityInstanceAlertConfigReceiver"
+ "$ref": "#/types/stackit:index/LoadbalancerTargetPoolTarget:LoadbalancerTargetPoolTarget"
},
- "description": "List of alert receivers.\n"
- },
- "route": {
- "$ref": "#/types/stackit:index/ObservabilityInstanceAlertConfigRoute:ObservabilityInstanceAlertConfigRoute",
- "description": "Route configuration for the alerts.\n"
+ "description": "List of all targets which will be used in the pool. Limited to 1000.\n"
}
},
"type": "object",
"required": [
- "receivers",
- "route"
+ "name",
+ "targetPort",
+ "targets"
],
"language": {
"nodejs": {
"requiredOutputs": [
- "global",
- "receivers",
- "route"
+ "activeHealthCheck",
+ "name",
+ "targetPort",
+ "targets"
]
}
}
},
- "stackit:index/ObservabilityInstanceAlertConfigGlobal:ObservabilityInstanceAlertConfigGlobal": {
+ "stackit:index/LoadbalancerTargetPoolActiveHealthCheck:LoadbalancerTargetPoolActiveHealthCheck": {
"properties": {
- "opsgenieApiKey": {
- "type": "string",
- "description": "The API key for OpsGenie.\n",
- "secret": true
- },
- "opsgenieApiUrl": {
- "type": "string",
- "description": "The host to send OpsGenie API requests to. Must be a valid URL\n"
- },
- "resolveTimeout": {
- "type": "string",
- "description": "The default value used by alertmanager if the alert does not include EndsAt. After this time passes, it can declare the alert as resolved if it has not been updated. This has no impact on alerts from Prometheus, as they always include EndsAt.\n"
- },
- "smtpAuthIdentity": {
- "type": "string",
- "description": "SMTP authentication information. Must be a valid email address\n"
+ "healthyThreshold": {
+ "type": "integer",
+ "description": "Healthy threshold of the health checking.\n"
},
- "smtpAuthPassword": {
+ "interval": {
"type": "string",
- "description": "SMTP Auth using LOGIN and PLAIN.\n",
- "secret": true
+ "description": "Interval duration of health checking in seconds.\n"
},
- "smtpAuthUsername": {
+ "intervalJitter": {
"type": "string",
- "description": "SMTP Auth using CRAM-MD5, LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server.\n"
+ "description": "Interval duration threshold of the health checking in seconds.\n"
},
- "smtpFrom": {
+ "timeout": {
"type": "string",
- "description": "The default SMTP From header field. Must be a valid email address\n"
+ "description": "Active health checking timeout duration in seconds.\n"
},
- "smtpSmartHost": {
- "type": "string",
- "description": "The default SMTP smarthost used for sending emails, including port number in format `host:port` (eg. `smtp.example.com:587`). Port number usually is 25, or 587 for SMTP over TLS (sometimes referred to as STARTTLS).\n"
+ "unhealthyThreshold": {
+ "type": "integer",
+ "description": "Unhealthy threshold of the health checking.\n"
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
- "opsgenieApiKey",
- "opsgenieApiUrl",
- "resolveTimeout",
- "smtpAuthIdentity",
- "smtpAuthPassword",
- "smtpAuthUsername",
- "smtpFrom",
- "smtpSmartHost"
+ "healthyThreshold",
+ "interval",
+ "intervalJitter",
+ "timeout",
+ "unhealthyThreshold"
]
}
}
},
- "stackit:index/ObservabilityInstanceAlertConfigReceiver:ObservabilityInstanceAlertConfigReceiver": {
+ "stackit:index/LoadbalancerTargetPoolSessionPersistence:LoadbalancerTargetPoolSessionPersistence": {
"properties": {
- "emailConfigs": {
- "type": "array",
- "items": {
- "$ref": "#/types/stackit:index/ObservabilityInstanceAlertConfigReceiverEmailConfig:ObservabilityInstanceAlertConfigReceiverEmailConfig"
- },
- "description": "List of email configurations.\n"
- },
- "name": {
+ "useSourceIpAddress": {
+ "type": "boolean",
+ "description": "If true then all connections from one source IP address are redirected to the same target. This setting changes the load balancing algorithm to Maglev.\n"
+ }
+ },
+ "type": "object"
+ },
+ "stackit:index/LoadbalancerTargetPoolTarget:LoadbalancerTargetPoolTarget": {
+ "properties": {
+ "displayName": {
"type": "string",
- "description": "Name of the receiver.\n"
- },
- "opsgenieConfigs": {
- "type": "array",
- "items": {
- "$ref": "#/types/stackit:index/ObservabilityInstanceAlertConfigReceiverOpsgenieConfig:ObservabilityInstanceAlertConfigReceiverOpsgenieConfig"
- },
- "description": "List of OpsGenie configurations.\n"
+ "description": "Target display name\n"
},
- "webhooksConfigs": {
- "type": "array",
- "items": {
- "$ref": "#/types/stackit:index/ObservabilityInstanceAlertConfigReceiverWebhooksConfig:ObservabilityInstanceAlertConfigReceiverWebhooksConfig"
- },
- "description": "List of Webhooks configurations.\n"
+ "ip": {
+ "type": "string",
+ "description": "Target IP\n"
}
},
"type": "object",
"required": [
- "name"
+ "displayName",
+ "ip"
]
},
- "stackit:index/ObservabilityInstanceAlertConfigReceiverEmailConfig:ObservabilityInstanceAlertConfigReceiverEmailConfig": {
+ "stackit:index/LogmeInstanceParameters:LogmeInstanceParameters": {
"properties": {
- "authIdentity": {
- "type": "string",
- "description": "SMTP authentication information. Must be a valid email address\n"
+ "enableMonitoring": {
+ "type": "boolean",
+ "description": "Enable monitoring.\n"
},
- "authPassword": {
- "type": "string",
- "description": "SMTP authentication password.\n",
- "secret": true
+ "fluentdTcp": {
+ "type": "integer"
},
- "authUsername": {
+ "fluentdTls": {
+ "type": "integer"
+ },
+ "fluentdTlsCiphers": {
+ "type": "string"
+ },
+ "fluentdTlsMaxVersion": {
+ "type": "string"
+ },
+ "fluentdTlsMinVersion": {
+ "type": "string"
+ },
+ "fluentdTlsVersion": {
+ "type": "string"
+ },
+ "fluentdUdp": {
+ "type": "integer"
+ },
+ "graphite": {
"type": "string",
- "description": "SMTP authentication username.\n"
+ "description": "If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port).\n"
},
- "from": {
+ "ismDeletionAfter": {
"type": "string",
- "description": "The sender email address. Must be a valid email address\n"
+ "description": "Combination of an integer and a timerange when an index will be considered \"old\" and can be deleted. Possible values for the timerange are \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e.\n"
},
- "sendResolved": {
- "type": "boolean",
- "description": "Whether to notify about resolved alerts.\n"
+ "ismJitter": {
+ "type": "number"
},
- "smartHost": {
+ "ismJobInterval": {
+ "type": "integer",
+ "description": "Jitter of the execution time.\n"
+ },
+ "javaHeapspace": {
+ "type": "integer",
+ "description": "The amount of memory (in MB) allocated as heap by the JVM for OpenSearch.\n"
+ },
+ "javaMaxmetaspace": {
+ "type": "integer",
+ "description": "The amount of memory (in MB) used by the JVM to store metadata for OpenSearch.\n"
+ },
+ "maxDiskThreshold": {
+ "type": "integer",
+ "description": "The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped.\n"
+ },
+ "metricsFrequency": {
+ "type": "integer",
+ "description": "The frequency in seconds at which metrics are emitted (in seconds).\n"
+ },
+ "metricsPrefix": {
"type": "string",
- "description": "The SMTP host through which emails are sent.\n"
+ "description": "The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key.\n"
},
- "to": {
+ "monitoringInstanceId": {
"type": "string",
- "description": "The email address to send notifications to. Must be a valid email address\n"
+ "description": "The ID of the STACKIT monitoring instance.\n"
+ },
+ "opensearchTlsCiphers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "opensearchTlsProtocols": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "sgwAcl": {
+ "type": "string",
+ "description": "Comma separated list of IP networks in CIDR notation which are allowed to access this instance.\n"
+ },
+ "syslogs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of syslog servers to send logs to.\n"
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
- "sendResolved"
+ "enableMonitoring",
+ "fluentdTcp",
+ "fluentdTls",
+ "fluentdTlsCiphers",
+ "fluentdTlsMaxVersion",
+ "fluentdTlsMinVersion",
+ "fluentdTlsVersion",
+ "fluentdUdp",
+ "graphite",
+ "ismDeletionAfter",
+ "ismJitter",
+ "ismJobInterval",
+ "javaHeapspace",
+ "javaMaxmetaspace",
+ "maxDiskThreshold",
+ "metricsFrequency",
+ "metricsPrefix",
+ "monitoringInstanceId",
+ "opensearchTlsCiphers",
+ "opensearchTlsProtocols",
+ "sgwAcl",
+ "syslogs"
]
}
}
},
- "stackit:index/ObservabilityInstanceAlertConfigReceiverOpsgenieConfig:ObservabilityInstanceAlertConfigReceiverOpsgenieConfig": {
+ "stackit:index/MariadbInstanceParameters:MariadbInstanceParameters": {
"properties": {
- "apiKey": {
- "type": "string",
- "description": "The API key for OpsGenie.\n"
+ "enableMonitoring": {
+ "type": "boolean",
+ "description": "Enable monitoring.\n"
},
- "apiUrl": {
+ "graphite": {
"type": "string",
- "description": "The host to send OpsGenie API requests to. Must be a valid URL\n"
+ "description": "Graphite server URL (host and port). If set, monitoring with Graphite will be enabled.\n"
},
- "priority": {
+ "maxDiskThreshold": {
+ "type": "integer",
+ "description": "The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped.\n"
+ },
+ "metricsFrequency": {
+ "type": "integer",
+ "description": "The frequency in seconds at which metrics are emitted.\n"
+ },
+ "metricsPrefix": {
"type": "string",
- "description": "Priority of the alert. Possible values are: `P1`, `P2`, `P3`, `P4`, `P5`.\n"
+ "description": "The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key\n"
},
- "sendResolved": {
- "type": "boolean",
- "description": "Whether to notify about resolved alerts.\n"
+ "monitoringInstanceId": {
+ "type": "string",
+ "description": "The ID of the STACKIT monitoring instance. Monitoring instances with the plan \"Observability-Monitoring-Starter\" are not supported.\n"
},
- "tags": {
+ "sgwAcl": {
"type": "string",
- "description": "Comma separated list of tags attached to the notifications.\n"
+ "description": "Comma separated list of IP networks in CIDR notation which are allowed to access this instance.\n"
+ },
+ "syslogs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of syslog servers to send logs to.\n"
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
- "sendResolved"
+ "enableMonitoring",
+ "graphite",
+ "maxDiskThreshold",
+ "metricsFrequency",
+ "metricsPrefix",
+ "monitoringInstanceId",
+ "sgwAcl",
+ "syslogs"
]
}
}
},
- "stackit:index/ObservabilityInstanceAlertConfigReceiverWebhooksConfig:ObservabilityInstanceAlertConfigReceiverWebhooksConfig": {
+ "stackit:index/MongodbflexInstanceFlavor:MongodbflexInstanceFlavor": {
"properties": {
- "googleChat": {
- "type": "boolean",
- "description": "Google Chat webhooks require special handling, set this to true if the webhook is for Google Chat.\n"
+ "cpu": {
+ "type": "integer"
},
- "msTeams": {
- "type": "boolean",
- "description": "Microsoft Teams webhooks require special handling, set this to true if the webhook is for Microsoft Teams.\n"
+ "description": {
+ "type": "string"
},
- "sendResolved": {
- "type": "boolean",
- "description": "Whether to notify about resolved alerts.\n"
+ "id": {
+ "type": "string"
},
- "url": {
- "type": "string",
- "description": "The endpoint to send HTTP POST requests to. Must be a valid URL\n",
- "secret": true
+ "ram": {
+ "type": "integer"
}
},
"type": "object",
+ "required": [
+ "cpu",
+ "ram"
+ ],
"language": {
"nodejs": {
"requiredOutputs": [
- "googleChat",
- "msTeams",
- "sendResolved"
+ "cpu",
+ "description",
+ "id",
+ "ram"
]
}
}
},
- "stackit:index/ObservabilityInstanceAlertConfigRoute:ObservabilityInstanceAlertConfigRoute": {
+ "stackit:index/MongodbflexInstanceOptions:MongodbflexInstanceOptions": {
"properties": {
- "continue": {
- "type": "boolean",
- "description": "Whether an alert should continue matching subsequent sibling nodes.\n"
- },
- "groupBies": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping.\n"
+ "dailySnapshotRetentionDays": {
+ "type": "integer",
+ "description": "The number of days that daily backups will be retained.\n"
},
- "groupInterval": {
- "type": "string",
- "description": "How long to wait before sending a notification about new alerts that are added to a group of alerts for which an initial notification has already been sent. (Usually ~5m or more.)\n"
+ "monthlySnapshotRetentionMonths": {
+ "type": "integer",
+ "description": "The number of months that monthly backups will be retained.\n"
},
- "groupWait": {
- "type": "string",
- "description": "How long to initially wait to send a notification for a group of alerts. Allows to wait for an inhibiting alert to arrive or collect more initial alerts for the same group. (Usually ~0s to few minutes.)\n"
+ "pointInTimeWindowHours": {
+ "type": "integer",
+ "description": "The number of hours back in time the point-in-time recovery feature will be able to recover.\n"
},
- "receiver": {
- "type": "string",
- "description": "The name of the receiver to route the alerts to.\n"
+ "snapshotRetentionDays": {
+ "type": "integer",
+ "description": "The number of days that continuous backups (controlled via the \u003cspan pulumi-lang-nodejs=\"`backupSchedule`\" pulumi-lang-dotnet=\"`BackupSchedule`\" pulumi-lang-go=\"`backupSchedule`\" pulumi-lang-python=\"`backup_schedule`\" pulumi-lang-yaml=\"`backupSchedule`\" pulumi-lang-java=\"`backupSchedule`\"\u003e`backup_schedule`\u003c/span\u003e) will be retained.\n"
},
- "repeatInterval": {
+ "type": {
"type": "string",
- "description": "How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more).\n"
+ "description": "Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`.\n"
},
- "routes": {
- "type": "array",
- "items": {
- "$ref": "#/types/stackit:index/ObservabilityInstanceAlertConfigRouteRoute:ObservabilityInstanceAlertConfigRouteRoute"
- },
- "description": "List of child routes.\n"
+ "weeklySnapshotRetentionWeeks": {
+ "type": "integer",
+ "description": "The number of weeks that weekly backups will be retained.\n"
}
},
"type": "object",
"required": [
- "receiver"
+ "pointInTimeWindowHours",
+ "type"
],
"language": {
"nodejs": {
"requiredOutputs": [
- "continue",
- "groupInterval",
- "groupWait",
- "receiver",
- "repeatInterval"
- ]
- }
- }
- },
- "stackit:index/ObservabilityInstanceAlertConfigRouteRoute:ObservabilityInstanceAlertConfigRouteRoute": {
+ "dailySnapshotRetentionDays",
+ "monthlySnapshotRetentionMonths",
+ "pointInTimeWindowHours",
+ "snapshotRetentionDays",
+ "type",
+ "weeklySnapshotRetentionWeeks"
+ ]
+ }
+ }
+ },
+ "stackit:index/MongodbflexInstanceStorage:MongodbflexInstanceStorage": {
"properties": {
- "continue": {
- "type": "boolean",
- "description": "Whether an alert should continue matching subsequent sibling nodes.\n"
+ "class": {
+ "type": "string"
},
- "groupBies": {
+ "size": {
+ "type": "integer"
+ }
+ },
+ "type": "object",
+ "required": [
+ "class",
+ "size"
+ ]
+ },
+ "stackit:index/NetworkAreaNetworkRange:NetworkAreaNetworkRange": {
+ "properties": {
+ "networkRangeId": {
+ "type": "string",
+ "deprecationMessage": "Deprecated because of the IaaS API v1 -\u003e v2 migration. Will be removed in May 2026. Use the new \u003cspan pulumi-lang-nodejs=\"`stackit.NetworkAreaRegion`\" pulumi-lang-dotnet=\"`stackit.NetworkAreaRegion`\" pulumi-lang-go=\"`NetworkAreaRegion`\" pulumi-lang-python=\"`NetworkAreaRegion`\" pulumi-lang-yaml=\"`stackit.NetworkAreaRegion`\" pulumi-lang-java=\"`stackit.NetworkAreaRegion`\"\u003e`stackit.NetworkAreaRegion`\u003c/span\u003e resource instead."
+ },
+ "prefix": {
+ "type": "string",
+ "description": "Classless Inter-Domain Routing (CIDR).\n",
+ "deprecationMessage": "Deprecated because of the IaaS API v1 -\u003e v2 migration. Will be removed in May 2026. Use the new \u003cspan pulumi-lang-nodejs=\"`stackit.NetworkAreaRegion`\" pulumi-lang-dotnet=\"`stackit.NetworkAreaRegion`\" pulumi-lang-go=\"`NetworkAreaRegion`\" pulumi-lang-python=\"`NetworkAreaRegion`\" pulumi-lang-yaml=\"`stackit.NetworkAreaRegion`\" pulumi-lang-java=\"`stackit.NetworkAreaRegion`\"\u003e`stackit.NetworkAreaRegion`\u003c/span\u003e resource instead."
+ }
+ },
+ "type": "object",
+ "required": [
+ "prefix"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "networkRangeId",
+ "prefix"
+ ]
+ }
+ }
+ },
+ "stackit:index/NetworkAreaRegionIpv4:NetworkAreaRegionIpv4": {
+ "properties": {
+ "defaultNameservers": {
"type": "array",
"items": {
"type": "string"
},
- "description": "The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping.\n"
- },
- "groupInterval": {
- "type": "string",
- "description": "How long to wait before sending a notification about new alerts that are added to a group of alerts for which an initial notification has already been sent. (Usually ~5m or more.)\n"
+ "description": "List of DNS Servers/Nameservers.\n"
},
- "groupWait": {
- "type": "string",
- "description": "How long to initially wait to send a notification for a group of alerts. Allows to wait for an inhibiting alert to arrive or collect more initial alerts for the same group. (Usually ~0s to few minutes.)\n"
+ "defaultPrefixLength": {
+ "type": "integer",
+ "description": "The default prefix length for networks in the network area.\n"
},
- "match": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "description": "A set of equality matchers an alert has to fulfill to match the node. This field is deprecated and will be removed after 10th March 2026, use \u003cspan pulumi-lang-nodejs=\"`matchers`\" pulumi-lang-dotnet=\"`Matchers`\" pulumi-lang-go=\"`matchers`\" pulumi-lang-python=\"`matchers`\" pulumi-lang-yaml=\"`matchers`\" pulumi-lang-java=\"`matchers`\"\u003e`matchers`\u003c/span\u003e in the \u003cspan pulumi-lang-nodejs=\"`routes`\" pulumi-lang-dotnet=\"`Routes`\" pulumi-lang-go=\"`routes`\" pulumi-lang-python=\"`routes`\" pulumi-lang-yaml=\"`routes`\" pulumi-lang-java=\"`routes`\"\u003e`routes`\u003c/span\u003e instead\n",
- "deprecationMessage": "Use \u003cspan pulumi-lang-nodejs=\"`matchers`\" pulumi-lang-dotnet=\"`Matchers`\" pulumi-lang-go=\"`matchers`\" pulumi-lang-python=\"`matchers`\" pulumi-lang-yaml=\"`matchers`\" pulumi-lang-java=\"`matchers`\"\u003e`matchers`\u003c/span\u003e in the \u003cspan pulumi-lang-nodejs=\"`routes`\" pulumi-lang-dotnet=\"`Routes`\" pulumi-lang-go=\"`routes`\" pulumi-lang-python=\"`routes`\" pulumi-lang-yaml=\"`routes`\" pulumi-lang-java=\"`routes`\"\u003e`routes`\u003c/span\u003e instead."
+ "maxPrefixLength": {
+ "type": "integer",
+ "description": "The maximal prefix length for networks in the network area.\n"
},
- "matchRegex": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "description": "A set of regex-matchers an alert has to fulfill to match the node. This field is deprecated and will be removed after 10th March 2026, use \u003cspan pulumi-lang-nodejs=\"`matchers`\" pulumi-lang-dotnet=\"`Matchers`\" pulumi-lang-go=\"`matchers`\" pulumi-lang-python=\"`matchers`\" pulumi-lang-yaml=\"`matchers`\" pulumi-lang-java=\"`matchers`\"\u003e`matchers`\u003c/span\u003e in the \u003cspan pulumi-lang-nodejs=\"`routes`\" pulumi-lang-dotnet=\"`Routes`\" pulumi-lang-go=\"`routes`\" pulumi-lang-python=\"`routes`\" pulumi-lang-yaml=\"`routes`\" pulumi-lang-java=\"`routes`\"\u003e`routes`\u003c/span\u003e instead\n",
- "deprecationMessage": "Use \u003cspan pulumi-lang-nodejs=\"`matchers`\" pulumi-lang-dotnet=\"`Matchers`\" pulumi-lang-go=\"`matchers`\" pulumi-lang-python=\"`matchers`\" pulumi-lang-yaml=\"`matchers`\" pulumi-lang-java=\"`matchers`\"\u003e`matchers`\u003c/span\u003e in the \u003cspan pulumi-lang-nodejs=\"`routes`\" pulumi-lang-dotnet=\"`Routes`\" pulumi-lang-go=\"`routes`\" pulumi-lang-python=\"`routes`\" pulumi-lang-yaml=\"`routes`\" pulumi-lang-java=\"`routes`\"\u003e`routes`\u003c/span\u003e instead."
+ "minPrefixLength": {
+ "type": "integer",
+ "description": "The minimal prefix length for networks in the network area.\n"
},
- "matchers": {
+ "networkRanges": {
"type": "array",
"items": {
- "type": "string"
+ "$ref": "#/types/stackit:index/NetworkAreaRegionIpv4NetworkRange:NetworkAreaRegionIpv4NetworkRange"
},
- "description": "A list of matchers that an alert has to fulfill to match the node. A matcher is a string with a syntax inspired by PromQL and OpenMetrics.\n"
+ "description": "List of Network ranges.\n"
},
- "receiver": {
+ "transferNetwork": {
"type": "string",
- "description": "The name of the receiver to route the alerts to.\n"
+ "description": "IPv4 Classless Inter-Domain Routing (CIDR).\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "networkRanges",
+ "transferNetwork"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "defaultPrefixLength",
+ "maxPrefixLength",
+ "minPrefixLength",
+ "networkRanges",
+ "transferNetwork"
+ ]
+ }
+ }
+ },
+ "stackit:index/NetworkAreaRegionIpv4NetworkRange:NetworkAreaRegionIpv4NetworkRange": {
+ "properties": {
+ "networkRangeId": {
+ "type": "string"
},
- "repeatInterval": {
+ "prefix": {
"type": "string",
- "description": "How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more).\n"
+ "description": "Classless Inter-Domain Routing (CIDR).\n"
}
},
"type": "object",
"required": [
- "receiver"
+ "prefix"
],
"language": {
"nodejs": {
"requiredOutputs": [
- "groupInterval",
- "groupWait",
- "receiver",
- "repeatInterval"
+ "networkRangeId",
+ "prefix"
]
}
}
},
- "stackit:index/ObservabilityLogalertgroupRule:ObservabilityLogalertgroupRule": {
+ "stackit:index/NetworkAreaRouteDestination:NetworkAreaRouteDestination": {
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "CIDRV type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`cidrv4`\" pulumi-lang-dotnet=\"`Cidrv4`\" pulumi-lang-go=\"`cidrv4`\" pulumi-lang-python=\"`cidrv4`\" pulumi-lang-yaml=\"`cidrv4`\" pulumi-lang-java=\"`cidrv4`\"\u003e`cidrv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cidrv6`\" pulumi-lang-dotnet=\"`Cidrv6`\" pulumi-lang-go=\"`cidrv6`\" pulumi-lang-python=\"`cidrv6`\" pulumi-lang-yaml=\"`cidrv6`\" pulumi-lang-java=\"`cidrv6`\"\u003e`cidrv6`\u003c/span\u003e. Only \u003cspan pulumi-lang-nodejs=\"`cidrv4`\" pulumi-lang-dotnet=\"`Cidrv4`\" pulumi-lang-go=\"`cidrv4`\" pulumi-lang-python=\"`cidrv4`\" pulumi-lang-yaml=\"`cidrv4`\" pulumi-lang-java=\"`cidrv4`\"\u003e`cidrv4`\u003c/span\u003e is supported currently.\n"
+ },
+ "value": {
+ "type": "string",
+ "description": "An CIDR string.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "type",
+ "value"
+ ]
+ },
+ "stackit:index/NetworkAreaRouteNextHop:NetworkAreaRouteNextHop": {
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Type of the next hop. Possible values are: \u003cspan pulumi-lang-nodejs=\"`blackhole`\" pulumi-lang-dotnet=\"`Blackhole`\" pulumi-lang-go=\"`blackhole`\" pulumi-lang-python=\"`blackhole`\" pulumi-lang-yaml=\"`blackhole`\" pulumi-lang-java=\"`blackhole`\"\u003e`blackhole`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e. Only \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e supported currently.\n"
+ },
+ "value": {
+ "type": "string",
+ "description": "Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported currently.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "type"
+ ]
+ },
+ "stackit:index/ObservabilityAlertgroupRule:ObservabilityAlertgroupRule": {
"properties": {
"alert": {
"type": "string",
@@ -1607,7 +1734,7 @@
},
"expression": {
"type": "string",
- "description": "The LogQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts.\n"
+ "description": "The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts.\n"
},
"for": {
"type": "string",
@@ -1619,374 +1746,501 @@
"type": "string"
},
"description": "A map of key:value. Labels to add or overwrite for each alert\n"
+ },
+ "record": {
+ "type": "string",
+ "description": "The name of the metric. It's the identifier and must be unique in the group.\n"
}
},
"type": "object",
"required": [
- "alert",
"expression"
]
},
- "stackit:index/ObservabilityScrapeconfigBasicAuth:ObservabilityScrapeconfigBasicAuth": {
+ "stackit:index/ObservabilityInstanceAlertConfig:ObservabilityInstanceAlertConfig": {
"properties": {
- "password": {
- "type": "string",
- "description": "Specifies basic auth password.\n",
- "secret": true
+ "global": {
+ "$ref": "#/types/stackit:index/ObservabilityInstanceAlertConfigGlobal:ObservabilityInstanceAlertConfigGlobal",
+ "description": "Global configuration for the alerts. If nothing passed the default argus config will be used. It is only possible to update the entire global part, not individual attributes.\n"
},
- "username": {
- "type": "string",
- "description": "Specifies basic auth username.\n"
+ "receivers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/ObservabilityInstanceAlertConfigReceiver:ObservabilityInstanceAlertConfigReceiver"
+ },
+ "description": "List of alert receivers.\n"
+ },
+ "route": {
+ "$ref": "#/types/stackit:index/ObservabilityInstanceAlertConfigRoute:ObservabilityInstanceAlertConfigRoute",
+ "description": "Route configuration for the alerts.\n"
}
},
"type": "object",
"required": [
- "password",
- "username"
- ]
- },
- "stackit:index/ObservabilityScrapeconfigSaml2:ObservabilityScrapeconfigSaml2": {
- "properties": {
- "enableUrlParameters": {
- "type": "boolean",
- "description": "Specifies if URL parameters are enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"
- }
- },
- "type": "object",
+ "receivers",
+ "route"
+ ],
"language": {
"nodejs": {
"requiredOutputs": [
- "enableUrlParameters"
+ "global",
+ "receivers",
+ "route"
]
}
}
},
- "stackit:index/ObservabilityScrapeconfigTarget:ObservabilityScrapeconfigTarget": {
- "properties": {
- "labels": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "description": "Specifies labels.\n"
- },
- "urls": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "Specifies target URLs.\n"
- }
- },
- "type": "object",
- "required": [
- "urls"
- ]
- },
- "stackit:index/OpensearchInstanceParameters:OpensearchInstanceParameters": {
+ "stackit:index/ObservabilityInstanceAlertConfigGlobal:ObservabilityInstanceAlertConfigGlobal": {
"properties": {
- "enableMonitoring": {
- "type": "boolean",
- "description": "Enable monitoring.\n"
+ "opsgenieApiKey": {
+ "type": "string",
+ "description": "The API key for OpsGenie.\n",
+ "secret": true
},
- "graphite": {
+ "opsgenieApiUrl": {
"type": "string",
- "description": "If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port).\n"
+ "description": "The host to send OpsGenie API requests to. Must be a valid URL\n"
},
- "javaGarbageCollector": {
+ "resolveTimeout": {
"type": "string",
- "description": "The garbage collector to use for OpenSearch.\n"
+ "description": "The default value used by alertmanager if the alert does not include EndsAt. After this time passes, it can declare the alert as resolved if it has not been updated. This has no impact on alerts from Prometheus, as they always include EndsAt.\n"
},
- "javaHeapspace": {
- "type": "integer",
- "description": "The amount of memory (in MB) allocated as heap by the JVM for OpenSearch.\n"
- },
- "javaMaxmetaspace": {
- "type": "integer",
- "description": "The amount of memory (in MB) used by the JVM to store metadata for OpenSearch.\n"
- },
- "maxDiskThreshold": {
- "type": "integer",
- "description": "The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped.\n"
+ "smtpAuthIdentity": {
+ "type": "string",
+ "description": "SMTP authentication information. Must be a valid email address\n"
},
- "metricsFrequency": {
- "type": "integer",
- "description": "The frequency in seconds at which metrics are emitted (in seconds).\n"
+ "smtpAuthPassword": {
+ "type": "string",
+ "description": "SMTP Auth using LOGIN and PLAIN.\n",
+ "secret": true
},
- "metricsPrefix": {
+ "smtpAuthUsername": {
"type": "string",
- "description": "The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key.\n"
+ "description": "SMTP Auth using CRAM-MD5, LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server.\n"
},
- "monitoringInstanceId": {
+ "smtpFrom": {
"type": "string",
- "description": "The ID of the STACKIT monitoring instance.\n"
+ "description": "The default SMTP From header field. Must be a valid email address\n"
},
- "plugins": {
+ "smtpSmartHost": {
+ "type": "string",
+ "description": "The default SMTP smarthost used for sending emails, including port number in format `host:port` (eg. `smtp.example.com:587`). Port number usually is 25, or 587 for SMTP over TLS (sometimes referred to as STARTTLS).\n"
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "opsgenieApiKey",
+ "opsgenieApiUrl",
+ "resolveTimeout",
+ "smtpAuthIdentity",
+ "smtpAuthPassword",
+ "smtpAuthUsername",
+ "smtpFrom",
+ "smtpSmartHost"
+ ]
+ }
+ }
+ },
+ "stackit:index/ObservabilityInstanceAlertConfigReceiver:ObservabilityInstanceAlertConfigReceiver": {
+ "properties": {
+ "emailConfigs": {
"type": "array",
"items": {
- "type": "string"
+ "$ref": "#/types/stackit:index/ObservabilityInstanceAlertConfigReceiverEmailConfig:ObservabilityInstanceAlertConfigReceiverEmailConfig"
},
- "description": "List of plugins to install. Must be a supported plugin name. The plugins `repository-s3` and `repository-azure` are enabled by default and cannot be disabled.\n"
+ "description": "List of email configurations.\n"
},
- "sgwAcl": {
+ "name": {
"type": "string",
- "description": "Comma separated list of IP networks in CIDR notation which are allowed to access this instance.\n"
+ "description": "Name of the receiver.\n"
},
- "syslogs": {
+ "opsgenieConfigs": {
"type": "array",
"items": {
- "type": "string"
+ "$ref": "#/types/stackit:index/ObservabilityInstanceAlertConfigReceiverOpsgenieConfig:ObservabilityInstanceAlertConfigReceiverOpsgenieConfig"
},
- "description": "List of syslog servers to send logs to.\n"
+ "description": "List of OpsGenie configurations.\n"
},
- "tlsCiphers": {
+ "webhooksConfigs": {
"type": "array",
"items": {
- "type": "string"
+ "$ref": "#/types/stackit:index/ObservabilityInstanceAlertConfigReceiverWebhooksConfig:ObservabilityInstanceAlertConfigReceiverWebhooksConfig"
},
- "description": "List of TLS ciphers to use.\n"
+ "description": "List of Webhooks configurations.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "name"
+ ]
+ },
+ "stackit:index/ObservabilityInstanceAlertConfigReceiverEmailConfig:ObservabilityInstanceAlertConfigReceiverEmailConfig": {
+ "properties": {
+ "authIdentity": {
+ "type": "string",
+ "description": "SMTP authentication information. Must be a valid email address\n"
},
- "tlsProtocols": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "The TLS protocol to use.\n"
+ "authPassword": {
+ "type": "string",
+ "description": "SMTP authentication password.\n",
+ "secret": true
+ },
+ "authUsername": {
+ "type": "string",
+ "description": "SMTP authentication username.\n"
+ },
+ "from": {
+ "type": "string",
+ "description": "The sender email address. Must be a valid email address\n"
+ },
+ "sendResolved": {
+ "type": "boolean",
+ "description": "Whether to notify about resolved alerts.\n"
+ },
+ "smartHost": {
+ "type": "string",
+ "description": "The SMTP host through which emails are sent.\n"
+ },
+ "to": {
+ "type": "string",
+ "description": "The email address to send notifications to. Must be a valid email address\n"
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
- "enableMonitoring",
- "graphite",
- "javaGarbageCollector",
- "javaHeapspace",
- "javaMaxmetaspace",
- "maxDiskThreshold",
- "metricsFrequency",
- "metricsPrefix",
- "monitoringInstanceId",
- "plugins",
- "sgwAcl",
- "syslogs",
- "tlsCiphers",
- "tlsProtocols"
+ "sendResolved"
]
}
}
},
- "stackit:index/PostgresflexInstanceFlavor:PostgresflexInstanceFlavor": {
+ "stackit:index/ObservabilityInstanceAlertConfigReceiverOpsgenieConfig:ObservabilityInstanceAlertConfigReceiverOpsgenieConfig": {
"properties": {
- "cpu": {
- "type": "integer"
+ "apiKey": {
+ "type": "string",
+ "description": "The API key for OpsGenie.\n"
},
- "description": {
- "type": "string"
+ "apiUrl": {
+ "type": "string",
+ "description": "The host to send OpsGenie API requests to. Must be a valid URL\n"
},
- "id": {
- "type": "string"
+ "priority": {
+ "type": "string",
+ "description": "Priority of the alert. Possible values are: `P1`, `P2`, `P3`, `P4`, `P5`.\n"
},
- "ram": {
- "type": "integer"
+ "sendResolved": {
+ "type": "boolean",
+ "description": "Whether to notify about resolved alerts.\n"
+ },
+ "tags": {
+ "type": "string",
+ "description": "Comma separated list of tags attached to the notifications.\n"
}
},
"type": "object",
- "required": [
- "cpu",
- "ram"
- ],
"language": {
"nodejs": {
"requiredOutputs": [
- "cpu",
- "description",
- "id",
- "ram"
+ "sendResolved"
]
}
}
},
- "stackit:index/PostgresflexInstanceStorage:PostgresflexInstanceStorage": {
+ "stackit:index/ObservabilityInstanceAlertConfigReceiverWebhooksConfig:ObservabilityInstanceAlertConfigReceiverWebhooksConfig": {
"properties": {
- "class": {
- "type": "string"
+ "googleChat": {
+ "type": "boolean",
+ "description": "Google Chat webhooks require special handling, set this to true if the webhook is for Google Chat.\n"
},
- "size": {
- "type": "integer"
+ "msTeams": {
+ "type": "boolean",
+ "description": "Microsoft Teams webhooks require special handling, set this to true if the webhook is for Microsoft Teams.\n"
+ },
+ "sendResolved": {
+ "type": "boolean",
+ "description": "Whether to notify about resolved alerts.\n"
+ },
+ "url": {
+ "type": "string",
+ "description": "The endpoint to send HTTP POST requests to. Must be a valid URL\n",
+ "secret": true
}
},
"type": "object",
- "required": [
- "class",
- "size"
- ]
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "googleChat",
+ "msTeams",
+ "sendResolved"
+ ]
+ }
+ }
},
- "stackit:index/RabbitmqInstanceParameters:RabbitmqInstanceParameters": {
+ "stackit:index/ObservabilityInstanceAlertConfigRoute:ObservabilityInstanceAlertConfigRoute": {
"properties": {
- "consumerTimeout": {
- "type": "integer",
- "description": "The timeout in milliseconds for the consumer.\n"
- },
- "enableMonitoring": {
+ "continue": {
"type": "boolean",
- "description": "Enable monitoring.\n"
- },
- "graphite": {
- "type": "string",
- "description": "Graphite server URL (host and port). If set, monitoring with Graphite will be enabled.\n"
- },
- "maxDiskThreshold": {
- "type": "integer",
- "description": "The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped.\n"
- },
- "metricsFrequency": {
- "type": "integer",
- "description": "The frequency in seconds at which metrics are emitted.\n"
- },
- "metricsPrefix": {
- "type": "string",
- "description": "The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key\n"
- },
- "monitoringInstanceId": {
- "type": "string",
- "description": "The ID of the STACKIT monitoring instance.\n"
+ "description": "Whether an alert should continue matching subsequent sibling nodes.\n"
},
- "plugins": {
+ "groupBies": {
"type": "array",
"items": {
"type": "string"
},
- "description": "List of plugins to install. Must be a supported plugin name.\n"
+ "description": "The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping.\n"
},
- "roles": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "List of roles to assign to the instance.\n"
+ "groupInterval": {
+ "type": "string",
+ "description": "How long to wait before sending a notification about new alerts that are added to a group of alerts for which an initial notification has already been sent. (Usually ~5m or more.)\n"
},
- "sgwAcl": {
+ "groupWait": {
"type": "string",
- "description": "Comma separated list of IP networks in CIDR notation which are allowed to access this instance.\n"
+ "description": "How long to initially wait to send a notification for a group of alerts. Allows to wait for an inhibiting alert to arrive or collect more initial alerts for the same group. (Usually ~0s to few minutes.)\n"
},
- "syslogs": {
+ "receiver": {
+ "type": "string",
+ "description": "The name of the receiver to route the alerts to.\n"
+ },
+ "repeatInterval": {
+ "type": "string",
+ "description": "How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more).\n"
+ },
+ "routes": {
"type": "array",
"items": {
- "type": "string"
+ "$ref": "#/types/stackit:index/ObservabilityInstanceAlertConfigRouteRoute:ObservabilityInstanceAlertConfigRouteRoute"
},
- "description": "List of syslog servers to send logs to.\n"
+ "description": "List of child routes.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "receiver"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "continue",
+ "groupInterval",
+ "groupWait",
+ "receiver",
+ "repeatInterval"
+ ]
+ }
+ }
+ },
+ "stackit:index/ObservabilityInstanceAlertConfigRouteRoute:ObservabilityInstanceAlertConfigRouteRoute": {
+ "properties": {
+ "continue": {
+ "type": "boolean",
+ "description": "Whether an alert should continue matching subsequent sibling nodes.\n"
},
- "tlsCiphers": {
+ "groupBies": {
"type": "array",
"items": {
"type": "string"
},
- "description": "List of TLS ciphers to use.\n"
+ "description": "The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping.\n"
},
- "tlsProtocols": {
+ "groupInterval": {
+ "type": "string",
+ "description": "How long to wait before sending a notification about new alerts that are added to a group of alerts for which an initial notification has already been sent. (Usually ~5m or more.)\n"
+ },
+ "groupWait": {
+ "type": "string",
+ "description": "How long to initially wait to send a notification for a group of alerts. Allows to wait for an inhibiting alert to arrive or collect more initial alerts for the same group. (Usually ~0s to few minutes.)\n"
+ },
+ "match": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A set of equality matchers an alert has to fulfill to match the node. This field is deprecated and will be removed after 10th March 2026, use \u003cspan pulumi-lang-nodejs=\"`matchers`\" pulumi-lang-dotnet=\"`Matchers`\" pulumi-lang-go=\"`matchers`\" pulumi-lang-python=\"`matchers`\" pulumi-lang-yaml=\"`matchers`\" pulumi-lang-java=\"`matchers`\"\u003e`matchers`\u003c/span\u003e in the \u003cspan pulumi-lang-nodejs=\"`routes`\" pulumi-lang-dotnet=\"`Routes`\" pulumi-lang-go=\"`routes`\" pulumi-lang-python=\"`routes`\" pulumi-lang-yaml=\"`routes`\" pulumi-lang-java=\"`routes`\"\u003e`routes`\u003c/span\u003e instead\n",
+ "deprecationMessage": "Use \u003cspan pulumi-lang-nodejs=\"`matchers`\" pulumi-lang-dotnet=\"`Matchers`\" pulumi-lang-go=\"`matchers`\" pulumi-lang-python=\"`matchers`\" pulumi-lang-yaml=\"`matchers`\" pulumi-lang-java=\"`matchers`\"\u003e`matchers`\u003c/span\u003e in the \u003cspan pulumi-lang-nodejs=\"`routes`\" pulumi-lang-dotnet=\"`Routes`\" pulumi-lang-go=\"`routes`\" pulumi-lang-python=\"`routes`\" pulumi-lang-yaml=\"`routes`\" pulumi-lang-java=\"`routes`\"\u003e`routes`\u003c/span\u003e instead."
+ },
+ "matchRegex": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A set of regex-matchers an alert has to fulfill to match the node. This field is deprecated and will be removed after 10th March 2026, use \u003cspan pulumi-lang-nodejs=\"`matchers`\" pulumi-lang-dotnet=\"`Matchers`\" pulumi-lang-go=\"`matchers`\" pulumi-lang-python=\"`matchers`\" pulumi-lang-yaml=\"`matchers`\" pulumi-lang-java=\"`matchers`\"\u003e`matchers`\u003c/span\u003e in the \u003cspan pulumi-lang-nodejs=\"`routes`\" pulumi-lang-dotnet=\"`Routes`\" pulumi-lang-go=\"`routes`\" pulumi-lang-python=\"`routes`\" pulumi-lang-yaml=\"`routes`\" pulumi-lang-java=\"`routes`\"\u003e`routes`\u003c/span\u003e instead\n",
+ "deprecationMessage": "Use \u003cspan pulumi-lang-nodejs=\"`matchers`\" pulumi-lang-dotnet=\"`Matchers`\" pulumi-lang-go=\"`matchers`\" pulumi-lang-python=\"`matchers`\" pulumi-lang-yaml=\"`matchers`\" pulumi-lang-java=\"`matchers`\"\u003e`matchers`\u003c/span\u003e in the \u003cspan pulumi-lang-nodejs=\"`routes`\" pulumi-lang-dotnet=\"`Routes`\" pulumi-lang-go=\"`routes`\" pulumi-lang-python=\"`routes`\" pulumi-lang-yaml=\"`routes`\" pulumi-lang-java=\"`routes`\"\u003e`routes`\u003c/span\u003e instead."
+ },
+ "matchers": {
"type": "array",
"items": {
"type": "string"
},
- "description": "TLS protocol versions to use.\n"
+ "description": "A list of matchers that an alert has to fulfill to match the node. A matcher is a string with a syntax inspired by PromQL and OpenMetrics.\n"
+ },
+ "receiver": {
+ "type": "string",
+ "description": "The name of the receiver to route the alerts to.\n"
+ },
+ "repeatInterval": {
+ "type": "string",
+ "description": "How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more).\n"
}
},
"type": "object",
+ "required": [
+ "receiver"
+ ],
"language": {
"nodejs": {
"requiredOutputs": [
- "consumerTimeout",
- "enableMonitoring",
- "graphite",
- "maxDiskThreshold",
- "metricsFrequency",
- "metricsPrefix",
- "monitoringInstanceId",
- "plugins",
- "roles",
- "sgwAcl",
- "syslogs",
- "tlsCiphers",
- "tlsProtocols"
+ "groupInterval",
+ "groupWait",
+ "receiver",
+ "repeatInterval"
]
}
}
},
- "stackit:index/RedisInstanceParameters:RedisInstanceParameters": {
+ "stackit:index/ObservabilityLogalertgroupRule:ObservabilityLogalertgroupRule": {
"properties": {
- "downAfterMilliseconds": {
- "type": "integer",
- "description": "The number of milliseconds after which the instance is considered down.\n"
+ "alert": {
+ "type": "string",
+ "description": "The name of the alert rule. Is the identifier and must be unique in the group.\n"
+ },
+ "annotations": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A map of key:value. Annotations to add or overwrite for each alert\n"
+ },
+ "expression": {
+ "type": "string",
+ "description": "The LogQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts.\n"
+ },
+ "for": {
+ "type": "string",
+ "description": "Alerts are considered firing once they have been returned for this long. Alerts which have not yet fired for long enough are considered pending. Default is 0s\n"
+ },
+ "labels": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A map of key:value. Labels to add or overwrite for each alert\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "alert",
+ "expression"
+ ]
+ },
+ "stackit:index/ObservabilityScrapeconfigBasicAuth:ObservabilityScrapeconfigBasicAuth": {
+ "properties": {
+ "password": {
+ "type": "string",
+ "description": "Specifies basic auth password.\n",
+ "secret": true
+ },
+ "username": {
+ "type": "string",
+ "description": "Specifies basic auth username.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "password",
+ "username"
+ ]
+ },
+ "stackit:index/ObservabilityScrapeconfigSaml2:ObservabilityScrapeconfigSaml2": {
+ "properties": {
+ "enableUrlParameters": {
+ "type": "boolean",
+ "description": "Specifies if URL parameters are enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "enableUrlParameters"
+ ]
+ }
+ }
+ },
+ "stackit:index/ObservabilityScrapeconfigTarget:ObservabilityScrapeconfigTarget": {
+ "properties": {
+ "labels": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Specifies labels.\n"
},
+ "urls": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Specifies target URLs.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "urls"
+ ]
+ },
+ "stackit:index/OpensearchInstanceParameters:OpensearchInstanceParameters": {
+ "properties": {
"enableMonitoring": {
"type": "boolean",
"description": "Enable monitoring.\n"
},
- "failoverTimeout": {
- "type": "integer",
- "description": "The failover timeout in milliseconds.\n"
- },
"graphite": {
"type": "string",
- "description": "Graphite server URL (host and port). If set, monitoring with Graphite will be enabled.\n"
+ "description": "If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port).\n"
},
- "lazyfreeLazyEviction": {
+ "javaGarbageCollector": {
"type": "string",
- "description": "The lazy eviction enablement (yes or no).\n"
+ "description": "The garbage collector to use for OpenSearch.\n"
},
- "lazyfreeLazyExpire": {
- "type": "string",
- "description": "The lazy expire enablement (yes or no).\n"
+ "javaHeapspace": {
+ "type": "integer",
+ "description": "The amount of memory (in MB) allocated as heap by the JVM for OpenSearch.\n"
},
- "luaTimeLimit": {
+ "javaMaxmetaspace": {
"type": "integer",
- "description": "The Lua time limit.\n"
+ "description": "The amount of memory (in MB) used by the JVM to store metadata for OpenSearch.\n"
},
"maxDiskThreshold": {
"type": "integer",
"description": "The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped.\n"
},
- "maxclients": {
- "type": "integer",
- "description": "The maximum number of clients.\n"
- },
- "maxmemoryPolicy": {
- "type": "string",
- "description": "The policy to handle the maximum memory (volatile-lru, noeviction, etc).\n"
- },
- "maxmemorySamples": {
- "type": "integer",
- "description": "The maximum memory samples.\n"
- },
"metricsFrequency": {
"type": "integer",
- "description": "The frequency in seconds at which metrics are emitted.\n"
+ "description": "The frequency in seconds at which metrics are emitted (in seconds).\n"
},
"metricsPrefix": {
"type": "string",
- "description": "The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key\n"
- },
- "minReplicasMaxLag": {
- "type": "integer",
- "description": "The minimum replicas maximum lag.\n"
+ "description": "The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key.\n"
},
"monitoringInstanceId": {
"type": "string",
"description": "The ID of the STACKIT monitoring instance.\n"
},
- "notifyKeyspaceEvents": {
- "type": "string",
- "description": "The notify keyspace events.\n"
+ "plugins": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of plugins to install. Must be a supported plugin name. The plugins `repository-s3` and `repository-azure` are enabled by default and cannot be disabled.\n"
},
"sgwAcl": {
"type": "string",
"description": "Comma separated list of IP networks in CIDR notation which are allowed to access this instance.\n"
},
- "snapshot": {
- "type": "string",
- "description": "The snapshot configuration.\n"
- },
"syslogs": {
"type": "array",
"items": {
@@ -2001,692 +2255,1568 @@
},
"description": "List of TLS ciphers to use.\n"
},
- "tlsCiphersuites": {
- "type": "string",
- "description": "TLS cipher suites to use.\n"
- },
"tlsProtocols": {
- "type": "string",
- "description": "TLS protocol to use.\n"
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The TLS protocol to use.\n"
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
- "downAfterMilliseconds",
"enableMonitoring",
- "failoverTimeout",
"graphite",
- "lazyfreeLazyEviction",
- "lazyfreeLazyExpire",
- "luaTimeLimit",
+ "javaGarbageCollector",
+ "javaHeapspace",
+ "javaMaxmetaspace",
"maxDiskThreshold",
- "maxclients",
- "maxmemoryPolicy",
- "maxmemorySamples",
"metricsFrequency",
"metricsPrefix",
- "minReplicasMaxLag",
"monitoringInstanceId",
- "notifyKeyspaceEvents",
+ "plugins",
+ "sgwAcl",
+ "syslogs",
+ "tlsCiphers",
+ "tlsProtocols"
+ ]
+ }
+ }
+ },
+ "stackit:index/PostgresflexInstanceFlavor:PostgresflexInstanceFlavor": {
+ "properties": {
+ "cpu": {
+ "type": "integer"
+ },
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "ram": {
+ "type": "integer"
+ }
+ },
+ "type": "object",
+ "required": [
+ "cpu",
+ "ram"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "cpu",
+ "description",
+ "id",
+ "ram"
+ ]
+ }
+ }
+ },
+ "stackit:index/PostgresflexInstanceStorage:PostgresflexInstanceStorage": {
+ "properties": {
+ "class": {
+ "type": "string"
+ },
+ "size": {
+ "type": "integer"
+ }
+ },
+ "type": "object",
+ "required": [
+ "class",
+ "size"
+ ]
+ },
+ "stackit:index/RabbitmqInstanceParameters:RabbitmqInstanceParameters": {
+ "properties": {
+ "consumerTimeout": {
+ "type": "integer",
+ "description": "The timeout in milliseconds for the consumer.\n"
+ },
+ "enableMonitoring": {
+ "type": "boolean",
+ "description": "Enable monitoring.\n"
+ },
+ "graphite": {
+ "type": "string",
+ "description": "Graphite server URL (host and port). If set, monitoring with Graphite will be enabled.\n"
+ },
+ "maxDiskThreshold": {
+ "type": "integer",
+ "description": "The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped.\n"
+ },
+ "metricsFrequency": {
+ "type": "integer",
+ "description": "The frequency in seconds at which metrics are emitted.\n"
+ },
+ "metricsPrefix": {
+ "type": "string",
+ "description": "The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key\n"
+ },
+ "monitoringInstanceId": {
+ "type": "string",
+ "description": "The ID of the STACKIT monitoring instance.\n"
+ },
+ "plugins": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of plugins to install. Must be a supported plugin name.\n"
+ },
+ "roles": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of roles to assign to the instance.\n"
+ },
+ "sgwAcl": {
+ "type": "string",
+ "description": "Comma separated list of IP networks in CIDR notation which are allowed to access this instance.\n"
+ },
+ "syslogs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of syslog servers to send logs to.\n"
+ },
+ "tlsCiphers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of TLS ciphers to use.\n"
+ },
+ "tlsProtocols": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "TLS protocol versions to use.\n"
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "consumerTimeout",
+ "enableMonitoring",
+ "graphite",
+ "maxDiskThreshold",
+ "metricsFrequency",
+ "metricsPrefix",
+ "monitoringInstanceId",
+ "plugins",
+ "roles",
"sgwAcl",
- "snapshot",
"syslogs",
"tlsCiphers",
- "tlsCiphersuites",
"tlsProtocols"
]
}
}
},
- "stackit:index/RoutingTableRouteDestination:RoutingTableRouteDestination": {
+ "stackit:index/RedisInstanceParameters:RedisInstanceParameters": {
+ "properties": {
+ "downAfterMilliseconds": {
+ "type": "integer",
+ "description": "The number of milliseconds after which the instance is considered down.\n"
+ },
+ "enableMonitoring": {
+ "type": "boolean",
+ "description": "Enable monitoring.\n"
+ },
+ "failoverTimeout": {
+ "type": "integer",
+ "description": "The failover timeout in milliseconds.\n"
+ },
+ "graphite": {
+ "type": "string",
+ "description": "Graphite server URL (host and port). If set, monitoring with Graphite will be enabled.\n"
+ },
+ "lazyfreeLazyEviction": {
+ "type": "string",
+ "description": "The lazy eviction enablement (yes or no).\n"
+ },
+ "lazyfreeLazyExpire": {
+ "type": "string",
+ "description": "The lazy expire enablement (yes or no).\n"
+ },
+ "luaTimeLimit": {
+ "type": "integer",
+ "description": "The Lua time limit.\n"
+ },
+ "maxDiskThreshold": {
+ "type": "integer",
+ "description": "The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped.\n"
+ },
+ "maxclients": {
+ "type": "integer",
+ "description": "The maximum number of clients.\n"
+ },
+ "maxmemoryPolicy": {
+ "type": "string",
+ "description": "The policy to handle the maximum memory (volatile-lru, noeviction, etc).\n"
+ },
+ "maxmemorySamples": {
+ "type": "integer",
+ "description": "The maximum memory samples.\n"
+ },
+ "metricsFrequency": {
+ "type": "integer",
+ "description": "The frequency in seconds at which metrics are emitted.\n"
+ },
+ "metricsPrefix": {
+ "type": "string",
+ "description": "The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key\n"
+ },
+ "minReplicasMaxLag": {
+ "type": "integer",
+ "description": "The minimum replicas maximum lag.\n"
+ },
+ "monitoringInstanceId": {
+ "type": "string",
+ "description": "The ID of the STACKIT monitoring instance.\n"
+ },
+ "notifyKeyspaceEvents": {
+ "type": "string",
+ "description": "The notify keyspace events.\n"
+ },
+ "sgwAcl": {
+ "type": "string",
+ "description": "Comma separated list of IP networks in CIDR notation which are allowed to access this instance.\n"
+ },
+ "snapshot": {
+ "type": "string",
+ "description": "The snapshot configuration.\n"
+ },
+ "syslogs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of syslog servers to send logs to.\n"
+ },
+ "tlsCiphers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of TLS ciphers to use.\n"
+ },
+ "tlsCiphersuites": {
+ "type": "string",
+ "description": "TLS cipher suites to use.\n"
+ },
+ "tlsProtocols": {
+ "type": "string",
+ "description": "TLS protocol to use.\n"
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "downAfterMilliseconds",
+ "enableMonitoring",
+ "failoverTimeout",
+ "graphite",
+ "lazyfreeLazyEviction",
+ "lazyfreeLazyExpire",
+ "luaTimeLimit",
+ "maxDiskThreshold",
+ "maxclients",
+ "maxmemoryPolicy",
+ "maxmemorySamples",
+ "metricsFrequency",
+ "metricsPrefix",
+ "minReplicasMaxLag",
+ "monitoringInstanceId",
+ "notifyKeyspaceEvents",
+ "sgwAcl",
+ "snapshot",
+ "syslogs",
+ "tlsCiphers",
+ "tlsCiphersuites",
+ "tlsProtocols"
+ ]
+ }
+ }
+ },
+ "stackit:index/RoutingTableRouteDestination:RoutingTableRouteDestination": {
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "CIDRV type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`cidrv4`\" pulumi-lang-dotnet=\"`Cidrv4`\" pulumi-lang-go=\"`cidrv4`\" pulumi-lang-python=\"`cidrv4`\" pulumi-lang-yaml=\"`cidrv4`\" pulumi-lang-java=\"`cidrv4`\"\u003e`cidrv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cidrv6`\" pulumi-lang-dotnet=\"`Cidrv6`\" pulumi-lang-go=\"`cidrv6`\" pulumi-lang-python=\"`cidrv6`\" pulumi-lang-yaml=\"`cidrv6`\" pulumi-lang-java=\"`cidrv6`\"\u003e`cidrv6`\u003c/span\u003e. Only \u003cspan pulumi-lang-nodejs=\"`cidrv4`\" pulumi-lang-dotnet=\"`Cidrv4`\" pulumi-lang-go=\"`cidrv4`\" pulumi-lang-python=\"`cidrv4`\" pulumi-lang-yaml=\"`cidrv4`\" pulumi-lang-java=\"`cidrv4`\"\u003e`cidrv4`\u003c/span\u003e is supported during experimental stage.\n"
+ },
+ "value": {
+ "type": "string",
+ "description": "An CIDR string.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "type",
+ "value"
+ ]
+ },
+ "stackit:index/RoutingTableRouteNextHop:RoutingTableRouteNextHop": {
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Type of the next hop. Possible values are: \u003cspan pulumi-lang-nodejs=\"`blackhole`\" pulumi-lang-dotnet=\"`Blackhole`\" pulumi-lang-go=\"`blackhole`\" pulumi-lang-python=\"`blackhole`\" pulumi-lang-yaml=\"`blackhole`\" pulumi-lang-java=\"`blackhole`\"\u003e`blackhole`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e.\n"
+ },
+ "value": {
+ "type": "string",
+ "description": "Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "type"
+ ]
+ },
+ "stackit:index/SecurityGroupRuleIcmpParameters:SecurityGroupRuleIcmpParameters": {
+ "properties": {
+ "code": {
+ "type": "integer",
+ "description": "ICMP code. Can be set if the protocol is ICMP.\n"
+ },
+ "type": {
+ "type": "integer",
+ "description": "ICMP type. Can be set if the protocol is ICMP.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "code",
+ "type"
+ ]
+ },
+ "stackit:index/SecurityGroupRulePortRange:SecurityGroupRulePortRange": {
+ "properties": {
+ "max": {
+ "type": "integer",
+ "description": "The maximum port number. Should be greater or equal to the minimum.\n"
+ },
+ "min": {
+ "type": "integer",
+ "description": "The minimum port number. Should be less or equal to the maximum.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "max",
+ "min"
+ ]
+ },
+ "stackit:index/SecurityGroupRuleProtocol:SecurityGroupRuleProtocol": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The protocol name which the rule should match. Either \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`number`\" pulumi-lang-dotnet=\"`Number`\" pulumi-lang-go=\"`number`\" pulumi-lang-python=\"`number`\" pulumi-lang-yaml=\"`number`\" pulumi-lang-java=\"`number`\"\u003e`number`\u003c/span\u003e must be provided. Possible values are: \u003cspan pulumi-lang-nodejs=\"`ah`\" pulumi-lang-dotnet=\"`Ah`\" pulumi-lang-go=\"`ah`\" pulumi-lang-python=\"`ah`\" pulumi-lang-yaml=\"`ah`\" pulumi-lang-java=\"`ah`\"\u003e`ah`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dccp`\" pulumi-lang-dotnet=\"`Dccp`\" pulumi-lang-go=\"`dccp`\" pulumi-lang-python=\"`dccp`\" pulumi-lang-yaml=\"`dccp`\" pulumi-lang-java=\"`dccp`\"\u003e`dccp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`egp`\" pulumi-lang-dotnet=\"`Egp`\" pulumi-lang-go=\"`egp`\" pulumi-lang-python=\"`egp`\" pulumi-lang-yaml=\"`egp`\" pulumi-lang-java=\"`egp`\"\u003e`egp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`esp`\" pulumi-lang-dotnet=\"`Esp`\" pulumi-lang-go=\"`esp`\" pulumi-lang-python=\"`esp`\" pulumi-lang-yaml=\"`esp`\" pulumi-lang-java=\"`esp`\"\u003e`esp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gre`\" pulumi-lang-dotnet=\"`Gre`\" pulumi-lang-go=\"`gre`\" pulumi-lang-python=\"`gre`\" pulumi-lang-yaml=\"`gre`\" pulumi-lang-java=\"`gre`\"\u003e`gre`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`icmp`\" pulumi-lang-dotnet=\"`Icmp`\" pulumi-lang-go=\"`icmp`\" pulumi-lang-python=\"`icmp`\" pulumi-lang-yaml=\"`icmp`\" pulumi-lang-java=\"`icmp`\"\u003e`icmp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`igmp`\" pulumi-lang-dotnet=\"`Igmp`\" pulumi-lang-go=\"`igmp`\" pulumi-lang-python=\"`igmp`\" pulumi-lang-yaml=\"`igmp`\" pulumi-lang-java=\"`igmp`\"\u003e`igmp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipip`\" pulumi-lang-dotnet=\"`Ipip`\" pulumi-lang-go=\"`ipip`\" pulumi-lang-python=\"`ipip`\" pulumi-lang-yaml=\"`ipip`\" pulumi-lang-java=\"`ipip`\"\u003e`ipip`\u003c/span\u003e, `ipv6-encap`, `ipv6-frag`, `ipv6-icmp`, `ipv6-nonxt`, `ipv6-opts`, `ipv6-route`, \u003cspan pulumi-lang-nodejs=\"`ospf`\" pulumi-lang-dotnet=\"`Ospf`\" pulumi-lang-go=\"`ospf`\" pulumi-lang-python=\"`ospf`\" pulumi-lang-yaml=\"`ospf`\" pulumi-lang-java=\"`ospf`\"\u003e`ospf`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pgm`\" pulumi-lang-dotnet=\"`Pgm`\" pulumi-lang-go=\"`pgm`\" pulumi-lang-python=\"`pgm`\" pulumi-lang-yaml=\"`pgm`\" pulumi-lang-java=\"`pgm`\"\u003e`pgm`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsvp`\" pulumi-lang-dotnet=\"`Rsvp`\" pulumi-lang-go=\"`rsvp`\" pulumi-lang-python=\"`rsvp`\" pulumi-lang-yaml=\"`rsvp`\" pulumi-lang-java=\"`rsvp`\"\u003e`rsvp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sctp`\" pulumi-lang-dotnet=\"`Sctp`\" pulumi-lang-go=\"`sctp`\" pulumi-lang-python=\"`sctp`\" pulumi-lang-yaml=\"`sctp`\" pulumi-lang-java=\"`sctp`\"\u003e`sctp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`udplite`\" pulumi-lang-dotnet=\"`Udplite`\" pulumi-lang-go=\"`udplite`\" pulumi-lang-python=\"`udplite`\" pulumi-lang-yaml=\"`udplite`\" pulumi-lang-java=\"`udplite`\"\u003e`udplite`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vrrp`\" pulumi-lang-dotnet=\"`Vrrp`\" pulumi-lang-go=\"`vrrp`\" pulumi-lang-python=\"`vrrp`\" pulumi-lang-yaml=\"`vrrp`\" pulumi-lang-java=\"`vrrp`\"\u003e`vrrp`\u003c/span\u003e.\n"
+ },
+ "number": {
+ "type": "integer",
+ "description": "The protocol number which the rule should match. Either \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`number`\" pulumi-lang-dotnet=\"`Number`\" pulumi-lang-go=\"`number`\" pulumi-lang-python=\"`number`\" pulumi-lang-yaml=\"`number`\" pulumi-lang-java=\"`number`\"\u003e`number`\u003c/span\u003e must be provided.\n"
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "name",
+ "number"
+ ]
+ }
+ }
+ },
+ "stackit:index/ServerBackupScheduleBackupProperties:ServerBackupScheduleBackupProperties": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "retentionPeriod": {
+ "type": "integer"
+ },
+ "volumeIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "name",
+ "retentionPeriod"
+ ]
+ },
+ "stackit:index/ServerBootVolume:ServerBootVolume": {
+ "properties": {
+ "deleteOnTermination": {
+ "type": "boolean",
+ "description": "Delete the volume during the termination of the server. Only allowed when \u003cspan pulumi-lang-nodejs=\"`sourceType`\" pulumi-lang-dotnet=\"`SourceType`\" pulumi-lang-go=\"`sourceType`\" pulumi-lang-python=\"`source_type`\" pulumi-lang-yaml=\"`sourceType`\" pulumi-lang-java=\"`sourceType`\"\u003e`source_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e.\n"
+ },
+ "id": {
+ "type": "string",
+ "description": "The ID of the boot volume\n"
+ },
+ "performanceClass": {
+ "type": "string",
+ "description": "The performance class of the server.\n"
+ },
+ "size": {
+ "type": "integer",
+ "description": "The size of the boot volume in GB. Must be provided when \u003cspan pulumi-lang-nodejs=\"`sourceType`\" pulumi-lang-dotnet=\"`SourceType`\" pulumi-lang-go=\"`sourceType`\" pulumi-lang-python=\"`source_type`\" pulumi-lang-yaml=\"`sourceType`\" pulumi-lang-java=\"`sourceType`\"\u003e`source_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e.\n"
+ },
+ "sourceId": {
+ "type": "string",
+ "description": "The ID of the source, either image ID or volume ID\n"
+ },
+ "sourceType": {
+ "type": "string",
+ "description": "The type of the source. Possible values are: \u003cspan pulumi-lang-nodejs=\"`volume`\" pulumi-lang-dotnet=\"`Volume`\" pulumi-lang-go=\"`volume`\" pulumi-lang-python=\"`volume`\" pulumi-lang-yaml=\"`volume`\" pulumi-lang-java=\"`volume`\"\u003e`volume`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "sourceId",
+ "sourceType"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "deleteOnTermination",
+ "id",
+ "sourceId",
+ "sourceType"
+ ]
+ }
+ }
+ },
+ "stackit:index/SfsExportPolicyRule:SfsExportPolicyRule": {
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of the Rule\n"
+ },
+ "ipAcls": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "IP access control list; IPs must have a subnet mask (e.g. \"172.16.0.0/24\" for a range of IPs, or \"172.16.0.250/32\" for a specific IP).\n"
+ },
+ "order": {
+ "type": "integer",
+ "description": "Order of the rule within a Share Export Policy. The order is used so that when a client IP matches multiple rules, the first rule is applied\n"
+ },
+ "readOnly": {
+ "type": "boolean",
+ "description": "Flag to indicate if client IPs matching this rule can only mount the share in read only mode\n"
+ },
+ "setUuid": {
+ "type": "boolean",
+ "description": "Flag to honor set UUID\n"
+ },
+ "superUser": {
+ "type": "boolean",
+ "description": "Flag to indicate if client IPs matching this rule have root access on the Share\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "ipAcls",
+ "order"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "ipAcls",
+ "order",
+ "readOnly",
+ "setUuid",
+ "superUser"
+ ]
+ }
+ }
+ },
+ "stackit:index/SkeClusterExtensions:SkeClusterExtensions": {
+ "properties": {
+ "acl": {
+ "$ref": "#/types/stackit:index/SkeClusterExtensionsAcl:SkeClusterExtensionsAcl",
+ "description": "Cluster access control configuration.\n"
+ },
+ "argus": {
+ "$ref": "#/types/stackit:index/SkeClusterExtensionsArgus:SkeClusterExtensionsArgus",
+ "description": "A single argus block as defined below. This field is deprecated and will be removed 06 January 2026.\n",
+ "deprecationMessage": "Use observability instead."
+ },
+ "dns": {
+ "$ref": "#/types/stackit:index/SkeClusterExtensionsDns:SkeClusterExtensionsDns",
+ "description": "DNS extension configuration\n"
+ },
+ "observability": {
+ "$ref": "#/types/stackit:index/SkeClusterExtensionsObservability:SkeClusterExtensionsObservability",
+ "description": "A single observability block as defined below.\n"
+ }
+ },
+ "type": "object"
+ },
+ "stackit:index/SkeClusterExtensionsAcl:SkeClusterExtensionsAcl": {
+ "properties": {
+ "allowedCidrs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Specify a list of CIDRs to whitelist.\n"
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "Is ACL enabled?\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "allowedCidrs",
+ "enabled"
+ ]
+ },
+ "stackit:index/SkeClusterExtensionsArgus:SkeClusterExtensionsArgus": {
+ "properties": {
+ "argusInstanceId": {
+ "type": "string",
+ "description": "Argus instance ID to choose which Argus instance is used. Required when enabled is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "Flag to enable/disable Argus extensions.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "enabled"
+ ]
+ },
+ "stackit:index/SkeClusterExtensionsDns:SkeClusterExtensionsDns": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Flag to enable/disable DNS extensions\n"
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Specify a list of domain filters for externalDNS (e.g., `foo.runs.onstackit.cloud`)\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "enabled"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "enabled",
+ "zones"
+ ]
+ }
+ }
+ },
+ "stackit:index/SkeClusterExtensionsObservability:SkeClusterExtensionsObservability": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Flag to enable/disable Observability extensions.\n"
+ },
+ "instanceId": {
+ "type": "string",
+ "description": "Observability instance ID to choose which Observability instance is used. Required when enabled is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "enabled"
+ ]
+ },
+ "stackit:index/SkeClusterHibernation:SkeClusterHibernation": {
+ "properties": {
+ "end": {
+ "type": "string",
+ "description": "End time of hibernation in crontab syntax. E.g. `0 8 * * *` for waking up the cluster at 8am.\n"
+ },
+ "start": {
+ "type": "string",
+ "description": "Start time of cluster hibernation in crontab syntax. E.g. `0 18 * * *` for starting everyday at 6pm.\n"
+ },
+ "timezone": {
+ "type": "string",
+ "description": "Timezone name corresponding to a file in the IANA Time Zone database. i.e. `Europe/Berlin`.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "end",
+ "start"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "end",
+ "start",
+ "timezone"
+ ]
+ }
+ }
+ },
+ "stackit:index/SkeClusterMaintenance:SkeClusterMaintenance": {
+ "properties": {
+ "enableKubernetesVersionUpdates": {
+ "type": "boolean",
+ "description": "Flag to enable/disable auto-updates of the Kubernetes version. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. SKE automatically updates the cluster Kubernetes version if you have set `maintenance.enable_kubernetes_version_updates` to true or if there is a mandatory update, as described in [General information for Kubernetes \u0026 OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/).\n"
+ },
+ "enableMachineImageVersionUpdates": {
+ "type": "boolean",
+ "description": "Flag to enable/disable auto-updates of the OS image version. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. SKE automatically updates the cluster Kubernetes version if you have set `maintenance.enable_kubernetes_version_updates` to true or if there is a mandatory update, as described in [General information for Kubernetes \u0026 OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/).\n"
+ },
+ "end": {
+ "type": "string",
+ "description": "Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`.\n"
+ },
+ "start": {
+ "type": "string",
+ "description": "Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "end",
+ "start"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "enableKubernetesVersionUpdates",
+ "enableMachineImageVersionUpdates",
+ "end",
+ "start"
+ ]
+ }
+ }
+ },
+ "stackit:index/SkeClusterNetwork:SkeClusterNetwork": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "ID of the STACKIT Network Area (SNA) network into which the cluster will be deployed.\n"
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "id"
+ ]
+ }
+ }
+ },
+ "stackit:index/SkeClusterNodePool:SkeClusterNodePool": {
+ "properties": {
+ "allowSystemComponents": {
+ "type": "boolean",
+ "description": "Allow system components to run on this node pool.\n"
+ },
+ "availabilityZones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Specify a list of availability zones. E.g. `eu01-m`\n"
+ },
+ "cri": {
+ "type": "string",
+ "description": "Specifies the container runtime. Defaults to \u003cspan pulumi-lang-nodejs=\"`containerd`\" pulumi-lang-dotnet=\"`Containerd`\" pulumi-lang-go=\"`containerd`\" pulumi-lang-python=\"`containerd`\" pulumi-lang-yaml=\"`containerd`\" pulumi-lang-java=\"`containerd`\"\u003e`containerd`\u003c/span\u003e\n"
+ },
+ "labels": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Labels to add to each node.\n"
+ },
+ "machineType": {
+ "type": "string",
+ "description": "The machine type.\n"
+ },
+ "maxSurge": {
+ "type": "integer",
+ "description": "Maximum number of additional VMs that are created during an update. If set (larger than 0), then it must be at least the amount of zones configured for the nodepool. The \u003cspan pulumi-lang-nodejs=\"`maxSurge`\" pulumi-lang-dotnet=\"`MaxSurge`\" pulumi-lang-go=\"`maxSurge`\" pulumi-lang-python=\"`max_surge`\" pulumi-lang-yaml=\"`maxSurge`\" pulumi-lang-java=\"`maxSurge`\"\u003e`max_surge`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`maxUnavailable`\" pulumi-lang-dotnet=\"`MaxUnavailable`\" pulumi-lang-go=\"`maxUnavailable`\" pulumi-lang-python=\"`max_unavailable`\" pulumi-lang-yaml=\"`maxUnavailable`\" pulumi-lang-java=\"`maxUnavailable`\"\u003e`max_unavailable`\u003c/span\u003e fields cannot both be unset at the same time.\n"
+ },
+ "maxUnavailable": {
+ "type": "integer",
+ "description": "Maximum number of VMs that that can be unavailable during an update. If set (larger than 0), then it must be at least the amount of zones configured for the nodepool. The \u003cspan pulumi-lang-nodejs=\"`maxSurge`\" pulumi-lang-dotnet=\"`MaxSurge`\" pulumi-lang-go=\"`maxSurge`\" pulumi-lang-python=\"`max_surge`\" pulumi-lang-yaml=\"`maxSurge`\" pulumi-lang-java=\"`maxSurge`\"\u003e`max_surge`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`maxUnavailable`\" pulumi-lang-dotnet=\"`MaxUnavailable`\" pulumi-lang-go=\"`maxUnavailable`\" pulumi-lang-python=\"`max_unavailable`\" pulumi-lang-yaml=\"`maxUnavailable`\" pulumi-lang-java=\"`maxUnavailable`\"\u003e`max_unavailable`\u003c/span\u003e fields cannot both be unset at the same time.\n"
+ },
+ "maximum": {
+ "type": "integer",
+ "description": "Maximum number of nodes in the pool.\n"
+ },
+ "minimum": {
+ "type": "integer",
+ "description": "Minimum number of nodes in the pool.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Specifies the name of the node pool.\n"
+ },
+ "osName": {
+ "type": "string",
+ "description": "The name of the OS image. Defaults to \u003cspan pulumi-lang-nodejs=\"`flatcar`\" pulumi-lang-dotnet=\"`Flatcar`\" pulumi-lang-go=\"`flatcar`\" pulumi-lang-python=\"`flatcar`\" pulumi-lang-yaml=\"`flatcar`\" pulumi-lang-java=\"`flatcar`\"\u003e`flatcar`\u003c/span\u003e.\n"
+ },
+ "osVersion": {
+ "type": "string",
+ "description": "This field is deprecated, use \u003cspan pulumi-lang-nodejs=\"`osVersionMin`\" pulumi-lang-dotnet=\"`OsVersionMin`\" pulumi-lang-go=\"`osVersionMin`\" pulumi-lang-python=\"`os_version_min`\" pulumi-lang-yaml=\"`osVersionMin`\" pulumi-lang-java=\"`osVersionMin`\"\u003e`os_version_min`\u003c/span\u003e to configure the version and \u003cspan pulumi-lang-nodejs=\"`osVersionUsed`\" pulumi-lang-dotnet=\"`OsVersionUsed`\" pulumi-lang-go=\"`osVersionUsed`\" pulumi-lang-python=\"`os_version_used`\" pulumi-lang-yaml=\"`osVersionUsed`\" pulumi-lang-java=\"`osVersionUsed`\"\u003e`os_version_used`\u003c/span\u003e to get the currently used version instead.\n",
+ "deprecationMessage": "Use \u003cspan pulumi-lang-nodejs=\"`osVersionMin`\" pulumi-lang-dotnet=\"`OsVersionMin`\" pulumi-lang-go=\"`osVersionMin`\" pulumi-lang-python=\"`os_version_min`\" pulumi-lang-yaml=\"`osVersionMin`\" pulumi-lang-java=\"`osVersionMin`\"\u003e`os_version_min`\u003c/span\u003e to configure the version and \u003cspan pulumi-lang-nodejs=\"`osVersionUsed`\" pulumi-lang-dotnet=\"`OsVersionUsed`\" pulumi-lang-go=\"`osVersionUsed`\" pulumi-lang-python=\"`os_version_used`\" pulumi-lang-yaml=\"`osVersionUsed`\" pulumi-lang-java=\"`osVersionUsed`\"\u003e`os_version_used`\u003c/span\u003e to get the currently used version instead. Setting a specific OS image version will cause errors during minor OS upgrades due to forced updates."
+ },
+ "osVersionMin": {
+ "type": "string",
+ "description": "The minimum OS image version. This field will be used to set the minimum OS image version on creation/update of the cluster. If unset, the latest supported OS image version will be used. SKE automatically updates the cluster Kubernetes version if you have set `maintenance.enable_kubernetes_version_updates` to true or if there is a mandatory update, as described in [General information for Kubernetes \u0026 OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). To get the current OS image version being used for the node pool, use the read-only \u003cspan pulumi-lang-nodejs=\"`osVersionUsed`\" pulumi-lang-dotnet=\"`OsVersionUsed`\" pulumi-lang-go=\"`osVersionUsed`\" pulumi-lang-python=\"`os_version_used`\" pulumi-lang-yaml=\"`osVersionUsed`\" pulumi-lang-java=\"`osVersionUsed`\"\u003e`os_version_used`\u003c/span\u003e field.\n"
+ },
+ "osVersionUsed": {
+ "type": "string",
+ "description": "Full OS image version used. For example, if 3815.2 was set in \u003cspan pulumi-lang-nodejs=\"`osVersionMin`\" pulumi-lang-dotnet=\"`OsVersionMin`\" pulumi-lang-go=\"`osVersionMin`\" pulumi-lang-python=\"`os_version_min`\" pulumi-lang-yaml=\"`osVersionMin`\" pulumi-lang-java=\"`osVersionMin`\"\u003e`os_version_min`\u003c/span\u003e, this value may result to 3815.2.2. SKE automatically updates the cluster Kubernetes version if you have set `maintenance.enable_kubernetes_version_updates` to true or if there is a mandatory update, as described in [General information for Kubernetes \u0026 OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/).\n"
+ },
+ "taints": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/SkeClusterNodePoolTaint:SkeClusterNodePoolTaint"
+ },
+ "description": "Specifies a taint list as defined below.\n"
+ },
+ "volumeSize": {
+ "type": "integer",
+ "description": "The volume size in GB. Defaults to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e\n"
+ },
+ "volumeType": {
+ "type": "string",
+ "description": "Specifies the volume type. Defaults to \u003cspan pulumi-lang-nodejs=\"`storagePremiumPerf1`\" pulumi-lang-dotnet=\"`StoragePremiumPerf1`\" pulumi-lang-go=\"`storagePremiumPerf1`\" pulumi-lang-python=\"`storage_premium_perf1`\" pulumi-lang-yaml=\"`storagePremiumPerf1`\" pulumi-lang-java=\"`storagePremiumPerf1`\"\u003e`storage_premium_perf1`\u003c/span\u003e.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "availabilityZones",
+ "machineType",
+ "maximum",
+ "minimum",
+ "name"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "allowSystemComponents",
+ "availabilityZones",
+ "cri",
+ "labels",
+ "machineType",
+ "maxSurge",
+ "maxUnavailable",
+ "maximum",
+ "minimum",
+ "name",
+ "osName",
+ "osVersionUsed",
+ "volumeSize",
+ "volumeType"
+ ]
+ }
+ }
+ },
+ "stackit:index/SkeClusterNodePoolTaint:SkeClusterNodePoolTaint": {
"properties": {
- "type": {
+ "effect": {
"type": "string",
- "description": "CIDRV type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`cidrv4`\" pulumi-lang-dotnet=\"`Cidrv4`\" pulumi-lang-go=\"`cidrv4`\" pulumi-lang-python=\"`cidrv4`\" pulumi-lang-yaml=\"`cidrv4`\" pulumi-lang-java=\"`cidrv4`\"\u003e`cidrv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cidrv6`\" pulumi-lang-dotnet=\"`Cidrv6`\" pulumi-lang-go=\"`cidrv6`\" pulumi-lang-python=\"`cidrv6`\" pulumi-lang-yaml=\"`cidrv6`\" pulumi-lang-java=\"`cidrv6`\"\u003e`cidrv6`\u003c/span\u003e. Only \u003cspan pulumi-lang-nodejs=\"`cidrv4`\" pulumi-lang-dotnet=\"`Cidrv4`\" pulumi-lang-go=\"`cidrv4`\" pulumi-lang-python=\"`cidrv4`\" pulumi-lang-yaml=\"`cidrv4`\" pulumi-lang-java=\"`cidrv4`\"\u003e`cidrv4`\u003c/span\u003e is supported during experimental stage.\n"
+ "description": "The taint effect. E.g `PreferNoSchedule`.\n"
+ },
+ "key": {
+ "type": "string",
+ "description": "Taint key to be applied to a node.\n"
},
"value": {
"type": "string",
- "description": "An CIDR string.\n"
+ "description": "Taint value corresponding to the taint key.\n"
}
},
"type": "object",
"required": [
- "type",
- "value"
+ "effect",
+ "key"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "effect",
+ "key",
+ "value"
+ ]
+ }
+ }
+ },
+ "stackit:index/SqlserverflexInstanceFlavor:SqlserverflexInstanceFlavor": {
+ "properties": {
+ "cpu": {
+ "type": "integer"
+ },
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "ram": {
+ "type": "integer"
+ }
+ },
+ "type": "object",
+ "required": [
+ "cpu",
+ "ram"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "cpu",
+ "description",
+ "id",
+ "ram"
+ ]
+ }
+ }
+ },
+ "stackit:index/SqlserverflexInstanceOptions:SqlserverflexInstanceOptions": {
+ "properties": {
+ "edition": {
+ "type": "string"
+ },
+ "retentionDays": {
+ "type": "integer"
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "edition",
+ "retentionDays"
+ ]
+ }
+ }
+ },
+ "stackit:index/SqlserverflexInstanceStorage:SqlserverflexInstanceStorage": {
+ "properties": {
+ "class": {
+ "type": "string"
+ },
+ "size": {
+ "type": "integer"
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "class",
+ "size"
+ ]
+ }
+ }
+ },
+ "stackit:index/VolumeEncryptionParameters:VolumeEncryptionParameters": {
+ "properties": {
+ "kekKeyId": {
+ "type": "string",
+ "description": "UUID of the key within the STACKIT-KMS to use for the encryption.\n"
+ },
+ "kekKeyVersion": {
+ "type": "integer",
+ "description": "Version of the key within the STACKIT-KMS to use for the encryption.\n"
+ },
+ "kekKeyringId": {
+ "type": "string",
+ "description": "UUID of the keyring where the key is located within the STACKTI-KMS.\n"
+ },
+ "keyPayloadBase64": {
+ "type": "string",
+ "description": "Optional predefined secret, which will be encrypted against the key-encryption-key within the STACKIT-KMS. If not defined, a random secret will be generated by the API and encrypted against the STACKIT-KMS. If a key-payload is provided here, it must be base64 encoded.\n",
+ "secret": true
+ },
+ "keyPayloadBase64Wo": {
+ "type": "string",
+ "description": "**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nOptional predefined secret, which will be encrypted against the key-encryption-key within the STACKIT-KMS. If not defined, a random secret will be generated by the API and encrypted against the STACKIT-KMS. If a key-payload is provided here, it must be base64 encoded.\n",
+ "secret": true
+ },
+ "keyPayloadBase64WoVersion": {
+ "type": "integer",
+ "description": "Used together with \u003cspan pulumi-lang-nodejs=\"`keyPayloadBase64Wo`\" pulumi-lang-dotnet=\"`KeyPayloadBase64Wo`\" pulumi-lang-go=\"`keyPayloadBase64Wo`\" pulumi-lang-python=\"`key_payload_base64_wo`\" pulumi-lang-yaml=\"`keyPayloadBase64Wo`\" pulumi-lang-java=\"`keyPayloadBase64Wo`\"\u003e`key_payload_base64_wo`\u003c/span\u003e to trigger an re-create. Increment this value when an update to \u003cspan pulumi-lang-nodejs=\"`keyPayloadBase64Wo`\" pulumi-lang-dotnet=\"`KeyPayloadBase64Wo`\" pulumi-lang-go=\"`keyPayloadBase64Wo`\" pulumi-lang-python=\"`key_payload_base64_wo`\" pulumi-lang-yaml=\"`keyPayloadBase64Wo`\" pulumi-lang-java=\"`keyPayloadBase64Wo`\"\u003e`key_payload_base64_wo`\u003c/span\u003e is required.\n"
+ },
+ "serviceAccount": {
+ "type": "string",
+ "description": "Service-Account linked to the Key within the STACKIT-KMS.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "kekKeyId",
+ "kekKeyVersion",
+ "kekKeyringId",
+ "serviceAccount"
]
},
- "stackit:index/RoutingTableRouteNextHop:RoutingTableRouteNextHop": {
+ "stackit:index/VolumeSource:VolumeSource": {
"properties": {
- "type": {
+ "id": {
"type": "string",
- "description": "Type of the next hop. Possible values are: \u003cspan pulumi-lang-nodejs=\"`blackhole`\" pulumi-lang-dotnet=\"`Blackhole`\" pulumi-lang-go=\"`blackhole`\" pulumi-lang-python=\"`blackhole`\" pulumi-lang-yaml=\"`blackhole`\" pulumi-lang-java=\"`blackhole`\"\u003e`blackhole`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e.\n"
+ "description": "The ID of the source, e.g. image ID\n"
},
- "value": {
+ "type": {
"type": "string",
- "description": "Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage.\n"
+ "description": "The type of the source. Possible values are: \u003cspan pulumi-lang-nodejs=\"`volume`\" pulumi-lang-dotnet=\"`Volume`\" pulumi-lang-go=\"`volume`\" pulumi-lang-python=\"`volume`\" pulumi-lang-yaml=\"`volume`\" pulumi-lang-java=\"`volume`\"\u003e`volume`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`snapshot`\" pulumi-lang-dotnet=\"`Snapshot`\" pulumi-lang-go=\"`snapshot`\" pulumi-lang-python=\"`snapshot`\" pulumi-lang-yaml=\"`snapshot`\" pulumi-lang-java=\"`snapshot`\"\u003e`snapshot`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`backup`\" pulumi-lang-dotnet=\"`Backup`\" pulumi-lang-go=\"`backup`\" pulumi-lang-python=\"`backup`\" pulumi-lang-yaml=\"`backup`\" pulumi-lang-java=\"`backup`\"\u003e`backup`\u003c/span\u003e.\n"
}
},
"type": "object",
"required": [
+ "id",
"type"
]
},
- "stackit:index/SecurityGroupRuleIcmpParameters:SecurityGroupRuleIcmpParameters": {
+ "stackit:index/getApplicationLoadBalancerError:getApplicationLoadBalancerError": {
"properties": {
- "code": {
- "type": "integer",
- "description": "ICMP code. Can be set if the protocol is ICMP.\n"
+ "description": {
+ "type": "string",
+ "description": "The error description contains additional helpful user information to fix the error state of the Application Load Balancer. For example the IP 45.135.247.139 does not exist in the project, then the description will report: Floating IP \"45.135.247.139\" could not be found.\n"
},
"type": {
- "type": "integer",
- "description": "ICMP type. Can be set if the protocol is ICMP.\n"
+ "type": "string",
+ "description": "The error type specifies which part of the Application Load Balancer encountered the error. I.e. the API will not check if a provided public IP is actually available in the project. Instead the Application Load Balancer with try to use the provided IP and if not available reports TYPE*FIP*NOT_CONFIGURED error. Possible values are: `TYPE_UNSPECIFIED`, `TYPE_INTERNAL`, `TYPE_QUOTA_SECGROUP_EXCEEDED`, `TYPE_QUOTA_SECGROUPRULE_EXCEEDED`, `TYPE_PORT_NOT_CONFIGURED`, `TYPE_FIP_NOT_CONFIGURED`, `TYPE_TARGET_NOT_ACTIVE`, `TYPE_METRICS_MISCONFIGURED`, `TYPE_LOGS_MISCONFIGURED`.\n"
}
},
"type": "object",
"required": [
- "code",
+ "description",
"type"
- ]
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
},
- "stackit:index/SecurityGroupRulePortRange:SecurityGroupRulePortRange": {
+ "stackit:index/getApplicationLoadBalancerListener:getApplicationLoadBalancerListener": {
"properties": {
- "max": {
- "type": "integer",
- "description": "The maximum port number. Should be greater or equal to the minimum.\n"
+ "http": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerListenerHttp:getApplicationLoadBalancerListenerHttp",
+ "description": "Configuration for HTTP traffic.\n"
},
- "min": {
+ "https": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerListenerHttps:getApplicationLoadBalancerListenerHttps",
+ "description": "Configuration for handling HTTPS traffic on this listener.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Unique name for the listener\n"
+ },
+ "port": {
"type": "integer",
- "description": "The minimum port number. Should be less or equal to the maximum.\n"
+ "description": "Port number on which the listener receives incoming traffic.\n"
+ },
+ "protocol": {
+ "type": "string",
+ "description": "Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`.\n"
+ },
+ "wafConfigName": {
+ "type": "string",
+ "description": "Enable Web Application Firewall (WAF), referenced by name. See \"Application Load Balancer - Web Application Firewall API\" for more information.\n"
}
},
"type": "object",
"required": [
- "max",
- "min"
- ]
+ "http",
+ "https",
+ "name",
+ "port",
+ "protocol",
+ "wafConfigName"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
},
- "stackit:index/SecurityGroupRuleProtocol:SecurityGroupRuleProtocol": {
+ "stackit:index/getApplicationLoadBalancerListenerHttp:getApplicationLoadBalancerListenerHttp": {
"properties": {
- "name": {
+ "hosts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerListenerHttpHost:getApplicationLoadBalancerListenerHttpHost"
+ },
+ "description": "Defines routing rules grouped by hostname.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "hosts"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
+ },
+ "stackit:index/getApplicationLoadBalancerListenerHttpHost:getApplicationLoadBalancerListenerHttpHost": {
+ "properties": {
+ "host": {
+ "type": "string",
+ "description": "Hostname to match. Supports wildcards (e.g. *.example.com).\n"
+ },
+ "rules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerListenerHttpHostRule:getApplicationLoadBalancerListenerHttpHostRule"
+ },
+ "description": "Routing rules under the specified host, matched by path prefix.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "host",
+ "rules"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
+ },
+ "stackit:index/getApplicationLoadBalancerListenerHttpHostRule:getApplicationLoadBalancerListenerHttpHostRule": {
+ "properties": {
+ "cookiePersistence": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerListenerHttpHostRuleCookiePersistence:getApplicationLoadBalancerListenerHttpHostRuleCookiePersistence",
+ "description": "Routing persistence via cookies.\n"
+ },
+ "headers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerListenerHttpHostRuleHeader:getApplicationLoadBalancerListenerHttpHostRuleHeader"
+ },
+ "description": "Headers for the rule.\n"
+ },
+ "path": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerListenerHttpHostRulePath:getApplicationLoadBalancerListenerHttpHostRulePath",
+ "description": "Routing via path.\n"
+ },
+ "queryParameters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerListenerHttpHostRuleQueryParameter:getApplicationLoadBalancerListenerHttpHostRuleQueryParameter"
+ },
+ "description": "Query parameters for the rule.\n"
+ },
+ "targetPool": {
"type": "string",
- "description": "The protocol name which the rule should match. Either \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`number`\" pulumi-lang-dotnet=\"`Number`\" pulumi-lang-go=\"`number`\" pulumi-lang-python=\"`number`\" pulumi-lang-yaml=\"`number`\" pulumi-lang-java=\"`number`\"\u003e`number`\u003c/span\u003e must be provided. Possible values are: \u003cspan pulumi-lang-nodejs=\"`ah`\" pulumi-lang-dotnet=\"`Ah`\" pulumi-lang-go=\"`ah`\" pulumi-lang-python=\"`ah`\" pulumi-lang-yaml=\"`ah`\" pulumi-lang-java=\"`ah`\"\u003e`ah`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dccp`\" pulumi-lang-dotnet=\"`Dccp`\" pulumi-lang-go=\"`dccp`\" pulumi-lang-python=\"`dccp`\" pulumi-lang-yaml=\"`dccp`\" pulumi-lang-java=\"`dccp`\"\u003e`dccp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`egp`\" pulumi-lang-dotnet=\"`Egp`\" pulumi-lang-go=\"`egp`\" pulumi-lang-python=\"`egp`\" pulumi-lang-yaml=\"`egp`\" pulumi-lang-java=\"`egp`\"\u003e`egp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`esp`\" pulumi-lang-dotnet=\"`Esp`\" pulumi-lang-go=\"`esp`\" pulumi-lang-python=\"`esp`\" pulumi-lang-yaml=\"`esp`\" pulumi-lang-java=\"`esp`\"\u003e`esp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gre`\" pulumi-lang-dotnet=\"`Gre`\" pulumi-lang-go=\"`gre`\" pulumi-lang-python=\"`gre`\" pulumi-lang-yaml=\"`gre`\" pulumi-lang-java=\"`gre`\"\u003e`gre`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`icmp`\" pulumi-lang-dotnet=\"`Icmp`\" pulumi-lang-go=\"`icmp`\" pulumi-lang-python=\"`icmp`\" pulumi-lang-yaml=\"`icmp`\" pulumi-lang-java=\"`icmp`\"\u003e`icmp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`igmp`\" pulumi-lang-dotnet=\"`Igmp`\" pulumi-lang-go=\"`igmp`\" pulumi-lang-python=\"`igmp`\" pulumi-lang-yaml=\"`igmp`\" pulumi-lang-java=\"`igmp`\"\u003e`igmp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipip`\" pulumi-lang-dotnet=\"`Ipip`\" pulumi-lang-go=\"`ipip`\" pulumi-lang-python=\"`ipip`\" pulumi-lang-yaml=\"`ipip`\" pulumi-lang-java=\"`ipip`\"\u003e`ipip`\u003c/span\u003e, `ipv6-encap`, `ipv6-frag`, `ipv6-icmp`, `ipv6-nonxt`, `ipv6-opts`, `ipv6-route`, \u003cspan pulumi-lang-nodejs=\"`ospf`\" pulumi-lang-dotnet=\"`Ospf`\" pulumi-lang-go=\"`ospf`\" pulumi-lang-python=\"`ospf`\" pulumi-lang-yaml=\"`ospf`\" pulumi-lang-java=\"`ospf`\"\u003e`ospf`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pgm`\" pulumi-lang-dotnet=\"`Pgm`\" pulumi-lang-go=\"`pgm`\" pulumi-lang-python=\"`pgm`\" pulumi-lang-yaml=\"`pgm`\" pulumi-lang-java=\"`pgm`\"\u003e`pgm`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsvp`\" pulumi-lang-dotnet=\"`Rsvp`\" pulumi-lang-go=\"`rsvp`\" pulumi-lang-python=\"`rsvp`\" pulumi-lang-yaml=\"`rsvp`\" pulumi-lang-java=\"`rsvp`\"\u003e`rsvp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sctp`\" pulumi-lang-dotnet=\"`Sctp`\" pulumi-lang-go=\"`sctp`\" pulumi-lang-python=\"`sctp`\" pulumi-lang-yaml=\"`sctp`\" pulumi-lang-java=\"`sctp`\"\u003e`sctp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`udplite`\" pulumi-lang-dotnet=\"`Udplite`\" pulumi-lang-go=\"`udplite`\" pulumi-lang-python=\"`udplite`\" pulumi-lang-yaml=\"`udplite`\" pulumi-lang-java=\"`udplite`\"\u003e`udplite`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vrrp`\" pulumi-lang-dotnet=\"`Vrrp`\" pulumi-lang-go=\"`vrrp`\" pulumi-lang-python=\"`vrrp`\" pulumi-lang-yaml=\"`vrrp`\" pulumi-lang-java=\"`vrrp`\"\u003e`vrrp`\u003c/span\u003e.\n"
+ "description": "Reference target pool by target pool name.\n"
},
- "number": {
- "type": "integer",
- "description": "The protocol number which the rule should match. Either \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`number`\" pulumi-lang-dotnet=\"`Number`\" pulumi-lang-go=\"`number`\" pulumi-lang-python=\"`number`\" pulumi-lang-yaml=\"`number`\" pulumi-lang-java=\"`number`\"\u003e`number`\u003c/span\u003e must be provided.\n"
+ "webSocket": {
+ "type": "boolean",
+ "description": "If enabled, when client sends an HTTP request with and Upgrade header, indicating the desire to establish a Websocket connection, if backend server supports WebSocket, it responds with HTTP 101 status code, switching protocols from HTTP to WebSocket. Hence the client and the server can exchange data in real-time using one long-lived TCP connection.\n"
}
},
"type": "object",
+ "required": [
+ "cookiePersistence",
+ "headers",
+ "path",
+ "queryParameters",
+ "targetPool",
+ "webSocket"
+ ],
"language": {
"nodejs": {
- "requiredOutputs": [
- "name",
- "number"
- ]
+ "requiredInputs": []
}
}
},
- "stackit:index/ServerBackupScheduleBackupProperties:ServerBackupScheduleBackupProperties": {
+ "stackit:index/getApplicationLoadBalancerListenerHttpHostRuleCookiePersistence:getApplicationLoadBalancerListenerHttpHostRuleCookiePersistence": {
"properties": {
"name": {
- "type": "string"
- },
- "retentionPeriod": {
- "type": "integer"
+ "type": "string",
+ "description": "The name of the cookie to use.\n"
},
- "volumeIds": {
- "type": "array",
- "items": {
- "type": "string"
- }
+ "ttl": {
+ "type": "string",
+ "description": "TTL specifies the time-to-live for the cookie. The default value is 0s, and it acts as a session cookie, expiring when the client session ends.\n"
}
},
"type": "object",
"required": [
"name",
- "retentionPeriod"
- ]
+ "ttl"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
},
- "stackit:index/ServerBootVolume:ServerBootVolume": {
+ "stackit:index/getApplicationLoadBalancerListenerHttpHostRuleHeader:getApplicationLoadBalancerListenerHttpHostRuleHeader": {
"properties": {
- "deleteOnTermination": {
- "type": "boolean",
- "description": "Delete the volume during the termination of the server. Only allowed when \u003cspan pulumi-lang-nodejs=\"`sourceType`\" pulumi-lang-dotnet=\"`SourceType`\" pulumi-lang-go=\"`sourceType`\" pulumi-lang-python=\"`source_type`\" pulumi-lang-yaml=\"`sourceType`\" pulumi-lang-java=\"`sourceType`\"\u003e`source_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e.\n"
- },
- "id": {
- "type": "string",
- "description": "The ID of the boot volume\n"
- },
- "performanceClass": {
- "type": "string",
- "description": "The performance class of the server.\n"
- },
- "size": {
- "type": "integer",
- "description": "The size of the boot volume in GB. Must be provided when \u003cspan pulumi-lang-nodejs=\"`sourceType`\" pulumi-lang-dotnet=\"`SourceType`\" pulumi-lang-go=\"`sourceType`\" pulumi-lang-python=\"`source_type`\" pulumi-lang-yaml=\"`sourceType`\" pulumi-lang-java=\"`sourceType`\"\u003e`source_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e.\n"
- },
- "sourceId": {
+ "exactMatch": {
"type": "string",
- "description": "The ID of the source, either image ID or volume ID\n"
+ "description": "Exact match for the header value.\n"
},
- "sourceType": {
+ "name": {
"type": "string",
- "description": "The type of the source. Possible values are: \u003cspan pulumi-lang-nodejs=\"`volume`\" pulumi-lang-dotnet=\"`Volume`\" pulumi-lang-go=\"`volume`\" pulumi-lang-python=\"`volume`\" pulumi-lang-yaml=\"`volume`\" pulumi-lang-java=\"`volume`\"\u003e`volume`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e.\n"
+ "description": "Header name.\n"
}
},
"type": "object",
"required": [
- "sourceId",
- "sourceType"
+ "exactMatch",
+ "name"
],
"language": {
"nodejs": {
- "requiredOutputs": [
- "deleteOnTermination",
- "id",
- "sourceId",
- "sourceType"
- ]
+ "requiredInputs": []
}
}
},
- "stackit:index/SfsExportPolicyRule:SfsExportPolicyRule": {
+ "stackit:index/getApplicationLoadBalancerListenerHttpHostRulePath:getApplicationLoadBalancerListenerHttpHostRulePath": {
"properties": {
- "description": {
+ "exactMatch": {
"type": "string",
- "description": "Description of the Rule\n"
- },
- "ipAcls": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "IP access control list; IPs must have a subnet mask (e.g. \"172.16.0.0/24\" for a range of IPs, or \"172.16.0.250/32\" for a specific IP).\n"
- },
- "order": {
- "type": "integer",
- "description": "Order of the rule within a Share Export Policy. The order is used so that when a client IP matches multiple rules, the first rule is applied\n"
- },
- "readOnly": {
- "type": "boolean",
- "description": "Flag to indicate if client IPs matching this rule can only mount the share in read only mode\n"
- },
- "setUuid": {
- "type": "boolean",
- "description": "Flag to honor set UUID\n"
+ "description": "Exact path match. Only a request path exactly equal to the value will match, e.g. '/foo' matches only '/foo', not '/foo/bar' or '/foobar'.\n"
},
- "superUser": {
- "type": "boolean",
- "description": "Flag to indicate if client IPs matching this rule have root access on the Share\n"
+ "prefix": {
+ "type": "string",
+ "description": "Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'.\n"
}
},
"type": "object",
"required": [
- "ipAcls",
- "order"
+ "exactMatch",
+ "prefix"
],
"language": {
"nodejs": {
- "requiredOutputs": [
- "ipAcls",
- "order",
- "readOnly",
- "setUuid",
- "superUser"
- ]
+ "requiredInputs": []
}
}
},
- "stackit:index/SkeClusterExtensions:SkeClusterExtensions": {
- "properties": {
- "acl": {
- "$ref": "#/types/stackit:index/SkeClusterExtensionsAcl:SkeClusterExtensionsAcl",
- "description": "Cluster access control configuration.\n"
- },
- "argus": {
- "$ref": "#/types/stackit:index/SkeClusterExtensionsArgus:SkeClusterExtensionsArgus",
- "description": "A single argus block as defined below. This field is deprecated and will be removed 06 January 2026.\n",
- "deprecationMessage": "Use observability instead."
- },
- "dns": {
- "$ref": "#/types/stackit:index/SkeClusterExtensionsDns:SkeClusterExtensionsDns",
- "description": "DNS extension configuration\n"
- },
- "observability": {
- "$ref": "#/types/stackit:index/SkeClusterExtensionsObservability:SkeClusterExtensionsObservability",
- "description": "A single observability block as defined below.\n"
- }
- },
- "type": "object"
- },
- "stackit:index/SkeClusterExtensionsAcl:SkeClusterExtensionsAcl": {
+ "stackit:index/getApplicationLoadBalancerListenerHttpHostRuleQueryParameter:getApplicationLoadBalancerListenerHttpHostRuleQueryParameter": {
"properties": {
- "allowedCidrs": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "Specify a list of CIDRs to whitelist.\n"
+ "exactMatch": {
+ "type": "string",
+ "description": "Exact match for the query parameters value.\n"
},
- "enabled": {
- "type": "boolean",
- "description": "Is ACL enabled?\n"
+ "name": {
+ "type": "string",
+ "description": "Query parameter name.\n"
}
},
"type": "object",
"required": [
- "allowedCidrs",
- "enabled"
- ]
+ "exactMatch",
+ "name"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
},
- "stackit:index/SkeClusterExtensionsArgus:SkeClusterExtensionsArgus": {
+ "stackit:index/getApplicationLoadBalancerListenerHttps:getApplicationLoadBalancerListenerHttps": {
"properties": {
- "argusInstanceId": {
- "type": "string",
- "description": "Argus instance ID to choose which Argus instance is used. Required when enabled is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"
- },
- "enabled": {
- "type": "boolean",
- "description": "Flag to enable/disable Argus extensions.\n"
+ "certificateConfig": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerListenerHttpsCertificateConfig:getApplicationLoadBalancerListenerHttpsCertificateConfig",
+ "description": "TLS termination certificate configuration.\n"
}
},
"type": "object",
"required": [
- "enabled"
- ]
+ "certificateConfig"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
},
- "stackit:index/SkeClusterExtensionsDns:SkeClusterExtensionsDns": {
+ "stackit:index/getApplicationLoadBalancerListenerHttpsCertificateConfig:getApplicationLoadBalancerListenerHttpsCertificateConfig": {
"properties": {
- "enabled": {
- "type": "boolean",
- "description": "Flag to enable/disable DNS extensions\n"
- },
- "zones": {
+ "certificateIds": {
"type": "array",
"items": {
"type": "string"
},
- "description": "Specify a list of domain filters for externalDNS (e.g., `foo.runs.onstackit.cloud`)\n"
+ "description": "Certificate IDs for TLS termination.\n"
}
},
"type": "object",
"required": [
- "enabled"
+ "certificateIds"
],
"language": {
"nodejs": {
- "requiredOutputs": [
- "enabled",
- "zones"
- ]
+ "requiredInputs": []
}
}
},
- "stackit:index/SkeClusterExtensionsObservability:SkeClusterExtensionsObservability": {
+ "stackit:index/getApplicationLoadBalancerLoadBalancerSecurityGroup:getApplicationLoadBalancerLoadBalancerSecurityGroup": {
"properties": {
- "enabled": {
- "type": "boolean",
- "description": "Flag to enable/disable Observability extensions.\n"
+ "id": {
+ "type": "string",
+ "description": "ID of the security Group\n"
},
- "instanceId": {
+ "name": {
"type": "string",
- "description": "Observability instance ID to choose which Observability instance is used. Required when enabled is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"
+ "description": "Name of the security Group\n"
}
},
"type": "object",
"required": [
- "enabled"
- ]
+ "id",
+ "name"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
},
- "stackit:index/SkeClusterHibernation:SkeClusterHibernation": {
+ "stackit:index/getApplicationLoadBalancerNetwork:getApplicationLoadBalancerNetwork": {
"properties": {
- "end": {
- "type": "string",
- "description": "End time of hibernation in crontab syntax. E.g. `0 8 * * *` for waking up the cluster at 8am.\n"
- },
- "start": {
+ "networkId": {
"type": "string",
- "description": "Start time of cluster hibernation in crontab syntax. E.g. `0 18 * * *` for starting everyday at 6pm.\n"
+ "description": "STACKIT network ID the Application Load Balancer and/or targets are in.\n"
},
- "timezone": {
+ "role": {
"type": "string",
- "description": "Timezone name corresponding to a file in the IANA Time Zone database. i.e. `Europe/Berlin`.\n"
+ "description": "The role defines how the Application Load Balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`.\n"
}
},
"type": "object",
"required": [
- "end",
- "start"
+ "networkId",
+ "role"
],
"language": {
"nodejs": {
- "requiredOutputs": [
- "end",
- "start",
- "timezone"
- ]
+ "requiredInputs": []
}
}
},
- "stackit:index/SkeClusterMaintenance:SkeClusterMaintenance": {
+ "stackit:index/getApplicationLoadBalancerOptions:getApplicationLoadBalancerOptions": {
"properties": {
- "enableKubernetesVersionUpdates": {
- "type": "boolean",
- "description": "Flag to enable/disable auto-updates of the Kubernetes version. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. SKE automatically updates the cluster Kubernetes version if you have set `maintenance.enable_kubernetes_version_updates` to true or if there is a mandatory update, as described in [General information for Kubernetes \u0026 OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/).\n"
+ "accessControl": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerOptionsAccessControl:getApplicationLoadBalancerOptionsAccessControl",
+ "description": "Use this option to limit the IP ranges that can use the Application Load Balancer.\n"
},
- "enableMachineImageVersionUpdates": {
+ "ephemeralAddress": {
"type": "boolean",
- "description": "Flag to enable/disable auto-updates of the OS image version. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. SKE automatically updates the cluster Kubernetes version if you have set `maintenance.enable_kubernetes_version_updates` to true or if there is a mandatory update, as described in [General information for Kubernetes \u0026 OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/).\n"
+ "description": "This option automates the handling of the external IP address for an Application Load Balancer. If set to true a new IP address will be automatically created. It will also be automatically deleted when the Load Balancer is deleted.\n"
},
- "end": {
- "type": "string",
- "description": "Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`.\n"
+ "observability": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerOptionsObservability:getApplicationLoadBalancerOptionsObservability",
+ "description": "We offer Load Balancer observability via STACKIT Observability or external solutions.\n"
},
- "start": {
- "type": "string",
- "description": "Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`.\n"
+ "privateNetworkOnly": {
+ "type": "boolean",
+ "description": "Application Load Balancer is accessible only via a private network ip address. Not changeable after creation.\n"
}
},
"type": "object",
"required": [
- "end",
- "start"
+ "accessControl",
+ "ephemeralAddress",
+ "observability",
+ "privateNetworkOnly"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
+ },
+ "stackit:index/getApplicationLoadBalancerOptionsAccessControl:getApplicationLoadBalancerOptionsAccessControl": {
+ "properties": {
+ "allowedSourceRanges": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Application Load Balancer is accessible only from an IP address in this range.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "allowedSourceRanges"
],
"language": {
"nodejs": {
- "requiredOutputs": [
- "enableKubernetesVersionUpdates",
- "enableMachineImageVersionUpdates",
- "end",
- "start"
- ]
+ "requiredInputs": []
}
}
},
- "stackit:index/SkeClusterNetwork:SkeClusterNetwork": {
+ "stackit:index/getApplicationLoadBalancerOptionsObservability:getApplicationLoadBalancerOptionsObservability": {
"properties": {
- "id": {
- "type": "string",
- "description": "ID of the STACKIT Network Area (SNA) network into which the cluster will be deployed.\n"
+ "logs": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerOptionsObservabilityLogs:getApplicationLoadBalancerOptionsObservabilityLogs",
+ "description": "Observability logs configuration.\n"
+ },
+ "metrics": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerOptionsObservabilityMetrics:getApplicationLoadBalancerOptionsObservabilityMetrics",
+ "description": "Observability metrics configuration.\n"
}
},
"type": "object",
+ "required": [
+ "logs",
+ "metrics"
+ ],
"language": {
"nodejs": {
- "requiredOutputs": [
- "id"
- ]
+ "requiredInputs": []
}
}
},
- "stackit:index/SkeClusterNodePool:SkeClusterNodePool": {
+ "stackit:index/getApplicationLoadBalancerOptionsObservabilityLogs:getApplicationLoadBalancerOptionsObservabilityLogs": {
"properties": {
- "allowSystemComponents": {
- "type": "boolean",
- "description": "Allow system components to run on this node pool.\n"
- },
- "availabilityZones": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "Specify a list of availability zones. E.g. `eu01-m`\n"
- },
- "cri": {
- "type": "string",
- "description": "Specifies the container runtime. Defaults to \u003cspan pulumi-lang-nodejs=\"`containerd`\" pulumi-lang-dotnet=\"`Containerd`\" pulumi-lang-go=\"`containerd`\" pulumi-lang-python=\"`containerd`\" pulumi-lang-yaml=\"`containerd`\" pulumi-lang-java=\"`containerd`\"\u003e`containerd`\u003c/span\u003e\n"
- },
- "labels": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "description": "Labels to add to each node.\n"
- },
- "machineType": {
- "type": "string",
- "description": "The machine type.\n"
- },
- "maxSurge": {
- "type": "integer",
- "description": "Maximum number of additional VMs that are created during an update. If set (larger than 0), then it must be at least the amount of zones configured for the nodepool. The \u003cspan pulumi-lang-nodejs=\"`maxSurge`\" pulumi-lang-dotnet=\"`MaxSurge`\" pulumi-lang-go=\"`maxSurge`\" pulumi-lang-python=\"`max_surge`\" pulumi-lang-yaml=\"`maxSurge`\" pulumi-lang-java=\"`maxSurge`\"\u003e`max_surge`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`maxUnavailable`\" pulumi-lang-dotnet=\"`MaxUnavailable`\" pulumi-lang-go=\"`maxUnavailable`\" pulumi-lang-python=\"`max_unavailable`\" pulumi-lang-yaml=\"`maxUnavailable`\" pulumi-lang-java=\"`maxUnavailable`\"\u003e`max_unavailable`\u003c/span\u003e fields cannot both be unset at the same time.\n"
- },
- "maxUnavailable": {
- "type": "integer",
- "description": "Maximum number of VMs that that can be unavailable during an update. If set (larger than 0), then it must be at least the amount of zones configured for the nodepool. The \u003cspan pulumi-lang-nodejs=\"`maxSurge`\" pulumi-lang-dotnet=\"`MaxSurge`\" pulumi-lang-go=\"`maxSurge`\" pulumi-lang-python=\"`max_surge`\" pulumi-lang-yaml=\"`maxSurge`\" pulumi-lang-java=\"`maxSurge`\"\u003e`max_surge`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`maxUnavailable`\" pulumi-lang-dotnet=\"`MaxUnavailable`\" pulumi-lang-go=\"`maxUnavailable`\" pulumi-lang-python=\"`max_unavailable`\" pulumi-lang-yaml=\"`maxUnavailable`\" pulumi-lang-java=\"`maxUnavailable`\"\u003e`max_unavailable`\u003c/span\u003e fields cannot both be unset at the same time.\n"
- },
- "maximum": {
- "type": "integer",
- "description": "Maximum number of nodes in the pool.\n"
- },
- "minimum": {
- "type": "integer",
- "description": "Minimum number of nodes in the pool.\n"
- },
- "name": {
- "type": "string",
- "description": "Specifies the name of the node pool.\n"
- },
- "osName": {
- "type": "string",
- "description": "The name of the OS image. Defaults to \u003cspan pulumi-lang-nodejs=\"`flatcar`\" pulumi-lang-dotnet=\"`Flatcar`\" pulumi-lang-go=\"`flatcar`\" pulumi-lang-python=\"`flatcar`\" pulumi-lang-yaml=\"`flatcar`\" pulumi-lang-java=\"`flatcar`\"\u003e`flatcar`\u003c/span\u003e.\n"
- },
- "osVersion": {
- "type": "string",
- "description": "This field is deprecated, use \u003cspan pulumi-lang-nodejs=\"`osVersionMin`\" pulumi-lang-dotnet=\"`OsVersionMin`\" pulumi-lang-go=\"`osVersionMin`\" pulumi-lang-python=\"`os_version_min`\" pulumi-lang-yaml=\"`osVersionMin`\" pulumi-lang-java=\"`osVersionMin`\"\u003e`os_version_min`\u003c/span\u003e to configure the version and \u003cspan pulumi-lang-nodejs=\"`osVersionUsed`\" pulumi-lang-dotnet=\"`OsVersionUsed`\" pulumi-lang-go=\"`osVersionUsed`\" pulumi-lang-python=\"`os_version_used`\" pulumi-lang-yaml=\"`osVersionUsed`\" pulumi-lang-java=\"`osVersionUsed`\"\u003e`os_version_used`\u003c/span\u003e to get the currently used version instead.\n",
- "deprecationMessage": "Use \u003cspan pulumi-lang-nodejs=\"`osVersionMin`\" pulumi-lang-dotnet=\"`OsVersionMin`\" pulumi-lang-go=\"`osVersionMin`\" pulumi-lang-python=\"`os_version_min`\" pulumi-lang-yaml=\"`osVersionMin`\" pulumi-lang-java=\"`osVersionMin`\"\u003e`os_version_min`\u003c/span\u003e to configure the version and \u003cspan pulumi-lang-nodejs=\"`osVersionUsed`\" pulumi-lang-dotnet=\"`OsVersionUsed`\" pulumi-lang-go=\"`osVersionUsed`\" pulumi-lang-python=\"`os_version_used`\" pulumi-lang-yaml=\"`osVersionUsed`\" pulumi-lang-java=\"`osVersionUsed`\"\u003e`os_version_used`\u003c/span\u003e to get the currently used version instead. Setting a specific OS image version will cause errors during minor OS upgrades due to forced updates."
- },
- "osVersionMin": {
- "type": "string",
- "description": "The minimum OS image version. This field will be used to set the minimum OS image version on creation/update of the cluster. If unset, the latest supported OS image version will be used. SKE automatically updates the cluster Kubernetes version if you have set `maintenance.enable_kubernetes_version_updates` to true or if there is a mandatory update, as described in [General information for Kubernetes \u0026 OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). To get the current OS image version being used for the node pool, use the read-only \u003cspan pulumi-lang-nodejs=\"`osVersionUsed`\" pulumi-lang-dotnet=\"`OsVersionUsed`\" pulumi-lang-go=\"`osVersionUsed`\" pulumi-lang-python=\"`os_version_used`\" pulumi-lang-yaml=\"`osVersionUsed`\" pulumi-lang-java=\"`osVersionUsed`\"\u003e`os_version_used`\u003c/span\u003e field.\n"
- },
- "osVersionUsed": {
+ "credentialsRef": {
"type": "string",
- "description": "Full OS image version used. For example, if 3815.2 was set in \u003cspan pulumi-lang-nodejs=\"`osVersionMin`\" pulumi-lang-dotnet=\"`OsVersionMin`\" pulumi-lang-go=\"`osVersionMin`\" pulumi-lang-python=\"`os_version_min`\" pulumi-lang-yaml=\"`osVersionMin`\" pulumi-lang-java=\"`osVersionMin`\"\u003e`os_version_min`\u003c/span\u003e, this value may result to 3815.2.2. SKE automatically updates the cluster Kubernetes version if you have set `maintenance.enable_kubernetes_version_updates` to true or if there is a mandatory update, as described in [General information for Kubernetes \u0026 OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/).\n"
- },
- "taints": {
- "type": "array",
- "items": {
- "$ref": "#/types/stackit:index/SkeClusterNodePoolTaint:SkeClusterNodePoolTaint"
- },
- "description": "Specifies a taint list as defined below.\n"
- },
- "volumeSize": {
- "type": "integer",
- "description": "The volume size in GB. Defaults to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e\n"
+ "description": "Credentials reference for logging. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the logging solution the push URL points to. Then this enables monitoring via remote write for the Application Load Balancer.\n"
},
- "volumeType": {
+ "pushUrl": {
"type": "string",
- "description": "Specifies the volume type. Defaults to \u003cspan pulumi-lang-nodejs=\"`storagePremiumPerf1`\" pulumi-lang-dotnet=\"`StoragePremiumPerf1`\" pulumi-lang-go=\"`storagePremiumPerf1`\" pulumi-lang-python=\"`storage_premium_perf1`\" pulumi-lang-yaml=\"`storagePremiumPerf1`\" pulumi-lang-java=\"`storagePremiumPerf1`\"\u003e`storage_premium_perf1`\u003c/span\u003e.\n"
+ "description": "Credentials reference for logging. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the logging solution the push URL points to. Then this enables monitoring via remote write for the Application Load Balancer.\n"
}
},
"type": "object",
"required": [
- "availabilityZones",
- "machineType",
- "maximum",
- "minimum",
- "name"
+ "credentialsRef",
+ "pushUrl"
],
"language": {
"nodejs": {
- "requiredOutputs": [
- "allowSystemComponents",
- "availabilityZones",
- "cri",
- "labels",
- "machineType",
- "maxSurge",
- "maxUnavailable",
- "maximum",
- "minimum",
- "name",
- "osName",
- "osVersionUsed",
- "volumeSize",
- "volumeType"
- ]
+ "requiredInputs": []
}
}
},
- "stackit:index/SkeClusterNodePoolTaint:SkeClusterNodePoolTaint": {
+ "stackit:index/getApplicationLoadBalancerOptionsObservabilityMetrics:getApplicationLoadBalancerOptionsObservabilityMetrics": {
"properties": {
- "effect": {
- "type": "string",
- "description": "The taint effect. E.g `PreferNoSchedule`.\n"
- },
- "key": {
+ "credentialsRef": {
"type": "string",
- "description": "Taint key to be applied to a node.\n"
+ "description": "Credentials reference for metrics. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the metrics solution the push URL points to. Then this enables monitoring via remote write for the Application Load Balancer.\n"
},
- "value": {
+ "pushUrl": {
"type": "string",
- "description": "Taint value corresponding to the taint key.\n"
+ "description": "Credentials reference for metrics. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the metrics solution the push URL points to. Then this enables monitoring via remote write for the Application Load Balancer.\n"
}
},
"type": "object",
"required": [
- "effect",
- "key"
+ "credentialsRef",
+ "pushUrl"
],
"language": {
"nodejs": {
- "requiredOutputs": [
- "effect",
- "key",
- "value"
- ]
+ "requiredInputs": []
}
}
},
- "stackit:index/SqlserverflexInstanceFlavor:SqlserverflexInstanceFlavor": {
+ "stackit:index/getApplicationLoadBalancerTargetPool:getApplicationLoadBalancerTargetPool": {
"properties": {
- "cpu": {
- "type": "integer"
+ "activeHealthCheck": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerTargetPoolActiveHealthCheck:getApplicationLoadBalancerTargetPoolActiveHealthCheck"
},
- "description": {
- "type": "string"
+ "name": {
+ "type": "string",
+ "description": "Target pool name.\n"
},
- "id": {
- "type": "string"
+ "targetPort": {
+ "type": "integer",
+ "description": "The number identifying the port where each target listens for traffic.\n"
},
- "ram": {
- "type": "integer"
+ "targets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerTargetPoolTarget:getApplicationLoadBalancerTargetPoolTarget"
+ },
+ "description": "List of all targets which will be used in the pool. Limited to 250.\n"
+ },
+ "tlsConfig": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerTargetPoolTlsConfig:getApplicationLoadBalancerTargetPoolTlsConfig",
+ "description": "Configuration for TLS bridging.\n"
}
},
"type": "object",
"required": [
- "cpu",
- "ram"
+ "activeHealthCheck",
+ "name",
+ "targetPort",
+ "targets",
+ "tlsConfig"
],
"language": {
"nodejs": {
- "requiredOutputs": [
- "cpu",
- "description",
- "id",
- "ram"
- ]
+ "requiredInputs": []
}
}
},
- "stackit:index/SqlserverflexInstanceOptions:SqlserverflexInstanceOptions": {
+ "stackit:index/getApplicationLoadBalancerTargetPoolActiveHealthCheck:getApplicationLoadBalancerTargetPoolActiveHealthCheck": {
"properties": {
- "edition": {
- "type": "string"
+ "healthyThreshold": {
+ "type": "integer",
+ "description": "Healthy threshold of the health checking.\n"
},
- "retentionDays": {
- "type": "integer"
+ "httpHealthChecks": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks:getApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks",
+ "description": "Options for the HTTP health checking.\n"
+ },
+ "interval": {
+ "type": "string",
+ "description": "Interval duration of health checking in seconds.\n"
+ },
+ "intervalJitter": {
+ "type": "string",
+ "description": "Interval duration threshold of the health checking in seconds.\n"
+ },
+ "timeout": {
+ "type": "string",
+ "description": "Active health checking timeout duration in seconds.\n"
+ },
+ "unhealthyThreshold": {
+ "type": "integer",
+ "description": "Unhealthy threshold of the health checking.\n"
}
},
"type": "object",
+ "required": [
+ "healthyThreshold",
+ "httpHealthChecks",
+ "interval",
+ "intervalJitter",
+ "timeout",
+ "unhealthyThreshold"
+ ],
"language": {
"nodejs": {
- "requiredOutputs": [
- "edition",
- "retentionDays"
- ]
+ "requiredInputs": []
}
}
},
- "stackit:index/SqlserverflexInstanceStorage:SqlserverflexInstanceStorage": {
+ "stackit:index/getApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks:getApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks": {
"properties": {
- "class": {
- "type": "string"
+ "okStatuses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of HTTP status codes that indicate a healthy response.\n"
},
- "size": {
- "type": "integer"
+ "path": {
+ "type": "string",
+ "description": "Path to send the health check request to.\n"
}
},
"type": "object",
+ "required": [
+ "okStatuses",
+ "path"
+ ],
"language": {
"nodejs": {
- "requiredOutputs": [
- "class",
- "size"
- ]
+ "requiredInputs": []
}
}
},
- "stackit:index/VolumeEncryptionParameters:VolumeEncryptionParameters": {
+ "stackit:index/getApplicationLoadBalancerTargetPoolTarget:getApplicationLoadBalancerTargetPoolTarget": {
"properties": {
- "kekKeyId": {
- "type": "string",
- "description": "UUID of the key within the STACKIT-KMS to use for the encryption.\n"
- },
- "kekKeyVersion": {
- "type": "integer",
- "description": "Version of the key within the STACKIT-KMS to use for the encryption.\n"
- },
- "kekKeyringId": {
+ "displayName": {
"type": "string",
- "description": "UUID of the keyring where the key is located within the STACKTI-KMS.\n"
+ "description": "Target display name\n"
},
- "keyPayloadBase64": {
+ "ip": {
"type": "string",
- "description": "Optional predefined secret, which will be encrypted against the key-encryption-key within the STACKIT-KMS. If not defined, a random secret will be generated by the API and encrypted against the STACKIT-KMS. If a key-payload is provided here, it must be base64 encoded.\n",
- "secret": true
- },
- "keyPayloadBase64Wo": {
+ "description": "Private target IP, which must by unique within a target pool.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "displayName",
+ "ip"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
+ },
+ "stackit:index/getApplicationLoadBalancerTargetPoolTlsConfig:getApplicationLoadBalancerTargetPoolTlsConfig": {
+ "properties": {
+ "customCa": {
"type": "string",
- "description": "**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nOptional predefined secret, which will be encrypted against the key-encryption-key within the STACKIT-KMS. If not defined, a random secret will be generated by the API and encrypted against the STACKIT-KMS. If a key-payload is provided here, it must be base64 encoded.\n",
- "secret": true
+ "description": "Specifies a custom Certificate Authority (CA). When provided, the target pool will trust certificates signed by this CA, in addition to any system-trusted CAs. This is useful for scenarios where the target pool needs to communicate with servers using self-signed or internally-issued certificates. Enabled needs to be set to true and skip validation to false for this option.\n"
},
- "keyPayloadBase64WoVersion": {
- "type": "integer",
- "description": "Used together with \u003cspan pulumi-lang-nodejs=\"`keyPayloadBase64Wo`\" pulumi-lang-dotnet=\"`KeyPayloadBase64Wo`\" pulumi-lang-go=\"`keyPayloadBase64Wo`\" pulumi-lang-python=\"`key_payload_base64_wo`\" pulumi-lang-yaml=\"`keyPayloadBase64Wo`\" pulumi-lang-java=\"`keyPayloadBase64Wo`\"\u003e`key_payload_base64_wo`\u003c/span\u003e to trigger an re-create. Increment this value when an update to \u003cspan pulumi-lang-nodejs=\"`keyPayloadBase64Wo`\" pulumi-lang-dotnet=\"`KeyPayloadBase64Wo`\" pulumi-lang-go=\"`keyPayloadBase64Wo`\" pulumi-lang-python=\"`key_payload_base64_wo`\" pulumi-lang-yaml=\"`keyPayloadBase64Wo`\" pulumi-lang-java=\"`keyPayloadBase64Wo`\"\u003e`key_payload_base64_wo`\u003c/span\u003e is required.\n"
+ "enabled": {
+ "type": "boolean",
+ "description": "Enable TLS (Transport Layer Security) bridging for the connection between Application Load Balancer and targets in this pool. When enabled, public CAs are trusted. Can be used in tandem with the options either custom CA or skip validation or alone.\n"
},
- "serviceAccount": {
- "type": "string",
- "description": "Service-Account linked to the Key within the STACKIT-KMS.\n"
+ "skipCertificateValidation": {
+ "type": "boolean",
+ "description": "Bypass certificate validation for TLS bridging in this target pool. This option is insecure and can only be used with public CAs by setting enabled true. Meant to be used for testing purposes only!\n"
}
},
"type": "object",
"required": [
- "kekKeyId",
- "kekKeyVersion",
- "kekKeyringId",
- "serviceAccount"
- ]
+ "customCa",
+ "enabled",
+ "skipCertificateValidation"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
},
- "stackit:index/VolumeSource:VolumeSource": {
+ "stackit:index/getApplicationLoadBalancerTargetSecurityGroup:getApplicationLoadBalancerTargetSecurityGroup": {
"properties": {
"id": {
"type": "string",
- "description": "The ID of the source, e.g. image ID\n"
+ "description": "ID of the security Group\n"
},
- "type": {
+ "name": {
"type": "string",
- "description": "The type of the source. Possible values are: \u003cspan pulumi-lang-nodejs=\"`volume`\" pulumi-lang-dotnet=\"`Volume`\" pulumi-lang-go=\"`volume`\" pulumi-lang-python=\"`volume`\" pulumi-lang-yaml=\"`volume`\" pulumi-lang-java=\"`volume`\"\u003e`volume`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`snapshot`\" pulumi-lang-dotnet=\"`Snapshot`\" pulumi-lang-go=\"`snapshot`\" pulumi-lang-python=\"`snapshot`\" pulumi-lang-yaml=\"`snapshot`\" pulumi-lang-java=\"`snapshot`\"\u003e`snapshot`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`backup`\" pulumi-lang-dotnet=\"`Backup`\" pulumi-lang-go=\"`backup`\" pulumi-lang-python=\"`backup`\" pulumi-lang-yaml=\"`backup`\" pulumi-lang-java=\"`backup`\"\u003e`backup`\u003c/span\u003e.\n"
+ "description": "Name of the security Group\n"
}
},
"type": "object",
"required": [
"id",
- "type"
- ]
+ "name"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
},
"stackit:index/getCdnCustomDomainCertificate:getCdnCustomDomainCertificate": {
"properties": {
@@ -5173,6 +6303,33 @@
}
}
},
+ "stackit:index/getServiceAccountsItem:getServiceAccountsItem": {
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "Email of the service account.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the service account.\n"
+ },
+ "serviceAccountId": {
+ "type": "string",
+ "description": "The internal UUID of the service account.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "email",
+ "name",
+ "serviceAccountId"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
+ },
"stackit:index/getSfsExportPolicyRule:getSfsExportPolicyRule": {
"properties": {
"description": {
@@ -5784,6 +6941,10 @@
"provider": {
"description": "The provider type for the stackit package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n",
"properties": {
+ "albCustomEndpoint": {
+ "type": "string",
+ "description": "Custom endpoint for the Application Load Balancer service"
+ },
"authorizationCustomEndpoint": {
"type": "string",
"description": "Custom endpoint for the Membership service"
@@ -5975,6 +7136,10 @@
}
},
"inputProperties": {
+ "albCustomEndpoint": {
+ "type": "string",
+ "description": "Custom endpoint for the Application Load Balancer service"
+ },
"authorizationCustomEndpoint": {
"type": "string",
"description": "Custom endpoint for the Membership service"
@@ -6253,13 +7418,261 @@
"type": "string",
"description": "The policy of the affinity group.\n"
},
- "projectId": {
- "type": "string",
- "description": "STACKIT Project ID to which the affinity group is associated.\n"
+ "projectId": {
+ "type": "string",
+ "description": "STACKIT Project ID to which the affinity group is associated.\n"
+ },
+ "region": {
+ "type": "string",
+ "description": "The resource region. If not defined, the provider region is used.\n"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "stackit:index/applicationLoadBalancer:ApplicationLoadBalancer": {
+ "description": "## Setting up supporting infrastructure\n\n\nThe example below creates the supporting infrastructure using the STACKIT Terraform provider, including the network, network interface, a public IP address and server resources.\n\n## Example Usage\n\n```terraform\nvariable \"project_id\" {\n description = \"The STACKIT Project ID\"\n type = string\n default = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n\nvariable \"image_id\" {\n description = \"A valid Debian 12 Image ID available in all projects\"\n type = string\n default = \"939249d1-6f48-4ab7-929b-95170728311a\"\n}\n\nvariable \"availability_zone\" {\n description = \"An availability zone\"\n type = string\n default = \"eu01-1\"\n}\n\nvariable \"machine_type\" {\n description = \"The machine flavor with 2GB of RAM and 1 core\"\n type = string\n default = \"c2i.1\"\n}\n\nvariable \"label_key\" {\n description = \"An optional label key\"\n type = string\n default = \"key\"\n}\n\nvariable \"label_value\" {\n description = \"An optional label value\"\n type = string\n default = \"value\"\n}\n\n# Create a network\nresource \"stackit_network\" \"network\" {\n project_id = var.project_id\n name = \"example-network\"\n ipv4_nameservers = [\"1.1.1.1\"]\n ipv4_prefix = \"192.168.2.0/25\"\n routed = true\n}\n\n# Create a network interface\nresource \"stackit_network_interface\" \"nic\" {\n project_id = var.project_id\n network_id = stackit_network.network.network_id\n lifecycle {\n ignore_changes = [\n security_group_ids,\n ]\n }\n}\n\n# Create a key pair for accessing the target server instance\nresource \"stackit_key_pair\" \"keypair\" {\n name = \"example-key-pair\"\n public_key = chomp(file(\"path/to/id_rsa.pub\"))\n}\n\n# Create a target server instance\nresource \"stackit_server\" \"server\" {\n project_id = var.project_id\n name = \"example-server\"\n machine_type = var.machine_type\n keypair_name = stackit_key_pair.keypair.name\n availability_zone = var.availability_zone\n\n boot_volume = {\n size = 20\n source_type = \"image\"\n source_id = var.image_id\n delete_on_termination = true\n }\n\n network_interfaces = [\n stackit_network_interface.nic.network_interface_id\n ]\n\n # Explicit dependencies to ensure ordering\n depends_on = [\n stackit_network.network,\n stackit_key_pair.keypair,\n stackit_network_interface.nic\n ]\n}\n\n# Create example credentials for observability of the ALB\n# Create real credentials in your stackit observability\nresource \"stackit_loadbalancer_observability_credential\" \"observability\" {\n project_id = var.project_id\n display_name = \"my-cred\"\n password = \"password\"\n username = \"username\"\n}\n\n# Create a Application Load Balancer\nresource \"stackit_application_load_balancer\" \"example\" {\n project_id = var.project_id\n region = \"eu01\"\n name = \"example-load-balancer\"\n plan_id = \"p10\"\n // Hint: Automatically create an IP for the ALB lifecycle by setting ephemeral_address = true or use:\n // external_address = \"124.124.124.124\"\n labels = {\n (var.label_key) = var.label_value\n }\n listeners = [{\n name = \"my-listener\"\n port = 443\n http = {\n hosts = [{\n host = \"*\"\n rules = [{\n target_pool = \"my-target-pool\"\n web_socket = true\n query_parameters = [{\n name = \"my-query-key\"\n exact_match = \"my-query-value\"\n }]\n headers = [{\n name = \"my-header-key\"\n exact_match = \"my-header-value\"\n }]\n path = {\n prefix = \"/path\"\n }\n cookie_persistence = {\n name = \"my-cookie\"\n ttl = \"60s\"\n }\n }]\n }]\n }\n https = {\n certificate_config = {\n certificate_ids = [\n # Currently no TF provider available, needs to be added with API\n # https://docs.api.stackit.cloud/documentation/certificates/version/v2\n \"name-v1-8c81bd317af8a03b8ef0851ccb074eb17d1ad589b540446244a5e593f78ef820\"\n ]\n }\n }\n protocol = \"PROTOCOL_HTTPS\"\n # Currently no TF provider available, needs to be added with API\n # https://docs.api.stackit.cloud/documentation/alb-waf/version/v1alpha\n waf_config_name = \"my-waf-config\"\n }\n ]\n networks = [\n {\n network_id = stackit_network.network.network_id\n role = \"ROLE_LISTENERS_AND_TARGETS\"\n }\n ]\n options = {\n acl = [\"123.123.123.123/24\", \"12.12.12.12/24\"]\n ephemeral_address = true\n private_network_only = false\n observability = {\n logs = {\n credentials_ref = stackit_loadbalancer_observability_credential.observability.credentials_ref\n push_url = \"https://logs.stackit\u003cid\u003e.argus.eu01.stackit.cloud/instances/\u003cinstance-id\u003e/loki/api/v1/push\"\n }\n metrics = {\n credentials_ref = stackit_loadbalancer_observability_credential.observability.credentials_ref\n push_url = \"https://push.metrics.stackit\u003cid\u003e.argus.eu01.stackit.cloud/instances/\u003cinstance-id\u003e/api/v1/receive\"\n }\n }\n }\n target_pools = [\n {\n name = \"my-target-pool\"\n active_health_check = {\n interval = \"0.500s\"\n interval_jitter = \"0.010s\"\n timeout = \"1s\"\n healthy_threshold = \"5\"\n unhealthy_threshold = \"3\"\n http_health_checks = {\n ok_status = [\"200\", \"201\"]\n path = \"/healthy\"\n }\n }\n target_port = 80\n targets = [\n {\n display_name = \"my-target\"\n ip = stackit_network_interface.nic.ipv4\n }\n ]\n tls_config = {\n enabled = true\n skip_certificate_validation = false\n custom_ca = chomp(file(\"path/to/PEM_formated_CA\"))\n }\n }\n ]\n disable_target_security_group_assignment = false # only needed if targets are not in the same network\n}\n```\n",
+ "properties": {
+ "disableTargetSecurityGroupAssignment": {
+ "type": "boolean",
+ "description": "Disable target security group assignemt to allow targets outside of the given network. Connectivity to targets need to be ensured by the customer, including routing and Security Groups (targetSecurityGroup can be assigned). Not changeable after creation.\n"
+ },
+ "errors": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerError:ApplicationLoadBalancerError"
+ },
+ "description": "Reports all errors a Application Load Balancer has.\n"
+ },
+ "externalAddress": {
+ "type": "string",
+ "description": "The external IP address where this Application Load Balancer is exposed. Not changeable after creation.\n"
+ },
+ "labels": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB.\n"
+ },
+ "listeners": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerListener:ApplicationLoadBalancerListener"
+ },
+ "description": "List of all listeners which will accept traffic. Limited to 20.\n"
+ },
+ "loadBalancerSecurityGroup": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerLoadBalancerSecurityGroup:ApplicationLoadBalancerLoadBalancerSecurityGroup",
+ "description": "Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Application Load balancer name.\n"
+ },
+ "networks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerNetwork:ApplicationLoadBalancerNetwork"
+ },
+ "description": "List of networks that listeners and targets reside in.\n"
+ },
+ "options": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerOptions:ApplicationLoadBalancerOptions",
+ "description": "Defines any optional functionality you want to have enabled on your Application Load Balancer.\n"
+ },
+ "planId": {
+ "type": "string",
+ "description": "Service Plan configures the size of the Application Load Balancer e.g. 'p10'. See available plans via STACKIT CLI 'stackit beta alb plans' or API https://docs.api.stackit.cloud/documentation/alb/version/v2#tag/Project/operation/APIService_ListPlans\n"
+ },
+ "privateAddress": {
+ "type": "string"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "STACKIT project ID to which the Application Load Balancer is associated.\n"
+ },
+ "region": {
+ "type": "string",
+ "description": "The resource region (e.g. eu01). If not defined, the provider region is used.\n"
+ },
+ "targetPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerTargetPool:ApplicationLoadBalancerTargetPool"
+ },
+ "description": "List of all target pools which will be used in the Application Load Balancer. Limited to 20.\n"
+ },
+ "targetSecurityGroup": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerTargetSecurityGroup:ApplicationLoadBalancerTargetSecurityGroup",
+ "description": "Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets.\n"
+ },
+ "version": {
+ "type": "string",
+ "description": "Application Load Balancer resource version. Used for concurrency safe updates.\n"
+ }
+ },
+ "required": [
+ "disableTargetSecurityGroupAssignment",
+ "errors",
+ "externalAddress",
+ "listeners",
+ "loadBalancerSecurityGroup",
+ "name",
+ "networks",
+ "planId",
+ "privateAddress",
+ "projectId",
+ "region",
+ "targetPools",
+ "targetSecurityGroup",
+ "version"
+ ],
+ "inputProperties": {
+ "disableTargetSecurityGroupAssignment": {
+ "type": "boolean",
+ "description": "Disable target security group assignemt to allow targets outside of the given network. Connectivity to targets need to be ensured by the customer, including routing and Security Groups (targetSecurityGroup can be assigned). Not changeable after creation.\n"
+ },
+ "externalAddress": {
+ "type": "string",
+ "description": "The external IP address where this Application Load Balancer is exposed. Not changeable after creation.\n"
+ },
+ "labels": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB.\n"
+ },
+ "listeners": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerListener:ApplicationLoadBalancerListener"
+ },
+ "description": "List of all listeners which will accept traffic. Limited to 20.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Application Load balancer name.\n"
+ },
+ "networks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerNetwork:ApplicationLoadBalancerNetwork"
+ },
+ "description": "List of networks that listeners and targets reside in.\n"
+ },
+ "options": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerOptions:ApplicationLoadBalancerOptions",
+ "description": "Defines any optional functionality you want to have enabled on your Application Load Balancer.\n"
+ },
+ "planId": {
+ "type": "string",
+ "description": "Service Plan configures the size of the Application Load Balancer e.g. 'p10'. See available plans via STACKIT CLI 'stackit beta alb plans' or API https://docs.api.stackit.cloud/documentation/alb/version/v2#tag/Project/operation/APIService_ListPlans\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "STACKIT project ID to which the Application Load Balancer is associated.\n"
+ },
+ "region": {
+ "type": "string",
+ "description": "The resource region (e.g. eu01). If not defined, the provider region is used.\n"
+ },
+ "targetPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerTargetPool:ApplicationLoadBalancerTargetPool"
+ },
+ "description": "List of all target pools which will be used in the Application Load Balancer. Limited to 20.\n"
+ }
+ },
+ "requiredInputs": [
+ "listeners",
+ "networks",
+ "planId",
+ "projectId",
+ "targetPools"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering ApplicationLoadBalancer resources.\n",
+ "properties": {
+ "disableTargetSecurityGroupAssignment": {
+ "type": "boolean",
+ "description": "Disable target security group assignemt to allow targets outside of the given network. Connectivity to targets need to be ensured by the customer, including routing and Security Groups (targetSecurityGroup can be assigned). Not changeable after creation.\n"
+ },
+ "errors": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerError:ApplicationLoadBalancerError"
+ },
+ "description": "Reports all errors a Application Load Balancer has.\n"
+ },
+ "externalAddress": {
+ "type": "string",
+ "description": "The external IP address where this Application Load Balancer is exposed. Not changeable after creation.\n"
+ },
+ "labels": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB.\n"
+ },
+ "listeners": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerListener:ApplicationLoadBalancerListener"
+ },
+ "description": "List of all listeners which will accept traffic. Limited to 20.\n"
+ },
+ "loadBalancerSecurityGroup": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerLoadBalancerSecurityGroup:ApplicationLoadBalancerLoadBalancerSecurityGroup",
+ "description": "Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Application Load balancer name.\n"
+ },
+ "networks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerNetwork:ApplicationLoadBalancerNetwork"
+ },
+ "description": "List of networks that listeners and targets reside in.\n"
+ },
+ "options": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerOptions:ApplicationLoadBalancerOptions",
+ "description": "Defines any optional functionality you want to have enabled on your Application Load Balancer.\n"
+ },
+ "planId": {
+ "type": "string",
+ "description": "Service Plan configures the size of the Application Load Balancer e.g. 'p10'. See available plans via STACKIT CLI 'stackit beta alb plans' or API https://docs.api.stackit.cloud/documentation/alb/version/v2#tag/Project/operation/APIService_ListPlans\n"
+ },
+ "privateAddress": {
+ "type": "string"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "STACKIT project ID to which the Application Load Balancer is associated.\n"
+ },
+ "region": {
+ "type": "string",
+ "description": "The resource region (e.g. eu01). If not defined, the provider region is used.\n"
+ },
+ "targetPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerTargetPool:ApplicationLoadBalancerTargetPool"
+ },
+ "description": "List of all target pools which will be used in the Application Load Balancer. Limited to 20.\n"
+ },
+ "targetSecurityGroup": {
+ "$ref": "#/types/stackit:index/ApplicationLoadBalancerTargetSecurityGroup:ApplicationLoadBalancerTargetSecurityGroup",
+ "description": "Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets.\n"
},
- "region": {
+ "version": {
"type": "string",
- "description": "The resource region. If not defined, the provider region is used.\n"
+ "description": "Application Load Balancer resource version. Used for concurrency safe updates.\n"
}
},
"type": "object"
@@ -14717,7 +16130,7 @@
}
},
"stackit:index/serverBackupSchedule:ServerBackupSchedule": {
- "description": "Server backup schedule resource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n\u003e This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.\n\n## Example Usage\n\n```terraform\nresource \"stackit_server_backup_schedule\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n server_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example_backup_schedule_name\"\n rrule = \"DTSTART;TZID=Europe/Sofia:20200803T023000 RRULE:FREQ=DAILY;INTERVAL=1\"\n enabled = true\n backup_properties = {\n name = \"example_backup_name\"\n retention_period = 14\n volume_ids = null\n }\n}\n\n# Only use the import statement, if you want to import an existing server backup schedule\nimport {\n to = stackit_server_backup_schedule.import-example\n id = \"${var.project_id},${var.region},${var.server_id},${var.server_backup_schedule_id}\"\n}\n```\n",
+ "description": "Server backup schedule resource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n## Example Usage\n\n```terraform\nresource \"stackit_server_backup_schedule\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n server_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example_backup_schedule_name\"\n rrule = \"DTSTART;TZID=Europe/Sofia:20200803T023000 RRULE:FREQ=DAILY;INTERVAL=1\"\n enabled = true\n backup_properties = {\n name = \"example_backup_name\"\n retention_period = 14\n volume_ids = null\n }\n}\n\n# Only use the import statement, if you want to import an existing server backup schedule\nimport {\n to = stackit_server_backup_schedule.import-example\n id = \"${var.project_id},${var.region},${var.server_id},${var.server_backup_schedule_id}\"\n}\n```\n",
"properties": {
"backupProperties": {
"$ref": "#/types/stackit:index/ServerBackupScheduleBackupProperties:ServerBackupScheduleBackupProperties",
@@ -14983,7 +16396,7 @@
}
},
"stackit:index/serverUpdateSchedule:ServerUpdateSchedule": {
- "description": "Server update schedule resource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n\u003e This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.\n\n## Example Usage\n\n```terraform\nresource \"stackit_server_update_schedule\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n server_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example_update_schedule_name\"\n rrule = \"DTSTART;TZID=Europe/Sofia:20200803T023000 RRULE:FREQ=DAILY;INTERVAL=1\"\n enabled = true\n maintenance_window = 1\n}\n\n# Only use the import statement, if you want to import an existing server update schedule\nimport {\n to = stackit_server_update_schedule.import-example\n id = \"${var.project_id},${var.region},${var.server_id},${var.server_update_schedule_id}\"\n}\n```\n",
+ "description": "Server update schedule resource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n## Example Usage\n\n```terraform\nresource \"stackit_server_update_schedule\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n server_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example_update_schedule_name\"\n rrule = \"DTSTART;TZID=Europe/Sofia:20200803T023000 RRULE:FREQ=DAILY;INTERVAL=1\"\n enabled = true\n maintenance_window = 1\n}\n\n# Only use the import statement, if you want to import an existing server update schedule\nimport {\n to = stackit_server_update_schedule.import-example\n id = \"${var.project_id},${var.region},${var.server_id},${var.server_update_schedule_id}\"\n}\n```\n",
"properties": {
"enabled": {
"type": "boolean",
@@ -15190,12 +16603,17 @@
"projectId": {
"type": "string",
"description": "STACKIT project ID to which the service account is associated.\n"
+ },
+ "serviceAccountId": {
+ "type": "string",
+ "description": "The internal UUID of the service account.\n"
}
},
"required": [
"email",
"name",
- "projectId"
+ "projectId",
+ "serviceAccountId"
],
"inputProperties": {
"name": {
@@ -15224,132 +16642,10 @@
"projectId": {
"type": "string",
"description": "STACKIT project ID to which the service account is associated.\n"
- }
- },
- "type": "object"
- }
- },
- "stackit:index/serviceAccountAccessToken:ServiceAccountAccessToken": {
- "description": "Service account access token schema.\n\n!\u003e This resource is scheduled for deprecation and will be removed on December 17, 2025. To ensure a smooth transition, please refer to our migration guide at https://docs.stackit.cloud/platform/access-and-identity/service-accounts/migrate-flows/ for detailed instructions and recommendations.\n\n## Example Usage\n\n### Automatically rotate access tokens\n```terraform\nresource \"stackit_service_account\" \"sa\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"sa01\"\n}\n\nresource \"time_rotating\" \"rotate\" {\n rotation_days = 80\n}\n\nresource \"stackit_service_account_access_token\" \"sa_token\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n service_account_email = stackit_service_account.sa.email\n ttl_days = 180\n\n rotate_when_changed = {\n rotation = time_rotating.rotate.id\n }\n}\n\n```\n",
- "properties": {
- "accessTokenId": {
- "type": "string",
- "description": "Identifier for the access token linked to the service account.\n"
- },
- "active": {
- "type": "boolean",
- "description": "Indicate whether the token is currently active or inactive\n"
- },
- "createdAt": {
- "type": "string",
- "description": "Timestamp indicating when the access token was created.\n"
- },
- "projectId": {
- "type": "string",
- "description": "STACKIT project ID associated with the service account token.\n"
- },
- "rotateWhenChanged": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "description": "A map of arbitrary key/value pairs that will force recreation of the token when they change, enabling token rotation based on external conditions such as a rotating timestamp. Changing this forces a new resource to be created.\n"
- },
- "serviceAccountEmail": {
- "type": "string",
- "description": "Email address linked to the service account.\n"
- },
- "token": {
- "type": "string",
- "description": "JWT access token for API authentication. Prefixed by 'Bearer' and should be stored securely as it is irretrievable once lost.\n",
- "secret": true
- },
- "ttlDays": {
- "type": "integer",
- "description": "Specifies the token's validity duration in days. If unspecified, defaults to 90 days.\n"
- },
- "validUntil": {
- "type": "string",
- "description": "Estimated expiration timestamp of the access token. For precise validity, check the JWT details.\n"
- }
- },
- "required": [
- "accessTokenId",
- "active",
- "createdAt",
- "projectId",
- "serviceAccountEmail",
- "token",
- "ttlDays",
- "validUntil"
- ],
- "inputProperties": {
- "projectId": {
- "type": "string",
- "description": "STACKIT project ID associated with the service account token.\n"
- },
- "rotateWhenChanged": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "description": "A map of arbitrary key/value pairs that will force recreation of the token when they change, enabling token rotation based on external conditions such as a rotating timestamp. Changing this forces a new resource to be created.\n"
- },
- "serviceAccountEmail": {
- "type": "string",
- "description": "Email address linked to the service account.\n"
- },
- "ttlDays": {
- "type": "integer",
- "description": "Specifies the token's validity duration in days. If unspecified, defaults to 90 days.\n"
- }
- },
- "requiredInputs": [
- "projectId",
- "serviceAccountEmail"
- ],
- "stateInputs": {
- "description": "Input properties used for looking up and filtering ServiceAccountAccessToken resources.\n",
- "properties": {
- "accessTokenId": {
- "type": "string",
- "description": "Identifier for the access token linked to the service account.\n"
- },
- "active": {
- "type": "boolean",
- "description": "Indicate whether the token is currently active or inactive\n"
- },
- "createdAt": {
- "type": "string",
- "description": "Timestamp indicating when the access token was created.\n"
- },
- "projectId": {
- "type": "string",
- "description": "STACKIT project ID associated with the service account token.\n"
- },
- "rotateWhenChanged": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "description": "A map of arbitrary key/value pairs that will force recreation of the token when they change, enabling token rotation based on external conditions such as a rotating timestamp. Changing this forces a new resource to be created.\n"
- },
- "serviceAccountEmail": {
- "type": "string",
- "description": "Email address linked to the service account.\n"
- },
- "token": {
- "type": "string",
- "description": "JWT access token for API authentication. Prefixed by 'Bearer' and should be stored securely as it is irretrievable once lost.\n",
- "secret": true
- },
- "ttlDays": {
- "type": "integer",
- "description": "Specifies the token's validity duration in days. If unspecified, defaults to 90 days.\n"
},
- "validUntil": {
+ "serviceAccountId": {
"type": "string",
- "description": "Estimated expiration timestamp of the access token. For precise validity, check the JWT details.\n"
+ "description": "The internal UUID of the service account.\n"
}
},
"type": "object"
@@ -16692,6 +17988,134 @@
]
}
},
+ "stackit:index/getApplicationLoadBalancer:getApplicationLoadBalancer": {
+ "description": "Application Load Balancer data source schema. Must have a region specified in the provider configuration.\n\n## Example Usage\n\n```terraform\ndata \"stackit_application_load_balancer\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-load-balancer\"\n}\n```\n",
+ "inputs": {
+ "description": "A collection of arguments for invoking getApplicationLoadBalancer.\n",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Application Load balancer name.\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "STACKIT project ID to which the Application Load Balancer is associated.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "name",
+ "projectId"
+ ]
+ },
+ "outputs": {
+ "description": "A collection of values returned by getApplicationLoadBalancer.\n",
+ "properties": {
+ "disableTargetSecurityGroupAssignment": {
+ "type": "boolean",
+ "description": "Disable target security group assignemt to allow targets outside of the given network. Connectivity to targets need to be ensured by the customer, including routing and Security Groups (targetSecurityGroup can be assigned). Not changeable after creation.\n"
+ },
+ "errors": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerError:getApplicationLoadBalancerError"
+ },
+ "description": "Reports all errors a Application Load Balancer has.\n"
+ },
+ "externalAddress": {
+ "type": "string",
+ "description": "The external IP address where this Application Load Balancer is exposed. Not changeable after creation.\n"
+ },
+ "id": {
+ "type": "string",
+ "description": "Terraform's internal resource ID. It is structured as \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"
+ },
+ "labels": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB.\n"
+ },
+ "listeners": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerListener:getApplicationLoadBalancerListener"
+ },
+ "description": "List of all listeners which will accept traffic. Limited to 20.\n"
+ },
+ "loadBalancerSecurityGroup": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerLoadBalancerSecurityGroup:getApplicationLoadBalancerLoadBalancerSecurityGroup",
+ "description": "Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Application Load balancer name.\n"
+ },
+ "networks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerNetwork:getApplicationLoadBalancerNetwork"
+ },
+ "description": "List of networks that listeners and targets reside in.\n"
+ },
+ "options": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerOptions:getApplicationLoadBalancerOptions",
+ "description": "Defines any optional functionality you want to have enabled on your Application Load Balancer.\n"
+ },
+ "planId": {
+ "type": "string",
+ "description": "Service Plan configures the size of the Application Load Balancer.\n"
+ },
+ "privateAddress": {
+ "type": "string"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "STACKIT project ID to which the Application Load Balancer is associated.\n"
+ },
+ "region": {
+ "type": "string",
+ "description": "The resource region. If not defined, the provider region is used.\n"
+ },
+ "targetPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerTargetPool:getApplicationLoadBalancerTargetPool"
+ },
+ "description": "List of all target pools which will be used in the Application Load Balancer. Limited to 20.\n"
+ },
+ "targetSecurityGroup": {
+ "$ref": "#/types/stackit:index/getApplicationLoadBalancerTargetSecurityGroup:getApplicationLoadBalancerTargetSecurityGroup",
+ "description": "Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets.\n"
+ },
+ "version": {
+ "type": "string",
+ "description": "Application Load Balancer resource version. Used for concurrency safe updates.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "disableTargetSecurityGroupAssignment",
+ "errors",
+ "externalAddress",
+ "id",
+ "labels",
+ "listeners",
+ "loadBalancerSecurityGroup",
+ "name",
+ "networks",
+ "options",
+ "planId",
+ "privateAddress",
+ "projectId",
+ "region",
+ "targetPools",
+ "targetSecurityGroup",
+ "version"
+ ]
+ }
+ },
"stackit:index/getAuthorizationProjectCustomRole:getAuthorizationProjectCustomRole": {
"description": "Custom Role resource schema.\n\n## Example Usage\n\n```terraform\ndata \"stackit_authorization_project_custom_role\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"my.custom.role\"\n}\n```\n",
"inputs": {
@@ -22006,7 +23430,7 @@
}
},
"stackit:index/getServerBackupSchedule:getServerBackupSchedule": {
- "description": "Server backup schedule datasource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n\u003e This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.\n\n## Example Usage\n\n```terraform\ndata \"stackit_server_backup_schedule\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n server_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n backup_schedule_id = xxxxx\n}\n```\n",
+ "description": "Server backup schedule datasource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n## Example Usage\n\n```terraform\ndata \"stackit_server_backup_schedule\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n server_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n backup_schedule_id = xxxxx\n}\n```\n",
"inputs": {
"description": "A collection of arguments for invoking getServerBackupSchedule.\n",
"properties": {
@@ -22088,7 +23512,7 @@
}
},
"stackit:index/getServerBackupSchedules:getServerBackupSchedules": {
- "description": "Server backup schedules datasource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n\u003e This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.\n\n## Example Usage\n\n```terraform\ndata \"stackit_server_backup_schedules\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n server_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n```\n",
+ "description": "Server backup schedules datasource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n## Example Usage\n\n```terraform\ndata \"stackit_server_backup_schedules\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n server_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n```\n",
"inputs": {
"description": "A collection of arguments for invoking getServerBackupSchedules.\n",
"properties": {
@@ -22147,7 +23571,7 @@
}
},
"stackit:index/getServerUpdateSchedule:getServerUpdateSchedule": {
- "description": "Server update schedule datasource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n\u003e This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.\n\n## Example Usage\n\n```terraform\ndata \"stackit_server_update_schedule\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n server_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n update_schedule_id = xxxxx\n}\n```\n",
+ "description": "Server update schedule datasource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n## Example Usage\n\n```terraform\ndata \"stackit_server_update_schedule\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n server_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n update_schedule_id = xxxxx\n}\n```\n",
"inputs": {
"description": "A collection of arguments for invoking getServerUpdateSchedule.\n",
"properties": {
@@ -22229,7 +23653,7 @@
}
},
"stackit:index/getServerUpdateSchedules:getServerUpdateSchedules": {
- "description": "Server update schedules datasource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n\u003e This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.\n\n## Example Usage\n\n```terraform\ndata \"stackit_server_update_schedules\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n server_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n```\n",
+ "description": "Server update schedules datasource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n## Example Usage\n\n```terraform\ndata \"stackit_server_update_schedules\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n server_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n```\n",
"inputs": {
"description": "A collection of arguments for invoking getServerUpdateSchedules.\n",
"properties": {
@@ -22325,6 +23749,10 @@
"projectId": {
"type": "string",
"description": "STACKIT project ID to which the service account is associated.\n"
+ },
+ "serviceAccountId": {
+ "type": "string",
+ "description": "The internal UUID of the service account.\n"
}
},
"type": "object",
@@ -22332,6 +23760,73 @@
"email",
"id",
"name",
+ "projectId",
+ "serviceAccountId"
+ ]
+ }
+ },
+ "stackit:index/getServiceAccounts:getServiceAccounts": {
+ "description": "Service accounts plural data source schema. Returns a list of all service accounts in a project, optionally filtered.\n\n## Example Usage\n\n```terraform\ndata \"stackit_service_accounts\" \"all_sas\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n\ndata \"stackit_service_accounts\" \"sas_default_suffix\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n email_suffix = \"@sa.stackit.cloud\"\n}\n\ndata \"stackit_service_accounts\" \"sas_default_suffix_sort_asc\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n email_suffix = \"@sa.stackit.cloud\"\n sort_ascending = true\n}\n\ndata \"stackit_service_accounts\" \"sas_ske_regex\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n email_regex = \".*@ske\\\\.sa\\\\.stackit\\\\.cloud$\"\n}\n\ndata \"stackit_service_accounts\" \"sas_ske_suffix\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n email_suffix = \"@ske.sa.stackit.cloud\"\n}\n```\n",
+ "inputs": {
+ "description": "A collection of arguments for invoking getServiceAccounts.\n",
+ "properties": {
+ "emailRegex": {
+ "type": "string",
+ "description": "Optional regular expression to filter service accounts by email.\n"
+ },
+ "emailSuffix": {
+ "type": "string",
+ "description": "Optional suffix to filter service accounts by email (e.g.,`@sa.stackit.cloud`, `@ske.sa.stackit.cloud`).\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "STACKIT project ID.\n"
+ },
+ "sortAscending": {
+ "type": "boolean",
+ "description": "If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, service accounts are sorted in ascending lexicographical order by email. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (descending).\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "projectId"
+ ]
+ },
+ "outputs": {
+ "description": "A collection of values returned by getServiceAccounts.\n",
+ "properties": {
+ "emailRegex": {
+ "type": "string",
+ "description": "Optional regular expression to filter service accounts by email.\n"
+ },
+ "emailSuffix": {
+ "type": "string",
+ "description": "Optional suffix to filter service accounts by email (e.g.,`@sa.stackit.cloud`, `@ske.sa.stackit.cloud`).\n"
+ },
+ "id": {
+ "type": "string",
+ "description": "Terraform's internal resource ID, structured as \"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e\".\n"
+ },
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/stackit:index/getServiceAccountsItem:getServiceAccountsItem"
+ },
+ "description": "The list of service accounts matching the provided filters.\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "STACKIT project ID.\n"
+ },
+ "sortAscending": {
+ "type": "boolean",
+ "description": "If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, service accounts are sorted in ascending lexicographical order by email. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (descending).\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "id",
+ "items",
"projectId"
]
}
diff --git a/provider/go.mod b/provider/go.mod
index 69d5367..33ea436 100644
--- a/provider/go.mod
+++ b/provider/go.mod
@@ -87,7 +87,7 @@ require (
github.com/hashicorp/logutils v1.0.0 // indirect
github.com/hashicorp/terraform-plugin-framework v1.17.0 // indirect
github.com/hashicorp/terraform-plugin-framework-validators v0.19.0 // indirect
- github.com/hashicorp/terraform-plugin-go v0.29.0 // indirect
+ github.com/hashicorp/terraform-plugin-go v0.30.0 // indirect
github.com/hashicorp/terraform-plugin-log v0.10.0 // indirect
github.com/hashicorp/terraform-plugin-sdk v1.8.0 // indirect
github.com/hashicorp/terraform-plugin-sdk/v2 v2.38.1 // indirect
@@ -159,6 +159,7 @@ require (
github.com/spf13/cobra v1.10.1 // indirect
github.com/spf13/pflag v1.0.10 // indirect
github.com/stackitcloud/stackit-sdk-go/core v0.22.0 // indirect
+ github.com/stackitcloud/stackit-sdk-go/services/alb v0.9.3 // indirect
github.com/stackitcloud/stackit-sdk-go/services/authorization v0.12.0 // indirect
github.com/stackitcloud/stackit-sdk-go/services/cdn v1.10.0 // indirect
github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.6 // indirect
@@ -188,7 +189,7 @@ require (
github.com/stackitcloud/stackit-sdk-go/services/sfs v0.4.0 // indirect
github.com/stackitcloud/stackit-sdk-go/services/ske v1.7.0 // indirect
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.4.3 // indirect
- github.com/stackitcloud/terraform-provider-stackit v0.84.0 // indirect
+ github.com/stackitcloud/terraform-provider-stackit v0.85.0 // indirect
github.com/stretchr/objx v0.5.2 // indirect
github.com/teambition/rrule-go v1.8.2 // indirect
github.com/teekennedy/goldmark-markdown v0.3.0 // indirect
@@ -227,7 +228,7 @@ require (
google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409 // indirect
- google.golang.org/grpc v1.78.0 // indirect
+ google.golang.org/grpc v1.79.1 // indirect
google.golang.org/protobuf v1.36.11 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
diff --git a/provider/go.sum b/provider/go.sum
index ba04e14..72c21a6 100644
--- a/provider/go.sum
+++ b/provider/go.sum
@@ -771,8 +771,8 @@ github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWH
github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
-github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f h1:Y8xYupdHxryycyPlc9Y+bSQAYZnetRJ70VMVKm5CKI0=
-github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f/go.mod h1:HlzOvOjVBOfTGSRXRyY0OiCS/3J1akRGQQpRO/7zyF4=
+github.com/cncf/xds/go v0.0.0-20251210132809-ee656c7534f5 h1:6xNmx7iTtyBRev0+D/Tv1FZd4SCg8axKApyNyRsAt/w=
+github.com/cncf/xds/go v0.0.0-20251210132809-ee656c7534f5/go.mod h1:KdCmV+x/BuvyMxRnYBlmVaq4OLiKW6iRQfvC62cvdkI=
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s=
@@ -804,15 +804,15 @@ github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.
github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE=
github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34=
github.com/envoyproxy/go-control-plane v0.11.1-0.20230524094728-9239064ad72f/go.mod h1:sfYdkwUW4BA3PbKjySwjJy+O4Pu0h62rlqCMHNk+K+Q=
-github.com/envoyproxy/go-control-plane v0.13.5-0.20251024222203-75eaa193e329 h1:K+fnvUM0VZ7ZFJf0n4L/BRlnsb9pL/GuDG6FqaH+PwM=
-github.com/envoyproxy/go-control-plane/envoy v1.35.0 h1:ixjkELDE+ru6idPxcHLj8LBVc2bFP7iBytj353BoHUo=
-github.com/envoyproxy/go-control-plane/envoy v1.35.0/go.mod h1:09qwbGVuSWWAyN5t/b3iyVfz5+z8QWGrzkoqm/8SbEs=
+github.com/envoyproxy/go-control-plane v0.14.0 h1:hbG2kr4RuFj222B6+7T83thSPqLjwBIfQawTkC++2HA=
+github.com/envoyproxy/go-control-plane/envoy v1.36.0 h1:yg/JjO5E7ubRyKX3m07GF3reDNEnfOboJ0QySbH736g=
+github.com/envoyproxy/go-control-plane/envoy v1.36.0/go.mod h1:ty89S1YCCVruQAm9OtKeEkQLTb+Lkz0k8v9W0Oxsv98=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo=
github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w=
github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss=
-github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8=
-github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU=
+github.com/envoyproxy/protoc-gen-validate v1.3.0 h1:TvGH1wof4H33rezVKWSpqKz5NXWg5VPuZ0uONDT6eb4=
+github.com/envoyproxy/protoc-gen-validate v1.3.0/go.mod h1:HvYl7zwPa5mffgyeTUHA9zHIH36nmrm7oCbo4YKoSWA=
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4=
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM=
github.com/ettle/strcase v0.1.1 h1:htFueZyVeE1XNnMEfbqp5r67qAN/4r6ya1ysq8Q+Zcw=
@@ -1069,8 +1069,8 @@ github.com/hashicorp/terraform-plugin-framework v1.17.0 h1:JdX50CFrYcYFY31gkmitA
github.com/hashicorp/terraform-plugin-framework v1.17.0/go.mod h1:4OUXKdHNosX+ys6rLgVlgklfxN3WHR5VHSOABeS/BM0=
github.com/hashicorp/terraform-plugin-framework-validators v0.19.0 h1:Zz3iGgzxe/1XBkooZCewS0nJAaCFPFPHdNJd8FgE4Ow=
github.com/hashicorp/terraform-plugin-framework-validators v0.19.0/go.mod h1:GBKTNGbGVJohU03dZ7U8wHqc2zYnMUawgCN+gC0itLc=
-github.com/hashicorp/terraform-plugin-go v0.29.0 h1:1nXKl/nSpaYIUBU1IG/EsDOX0vv+9JxAltQyDMpq5mU=
-github.com/hashicorp/terraform-plugin-go v0.29.0/go.mod h1:vYZbIyvxyy0FWSmDHChCqKvI40cFTDGSb3D8D70i9GM=
+github.com/hashicorp/terraform-plugin-go v0.30.0 h1:VmEiD0n/ewxbvV5VI/bYwNtlSEAXtHaZlSnyUUuQK6k=
+github.com/hashicorp/terraform-plugin-go v0.30.0/go.mod h1:8d523ORAW8OHgA9e8JKg0ezL3XUO84H0A25o4NY/jRo=
github.com/hashicorp/terraform-plugin-log v0.10.0 h1:eu2kW6/QBVdN4P3Ju2WiB2W3ObjkAsyfBsL3Wh1fj3g=
github.com/hashicorp/terraform-plugin-log v0.10.0/go.mod h1:/9RR5Cv2aAbrqcTSdNmY1NRHP4E3ekrXRGjqORpXyB0=
github.com/hashicorp/terraform-plugin-sdk v1.8.0 h1:HE1p52nzcgz88hIJmapUnkmM9noEjV3QhTOLaua5XUA=
@@ -1361,6 +1361,8 @@ github.com/stackitcloud/pulumi-stackit/provider/shim v0.0.4 h1:C6YSEpAFsmavh/wy0
github.com/stackitcloud/pulumi-stackit/provider/shim v0.0.4/go.mod h1:DDrLX3EDbx+Io+VLewkoXPvJlF8v5my0FStfWSion0c=
github.com/stackitcloud/stackit-sdk-go/core v0.22.0 h1:6rViz7GnNwXSh51Lur5xuDzO8EWSZfN9J0HvEkBKq6c=
github.com/stackitcloud/stackit-sdk-go/core v0.22.0/go.mod h1:osMglDby4csGZ5sIfhNyYq1bS1TxIdPY88+skE/kkmI=
+github.com/stackitcloud/stackit-sdk-go/services/alb v0.9.3 h1:X82TZfc6lg8ZoYdckiv5+OsV0d+81Q2TFMJh1TfxGWk=
+github.com/stackitcloud/stackit-sdk-go/services/alb v0.9.3/go.mod h1:V6+MolxM/M2FWyWZA+FRFKEzzUe10MU9eEVfMvxHGi8=
github.com/stackitcloud/stackit-sdk-go/services/authorization v0.12.0 h1:HxPgBu04j5tj6nfZ2r0l6v4VXC0/tYOGe4sA5Addra8=
github.com/stackitcloud/stackit-sdk-go/services/authorization v0.12.0/go.mod h1:uYI9pHAA2g84jJN25ejFUxa0/JtfpPZqMDkctQ1BzJk=
github.com/stackitcloud/stackit-sdk-go/services/cdn v1.10.0 h1:YALzjYAApyQMKyt4C2LKhPRZHa6brmbFeKuuwl+KOTs=
@@ -1419,8 +1421,8 @@ github.com/stackitcloud/stackit-sdk-go/services/ske v1.7.0 h1:l1QjxW7sdE/6B6BZtH
github.com/stackitcloud/stackit-sdk-go/services/ske v1.7.0/go.mod h1:1Jr+ImrmPERxbYnlTy6O2aSZYNnREf2qQyysv6YC1RY=
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.4.3 h1:AQrcr+qeIuZob+3TT2q1L4WOPtpsu5SEpkTnOUHDqfE=
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.4.3/go.mod h1:8BBGC69WFXWWmKgzSjgE4HvsI7pEgO0RN2cASwuPJ18=
-github.com/stackitcloud/terraform-provider-stackit v0.84.0 h1:AMjq5suICrR7cIFKW/t2jQAH+P3XSPkouILdHAtXZhk=
-github.com/stackitcloud/terraform-provider-stackit v0.84.0/go.mod h1:Tr+uP+9vMFvAkkEtchlymcz+hZrgeo9Tq0R8+uWg1i0=
+github.com/stackitcloud/terraform-provider-stackit v0.85.0 h1:KM6AelWlG91LJZuo4FPSAJM8WS98q8eDq0j2L+SHqDM=
+github.com/stackitcloud/terraform-provider-stackit v0.85.0/go.mod h1:mdnfPOnH9cg/xdRYSe7Jgv+ayon5CODmz3yo9SXAigc=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
@@ -2211,8 +2213,8 @@ google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5v
google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw=
google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g=
google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
-google.golang.org/grpc v1.78.0 h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc=
-google.golang.org/grpc v1.78.0/go.mod h1:I47qjTo4OKbMkjA/aOOwxDIiPSBofUtQUI5EfpWvW7U=
+google.golang.org/grpc v1.79.1 h1:zGhSi45ODB9/p3VAawt9a+O/MULLl9dpizzNNpq7flY=
+google.golang.org/grpc v1.79.1/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
diff --git a/provider/shim/go.mod b/provider/shim/go.mod
index 094bdfc..7793070 100644
--- a/provider/shim/go.mod
+++ b/provider/shim/go.mod
@@ -4,9 +4,10 @@ go 1.24.0
toolchain go1.24.2
-require github.com/stackitcloud/terraform-provider-stackit v0.84.0
+require github.com/stackitcloud/terraform-provider-stackit v0.85.0
require (
+ github.com/stackitcloud/stackit-sdk-go/services/alb v0.9.3 // indirect
github.com/stackitcloud/stackit-sdk-go/services/edge v0.4.3 // indirect
github.com/stackitcloud/stackit-sdk-go/services/kms v1.3.2 // indirect
github.com/stackitcloud/stackit-sdk-go/services/logs v0.5.2 // indirect
@@ -14,8 +15,6 @@ require (
github.com/stackitcloud/stackit-sdk-go/services/sfs v0.4.0 // indirect
github.com/stretchr/testify v1.11.1 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409 // indirect
- google.golang.org/grpc v1.78.0 // indirect
- google.golang.org/protobuf v1.36.11 // indirect
)
require (
@@ -27,7 +26,7 @@ require (
github.com/hashicorp/go-hclog v1.6.3 // indirect
github.com/hashicorp/terraform-plugin-framework v1.17.0
github.com/hashicorp/terraform-plugin-framework-validators v0.19.0 // indirect
- github.com/hashicorp/terraform-plugin-go v0.29.0 // indirect
+ github.com/hashicorp/terraform-plugin-go v0.30.0 // indirect
github.com/hashicorp/terraform-plugin-log v0.10.0 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
diff --git a/provider/shim/go.sum b/provider/shim/go.sum
index 54c7e1e..3936b8b 100644
--- a/provider/shim/go.sum
+++ b/provider/shim/go.sum
@@ -47,8 +47,8 @@ github.com/hashicorp/terraform-plugin-framework v1.17.0 h1:JdX50CFrYcYFY31gkmitA
github.com/hashicorp/terraform-plugin-framework v1.17.0/go.mod h1:4OUXKdHNosX+ys6rLgVlgklfxN3WHR5VHSOABeS/BM0=
github.com/hashicorp/terraform-plugin-framework-validators v0.19.0 h1:Zz3iGgzxe/1XBkooZCewS0nJAaCFPFPHdNJd8FgE4Ow=
github.com/hashicorp/terraform-plugin-framework-validators v0.19.0/go.mod h1:GBKTNGbGVJohU03dZ7U8wHqc2zYnMUawgCN+gC0itLc=
-github.com/hashicorp/terraform-plugin-go v0.29.0 h1:1nXKl/nSpaYIUBU1IG/EsDOX0vv+9JxAltQyDMpq5mU=
-github.com/hashicorp/terraform-plugin-go v0.29.0/go.mod h1:vYZbIyvxyy0FWSmDHChCqKvI40cFTDGSb3D8D70i9GM=
+github.com/hashicorp/terraform-plugin-go v0.30.0 h1:VmEiD0n/ewxbvV5VI/bYwNtlSEAXtHaZlSnyUUuQK6k=
+github.com/hashicorp/terraform-plugin-go v0.30.0/go.mod h1:8d523ORAW8OHgA9e8JKg0ezL3XUO84H0A25o4NY/jRo=
github.com/hashicorp/terraform-plugin-log v0.10.0 h1:eu2kW6/QBVdN4P3Ju2WiB2W3ObjkAsyfBsL3Wh1fj3g=
github.com/hashicorp/terraform-plugin-log v0.10.0/go.mod h1:/9RR5Cv2aAbrqcTSdNmY1NRHP4E3ekrXRGjqORpXyB0=
github.com/hashicorp/terraform-plugin-sdk/v2 v2.38.1 h1:mlAq/OrMlg04IuJT7NpefI1wwtdpWudnEmjuQs04t/4=
@@ -84,6 +84,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/stackitcloud/stackit-sdk-go/core v0.22.0 h1:6rViz7GnNwXSh51Lur5xuDzO8EWSZfN9J0HvEkBKq6c=
github.com/stackitcloud/stackit-sdk-go/core v0.22.0/go.mod h1:osMglDby4csGZ5sIfhNyYq1bS1TxIdPY88+skE/kkmI=
+github.com/stackitcloud/stackit-sdk-go/services/alb v0.9.3 h1:X82TZfc6lg8ZoYdckiv5+OsV0d+81Q2TFMJh1TfxGWk=
+github.com/stackitcloud/stackit-sdk-go/services/alb v0.9.3/go.mod h1:V6+MolxM/M2FWyWZA+FRFKEzzUe10MU9eEVfMvxHGi8=
github.com/stackitcloud/stackit-sdk-go/services/authorization v0.12.0 h1:HxPgBu04j5tj6nfZ2r0l6v4VXC0/tYOGe4sA5Addra8=
github.com/stackitcloud/stackit-sdk-go/services/authorization v0.12.0/go.mod h1:uYI9pHAA2g84jJN25ejFUxa0/JtfpPZqMDkctQ1BzJk=
github.com/stackitcloud/stackit-sdk-go/services/cdn v1.10.0 h1:YALzjYAApyQMKyt4C2LKhPRZHa6brmbFeKuuwl+KOTs=
@@ -142,8 +144,8 @@ github.com/stackitcloud/stackit-sdk-go/services/ske v1.7.0 h1:l1QjxW7sdE/6B6BZtH
github.com/stackitcloud/stackit-sdk-go/services/ske v1.7.0/go.mod h1:1Jr+ImrmPERxbYnlTy6O2aSZYNnREf2qQyysv6YC1RY=
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.4.3 h1:AQrcr+qeIuZob+3TT2q1L4WOPtpsu5SEpkTnOUHDqfE=
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.4.3/go.mod h1:8BBGC69WFXWWmKgzSjgE4HvsI7pEgO0RN2cASwuPJ18=
-github.com/stackitcloud/terraform-provider-stackit v0.84.0 h1:AMjq5suICrR7cIFKW/t2jQAH+P3XSPkouILdHAtXZhk=
-github.com/stackitcloud/terraform-provider-stackit v0.84.0/go.mod h1:Tr+uP+9vMFvAkkEtchlymcz+hZrgeo9Tq0R8+uWg1i0=
+github.com/stackitcloud/terraform-provider-stackit v0.85.0 h1:KM6AelWlG91LJZuo4FPSAJM8WS98q8eDq0j2L+SHqDM=
+github.com/stackitcloud/terraform-provider-stackit v0.85.0/go.mod h1:mdnfPOnH9cg/xdRYSe7Jgv+ayon5CODmz3yo9SXAigc=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
@@ -178,8 +180,11 @@ golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc=
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409 h1:H86B94AW+VfJWDqFeEbBPhEtHzJwJfTbgE2lZa54ZAQ=
-google.golang.org/grpc v1.78.0 h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ=
+google.golang.org/grpc v1.79.1 h1:zGhSi45ODB9/p3VAawt9a+O/MULLl9dpizzNNpq7flY=
+google.golang.org/grpc v1.79.1/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
+google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/sdk/dotnet/ApplicationLoadBalancer.cs b/sdk/dotnet/ApplicationLoadBalancer.cs
new file mode 100644
index 0000000..fc935e7
--- /dev/null
+++ b/sdk/dotnet/ApplicationLoadBalancer.cs
@@ -0,0 +1,388 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit
+{
+ ///
+ /// ## Setting up supporting infrastructure
+ ///
+ /// The example below creates the supporting infrastructure using the STACKIT Terraform provider, including the network, network interface, a public IP address and server resources.
+ ///
+ /// ## Example Usage
+ ///
+ [StackitResourceType("stackit:index/applicationLoadBalancer:ApplicationLoadBalancer")]
+ public partial class ApplicationLoadBalancer : global::Pulumi.CustomResource
+ {
+ ///
+ /// Disable target security group assignemt to allow targets outside of the given network. Connectivity to targets need to be ensured by the customer, including routing and Security Groups (targetSecurityGroup can be assigned). Not changeable after creation.
+ ///
+ [Output("disableTargetSecurityGroupAssignment")]
+ public Output DisableTargetSecurityGroupAssignment { get; private set; } = null!;
+
+ ///
+ /// Reports all errors a Application Load Balancer has.
+ ///
+ [Output("errors")]
+ public Output> Errors { get; private set; } = null!;
+
+ ///
+ /// The external IP address where this Application Load Balancer is exposed. Not changeable after creation.
+ ///
+ [Output("externalAddress")]
+ public Output ExternalAddress { get; private set; } = null!;
+
+ ///
+ /// Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB.
+ ///
+ [Output("labels")]
+ public Output?> Labels { get; private set; } = null!;
+
+ ///
+ /// List of all listeners which will accept traffic. Limited to 20.
+ ///
+ [Output("listeners")]
+ public Output> Listeners { get; private set; } = null!;
+
+ ///
+ /// Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets.
+ ///
+ [Output("loadBalancerSecurityGroup")]
+ public Output LoadBalancerSecurityGroup { get; private set; } = null!;
+
+ ///
+ /// Application Load balancer name.
+ ///
+ [Output("name")]
+ public Output Name { get; private set; } = null!;
+
+ ///
+ /// List of networks that listeners and targets reside in.
+ ///
+ [Output("networks")]
+ public Output> Networks { get; private set; } = null!;
+
+ ///
+ /// Defines any optional functionality you want to have enabled on your Application Load Balancer.
+ ///
+ [Output("options")]
+ public Output Options { get; private set; } = null!;
+
+ ///
+ /// Service Plan configures the size of the Application Load Balancer e.g. 'p10'. See available plans via STACKIT CLI 'stackit beta alb plans' or API https://docs.api.stackit.cloud/documentation/alb/version/v2#tag/Project/operation/APIService_ListPlans
+ ///
+ [Output("planId")]
+ public Output PlanId { get; private set; } = null!;
+
+ [Output("privateAddress")]
+ public Output PrivateAddress { get; private set; } = null!;
+
+ ///
+ /// STACKIT project ID to which the Application Load Balancer is associated.
+ ///
+ [Output("projectId")]
+ public Output ProjectId { get; private set; } = null!;
+
+ ///
+ /// The resource region (e.g. eu01). If not defined, the provider region is used.
+ ///
+ [Output("region")]
+ public Output Region { get; private set; } = null!;
+
+ ///
+ /// List of all target pools which will be used in the Application Load Balancer. Limited to 20.
+ ///
+ [Output("targetPools")]
+ public Output> TargetPools { get; private set; } = null!;
+
+ ///
+ /// Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets.
+ ///
+ [Output("targetSecurityGroup")]
+ public Output TargetSecurityGroup { get; private set; } = null!;
+
+ ///
+ /// Application Load Balancer resource version. Used for concurrency safe updates.
+ ///
+ [Output("version")]
+ public Output Version { get; private set; } = null!;
+
+
+ ///
+ /// Create a ApplicationLoadBalancer resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public ApplicationLoadBalancer(string name, ApplicationLoadBalancerArgs args, CustomResourceOptions? options = null)
+ : base("stackit:index/applicationLoadBalancer:ApplicationLoadBalancer", name, args ?? new ApplicationLoadBalancerArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private ApplicationLoadBalancer(string name, Input id, ApplicationLoadBalancerState? state = null, CustomResourceOptions? options = null)
+ : base("stackit:index/applicationLoadBalancer:ApplicationLoadBalancer", name, state, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ PluginDownloadURL = "github://api.github.com/stackitcloud/pulumi-stackit",
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing ApplicationLoadBalancer resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// Any extra arguments used during the lookup.
+ /// A bag of options that control this resource's behavior
+ public static ApplicationLoadBalancer Get(string name, Input id, ApplicationLoadBalancerState? state = null, CustomResourceOptions? options = null)
+ {
+ return new ApplicationLoadBalancer(name, id, state, options);
+ }
+ }
+
+ public sealed class ApplicationLoadBalancerArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Disable target security group assignemt to allow targets outside of the given network. Connectivity to targets need to be ensured by the customer, including routing and Security Groups (targetSecurityGroup can be assigned). Not changeable after creation.
+ ///
+ [Input("disableTargetSecurityGroupAssignment")]
+ public Input? DisableTargetSecurityGroupAssignment { get; set; }
+
+ ///
+ /// The external IP address where this Application Load Balancer is exposed. Not changeable after creation.
+ ///
+ [Input("externalAddress")]
+ public Input? ExternalAddress { get; set; }
+
+ [Input("labels")]
+ private InputMap? _labels;
+
+ ///
+ /// Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB.
+ ///
+ public InputMap Labels
+ {
+ get => _labels ?? (_labels = new InputMap());
+ set => _labels = value;
+ }
+
+ [Input("listeners", required: true)]
+ private InputList? _listeners;
+
+ ///
+ /// List of all listeners which will accept traffic. Limited to 20.
+ ///
+ public InputList Listeners
+ {
+ get => _listeners ?? (_listeners = new InputList());
+ set => _listeners = value;
+ }
+
+ ///
+ /// Application Load balancer name.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ [Input("networks", required: true)]
+ private InputList? _networks;
+
+ ///
+ /// List of networks that listeners and targets reside in.
+ ///
+ public InputList Networks
+ {
+ get => _networks ?? (_networks = new InputList());
+ set => _networks = value;
+ }
+
+ ///
+ /// Defines any optional functionality you want to have enabled on your Application Load Balancer.
+ ///
+ [Input("options")]
+ public Input? Options { get; set; }
+
+ ///
+ /// Service Plan configures the size of the Application Load Balancer e.g. 'p10'. See available plans via STACKIT CLI 'stackit beta alb plans' or API https://docs.api.stackit.cloud/documentation/alb/version/v2#tag/Project/operation/APIService_ListPlans
+ ///
+ [Input("planId", required: true)]
+ public Input PlanId { get; set; } = null!;
+
+ ///
+ /// STACKIT project ID to which the Application Load Balancer is associated.
+ ///
+ [Input("projectId", required: true)]
+ public Input ProjectId { get; set; } = null!;
+
+ ///
+ /// The resource region (e.g. eu01). If not defined, the provider region is used.
+ ///
+ [Input("region")]
+ public Input? Region { get; set; }
+
+ [Input("targetPools", required: true)]
+ private InputList? _targetPools;
+
+ ///
+ /// List of all target pools which will be used in the Application Load Balancer. Limited to 20.
+ ///
+ public InputList TargetPools
+ {
+ get => _targetPools ?? (_targetPools = new InputList());
+ set => _targetPools = value;
+ }
+
+ public ApplicationLoadBalancerArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerArgs Empty => new ApplicationLoadBalancerArgs();
+ }
+
+ public sealed class ApplicationLoadBalancerState : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Disable target security group assignemt to allow targets outside of the given network. Connectivity to targets need to be ensured by the customer, including routing and Security Groups (targetSecurityGroup can be assigned). Not changeable after creation.
+ ///
+ [Input("disableTargetSecurityGroupAssignment")]
+ public Input? DisableTargetSecurityGroupAssignment { get; set; }
+
+ [Input("errors")]
+ private InputList? _errors;
+
+ ///
+ /// Reports all errors a Application Load Balancer has.
+ ///
+ public InputList Errors
+ {
+ get => _errors ?? (_errors = new InputList());
+ set => _errors = value;
+ }
+
+ ///
+ /// The external IP address where this Application Load Balancer is exposed. Not changeable after creation.
+ ///
+ [Input("externalAddress")]
+ public Input? ExternalAddress { get; set; }
+
+ [Input("labels")]
+ private InputMap? _labels;
+
+ ///
+ /// Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB.
+ ///
+ public InputMap Labels
+ {
+ get => _labels ?? (_labels = new InputMap());
+ set => _labels = value;
+ }
+
+ [Input("listeners")]
+ private InputList? _listeners;
+
+ ///
+ /// List of all listeners which will accept traffic. Limited to 20.
+ ///
+ public InputList Listeners
+ {
+ get => _listeners ?? (_listeners = new InputList());
+ set => _listeners = value;
+ }
+
+ ///
+ /// Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets.
+ ///
+ [Input("loadBalancerSecurityGroup")]
+ public Input? LoadBalancerSecurityGroup { get; set; }
+
+ ///
+ /// Application Load balancer name.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ [Input("networks")]
+ private InputList? _networks;
+
+ ///
+ /// List of networks that listeners and targets reside in.
+ ///
+ public InputList Networks
+ {
+ get => _networks ?? (_networks = new InputList());
+ set => _networks = value;
+ }
+
+ ///
+ /// Defines any optional functionality you want to have enabled on your Application Load Balancer.
+ ///
+ [Input("options")]
+ public Input? Options { get; set; }
+
+ ///
+ /// Service Plan configures the size of the Application Load Balancer e.g. 'p10'. See available plans via STACKIT CLI 'stackit beta alb plans' or API https://docs.api.stackit.cloud/documentation/alb/version/v2#tag/Project/operation/APIService_ListPlans
+ ///
+ [Input("planId")]
+ public Input? PlanId { get; set; }
+
+ [Input("privateAddress")]
+ public Input? PrivateAddress { get; set; }
+
+ ///
+ /// STACKIT project ID to which the Application Load Balancer is associated.
+ ///
+ [Input("projectId")]
+ public Input? ProjectId { get; set; }
+
+ ///
+ /// The resource region (e.g. eu01). If not defined, the provider region is used.
+ ///
+ [Input("region")]
+ public Input? Region { get; set; }
+
+ [Input("targetPools")]
+ private InputList? _targetPools;
+
+ ///
+ /// List of all target pools which will be used in the Application Load Balancer. Limited to 20.
+ ///
+ public InputList TargetPools
+ {
+ get => _targetPools ?? (_targetPools = new InputList());
+ set => _targetPools = value;
+ }
+
+ ///
+ /// Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets.
+ ///
+ [Input("targetSecurityGroup")]
+ public Input? TargetSecurityGroup { get; set; }
+
+ ///
+ /// Application Load Balancer resource version. Used for concurrency safe updates.
+ ///
+ [Input("version")]
+ public Input? Version { get; set; }
+
+ public ApplicationLoadBalancerState()
+ {
+ }
+ public static new ApplicationLoadBalancerState Empty => new ApplicationLoadBalancerState();
+ }
+}
diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs
index 74b0f9d..a969908 100644
--- a/sdk/dotnet/Config/Config.cs
+++ b/sdk/dotnet/Config/Config.cs
@@ -32,6 +32,16 @@ public void Set(T value)
private static readonly global::Pulumi.Config __config = new global::Pulumi.Config("stackit");
+ private static readonly __Value _albCustomEndpoint = new __Value(() => __config.Get("albCustomEndpoint"));
+ ///
+ /// Custom endpoint for the Application Load Balancer service
+ ///
+ public static string? AlbCustomEndpoint
+ {
+ get => _albCustomEndpoint.Get();
+ set => _albCustomEndpoint.Set(value);
+ }
+
private static readonly __Value _authorizationCustomEndpoint = new __Value(() => __config.Get("authorizationCustomEndpoint"));
///
/// Custom endpoint for the Membership service
diff --git a/sdk/dotnet/GetApplicationLoadBalancer.cs b/sdk/dotnet/GetApplicationLoadBalancer.cs
new file mode 100644
index 0000000..ebdf55e
--- /dev/null
+++ b/sdk/dotnet/GetApplicationLoadBalancer.cs
@@ -0,0 +1,226 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit
+{
+ public static class GetApplicationLoadBalancer
+ {
+ ///
+ /// Application Load Balancer data source schema. Must have a region specified in the provider configuration.
+ ///
+ /// ## Example Usage
+ ///
+ /// ```terraform
+ /// data "stackit_application_load_balancer" "example" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// name = "example-load-balancer"
+ /// }
+ /// ```
+ ///
+ public static Task InvokeAsync(GetApplicationLoadBalancerArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.InvokeAsync("stackit:index/getApplicationLoadBalancer:getApplicationLoadBalancer", args ?? new GetApplicationLoadBalancerArgs(), options.WithDefaults());
+
+ ///
+ /// Application Load Balancer data source schema. Must have a region specified in the provider configuration.
+ ///
+ /// ## Example Usage
+ ///
+ /// ```terraform
+ /// data "stackit_application_load_balancer" "example" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// name = "example-load-balancer"
+ /// }
+ /// ```
+ ///
+ public static Output Invoke(GetApplicationLoadBalancerInvokeArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getApplicationLoadBalancer:getApplicationLoadBalancer", args ?? new GetApplicationLoadBalancerInvokeArgs(), options.WithDefaults());
+
+ ///
+ /// Application Load Balancer data source schema. Must have a region specified in the provider configuration.
+ ///
+ /// ## Example Usage
+ ///
+ /// ```terraform
+ /// data "stackit_application_load_balancer" "example" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// name = "example-load-balancer"
+ /// }
+ /// ```
+ ///
+ public static Output Invoke(GetApplicationLoadBalancerInvokeArgs args, InvokeOutputOptions options)
+ => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getApplicationLoadBalancer:getApplicationLoadBalancer", args ?? new GetApplicationLoadBalancerInvokeArgs(), options.WithDefaults());
+ }
+
+
+ public sealed class GetApplicationLoadBalancerArgs : global::Pulumi.InvokeArgs
+ {
+ ///
+ /// Application Load balancer name.
+ ///
+ [Input("name", required: true)]
+ public string Name { get; set; } = null!;
+
+ ///
+ /// STACKIT project ID to which the Application Load Balancer is associated.
+ ///
+ [Input("projectId", required: true)]
+ public string ProjectId { get; set; } = null!;
+
+ public GetApplicationLoadBalancerArgs()
+ {
+ }
+ public static new GetApplicationLoadBalancerArgs Empty => new GetApplicationLoadBalancerArgs();
+ }
+
+ public sealed class GetApplicationLoadBalancerInvokeArgs : global::Pulumi.InvokeArgs
+ {
+ ///
+ /// Application Load balancer name.
+ ///
+ [Input("name", required: true)]
+ public Input Name { get; set; } = null!;
+
+ ///
+ /// STACKIT project ID to which the Application Load Balancer is associated.
+ ///
+ [Input("projectId", required: true)]
+ public Input ProjectId { get; set; } = null!;
+
+ public GetApplicationLoadBalancerInvokeArgs()
+ {
+ }
+ public static new GetApplicationLoadBalancerInvokeArgs Empty => new GetApplicationLoadBalancerInvokeArgs();
+ }
+
+
+ [OutputType]
+ public sealed class GetApplicationLoadBalancerResult
+ {
+ ///
+ /// Disable target security group assignemt to allow targets outside of the given network. Connectivity to targets need to be ensured by the customer, including routing and Security Groups (targetSecurityGroup can be assigned). Not changeable after creation.
+ ///
+ public readonly bool DisableTargetSecurityGroupAssignment;
+ ///
+ /// Reports all errors a Application Load Balancer has.
+ ///
+ public readonly ImmutableArray Errors;
+ ///
+ /// The external IP address where this Application Load Balancer is exposed. Not changeable after creation.
+ ///
+ public readonly string ExternalAddress;
+ ///
+ /// Terraform's internal resource ID. It is structured as `ProjectId`,`Region`,`Name`.
+ ///
+ public readonly string Id;
+ ///
+ /// Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB.
+ ///
+ public readonly ImmutableDictionary Labels;
+ ///
+ /// List of all listeners which will accept traffic. Limited to 20.
+ ///
+ public readonly ImmutableArray Listeners;
+ ///
+ /// Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets.
+ ///
+ public readonly Outputs.GetApplicationLoadBalancerLoadBalancerSecurityGroupResult LoadBalancerSecurityGroup;
+ ///
+ /// Application Load balancer name.
+ ///
+ public readonly string Name;
+ ///
+ /// List of networks that listeners and targets reside in.
+ ///
+ public readonly ImmutableArray Networks;
+ ///
+ /// Defines any optional functionality you want to have enabled on your Application Load Balancer.
+ ///
+ public readonly Outputs.GetApplicationLoadBalancerOptionsResult Options;
+ ///
+ /// Service Plan configures the size of the Application Load Balancer.
+ ///
+ public readonly string PlanId;
+ public readonly string PrivateAddress;
+ ///
+ /// STACKIT project ID to which the Application Load Balancer is associated.
+ ///
+ public readonly string ProjectId;
+ ///
+ /// The resource region. If not defined, the provider region is used.
+ ///
+ public readonly string Region;
+ ///
+ /// List of all target pools which will be used in the Application Load Balancer. Limited to 20.
+ ///
+ public readonly ImmutableArray TargetPools;
+ ///
+ /// Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets.
+ ///
+ public readonly Outputs.GetApplicationLoadBalancerTargetSecurityGroupResult TargetSecurityGroup;
+ ///
+ /// Application Load Balancer resource version. Used for concurrency safe updates.
+ ///
+ public readonly string Version;
+
+ [OutputConstructor]
+ private GetApplicationLoadBalancerResult(
+ bool disableTargetSecurityGroupAssignment,
+
+ ImmutableArray errors,
+
+ string externalAddress,
+
+ string id,
+
+ ImmutableDictionary labels,
+
+ ImmutableArray listeners,
+
+ Outputs.GetApplicationLoadBalancerLoadBalancerSecurityGroupResult loadBalancerSecurityGroup,
+
+ string name,
+
+ ImmutableArray networks,
+
+ Outputs.GetApplicationLoadBalancerOptionsResult options,
+
+ string planId,
+
+ string privateAddress,
+
+ string projectId,
+
+ string region,
+
+ ImmutableArray targetPools,
+
+ Outputs.GetApplicationLoadBalancerTargetSecurityGroupResult targetSecurityGroup,
+
+ string version)
+ {
+ DisableTargetSecurityGroupAssignment = disableTargetSecurityGroupAssignment;
+ Errors = errors;
+ ExternalAddress = externalAddress;
+ Id = id;
+ Labels = labels;
+ Listeners = listeners;
+ LoadBalancerSecurityGroup = loadBalancerSecurityGroup;
+ Name = name;
+ Networks = networks;
+ Options = options;
+ PlanId = planId;
+ PrivateAddress = privateAddress;
+ ProjectId = projectId;
+ Region = region;
+ TargetPools = targetPools;
+ TargetSecurityGroup = targetSecurityGroup;
+ Version = version;
+ }
+ }
+}
diff --git a/sdk/dotnet/GetServerBackupSchedule.cs b/sdk/dotnet/GetServerBackupSchedule.cs
index d076d56..e4720b9 100644
--- a/sdk/dotnet/GetServerBackupSchedule.cs
+++ b/sdk/dotnet/GetServerBackupSchedule.cs
@@ -14,8 +14,6 @@ public static class GetServerBackupSchedule
///
/// Server backup schedule datasource schema. Must have a `Region` specified in the provider configuration.
///
- /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.
- ///
/// ## Example Usage
///
/// ```terraform
@@ -32,8 +30,6 @@ public static Task InvokeAsync(GetServerBackupSch
///
/// Server backup schedule datasource schema. Must have a `Region` specified in the provider configuration.
///
- /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.
- ///
/// ## Example Usage
///
/// ```terraform
@@ -50,8 +46,6 @@ public static Output Invoke(GetServerBackupSchedu
///
/// Server backup schedule datasource schema. Must have a `Region` specified in the provider configuration.
///
- /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.
- ///
/// ## Example Usage
///
/// ```terraform
diff --git a/sdk/dotnet/GetServerBackupSchedules.cs b/sdk/dotnet/GetServerBackupSchedules.cs
index 10eebfd..72d39b4 100644
--- a/sdk/dotnet/GetServerBackupSchedules.cs
+++ b/sdk/dotnet/GetServerBackupSchedules.cs
@@ -14,8 +14,6 @@ public static class GetServerBackupSchedules
///
/// Server backup schedules datasource schema. Must have a `Region` specified in the provider configuration.
///
- /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.
- ///
/// ## Example Usage
///
/// ```terraform
@@ -31,8 +29,6 @@ public static Task InvokeAsync(GetServerBackupSc
///
/// Server backup schedules datasource schema. Must have a `Region` specified in the provider configuration.
///
- /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.
- ///
/// ## Example Usage
///
/// ```terraform
@@ -48,8 +44,6 @@ public static Output Invoke(GetServerBackupSched
///
/// Server backup schedules datasource schema. Must have a `Region` specified in the provider configuration.
///
- /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.
- ///
/// ## Example Usage
///
/// ```terraform
diff --git a/sdk/dotnet/GetServerUpdateSchedule.cs b/sdk/dotnet/GetServerUpdateSchedule.cs
index 7837b07..9de14fe 100644
--- a/sdk/dotnet/GetServerUpdateSchedule.cs
+++ b/sdk/dotnet/GetServerUpdateSchedule.cs
@@ -14,8 +14,6 @@ public static class GetServerUpdateSchedule
///
/// Server update schedule datasource schema. Must have a `Region` specified in the provider configuration.
///
- /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.
- ///
/// ## Example Usage
///
/// ```terraform
@@ -32,8 +30,6 @@ public static Task InvokeAsync(GetServerUpdateSch
///
/// Server update schedule datasource schema. Must have a `Region` specified in the provider configuration.
///
- /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.
- ///
/// ## Example Usage
///
/// ```terraform
@@ -50,8 +46,6 @@ public static Output Invoke(GetServerUpdateSchedu
///
/// Server update schedule datasource schema. Must have a `Region` specified in the provider configuration.
///
- /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.
- ///
/// ## Example Usage
///
/// ```terraform
diff --git a/sdk/dotnet/GetServerUpdateSchedules.cs b/sdk/dotnet/GetServerUpdateSchedules.cs
index 59f0791..cd2b497 100644
--- a/sdk/dotnet/GetServerUpdateSchedules.cs
+++ b/sdk/dotnet/GetServerUpdateSchedules.cs
@@ -14,8 +14,6 @@ public static class GetServerUpdateSchedules
///
/// Server update schedules datasource schema. Must have a `Region` specified in the provider configuration.
///
- /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.
- ///
/// ## Example Usage
///
/// ```terraform
@@ -31,8 +29,6 @@ public static Task InvokeAsync(GetServerUpdateSc
///
/// Server update schedules datasource schema. Must have a `Region` specified in the provider configuration.
///
- /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.
- ///
/// ## Example Usage
///
/// ```terraform
@@ -48,8 +44,6 @@ public static Output Invoke(GetServerUpdateSched
///
/// Server update schedules datasource schema. Must have a `Region` specified in the provider configuration.
///
- /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.
- ///
/// ## Example Usage
///
/// ```terraform
diff --git a/sdk/dotnet/GetServiceAccount.cs b/sdk/dotnet/GetServiceAccount.cs
index 30740de..0ca462a 100644
--- a/sdk/dotnet/GetServiceAccount.cs
+++ b/sdk/dotnet/GetServiceAccount.cs
@@ -118,6 +118,10 @@ public sealed class GetServiceAccountResult
/// STACKIT project ID to which the service account is associated.
///
public readonly string ProjectId;
+ ///
+ /// The internal UUID of the service account.
+ ///
+ public readonly string ServiceAccountId;
[OutputConstructor]
private GetServiceAccountResult(
@@ -127,12 +131,15 @@ private GetServiceAccountResult(
string name,
- string projectId)
+ string projectId,
+
+ string serviceAccountId)
{
Email = email;
Id = id;
Name = name;
ProjectId = projectId;
+ ServiceAccountId = serviceAccountId;
}
}
}
diff --git a/sdk/dotnet/GetServiceAccounts.cs b/sdk/dotnet/GetServiceAccounts.cs
new file mode 100644
index 0000000..00d380a
--- /dev/null
+++ b/sdk/dotnet/GetServiceAccounts.cs
@@ -0,0 +1,236 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit
+{
+ public static class GetServiceAccounts
+ {
+ ///
+ /// Service accounts plural data source schema. Returns a list of all service accounts in a project, optionally filtered.
+ ///
+ /// ## Example Usage
+ ///
+ /// ```terraform
+ /// data "stackit_service_accounts" "all_sas" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// }
+ ///
+ /// data "stackit_service_accounts" "sas_default_suffix" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// email_suffix = "@sa.stackit.cloud"
+ /// }
+ ///
+ /// data "stackit_service_accounts" "sas_default_suffix_sort_asc" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// email_suffix = "@sa.stackit.cloud"
+ /// sort_ascending = true
+ /// }
+ ///
+ /// data "stackit_service_accounts" "sas_ske_regex" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// email_regex = ".*@ske\\.sa\\.stackit\\.cloud$"
+ /// }
+ ///
+ /// data "stackit_service_accounts" "sas_ske_suffix" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// email_suffix = "@ske.sa.stackit.cloud"
+ /// }
+ /// ```
+ ///
+ public static Task InvokeAsync(GetServiceAccountsArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.InvokeAsync("stackit:index/getServiceAccounts:getServiceAccounts", args ?? new GetServiceAccountsArgs(), options.WithDefaults());
+
+ ///
+ /// Service accounts plural data source schema. Returns a list of all service accounts in a project, optionally filtered.
+ ///
+ /// ## Example Usage
+ ///
+ /// ```terraform
+ /// data "stackit_service_accounts" "all_sas" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// }
+ ///
+ /// data "stackit_service_accounts" "sas_default_suffix" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// email_suffix = "@sa.stackit.cloud"
+ /// }
+ ///
+ /// data "stackit_service_accounts" "sas_default_suffix_sort_asc" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// email_suffix = "@sa.stackit.cloud"
+ /// sort_ascending = true
+ /// }
+ ///
+ /// data "stackit_service_accounts" "sas_ske_regex" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// email_regex = ".*@ske\\.sa\\.stackit\\.cloud$"
+ /// }
+ ///
+ /// data "stackit_service_accounts" "sas_ske_suffix" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// email_suffix = "@ske.sa.stackit.cloud"
+ /// }
+ /// ```
+ ///
+ public static Output Invoke(GetServiceAccountsInvokeArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getServiceAccounts:getServiceAccounts", args ?? new GetServiceAccountsInvokeArgs(), options.WithDefaults());
+
+ ///
+ /// Service accounts plural data source schema. Returns a list of all service accounts in a project, optionally filtered.
+ ///
+ /// ## Example Usage
+ ///
+ /// ```terraform
+ /// data "stackit_service_accounts" "all_sas" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// }
+ ///
+ /// data "stackit_service_accounts" "sas_default_suffix" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// email_suffix = "@sa.stackit.cloud"
+ /// }
+ ///
+ /// data "stackit_service_accounts" "sas_default_suffix_sort_asc" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// email_suffix = "@sa.stackit.cloud"
+ /// sort_ascending = true
+ /// }
+ ///
+ /// data "stackit_service_accounts" "sas_ske_regex" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// email_regex = ".*@ske\\.sa\\.stackit\\.cloud$"
+ /// }
+ ///
+ /// data "stackit_service_accounts" "sas_ske_suffix" {
+ /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ /// email_suffix = "@ske.sa.stackit.cloud"
+ /// }
+ /// ```
+ ///
+ public static Output Invoke(GetServiceAccountsInvokeArgs args, InvokeOutputOptions options)
+ => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getServiceAccounts:getServiceAccounts", args ?? new GetServiceAccountsInvokeArgs(), options.WithDefaults());
+ }
+
+
+ public sealed class GetServiceAccountsArgs : global::Pulumi.InvokeArgs
+ {
+ ///
+ /// Optional regular expression to filter service accounts by email.
+ ///
+ [Input("emailRegex")]
+ public string? EmailRegex { get; set; }
+
+ ///
+ /// Optional suffix to filter service accounts by email (e.g.,`@sa.stackit.cloud`, `@ske.sa.stackit.cloud`).
+ ///
+ [Input("emailSuffix")]
+ public string? EmailSuffix { get; set; }
+
+ ///
+ /// STACKIT project ID.
+ ///
+ [Input("projectId", required: true)]
+ public string ProjectId { get; set; } = null!;
+
+ ///
+ /// If set to `True`, service accounts are sorted in ascending lexicographical order by email. Defaults to `False` (descending).
+ ///
+ [Input("sortAscending")]
+ public bool? SortAscending { get; set; }
+
+ public GetServiceAccountsArgs()
+ {
+ }
+ public static new GetServiceAccountsArgs Empty => new GetServiceAccountsArgs();
+ }
+
+ public sealed class GetServiceAccountsInvokeArgs : global::Pulumi.InvokeArgs
+ {
+ ///
+ /// Optional regular expression to filter service accounts by email.
+ ///
+ [Input("emailRegex")]
+ public Input? EmailRegex { get; set; }
+
+ ///
+ /// Optional suffix to filter service accounts by email (e.g.,`@sa.stackit.cloud`, `@ske.sa.stackit.cloud`).
+ ///
+ [Input("emailSuffix")]
+ public Input? EmailSuffix { get; set; }
+
+ ///
+ /// STACKIT project ID.
+ ///
+ [Input("projectId", required: true)]
+ public Input ProjectId { get; set; } = null!;
+
+ ///
+ /// If set to `True`, service accounts are sorted in ascending lexicographical order by email. Defaults to `False` (descending).
+ ///
+ [Input("sortAscending")]
+ public Input? SortAscending { get; set; }
+
+ public GetServiceAccountsInvokeArgs()
+ {
+ }
+ public static new GetServiceAccountsInvokeArgs Empty => new GetServiceAccountsInvokeArgs();
+ }
+
+
+ [OutputType]
+ public sealed class GetServiceAccountsResult
+ {
+ ///
+ /// Optional regular expression to filter service accounts by email.
+ ///
+ public readonly string? EmailRegex;
+ ///
+ /// Optional suffix to filter service accounts by email (e.g.,`@sa.stackit.cloud`, `@ske.sa.stackit.cloud`).
+ ///
+ public readonly string? EmailSuffix;
+ ///
+ /// Terraform's internal resource ID, structured as "`ProjectId`".
+ ///
+ public readonly string Id;
+ ///
+ /// The list of service accounts matching the provided filters.
+ ///
+ public readonly ImmutableArray Items;
+ ///
+ /// STACKIT project ID.
+ ///
+ public readonly string ProjectId;
+ ///
+ /// If set to `True`, service accounts are sorted in ascending lexicographical order by email. Defaults to `False` (descending).
+ ///
+ public readonly bool? SortAscending;
+
+ [OutputConstructor]
+ private GetServiceAccountsResult(
+ string? emailRegex,
+
+ string? emailSuffix,
+
+ string id,
+
+ ImmutableArray items,
+
+ string projectId,
+
+ bool? sortAscending)
+ {
+ EmailRegex = emailRegex;
+ EmailSuffix = emailSuffix;
+ Id = id;
+ Items = items;
+ ProjectId = projectId;
+ SortAscending = sortAscending;
+ }
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerErrorArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerErrorArgs.cs
new file mode 100644
index 0000000..771a37d
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerErrorArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerErrorArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The error description contains additional helpful user information to fix the error state of the Application Load Balancer. For example the IP 45.135.247.139 does not exist in the project, then the description will report: Floating IP "45.135.247.139" could not be found.
+ ///
+ [Input("description")]
+ public Input? Description { get; set; }
+
+ ///
+ /// The error type specifies which part of the Application Load Balancer encountered the error. I.e. the API will not check if a provided public IP is actually available in the project. Instead the Application Load Balancer with try to use the provided IP and if not available reports TYPE*FIP*NOT_CONFIGURED error. Possible values are: `TYPE_UNSPECIFIED`, `TYPE_INTERNAL`, `TYPE_QUOTA_SECGROUP_EXCEEDED`, `TYPE_QUOTA_SECGROUPRULE_EXCEEDED`, `TYPE_PORT_NOT_CONFIGURED`, `TYPE_FIP_NOT_CONFIGURED`, `TYPE_TARGET_NOT_ACTIVE`, `TYPE_METRICS_MISCONFIGURED`, `TYPE_LOGS_MISCONFIGURED`.
+ ///
+ [Input("type")]
+ public Input? Type { get; set; }
+
+ public ApplicationLoadBalancerErrorArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerErrorArgs Empty => new ApplicationLoadBalancerErrorArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerErrorGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerErrorGetArgs.cs
new file mode 100644
index 0000000..d01d9df
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerErrorGetArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerErrorGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The error description contains additional helpful user information to fix the error state of the Application Load Balancer. For example the IP 45.135.247.139 does not exist in the project, then the description will report: Floating IP "45.135.247.139" could not be found.
+ ///
+ [Input("description")]
+ public Input? Description { get; set; }
+
+ ///
+ /// The error type specifies which part of the Application Load Balancer encountered the error. I.e. the API will not check if a provided public IP is actually available in the project. Instead the Application Load Balancer with try to use the provided IP and if not available reports TYPE*FIP*NOT_CONFIGURED error. Possible values are: `TYPE_UNSPECIFIED`, `TYPE_INTERNAL`, `TYPE_QUOTA_SECGROUP_EXCEEDED`, `TYPE_QUOTA_SECGROUPRULE_EXCEEDED`, `TYPE_PORT_NOT_CONFIGURED`, `TYPE_FIP_NOT_CONFIGURED`, `TYPE_TARGET_NOT_ACTIVE`, `TYPE_METRICS_MISCONFIGURED`, `TYPE_LOGS_MISCONFIGURED`.
+ ///
+ [Input("type")]
+ public Input? Type { get; set; }
+
+ public ApplicationLoadBalancerErrorGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerErrorGetArgs Empty => new ApplicationLoadBalancerErrorGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerArgs.cs
new file mode 100644
index 0000000..2c2cb7a
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerArgs.cs
@@ -0,0 +1,56 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Configuration for HTTP traffic.
+ ///
+ [Input("http", required: true)]
+ public Input Http { get; set; } = null!;
+
+ ///
+ /// Configuration for handling HTTPS traffic on this listener.
+ ///
+ [Input("https")]
+ public Input? Https { get; set; }
+
+ ///
+ /// Unique name for the listener
+ ///
+ [Input("name", required: true)]
+ public Input Name { get; set; } = null!;
+
+ ///
+ /// Port number on which the listener receives incoming traffic.
+ ///
+ [Input("port", required: true)]
+ public Input Port { get; set; } = null!;
+
+ ///
+ /// Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`.
+ ///
+ [Input("protocol", required: true)]
+ public Input Protocol { get; set; } = null!;
+
+ ///
+ /// Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information.
+ ///
+ [Input("wafConfigName")]
+ public Input? WafConfigName { get; set; }
+
+ public ApplicationLoadBalancerListenerArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerArgs Empty => new ApplicationLoadBalancerListenerArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerGetArgs.cs
new file mode 100644
index 0000000..d81d0fe
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerGetArgs.cs
@@ -0,0 +1,56 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Configuration for HTTP traffic.
+ ///
+ [Input("http", required: true)]
+ public Input Http { get; set; } = null!;
+
+ ///
+ /// Configuration for handling HTTPS traffic on this listener.
+ ///
+ [Input("https")]
+ public Input? Https { get; set; }
+
+ ///
+ /// Unique name for the listener
+ ///
+ [Input("name", required: true)]
+ public Input Name { get; set; } = null!;
+
+ ///
+ /// Port number on which the listener receives incoming traffic.
+ ///
+ [Input("port", required: true)]
+ public Input Port { get; set; } = null!;
+
+ ///
+ /// Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`.
+ ///
+ [Input("protocol", required: true)]
+ public Input Protocol { get; set; } = null!;
+
+ ///
+ /// Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information.
+ ///
+ [Input("wafConfigName")]
+ public Input? WafConfigName { get; set; }
+
+ public ApplicationLoadBalancerListenerGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerGetArgs Empty => new ApplicationLoadBalancerListenerGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpArgs.cs
new file mode 100644
index 0000000..0b22e2e
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("hosts", required: true)]
+ private InputList? _hosts;
+
+ ///
+ /// Defines routing rules grouped by hostname.
+ ///
+ public InputList Hosts
+ {
+ get => _hosts ?? (_hosts = new InputList());
+ set => _hosts = value;
+ }
+
+ public ApplicationLoadBalancerListenerHttpArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpArgs Empty => new ApplicationLoadBalancerListenerHttpArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpGetArgs.cs
new file mode 100644
index 0000000..2412b6f
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpGetArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpGetArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("hosts", required: true)]
+ private InputList? _hosts;
+
+ ///
+ /// Defines routing rules grouped by hostname.
+ ///
+ public InputList Hosts
+ {
+ get => _hosts ?? (_hosts = new InputList());
+ set => _hosts = value;
+ }
+
+ public ApplicationLoadBalancerListenerHttpGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpGetArgs Empty => new ApplicationLoadBalancerListenerHttpGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostArgs.cs
new file mode 100644
index 0000000..dc5b788
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostArgs.cs
@@ -0,0 +1,38 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpHostArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Hostname to match. Supports wildcards (e.g. *.example.com).
+ ///
+ [Input("host", required: true)]
+ public Input Host { get; set; } = null!;
+
+ [Input("rules", required: true)]
+ private InputList? _rules;
+
+ ///
+ /// Routing rules under the specified host, matched by path prefix.
+ ///
+ public InputList Rules
+ {
+ get => _rules ?? (_rules = new InputList());
+ set => _rules = value;
+ }
+
+ public ApplicationLoadBalancerListenerHttpHostArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpHostArgs Empty => new ApplicationLoadBalancerListenerHttpHostArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostGetArgs.cs
new file mode 100644
index 0000000..820c037
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostGetArgs.cs
@@ -0,0 +1,38 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpHostGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Hostname to match. Supports wildcards (e.g. *.example.com).
+ ///
+ [Input("host", required: true)]
+ public Input Host { get; set; } = null!;
+
+ [Input("rules", required: true)]
+ private InputList? _rules;
+
+ ///
+ /// Routing rules under the specified host, matched by path prefix.
+ ///
+ public InputList Rules
+ {
+ get => _rules ?? (_rules = new InputList());
+ set => _rules = value;
+ }
+
+ public ApplicationLoadBalancerListenerHttpHostGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpHostGetArgs Empty => new ApplicationLoadBalancerListenerHttpHostGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleArgs.cs
new file mode 100644
index 0000000..2d13ae2
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleArgs.cs
@@ -0,0 +1,68 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpHostRuleArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Routing persistence via cookies.
+ ///
+ [Input("cookiePersistence")]
+ public Input? CookiePersistence { get; set; }
+
+ [Input("headers")]
+ private InputList? _headers;
+
+ ///
+ /// Headers for the rule.
+ ///
+ public InputList Headers
+ {
+ get => _headers ?? (_headers = new InputList());
+ set => _headers = value;
+ }
+
+ ///
+ /// Routing via path.
+ ///
+ [Input("path")]
+ public Input? Path { get; set; }
+
+ [Input("queryParameters")]
+ private InputList? _queryParameters;
+
+ ///
+ /// Query parameters for the rule.
+ ///
+ public InputList QueryParameters
+ {
+ get => _queryParameters ?? (_queryParameters = new InputList());
+ set => _queryParameters = value;
+ }
+
+ ///
+ /// Reference target pool by target pool name.
+ ///
+ [Input("targetPool", required: true)]
+ public Input TargetPool { get; set; } = null!;
+
+ ///
+ /// If enabled, when client sends an HTTP request with and Upgrade header, indicating the desire to establish a Websocket connection, if backend server supports WebSocket, it responds with HTTP 101 status code, switching protocols from HTTP to WebSocket. Hence the client and the server can exchange data in real-time using one long-lived TCP connection.
+ ///
+ [Input("webSocket")]
+ public Input? WebSocket { get; set; }
+
+ public ApplicationLoadBalancerListenerHttpHostRuleArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpHostRuleArgs Empty => new ApplicationLoadBalancerListenerHttpHostRuleArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs.cs
new file mode 100644
index 0000000..da9e85d
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The name of the cookie to use.
+ ///
+ [Input("name", required: true)]
+ public Input Name { get; set; } = null!;
+
+ ///
+ /// TTL specifies the time-to-live for the cookie. The default value is 0s, and it acts as a session cookie, expiring when the client session ends.
+ ///
+ [Input("ttl", required: true)]
+ public Input Ttl { get; set; } = null!;
+
+ public ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs Empty => new ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceGetArgs.cs
new file mode 100644
index 0000000..691e53a
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceGetArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The name of the cookie to use.
+ ///
+ [Input("name", required: true)]
+ public Input Name { get; set; } = null!;
+
+ ///
+ /// TTL specifies the time-to-live for the cookie. The default value is 0s, and it acts as a session cookie, expiring when the client session ends.
+ ///
+ [Input("ttl", required: true)]
+ public Input Ttl { get; set; } = null!;
+
+ public ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceGetArgs Empty => new ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleGetArgs.cs
new file mode 100644
index 0000000..568cd5e
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleGetArgs.cs
@@ -0,0 +1,68 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpHostRuleGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Routing persistence via cookies.
+ ///
+ [Input("cookiePersistence")]
+ public Input? CookiePersistence { get; set; }
+
+ [Input("headers")]
+ private InputList? _headers;
+
+ ///
+ /// Headers for the rule.
+ ///
+ public InputList Headers
+ {
+ get => _headers ?? (_headers = new InputList());
+ set => _headers = value;
+ }
+
+ ///
+ /// Routing via path.
+ ///
+ [Input("path")]
+ public Input? Path { get; set; }
+
+ [Input("queryParameters")]
+ private InputList? _queryParameters;
+
+ ///
+ /// Query parameters for the rule.
+ ///
+ public InputList QueryParameters
+ {
+ get => _queryParameters ?? (_queryParameters = new InputList());
+ set => _queryParameters = value;
+ }
+
+ ///
+ /// Reference target pool by target pool name.
+ ///
+ [Input("targetPool", required: true)]
+ public Input TargetPool { get; set; } = null!;
+
+ ///
+ /// If enabled, when client sends an HTTP request with and Upgrade header, indicating the desire to establish a Websocket connection, if backend server supports WebSocket, it responds with HTTP 101 status code, switching protocols from HTTP to WebSocket. Hence the client and the server can exchange data in real-time using one long-lived TCP connection.
+ ///
+ [Input("webSocket")]
+ public Input? WebSocket { get; set; }
+
+ public ApplicationLoadBalancerListenerHttpHostRuleGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpHostRuleGetArgs Empty => new ApplicationLoadBalancerListenerHttpHostRuleGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs.cs
new file mode 100644
index 0000000..2712fc7
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Exact match for the header value.
+ ///
+ [Input("exactMatch")]
+ public Input? ExactMatch { get; set; }
+
+ ///
+ /// Header name.
+ ///
+ [Input("name", required: true)]
+ public Input Name { get; set; } = null!;
+
+ public ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs Empty => new ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleHeaderGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleHeaderGetArgs.cs
new file mode 100644
index 0000000..a8e98b1
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleHeaderGetArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpHostRuleHeaderGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Exact match for the header value.
+ ///
+ [Input("exactMatch")]
+ public Input? ExactMatch { get; set; }
+
+ ///
+ /// Header name.
+ ///
+ [Input("name", required: true)]
+ public Input Name { get; set; } = null!;
+
+ public ApplicationLoadBalancerListenerHttpHostRuleHeaderGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpHostRuleHeaderGetArgs Empty => new ApplicationLoadBalancerListenerHttpHostRuleHeaderGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRulePathArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRulePathArgs.cs
new file mode 100644
index 0000000..70a41e9
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRulePathArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpHostRulePathArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Exact path match. Only a request path exactly equal to the value will match, e.g. '/foo' matches only '/foo', not '/foo/bar' or '/foobar'.
+ ///
+ [Input("exactMatch")]
+ public Input? ExactMatch { get; set; }
+
+ ///
+ /// Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'.
+ ///
+ [Input("prefix")]
+ public Input? Prefix { get; set; }
+
+ public ApplicationLoadBalancerListenerHttpHostRulePathArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpHostRulePathArgs Empty => new ApplicationLoadBalancerListenerHttpHostRulePathArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRulePathGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRulePathGetArgs.cs
new file mode 100644
index 0000000..2c7c8ce
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRulePathGetArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpHostRulePathGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Exact path match. Only a request path exactly equal to the value will match, e.g. '/foo' matches only '/foo', not '/foo/bar' or '/foobar'.
+ ///
+ [Input("exactMatch")]
+ public Input? ExactMatch { get; set; }
+
+ ///
+ /// Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'.
+ ///
+ [Input("prefix")]
+ public Input? Prefix { get; set; }
+
+ public ApplicationLoadBalancerListenerHttpHostRulePathGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpHostRulePathGetArgs Empty => new ApplicationLoadBalancerListenerHttpHostRulePathGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs.cs
new file mode 100644
index 0000000..e8e9129
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Exact match for the query parameters value.
+ ///
+ [Input("exactMatch")]
+ public Input? ExactMatch { get; set; }
+
+ ///
+ /// Query parameter name.
+ ///
+ [Input("name", required: true)]
+ public Input Name { get; set; } = null!;
+
+ public ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs Empty => new ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleQueryParameterGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleQueryParameterGetArgs.cs
new file mode 100644
index 0000000..65cdc05
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpHostRuleQueryParameterGetArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpHostRuleQueryParameterGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Exact match for the query parameters value.
+ ///
+ [Input("exactMatch")]
+ public Input? ExactMatch { get; set; }
+
+ ///
+ /// Query parameter name.
+ ///
+ [Input("name", required: true)]
+ public Input Name { get; set; } = null!;
+
+ public ApplicationLoadBalancerListenerHttpHostRuleQueryParameterGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpHostRuleQueryParameterGetArgs Empty => new ApplicationLoadBalancerListenerHttpHostRuleQueryParameterGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpsArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpsArgs.cs
new file mode 100644
index 0000000..7177477
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpsArgs.cs
@@ -0,0 +1,26 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpsArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// TLS termination certificate configuration.
+ ///
+ [Input("certificateConfig", required: true)]
+ public Input CertificateConfig { get; set; } = null!;
+
+ public ApplicationLoadBalancerListenerHttpsArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpsArgs Empty => new ApplicationLoadBalancerListenerHttpsArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpsCertificateConfigArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpsCertificateConfigArgs.cs
new file mode 100644
index 0000000..e78a9ab
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpsCertificateConfigArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpsCertificateConfigArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("certificateIds", required: true)]
+ private InputList? _certificateIds;
+
+ ///
+ /// Certificate IDs for TLS termination.
+ ///
+ public InputList CertificateIds
+ {
+ get => _certificateIds ?? (_certificateIds = new InputList());
+ set => _certificateIds = value;
+ }
+
+ public ApplicationLoadBalancerListenerHttpsCertificateConfigArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpsCertificateConfigArgs Empty => new ApplicationLoadBalancerListenerHttpsCertificateConfigArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpsCertificateConfigGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpsCertificateConfigGetArgs.cs
new file mode 100644
index 0000000..a34803d
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpsCertificateConfigGetArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpsCertificateConfigGetArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("certificateIds", required: true)]
+ private InputList? _certificateIds;
+
+ ///
+ /// Certificate IDs for TLS termination.
+ ///
+ public InputList CertificateIds
+ {
+ get => _certificateIds ?? (_certificateIds = new InputList());
+ set => _certificateIds = value;
+ }
+
+ public ApplicationLoadBalancerListenerHttpsCertificateConfigGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpsCertificateConfigGetArgs Empty => new ApplicationLoadBalancerListenerHttpsCertificateConfigGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpsGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpsGetArgs.cs
new file mode 100644
index 0000000..e8ae614
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerListenerHttpsGetArgs.cs
@@ -0,0 +1,26 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerListenerHttpsGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// TLS termination certificate configuration.
+ ///
+ [Input("certificateConfig", required: true)]
+ public Input CertificateConfig { get; set; } = null!;
+
+ public ApplicationLoadBalancerListenerHttpsGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerListenerHttpsGetArgs Empty => new ApplicationLoadBalancerListenerHttpsGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerLoadBalancerSecurityGroupArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerLoadBalancerSecurityGroupArgs.cs
new file mode 100644
index 0000000..83564ac
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerLoadBalancerSecurityGroupArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerLoadBalancerSecurityGroupArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// ID of the security Group
+ ///
+ [Input("id")]
+ public Input? Id { get; set; }
+
+ ///
+ /// Name of the security Group
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ public ApplicationLoadBalancerLoadBalancerSecurityGroupArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerLoadBalancerSecurityGroupArgs Empty => new ApplicationLoadBalancerLoadBalancerSecurityGroupArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerLoadBalancerSecurityGroupGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerLoadBalancerSecurityGroupGetArgs.cs
new file mode 100644
index 0000000..f6b392e
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerLoadBalancerSecurityGroupGetArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerLoadBalancerSecurityGroupGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// ID of the security Group
+ ///
+ [Input("id")]
+ public Input? Id { get; set; }
+
+ ///
+ /// Name of the security Group
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ public ApplicationLoadBalancerLoadBalancerSecurityGroupGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerLoadBalancerSecurityGroupGetArgs Empty => new ApplicationLoadBalancerLoadBalancerSecurityGroupGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerNetworkArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerNetworkArgs.cs
new file mode 100644
index 0000000..9c8bea3
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerNetworkArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerNetworkArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// STACKIT network ID the Application Load Balancer and/or targets are in.
+ ///
+ [Input("networkId", required: true)]
+ public Input NetworkId { get; set; } = null!;
+
+ ///
+ /// The role defines how the Application Load Balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`.
+ ///
+ [Input("role", required: true)]
+ public Input Role { get; set; } = null!;
+
+ public ApplicationLoadBalancerNetworkArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerNetworkArgs Empty => new ApplicationLoadBalancerNetworkArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerNetworkGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerNetworkGetArgs.cs
new file mode 100644
index 0000000..5438613
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerNetworkGetArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerNetworkGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// STACKIT network ID the Application Load Balancer and/or targets are in.
+ ///
+ [Input("networkId", required: true)]
+ public Input NetworkId { get; set; } = null!;
+
+ ///
+ /// The role defines how the Application Load Balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`.
+ ///
+ [Input("role", required: true)]
+ public Input Role { get; set; } = null!;
+
+ public ApplicationLoadBalancerNetworkGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerNetworkGetArgs Empty => new ApplicationLoadBalancerNetworkGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsAccessControlArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsAccessControlArgs.cs
new file mode 100644
index 0000000..a76be00
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsAccessControlArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerOptionsAccessControlArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("allowedSourceRanges", required: true)]
+ private InputList? _allowedSourceRanges;
+
+ ///
+ /// Application Load Balancer is accessible only from an IP address in this range.
+ ///
+ public InputList AllowedSourceRanges
+ {
+ get => _allowedSourceRanges ?? (_allowedSourceRanges = new InputList());
+ set => _allowedSourceRanges = value;
+ }
+
+ public ApplicationLoadBalancerOptionsAccessControlArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerOptionsAccessControlArgs Empty => new ApplicationLoadBalancerOptionsAccessControlArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsAccessControlGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsAccessControlGetArgs.cs
new file mode 100644
index 0000000..8c8f0fb
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsAccessControlGetArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerOptionsAccessControlGetArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("allowedSourceRanges", required: true)]
+ private InputList? _allowedSourceRanges;
+
+ ///
+ /// Application Load Balancer is accessible only from an IP address in this range.
+ ///
+ public InputList AllowedSourceRanges
+ {
+ get => _allowedSourceRanges ?? (_allowedSourceRanges = new InputList());
+ set => _allowedSourceRanges = value;
+ }
+
+ public ApplicationLoadBalancerOptionsAccessControlGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerOptionsAccessControlGetArgs Empty => new ApplicationLoadBalancerOptionsAccessControlGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsArgs.cs
new file mode 100644
index 0000000..e060323
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsArgs.cs
@@ -0,0 +1,44 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerOptionsArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Use this option to limit the IP ranges that can use the Application Load Balancer.
+ ///
+ [Input("accessControl")]
+ public Input? AccessControl { get; set; }
+
+ ///
+ /// This option automates the handling of the external IP address for an Application Load Balancer. If set to true a new IP address will be automatically created. It will also be automatically deleted when the Load Balancer is deleted.
+ ///
+ [Input("ephemeralAddress")]
+ public Input? EphemeralAddress { get; set; }
+
+ ///
+ /// We offer Load Balancer observability via STACKIT Observability or external solutions.
+ ///
+ [Input("observability")]
+ public Input? Observability { get; set; }
+
+ ///
+ /// Application Load Balancer is accessible only via a private network ip address. Not changeable after creation.
+ ///
+ [Input("privateNetworkOnly")]
+ public Input? PrivateNetworkOnly { get; set; }
+
+ public ApplicationLoadBalancerOptionsArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerOptionsArgs Empty => new ApplicationLoadBalancerOptionsArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsGetArgs.cs
new file mode 100644
index 0000000..7b603db
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsGetArgs.cs
@@ -0,0 +1,44 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerOptionsGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Use this option to limit the IP ranges that can use the Application Load Balancer.
+ ///
+ [Input("accessControl")]
+ public Input? AccessControl { get; set; }
+
+ ///
+ /// This option automates the handling of the external IP address for an Application Load Balancer. If set to true a new IP address will be automatically created. It will also be automatically deleted when the Load Balancer is deleted.
+ ///
+ [Input("ephemeralAddress")]
+ public Input? EphemeralAddress { get; set; }
+
+ ///
+ /// We offer Load Balancer observability via STACKIT Observability or external solutions.
+ ///
+ [Input("observability")]
+ public Input? Observability { get; set; }
+
+ ///
+ /// Application Load Balancer is accessible only via a private network ip address. Not changeable after creation.
+ ///
+ [Input("privateNetworkOnly")]
+ public Input? PrivateNetworkOnly { get; set; }
+
+ public ApplicationLoadBalancerOptionsGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerOptionsGetArgs Empty => new ApplicationLoadBalancerOptionsGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityArgs.cs
new file mode 100644
index 0000000..5e4cc6b
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerOptionsObservabilityArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Observability logs configuration.
+ ///
+ [Input("logs")]
+ public Input? Logs { get; set; }
+
+ ///
+ /// Observability metrics configuration.
+ ///
+ [Input("metrics")]
+ public Input? Metrics { get; set; }
+
+ public ApplicationLoadBalancerOptionsObservabilityArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerOptionsObservabilityArgs Empty => new ApplicationLoadBalancerOptionsObservabilityArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityGetArgs.cs
new file mode 100644
index 0000000..03d490e
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityGetArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerOptionsObservabilityGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Observability logs configuration.
+ ///
+ [Input("logs")]
+ public Input? Logs { get; set; }
+
+ ///
+ /// Observability metrics configuration.
+ ///
+ [Input("metrics")]
+ public Input? Metrics { get; set; }
+
+ public ApplicationLoadBalancerOptionsObservabilityGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerOptionsObservabilityGetArgs Empty => new ApplicationLoadBalancerOptionsObservabilityGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityLogsArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityLogsArgs.cs
new file mode 100644
index 0000000..b0123dd
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityLogsArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerOptionsObservabilityLogsArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Credentials reference for logging. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the logging solution the push URL points to. Then this enables monitoring via remote write for the Application Load Balancer.
+ ///
+ [Input("credentialsRef", required: true)]
+ public Input CredentialsRef { get; set; } = null!;
+
+ ///
+ /// Credentials reference for logging. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the logging solution the push URL points to. Then this enables monitoring via remote write for the Application Load Balancer.
+ ///
+ [Input("pushUrl", required: true)]
+ public Input PushUrl { get; set; } = null!;
+
+ public ApplicationLoadBalancerOptionsObservabilityLogsArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerOptionsObservabilityLogsArgs Empty => new ApplicationLoadBalancerOptionsObservabilityLogsArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityLogsGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityLogsGetArgs.cs
new file mode 100644
index 0000000..4694d45
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityLogsGetArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerOptionsObservabilityLogsGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Credentials reference for logging. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the logging solution the push URL points to. Then this enables monitoring via remote write for the Application Load Balancer.
+ ///
+ [Input("credentialsRef", required: true)]
+ public Input CredentialsRef { get; set; } = null!;
+
+ ///
+ /// Credentials reference for logging. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the logging solution the push URL points to. Then this enables monitoring via remote write for the Application Load Balancer.
+ ///
+ [Input("pushUrl", required: true)]
+ public Input PushUrl { get; set; } = null!;
+
+ public ApplicationLoadBalancerOptionsObservabilityLogsGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerOptionsObservabilityLogsGetArgs Empty => new ApplicationLoadBalancerOptionsObservabilityLogsGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityMetricsArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityMetricsArgs.cs
new file mode 100644
index 0000000..ccfa2fc
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityMetricsArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerOptionsObservabilityMetricsArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Credentials reference for metrics. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the metrics solution the push URL points to. Then this enables monitoring via remote write for the Application Load Balancer.
+ ///
+ [Input("credentialsRef", required: true)]
+ public Input CredentialsRef { get; set; } = null!;
+
+ ///
+ /// Credentials reference for metrics. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the metrics solution the push URL points to. Then this enables monitoring via remote write for the Application Load Balancer.
+ ///
+ [Input("pushUrl", required: true)]
+ public Input PushUrl { get; set; } = null!;
+
+ public ApplicationLoadBalancerOptionsObservabilityMetricsArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerOptionsObservabilityMetricsArgs Empty => new ApplicationLoadBalancerOptionsObservabilityMetricsArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityMetricsGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityMetricsGetArgs.cs
new file mode 100644
index 0000000..b6777e1
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerOptionsObservabilityMetricsGetArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerOptionsObservabilityMetricsGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Credentials reference for metrics. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the metrics solution the push URL points to. Then this enables monitoring via remote write for the Application Load Balancer.
+ ///
+ [Input("credentialsRef", required: true)]
+ public Input CredentialsRef { get; set; } = null!;
+
+ ///
+ /// Credentials reference for metrics. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the metrics solution the push URL points to. Then this enables monitoring via remote write for the Application Load Balancer.
+ ///
+ [Input("pushUrl", required: true)]
+ public Input PushUrl { get; set; } = null!;
+
+ public ApplicationLoadBalancerOptionsObservabilityMetricsGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerOptionsObservabilityMetricsGetArgs Empty => new ApplicationLoadBalancerOptionsObservabilityMetricsGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs.cs
new file mode 100644
index 0000000..ae6d03e
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs.cs
@@ -0,0 +1,56 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Healthy threshold of the health checking.
+ ///
+ [Input("healthyThreshold", required: true)]
+ public Input HealthyThreshold { get; set; } = null!;
+
+ ///
+ /// Options for the HTTP health checking.
+ ///
+ [Input("httpHealthChecks")]
+ public Input? HttpHealthChecks { get; set; }
+
+ ///
+ /// Interval duration of health checking in seconds.
+ ///
+ [Input("interval", required: true)]
+ public Input Interval { get; set; } = null!;
+
+ ///
+ /// Interval duration threshold of the health checking in seconds.
+ ///
+ [Input("intervalJitter", required: true)]
+ public Input IntervalJitter { get; set; } = null!;
+
+ ///
+ /// Active health checking timeout duration in seconds.
+ ///
+ [Input("timeout", required: true)]
+ public Input Timeout { get; set; } = null!;
+
+ ///
+ /// Unhealthy threshold of the health checking.
+ ///
+ [Input("unhealthyThreshold", required: true)]
+ public Input UnhealthyThreshold { get; set; } = null!;
+
+ public ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs Empty => new ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolActiveHealthCheckGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolActiveHealthCheckGetArgs.cs
new file mode 100644
index 0000000..8e26710
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolActiveHealthCheckGetArgs.cs
@@ -0,0 +1,56 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerTargetPoolActiveHealthCheckGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Healthy threshold of the health checking.
+ ///
+ [Input("healthyThreshold", required: true)]
+ public Input HealthyThreshold { get; set; } = null!;
+
+ ///
+ /// Options for the HTTP health checking.
+ ///
+ [Input("httpHealthChecks")]
+ public Input? HttpHealthChecks { get; set; }
+
+ ///
+ /// Interval duration of health checking in seconds.
+ ///
+ [Input("interval", required: true)]
+ public Input Interval { get; set; } = null!;
+
+ ///
+ /// Interval duration threshold of the health checking in seconds.
+ ///
+ [Input("intervalJitter", required: true)]
+ public Input IntervalJitter { get; set; } = null!;
+
+ ///
+ /// Active health checking timeout duration in seconds.
+ ///
+ [Input("timeout", required: true)]
+ public Input Timeout { get; set; } = null!;
+
+ ///
+ /// Unhealthy threshold of the health checking.
+ ///
+ [Input("unhealthyThreshold", required: true)]
+ public Input UnhealthyThreshold { get; set; } = null!;
+
+ public ApplicationLoadBalancerTargetPoolActiveHealthCheckGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerTargetPoolActiveHealthCheckGetArgs Empty => new ApplicationLoadBalancerTargetPoolActiveHealthCheckGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs.cs
new file mode 100644
index 0000000..f389adb
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs.cs
@@ -0,0 +1,38 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("okStatuses", required: true)]
+ private InputList? _okStatuses;
+
+ ///
+ /// List of HTTP status codes that indicate a healthy response.
+ ///
+ public InputList OkStatuses
+ {
+ get => _okStatuses ?? (_okStatuses = new InputList());
+ set => _okStatuses = value;
+ }
+
+ ///
+ /// Path to send the health check request to.
+ ///
+ [Input("path", required: true)]
+ public Input Path { get; set; } = null!;
+
+ public ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs Empty => new ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksGetArgs.cs
new file mode 100644
index 0000000..a9cadfb
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksGetArgs.cs
@@ -0,0 +1,38 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksGetArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("okStatuses", required: true)]
+ private InputList? _okStatuses;
+
+ ///
+ /// List of HTTP status codes that indicate a healthy response.
+ ///
+ public InputList OkStatuses
+ {
+ get => _okStatuses ?? (_okStatuses = new InputList());
+ set => _okStatuses = value;
+ }
+
+ ///
+ /// Path to send the health check request to.
+ ///
+ [Input("path", required: true)]
+ public Input Path { get; set; } = null!;
+
+ public ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksGetArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksGetArgs Empty => new ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolArgs.cs
new file mode 100644
index 0000000..d5e3f30
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolArgs.cs
@@ -0,0 +1,53 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerTargetPoolArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("activeHealthCheck")]
+ public Input? ActiveHealthCheck { get; set; }
+
+ ///
+ /// Target pool name.
+ ///
+ [Input("name", required: true)]
+ public Input Name { get; set; } = null!;
+
+ ///
+ /// The number identifying the port where each target listens for traffic.
+ ///
+ [Input("targetPort", required: true)]
+ public Input TargetPort { get; set; } = null!;
+
+ [Input("targets", required: true)]
+ private InputList? _targets;
+
+ ///
+ /// List of all targets which will be used in the pool. Limited to 250.
+ ///
+ public InputList Targets
+ {
+ get => _targets ?? (_targets = new InputList());
+ set => _targets = value;
+ }
+
+ ///
+ /// Configuration for TLS bridging.
+ ///
+ [Input("tlsConfig")]
+ public Input? TlsConfig { get; set; }
+
+ public ApplicationLoadBalancerTargetPoolArgs()
+ {
+ }
+ public static new ApplicationLoadBalancerTargetPoolArgs Empty => new ApplicationLoadBalancerTargetPoolArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolGetArgs.cs
new file mode 100644
index 0000000..f95001f
--- /dev/null
+++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolGetArgs.cs
@@ -0,0 +1,53 @@
+// *** WARNING: this file was generated by pulumi-language-dotnet. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Stackit.Inputs
+{
+
+ public sealed class ApplicationLoadBalancerTargetPoolGetArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("activeHealthCheck")]
+ public Input? ActiveHealthCheck { get; set; }
+
+ ///