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; } + + /// + /// 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 ApplicationLoadBalancerTargetPoolGetArgs() + { + } + public static new ApplicationLoadBalancerTargetPoolGetArgs Empty => new ApplicationLoadBalancerTargetPoolGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolTargetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolTargetArgs.cs new file mode 100644 index 0000000..b2f87d0 --- /dev/null +++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolTargetArgs.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 ApplicationLoadBalancerTargetPoolTargetArgs : global::Pulumi.ResourceArgs + { + /// + /// Target display name + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + /// + /// Private target IP, which must by unique within a target pool. + /// + [Input("ip", required: true)] + public Input Ip { get; set; } = null!; + + public ApplicationLoadBalancerTargetPoolTargetArgs() + { + } + public static new ApplicationLoadBalancerTargetPoolTargetArgs Empty => new ApplicationLoadBalancerTargetPoolTargetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolTargetGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolTargetGetArgs.cs new file mode 100644 index 0000000..3a51d76 --- /dev/null +++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolTargetGetArgs.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 ApplicationLoadBalancerTargetPoolTargetGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Target display name + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + /// + /// Private target IP, which must by unique within a target pool. + /// + [Input("ip", required: true)] + public Input Ip { get; set; } = null!; + + public ApplicationLoadBalancerTargetPoolTargetGetArgs() + { + } + public static new ApplicationLoadBalancerTargetPoolTargetGetArgs Empty => new ApplicationLoadBalancerTargetPoolTargetGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolTlsConfigArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolTlsConfigArgs.cs new file mode 100644 index 0000000..4c6ccb3 --- /dev/null +++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolTlsConfigArgs.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 ApplicationLoadBalancerTargetPoolTlsConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// 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. + /// + [Input("customCa")] + public Input? CustomCa { get; set; } + + /// + /// 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. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// 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! + /// + [Input("skipCertificateValidation")] + public Input? SkipCertificateValidation { get; set; } + + public ApplicationLoadBalancerTargetPoolTlsConfigArgs() + { + } + public static new ApplicationLoadBalancerTargetPoolTlsConfigArgs Empty => new ApplicationLoadBalancerTargetPoolTlsConfigArgs(); + } +} diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolTlsConfigGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolTlsConfigGetArgs.cs new file mode 100644 index 0000000..da6cec7 --- /dev/null +++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetPoolTlsConfigGetArgs.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 ApplicationLoadBalancerTargetPoolTlsConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// 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. + /// + [Input("customCa")] + public Input? CustomCa { get; set; } + + /// + /// 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. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// 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! + /// + [Input("skipCertificateValidation")] + public Input? SkipCertificateValidation { get; set; } + + public ApplicationLoadBalancerTargetPoolTlsConfigGetArgs() + { + } + public static new ApplicationLoadBalancerTargetPoolTlsConfigGetArgs Empty => new ApplicationLoadBalancerTargetPoolTlsConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetSecurityGroupArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetSecurityGroupArgs.cs new file mode 100644 index 0000000..bec6f37 --- /dev/null +++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetSecurityGroupArgs.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 ApplicationLoadBalancerTargetSecurityGroupArgs : 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 ApplicationLoadBalancerTargetSecurityGroupArgs() + { + } + public static new ApplicationLoadBalancerTargetSecurityGroupArgs Empty => new ApplicationLoadBalancerTargetSecurityGroupArgs(); + } +} diff --git a/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetSecurityGroupGetArgs.cs b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetSecurityGroupGetArgs.cs new file mode 100644 index 0000000..0f84de4 --- /dev/null +++ b/sdk/dotnet/Inputs/ApplicationLoadBalancerTargetSecurityGroupGetArgs.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 ApplicationLoadBalancerTargetSecurityGroupGetArgs : 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 ApplicationLoadBalancerTargetSecurityGroupGetArgs() + { + } + public static new ApplicationLoadBalancerTargetSecurityGroupGetArgs Empty => new ApplicationLoadBalancerTargetSecurityGroupGetArgs(); + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerError.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerError.cs new file mode 100644 index 0000000..3da62c9 --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerError.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerError + { + /// + /// 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. + /// + public readonly 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`. + /// + public readonly string? Type; + + [OutputConstructor] + private ApplicationLoadBalancerError( + string? description, + + string? type) + { + Description = description; + Type = type; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerListener.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerListener.cs new file mode 100644 index 0000000..5f1c088 --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerListener.cs @@ -0,0 +1,63 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerListener + { + /// + /// Configuration for HTTP traffic. + /// + public readonly Outputs.ApplicationLoadBalancerListenerHttp Http; + /// + /// Configuration for handling HTTPS traffic on this listener. + /// + public readonly Outputs.ApplicationLoadBalancerListenerHttps? Https; + /// + /// Unique name for the listener + /// + public readonly string Name; + /// + /// Port number on which the listener receives incoming traffic. + /// + public readonly int Port; + /// + /// Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. + /// + public readonly string Protocol; + /// + /// Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. + /// + public readonly string? WafConfigName; + + [OutputConstructor] + private ApplicationLoadBalancerListener( + Outputs.ApplicationLoadBalancerListenerHttp http, + + Outputs.ApplicationLoadBalancerListenerHttps? https, + + string name, + + int port, + + string protocol, + + string? wafConfigName) + { + Http = http; + Https = https; + Name = name; + Port = port; + Protocol = protocol; + WafConfigName = wafConfigName; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttp.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttp.cs new file mode 100644 index 0000000..ccf5cb7 --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttp.cs @@ -0,0 +1,27 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerListenerHttp + { + /// + /// Defines routing rules grouped by hostname. + /// + public readonly ImmutableArray Hosts; + + [OutputConstructor] + private ApplicationLoadBalancerListenerHttp(ImmutableArray hosts) + { + Hosts = hosts; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHost.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHost.cs new file mode 100644 index 0000000..3e51561 --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHost.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerListenerHttpHost + { + /// + /// Hostname to match. Supports wildcards (e.g. *.example.com). + /// + public readonly string Host; + /// + /// Routing rules under the specified host, matched by path prefix. + /// + public readonly ImmutableArray Rules; + + [OutputConstructor] + private ApplicationLoadBalancerListenerHttpHost( + string host, + + ImmutableArray rules) + { + Host = host; + Rules = rules; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHostRule.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHostRule.cs new file mode 100644 index 0000000..c3f26b9 --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHostRule.cs @@ -0,0 +1,63 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerListenerHttpHostRule + { + /// + /// Routing persistence via cookies. + /// + public readonly Outputs.ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence? CookiePersistence; + /// + /// Headers for the rule. + /// + public readonly ImmutableArray Headers; + /// + /// Routing via path. + /// + public readonly Outputs.ApplicationLoadBalancerListenerHttpHostRulePath? Path; + /// + /// Query parameters for the rule. + /// + public readonly ImmutableArray QueryParameters; + /// + /// Reference target pool by target pool name. + /// + public readonly string TargetPool; + /// + /// 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. + /// + public readonly bool? WebSocket; + + [OutputConstructor] + private ApplicationLoadBalancerListenerHttpHostRule( + Outputs.ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence? cookiePersistence, + + ImmutableArray headers, + + Outputs.ApplicationLoadBalancerListenerHttpHostRulePath? path, + + ImmutableArray queryParameters, + + string targetPool, + + bool? webSocket) + { + CookiePersistence = cookiePersistence; + Headers = headers; + Path = path; + QueryParameters = queryParameters; + TargetPool = targetPool; + WebSocket = webSocket; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence.cs new file mode 100644 index 0000000..4de4aed --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence + { + /// + /// The name of the cookie to use. + /// + public readonly string Name; + /// + /// 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. + /// + public readonly string Ttl; + + [OutputConstructor] + private ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence( + string name, + + string ttl) + { + Name = name; + Ttl = ttl; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHostRuleHeader.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHostRuleHeader.cs new file mode 100644 index 0000000..48be944 --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHostRuleHeader.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerListenerHttpHostRuleHeader + { + /// + /// Exact match for the header value. + /// + public readonly string? ExactMatch; + /// + /// Header name. + /// + public readonly string Name; + + [OutputConstructor] + private ApplicationLoadBalancerListenerHttpHostRuleHeader( + string? exactMatch, + + string name) + { + ExactMatch = exactMatch; + Name = name; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHostRulePath.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHostRulePath.cs new file mode 100644 index 0000000..689b7f0 --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHostRulePath.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerListenerHttpHostRulePath + { + /// + /// 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'. + /// + public readonly string? ExactMatch; + /// + /// Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. + /// + public readonly string? Prefix; + + [OutputConstructor] + private ApplicationLoadBalancerListenerHttpHostRulePath( + string? exactMatch, + + string? prefix) + { + ExactMatch = exactMatch; + Prefix = prefix; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHostRuleQueryParameter.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHostRuleQueryParameter.cs new file mode 100644 index 0000000..7a6daf9 --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpHostRuleQueryParameter.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerListenerHttpHostRuleQueryParameter + { + /// + /// Exact match for the query parameters value. + /// + public readonly string? ExactMatch; + /// + /// Query parameter name. + /// + public readonly string Name; + + [OutputConstructor] + private ApplicationLoadBalancerListenerHttpHostRuleQueryParameter( + string? exactMatch, + + string name) + { + ExactMatch = exactMatch; + Name = name; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttps.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttps.cs new file mode 100644 index 0000000..05b42de --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttps.cs @@ -0,0 +1,27 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerListenerHttps + { + /// + /// TLS termination certificate configuration. + /// + public readonly Outputs.ApplicationLoadBalancerListenerHttpsCertificateConfig CertificateConfig; + + [OutputConstructor] + private ApplicationLoadBalancerListenerHttps(Outputs.ApplicationLoadBalancerListenerHttpsCertificateConfig certificateConfig) + { + CertificateConfig = certificateConfig; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpsCertificateConfig.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpsCertificateConfig.cs new file mode 100644 index 0000000..74070fc --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerListenerHttpsCertificateConfig.cs @@ -0,0 +1,27 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerListenerHttpsCertificateConfig + { + /// + /// Certificate IDs for TLS termination. + /// + public readonly ImmutableArray CertificateIds; + + [OutputConstructor] + private ApplicationLoadBalancerListenerHttpsCertificateConfig(ImmutableArray certificateIds) + { + CertificateIds = certificateIds; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerLoadBalancerSecurityGroup.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerLoadBalancerSecurityGroup.cs new file mode 100644 index 0000000..bca750d --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerLoadBalancerSecurityGroup.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerLoadBalancerSecurityGroup + { + /// + /// ID of the security Group + /// + public readonly string? Id; + /// + /// Name of the security Group + /// + public readonly string? Name; + + [OutputConstructor] + private ApplicationLoadBalancerLoadBalancerSecurityGroup( + string? id, + + string? name) + { + Id = id; + Name = name; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerNetwork.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerNetwork.cs new file mode 100644 index 0000000..d268cea --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerNetwork.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerNetwork + { + /// + /// STACKIT network ID the Application Load Balancer and/or targets are in. + /// + public readonly string NetworkId; + /// + /// 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`. + /// + public readonly string Role; + + [OutputConstructor] + private ApplicationLoadBalancerNetwork( + string networkId, + + string role) + { + NetworkId = networkId; + Role = role; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerOptions.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerOptions.cs new file mode 100644 index 0000000..9c5b31b --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerOptions.cs @@ -0,0 +1,49 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerOptions + { + /// + /// Use this option to limit the IP ranges that can use the Application Load Balancer. + /// + public readonly Outputs.ApplicationLoadBalancerOptionsAccessControl? AccessControl; + /// + /// 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. + /// + public readonly bool? EphemeralAddress; + /// + /// We offer Load Balancer observability via STACKIT Observability or external solutions. + /// + public readonly Outputs.ApplicationLoadBalancerOptionsObservability? Observability; + /// + /// Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. + /// + public readonly bool? PrivateNetworkOnly; + + [OutputConstructor] + private ApplicationLoadBalancerOptions( + Outputs.ApplicationLoadBalancerOptionsAccessControl? accessControl, + + bool? ephemeralAddress, + + Outputs.ApplicationLoadBalancerOptionsObservability? observability, + + bool? privateNetworkOnly) + { + AccessControl = accessControl; + EphemeralAddress = ephemeralAddress; + Observability = observability; + PrivateNetworkOnly = privateNetworkOnly; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerOptionsAccessControl.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerOptionsAccessControl.cs new file mode 100644 index 0000000..98c94fd --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerOptionsAccessControl.cs @@ -0,0 +1,27 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerOptionsAccessControl + { + /// + /// Application Load Balancer is accessible only from an IP address in this range. + /// + public readonly ImmutableArray AllowedSourceRanges; + + [OutputConstructor] + private ApplicationLoadBalancerOptionsAccessControl(ImmutableArray allowedSourceRanges) + { + AllowedSourceRanges = allowedSourceRanges; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerOptionsObservability.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerOptionsObservability.cs new file mode 100644 index 0000000..dddb722 --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerOptionsObservability.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerOptionsObservability + { + /// + /// Observability logs configuration. + /// + public readonly Outputs.ApplicationLoadBalancerOptionsObservabilityLogs? Logs; + /// + /// Observability metrics configuration. + /// + public readonly Outputs.ApplicationLoadBalancerOptionsObservabilityMetrics? Metrics; + + [OutputConstructor] + private ApplicationLoadBalancerOptionsObservability( + Outputs.ApplicationLoadBalancerOptionsObservabilityLogs? logs, + + Outputs.ApplicationLoadBalancerOptionsObservabilityMetrics? metrics) + { + Logs = logs; + Metrics = metrics; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerOptionsObservabilityLogs.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerOptionsObservabilityLogs.cs new file mode 100644 index 0000000..3d383cd --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerOptionsObservabilityLogs.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerOptionsObservabilityLogs + { + /// + /// 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. + /// + public readonly string CredentialsRef; + /// + /// 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. + /// + public readonly string PushUrl; + + [OutputConstructor] + private ApplicationLoadBalancerOptionsObservabilityLogs( + string credentialsRef, + + string pushUrl) + { + CredentialsRef = credentialsRef; + PushUrl = pushUrl; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerOptionsObservabilityMetrics.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerOptionsObservabilityMetrics.cs new file mode 100644 index 0000000..d9fb55b --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerOptionsObservabilityMetrics.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerOptionsObservabilityMetrics + { + /// + /// 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. + /// + public readonly string CredentialsRef; + /// + /// 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. + /// + public readonly string PushUrl; + + [OutputConstructor] + private ApplicationLoadBalancerOptionsObservabilityMetrics( + string credentialsRef, + + string pushUrl) + { + CredentialsRef = credentialsRef; + PushUrl = pushUrl; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetPool.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetPool.cs new file mode 100644 index 0000000..d4fed1a --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetPool.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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerTargetPool + { + public readonly Outputs.ApplicationLoadBalancerTargetPoolActiveHealthCheck? ActiveHealthCheck; + /// + /// Target pool name. + /// + public readonly string Name; + /// + /// The number identifying the port where each target listens for traffic. + /// + public readonly int TargetPort; + /// + /// List of all targets which will be used in the pool. Limited to 250. + /// + public readonly ImmutableArray Targets; + /// + /// Configuration for TLS bridging. + /// + public readonly Outputs.ApplicationLoadBalancerTargetPoolTlsConfig? TlsConfig; + + [OutputConstructor] + private ApplicationLoadBalancerTargetPool( + Outputs.ApplicationLoadBalancerTargetPoolActiveHealthCheck? activeHealthCheck, + + string name, + + int targetPort, + + ImmutableArray targets, + + Outputs.ApplicationLoadBalancerTargetPoolTlsConfig? tlsConfig) + { + ActiveHealthCheck = activeHealthCheck; + Name = name; + TargetPort = targetPort; + Targets = targets; + TlsConfig = tlsConfig; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetPoolActiveHealthCheck.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetPoolActiveHealthCheck.cs new file mode 100644 index 0000000..bd0b64f --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetPoolActiveHealthCheck.cs @@ -0,0 +1,63 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerTargetPoolActiveHealthCheck + { + /// + /// Healthy threshold of the health checking. + /// + public readonly int HealthyThreshold; + /// + /// Options for the HTTP health checking. + /// + public readonly Outputs.ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks? HttpHealthChecks; + /// + /// Interval duration of health checking in seconds. + /// + public readonly string Interval; + /// + /// Interval duration threshold of the health checking in seconds. + /// + public readonly string IntervalJitter; + /// + /// Active health checking timeout duration in seconds. + /// + public readonly string Timeout; + /// + /// Unhealthy threshold of the health checking. + /// + public readonly int UnhealthyThreshold; + + [OutputConstructor] + private ApplicationLoadBalancerTargetPoolActiveHealthCheck( + int healthyThreshold, + + Outputs.ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks? httpHealthChecks, + + string interval, + + string intervalJitter, + + string timeout, + + int unhealthyThreshold) + { + HealthyThreshold = healthyThreshold; + HttpHealthChecks = httpHealthChecks; + Interval = interval; + IntervalJitter = intervalJitter; + Timeout = timeout; + UnhealthyThreshold = unhealthyThreshold; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks.cs new file mode 100644 index 0000000..01e242f --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks + { + /// + /// List of HTTP status codes that indicate a healthy response. + /// + public readonly ImmutableArray OkStatuses; + /// + /// Path to send the health check request to. + /// + public readonly string Path; + + [OutputConstructor] + private ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks( + ImmutableArray okStatuses, + + string path) + { + OkStatuses = okStatuses; + Path = path; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetPoolTarget.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetPoolTarget.cs new file mode 100644 index 0000000..e29791f --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetPoolTarget.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerTargetPoolTarget + { + /// + /// Target display name + /// + public readonly string? DisplayName; + /// + /// Private target IP, which must by unique within a target pool. + /// + public readonly string Ip; + + [OutputConstructor] + private ApplicationLoadBalancerTargetPoolTarget( + string? displayName, + + string ip) + { + DisplayName = displayName; + Ip = ip; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetPoolTlsConfig.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetPoolTlsConfig.cs new file mode 100644 index 0000000..3689e1e --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetPoolTlsConfig.cs @@ -0,0 +1,42 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerTargetPoolTlsConfig + { + /// + /// 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. + /// + public readonly string? CustomCa; + /// + /// 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. + /// + public readonly bool? Enabled; + /// + /// 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! + /// + public readonly bool? SkipCertificateValidation; + + [OutputConstructor] + private ApplicationLoadBalancerTargetPoolTlsConfig( + string? customCa, + + bool? enabled, + + bool? skipCertificateValidation) + { + CustomCa = customCa; + Enabled = enabled; + SkipCertificateValidation = skipCertificateValidation; + } + } +} diff --git a/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetSecurityGroup.cs b/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetSecurityGroup.cs new file mode 100644 index 0000000..00436dc --- /dev/null +++ b/sdk/dotnet/Outputs/ApplicationLoadBalancerTargetSecurityGroup.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class ApplicationLoadBalancerTargetSecurityGroup + { + /// + /// ID of the security Group + /// + public readonly string? Id; + /// + /// Name of the security Group + /// + public readonly string? Name; + + [OutputConstructor] + private ApplicationLoadBalancerTargetSecurityGroup( + string? id, + + string? name) + { + Id = id; + Name = name; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerErrorResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerErrorResult.cs new file mode 100644 index 0000000..8dc1c50 --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerErrorResult.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerErrorResult + { + /// + /// 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. + /// + public readonly 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`. + /// + public readonly string Type; + + [OutputConstructor] + private GetApplicationLoadBalancerErrorResult( + string description, + + string type) + { + Description = description; + Type = type; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostResult.cs new file mode 100644 index 0000000..7ece520 --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostResult.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerListenerHttpHostResult + { + /// + /// Hostname to match. Supports wildcards (e.g. *.example.com). + /// + public readonly string Host; + /// + /// Routing rules under the specified host, matched by path prefix. + /// + public readonly ImmutableArray Rules; + + [OutputConstructor] + private GetApplicationLoadBalancerListenerHttpHostResult( + string host, + + ImmutableArray rules) + { + Host = host; + Rules = rules; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceResult.cs new file mode 100644 index 0000000..4dce492 --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceResult.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceResult + { + /// + /// The name of the cookie to use. + /// + public readonly string Name; + /// + /// 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. + /// + public readonly string Ttl; + + [OutputConstructor] + private GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceResult( + string name, + + string ttl) + { + Name = name; + Ttl = ttl; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostRuleHeaderResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostRuleHeaderResult.cs new file mode 100644 index 0000000..f965555 --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostRuleHeaderResult.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerListenerHttpHostRuleHeaderResult + { + /// + /// Exact match for the header value. + /// + public readonly string ExactMatch; + /// + /// Header name. + /// + public readonly string Name; + + [OutputConstructor] + private GetApplicationLoadBalancerListenerHttpHostRuleHeaderResult( + string exactMatch, + + string name) + { + ExactMatch = exactMatch; + Name = name; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostRulePathResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostRulePathResult.cs new file mode 100644 index 0000000..6d9d8da --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostRulePathResult.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerListenerHttpHostRulePathResult + { + /// + /// 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'. + /// + public readonly string ExactMatch; + /// + /// Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. + /// + public readonly string Prefix; + + [OutputConstructor] + private GetApplicationLoadBalancerListenerHttpHostRulePathResult( + string exactMatch, + + string prefix) + { + ExactMatch = exactMatch; + Prefix = prefix; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterResult.cs new file mode 100644 index 0000000..b97cd55 --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterResult.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterResult + { + /// + /// Exact match for the query parameters value. + /// + public readonly string ExactMatch; + /// + /// Query parameter name. + /// + public readonly string Name; + + [OutputConstructor] + private GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterResult( + string exactMatch, + + string name) + { + ExactMatch = exactMatch; + Name = name; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostRuleResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostRuleResult.cs new file mode 100644 index 0000000..7575d5c --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpHostRuleResult.cs @@ -0,0 +1,63 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerListenerHttpHostRuleResult + { + /// + /// Routing persistence via cookies. + /// + public readonly Outputs.GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceResult CookiePersistence; + /// + /// Headers for the rule. + /// + public readonly ImmutableArray Headers; + /// + /// Routing via path. + /// + public readonly Outputs.GetApplicationLoadBalancerListenerHttpHostRulePathResult Path; + /// + /// Query parameters for the rule. + /// + public readonly ImmutableArray QueryParameters; + /// + /// Reference target pool by target pool name. + /// + public readonly string TargetPool; + /// + /// 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. + /// + public readonly bool WebSocket; + + [OutputConstructor] + private GetApplicationLoadBalancerListenerHttpHostRuleResult( + Outputs.GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceResult cookiePersistence, + + ImmutableArray headers, + + Outputs.GetApplicationLoadBalancerListenerHttpHostRulePathResult path, + + ImmutableArray queryParameters, + + string targetPool, + + bool webSocket) + { + CookiePersistence = cookiePersistence; + Headers = headers; + Path = path; + QueryParameters = queryParameters; + TargetPool = targetPool; + WebSocket = webSocket; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpResult.cs new file mode 100644 index 0000000..766e364 --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpResult.cs @@ -0,0 +1,27 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerListenerHttpResult + { + /// + /// Defines routing rules grouped by hostname. + /// + public readonly ImmutableArray Hosts; + + [OutputConstructor] + private GetApplicationLoadBalancerListenerHttpResult(ImmutableArray hosts) + { + Hosts = hosts; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpsCertificateConfigResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpsCertificateConfigResult.cs new file mode 100644 index 0000000..06c0a77 --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpsCertificateConfigResult.cs @@ -0,0 +1,27 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerListenerHttpsCertificateConfigResult + { + /// + /// Certificate IDs for TLS termination. + /// + public readonly ImmutableArray CertificateIds; + + [OutputConstructor] + private GetApplicationLoadBalancerListenerHttpsCertificateConfigResult(ImmutableArray certificateIds) + { + CertificateIds = certificateIds; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpsResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpsResult.cs new file mode 100644 index 0000000..8b43c21 --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerHttpsResult.cs @@ -0,0 +1,27 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerListenerHttpsResult + { + /// + /// TLS termination certificate configuration. + /// + public readonly Outputs.GetApplicationLoadBalancerListenerHttpsCertificateConfigResult CertificateConfig; + + [OutputConstructor] + private GetApplicationLoadBalancerListenerHttpsResult(Outputs.GetApplicationLoadBalancerListenerHttpsCertificateConfigResult certificateConfig) + { + CertificateConfig = certificateConfig; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerResult.cs new file mode 100644 index 0000000..ab2a24d --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerListenerResult.cs @@ -0,0 +1,63 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerListenerResult + { + /// + /// Configuration for HTTP traffic. + /// + public readonly Outputs.GetApplicationLoadBalancerListenerHttpResult Http; + /// + /// Configuration for handling HTTPS traffic on this listener. + /// + public readonly Outputs.GetApplicationLoadBalancerListenerHttpsResult Https; + /// + /// Unique name for the listener + /// + public readonly string Name; + /// + /// Port number on which the listener receives incoming traffic. + /// + public readonly int Port; + /// + /// Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. + /// + public readonly string Protocol; + /// + /// Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. + /// + public readonly string WafConfigName; + + [OutputConstructor] + private GetApplicationLoadBalancerListenerResult( + Outputs.GetApplicationLoadBalancerListenerHttpResult http, + + Outputs.GetApplicationLoadBalancerListenerHttpsResult https, + + string name, + + int port, + + string protocol, + + string wafConfigName) + { + Http = http; + Https = https; + Name = name; + Port = port; + Protocol = protocol; + WafConfigName = wafConfigName; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerLoadBalancerSecurityGroupResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerLoadBalancerSecurityGroupResult.cs new file mode 100644 index 0000000..1cd918a --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerLoadBalancerSecurityGroupResult.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerLoadBalancerSecurityGroupResult + { + /// + /// ID of the security Group + /// + public readonly string Id; + /// + /// Name of the security Group + /// + public readonly string Name; + + [OutputConstructor] + private GetApplicationLoadBalancerLoadBalancerSecurityGroupResult( + string id, + + string name) + { + Id = id; + Name = name; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerNetworkResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerNetworkResult.cs new file mode 100644 index 0000000..33039a8 --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerNetworkResult.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerNetworkResult + { + /// + /// STACKIT network ID the Application Load Balancer and/or targets are in. + /// + public readonly string NetworkId; + /// + /// 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`. + /// + public readonly string Role; + + [OutputConstructor] + private GetApplicationLoadBalancerNetworkResult( + string networkId, + + string role) + { + NetworkId = networkId; + Role = role; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerOptionsAccessControlResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerOptionsAccessControlResult.cs new file mode 100644 index 0000000..6e27690 --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerOptionsAccessControlResult.cs @@ -0,0 +1,27 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerOptionsAccessControlResult + { + /// + /// Application Load Balancer is accessible only from an IP address in this range. + /// + public readonly ImmutableArray AllowedSourceRanges; + + [OutputConstructor] + private GetApplicationLoadBalancerOptionsAccessControlResult(ImmutableArray allowedSourceRanges) + { + AllowedSourceRanges = allowedSourceRanges; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerOptionsObservabilityLogsResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerOptionsObservabilityLogsResult.cs new file mode 100644 index 0000000..db2a3f1 --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerOptionsObservabilityLogsResult.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerOptionsObservabilityLogsResult + { + /// + /// 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. + /// + public readonly string CredentialsRef; + /// + /// 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. + /// + public readonly string PushUrl; + + [OutputConstructor] + private GetApplicationLoadBalancerOptionsObservabilityLogsResult( + string credentialsRef, + + string pushUrl) + { + CredentialsRef = credentialsRef; + PushUrl = pushUrl; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerOptionsObservabilityMetricsResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerOptionsObservabilityMetricsResult.cs new file mode 100644 index 0000000..29fd027 --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerOptionsObservabilityMetricsResult.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerOptionsObservabilityMetricsResult + { + /// + /// 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. + /// + public readonly string CredentialsRef; + /// + /// 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. + /// + public readonly string PushUrl; + + [OutputConstructor] + private GetApplicationLoadBalancerOptionsObservabilityMetricsResult( + string credentialsRef, + + string pushUrl) + { + CredentialsRef = credentialsRef; + PushUrl = pushUrl; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerOptionsObservabilityResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerOptionsObservabilityResult.cs new file mode 100644 index 0000000..69d3484 --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerOptionsObservabilityResult.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerOptionsObservabilityResult + { + /// + /// Observability logs configuration. + /// + public readonly Outputs.GetApplicationLoadBalancerOptionsObservabilityLogsResult Logs; + /// + /// Observability metrics configuration. + /// + public readonly Outputs.GetApplicationLoadBalancerOptionsObservabilityMetricsResult Metrics; + + [OutputConstructor] + private GetApplicationLoadBalancerOptionsObservabilityResult( + Outputs.GetApplicationLoadBalancerOptionsObservabilityLogsResult logs, + + Outputs.GetApplicationLoadBalancerOptionsObservabilityMetricsResult metrics) + { + Logs = logs; + Metrics = metrics; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerOptionsResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerOptionsResult.cs new file mode 100644 index 0000000..fd72940 --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerOptionsResult.cs @@ -0,0 +1,49 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerOptionsResult + { + /// + /// Use this option to limit the IP ranges that can use the Application Load Balancer. + /// + public readonly Outputs.GetApplicationLoadBalancerOptionsAccessControlResult AccessControl; + /// + /// 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. + /// + public readonly bool EphemeralAddress; + /// + /// We offer Load Balancer observability via STACKIT Observability or external solutions. + /// + public readonly Outputs.GetApplicationLoadBalancerOptionsObservabilityResult Observability; + /// + /// Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. + /// + public readonly bool PrivateNetworkOnly; + + [OutputConstructor] + private GetApplicationLoadBalancerOptionsResult( + Outputs.GetApplicationLoadBalancerOptionsAccessControlResult accessControl, + + bool ephemeralAddress, + + Outputs.GetApplicationLoadBalancerOptionsObservabilityResult observability, + + bool privateNetworkOnly) + { + AccessControl = accessControl; + EphemeralAddress = ephemeralAddress; + Observability = observability; + PrivateNetworkOnly = privateNetworkOnly; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksResult.cs new file mode 100644 index 0000000..98bb5a8 --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksResult.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksResult + { + /// + /// List of HTTP status codes that indicate a healthy response. + /// + public readonly ImmutableArray OkStatuses; + /// + /// Path to send the health check request to. + /// + public readonly string Path; + + [OutputConstructor] + private GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksResult( + ImmutableArray okStatuses, + + string path) + { + OkStatuses = okStatuses; + Path = path; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetPoolActiveHealthCheckResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetPoolActiveHealthCheckResult.cs new file mode 100644 index 0000000..a6d4d4d --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetPoolActiveHealthCheckResult.cs @@ -0,0 +1,63 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerTargetPoolActiveHealthCheckResult + { + /// + /// Healthy threshold of the health checking. + /// + public readonly int HealthyThreshold; + /// + /// Options for the HTTP health checking. + /// + public readonly Outputs.GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksResult HttpHealthChecks; + /// + /// Interval duration of health checking in seconds. + /// + public readonly string Interval; + /// + /// Interval duration threshold of the health checking in seconds. + /// + public readonly string IntervalJitter; + /// + /// Active health checking timeout duration in seconds. + /// + public readonly string Timeout; + /// + /// Unhealthy threshold of the health checking. + /// + public readonly int UnhealthyThreshold; + + [OutputConstructor] + private GetApplicationLoadBalancerTargetPoolActiveHealthCheckResult( + int healthyThreshold, + + Outputs.GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksResult httpHealthChecks, + + string interval, + + string intervalJitter, + + string timeout, + + int unhealthyThreshold) + { + HealthyThreshold = healthyThreshold; + HttpHealthChecks = httpHealthChecks; + Interval = interval; + IntervalJitter = intervalJitter; + Timeout = timeout; + UnhealthyThreshold = unhealthyThreshold; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetPoolResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetPoolResult.cs new file mode 100644 index 0000000..f2e99a7 --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetPoolResult.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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerTargetPoolResult + { + public readonly Outputs.GetApplicationLoadBalancerTargetPoolActiveHealthCheckResult ActiveHealthCheck; + /// + /// Target pool name. + /// + public readonly string Name; + /// + /// The number identifying the port where each target listens for traffic. + /// + public readonly int TargetPort; + /// + /// List of all targets which will be used in the pool. Limited to 250. + /// + public readonly ImmutableArray Targets; + /// + /// Configuration for TLS bridging. + /// + public readonly Outputs.GetApplicationLoadBalancerTargetPoolTlsConfigResult TlsConfig; + + [OutputConstructor] + private GetApplicationLoadBalancerTargetPoolResult( + Outputs.GetApplicationLoadBalancerTargetPoolActiveHealthCheckResult activeHealthCheck, + + string name, + + int targetPort, + + ImmutableArray targets, + + Outputs.GetApplicationLoadBalancerTargetPoolTlsConfigResult tlsConfig) + { + ActiveHealthCheck = activeHealthCheck; + Name = name; + TargetPort = targetPort; + Targets = targets; + TlsConfig = tlsConfig; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetPoolTargetResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetPoolTargetResult.cs new file mode 100644 index 0000000..8fc3abf --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetPoolTargetResult.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerTargetPoolTargetResult + { + /// + /// Target display name + /// + public readonly string DisplayName; + /// + /// Private target IP, which must by unique within a target pool. + /// + public readonly string Ip; + + [OutputConstructor] + private GetApplicationLoadBalancerTargetPoolTargetResult( + string displayName, + + string ip) + { + DisplayName = displayName; + Ip = ip; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetPoolTlsConfigResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetPoolTlsConfigResult.cs new file mode 100644 index 0000000..6965c3a --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetPoolTlsConfigResult.cs @@ -0,0 +1,42 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerTargetPoolTlsConfigResult + { + /// + /// 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. + /// + public readonly string CustomCa; + /// + /// 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. + /// + public readonly bool Enabled; + /// + /// 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! + /// + public readonly bool SkipCertificateValidation; + + [OutputConstructor] + private GetApplicationLoadBalancerTargetPoolTlsConfigResult( + string customCa, + + bool enabled, + + bool skipCertificateValidation) + { + CustomCa = customCa; + Enabled = enabled; + SkipCertificateValidation = skipCertificateValidation; + } + } +} diff --git a/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetSecurityGroupResult.cs b/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetSecurityGroupResult.cs new file mode 100644 index 0000000..f60b1af --- /dev/null +++ b/sdk/dotnet/Outputs/GetApplicationLoadBalancerTargetSecurityGroupResult.cs @@ -0,0 +1,35 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetApplicationLoadBalancerTargetSecurityGroupResult + { + /// + /// ID of the security Group + /// + public readonly string Id; + /// + /// Name of the security Group + /// + public readonly string Name; + + [OutputConstructor] + private GetApplicationLoadBalancerTargetSecurityGroupResult( + string id, + + string name) + { + Id = id; + Name = name; + } + } +} diff --git a/sdk/dotnet/Outputs/GetServiceAccountsItemResult.cs b/sdk/dotnet/Outputs/GetServiceAccountsItemResult.cs new file mode 100644 index 0000000..64888fb --- /dev/null +++ b/sdk/dotnet/Outputs/GetServiceAccountsItemResult.cs @@ -0,0 +1,42 @@ +// *** 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.Outputs +{ + + [OutputType] + public sealed class GetServiceAccountsItemResult + { + /// + /// Email of the service account. + /// + public readonly string Email; + /// + /// Name of the service account. + /// + public readonly string Name; + /// + /// The internal UUID of the service account. + /// + public readonly string ServiceAccountId; + + [OutputConstructor] + private GetServiceAccountsItemResult( + string email, + + string name, + + string serviceAccountId) + { + Email = email; + Name = name; + ServiceAccountId = serviceAccountId; + } + } +} diff --git a/sdk/dotnet/Provider.cs b/sdk/dotnet/Provider.cs index deb8c97..b046063 100644 --- a/sdk/dotnet/Provider.cs +++ b/sdk/dotnet/Provider.cs @@ -18,6 +18,12 @@ namespace Pulumi.Stackit [StackitResourceType("pulumi:providers:stackit")] public partial class Provider : global::Pulumi.ProviderResource { + /// + /// Custom endpoint for the Application Load Balancer service + /// + [Output("albCustomEndpoint")] + public Output AlbCustomEndpoint { get; private set; } = null!; + /// /// Custom endpoint for the Membership service /// @@ -311,6 +317,12 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? public sealed class ProviderArgs : global::Pulumi.ResourceArgs { + /// + /// Custom endpoint for the Application Load Balancer service + /// + [Input("albCustomEndpoint")] + public Input? AlbCustomEndpoint { get; set; } + /// /// Custom endpoint for the Membership service /// diff --git a/sdk/dotnet/ServerBackupSchedule.cs b/sdk/dotnet/ServerBackupSchedule.cs index 57a20ad..d0d4bfe 100644 --- a/sdk/dotnet/ServerBackupSchedule.cs +++ b/sdk/dotnet/ServerBackupSchedule.cs @@ -12,8 +12,6 @@ namespace Pulumi.Stackit /// /// Server backup schedule resource schema. Must have a `Region` specified in the provider configuration. /// - /// > 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. - /// /// ## Example Usage /// [StackitResourceType("stackit:index/serverBackupSchedule:ServerBackupSchedule")] diff --git a/sdk/dotnet/ServerUpdateSchedule.cs b/sdk/dotnet/ServerUpdateSchedule.cs index e233b3a..33cf4dd 100644 --- a/sdk/dotnet/ServerUpdateSchedule.cs +++ b/sdk/dotnet/ServerUpdateSchedule.cs @@ -12,8 +12,6 @@ namespace Pulumi.Stackit /// /// Server update schedule resource schema. Must have a `Region` specified in the provider configuration. /// - /// > 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. - /// /// ## Example Usage /// [StackitResourceType("stackit:index/serverUpdateSchedule:ServerUpdateSchedule")] diff --git a/sdk/dotnet/ServiceAccount.cs b/sdk/dotnet/ServiceAccount.cs index ce59ed5..43bbb87 100644 --- a/sdk/dotnet/ServiceAccount.cs +++ b/sdk/dotnet/ServiceAccount.cs @@ -35,6 +35,12 @@ public partial class ServiceAccount : global::Pulumi.CustomResource [Output("projectId")] public Output ProjectId { get; private set; } = null!; + /// + /// The internal UUID of the service account. + /// + [Output("serviceAccountId")] + public Output ServiceAccountId { get; private set; } = null!; + /// /// Create a ServiceAccount resource with the given unique name, arguments, and options. @@ -120,6 +126,12 @@ public sealed class ServiceAccountState : global::Pulumi.ResourceArgs [Input("projectId")] public Input? ProjectId { get; set; } + /// + /// The internal UUID of the service account. + /// + [Input("serviceAccountId")] + public Input? ServiceAccountId { get; set; } + public ServiceAccountState() { } diff --git a/sdk/dotnet/ServiceAccountAccessToken.cs b/sdk/dotnet/ServiceAccountAccessToken.cs deleted file mode 100644 index dffd066..0000000 --- a/sdk/dotnet/ServiceAccountAccessToken.cs +++ /dev/null @@ -1,242 +0,0 @@ -// *** 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 -{ - /// - /// Service account access token schema. - /// - /// !> 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. - /// - /// ## Example Usage - /// - /// ### Automatically rotate access tokens - /// - [StackitResourceType("stackit:index/serviceAccountAccessToken:ServiceAccountAccessToken")] - public partial class ServiceAccountAccessToken : global::Pulumi.CustomResource - { - /// - /// Identifier for the access token linked to the service account. - /// - [Output("accessTokenId")] - public Output AccessTokenId { get; private set; } = null!; - - /// - /// Indicate whether the token is currently active or inactive - /// - [Output("active")] - public Output Active { get; private set; } = null!; - - /// - /// Timestamp indicating when the access token was created. - /// - [Output("createdAt")] - public Output CreatedAt { get; private set; } = null!; - - /// - /// STACKIT project ID associated with the service account token. - /// - [Output("projectId")] - public Output ProjectId { get; private set; } = null!; - - /// - /// 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. - /// - [Output("rotateWhenChanged")] - public Output?> RotateWhenChanged { get; private set; } = null!; - - /// - /// Email address linked to the service account. - /// - [Output("serviceAccountEmail")] - public Output ServiceAccountEmail { get; private set; } = null!; - - /// - /// JWT access token for API authentication. Prefixed by 'Bearer' and should be stored securely as it is irretrievable once lost. - /// - [Output("token")] - public Output Token { get; private set; } = null!; - - /// - /// Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - /// - [Output("ttlDays")] - public Output TtlDays { get; private set; } = null!; - - /// - /// Estimated expiration timestamp of the access token. For precise validity, check the JWT details. - /// - [Output("validUntil")] - public Output ValidUntil { get; private set; } = null!; - - - /// - /// Create a ServiceAccountAccessToken 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 ServiceAccountAccessToken(string name, ServiceAccountAccessTokenArgs args, CustomResourceOptions? options = null) - : base("stackit:index/serviceAccountAccessToken:ServiceAccountAccessToken", name, args ?? new ServiceAccountAccessTokenArgs(), MakeResourceOptions(options, "")) - { - } - - private ServiceAccountAccessToken(string name, Input id, ServiceAccountAccessTokenState? state = null, CustomResourceOptions? options = null) - : base("stackit:index/serviceAccountAccessToken:ServiceAccountAccessToken", 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", - AdditionalSecretOutputs = - { - "token", - }, - }; - 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 ServiceAccountAccessToken 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 ServiceAccountAccessToken Get(string name, Input id, ServiceAccountAccessTokenState? state = null, CustomResourceOptions? options = null) - { - return new ServiceAccountAccessToken(name, id, state, options); - } - } - - public sealed class ServiceAccountAccessTokenArgs : global::Pulumi.ResourceArgs - { - /// - /// STACKIT project ID associated with the service account token. - /// - [Input("projectId", required: true)] - public Input ProjectId { get; set; } = null!; - - [Input("rotateWhenChanged")] - private InputMap? _rotateWhenChanged; - - /// - /// 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. - /// - public InputMap RotateWhenChanged - { - get => _rotateWhenChanged ?? (_rotateWhenChanged = new InputMap()); - set => _rotateWhenChanged = value; - } - - /// - /// Email address linked to the service account. - /// - [Input("serviceAccountEmail", required: true)] - public Input ServiceAccountEmail { get; set; } = null!; - - /// - /// Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - /// - [Input("ttlDays")] - public Input? TtlDays { get; set; } - - public ServiceAccountAccessTokenArgs() - { - } - public static new ServiceAccountAccessTokenArgs Empty => new ServiceAccountAccessTokenArgs(); - } - - public sealed class ServiceAccountAccessTokenState : global::Pulumi.ResourceArgs - { - /// - /// Identifier for the access token linked to the service account. - /// - [Input("accessTokenId")] - public Input? AccessTokenId { get; set; } - - /// - /// Indicate whether the token is currently active or inactive - /// - [Input("active")] - public Input? Active { get; set; } - - /// - /// Timestamp indicating when the access token was created. - /// - [Input("createdAt")] - public Input? CreatedAt { get; set; } - - /// - /// STACKIT project ID associated with the service account token. - /// - [Input("projectId")] - public Input? ProjectId { get; set; } - - [Input("rotateWhenChanged")] - private InputMap? _rotateWhenChanged; - - /// - /// 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. - /// - public InputMap RotateWhenChanged - { - get => _rotateWhenChanged ?? (_rotateWhenChanged = new InputMap()); - set => _rotateWhenChanged = value; - } - - /// - /// Email address linked to the service account. - /// - [Input("serviceAccountEmail")] - public Input? ServiceAccountEmail { get; set; } - - [Input("token")] - private Input? _token; - - /// - /// JWT access token for API authentication. Prefixed by 'Bearer' and should be stored securely as it is irretrievable once lost. - /// - public Input? Token - { - get => _token; - set - { - var emptySecret = Output.CreateSecret(0); - _token = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); - } - } - - /// - /// Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - /// - [Input("ttlDays")] - public Input? TtlDays { get; set; } - - /// - /// Estimated expiration timestamp of the access token. For precise validity, check the JWT details. - /// - [Input("validUntil")] - public Input? ValidUntil { get; set; } - - public ServiceAccountAccessTokenState() - { - } - public static new ServiceAccountAccessTokenState Empty => new ServiceAccountAccessTokenState(); - } -} diff --git a/sdk/go/stackit/applicationLoadBalancer.go b/sdk/go/stackit/applicationLoadBalancer.go new file mode 100644 index 0000000..088b25e --- /dev/null +++ b/sdk/go/stackit/applicationLoadBalancer.go @@ -0,0 +1,440 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// ## 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 +type ApplicationLoadBalancer struct { + pulumi.CustomResourceState + + // 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. + DisableTargetSecurityGroupAssignment pulumi.BoolOutput `pulumi:"disableTargetSecurityGroupAssignment"` + // Reports all errors a Application Load Balancer has. + Errors ApplicationLoadBalancerErrorArrayOutput `pulumi:"errors"` + // The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + ExternalAddress pulumi.StringOutput `pulumi:"externalAddress"` + // Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + Labels pulumi.StringMapOutput `pulumi:"labels"` + // List of all listeners which will accept traffic. Limited to 20. + Listeners ApplicationLoadBalancerListenerArrayOutput `pulumi:"listeners"` + // Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + LoadBalancerSecurityGroup ApplicationLoadBalancerLoadBalancerSecurityGroupOutput `pulumi:"loadBalancerSecurityGroup"` + // Application Load balancer name. + Name pulumi.StringOutput `pulumi:"name"` + // List of networks that listeners and targets reside in. + Networks ApplicationLoadBalancerNetworkArrayOutput `pulumi:"networks"` + // Defines any optional functionality you want to have enabled on your Application Load Balancer. + Options ApplicationLoadBalancerOptionsPtrOutput `pulumi:"options"` + // 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 + PlanId pulumi.StringOutput `pulumi:"planId"` + PrivateAddress pulumi.StringOutput `pulumi:"privateAddress"` + // STACKIT project ID to which the Application Load Balancer is associated. + ProjectId pulumi.StringOutput `pulumi:"projectId"` + // The resource region (e.g. eu01). If not defined, the provider region is used. + Region pulumi.StringOutput `pulumi:"region"` + // List of all target pools which will be used in the Application Load Balancer. Limited to 20. + TargetPools ApplicationLoadBalancerTargetPoolArrayOutput `pulumi:"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. + TargetSecurityGroup ApplicationLoadBalancerTargetSecurityGroupOutput `pulumi:"targetSecurityGroup"` + // Application Load Balancer resource version. Used for concurrency safe updates. + Version pulumi.StringOutput `pulumi:"version"` +} + +// NewApplicationLoadBalancer registers a new resource with the given unique name, arguments, and options. +func NewApplicationLoadBalancer(ctx *pulumi.Context, + name string, args *ApplicationLoadBalancerArgs, opts ...pulumi.ResourceOption) (*ApplicationLoadBalancer, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Listeners == nil { + return nil, errors.New("invalid value for required argument 'Listeners'") + } + if args.Networks == nil { + return nil, errors.New("invalid value for required argument 'Networks'") + } + if args.PlanId == nil { + return nil, errors.New("invalid value for required argument 'PlanId'") + } + if args.ProjectId == nil { + return nil, errors.New("invalid value for required argument 'ProjectId'") + } + if args.TargetPools == nil { + return nil, errors.New("invalid value for required argument 'TargetPools'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource ApplicationLoadBalancer + err := ctx.RegisterResource("stackit:index/applicationLoadBalancer:ApplicationLoadBalancer", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetApplicationLoadBalancer gets an existing ApplicationLoadBalancer resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetApplicationLoadBalancer(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ApplicationLoadBalancerState, opts ...pulumi.ResourceOption) (*ApplicationLoadBalancer, error) { + var resource ApplicationLoadBalancer + err := ctx.ReadResource("stackit:index/applicationLoadBalancer:ApplicationLoadBalancer", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ApplicationLoadBalancer resources. +type applicationLoadBalancerState struct { + // 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. + DisableTargetSecurityGroupAssignment *bool `pulumi:"disableTargetSecurityGroupAssignment"` + // Reports all errors a Application Load Balancer has. + Errors []ApplicationLoadBalancerError `pulumi:"errors"` + // The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + ExternalAddress *string `pulumi:"externalAddress"` + // Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + Labels map[string]string `pulumi:"labels"` + // List of all listeners which will accept traffic. Limited to 20. + Listeners []ApplicationLoadBalancerListener `pulumi:"listeners"` + // Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + LoadBalancerSecurityGroup *ApplicationLoadBalancerLoadBalancerSecurityGroup `pulumi:"loadBalancerSecurityGroup"` + // Application Load balancer name. + Name *string `pulumi:"name"` + // List of networks that listeners and targets reside in. + Networks []ApplicationLoadBalancerNetwork `pulumi:"networks"` + // Defines any optional functionality you want to have enabled on your Application Load Balancer. + Options *ApplicationLoadBalancerOptions `pulumi:"options"` + // 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 + PlanId *string `pulumi:"planId"` + PrivateAddress *string `pulumi:"privateAddress"` + // STACKIT project ID to which the Application Load Balancer is associated. + ProjectId *string `pulumi:"projectId"` + // The resource region (e.g. eu01). If not defined, the provider region is used. + Region *string `pulumi:"region"` + // List of all target pools which will be used in the Application Load Balancer. Limited to 20. + TargetPools []ApplicationLoadBalancerTargetPool `pulumi:"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. + TargetSecurityGroup *ApplicationLoadBalancerTargetSecurityGroup `pulumi:"targetSecurityGroup"` + // Application Load Balancer resource version. Used for concurrency safe updates. + Version *string `pulumi:"version"` +} + +type ApplicationLoadBalancerState struct { + // 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. + DisableTargetSecurityGroupAssignment pulumi.BoolPtrInput + // Reports all errors a Application Load Balancer has. + Errors ApplicationLoadBalancerErrorArrayInput + // The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + ExternalAddress pulumi.StringPtrInput + // Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + Labels pulumi.StringMapInput + // List of all listeners which will accept traffic. Limited to 20. + Listeners ApplicationLoadBalancerListenerArrayInput + // Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + LoadBalancerSecurityGroup ApplicationLoadBalancerLoadBalancerSecurityGroupPtrInput + // Application Load balancer name. + Name pulumi.StringPtrInput + // List of networks that listeners and targets reside in. + Networks ApplicationLoadBalancerNetworkArrayInput + // Defines any optional functionality you want to have enabled on your Application Load Balancer. + Options ApplicationLoadBalancerOptionsPtrInput + // 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 + PlanId pulumi.StringPtrInput + PrivateAddress pulumi.StringPtrInput + // STACKIT project ID to which the Application Load Balancer is associated. + ProjectId pulumi.StringPtrInput + // The resource region (e.g. eu01). If not defined, the provider region is used. + Region pulumi.StringPtrInput + // List of all target pools which will be used in the Application Load Balancer. Limited to 20. + TargetPools ApplicationLoadBalancerTargetPoolArrayInput + // Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + TargetSecurityGroup ApplicationLoadBalancerTargetSecurityGroupPtrInput + // Application Load Balancer resource version. Used for concurrency safe updates. + Version pulumi.StringPtrInput +} + +func (ApplicationLoadBalancerState) ElementType() reflect.Type { + return reflect.TypeOf((*applicationLoadBalancerState)(nil)).Elem() +} + +type applicationLoadBalancerArgs struct { + // 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. + DisableTargetSecurityGroupAssignment *bool `pulumi:"disableTargetSecurityGroupAssignment"` + // The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + ExternalAddress *string `pulumi:"externalAddress"` + // Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + Labels map[string]string `pulumi:"labels"` + // List of all listeners which will accept traffic. Limited to 20. + Listeners []ApplicationLoadBalancerListener `pulumi:"listeners"` + // Application Load balancer name. + Name *string `pulumi:"name"` + // List of networks that listeners and targets reside in. + Networks []ApplicationLoadBalancerNetwork `pulumi:"networks"` + // Defines any optional functionality you want to have enabled on your Application Load Balancer. + Options *ApplicationLoadBalancerOptions `pulumi:"options"` + // 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 + PlanId string `pulumi:"planId"` + // STACKIT project ID to which the Application Load Balancer is associated. + ProjectId string `pulumi:"projectId"` + // The resource region (e.g. eu01). If not defined, the provider region is used. + Region *string `pulumi:"region"` + // List of all target pools which will be used in the Application Load Balancer. Limited to 20. + TargetPools []ApplicationLoadBalancerTargetPool `pulumi:"targetPools"` +} + +// The set of arguments for constructing a ApplicationLoadBalancer resource. +type ApplicationLoadBalancerArgs struct { + // 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. + DisableTargetSecurityGroupAssignment pulumi.BoolPtrInput + // The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + ExternalAddress pulumi.StringPtrInput + // Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + Labels pulumi.StringMapInput + // List of all listeners which will accept traffic. Limited to 20. + Listeners ApplicationLoadBalancerListenerArrayInput + // Application Load balancer name. + Name pulumi.StringPtrInput + // List of networks that listeners and targets reside in. + Networks ApplicationLoadBalancerNetworkArrayInput + // Defines any optional functionality you want to have enabled on your Application Load Balancer. + Options ApplicationLoadBalancerOptionsPtrInput + // 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 + PlanId pulumi.StringInput + // STACKIT project ID to which the Application Load Balancer is associated. + ProjectId pulumi.StringInput + // The resource region (e.g. eu01). If not defined, the provider region is used. + Region pulumi.StringPtrInput + // List of all target pools which will be used in the Application Load Balancer. Limited to 20. + TargetPools ApplicationLoadBalancerTargetPoolArrayInput +} + +func (ApplicationLoadBalancerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*applicationLoadBalancerArgs)(nil)).Elem() +} + +type ApplicationLoadBalancerInput interface { + pulumi.Input + + ToApplicationLoadBalancerOutput() ApplicationLoadBalancerOutput + ToApplicationLoadBalancerOutputWithContext(ctx context.Context) ApplicationLoadBalancerOutput +} + +func (*ApplicationLoadBalancer) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancer)(nil)).Elem() +} + +func (i *ApplicationLoadBalancer) ToApplicationLoadBalancerOutput() ApplicationLoadBalancerOutput { + return i.ToApplicationLoadBalancerOutputWithContext(context.Background()) +} + +func (i *ApplicationLoadBalancer) ToApplicationLoadBalancerOutputWithContext(ctx context.Context) ApplicationLoadBalancerOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerOutput) +} + +// ApplicationLoadBalancerArrayInput is an input type that accepts ApplicationLoadBalancerArray and ApplicationLoadBalancerArrayOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerArrayInput` via: +// +// ApplicationLoadBalancerArray{ ApplicationLoadBalancerArgs{...} } +type ApplicationLoadBalancerArrayInput interface { + pulumi.Input + + ToApplicationLoadBalancerArrayOutput() ApplicationLoadBalancerArrayOutput + ToApplicationLoadBalancerArrayOutputWithContext(context.Context) ApplicationLoadBalancerArrayOutput +} + +type ApplicationLoadBalancerArray []ApplicationLoadBalancerInput + +func (ApplicationLoadBalancerArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ApplicationLoadBalancer)(nil)).Elem() +} + +func (i ApplicationLoadBalancerArray) ToApplicationLoadBalancerArrayOutput() ApplicationLoadBalancerArrayOutput { + return i.ToApplicationLoadBalancerArrayOutputWithContext(context.Background()) +} + +func (i ApplicationLoadBalancerArray) ToApplicationLoadBalancerArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerArrayOutput) +} + +// ApplicationLoadBalancerMapInput is an input type that accepts ApplicationLoadBalancerMap and ApplicationLoadBalancerMapOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerMapInput` via: +// +// ApplicationLoadBalancerMap{ "key": ApplicationLoadBalancerArgs{...} } +type ApplicationLoadBalancerMapInput interface { + pulumi.Input + + ToApplicationLoadBalancerMapOutput() ApplicationLoadBalancerMapOutput + ToApplicationLoadBalancerMapOutputWithContext(context.Context) ApplicationLoadBalancerMapOutput +} + +type ApplicationLoadBalancerMap map[string]ApplicationLoadBalancerInput + +func (ApplicationLoadBalancerMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ApplicationLoadBalancer)(nil)).Elem() +} + +func (i ApplicationLoadBalancerMap) ToApplicationLoadBalancerMapOutput() ApplicationLoadBalancerMapOutput { + return i.ToApplicationLoadBalancerMapOutputWithContext(context.Background()) +} + +func (i ApplicationLoadBalancerMap) ToApplicationLoadBalancerMapOutputWithContext(ctx context.Context) ApplicationLoadBalancerMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerMapOutput) +} + +type ApplicationLoadBalancerOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancer)(nil)).Elem() +} + +func (o ApplicationLoadBalancerOutput) ToApplicationLoadBalancerOutput() ApplicationLoadBalancerOutput { + return o +} + +func (o ApplicationLoadBalancerOutput) ToApplicationLoadBalancerOutputWithContext(ctx context.Context) ApplicationLoadBalancerOutput { + return o +} + +// 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. +func (o ApplicationLoadBalancerOutput) DisableTargetSecurityGroupAssignment() pulumi.BoolOutput { + return o.ApplyT(func(v *ApplicationLoadBalancer) pulumi.BoolOutput { return v.DisableTargetSecurityGroupAssignment }).(pulumi.BoolOutput) +} + +// Reports all errors a Application Load Balancer has. +func (o ApplicationLoadBalancerOutput) Errors() ApplicationLoadBalancerErrorArrayOutput { + return o.ApplyT(func(v *ApplicationLoadBalancer) ApplicationLoadBalancerErrorArrayOutput { return v.Errors }).(ApplicationLoadBalancerErrorArrayOutput) +} + +// The external IP address where this Application Load Balancer is exposed. Not changeable after creation. +func (o ApplicationLoadBalancerOutput) ExternalAddress() pulumi.StringOutput { + return o.ApplyT(func(v *ApplicationLoadBalancer) pulumi.StringOutput { return v.ExternalAddress }).(pulumi.StringOutput) +} + +// Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. +func (o ApplicationLoadBalancerOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v *ApplicationLoadBalancer) pulumi.StringMapOutput { return v.Labels }).(pulumi.StringMapOutput) +} + +// List of all listeners which will accept traffic. Limited to 20. +func (o ApplicationLoadBalancerOutput) Listeners() ApplicationLoadBalancerListenerArrayOutput { + return o.ApplyT(func(v *ApplicationLoadBalancer) ApplicationLoadBalancerListenerArrayOutput { return v.Listeners }).(ApplicationLoadBalancerListenerArrayOutput) +} + +// Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. +func (o ApplicationLoadBalancerOutput) LoadBalancerSecurityGroup() ApplicationLoadBalancerLoadBalancerSecurityGroupOutput { + return o.ApplyT(func(v *ApplicationLoadBalancer) ApplicationLoadBalancerLoadBalancerSecurityGroupOutput { + return v.LoadBalancerSecurityGroup + }).(ApplicationLoadBalancerLoadBalancerSecurityGroupOutput) +} + +// Application Load balancer name. +func (o ApplicationLoadBalancerOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *ApplicationLoadBalancer) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// List of networks that listeners and targets reside in. +func (o ApplicationLoadBalancerOutput) Networks() ApplicationLoadBalancerNetworkArrayOutput { + return o.ApplyT(func(v *ApplicationLoadBalancer) ApplicationLoadBalancerNetworkArrayOutput { return v.Networks }).(ApplicationLoadBalancerNetworkArrayOutput) +} + +// Defines any optional functionality you want to have enabled on your Application Load Balancer. +func (o ApplicationLoadBalancerOutput) Options() ApplicationLoadBalancerOptionsPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancer) ApplicationLoadBalancerOptionsPtrOutput { return v.Options }).(ApplicationLoadBalancerOptionsPtrOutput) +} + +// 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 +func (o ApplicationLoadBalancerOutput) PlanId() pulumi.StringOutput { + return o.ApplyT(func(v *ApplicationLoadBalancer) pulumi.StringOutput { return v.PlanId }).(pulumi.StringOutput) +} + +func (o ApplicationLoadBalancerOutput) PrivateAddress() pulumi.StringOutput { + return o.ApplyT(func(v *ApplicationLoadBalancer) pulumi.StringOutput { return v.PrivateAddress }).(pulumi.StringOutput) +} + +// STACKIT project ID to which the Application Load Balancer is associated. +func (o ApplicationLoadBalancerOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v *ApplicationLoadBalancer) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput) +} + +// The resource region (e.g. eu01). If not defined, the provider region is used. +func (o ApplicationLoadBalancerOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v *ApplicationLoadBalancer) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +// List of all target pools which will be used in the Application Load Balancer. Limited to 20. +func (o ApplicationLoadBalancerOutput) TargetPools() ApplicationLoadBalancerTargetPoolArrayOutput { + return o.ApplyT(func(v *ApplicationLoadBalancer) ApplicationLoadBalancerTargetPoolArrayOutput { return v.TargetPools }).(ApplicationLoadBalancerTargetPoolArrayOutput) +} + +// Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. +func (o ApplicationLoadBalancerOutput) TargetSecurityGroup() ApplicationLoadBalancerTargetSecurityGroupOutput { + return o.ApplyT(func(v *ApplicationLoadBalancer) ApplicationLoadBalancerTargetSecurityGroupOutput { + return v.TargetSecurityGroup + }).(ApplicationLoadBalancerTargetSecurityGroupOutput) +} + +// Application Load Balancer resource version. Used for concurrency safe updates. +func (o ApplicationLoadBalancerOutput) Version() pulumi.StringOutput { + return o.ApplyT(func(v *ApplicationLoadBalancer) pulumi.StringOutput { return v.Version }).(pulumi.StringOutput) +} + +type ApplicationLoadBalancerArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ApplicationLoadBalancer)(nil)).Elem() +} + +func (o ApplicationLoadBalancerArrayOutput) ToApplicationLoadBalancerArrayOutput() ApplicationLoadBalancerArrayOutput { + return o +} + +func (o ApplicationLoadBalancerArrayOutput) ToApplicationLoadBalancerArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerArrayOutput { + return o +} + +func (o ApplicationLoadBalancerArrayOutput) Index(i pulumi.IntInput) ApplicationLoadBalancerOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ApplicationLoadBalancer { + return vs[0].([]*ApplicationLoadBalancer)[vs[1].(int)] + }).(ApplicationLoadBalancerOutput) +} + +type ApplicationLoadBalancerMapOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ApplicationLoadBalancer)(nil)).Elem() +} + +func (o ApplicationLoadBalancerMapOutput) ToApplicationLoadBalancerMapOutput() ApplicationLoadBalancerMapOutput { + return o +} + +func (o ApplicationLoadBalancerMapOutput) ToApplicationLoadBalancerMapOutputWithContext(ctx context.Context) ApplicationLoadBalancerMapOutput { + return o +} + +func (o ApplicationLoadBalancerMapOutput) MapIndex(k pulumi.StringInput) ApplicationLoadBalancerOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ApplicationLoadBalancer { + return vs[0].(map[string]*ApplicationLoadBalancer)[vs[1].(string)] + }).(ApplicationLoadBalancerOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerInput)(nil)).Elem(), &ApplicationLoadBalancer{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerArrayInput)(nil)).Elem(), ApplicationLoadBalancerArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerMapInput)(nil)).Elem(), ApplicationLoadBalancerMap{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerArrayOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerMapOutput{}) +} diff --git a/sdk/go/stackit/config/config.go b/sdk/go/stackit/config/config.go index 30e7c41..89d755e 100644 --- a/sdk/go/stackit/config/config.go +++ b/sdk/go/stackit/config/config.go @@ -11,6 +11,11 @@ import ( var _ = internal.GetEnvOrDefault +// Custom endpoint for the Application Load Balancer service +func GetAlbCustomEndpoint(ctx *pulumi.Context) string { + return config.Get(ctx, "stackit:albCustomEndpoint") +} + // Custom endpoint for the Membership service func GetAuthorizationCustomEndpoint(ctx *pulumi.Context) string { return config.Get(ctx, "stackit:authorizationCustomEndpoint") diff --git a/sdk/go/stackit/getApplicationLoadBalancer.go b/sdk/go/stackit/getApplicationLoadBalancer.go new file mode 100644 index 0000000..2bf2bd1 --- /dev/null +++ b/sdk/go/stackit/getApplicationLoadBalancer.go @@ -0,0 +1,200 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// Application Load Balancer data source schema. Must have a region specified in the provider configuration. +// +// ## Example Usage +func LookupApplicationLoadBalancer(ctx *pulumi.Context, args *LookupApplicationLoadBalancerArgs, opts ...pulumi.InvokeOption) (*LookupApplicationLoadBalancerResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupApplicationLoadBalancerResult + err := ctx.Invoke("stackit:index/getApplicationLoadBalancer:getApplicationLoadBalancer", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getApplicationLoadBalancer. +type LookupApplicationLoadBalancerArgs struct { + // Application Load balancer name. + Name string `pulumi:"name"` + // STACKIT project ID to which the Application Load Balancer is associated. + ProjectId string `pulumi:"projectId"` +} + +// A collection of values returned by getApplicationLoadBalancer. +type LookupApplicationLoadBalancerResult struct { + // 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. + DisableTargetSecurityGroupAssignment bool `pulumi:"disableTargetSecurityGroupAssignment"` + // Reports all errors a Application Load Balancer has. + Errors []GetApplicationLoadBalancerError `pulumi:"errors"` + // The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + ExternalAddress string `pulumi:"externalAddress"` + // Terraform's internal resource ID. It is structured as `projectId`,`region`,`name`. + Id string `pulumi:"id"` + // Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + Labels map[string]string `pulumi:"labels"` + // List of all listeners which will accept traffic. Limited to 20. + Listeners []GetApplicationLoadBalancerListener `pulumi:"listeners"` + // Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + LoadBalancerSecurityGroup GetApplicationLoadBalancerLoadBalancerSecurityGroup `pulumi:"loadBalancerSecurityGroup"` + // Application Load balancer name. + Name string `pulumi:"name"` + // List of networks that listeners and targets reside in. + Networks []GetApplicationLoadBalancerNetwork `pulumi:"networks"` + // Defines any optional functionality you want to have enabled on your Application Load Balancer. + Options GetApplicationLoadBalancerOptions `pulumi:"options"` + // Service Plan configures the size of the Application Load Balancer. + PlanId string `pulumi:"planId"` + PrivateAddress string `pulumi:"privateAddress"` + // STACKIT project ID to which the Application Load Balancer is associated. + ProjectId string `pulumi:"projectId"` + // The resource region. If not defined, the provider region is used. + Region string `pulumi:"region"` + // List of all target pools which will be used in the Application Load Balancer. Limited to 20. + TargetPools []GetApplicationLoadBalancerTargetPool `pulumi:"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. + TargetSecurityGroup GetApplicationLoadBalancerTargetSecurityGroup `pulumi:"targetSecurityGroup"` + // Application Load Balancer resource version. Used for concurrency safe updates. + Version string `pulumi:"version"` +} + +func LookupApplicationLoadBalancerOutput(ctx *pulumi.Context, args LookupApplicationLoadBalancerOutputArgs, opts ...pulumi.InvokeOption) LookupApplicationLoadBalancerResultOutput { + return pulumi.ToOutputWithContext(ctx.Context(), args). + ApplyT(func(v interface{}) (LookupApplicationLoadBalancerResultOutput, error) { + args := v.(LookupApplicationLoadBalancerArgs) + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("stackit:index/getApplicationLoadBalancer:getApplicationLoadBalancer", args, LookupApplicationLoadBalancerResultOutput{}, options).(LookupApplicationLoadBalancerResultOutput), nil + }).(LookupApplicationLoadBalancerResultOutput) +} + +// A collection of arguments for invoking getApplicationLoadBalancer. +type LookupApplicationLoadBalancerOutputArgs struct { + // Application Load balancer name. + Name pulumi.StringInput `pulumi:"name"` + // STACKIT project ID to which the Application Load Balancer is associated. + ProjectId pulumi.StringInput `pulumi:"projectId"` +} + +func (LookupApplicationLoadBalancerOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupApplicationLoadBalancerArgs)(nil)).Elem() +} + +// A collection of values returned by getApplicationLoadBalancer. +type LookupApplicationLoadBalancerResultOutput struct{ *pulumi.OutputState } + +func (LookupApplicationLoadBalancerResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupApplicationLoadBalancerResult)(nil)).Elem() +} + +func (o LookupApplicationLoadBalancerResultOutput) ToLookupApplicationLoadBalancerResultOutput() LookupApplicationLoadBalancerResultOutput { + return o +} + +func (o LookupApplicationLoadBalancerResultOutput) ToLookupApplicationLoadBalancerResultOutputWithContext(ctx context.Context) LookupApplicationLoadBalancerResultOutput { + return o +} + +// 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. +func (o LookupApplicationLoadBalancerResultOutput) DisableTargetSecurityGroupAssignment() pulumi.BoolOutput { + return o.ApplyT(func(v LookupApplicationLoadBalancerResult) bool { return v.DisableTargetSecurityGroupAssignment }).(pulumi.BoolOutput) +} + +// Reports all errors a Application Load Balancer has. +func (o LookupApplicationLoadBalancerResultOutput) Errors() GetApplicationLoadBalancerErrorArrayOutput { + return o.ApplyT(func(v LookupApplicationLoadBalancerResult) []GetApplicationLoadBalancerError { return v.Errors }).(GetApplicationLoadBalancerErrorArrayOutput) +} + +// The external IP address where this Application Load Balancer is exposed. Not changeable after creation. +func (o LookupApplicationLoadBalancerResultOutput) ExternalAddress() pulumi.StringOutput { + return o.ApplyT(func(v LookupApplicationLoadBalancerResult) string { return v.ExternalAddress }).(pulumi.StringOutput) +} + +// Terraform's internal resource ID. It is structured as `projectId`,`region`,`name`. +func (o LookupApplicationLoadBalancerResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupApplicationLoadBalancerResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. +func (o LookupApplicationLoadBalancerResultOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupApplicationLoadBalancerResult) map[string]string { return v.Labels }).(pulumi.StringMapOutput) +} + +// List of all listeners which will accept traffic. Limited to 20. +func (o LookupApplicationLoadBalancerResultOutput) Listeners() GetApplicationLoadBalancerListenerArrayOutput { + return o.ApplyT(func(v LookupApplicationLoadBalancerResult) []GetApplicationLoadBalancerListener { return v.Listeners }).(GetApplicationLoadBalancerListenerArrayOutput) +} + +// Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. +func (o LookupApplicationLoadBalancerResultOutput) LoadBalancerSecurityGroup() GetApplicationLoadBalancerLoadBalancerSecurityGroupOutput { + return o.ApplyT(func(v LookupApplicationLoadBalancerResult) GetApplicationLoadBalancerLoadBalancerSecurityGroup { + return v.LoadBalancerSecurityGroup + }).(GetApplicationLoadBalancerLoadBalancerSecurityGroupOutput) +} + +// Application Load balancer name. +func (o LookupApplicationLoadBalancerResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupApplicationLoadBalancerResult) string { return v.Name }).(pulumi.StringOutput) +} + +// List of networks that listeners and targets reside in. +func (o LookupApplicationLoadBalancerResultOutput) Networks() GetApplicationLoadBalancerNetworkArrayOutput { + return o.ApplyT(func(v LookupApplicationLoadBalancerResult) []GetApplicationLoadBalancerNetwork { return v.Networks }).(GetApplicationLoadBalancerNetworkArrayOutput) +} + +// Defines any optional functionality you want to have enabled on your Application Load Balancer. +func (o LookupApplicationLoadBalancerResultOutput) Options() GetApplicationLoadBalancerOptionsOutput { + return o.ApplyT(func(v LookupApplicationLoadBalancerResult) GetApplicationLoadBalancerOptions { return v.Options }).(GetApplicationLoadBalancerOptionsOutput) +} + +// Service Plan configures the size of the Application Load Balancer. +func (o LookupApplicationLoadBalancerResultOutput) PlanId() pulumi.StringOutput { + return o.ApplyT(func(v LookupApplicationLoadBalancerResult) string { return v.PlanId }).(pulumi.StringOutput) +} + +func (o LookupApplicationLoadBalancerResultOutput) PrivateAddress() pulumi.StringOutput { + return o.ApplyT(func(v LookupApplicationLoadBalancerResult) string { return v.PrivateAddress }).(pulumi.StringOutput) +} + +// STACKIT project ID to which the Application Load Balancer is associated. +func (o LookupApplicationLoadBalancerResultOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v LookupApplicationLoadBalancerResult) string { return v.ProjectId }).(pulumi.StringOutput) +} + +// The resource region. If not defined, the provider region is used. +func (o LookupApplicationLoadBalancerResultOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v LookupApplicationLoadBalancerResult) string { return v.Region }).(pulumi.StringOutput) +} + +// List of all target pools which will be used in the Application Load Balancer. Limited to 20. +func (o LookupApplicationLoadBalancerResultOutput) TargetPools() GetApplicationLoadBalancerTargetPoolArrayOutput { + return o.ApplyT(func(v LookupApplicationLoadBalancerResult) []GetApplicationLoadBalancerTargetPool { + return v.TargetPools + }).(GetApplicationLoadBalancerTargetPoolArrayOutput) +} + +// Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. +func (o LookupApplicationLoadBalancerResultOutput) TargetSecurityGroup() GetApplicationLoadBalancerTargetSecurityGroupOutput { + return o.ApplyT(func(v LookupApplicationLoadBalancerResult) GetApplicationLoadBalancerTargetSecurityGroup { + return v.TargetSecurityGroup + }).(GetApplicationLoadBalancerTargetSecurityGroupOutput) +} + +// Application Load Balancer resource version. Used for concurrency safe updates. +func (o LookupApplicationLoadBalancerResultOutput) Version() pulumi.StringOutput { + return o.ApplyT(func(v LookupApplicationLoadBalancerResult) string { return v.Version }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupApplicationLoadBalancerResultOutput{}) +} diff --git a/sdk/go/stackit/getServerBackupSchedule.go b/sdk/go/stackit/getServerBackupSchedule.go index 18df3aa..3914bcf 100644 --- a/sdk/go/stackit/getServerBackupSchedule.go +++ b/sdk/go/stackit/getServerBackupSchedule.go @@ -13,8 +13,6 @@ import ( // 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 func LookupServerBackupSchedule(ctx *pulumi.Context, args *LookupServerBackupScheduleArgs, opts ...pulumi.InvokeOption) (*LookupServerBackupScheduleResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) diff --git a/sdk/go/stackit/getServerBackupSchedules.go b/sdk/go/stackit/getServerBackupSchedules.go index eecbe07..453cd1b 100644 --- a/sdk/go/stackit/getServerBackupSchedules.go +++ b/sdk/go/stackit/getServerBackupSchedules.go @@ -13,8 +13,6 @@ import ( // 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 func GetServerBackupSchedules(ctx *pulumi.Context, args *GetServerBackupSchedulesArgs, opts ...pulumi.InvokeOption) (*GetServerBackupSchedulesResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) diff --git a/sdk/go/stackit/getServerUpdateSchedule.go b/sdk/go/stackit/getServerUpdateSchedule.go index cc6fb51..6042916 100644 --- a/sdk/go/stackit/getServerUpdateSchedule.go +++ b/sdk/go/stackit/getServerUpdateSchedule.go @@ -13,8 +13,6 @@ import ( // 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 func LookupServerUpdateSchedule(ctx *pulumi.Context, args *LookupServerUpdateScheduleArgs, opts ...pulumi.InvokeOption) (*LookupServerUpdateScheduleResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) diff --git a/sdk/go/stackit/getServerUpdateSchedules.go b/sdk/go/stackit/getServerUpdateSchedules.go index 59825d1..006831f 100644 --- a/sdk/go/stackit/getServerUpdateSchedules.go +++ b/sdk/go/stackit/getServerUpdateSchedules.go @@ -13,8 +13,6 @@ import ( // 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 func GetServerUpdateSchedules(ctx *pulumi.Context, args *GetServerUpdateSchedulesArgs, opts ...pulumi.InvokeOption) (*GetServerUpdateSchedulesResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) diff --git a/sdk/go/stackit/getServiceAccount.go b/sdk/go/stackit/getServiceAccount.go index 9ab4a22..f434c52 100644 --- a/sdk/go/stackit/getServiceAccount.go +++ b/sdk/go/stackit/getServiceAccount.go @@ -42,6 +42,8 @@ type LookupServiceAccountResult struct { Name string `pulumi:"name"` // STACKIT project ID to which the service account is associated. ProjectId string `pulumi:"projectId"` + // The internal UUID of the service account. + ServiceAccountId string `pulumi:"serviceAccountId"` } func LookupServiceAccountOutput(ctx *pulumi.Context, args LookupServiceAccountOutputArgs, opts ...pulumi.InvokeOption) LookupServiceAccountResultOutput { @@ -100,6 +102,11 @@ func (o LookupServiceAccountResultOutput) ProjectId() pulumi.StringOutput { return o.ApplyT(func(v LookupServiceAccountResult) string { return v.ProjectId }).(pulumi.StringOutput) } +// The internal UUID of the service account. +func (o LookupServiceAccountResultOutput) ServiceAccountId() pulumi.StringOutput { + return o.ApplyT(func(v LookupServiceAccountResult) string { return v.ServiceAccountId }).(pulumi.StringOutput) +} + func init() { pulumi.RegisterOutputType(LookupServiceAccountResultOutput{}) } diff --git a/sdk/go/stackit/getServiceAccounts.go b/sdk/go/stackit/getServiceAccounts.go new file mode 100644 index 0000000..f60eaa9 --- /dev/null +++ b/sdk/go/stackit/getServiceAccounts.go @@ -0,0 +1,127 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// Service accounts plural data source schema. Returns a list of all service accounts in a project, optionally filtered. +// +// ## Example Usage +func GetServiceAccounts(ctx *pulumi.Context, args *GetServiceAccountsArgs, opts ...pulumi.InvokeOption) (*GetServiceAccountsResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetServiceAccountsResult + err := ctx.Invoke("stackit:index/getServiceAccounts:getServiceAccounts", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getServiceAccounts. +type GetServiceAccountsArgs struct { + // Optional regular expression to filter service accounts by email. + EmailRegex *string `pulumi:"emailRegex"` + // Optional suffix to filter service accounts by email (e.g.,`@sa.stackit.cloud`, `@ske.sa.stackit.cloud`). + EmailSuffix *string `pulumi:"emailSuffix"` + // STACKIT project ID. + ProjectId string `pulumi:"projectId"` + // If set to `true`, service accounts are sorted in ascending lexicographical order by email. Defaults to `false` (descending). + SortAscending *bool `pulumi:"sortAscending"` +} + +// A collection of values returned by getServiceAccounts. +type GetServiceAccountsResult struct { + // Optional regular expression to filter service accounts by email. + EmailRegex *string `pulumi:"emailRegex"` + // Optional suffix to filter service accounts by email (e.g.,`@sa.stackit.cloud`, `@ske.sa.stackit.cloud`). + EmailSuffix *string `pulumi:"emailSuffix"` + // Terraform's internal resource ID, structured as "`projectId`". + Id string `pulumi:"id"` + // The list of service accounts matching the provided filters. + Items []GetServiceAccountsItem `pulumi:"items"` + // STACKIT project ID. + ProjectId string `pulumi:"projectId"` + // If set to `true`, service accounts are sorted in ascending lexicographical order by email. Defaults to `false` (descending). + SortAscending *bool `pulumi:"sortAscending"` +} + +func GetServiceAccountsOutput(ctx *pulumi.Context, args GetServiceAccountsOutputArgs, opts ...pulumi.InvokeOption) GetServiceAccountsResultOutput { + return pulumi.ToOutputWithContext(ctx.Context(), args). + ApplyT(func(v interface{}) (GetServiceAccountsResultOutput, error) { + args := v.(GetServiceAccountsArgs) + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("stackit:index/getServiceAccounts:getServiceAccounts", args, GetServiceAccountsResultOutput{}, options).(GetServiceAccountsResultOutput), nil + }).(GetServiceAccountsResultOutput) +} + +// A collection of arguments for invoking getServiceAccounts. +type GetServiceAccountsOutputArgs struct { + // Optional regular expression to filter service accounts by email. + EmailRegex pulumi.StringPtrInput `pulumi:"emailRegex"` + // Optional suffix to filter service accounts by email (e.g.,`@sa.stackit.cloud`, `@ske.sa.stackit.cloud`). + EmailSuffix pulumi.StringPtrInput `pulumi:"emailSuffix"` + // STACKIT project ID. + ProjectId pulumi.StringInput `pulumi:"projectId"` + // If set to `true`, service accounts are sorted in ascending lexicographical order by email. Defaults to `false` (descending). + SortAscending pulumi.BoolPtrInput `pulumi:"sortAscending"` +} + +func (GetServiceAccountsOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServiceAccountsArgs)(nil)).Elem() +} + +// A collection of values returned by getServiceAccounts. +type GetServiceAccountsResultOutput struct{ *pulumi.OutputState } + +func (GetServiceAccountsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServiceAccountsResult)(nil)).Elem() +} + +func (o GetServiceAccountsResultOutput) ToGetServiceAccountsResultOutput() GetServiceAccountsResultOutput { + return o +} + +func (o GetServiceAccountsResultOutput) ToGetServiceAccountsResultOutputWithContext(ctx context.Context) GetServiceAccountsResultOutput { + return o +} + +// Optional regular expression to filter service accounts by email. +func (o GetServiceAccountsResultOutput) EmailRegex() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetServiceAccountsResult) *string { return v.EmailRegex }).(pulumi.StringPtrOutput) +} + +// Optional suffix to filter service accounts by email (e.g.,`@sa.stackit.cloud`, `@ske.sa.stackit.cloud`). +func (o GetServiceAccountsResultOutput) EmailSuffix() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetServiceAccountsResult) *string { return v.EmailSuffix }).(pulumi.StringPtrOutput) +} + +// Terraform's internal resource ID, structured as "`projectId`". +func (o GetServiceAccountsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetServiceAccountsResult) string { return v.Id }).(pulumi.StringOutput) +} + +// The list of service accounts matching the provided filters. +func (o GetServiceAccountsResultOutput) Items() GetServiceAccountsItemArrayOutput { + return o.ApplyT(func(v GetServiceAccountsResult) []GetServiceAccountsItem { return v.Items }).(GetServiceAccountsItemArrayOutput) +} + +// STACKIT project ID. +func (o GetServiceAccountsResultOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v GetServiceAccountsResult) string { return v.ProjectId }).(pulumi.StringOutput) +} + +// If set to `true`, service accounts are sorted in ascending lexicographical order by email. Defaults to `false` (descending). +func (o GetServiceAccountsResultOutput) SortAscending() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetServiceAccountsResult) *bool { return v.SortAscending }).(pulumi.BoolPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(GetServiceAccountsResultOutput{}) +} diff --git a/sdk/go/stackit/init.go b/sdk/go/stackit/init.go index 11d50fb..be82cc0 100644 --- a/sdk/go/stackit/init.go +++ b/sdk/go/stackit/init.go @@ -23,6 +23,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "stackit:index/affinityGroup:AffinityGroup": r = &AffinityGroup{} + case "stackit:index/applicationLoadBalancer:ApplicationLoadBalancer": + r = &ApplicationLoadBalancer{} case "stackit:index/authorizationFolderRoleAssignment:AuthorizationFolderRoleAssignment": r = &AuthorizationFolderRoleAssignment{} case "stackit:index/authorizationOrganizationRoleAssignment:AuthorizationOrganizationRoleAssignment": @@ -161,8 +163,6 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &ServerVolumeAttach{} case "stackit:index/serviceAccount:ServiceAccount": r = &ServiceAccount{} - case "stackit:index/serviceAccountAccessToken:ServiceAccountAccessToken": - r = &ServiceAccountAccessToken{} case "stackit:index/serviceAccountKey:ServiceAccountKey": r = &ServiceAccountKey{} case "stackit:index/sfsExportPolicy:SfsExportPolicy": @@ -217,6 +217,11 @@ func init() { "index/affinityGroup", &module{version}, ) + pulumi.RegisterResourceModule( + "stackit", + "index/applicationLoadBalancer", + &module{version}, + ) pulumi.RegisterResourceModule( "stackit", "index/authorizationFolderRoleAssignment", @@ -562,11 +567,6 @@ func init() { "index/serviceAccount", &module{version}, ) - pulumi.RegisterResourceModule( - "stackit", - "index/serviceAccountAccessToken", - &module{version}, - ) pulumi.RegisterResourceModule( "stackit", "index/serviceAccountKey", diff --git a/sdk/go/stackit/provider.go b/sdk/go/stackit/provider.go index a6b9d21..5c12915 100644 --- a/sdk/go/stackit/provider.go +++ b/sdk/go/stackit/provider.go @@ -18,6 +18,8 @@ import ( type Provider struct { pulumi.ProviderResourceState + // Custom endpoint for the Application Load Balancer service + AlbCustomEndpoint pulumi.StringPtrOutput `pulumi:"albCustomEndpoint"` // Custom endpoint for the Membership service AuthorizationCustomEndpoint pulumi.StringPtrOutput `pulumi:"authorizationCustomEndpoint"` // Custom endpoint for the CDN service @@ -127,6 +129,8 @@ func NewProvider(ctx *pulumi.Context, } type providerArgs struct { + // Custom endpoint for the Application Load Balancer service + AlbCustomEndpoint *string `pulumi:"albCustomEndpoint"` // Custom endpoint for the Membership service AuthorizationCustomEndpoint *string `pulumi:"authorizationCustomEndpoint"` // Custom endpoint for the CDN service @@ -227,6 +231,8 @@ type providerArgs struct { // The set of arguments for constructing a Provider resource. type ProviderArgs struct { + // Custom endpoint for the Application Load Balancer service + AlbCustomEndpoint pulumi.StringPtrInput // Custom endpoint for the Membership service AuthorizationCustomEndpoint pulumi.StringPtrInput // Custom endpoint for the CDN service @@ -385,6 +391,11 @@ func (o ProviderOutput) ToProviderOutputWithContext(ctx context.Context) Provide return o } +// Custom endpoint for the Application Load Balancer service +func (o ProviderOutput) AlbCustomEndpoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.AlbCustomEndpoint }).(pulumi.StringPtrOutput) +} + // Custom endpoint for the Membership service func (o ProviderOutput) AuthorizationCustomEndpoint() pulumi.StringPtrOutput { return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.AuthorizationCustomEndpoint }).(pulumi.StringPtrOutput) diff --git a/sdk/go/stackit/pulumiTypes.go b/sdk/go/stackit/pulumiTypes.go index f7c0e49..a6536b7 100644 --- a/sdk/go/stackit/pulumiTypes.go +++ b/sdk/go/stackit/pulumiTypes.go @@ -13,13035 +13,18449 @@ import ( var _ = internal.GetEnvOrDefault -type CdnCustomDomainCertificate struct { - // The PEM-encoded TLS certificate. Required for custom certificates. - Certificate *string `pulumi:"certificate"` - // The PEM-encoded private key for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. - PrivateKey *string `pulumi:"privateKey"` - // A version identifier for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. - Version *int `pulumi:"version"` +type ApplicationLoadBalancerError struct { + // 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. + Description *string `pulumi:"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`. + Type *string `pulumi:"type"` } -// CdnCustomDomainCertificateInput is an input type that accepts CdnCustomDomainCertificateArgs and CdnCustomDomainCertificateOutput values. -// You can construct a concrete instance of `CdnCustomDomainCertificateInput` via: +// ApplicationLoadBalancerErrorInput is an input type that accepts ApplicationLoadBalancerErrorArgs and ApplicationLoadBalancerErrorOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerErrorInput` via: // -// CdnCustomDomainCertificateArgs{...} -type CdnCustomDomainCertificateInput interface { +// ApplicationLoadBalancerErrorArgs{...} +type ApplicationLoadBalancerErrorInput interface { pulumi.Input - ToCdnCustomDomainCertificateOutput() CdnCustomDomainCertificateOutput - ToCdnCustomDomainCertificateOutputWithContext(context.Context) CdnCustomDomainCertificateOutput -} - -type CdnCustomDomainCertificateArgs struct { - // The PEM-encoded TLS certificate. Required for custom certificates. - Certificate pulumi.StringPtrInput `pulumi:"certificate"` - // The PEM-encoded private key for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. - PrivateKey pulumi.StringPtrInput `pulumi:"privateKey"` - // A version identifier for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. - Version pulumi.IntPtrInput `pulumi:"version"` -} - -func (CdnCustomDomainCertificateArgs) ElementType() reflect.Type { - return reflect.TypeOf((*CdnCustomDomainCertificate)(nil)).Elem() + ToApplicationLoadBalancerErrorOutput() ApplicationLoadBalancerErrorOutput + ToApplicationLoadBalancerErrorOutputWithContext(context.Context) ApplicationLoadBalancerErrorOutput } -func (i CdnCustomDomainCertificateArgs) ToCdnCustomDomainCertificateOutput() CdnCustomDomainCertificateOutput { - return i.ToCdnCustomDomainCertificateOutputWithContext(context.Background()) +type ApplicationLoadBalancerErrorArgs struct { + // 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. + Description pulumi.StringPtrInput `pulumi:"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`. + Type pulumi.StringPtrInput `pulumi:"type"` } -func (i CdnCustomDomainCertificateArgs) ToCdnCustomDomainCertificateOutputWithContext(ctx context.Context) CdnCustomDomainCertificateOutput { - return pulumi.ToOutputWithContext(ctx, i).(CdnCustomDomainCertificateOutput) +func (ApplicationLoadBalancerErrorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerError)(nil)).Elem() } -func (i CdnCustomDomainCertificateArgs) ToCdnCustomDomainCertificatePtrOutput() CdnCustomDomainCertificatePtrOutput { - return i.ToCdnCustomDomainCertificatePtrOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerErrorArgs) ToApplicationLoadBalancerErrorOutput() ApplicationLoadBalancerErrorOutput { + return i.ToApplicationLoadBalancerErrorOutputWithContext(context.Background()) } -func (i CdnCustomDomainCertificateArgs) ToCdnCustomDomainCertificatePtrOutputWithContext(ctx context.Context) CdnCustomDomainCertificatePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(CdnCustomDomainCertificateOutput).ToCdnCustomDomainCertificatePtrOutputWithContext(ctx) +func (i ApplicationLoadBalancerErrorArgs) ToApplicationLoadBalancerErrorOutputWithContext(ctx context.Context) ApplicationLoadBalancerErrorOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerErrorOutput) } -// CdnCustomDomainCertificatePtrInput is an input type that accepts CdnCustomDomainCertificateArgs, CdnCustomDomainCertificatePtr and CdnCustomDomainCertificatePtrOutput values. -// You can construct a concrete instance of `CdnCustomDomainCertificatePtrInput` via: +// ApplicationLoadBalancerErrorArrayInput is an input type that accepts ApplicationLoadBalancerErrorArray and ApplicationLoadBalancerErrorArrayOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerErrorArrayInput` via: // -// CdnCustomDomainCertificateArgs{...} -// -// or: -// -// nil -type CdnCustomDomainCertificatePtrInput interface { +// ApplicationLoadBalancerErrorArray{ ApplicationLoadBalancerErrorArgs{...} } +type ApplicationLoadBalancerErrorArrayInput interface { pulumi.Input - ToCdnCustomDomainCertificatePtrOutput() CdnCustomDomainCertificatePtrOutput - ToCdnCustomDomainCertificatePtrOutputWithContext(context.Context) CdnCustomDomainCertificatePtrOutput + ToApplicationLoadBalancerErrorArrayOutput() ApplicationLoadBalancerErrorArrayOutput + ToApplicationLoadBalancerErrorArrayOutputWithContext(context.Context) ApplicationLoadBalancerErrorArrayOutput } -type cdnCustomDomainCertificatePtrType CdnCustomDomainCertificateArgs - -func CdnCustomDomainCertificatePtr(v *CdnCustomDomainCertificateArgs) CdnCustomDomainCertificatePtrInput { - return (*cdnCustomDomainCertificatePtrType)(v) -} +type ApplicationLoadBalancerErrorArray []ApplicationLoadBalancerErrorInput -func (*cdnCustomDomainCertificatePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**CdnCustomDomainCertificate)(nil)).Elem() +func (ApplicationLoadBalancerErrorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerError)(nil)).Elem() } -func (i *cdnCustomDomainCertificatePtrType) ToCdnCustomDomainCertificatePtrOutput() CdnCustomDomainCertificatePtrOutput { - return i.ToCdnCustomDomainCertificatePtrOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerErrorArray) ToApplicationLoadBalancerErrorArrayOutput() ApplicationLoadBalancerErrorArrayOutput { + return i.ToApplicationLoadBalancerErrorArrayOutputWithContext(context.Background()) } -func (i *cdnCustomDomainCertificatePtrType) ToCdnCustomDomainCertificatePtrOutputWithContext(ctx context.Context) CdnCustomDomainCertificatePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(CdnCustomDomainCertificatePtrOutput) +func (i ApplicationLoadBalancerErrorArray) ToApplicationLoadBalancerErrorArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerErrorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerErrorArrayOutput) } -type CdnCustomDomainCertificateOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerErrorOutput struct{ *pulumi.OutputState } -func (CdnCustomDomainCertificateOutput) ElementType() reflect.Type { - return reflect.TypeOf((*CdnCustomDomainCertificate)(nil)).Elem() +func (ApplicationLoadBalancerErrorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerError)(nil)).Elem() } -func (o CdnCustomDomainCertificateOutput) ToCdnCustomDomainCertificateOutput() CdnCustomDomainCertificateOutput { +func (o ApplicationLoadBalancerErrorOutput) ToApplicationLoadBalancerErrorOutput() ApplicationLoadBalancerErrorOutput { return o } -func (o CdnCustomDomainCertificateOutput) ToCdnCustomDomainCertificateOutputWithContext(ctx context.Context) CdnCustomDomainCertificateOutput { +func (o ApplicationLoadBalancerErrorOutput) ToApplicationLoadBalancerErrorOutputWithContext(ctx context.Context) ApplicationLoadBalancerErrorOutput { return o } -func (o CdnCustomDomainCertificateOutput) ToCdnCustomDomainCertificatePtrOutput() CdnCustomDomainCertificatePtrOutput { - return o.ToCdnCustomDomainCertificatePtrOutputWithContext(context.Background()) +// 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. +func (o ApplicationLoadBalancerErrorOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerError) *string { return v.Description }).(pulumi.StringPtrOutput) } -func (o CdnCustomDomainCertificateOutput) ToCdnCustomDomainCertificatePtrOutputWithContext(ctx context.Context) CdnCustomDomainCertificatePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v CdnCustomDomainCertificate) *CdnCustomDomainCertificate { - return &v - }).(CdnCustomDomainCertificatePtrOutput) +// 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`. +func (o ApplicationLoadBalancerErrorOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerError) *string { return v.Type }).(pulumi.StringPtrOutput) } -// The PEM-encoded TLS certificate. Required for custom certificates. -func (o CdnCustomDomainCertificateOutput) Certificate() pulumi.StringPtrOutput { - return o.ApplyT(func(v CdnCustomDomainCertificate) *string { return v.Certificate }).(pulumi.StringPtrOutput) -} +type ApplicationLoadBalancerErrorArrayOutput struct{ *pulumi.OutputState } -// The PEM-encoded private key for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. -func (o CdnCustomDomainCertificateOutput) PrivateKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v CdnCustomDomainCertificate) *string { return v.PrivateKey }).(pulumi.StringPtrOutput) +func (ApplicationLoadBalancerErrorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerError)(nil)).Elem() } -// A version identifier for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. -func (o CdnCustomDomainCertificateOutput) Version() pulumi.IntPtrOutput { - return o.ApplyT(func(v CdnCustomDomainCertificate) *int { return v.Version }).(pulumi.IntPtrOutput) +func (o ApplicationLoadBalancerErrorArrayOutput) ToApplicationLoadBalancerErrorArrayOutput() ApplicationLoadBalancerErrorArrayOutput { + return o } -type CdnCustomDomainCertificatePtrOutput struct{ *pulumi.OutputState } - -func (CdnCustomDomainCertificatePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**CdnCustomDomainCertificate)(nil)).Elem() +func (o ApplicationLoadBalancerErrorArrayOutput) ToApplicationLoadBalancerErrorArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerErrorArrayOutput { + return o } -func (o CdnCustomDomainCertificatePtrOutput) ToCdnCustomDomainCertificatePtrOutput() CdnCustomDomainCertificatePtrOutput { - return o +func (o ApplicationLoadBalancerErrorArrayOutput) Index(i pulumi.IntInput) ApplicationLoadBalancerErrorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationLoadBalancerError { + return vs[0].([]ApplicationLoadBalancerError)[vs[1].(int)] + }).(ApplicationLoadBalancerErrorOutput) } -func (o CdnCustomDomainCertificatePtrOutput) ToCdnCustomDomainCertificatePtrOutputWithContext(ctx context.Context) CdnCustomDomainCertificatePtrOutput { - return o +type ApplicationLoadBalancerListener struct { + // Configuration for HTTP traffic. + Http ApplicationLoadBalancerListenerHttp `pulumi:"http"` + // Configuration for handling HTTPS traffic on this listener. + Https *ApplicationLoadBalancerListenerHttps `pulumi:"https"` + // Unique name for the listener + Name string `pulumi:"name"` + // Port number on which the listener receives incoming traffic. + Port int `pulumi:"port"` + // Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. + Protocol string `pulumi:"protocol"` + // Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. + WafConfigName *string `pulumi:"wafConfigName"` } -func (o CdnCustomDomainCertificatePtrOutput) Elem() CdnCustomDomainCertificateOutput { - return o.ApplyT(func(v *CdnCustomDomainCertificate) CdnCustomDomainCertificate { - if v != nil { - return *v - } - var ret CdnCustomDomainCertificate - return ret - }).(CdnCustomDomainCertificateOutput) +// ApplicationLoadBalancerListenerInput is an input type that accepts ApplicationLoadBalancerListenerArgs and ApplicationLoadBalancerListenerOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerInput` via: +// +// ApplicationLoadBalancerListenerArgs{...} +type ApplicationLoadBalancerListenerInput interface { + pulumi.Input + + ToApplicationLoadBalancerListenerOutput() ApplicationLoadBalancerListenerOutput + ToApplicationLoadBalancerListenerOutputWithContext(context.Context) ApplicationLoadBalancerListenerOutput } -// The PEM-encoded TLS certificate. Required for custom certificates. -func (o CdnCustomDomainCertificatePtrOutput) Certificate() pulumi.StringPtrOutput { - return o.ApplyT(func(v *CdnCustomDomainCertificate) *string { - if v == nil { - return nil - } - return v.Certificate - }).(pulumi.StringPtrOutput) +type ApplicationLoadBalancerListenerArgs struct { + // Configuration for HTTP traffic. + Http ApplicationLoadBalancerListenerHttpInput `pulumi:"http"` + // Configuration for handling HTTPS traffic on this listener. + Https ApplicationLoadBalancerListenerHttpsPtrInput `pulumi:"https"` + // Unique name for the listener + Name pulumi.StringInput `pulumi:"name"` + // Port number on which the listener receives incoming traffic. + Port pulumi.IntInput `pulumi:"port"` + // Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. + Protocol pulumi.StringInput `pulumi:"protocol"` + // Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. + WafConfigName pulumi.StringPtrInput `pulumi:"wafConfigName"` } -// The PEM-encoded private key for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. -func (o CdnCustomDomainCertificatePtrOutput) PrivateKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v *CdnCustomDomainCertificate) *string { - if v == nil { - return nil - } - return v.PrivateKey - }).(pulumi.StringPtrOutput) +func (ApplicationLoadBalancerListenerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListener)(nil)).Elem() } -// A version identifier for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. -func (o CdnCustomDomainCertificatePtrOutput) Version() pulumi.IntPtrOutput { - return o.ApplyT(func(v *CdnCustomDomainCertificate) *int { - if v == nil { - return nil - } - return v.Version - }).(pulumi.IntPtrOutput) +func (i ApplicationLoadBalancerListenerArgs) ToApplicationLoadBalancerListenerOutput() ApplicationLoadBalancerListenerOutput { + return i.ToApplicationLoadBalancerListenerOutputWithContext(context.Background()) } -type CdnDistributionConfig struct { - // The configured backend for the distribution - Backend CdnDistributionConfigBackend `pulumi:"backend"` - // The configured countries where distribution of content is blocked - BlockedCountries []string `pulumi:"blockedCountries"` - // 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. - Optimizer *CdnDistributionConfigOptimizer `pulumi:"optimizer"` - // The configured regions where content will be hosted - Regions []string `pulumi:"regions"` +func (i ApplicationLoadBalancerListenerArgs) ToApplicationLoadBalancerListenerOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerOutput) } -// CdnDistributionConfigInput is an input type that accepts CdnDistributionConfigArgs and CdnDistributionConfigOutput values. -// You can construct a concrete instance of `CdnDistributionConfigInput` via: +// ApplicationLoadBalancerListenerArrayInput is an input type that accepts ApplicationLoadBalancerListenerArray and ApplicationLoadBalancerListenerArrayOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerArrayInput` via: // -// CdnDistributionConfigArgs{...} -type CdnDistributionConfigInput interface { +// ApplicationLoadBalancerListenerArray{ ApplicationLoadBalancerListenerArgs{...} } +type ApplicationLoadBalancerListenerArrayInput interface { pulumi.Input - ToCdnDistributionConfigOutput() CdnDistributionConfigOutput - ToCdnDistributionConfigOutputWithContext(context.Context) CdnDistributionConfigOutput + ToApplicationLoadBalancerListenerArrayOutput() ApplicationLoadBalancerListenerArrayOutput + ToApplicationLoadBalancerListenerArrayOutputWithContext(context.Context) ApplicationLoadBalancerListenerArrayOutput } -type CdnDistributionConfigArgs struct { - // The configured backend for the distribution - Backend CdnDistributionConfigBackendInput `pulumi:"backend"` - // The configured countries where distribution of content is blocked - BlockedCountries pulumi.StringArrayInput `pulumi:"blockedCountries"` - // 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. - Optimizer CdnDistributionConfigOptimizerPtrInput `pulumi:"optimizer"` - // The configured regions where content will be hosted - Regions pulumi.StringArrayInput `pulumi:"regions"` -} +type ApplicationLoadBalancerListenerArray []ApplicationLoadBalancerListenerInput -func (CdnDistributionConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*CdnDistributionConfig)(nil)).Elem() +func (ApplicationLoadBalancerListenerArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerListener)(nil)).Elem() } -func (i CdnDistributionConfigArgs) ToCdnDistributionConfigOutput() CdnDistributionConfigOutput { - return i.ToCdnDistributionConfigOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerListenerArray) ToApplicationLoadBalancerListenerArrayOutput() ApplicationLoadBalancerListenerArrayOutput { + return i.ToApplicationLoadBalancerListenerArrayOutputWithContext(context.Background()) } -func (i CdnDistributionConfigArgs) ToCdnDistributionConfigOutputWithContext(ctx context.Context) CdnDistributionConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigOutput) +func (i ApplicationLoadBalancerListenerArray) ToApplicationLoadBalancerListenerArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerArrayOutput) } -func (i CdnDistributionConfigArgs) ToCdnDistributionConfigPtrOutput() CdnDistributionConfigPtrOutput { - return i.ToCdnDistributionConfigPtrOutputWithContext(context.Background()) +type ApplicationLoadBalancerListenerOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerListenerOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListener)(nil)).Elem() } -func (i CdnDistributionConfigArgs) ToCdnDistributionConfigPtrOutputWithContext(ctx context.Context) CdnDistributionConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigOutput).ToCdnDistributionConfigPtrOutputWithContext(ctx) +func (o ApplicationLoadBalancerListenerOutput) ToApplicationLoadBalancerListenerOutput() ApplicationLoadBalancerListenerOutput { + return o } -// CdnDistributionConfigPtrInput is an input type that accepts CdnDistributionConfigArgs, CdnDistributionConfigPtr and CdnDistributionConfigPtrOutput values. -// You can construct a concrete instance of `CdnDistributionConfigPtrInput` via: -// -// CdnDistributionConfigArgs{...} -// -// or: -// -// nil -type CdnDistributionConfigPtrInput interface { - pulumi.Input +func (o ApplicationLoadBalancerListenerOutput) ToApplicationLoadBalancerListenerOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerOutput { + return o +} - ToCdnDistributionConfigPtrOutput() CdnDistributionConfigPtrOutput - ToCdnDistributionConfigPtrOutputWithContext(context.Context) CdnDistributionConfigPtrOutput +// Configuration for HTTP traffic. +func (o ApplicationLoadBalancerListenerOutput) Http() ApplicationLoadBalancerListenerHttpOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListener) ApplicationLoadBalancerListenerHttp { return v.Http }).(ApplicationLoadBalancerListenerHttpOutput) } -type cdnDistributionConfigPtrType CdnDistributionConfigArgs +// Configuration for handling HTTPS traffic on this listener. +func (o ApplicationLoadBalancerListenerOutput) Https() ApplicationLoadBalancerListenerHttpsPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListener) *ApplicationLoadBalancerListenerHttps { return v.Https }).(ApplicationLoadBalancerListenerHttpsPtrOutput) +} -func CdnDistributionConfigPtr(v *CdnDistributionConfigArgs) CdnDistributionConfigPtrInput { - return (*cdnDistributionConfigPtrType)(v) +// Unique name for the listener +func (o ApplicationLoadBalancerListenerOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListener) string { return v.Name }).(pulumi.StringOutput) } -func (*cdnDistributionConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**CdnDistributionConfig)(nil)).Elem() +// Port number on which the listener receives incoming traffic. +func (o ApplicationLoadBalancerListenerOutput) Port() pulumi.IntOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListener) int { return v.Port }).(pulumi.IntOutput) } -func (i *cdnDistributionConfigPtrType) ToCdnDistributionConfigPtrOutput() CdnDistributionConfigPtrOutput { - return i.ToCdnDistributionConfigPtrOutputWithContext(context.Background()) +// Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. +func (o ApplicationLoadBalancerListenerOutput) Protocol() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListener) string { return v.Protocol }).(pulumi.StringOutput) } -func (i *cdnDistributionConfigPtrType) ToCdnDistributionConfigPtrOutputWithContext(ctx context.Context) CdnDistributionConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigPtrOutput) +// Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. +func (o ApplicationLoadBalancerListenerOutput) WafConfigName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListener) *string { return v.WafConfigName }).(pulumi.StringPtrOutput) } -type CdnDistributionConfigOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerListenerArrayOutput struct{ *pulumi.OutputState } -func (CdnDistributionConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*CdnDistributionConfig)(nil)).Elem() +func (ApplicationLoadBalancerListenerArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerListener)(nil)).Elem() } -func (o CdnDistributionConfigOutput) ToCdnDistributionConfigOutput() CdnDistributionConfigOutput { +func (o ApplicationLoadBalancerListenerArrayOutput) ToApplicationLoadBalancerListenerArrayOutput() ApplicationLoadBalancerListenerArrayOutput { return o } -func (o CdnDistributionConfigOutput) ToCdnDistributionConfigOutputWithContext(ctx context.Context) CdnDistributionConfigOutput { +func (o ApplicationLoadBalancerListenerArrayOutput) ToApplicationLoadBalancerListenerArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerArrayOutput { return o } -func (o CdnDistributionConfigOutput) ToCdnDistributionConfigPtrOutput() CdnDistributionConfigPtrOutput { - return o.ToCdnDistributionConfigPtrOutputWithContext(context.Background()) +func (o ApplicationLoadBalancerListenerArrayOutput) Index(i pulumi.IntInput) ApplicationLoadBalancerListenerOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationLoadBalancerListener { + return vs[0].([]ApplicationLoadBalancerListener)[vs[1].(int)] + }).(ApplicationLoadBalancerListenerOutput) } -func (o CdnDistributionConfigOutput) ToCdnDistributionConfigPtrOutputWithContext(ctx context.Context) CdnDistributionConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v CdnDistributionConfig) *CdnDistributionConfig { - return &v - }).(CdnDistributionConfigPtrOutput) +type ApplicationLoadBalancerListenerHttp struct { + // Defines routing rules grouped by hostname. + Hosts []ApplicationLoadBalancerListenerHttpHost `pulumi:"hosts"` } -// The configured backend for the distribution -func (o CdnDistributionConfigOutput) Backend() CdnDistributionConfigBackendOutput { - return o.ApplyT(func(v CdnDistributionConfig) CdnDistributionConfigBackend { return v.Backend }).(CdnDistributionConfigBackendOutput) +// ApplicationLoadBalancerListenerHttpInput is an input type that accepts ApplicationLoadBalancerListenerHttpArgs and ApplicationLoadBalancerListenerHttpOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerHttpInput` via: +// +// ApplicationLoadBalancerListenerHttpArgs{...} +type ApplicationLoadBalancerListenerHttpInput interface { + pulumi.Input + + ToApplicationLoadBalancerListenerHttpOutput() ApplicationLoadBalancerListenerHttpOutput + ToApplicationLoadBalancerListenerHttpOutputWithContext(context.Context) ApplicationLoadBalancerListenerHttpOutput } -// The configured countries where distribution of content is blocked -func (o CdnDistributionConfigOutput) BlockedCountries() pulumi.StringArrayOutput { - return o.ApplyT(func(v CdnDistributionConfig) []string { return v.BlockedCountries }).(pulumi.StringArrayOutput) +type ApplicationLoadBalancerListenerHttpArgs struct { + // Defines routing rules grouped by hostname. + Hosts ApplicationLoadBalancerListenerHttpHostArrayInput `pulumi:"hosts"` } -// 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. -func (o CdnDistributionConfigOutput) Optimizer() CdnDistributionConfigOptimizerPtrOutput { - return o.ApplyT(func(v CdnDistributionConfig) *CdnDistributionConfigOptimizer { return v.Optimizer }).(CdnDistributionConfigOptimizerPtrOutput) +func (ApplicationLoadBalancerListenerHttpArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttp)(nil)).Elem() } -// The configured regions where content will be hosted -func (o CdnDistributionConfigOutput) Regions() pulumi.StringArrayOutput { - return o.ApplyT(func(v CdnDistributionConfig) []string { return v.Regions }).(pulumi.StringArrayOutput) +func (i ApplicationLoadBalancerListenerHttpArgs) ToApplicationLoadBalancerListenerHttpOutput() ApplicationLoadBalancerListenerHttpOutput { + return i.ToApplicationLoadBalancerListenerHttpOutputWithContext(context.Background()) } -type CdnDistributionConfigPtrOutput struct{ *pulumi.OutputState } +func (i ApplicationLoadBalancerListenerHttpArgs) ToApplicationLoadBalancerListenerHttpOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpOutput) +} -func (CdnDistributionConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**CdnDistributionConfig)(nil)).Elem() +type ApplicationLoadBalancerListenerHttpOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerListenerHttpOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttp)(nil)).Elem() } -func (o CdnDistributionConfigPtrOutput) ToCdnDistributionConfigPtrOutput() CdnDistributionConfigPtrOutput { +func (o ApplicationLoadBalancerListenerHttpOutput) ToApplicationLoadBalancerListenerHttpOutput() ApplicationLoadBalancerListenerHttpOutput { return o } -func (o CdnDistributionConfigPtrOutput) ToCdnDistributionConfigPtrOutputWithContext(ctx context.Context) CdnDistributionConfigPtrOutput { +func (o ApplicationLoadBalancerListenerHttpOutput) ToApplicationLoadBalancerListenerHttpOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpOutput { return o } -func (o CdnDistributionConfigPtrOutput) Elem() CdnDistributionConfigOutput { - return o.ApplyT(func(v *CdnDistributionConfig) CdnDistributionConfig { - if v != nil { - return *v - } - var ret CdnDistributionConfig - return ret - }).(CdnDistributionConfigOutput) +// Defines routing rules grouped by hostname. +func (o ApplicationLoadBalancerListenerHttpOutput) Hosts() ApplicationLoadBalancerListenerHttpHostArrayOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttp) []ApplicationLoadBalancerListenerHttpHost { return v.Hosts }).(ApplicationLoadBalancerListenerHttpHostArrayOutput) } -// The configured backend for the distribution -func (o CdnDistributionConfigPtrOutput) Backend() CdnDistributionConfigBackendPtrOutput { - return o.ApplyT(func(v *CdnDistributionConfig) *CdnDistributionConfigBackend { - if v == nil { - return nil - } - return &v.Backend - }).(CdnDistributionConfigBackendPtrOutput) +type ApplicationLoadBalancerListenerHttpHost struct { + // Hostname to match. Supports wildcards (e.g. *.example.com). + Host string `pulumi:"host"` + // Routing rules under the specified host, matched by path prefix. + Rules []ApplicationLoadBalancerListenerHttpHostRule `pulumi:"rules"` } -// The configured countries where distribution of content is blocked -func (o CdnDistributionConfigPtrOutput) BlockedCountries() pulumi.StringArrayOutput { - return o.ApplyT(func(v *CdnDistributionConfig) []string { - if v == nil { - return nil - } - return v.BlockedCountries - }).(pulumi.StringArrayOutput) +// ApplicationLoadBalancerListenerHttpHostInput is an input type that accepts ApplicationLoadBalancerListenerHttpHostArgs and ApplicationLoadBalancerListenerHttpHostOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerHttpHostInput` via: +// +// ApplicationLoadBalancerListenerHttpHostArgs{...} +type ApplicationLoadBalancerListenerHttpHostInput interface { + pulumi.Input + + ToApplicationLoadBalancerListenerHttpHostOutput() ApplicationLoadBalancerListenerHttpHostOutput + ToApplicationLoadBalancerListenerHttpHostOutputWithContext(context.Context) ApplicationLoadBalancerListenerHttpHostOutput } -// 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. -func (o CdnDistributionConfigPtrOutput) Optimizer() CdnDistributionConfigOptimizerPtrOutput { - return o.ApplyT(func(v *CdnDistributionConfig) *CdnDistributionConfigOptimizer { - if v == nil { - return nil - } - return v.Optimizer - }).(CdnDistributionConfigOptimizerPtrOutput) +type ApplicationLoadBalancerListenerHttpHostArgs struct { + // Hostname to match. Supports wildcards (e.g. *.example.com). + Host pulumi.StringInput `pulumi:"host"` + // Routing rules under the specified host, matched by path prefix. + Rules ApplicationLoadBalancerListenerHttpHostRuleArrayInput `pulumi:"rules"` } -// The configured regions where content will be hosted -func (o CdnDistributionConfigPtrOutput) Regions() pulumi.StringArrayOutput { - return o.ApplyT(func(v *CdnDistributionConfig) []string { - if v == nil { - return nil - } - return v.Regions - }).(pulumi.StringArrayOutput) +func (ApplicationLoadBalancerListenerHttpHostArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHost)(nil)).Elem() } -type CdnDistributionConfigBackend struct { - // The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. - BucketUrl *string `pulumi:"bucketUrl"` - // The credentials for the bucket. Required if type is 'bucket'. - Credentials *CdnDistributionConfigBackendCredentials `pulumi:"credentials"` - // The configured type http to configure countries where content is allowed. A map of URLs to a list of countries - Geofencing map[string][]string `pulumi:"geofencing"` - // The configured type http origin request headers for the backend - OriginRequestHeaders map[string]string `pulumi:"originRequestHeaders"` - // The configured backend type http for the distribution - OriginUrl *string `pulumi:"originUrl"` - // The region where the bucket is hosted. Required if type is 'bucket'. - Region *string `pulumi:"region"` - // The configured backend type. Possible values are: `http`, `bucket`. - Type string `pulumi:"type"` +func (i ApplicationLoadBalancerListenerHttpHostArgs) ToApplicationLoadBalancerListenerHttpHostOutput() ApplicationLoadBalancerListenerHttpHostOutput { + return i.ToApplicationLoadBalancerListenerHttpHostOutputWithContext(context.Background()) } -// CdnDistributionConfigBackendInput is an input type that accepts CdnDistributionConfigBackendArgs and CdnDistributionConfigBackendOutput values. -// You can construct a concrete instance of `CdnDistributionConfigBackendInput` via: +func (i ApplicationLoadBalancerListenerHttpHostArgs) ToApplicationLoadBalancerListenerHttpHostOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpHostOutput) +} + +// ApplicationLoadBalancerListenerHttpHostArrayInput is an input type that accepts ApplicationLoadBalancerListenerHttpHostArray and ApplicationLoadBalancerListenerHttpHostArrayOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerHttpHostArrayInput` via: // -// CdnDistributionConfigBackendArgs{...} -type CdnDistributionConfigBackendInput interface { +// ApplicationLoadBalancerListenerHttpHostArray{ ApplicationLoadBalancerListenerHttpHostArgs{...} } +type ApplicationLoadBalancerListenerHttpHostArrayInput interface { pulumi.Input - ToCdnDistributionConfigBackendOutput() CdnDistributionConfigBackendOutput - ToCdnDistributionConfigBackendOutputWithContext(context.Context) CdnDistributionConfigBackendOutput + ToApplicationLoadBalancerListenerHttpHostArrayOutput() ApplicationLoadBalancerListenerHttpHostArrayOutput + ToApplicationLoadBalancerListenerHttpHostArrayOutputWithContext(context.Context) ApplicationLoadBalancerListenerHttpHostArrayOutput } -type CdnDistributionConfigBackendArgs struct { - // The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. - BucketUrl pulumi.StringPtrInput `pulumi:"bucketUrl"` - // The credentials for the bucket. Required if type is 'bucket'. - Credentials CdnDistributionConfigBackendCredentialsPtrInput `pulumi:"credentials"` - // The configured type http to configure countries where content is allowed. A map of URLs to a list of countries - Geofencing pulumi.StringArrayMapInput `pulumi:"geofencing"` - // The configured type http origin request headers for the backend - OriginRequestHeaders pulumi.StringMapInput `pulumi:"originRequestHeaders"` - // The configured backend type http for the distribution - OriginUrl pulumi.StringPtrInput `pulumi:"originUrl"` - // The region where the bucket is hosted. Required if type is 'bucket'. - Region pulumi.StringPtrInput `pulumi:"region"` - // The configured backend type. Possible values are: `http`, `bucket`. - Type pulumi.StringInput `pulumi:"type"` +type ApplicationLoadBalancerListenerHttpHostArray []ApplicationLoadBalancerListenerHttpHostInput + +func (ApplicationLoadBalancerListenerHttpHostArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerListenerHttpHost)(nil)).Elem() } -func (CdnDistributionConfigBackendArgs) ElementType() reflect.Type { - return reflect.TypeOf((*CdnDistributionConfigBackend)(nil)).Elem() +func (i ApplicationLoadBalancerListenerHttpHostArray) ToApplicationLoadBalancerListenerHttpHostArrayOutput() ApplicationLoadBalancerListenerHttpHostArrayOutput { + return i.ToApplicationLoadBalancerListenerHttpHostArrayOutputWithContext(context.Background()) } -func (i CdnDistributionConfigBackendArgs) ToCdnDistributionConfigBackendOutput() CdnDistributionConfigBackendOutput { - return i.ToCdnDistributionConfigBackendOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerListenerHttpHostArray) ToApplicationLoadBalancerListenerHttpHostArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpHostArrayOutput) } -func (i CdnDistributionConfigBackendArgs) ToCdnDistributionConfigBackendOutputWithContext(ctx context.Context) CdnDistributionConfigBackendOutput { - return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigBackendOutput) +type ApplicationLoadBalancerListenerHttpHostOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerListenerHttpHostOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHost)(nil)).Elem() } -func (i CdnDistributionConfigBackendArgs) ToCdnDistributionConfigBackendPtrOutput() CdnDistributionConfigBackendPtrOutput { - return i.ToCdnDistributionConfigBackendPtrOutputWithContext(context.Background()) +func (o ApplicationLoadBalancerListenerHttpHostOutput) ToApplicationLoadBalancerListenerHttpHostOutput() ApplicationLoadBalancerListenerHttpHostOutput { + return o } -func (i CdnDistributionConfigBackendArgs) ToCdnDistributionConfigBackendPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigBackendOutput).ToCdnDistributionConfigBackendPtrOutputWithContext(ctx) +func (o ApplicationLoadBalancerListenerHttpHostOutput) ToApplicationLoadBalancerListenerHttpHostOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostOutput { + return o } -// CdnDistributionConfigBackendPtrInput is an input type that accepts CdnDistributionConfigBackendArgs, CdnDistributionConfigBackendPtr and CdnDistributionConfigBackendPtrOutput values. -// You can construct a concrete instance of `CdnDistributionConfigBackendPtrInput` via: -// -// CdnDistributionConfigBackendArgs{...} -// -// or: -// -// nil -type CdnDistributionConfigBackendPtrInput interface { - pulumi.Input +// Hostname to match. Supports wildcards (e.g. *.example.com). +func (o ApplicationLoadBalancerListenerHttpHostOutput) Host() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttpHost) string { return v.Host }).(pulumi.StringOutput) +} - ToCdnDistributionConfigBackendPtrOutput() CdnDistributionConfigBackendPtrOutput - ToCdnDistributionConfigBackendPtrOutputWithContext(context.Context) CdnDistributionConfigBackendPtrOutput +// Routing rules under the specified host, matched by path prefix. +func (o ApplicationLoadBalancerListenerHttpHostOutput) Rules() ApplicationLoadBalancerListenerHttpHostRuleArrayOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttpHost) []ApplicationLoadBalancerListenerHttpHostRule { + return v.Rules + }).(ApplicationLoadBalancerListenerHttpHostRuleArrayOutput) } -type cdnDistributionConfigBackendPtrType CdnDistributionConfigBackendArgs +type ApplicationLoadBalancerListenerHttpHostArrayOutput struct{ *pulumi.OutputState } -func CdnDistributionConfigBackendPtr(v *CdnDistributionConfigBackendArgs) CdnDistributionConfigBackendPtrInput { - return (*cdnDistributionConfigBackendPtrType)(v) +func (ApplicationLoadBalancerListenerHttpHostArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerListenerHttpHost)(nil)).Elem() } -func (*cdnDistributionConfigBackendPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**CdnDistributionConfigBackend)(nil)).Elem() +func (o ApplicationLoadBalancerListenerHttpHostArrayOutput) ToApplicationLoadBalancerListenerHttpHostArrayOutput() ApplicationLoadBalancerListenerHttpHostArrayOutput { + return o } -func (i *cdnDistributionConfigBackendPtrType) ToCdnDistributionConfigBackendPtrOutput() CdnDistributionConfigBackendPtrOutput { - return i.ToCdnDistributionConfigBackendPtrOutputWithContext(context.Background()) +func (o ApplicationLoadBalancerListenerHttpHostArrayOutput) ToApplicationLoadBalancerListenerHttpHostArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostArrayOutput { + return o } -func (i *cdnDistributionConfigBackendPtrType) ToCdnDistributionConfigBackendPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigBackendPtrOutput) +func (o ApplicationLoadBalancerListenerHttpHostArrayOutput) Index(i pulumi.IntInput) ApplicationLoadBalancerListenerHttpHostOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationLoadBalancerListenerHttpHost { + return vs[0].([]ApplicationLoadBalancerListenerHttpHost)[vs[1].(int)] + }).(ApplicationLoadBalancerListenerHttpHostOutput) } -type CdnDistributionConfigBackendOutput struct{ *pulumi.OutputState } - -func (CdnDistributionConfigBackendOutput) ElementType() reflect.Type { - return reflect.TypeOf((*CdnDistributionConfigBackend)(nil)).Elem() +type ApplicationLoadBalancerListenerHttpHostRule struct { + // Routing persistence via cookies. + CookiePersistence *ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence `pulumi:"cookiePersistence"` + // Headers for the rule. + Headers []ApplicationLoadBalancerListenerHttpHostRuleHeader `pulumi:"headers"` + // Routing via path. + Path *ApplicationLoadBalancerListenerHttpHostRulePath `pulumi:"path"` + // Query parameters for the rule. + QueryParameters []ApplicationLoadBalancerListenerHttpHostRuleQueryParameter `pulumi:"queryParameters"` + // Reference target pool by target pool name. + TargetPool string `pulumi:"targetPool"` + // 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. + WebSocket *bool `pulumi:"webSocket"` } -func (o CdnDistributionConfigBackendOutput) ToCdnDistributionConfigBackendOutput() CdnDistributionConfigBackendOutput { - return o -} +// ApplicationLoadBalancerListenerHttpHostRuleInput is an input type that accepts ApplicationLoadBalancerListenerHttpHostRuleArgs and ApplicationLoadBalancerListenerHttpHostRuleOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerHttpHostRuleInput` via: +// +// ApplicationLoadBalancerListenerHttpHostRuleArgs{...} +type ApplicationLoadBalancerListenerHttpHostRuleInput interface { + pulumi.Input -func (o CdnDistributionConfigBackendOutput) ToCdnDistributionConfigBackendOutputWithContext(ctx context.Context) CdnDistributionConfigBackendOutput { - return o + ToApplicationLoadBalancerListenerHttpHostRuleOutput() ApplicationLoadBalancerListenerHttpHostRuleOutput + ToApplicationLoadBalancerListenerHttpHostRuleOutputWithContext(context.Context) ApplicationLoadBalancerListenerHttpHostRuleOutput } -func (o CdnDistributionConfigBackendOutput) ToCdnDistributionConfigBackendPtrOutput() CdnDistributionConfigBackendPtrOutput { - return o.ToCdnDistributionConfigBackendPtrOutputWithContext(context.Background()) +type ApplicationLoadBalancerListenerHttpHostRuleArgs struct { + // Routing persistence via cookies. + CookiePersistence ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrInput `pulumi:"cookiePersistence"` + // Headers for the rule. + Headers ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayInput `pulumi:"headers"` + // Routing via path. + Path ApplicationLoadBalancerListenerHttpHostRulePathPtrInput `pulumi:"path"` + // Query parameters for the rule. + QueryParameters ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayInput `pulumi:"queryParameters"` + // Reference target pool by target pool name. + TargetPool pulumi.StringInput `pulumi:"targetPool"` + // 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. + WebSocket pulumi.BoolPtrInput `pulumi:"webSocket"` } -func (o CdnDistributionConfigBackendOutput) ToCdnDistributionConfigBackendPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v CdnDistributionConfigBackend) *CdnDistributionConfigBackend { - return &v - }).(CdnDistributionConfigBackendPtrOutput) +func (ApplicationLoadBalancerListenerHttpHostRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRule)(nil)).Elem() } -// The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. -func (o CdnDistributionConfigBackendOutput) BucketUrl() pulumi.StringPtrOutput { - return o.ApplyT(func(v CdnDistributionConfigBackend) *string { return v.BucketUrl }).(pulumi.StringPtrOutput) +func (i ApplicationLoadBalancerListenerHttpHostRuleArgs) ToApplicationLoadBalancerListenerHttpHostRuleOutput() ApplicationLoadBalancerListenerHttpHostRuleOutput { + return i.ToApplicationLoadBalancerListenerHttpHostRuleOutputWithContext(context.Background()) } -// The credentials for the bucket. Required if type is 'bucket'. -func (o CdnDistributionConfigBackendOutput) Credentials() CdnDistributionConfigBackendCredentialsPtrOutput { - return o.ApplyT(func(v CdnDistributionConfigBackend) *CdnDistributionConfigBackendCredentials { return v.Credentials }).(CdnDistributionConfigBackendCredentialsPtrOutput) +func (i ApplicationLoadBalancerListenerHttpHostRuleArgs) ToApplicationLoadBalancerListenerHttpHostRuleOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpHostRuleOutput) } -// The configured type http to configure countries where content is allowed. A map of URLs to a list of countries -func (o CdnDistributionConfigBackendOutput) Geofencing() pulumi.StringArrayMapOutput { - return o.ApplyT(func(v CdnDistributionConfigBackend) map[string][]string { return v.Geofencing }).(pulumi.StringArrayMapOutput) -} +// ApplicationLoadBalancerListenerHttpHostRuleArrayInput is an input type that accepts ApplicationLoadBalancerListenerHttpHostRuleArray and ApplicationLoadBalancerListenerHttpHostRuleArrayOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerHttpHostRuleArrayInput` via: +// +// ApplicationLoadBalancerListenerHttpHostRuleArray{ ApplicationLoadBalancerListenerHttpHostRuleArgs{...} } +type ApplicationLoadBalancerListenerHttpHostRuleArrayInput interface { + pulumi.Input -// The configured type http origin request headers for the backend -func (o CdnDistributionConfigBackendOutput) OriginRequestHeaders() pulumi.StringMapOutput { - return o.ApplyT(func(v CdnDistributionConfigBackend) map[string]string { return v.OriginRequestHeaders }).(pulumi.StringMapOutput) + ToApplicationLoadBalancerListenerHttpHostRuleArrayOutput() ApplicationLoadBalancerListenerHttpHostRuleArrayOutput + ToApplicationLoadBalancerListenerHttpHostRuleArrayOutputWithContext(context.Context) ApplicationLoadBalancerListenerHttpHostRuleArrayOutput } -// The configured backend type http for the distribution -func (o CdnDistributionConfigBackendOutput) OriginUrl() pulumi.StringPtrOutput { - return o.ApplyT(func(v CdnDistributionConfigBackend) *string { return v.OriginUrl }).(pulumi.StringPtrOutput) +type ApplicationLoadBalancerListenerHttpHostRuleArray []ApplicationLoadBalancerListenerHttpHostRuleInput + +func (ApplicationLoadBalancerListenerHttpHostRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerListenerHttpHostRule)(nil)).Elem() } -// The region where the bucket is hosted. Required if type is 'bucket'. -func (o CdnDistributionConfigBackendOutput) Region() pulumi.StringPtrOutput { - return o.ApplyT(func(v CdnDistributionConfigBackend) *string { return v.Region }).(pulumi.StringPtrOutput) +func (i ApplicationLoadBalancerListenerHttpHostRuleArray) ToApplicationLoadBalancerListenerHttpHostRuleArrayOutput() ApplicationLoadBalancerListenerHttpHostRuleArrayOutput { + return i.ToApplicationLoadBalancerListenerHttpHostRuleArrayOutputWithContext(context.Background()) } -// The configured backend type. Possible values are: `http`, `bucket`. -func (o CdnDistributionConfigBackendOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v CdnDistributionConfigBackend) string { return v.Type }).(pulumi.StringOutput) +func (i ApplicationLoadBalancerListenerHttpHostRuleArray) ToApplicationLoadBalancerListenerHttpHostRuleArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpHostRuleArrayOutput) } -type CdnDistributionConfigBackendPtrOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerListenerHttpHostRuleOutput struct{ *pulumi.OutputState } -func (CdnDistributionConfigBackendPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**CdnDistributionConfigBackend)(nil)).Elem() +func (ApplicationLoadBalancerListenerHttpHostRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRule)(nil)).Elem() } -func (o CdnDistributionConfigBackendPtrOutput) ToCdnDistributionConfigBackendPtrOutput() CdnDistributionConfigBackendPtrOutput { +func (o ApplicationLoadBalancerListenerHttpHostRuleOutput) ToApplicationLoadBalancerListenerHttpHostRuleOutput() ApplicationLoadBalancerListenerHttpHostRuleOutput { return o } -func (o CdnDistributionConfigBackendPtrOutput) ToCdnDistributionConfigBackendPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendPtrOutput { +func (o ApplicationLoadBalancerListenerHttpHostRuleOutput) ToApplicationLoadBalancerListenerHttpHostRuleOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleOutput { return o } -func (o CdnDistributionConfigBackendPtrOutput) Elem() CdnDistributionConfigBackendOutput { - return o.ApplyT(func(v *CdnDistributionConfigBackend) CdnDistributionConfigBackend { - if v != nil { - return *v - } - var ret CdnDistributionConfigBackend - return ret - }).(CdnDistributionConfigBackendOutput) +// Routing persistence via cookies. +func (o ApplicationLoadBalancerListenerHttpHostRuleOutput) CookiePersistence() ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttpHostRule) *ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence { + return v.CookiePersistence + }).(ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput) } -// The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. -func (o CdnDistributionConfigBackendPtrOutput) BucketUrl() pulumi.StringPtrOutput { - return o.ApplyT(func(v *CdnDistributionConfigBackend) *string { - if v == nil { - return nil - } - return v.BucketUrl - }).(pulumi.StringPtrOutput) +// Headers for the rule. +func (o ApplicationLoadBalancerListenerHttpHostRuleOutput) Headers() ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttpHostRule) []ApplicationLoadBalancerListenerHttpHostRuleHeader { + return v.Headers + }).(ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput) } -// The credentials for the bucket. Required if type is 'bucket'. -func (o CdnDistributionConfigBackendPtrOutput) Credentials() CdnDistributionConfigBackendCredentialsPtrOutput { - return o.ApplyT(func(v *CdnDistributionConfigBackend) *CdnDistributionConfigBackendCredentials { - if v == nil { - return nil - } - return v.Credentials - }).(CdnDistributionConfigBackendCredentialsPtrOutput) +// Routing via path. +func (o ApplicationLoadBalancerListenerHttpHostRuleOutput) Path() ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttpHostRule) *ApplicationLoadBalancerListenerHttpHostRulePath { + return v.Path + }).(ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput) } -// The configured type http to configure countries where content is allowed. A map of URLs to a list of countries -func (o CdnDistributionConfigBackendPtrOutput) Geofencing() pulumi.StringArrayMapOutput { - return o.ApplyT(func(v *CdnDistributionConfigBackend) map[string][]string { - if v == nil { - return nil - } - return v.Geofencing - }).(pulumi.StringArrayMapOutput) +// Query parameters for the rule. +func (o ApplicationLoadBalancerListenerHttpHostRuleOutput) QueryParameters() ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttpHostRule) []ApplicationLoadBalancerListenerHttpHostRuleQueryParameter { + return v.QueryParameters + }).(ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput) } -// The configured type http origin request headers for the backend -func (o CdnDistributionConfigBackendPtrOutput) OriginRequestHeaders() pulumi.StringMapOutput { - return o.ApplyT(func(v *CdnDistributionConfigBackend) map[string]string { - if v == nil { - return nil - } - return v.OriginRequestHeaders - }).(pulumi.StringMapOutput) +// Reference target pool by target pool name. +func (o ApplicationLoadBalancerListenerHttpHostRuleOutput) TargetPool() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttpHostRule) string { return v.TargetPool }).(pulumi.StringOutput) } -// The configured backend type http for the distribution -func (o CdnDistributionConfigBackendPtrOutput) OriginUrl() pulumi.StringPtrOutput { - return o.ApplyT(func(v *CdnDistributionConfigBackend) *string { - if v == nil { - return nil - } - return v.OriginUrl - }).(pulumi.StringPtrOutput) +// 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. +func (o ApplicationLoadBalancerListenerHttpHostRuleOutput) WebSocket() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttpHostRule) *bool { return v.WebSocket }).(pulumi.BoolPtrOutput) } -// The region where the bucket is hosted. Required if type is 'bucket'. -func (o CdnDistributionConfigBackendPtrOutput) Region() pulumi.StringPtrOutput { - return o.ApplyT(func(v *CdnDistributionConfigBackend) *string { - if v == nil { - return nil - } - return v.Region - }).(pulumi.StringPtrOutput) +type ApplicationLoadBalancerListenerHttpHostRuleArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerListenerHttpHostRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerListenerHttpHostRule)(nil)).Elem() } -// The configured backend type. Possible values are: `http`, `bucket`. -func (o CdnDistributionConfigBackendPtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *CdnDistributionConfigBackend) *string { - if v == nil { - return nil - } - return &v.Type - }).(pulumi.StringPtrOutput) +func (o ApplicationLoadBalancerListenerHttpHostRuleArrayOutput) ToApplicationLoadBalancerListenerHttpHostRuleArrayOutput() ApplicationLoadBalancerListenerHttpHostRuleArrayOutput { + return o } -type CdnDistributionConfigBackendCredentials struct { - // The access key for the bucket. Required if type is 'bucket'. - AccessKeyId string `pulumi:"accessKeyId"` - // The access key for the bucket. Required if type is 'bucket'. - SecretAccessKey string `pulumi:"secretAccessKey"` +func (o ApplicationLoadBalancerListenerHttpHostRuleArrayOutput) ToApplicationLoadBalancerListenerHttpHostRuleArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleArrayOutput { + return o } -// CdnDistributionConfigBackendCredentialsInput is an input type that accepts CdnDistributionConfigBackendCredentialsArgs and CdnDistributionConfigBackendCredentialsOutput values. -// You can construct a concrete instance of `CdnDistributionConfigBackendCredentialsInput` via: +func (o ApplicationLoadBalancerListenerHttpHostRuleArrayOutput) Index(i pulumi.IntInput) ApplicationLoadBalancerListenerHttpHostRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationLoadBalancerListenerHttpHostRule { + return vs[0].([]ApplicationLoadBalancerListenerHttpHostRule)[vs[1].(int)] + }).(ApplicationLoadBalancerListenerHttpHostRuleOutput) +} + +type ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence struct { + // The name of the cookie to use. + Name string `pulumi:"name"` + // 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. + Ttl string `pulumi:"ttl"` +} + +// ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceInput is an input type that accepts ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs and ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceInput` via: // -// CdnDistributionConfigBackendCredentialsArgs{...} -type CdnDistributionConfigBackendCredentialsInput interface { +// ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs{...} +type ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceInput interface { pulumi.Input - ToCdnDistributionConfigBackendCredentialsOutput() CdnDistributionConfigBackendCredentialsOutput - ToCdnDistributionConfigBackendCredentialsOutputWithContext(context.Context) CdnDistributionConfigBackendCredentialsOutput + ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput() ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput + ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutputWithContext(context.Context) ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput } -type CdnDistributionConfigBackendCredentialsArgs struct { - // The access key for the bucket. Required if type is 'bucket'. - AccessKeyId pulumi.StringInput `pulumi:"accessKeyId"` - // The access key for the bucket. Required if type is 'bucket'. - SecretAccessKey pulumi.StringInput `pulumi:"secretAccessKey"` +type ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs struct { + // The name of the cookie to use. + Name pulumi.StringInput `pulumi:"name"` + // 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. + Ttl pulumi.StringInput `pulumi:"ttl"` } -func (CdnDistributionConfigBackendCredentialsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*CdnDistributionConfigBackendCredentials)(nil)).Elem() +func (ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence)(nil)).Elem() } -func (i CdnDistributionConfigBackendCredentialsArgs) ToCdnDistributionConfigBackendCredentialsOutput() CdnDistributionConfigBackendCredentialsOutput { - return i.ToCdnDistributionConfigBackendCredentialsOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs) ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput() ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput { + return i.ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutputWithContext(context.Background()) } -func (i CdnDistributionConfigBackendCredentialsArgs) ToCdnDistributionConfigBackendCredentialsOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsOutput { - return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigBackendCredentialsOutput) +func (i ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs) ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput) } -func (i CdnDistributionConfigBackendCredentialsArgs) ToCdnDistributionConfigBackendCredentialsPtrOutput() CdnDistributionConfigBackendCredentialsPtrOutput { - return i.ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs) ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput() ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput { + return i.ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutputWithContext(context.Background()) } -func (i CdnDistributionConfigBackendCredentialsArgs) ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigBackendCredentialsOutput).ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(ctx) +func (i ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs) ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput).ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutputWithContext(ctx) } -// CdnDistributionConfigBackendCredentialsPtrInput is an input type that accepts CdnDistributionConfigBackendCredentialsArgs, CdnDistributionConfigBackendCredentialsPtr and CdnDistributionConfigBackendCredentialsPtrOutput values. -// You can construct a concrete instance of `CdnDistributionConfigBackendCredentialsPtrInput` via: +// ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrInput is an input type that accepts ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs, ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtr and ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrInput` via: // -// CdnDistributionConfigBackendCredentialsArgs{...} +// ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs{...} // // or: // // nil -type CdnDistributionConfigBackendCredentialsPtrInput interface { +type ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrInput interface { pulumi.Input - ToCdnDistributionConfigBackendCredentialsPtrOutput() CdnDistributionConfigBackendCredentialsPtrOutput - ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(context.Context) CdnDistributionConfigBackendCredentialsPtrOutput + ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput() ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput + ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutputWithContext(context.Context) ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput } -type cdnDistributionConfigBackendCredentialsPtrType CdnDistributionConfigBackendCredentialsArgs +type applicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrType ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs -func CdnDistributionConfigBackendCredentialsPtr(v *CdnDistributionConfigBackendCredentialsArgs) CdnDistributionConfigBackendCredentialsPtrInput { - return (*cdnDistributionConfigBackendCredentialsPtrType)(v) +func ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtr(v *ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs) ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrInput { + return (*applicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrType)(v) } -func (*cdnDistributionConfigBackendCredentialsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**CdnDistributionConfigBackendCredentials)(nil)).Elem() +func (*applicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence)(nil)).Elem() } -func (i *cdnDistributionConfigBackendCredentialsPtrType) ToCdnDistributionConfigBackendCredentialsPtrOutput() CdnDistributionConfigBackendCredentialsPtrOutput { - return i.ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(context.Background()) +func (i *applicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrType) ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput() ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput { + return i.ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutputWithContext(context.Background()) } -func (i *cdnDistributionConfigBackendCredentialsPtrType) ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigBackendCredentialsPtrOutput) +func (i *applicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrType) ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput) } -type CdnDistributionConfigBackendCredentialsOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput struct{ *pulumi.OutputState } -func (CdnDistributionConfigBackendCredentialsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*CdnDistributionConfigBackendCredentials)(nil)).Elem() +func (ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence)(nil)).Elem() } -func (o CdnDistributionConfigBackendCredentialsOutput) ToCdnDistributionConfigBackendCredentialsOutput() CdnDistributionConfigBackendCredentialsOutput { +func (o ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput) ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput() ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput { return o } -func (o CdnDistributionConfigBackendCredentialsOutput) ToCdnDistributionConfigBackendCredentialsOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsOutput { +func (o ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput) ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput { return o } -func (o CdnDistributionConfigBackendCredentialsOutput) ToCdnDistributionConfigBackendCredentialsPtrOutput() CdnDistributionConfigBackendCredentialsPtrOutput { - return o.ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(context.Background()) +func (o ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput) ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput() ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput { + return o.ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutputWithContext(context.Background()) } -func (o CdnDistributionConfigBackendCredentialsOutput) ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v CdnDistributionConfigBackendCredentials) *CdnDistributionConfigBackendCredentials { +func (o ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput) ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence) *ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence { return &v - }).(CdnDistributionConfigBackendCredentialsPtrOutput) + }).(ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput) } -// The access key for the bucket. Required if type is 'bucket'. -func (o CdnDistributionConfigBackendCredentialsOutput) AccessKeyId() pulumi.StringOutput { - return o.ApplyT(func(v CdnDistributionConfigBackendCredentials) string { return v.AccessKeyId }).(pulumi.StringOutput) +// The name of the cookie to use. +func (o ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence) string { return v.Name }).(pulumi.StringOutput) } -// The access key for the bucket. Required if type is 'bucket'. -func (o CdnDistributionConfigBackendCredentialsOutput) SecretAccessKey() pulumi.StringOutput { - return o.ApplyT(func(v CdnDistributionConfigBackendCredentials) string { return v.SecretAccessKey }).(pulumi.StringOutput) +// 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. +func (o ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput) Ttl() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence) string { return v.Ttl }).(pulumi.StringOutput) } -type CdnDistributionConfigBackendCredentialsPtrOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput struct{ *pulumi.OutputState } -func (CdnDistributionConfigBackendCredentialsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**CdnDistributionConfigBackendCredentials)(nil)).Elem() +func (ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence)(nil)).Elem() } -func (o CdnDistributionConfigBackendCredentialsPtrOutput) ToCdnDistributionConfigBackendCredentialsPtrOutput() CdnDistributionConfigBackendCredentialsPtrOutput { +func (o ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput) ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput() ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput { return o } -func (o CdnDistributionConfigBackendCredentialsPtrOutput) ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsPtrOutput { +func (o ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput) ToApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput { return o } -func (o CdnDistributionConfigBackendCredentialsPtrOutput) Elem() CdnDistributionConfigBackendCredentialsOutput { - return o.ApplyT(func(v *CdnDistributionConfigBackendCredentials) CdnDistributionConfigBackendCredentials { +func (o ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput) Elem() ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence) ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence { if v != nil { return *v } - var ret CdnDistributionConfigBackendCredentials + var ret ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence return ret - }).(CdnDistributionConfigBackendCredentialsOutput) + }).(ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput) } -// The access key for the bucket. Required if type is 'bucket'. -func (o CdnDistributionConfigBackendCredentialsPtrOutput) AccessKeyId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *CdnDistributionConfigBackendCredentials) *string { +// The name of the cookie to use. +func (o ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence) *string { if v == nil { return nil } - return &v.AccessKeyId + return &v.Name }).(pulumi.StringPtrOutput) } -// The access key for the bucket. Required if type is 'bucket'. -func (o CdnDistributionConfigBackendCredentialsPtrOutput) SecretAccessKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v *CdnDistributionConfigBackendCredentials) *string { +// 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. +func (o ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput) Ttl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence) *string { if v == nil { return nil } - return &v.SecretAccessKey + return &v.Ttl }).(pulumi.StringPtrOutput) } -type CdnDistributionConfigOptimizer struct { - Enabled *bool `pulumi:"enabled"` +type ApplicationLoadBalancerListenerHttpHostRuleHeader struct { + // Exact match for the header value. + ExactMatch *string `pulumi:"exactMatch"` + // Header name. + Name string `pulumi:"name"` } -// CdnDistributionConfigOptimizerInput is an input type that accepts CdnDistributionConfigOptimizerArgs and CdnDistributionConfigOptimizerOutput values. -// You can construct a concrete instance of `CdnDistributionConfigOptimizerInput` via: +// ApplicationLoadBalancerListenerHttpHostRuleHeaderInput is an input type that accepts ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs and ApplicationLoadBalancerListenerHttpHostRuleHeaderOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerHttpHostRuleHeaderInput` via: // -// CdnDistributionConfigOptimizerArgs{...} -type CdnDistributionConfigOptimizerInput interface { +// ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs{...} +type ApplicationLoadBalancerListenerHttpHostRuleHeaderInput interface { pulumi.Input - ToCdnDistributionConfigOptimizerOutput() CdnDistributionConfigOptimizerOutput - ToCdnDistributionConfigOptimizerOutputWithContext(context.Context) CdnDistributionConfigOptimizerOutput + ToApplicationLoadBalancerListenerHttpHostRuleHeaderOutput() ApplicationLoadBalancerListenerHttpHostRuleHeaderOutput + ToApplicationLoadBalancerListenerHttpHostRuleHeaderOutputWithContext(context.Context) ApplicationLoadBalancerListenerHttpHostRuleHeaderOutput } -type CdnDistributionConfigOptimizerArgs struct { - Enabled pulumi.BoolPtrInput `pulumi:"enabled"` +type ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs struct { + // Exact match for the header value. + ExactMatch pulumi.StringPtrInput `pulumi:"exactMatch"` + // Header name. + Name pulumi.StringInput `pulumi:"name"` } -func (CdnDistributionConfigOptimizerArgs) ElementType() reflect.Type { - return reflect.TypeOf((*CdnDistributionConfigOptimizer)(nil)).Elem() +func (ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRuleHeader)(nil)).Elem() } -func (i CdnDistributionConfigOptimizerArgs) ToCdnDistributionConfigOptimizerOutput() CdnDistributionConfigOptimizerOutput { - return i.ToCdnDistributionConfigOptimizerOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs) ToApplicationLoadBalancerListenerHttpHostRuleHeaderOutput() ApplicationLoadBalancerListenerHttpHostRuleHeaderOutput { + return i.ToApplicationLoadBalancerListenerHttpHostRuleHeaderOutputWithContext(context.Background()) } -func (i CdnDistributionConfigOptimizerArgs) ToCdnDistributionConfigOptimizerOutputWithContext(ctx context.Context) CdnDistributionConfigOptimizerOutput { - return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigOptimizerOutput) +func (i ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs) ToApplicationLoadBalancerListenerHttpHostRuleHeaderOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleHeaderOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpHostRuleHeaderOutput) } -func (i CdnDistributionConfigOptimizerArgs) ToCdnDistributionConfigOptimizerPtrOutput() CdnDistributionConfigOptimizerPtrOutput { - return i.ToCdnDistributionConfigOptimizerPtrOutputWithContext(context.Background()) +// ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayInput is an input type that accepts ApplicationLoadBalancerListenerHttpHostRuleHeaderArray and ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayInput` via: +// +// ApplicationLoadBalancerListenerHttpHostRuleHeaderArray{ ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs{...} } +type ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayInput interface { + pulumi.Input + + ToApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput() ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput + ToApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutputWithContext(context.Context) ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput } -func (i CdnDistributionConfigOptimizerArgs) ToCdnDistributionConfigOptimizerPtrOutputWithContext(ctx context.Context) CdnDistributionConfigOptimizerPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigOptimizerOutput).ToCdnDistributionConfigOptimizerPtrOutputWithContext(ctx) +type ApplicationLoadBalancerListenerHttpHostRuleHeaderArray []ApplicationLoadBalancerListenerHttpHostRuleHeaderInput + +func (ApplicationLoadBalancerListenerHttpHostRuleHeaderArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerListenerHttpHostRuleHeader)(nil)).Elem() } -// CdnDistributionConfigOptimizerPtrInput is an input type that accepts CdnDistributionConfigOptimizerArgs, CdnDistributionConfigOptimizerPtr and CdnDistributionConfigOptimizerPtrOutput values. -// You can construct a concrete instance of `CdnDistributionConfigOptimizerPtrInput` via: +func (i ApplicationLoadBalancerListenerHttpHostRuleHeaderArray) ToApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput() ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput { + return i.ToApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutputWithContext(context.Background()) +} + +func (i ApplicationLoadBalancerListenerHttpHostRuleHeaderArray) ToApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput) +} + +type ApplicationLoadBalancerListenerHttpHostRuleHeaderOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerListenerHttpHostRuleHeaderOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRuleHeader)(nil)).Elem() +} + +func (o ApplicationLoadBalancerListenerHttpHostRuleHeaderOutput) ToApplicationLoadBalancerListenerHttpHostRuleHeaderOutput() ApplicationLoadBalancerListenerHttpHostRuleHeaderOutput { + return o +} + +func (o ApplicationLoadBalancerListenerHttpHostRuleHeaderOutput) ToApplicationLoadBalancerListenerHttpHostRuleHeaderOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleHeaderOutput { + return o +} + +// Exact match for the header value. +func (o ApplicationLoadBalancerListenerHttpHostRuleHeaderOutput) ExactMatch() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttpHostRuleHeader) *string { return v.ExactMatch }).(pulumi.StringPtrOutput) +} + +// Header name. +func (o ApplicationLoadBalancerListenerHttpHostRuleHeaderOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttpHostRuleHeader) string { return v.Name }).(pulumi.StringOutput) +} + +type ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerListenerHttpHostRuleHeader)(nil)).Elem() +} + +func (o ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput) ToApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput() ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput { + return o +} + +func (o ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput) ToApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput { + return o +} + +func (o ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput) Index(i pulumi.IntInput) ApplicationLoadBalancerListenerHttpHostRuleHeaderOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationLoadBalancerListenerHttpHostRuleHeader { + return vs[0].([]ApplicationLoadBalancerListenerHttpHostRuleHeader)[vs[1].(int)] + }).(ApplicationLoadBalancerListenerHttpHostRuleHeaderOutput) +} + +type ApplicationLoadBalancerListenerHttpHostRulePath struct { + // 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'. + ExactMatch *string `pulumi:"exactMatch"` + // Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. + Prefix *string `pulumi:"prefix"` +} + +// ApplicationLoadBalancerListenerHttpHostRulePathInput is an input type that accepts ApplicationLoadBalancerListenerHttpHostRulePathArgs and ApplicationLoadBalancerListenerHttpHostRulePathOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerHttpHostRulePathInput` via: // -// CdnDistributionConfigOptimizerArgs{...} +// ApplicationLoadBalancerListenerHttpHostRulePathArgs{...} +type ApplicationLoadBalancerListenerHttpHostRulePathInput interface { + pulumi.Input + + ToApplicationLoadBalancerListenerHttpHostRulePathOutput() ApplicationLoadBalancerListenerHttpHostRulePathOutput + ToApplicationLoadBalancerListenerHttpHostRulePathOutputWithContext(context.Context) ApplicationLoadBalancerListenerHttpHostRulePathOutput +} + +type ApplicationLoadBalancerListenerHttpHostRulePathArgs struct { + // 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'. + ExactMatch pulumi.StringPtrInput `pulumi:"exactMatch"` + // Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` +} + +func (ApplicationLoadBalancerListenerHttpHostRulePathArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRulePath)(nil)).Elem() +} + +func (i ApplicationLoadBalancerListenerHttpHostRulePathArgs) ToApplicationLoadBalancerListenerHttpHostRulePathOutput() ApplicationLoadBalancerListenerHttpHostRulePathOutput { + return i.ToApplicationLoadBalancerListenerHttpHostRulePathOutputWithContext(context.Background()) +} + +func (i ApplicationLoadBalancerListenerHttpHostRulePathArgs) ToApplicationLoadBalancerListenerHttpHostRulePathOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRulePathOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpHostRulePathOutput) +} + +func (i ApplicationLoadBalancerListenerHttpHostRulePathArgs) ToApplicationLoadBalancerListenerHttpHostRulePathPtrOutput() ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput { + return i.ToApplicationLoadBalancerListenerHttpHostRulePathPtrOutputWithContext(context.Background()) +} + +func (i ApplicationLoadBalancerListenerHttpHostRulePathArgs) ToApplicationLoadBalancerListenerHttpHostRulePathPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpHostRulePathOutput).ToApplicationLoadBalancerListenerHttpHostRulePathPtrOutputWithContext(ctx) +} + +// ApplicationLoadBalancerListenerHttpHostRulePathPtrInput is an input type that accepts ApplicationLoadBalancerListenerHttpHostRulePathArgs, ApplicationLoadBalancerListenerHttpHostRulePathPtr and ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerHttpHostRulePathPtrInput` via: +// +// ApplicationLoadBalancerListenerHttpHostRulePathArgs{...} // // or: // // nil -type CdnDistributionConfigOptimizerPtrInput interface { +type ApplicationLoadBalancerListenerHttpHostRulePathPtrInput interface { pulumi.Input - ToCdnDistributionConfigOptimizerPtrOutput() CdnDistributionConfigOptimizerPtrOutput - ToCdnDistributionConfigOptimizerPtrOutputWithContext(context.Context) CdnDistributionConfigOptimizerPtrOutput + ToApplicationLoadBalancerListenerHttpHostRulePathPtrOutput() ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput + ToApplicationLoadBalancerListenerHttpHostRulePathPtrOutputWithContext(context.Context) ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput } -type cdnDistributionConfigOptimizerPtrType CdnDistributionConfigOptimizerArgs +type applicationLoadBalancerListenerHttpHostRulePathPtrType ApplicationLoadBalancerListenerHttpHostRulePathArgs -func CdnDistributionConfigOptimizerPtr(v *CdnDistributionConfigOptimizerArgs) CdnDistributionConfigOptimizerPtrInput { - return (*cdnDistributionConfigOptimizerPtrType)(v) +func ApplicationLoadBalancerListenerHttpHostRulePathPtr(v *ApplicationLoadBalancerListenerHttpHostRulePathArgs) ApplicationLoadBalancerListenerHttpHostRulePathPtrInput { + return (*applicationLoadBalancerListenerHttpHostRulePathPtrType)(v) } -func (*cdnDistributionConfigOptimizerPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**CdnDistributionConfigOptimizer)(nil)).Elem() +func (*applicationLoadBalancerListenerHttpHostRulePathPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerListenerHttpHostRulePath)(nil)).Elem() } -func (i *cdnDistributionConfigOptimizerPtrType) ToCdnDistributionConfigOptimizerPtrOutput() CdnDistributionConfigOptimizerPtrOutput { - return i.ToCdnDistributionConfigOptimizerPtrOutputWithContext(context.Background()) +func (i *applicationLoadBalancerListenerHttpHostRulePathPtrType) ToApplicationLoadBalancerListenerHttpHostRulePathPtrOutput() ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput { + return i.ToApplicationLoadBalancerListenerHttpHostRulePathPtrOutputWithContext(context.Background()) } -func (i *cdnDistributionConfigOptimizerPtrType) ToCdnDistributionConfigOptimizerPtrOutputWithContext(ctx context.Context) CdnDistributionConfigOptimizerPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigOptimizerPtrOutput) +func (i *applicationLoadBalancerListenerHttpHostRulePathPtrType) ToApplicationLoadBalancerListenerHttpHostRulePathPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput) } -type CdnDistributionConfigOptimizerOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerListenerHttpHostRulePathOutput struct{ *pulumi.OutputState } -func (CdnDistributionConfigOptimizerOutput) ElementType() reflect.Type { - return reflect.TypeOf((*CdnDistributionConfigOptimizer)(nil)).Elem() +func (ApplicationLoadBalancerListenerHttpHostRulePathOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRulePath)(nil)).Elem() } -func (o CdnDistributionConfigOptimizerOutput) ToCdnDistributionConfigOptimizerOutput() CdnDistributionConfigOptimizerOutput { +func (o ApplicationLoadBalancerListenerHttpHostRulePathOutput) ToApplicationLoadBalancerListenerHttpHostRulePathOutput() ApplicationLoadBalancerListenerHttpHostRulePathOutput { return o } -func (o CdnDistributionConfigOptimizerOutput) ToCdnDistributionConfigOptimizerOutputWithContext(ctx context.Context) CdnDistributionConfigOptimizerOutput { +func (o ApplicationLoadBalancerListenerHttpHostRulePathOutput) ToApplicationLoadBalancerListenerHttpHostRulePathOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRulePathOutput { return o } -func (o CdnDistributionConfigOptimizerOutput) ToCdnDistributionConfigOptimizerPtrOutput() CdnDistributionConfigOptimizerPtrOutput { - return o.ToCdnDistributionConfigOptimizerPtrOutputWithContext(context.Background()) +func (o ApplicationLoadBalancerListenerHttpHostRulePathOutput) ToApplicationLoadBalancerListenerHttpHostRulePathPtrOutput() ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput { + return o.ToApplicationLoadBalancerListenerHttpHostRulePathPtrOutputWithContext(context.Background()) } -func (o CdnDistributionConfigOptimizerOutput) ToCdnDistributionConfigOptimizerPtrOutputWithContext(ctx context.Context) CdnDistributionConfigOptimizerPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v CdnDistributionConfigOptimizer) *CdnDistributionConfigOptimizer { +func (o ApplicationLoadBalancerListenerHttpHostRulePathOutput) ToApplicationLoadBalancerListenerHttpHostRulePathPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationLoadBalancerListenerHttpHostRulePath) *ApplicationLoadBalancerListenerHttpHostRulePath { return &v - }).(CdnDistributionConfigOptimizerPtrOutput) + }).(ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput) } -func (o CdnDistributionConfigOptimizerOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v CdnDistributionConfigOptimizer) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +// 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'. +func (o ApplicationLoadBalancerListenerHttpHostRulePathOutput) ExactMatch() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttpHostRulePath) *string { return v.ExactMatch }).(pulumi.StringPtrOutput) } -type CdnDistributionConfigOptimizerPtrOutput struct{ *pulumi.OutputState } +// Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. +func (o ApplicationLoadBalancerListenerHttpHostRulePathOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttpHostRulePath) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} -func (CdnDistributionConfigOptimizerPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**CdnDistributionConfigOptimizer)(nil)).Elem() +type ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerListenerHttpHostRulePath)(nil)).Elem() } -func (o CdnDistributionConfigOptimizerPtrOutput) ToCdnDistributionConfigOptimizerPtrOutput() CdnDistributionConfigOptimizerPtrOutput { +func (o ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput) ToApplicationLoadBalancerListenerHttpHostRulePathPtrOutput() ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput { return o } -func (o CdnDistributionConfigOptimizerPtrOutput) ToCdnDistributionConfigOptimizerPtrOutputWithContext(ctx context.Context) CdnDistributionConfigOptimizerPtrOutput { +func (o ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput) ToApplicationLoadBalancerListenerHttpHostRulePathPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput { return o } -func (o CdnDistributionConfigOptimizerPtrOutput) Elem() CdnDistributionConfigOptimizerOutput { - return o.ApplyT(func(v *CdnDistributionConfigOptimizer) CdnDistributionConfigOptimizer { +func (o ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput) Elem() ApplicationLoadBalancerListenerHttpHostRulePathOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerListenerHttpHostRulePath) ApplicationLoadBalancerListenerHttpHostRulePath { if v != nil { return *v } - var ret CdnDistributionConfigOptimizer + var ret ApplicationLoadBalancerListenerHttpHostRulePath return ret - }).(CdnDistributionConfigOptimizerOutput) + }).(ApplicationLoadBalancerListenerHttpHostRulePathOutput) } -func (o CdnDistributionConfigOptimizerPtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *CdnDistributionConfigOptimizer) *bool { +// 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'. +func (o ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput) ExactMatch() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerListenerHttpHostRulePath) *string { if v == nil { return nil } - return v.Enabled - }).(pulumi.BoolPtrOutput) + return v.ExactMatch + }).(pulumi.StringPtrOutput) } -type CdnDistributionDomain struct { - // List of domain errors - Errors []string `pulumi:"errors"` - // The name of the domain - Name *string `pulumi:"name"` - // The status of the domain - Status *string `pulumi:"status"` - // 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 - Type *string `pulumi:"type"` +// Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. +func (o ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerListenerHttpHostRulePath) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) } -// CdnDistributionDomainInput is an input type that accepts CdnDistributionDomainArgs and CdnDistributionDomainOutput values. -// You can construct a concrete instance of `CdnDistributionDomainInput` via: +type ApplicationLoadBalancerListenerHttpHostRuleQueryParameter struct { + // Exact match for the query parameters value. + ExactMatch *string `pulumi:"exactMatch"` + // Query parameter name. + Name string `pulumi:"name"` +} + +// ApplicationLoadBalancerListenerHttpHostRuleQueryParameterInput is an input type that accepts ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs and ApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerHttpHostRuleQueryParameterInput` via: // -// CdnDistributionDomainArgs{...} -type CdnDistributionDomainInput interface { +// ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs{...} +type ApplicationLoadBalancerListenerHttpHostRuleQueryParameterInput interface { pulumi.Input - ToCdnDistributionDomainOutput() CdnDistributionDomainOutput - ToCdnDistributionDomainOutputWithContext(context.Context) CdnDistributionDomainOutput + ToApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput() ApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput + ToApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutputWithContext(context.Context) ApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput } -type CdnDistributionDomainArgs struct { - // List of domain errors - Errors pulumi.StringArrayInput `pulumi:"errors"` - // The name of the domain - Name pulumi.StringPtrInput `pulumi:"name"` - // The status of the domain - Status pulumi.StringPtrInput `pulumi:"status"` - // 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 - Type pulumi.StringPtrInput `pulumi:"type"` +type ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs struct { + // Exact match for the query parameters value. + ExactMatch pulumi.StringPtrInput `pulumi:"exactMatch"` + // Query parameter name. + Name pulumi.StringInput `pulumi:"name"` } -func (CdnDistributionDomainArgs) ElementType() reflect.Type { - return reflect.TypeOf((*CdnDistributionDomain)(nil)).Elem() +func (ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRuleQueryParameter)(nil)).Elem() } -func (i CdnDistributionDomainArgs) ToCdnDistributionDomainOutput() CdnDistributionDomainOutput { - return i.ToCdnDistributionDomainOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs) ToApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput() ApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput { + return i.ToApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutputWithContext(context.Background()) } -func (i CdnDistributionDomainArgs) ToCdnDistributionDomainOutputWithContext(ctx context.Context) CdnDistributionDomainOutput { - return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionDomainOutput) +func (i ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs) ToApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput) } -// CdnDistributionDomainArrayInput is an input type that accepts CdnDistributionDomainArray and CdnDistributionDomainArrayOutput values. -// You can construct a concrete instance of `CdnDistributionDomainArrayInput` via: +// ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayInput is an input type that accepts ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArray and ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayInput` via: // -// CdnDistributionDomainArray{ CdnDistributionDomainArgs{...} } -type CdnDistributionDomainArrayInput interface { +// ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArray{ ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs{...} } +type ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayInput interface { pulumi.Input - ToCdnDistributionDomainArrayOutput() CdnDistributionDomainArrayOutput - ToCdnDistributionDomainArrayOutputWithContext(context.Context) CdnDistributionDomainArrayOutput + ToApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput() ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput + ToApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutputWithContext(context.Context) ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput } -type CdnDistributionDomainArray []CdnDistributionDomainInput +type ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArray []ApplicationLoadBalancerListenerHttpHostRuleQueryParameterInput -func (CdnDistributionDomainArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]CdnDistributionDomain)(nil)).Elem() +func (ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerListenerHttpHostRuleQueryParameter)(nil)).Elem() } -func (i CdnDistributionDomainArray) ToCdnDistributionDomainArrayOutput() CdnDistributionDomainArrayOutput { - return i.ToCdnDistributionDomainArrayOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArray) ToApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput() ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput { + return i.ToApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutputWithContext(context.Background()) } -func (i CdnDistributionDomainArray) ToCdnDistributionDomainArrayOutputWithContext(ctx context.Context) CdnDistributionDomainArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionDomainArrayOutput) +func (i ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArray) ToApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput) } -type CdnDistributionDomainOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput struct{ *pulumi.OutputState } -func (CdnDistributionDomainOutput) ElementType() reflect.Type { - return reflect.TypeOf((*CdnDistributionDomain)(nil)).Elem() +func (ApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRuleQueryParameter)(nil)).Elem() } -func (o CdnDistributionDomainOutput) ToCdnDistributionDomainOutput() CdnDistributionDomainOutput { +func (o ApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput) ToApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput() ApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput { return o } -func (o CdnDistributionDomainOutput) ToCdnDistributionDomainOutputWithContext(ctx context.Context) CdnDistributionDomainOutput { +func (o ApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput) ToApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput { return o } -// List of domain errors -func (o CdnDistributionDomainOutput) Errors() pulumi.StringArrayOutput { - return o.ApplyT(func(v CdnDistributionDomain) []string { return v.Errors }).(pulumi.StringArrayOutput) -} - -// The name of the domain -func (o CdnDistributionDomainOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v CdnDistributionDomain) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The status of the domain -func (o CdnDistributionDomainOutput) Status() pulumi.StringPtrOutput { - return o.ApplyT(func(v CdnDistributionDomain) *string { return v.Status }).(pulumi.StringPtrOutput) +// Exact match for the query parameters value. +func (o ApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput) ExactMatch() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttpHostRuleQueryParameter) *string { return v.ExactMatch }).(pulumi.StringPtrOutput) } -// 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 -func (o CdnDistributionDomainOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v CdnDistributionDomain) *string { return v.Type }).(pulumi.StringPtrOutput) +// Query parameter name. +func (o ApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttpHostRuleQueryParameter) string { return v.Name }).(pulumi.StringOutput) } -type CdnDistributionDomainArrayOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput struct{ *pulumi.OutputState } -func (CdnDistributionDomainArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]CdnDistributionDomain)(nil)).Elem() +func (ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerListenerHttpHostRuleQueryParameter)(nil)).Elem() } -func (o CdnDistributionDomainArrayOutput) ToCdnDistributionDomainArrayOutput() CdnDistributionDomainArrayOutput { +func (o ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput) ToApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput() ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput { return o } -func (o CdnDistributionDomainArrayOutput) ToCdnDistributionDomainArrayOutputWithContext(ctx context.Context) CdnDistributionDomainArrayOutput { +func (o ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput) ToApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput { return o } -func (o CdnDistributionDomainArrayOutput) Index(i pulumi.IntInput) CdnDistributionDomainOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) CdnDistributionDomain { - return vs[0].([]CdnDistributionDomain)[vs[1].(int)] - }).(CdnDistributionDomainOutput) +func (o ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput) Index(i pulumi.IntInput) ApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationLoadBalancerListenerHttpHostRuleQueryParameter { + return vs[0].([]ApplicationLoadBalancerListenerHttpHostRuleQueryParameter)[vs[1].(int)] + }).(ApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput) } -type ImageChecksum struct { - // Algorithm for the checksum of the image data. - Algorithm *string `pulumi:"algorithm"` - // Hexdigest of the checksum of the image data. - Digest *string `pulumi:"digest"` +type ApplicationLoadBalancerListenerHttps struct { + // TLS termination certificate configuration. + CertificateConfig ApplicationLoadBalancerListenerHttpsCertificateConfig `pulumi:"certificateConfig"` } -// ImageChecksumInput is an input type that accepts ImageChecksumArgs and ImageChecksumOutput values. -// You can construct a concrete instance of `ImageChecksumInput` via: +// ApplicationLoadBalancerListenerHttpsInput is an input type that accepts ApplicationLoadBalancerListenerHttpsArgs and ApplicationLoadBalancerListenerHttpsOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerHttpsInput` via: // -// ImageChecksumArgs{...} -type ImageChecksumInput interface { +// ApplicationLoadBalancerListenerHttpsArgs{...} +type ApplicationLoadBalancerListenerHttpsInput interface { pulumi.Input - ToImageChecksumOutput() ImageChecksumOutput - ToImageChecksumOutputWithContext(context.Context) ImageChecksumOutput + ToApplicationLoadBalancerListenerHttpsOutput() ApplicationLoadBalancerListenerHttpsOutput + ToApplicationLoadBalancerListenerHttpsOutputWithContext(context.Context) ApplicationLoadBalancerListenerHttpsOutput } -type ImageChecksumArgs struct { - // Algorithm for the checksum of the image data. - Algorithm pulumi.StringPtrInput `pulumi:"algorithm"` - // Hexdigest of the checksum of the image data. - Digest pulumi.StringPtrInput `pulumi:"digest"` +type ApplicationLoadBalancerListenerHttpsArgs struct { + // TLS termination certificate configuration. + CertificateConfig ApplicationLoadBalancerListenerHttpsCertificateConfigInput `pulumi:"certificateConfig"` } -func (ImageChecksumArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ImageChecksum)(nil)).Elem() +func (ApplicationLoadBalancerListenerHttpsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttps)(nil)).Elem() } -func (i ImageChecksumArgs) ToImageChecksumOutput() ImageChecksumOutput { - return i.ToImageChecksumOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerListenerHttpsArgs) ToApplicationLoadBalancerListenerHttpsOutput() ApplicationLoadBalancerListenerHttpsOutput { + return i.ToApplicationLoadBalancerListenerHttpsOutputWithContext(context.Background()) } -func (i ImageChecksumArgs) ToImageChecksumOutputWithContext(ctx context.Context) ImageChecksumOutput { - return pulumi.ToOutputWithContext(ctx, i).(ImageChecksumOutput) +func (i ApplicationLoadBalancerListenerHttpsArgs) ToApplicationLoadBalancerListenerHttpsOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpsOutput) } -func (i ImageChecksumArgs) ToImageChecksumPtrOutput() ImageChecksumPtrOutput { - return i.ToImageChecksumPtrOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerListenerHttpsArgs) ToApplicationLoadBalancerListenerHttpsPtrOutput() ApplicationLoadBalancerListenerHttpsPtrOutput { + return i.ToApplicationLoadBalancerListenerHttpsPtrOutputWithContext(context.Background()) } -func (i ImageChecksumArgs) ToImageChecksumPtrOutputWithContext(ctx context.Context) ImageChecksumPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ImageChecksumOutput).ToImageChecksumPtrOutputWithContext(ctx) +func (i ApplicationLoadBalancerListenerHttpsArgs) ToApplicationLoadBalancerListenerHttpsPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpsOutput).ToApplicationLoadBalancerListenerHttpsPtrOutputWithContext(ctx) } -// ImageChecksumPtrInput is an input type that accepts ImageChecksumArgs, ImageChecksumPtr and ImageChecksumPtrOutput values. -// You can construct a concrete instance of `ImageChecksumPtrInput` via: +// ApplicationLoadBalancerListenerHttpsPtrInput is an input type that accepts ApplicationLoadBalancerListenerHttpsArgs, ApplicationLoadBalancerListenerHttpsPtr and ApplicationLoadBalancerListenerHttpsPtrOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerHttpsPtrInput` via: // -// ImageChecksumArgs{...} +// ApplicationLoadBalancerListenerHttpsArgs{...} // // or: // // nil -type ImageChecksumPtrInput interface { +type ApplicationLoadBalancerListenerHttpsPtrInput interface { pulumi.Input - ToImageChecksumPtrOutput() ImageChecksumPtrOutput - ToImageChecksumPtrOutputWithContext(context.Context) ImageChecksumPtrOutput + ToApplicationLoadBalancerListenerHttpsPtrOutput() ApplicationLoadBalancerListenerHttpsPtrOutput + ToApplicationLoadBalancerListenerHttpsPtrOutputWithContext(context.Context) ApplicationLoadBalancerListenerHttpsPtrOutput } -type imageChecksumPtrType ImageChecksumArgs +type applicationLoadBalancerListenerHttpsPtrType ApplicationLoadBalancerListenerHttpsArgs -func ImageChecksumPtr(v *ImageChecksumArgs) ImageChecksumPtrInput { - return (*imageChecksumPtrType)(v) +func ApplicationLoadBalancerListenerHttpsPtr(v *ApplicationLoadBalancerListenerHttpsArgs) ApplicationLoadBalancerListenerHttpsPtrInput { + return (*applicationLoadBalancerListenerHttpsPtrType)(v) } -func (*imageChecksumPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ImageChecksum)(nil)).Elem() +func (*applicationLoadBalancerListenerHttpsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerListenerHttps)(nil)).Elem() } -func (i *imageChecksumPtrType) ToImageChecksumPtrOutput() ImageChecksumPtrOutput { - return i.ToImageChecksumPtrOutputWithContext(context.Background()) +func (i *applicationLoadBalancerListenerHttpsPtrType) ToApplicationLoadBalancerListenerHttpsPtrOutput() ApplicationLoadBalancerListenerHttpsPtrOutput { + return i.ToApplicationLoadBalancerListenerHttpsPtrOutputWithContext(context.Background()) } -func (i *imageChecksumPtrType) ToImageChecksumPtrOutputWithContext(ctx context.Context) ImageChecksumPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ImageChecksumPtrOutput) +func (i *applicationLoadBalancerListenerHttpsPtrType) ToApplicationLoadBalancerListenerHttpsPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpsPtrOutput) } -type ImageChecksumOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerListenerHttpsOutput struct{ *pulumi.OutputState } -func (ImageChecksumOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ImageChecksum)(nil)).Elem() +func (ApplicationLoadBalancerListenerHttpsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttps)(nil)).Elem() } -func (o ImageChecksumOutput) ToImageChecksumOutput() ImageChecksumOutput { +func (o ApplicationLoadBalancerListenerHttpsOutput) ToApplicationLoadBalancerListenerHttpsOutput() ApplicationLoadBalancerListenerHttpsOutput { return o } -func (o ImageChecksumOutput) ToImageChecksumOutputWithContext(ctx context.Context) ImageChecksumOutput { +func (o ApplicationLoadBalancerListenerHttpsOutput) ToApplicationLoadBalancerListenerHttpsOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpsOutput { return o } -func (o ImageChecksumOutput) ToImageChecksumPtrOutput() ImageChecksumPtrOutput { - return o.ToImageChecksumPtrOutputWithContext(context.Background()) +func (o ApplicationLoadBalancerListenerHttpsOutput) ToApplicationLoadBalancerListenerHttpsPtrOutput() ApplicationLoadBalancerListenerHttpsPtrOutput { + return o.ToApplicationLoadBalancerListenerHttpsPtrOutputWithContext(context.Background()) } -func (o ImageChecksumOutput) ToImageChecksumPtrOutputWithContext(ctx context.Context) ImageChecksumPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ImageChecksum) *ImageChecksum { +func (o ApplicationLoadBalancerListenerHttpsOutput) ToApplicationLoadBalancerListenerHttpsPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationLoadBalancerListenerHttps) *ApplicationLoadBalancerListenerHttps { return &v - }).(ImageChecksumPtrOutput) + }).(ApplicationLoadBalancerListenerHttpsPtrOutput) } -// Algorithm for the checksum of the image data. -func (o ImageChecksumOutput) Algorithm() pulumi.StringPtrOutput { - return o.ApplyT(func(v ImageChecksum) *string { return v.Algorithm }).(pulumi.StringPtrOutput) -} - -// Hexdigest of the checksum of the image data. -func (o ImageChecksumOutput) Digest() pulumi.StringPtrOutput { - return o.ApplyT(func(v ImageChecksum) *string { return v.Digest }).(pulumi.StringPtrOutput) +// TLS termination certificate configuration. +func (o ApplicationLoadBalancerListenerHttpsOutput) CertificateConfig() ApplicationLoadBalancerListenerHttpsCertificateConfigOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttps) ApplicationLoadBalancerListenerHttpsCertificateConfig { + return v.CertificateConfig + }).(ApplicationLoadBalancerListenerHttpsCertificateConfigOutput) } -type ImageChecksumPtrOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerListenerHttpsPtrOutput struct{ *pulumi.OutputState } -func (ImageChecksumPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ImageChecksum)(nil)).Elem() +func (ApplicationLoadBalancerListenerHttpsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerListenerHttps)(nil)).Elem() } -func (o ImageChecksumPtrOutput) ToImageChecksumPtrOutput() ImageChecksumPtrOutput { +func (o ApplicationLoadBalancerListenerHttpsPtrOutput) ToApplicationLoadBalancerListenerHttpsPtrOutput() ApplicationLoadBalancerListenerHttpsPtrOutput { return o } -func (o ImageChecksumPtrOutput) ToImageChecksumPtrOutputWithContext(ctx context.Context) ImageChecksumPtrOutput { +func (o ApplicationLoadBalancerListenerHttpsPtrOutput) ToApplicationLoadBalancerListenerHttpsPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpsPtrOutput { return o } -func (o ImageChecksumPtrOutput) Elem() ImageChecksumOutput { - return o.ApplyT(func(v *ImageChecksum) ImageChecksum { +func (o ApplicationLoadBalancerListenerHttpsPtrOutput) Elem() ApplicationLoadBalancerListenerHttpsOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerListenerHttps) ApplicationLoadBalancerListenerHttps { if v != nil { return *v } - var ret ImageChecksum + var ret ApplicationLoadBalancerListenerHttps return ret - }).(ImageChecksumOutput) -} - -// Algorithm for the checksum of the image data. -func (o ImageChecksumPtrOutput) Algorithm() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ImageChecksum) *string { - if v == nil { - return nil - } - return v.Algorithm - }).(pulumi.StringPtrOutput) + }).(ApplicationLoadBalancerListenerHttpsOutput) } -// Hexdigest of the checksum of the image data. -func (o ImageChecksumPtrOutput) Digest() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ImageChecksum) *string { +// TLS termination certificate configuration. +func (o ApplicationLoadBalancerListenerHttpsPtrOutput) CertificateConfig() ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerListenerHttps) *ApplicationLoadBalancerListenerHttpsCertificateConfig { if v == nil { return nil } - return v.Digest - }).(pulumi.StringPtrOutput) + return &v.CertificateConfig + }).(ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput) } -type ImageConfig struct { - // Enables the BIOS bootmenu. - BootMenu *bool `pulumi:"bootMenu"` - // Sets CDROM bus controller type. - CdromBus *string `pulumi:"cdromBus"` - // Sets Disk bus controller type. - DiskBus *string `pulumi:"diskBus"` - // Sets virtual network interface model. - NicModel *string `pulumi:"nicModel"` - // Enables operating system specific optimizations. - OperatingSystem *string `pulumi:"operatingSystem"` - // Operating system distribution. - OperatingSystemDistro *string `pulumi:"operatingSystemDistro"` - // Version of the operating system. - OperatingSystemVersion *string `pulumi:"operatingSystemVersion"` - // Sets the device bus when the image is used as a rescue image. - RescueBus *string `pulumi:"rescueBus"` - // Sets the device when the image is used as a rescue image. - RescueDevice *string `pulumi:"rescueDevice"` - // Enables Secure Boot. - SecureBoot *bool `pulumi:"secureBoot"` - // Enables UEFI boot. - Uefi *bool `pulumi:"uefi"` - // Sets Graphic device model. - VideoModel *string `pulumi:"videoModel"` - // Enables the use of VirtIO SCSI to provide block device access. By default instances use VirtIO Block. - VirtioScsi *bool `pulumi:"virtioScsi"` +type ApplicationLoadBalancerListenerHttpsCertificateConfig struct { + // Certificate IDs for TLS termination. + CertificateIds []string `pulumi:"certificateIds"` } -// ImageConfigInput is an input type that accepts ImageConfigArgs and ImageConfigOutput values. -// You can construct a concrete instance of `ImageConfigInput` via: +// ApplicationLoadBalancerListenerHttpsCertificateConfigInput is an input type that accepts ApplicationLoadBalancerListenerHttpsCertificateConfigArgs and ApplicationLoadBalancerListenerHttpsCertificateConfigOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerHttpsCertificateConfigInput` via: // -// ImageConfigArgs{...} -type ImageConfigInput interface { +// ApplicationLoadBalancerListenerHttpsCertificateConfigArgs{...} +type ApplicationLoadBalancerListenerHttpsCertificateConfigInput interface { pulumi.Input - ToImageConfigOutput() ImageConfigOutput - ToImageConfigOutputWithContext(context.Context) ImageConfigOutput + ToApplicationLoadBalancerListenerHttpsCertificateConfigOutput() ApplicationLoadBalancerListenerHttpsCertificateConfigOutput + ToApplicationLoadBalancerListenerHttpsCertificateConfigOutputWithContext(context.Context) ApplicationLoadBalancerListenerHttpsCertificateConfigOutput } -type ImageConfigArgs struct { - // Enables the BIOS bootmenu. - BootMenu pulumi.BoolPtrInput `pulumi:"bootMenu"` - // Sets CDROM bus controller type. - CdromBus pulumi.StringPtrInput `pulumi:"cdromBus"` - // Sets Disk bus controller type. - DiskBus pulumi.StringPtrInput `pulumi:"diskBus"` - // Sets virtual network interface model. - NicModel pulumi.StringPtrInput `pulumi:"nicModel"` - // Enables operating system specific optimizations. - OperatingSystem pulumi.StringPtrInput `pulumi:"operatingSystem"` - // Operating system distribution. - OperatingSystemDistro pulumi.StringPtrInput `pulumi:"operatingSystemDistro"` - // Version of the operating system. - OperatingSystemVersion pulumi.StringPtrInput `pulumi:"operatingSystemVersion"` - // Sets the device bus when the image is used as a rescue image. - RescueBus pulumi.StringPtrInput `pulumi:"rescueBus"` - // Sets the device when the image is used as a rescue image. - RescueDevice pulumi.StringPtrInput `pulumi:"rescueDevice"` - // Enables Secure Boot. - SecureBoot pulumi.BoolPtrInput `pulumi:"secureBoot"` - // Enables UEFI boot. - Uefi pulumi.BoolPtrInput `pulumi:"uefi"` - // Sets Graphic device model. - VideoModel pulumi.StringPtrInput `pulumi:"videoModel"` - // Enables the use of VirtIO SCSI to provide block device access. By default instances use VirtIO Block. - VirtioScsi pulumi.BoolPtrInput `pulumi:"virtioScsi"` +type ApplicationLoadBalancerListenerHttpsCertificateConfigArgs struct { + // Certificate IDs for TLS termination. + CertificateIds pulumi.StringArrayInput `pulumi:"certificateIds"` } -func (ImageConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ImageConfig)(nil)).Elem() +func (ApplicationLoadBalancerListenerHttpsCertificateConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttpsCertificateConfig)(nil)).Elem() } -func (i ImageConfigArgs) ToImageConfigOutput() ImageConfigOutput { - return i.ToImageConfigOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerListenerHttpsCertificateConfigArgs) ToApplicationLoadBalancerListenerHttpsCertificateConfigOutput() ApplicationLoadBalancerListenerHttpsCertificateConfigOutput { + return i.ToApplicationLoadBalancerListenerHttpsCertificateConfigOutputWithContext(context.Background()) } -func (i ImageConfigArgs) ToImageConfigOutputWithContext(ctx context.Context) ImageConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(ImageConfigOutput) +func (i ApplicationLoadBalancerListenerHttpsCertificateConfigArgs) ToApplicationLoadBalancerListenerHttpsCertificateConfigOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpsCertificateConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpsCertificateConfigOutput) } -func (i ImageConfigArgs) ToImageConfigPtrOutput() ImageConfigPtrOutput { - return i.ToImageConfigPtrOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerListenerHttpsCertificateConfigArgs) ToApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput() ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput { + return i.ToApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutputWithContext(context.Background()) } -func (i ImageConfigArgs) ToImageConfigPtrOutputWithContext(ctx context.Context) ImageConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ImageConfigOutput).ToImageConfigPtrOutputWithContext(ctx) +func (i ApplicationLoadBalancerListenerHttpsCertificateConfigArgs) ToApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpsCertificateConfigOutput).ToApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutputWithContext(ctx) } -// ImageConfigPtrInput is an input type that accepts ImageConfigArgs, ImageConfigPtr and ImageConfigPtrOutput values. -// You can construct a concrete instance of `ImageConfigPtrInput` via: +// ApplicationLoadBalancerListenerHttpsCertificateConfigPtrInput is an input type that accepts ApplicationLoadBalancerListenerHttpsCertificateConfigArgs, ApplicationLoadBalancerListenerHttpsCertificateConfigPtr and ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerListenerHttpsCertificateConfigPtrInput` via: // -// ImageConfigArgs{...} +// ApplicationLoadBalancerListenerHttpsCertificateConfigArgs{...} // // or: // // nil -type ImageConfigPtrInput interface { +type ApplicationLoadBalancerListenerHttpsCertificateConfigPtrInput interface { pulumi.Input - ToImageConfigPtrOutput() ImageConfigPtrOutput - ToImageConfigPtrOutputWithContext(context.Context) ImageConfigPtrOutput + ToApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput() ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput + ToApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutputWithContext(context.Context) ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput } -type imageConfigPtrType ImageConfigArgs +type applicationLoadBalancerListenerHttpsCertificateConfigPtrType ApplicationLoadBalancerListenerHttpsCertificateConfigArgs -func ImageConfigPtr(v *ImageConfigArgs) ImageConfigPtrInput { - return (*imageConfigPtrType)(v) +func ApplicationLoadBalancerListenerHttpsCertificateConfigPtr(v *ApplicationLoadBalancerListenerHttpsCertificateConfigArgs) ApplicationLoadBalancerListenerHttpsCertificateConfigPtrInput { + return (*applicationLoadBalancerListenerHttpsCertificateConfigPtrType)(v) } -func (*imageConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ImageConfig)(nil)).Elem() +func (*applicationLoadBalancerListenerHttpsCertificateConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerListenerHttpsCertificateConfig)(nil)).Elem() } -func (i *imageConfigPtrType) ToImageConfigPtrOutput() ImageConfigPtrOutput { - return i.ToImageConfigPtrOutputWithContext(context.Background()) +func (i *applicationLoadBalancerListenerHttpsCertificateConfigPtrType) ToApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput() ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput { + return i.ToApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutputWithContext(context.Background()) } -func (i *imageConfigPtrType) ToImageConfigPtrOutputWithContext(ctx context.Context) ImageConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ImageConfigPtrOutput) +func (i *applicationLoadBalancerListenerHttpsCertificateConfigPtrType) ToApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput) } -type ImageConfigOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerListenerHttpsCertificateConfigOutput struct{ *pulumi.OutputState } -func (ImageConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ImageConfig)(nil)).Elem() +func (ApplicationLoadBalancerListenerHttpsCertificateConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerListenerHttpsCertificateConfig)(nil)).Elem() } -func (o ImageConfigOutput) ToImageConfigOutput() ImageConfigOutput { +func (o ApplicationLoadBalancerListenerHttpsCertificateConfigOutput) ToApplicationLoadBalancerListenerHttpsCertificateConfigOutput() ApplicationLoadBalancerListenerHttpsCertificateConfigOutput { return o } -func (o ImageConfigOutput) ToImageConfigOutputWithContext(ctx context.Context) ImageConfigOutput { +func (o ApplicationLoadBalancerListenerHttpsCertificateConfigOutput) ToApplicationLoadBalancerListenerHttpsCertificateConfigOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpsCertificateConfigOutput { return o } -func (o ImageConfigOutput) ToImageConfigPtrOutput() ImageConfigPtrOutput { - return o.ToImageConfigPtrOutputWithContext(context.Background()) +func (o ApplicationLoadBalancerListenerHttpsCertificateConfigOutput) ToApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput() ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput { + return o.ToApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutputWithContext(context.Background()) } -func (o ImageConfigOutput) ToImageConfigPtrOutputWithContext(ctx context.Context) ImageConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ImageConfig) *ImageConfig { +func (o ApplicationLoadBalancerListenerHttpsCertificateConfigOutput) ToApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationLoadBalancerListenerHttpsCertificateConfig) *ApplicationLoadBalancerListenerHttpsCertificateConfig { return &v - }).(ImageConfigPtrOutput) + }).(ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput) } -// Enables the BIOS bootmenu. -func (o ImageConfigOutput) BootMenu() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ImageConfig) *bool { return v.BootMenu }).(pulumi.BoolPtrOutput) +// Certificate IDs for TLS termination. +func (o ApplicationLoadBalancerListenerHttpsCertificateConfigOutput) CertificateIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v ApplicationLoadBalancerListenerHttpsCertificateConfig) []string { return v.CertificateIds }).(pulumi.StringArrayOutput) } -// Sets CDROM bus controller type. -func (o ImageConfigOutput) CdromBus() pulumi.StringPtrOutput { - return o.ApplyT(func(v ImageConfig) *string { return v.CdromBus }).(pulumi.StringPtrOutput) +type ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerListenerHttpsCertificateConfig)(nil)).Elem() } -// Sets Disk bus controller type. -func (o ImageConfigOutput) DiskBus() pulumi.StringPtrOutput { - return o.ApplyT(func(v ImageConfig) *string { return v.DiskBus }).(pulumi.StringPtrOutput) +func (o ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput) ToApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput() ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput { + return o } -// Sets virtual network interface model. -func (o ImageConfigOutput) NicModel() pulumi.StringPtrOutput { - return o.ApplyT(func(v ImageConfig) *string { return v.NicModel }).(pulumi.StringPtrOutput) +func (o ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput) ToApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput { + return o } -// Enables operating system specific optimizations. -func (o ImageConfigOutput) OperatingSystem() pulumi.StringPtrOutput { - return o.ApplyT(func(v ImageConfig) *string { return v.OperatingSystem }).(pulumi.StringPtrOutput) +func (o ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput) Elem() ApplicationLoadBalancerListenerHttpsCertificateConfigOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerListenerHttpsCertificateConfig) ApplicationLoadBalancerListenerHttpsCertificateConfig { + if v != nil { + return *v + } + var ret ApplicationLoadBalancerListenerHttpsCertificateConfig + return ret + }).(ApplicationLoadBalancerListenerHttpsCertificateConfigOutput) } -// Operating system distribution. -func (o ImageConfigOutput) OperatingSystemDistro() pulumi.StringPtrOutput { - return o.ApplyT(func(v ImageConfig) *string { return v.OperatingSystemDistro }).(pulumi.StringPtrOutput) +// Certificate IDs for TLS termination. +func (o ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput) CertificateIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerListenerHttpsCertificateConfig) []string { + if v == nil { + return nil + } + return v.CertificateIds + }).(pulumi.StringArrayOutput) } -// Version of the operating system. -func (o ImageConfigOutput) OperatingSystemVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v ImageConfig) *string { return v.OperatingSystemVersion }).(pulumi.StringPtrOutput) +type ApplicationLoadBalancerLoadBalancerSecurityGroup struct { + // ID of the security Group + Id *string `pulumi:"id"` + // Name of the security Group + Name *string `pulumi:"name"` } -// Sets the device bus when the image is used as a rescue image. -func (o ImageConfigOutput) RescueBus() pulumi.StringPtrOutput { - return o.ApplyT(func(v ImageConfig) *string { return v.RescueBus }).(pulumi.StringPtrOutput) +// ApplicationLoadBalancerLoadBalancerSecurityGroupInput is an input type that accepts ApplicationLoadBalancerLoadBalancerSecurityGroupArgs and ApplicationLoadBalancerLoadBalancerSecurityGroupOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerLoadBalancerSecurityGroupInput` via: +// +// ApplicationLoadBalancerLoadBalancerSecurityGroupArgs{...} +type ApplicationLoadBalancerLoadBalancerSecurityGroupInput interface { + pulumi.Input + + ToApplicationLoadBalancerLoadBalancerSecurityGroupOutput() ApplicationLoadBalancerLoadBalancerSecurityGroupOutput + ToApplicationLoadBalancerLoadBalancerSecurityGroupOutputWithContext(context.Context) ApplicationLoadBalancerLoadBalancerSecurityGroupOutput } -// Sets the device when the image is used as a rescue image. -func (o ImageConfigOutput) RescueDevice() pulumi.StringPtrOutput { - return o.ApplyT(func(v ImageConfig) *string { return v.RescueDevice }).(pulumi.StringPtrOutput) +type ApplicationLoadBalancerLoadBalancerSecurityGroupArgs struct { + // ID of the security Group + Id pulumi.StringPtrInput `pulumi:"id"` + // Name of the security Group + Name pulumi.StringPtrInput `pulumi:"name"` } -// Enables Secure Boot. -func (o ImageConfigOutput) SecureBoot() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ImageConfig) *bool { return v.SecureBoot }).(pulumi.BoolPtrOutput) +func (ApplicationLoadBalancerLoadBalancerSecurityGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerLoadBalancerSecurityGroup)(nil)).Elem() } -// Enables UEFI boot. -func (o ImageConfigOutput) Uefi() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ImageConfig) *bool { return v.Uefi }).(pulumi.BoolPtrOutput) +func (i ApplicationLoadBalancerLoadBalancerSecurityGroupArgs) ToApplicationLoadBalancerLoadBalancerSecurityGroupOutput() ApplicationLoadBalancerLoadBalancerSecurityGroupOutput { + return i.ToApplicationLoadBalancerLoadBalancerSecurityGroupOutputWithContext(context.Background()) } -// Sets Graphic device model. -func (o ImageConfigOutput) VideoModel() pulumi.StringPtrOutput { - return o.ApplyT(func(v ImageConfig) *string { return v.VideoModel }).(pulumi.StringPtrOutput) +func (i ApplicationLoadBalancerLoadBalancerSecurityGroupArgs) ToApplicationLoadBalancerLoadBalancerSecurityGroupOutputWithContext(ctx context.Context) ApplicationLoadBalancerLoadBalancerSecurityGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerLoadBalancerSecurityGroupOutput) } -// Enables the use of VirtIO SCSI to provide block device access. By default instances use VirtIO Block. -func (o ImageConfigOutput) VirtioScsi() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ImageConfig) *bool { return v.VirtioScsi }).(pulumi.BoolPtrOutput) +func (i ApplicationLoadBalancerLoadBalancerSecurityGroupArgs) ToApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput() ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput { + return i.ToApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutputWithContext(context.Background()) } -type ImageConfigPtrOutput struct{ *pulumi.OutputState } +func (i ApplicationLoadBalancerLoadBalancerSecurityGroupArgs) ToApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerLoadBalancerSecurityGroupOutput).ToApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutputWithContext(ctx) +} -func (ImageConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ImageConfig)(nil)).Elem() +// ApplicationLoadBalancerLoadBalancerSecurityGroupPtrInput is an input type that accepts ApplicationLoadBalancerLoadBalancerSecurityGroupArgs, ApplicationLoadBalancerLoadBalancerSecurityGroupPtr and ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerLoadBalancerSecurityGroupPtrInput` via: +// +// ApplicationLoadBalancerLoadBalancerSecurityGroupArgs{...} +// +// or: +// +// nil +type ApplicationLoadBalancerLoadBalancerSecurityGroupPtrInput interface { + pulumi.Input + + ToApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput() ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput + ToApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutputWithContext(context.Context) ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput } -func (o ImageConfigPtrOutput) ToImageConfigPtrOutput() ImageConfigPtrOutput { +type applicationLoadBalancerLoadBalancerSecurityGroupPtrType ApplicationLoadBalancerLoadBalancerSecurityGroupArgs + +func ApplicationLoadBalancerLoadBalancerSecurityGroupPtr(v *ApplicationLoadBalancerLoadBalancerSecurityGroupArgs) ApplicationLoadBalancerLoadBalancerSecurityGroupPtrInput { + return (*applicationLoadBalancerLoadBalancerSecurityGroupPtrType)(v) +} + +func (*applicationLoadBalancerLoadBalancerSecurityGroupPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerLoadBalancerSecurityGroup)(nil)).Elem() +} + +func (i *applicationLoadBalancerLoadBalancerSecurityGroupPtrType) ToApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput() ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput { + return i.ToApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutputWithContext(context.Background()) +} + +func (i *applicationLoadBalancerLoadBalancerSecurityGroupPtrType) ToApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput) +} + +type ApplicationLoadBalancerLoadBalancerSecurityGroupOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerLoadBalancerSecurityGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerLoadBalancerSecurityGroup)(nil)).Elem() +} + +func (o ApplicationLoadBalancerLoadBalancerSecurityGroupOutput) ToApplicationLoadBalancerLoadBalancerSecurityGroupOutput() ApplicationLoadBalancerLoadBalancerSecurityGroupOutput { return o } -func (o ImageConfigPtrOutput) ToImageConfigPtrOutputWithContext(ctx context.Context) ImageConfigPtrOutput { +func (o ApplicationLoadBalancerLoadBalancerSecurityGroupOutput) ToApplicationLoadBalancerLoadBalancerSecurityGroupOutputWithContext(ctx context.Context) ApplicationLoadBalancerLoadBalancerSecurityGroupOutput { return o } -func (o ImageConfigPtrOutput) Elem() ImageConfigOutput { - return o.ApplyT(func(v *ImageConfig) ImageConfig { +func (o ApplicationLoadBalancerLoadBalancerSecurityGroupOutput) ToApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput() ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput { + return o.ToApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutputWithContext(context.Background()) +} + +func (o ApplicationLoadBalancerLoadBalancerSecurityGroupOutput) ToApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationLoadBalancerLoadBalancerSecurityGroup) *ApplicationLoadBalancerLoadBalancerSecurityGroup { + return &v + }).(ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput) +} + +// ID of the security Group +func (o ApplicationLoadBalancerLoadBalancerSecurityGroupOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerLoadBalancerSecurityGroup) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Name of the security Group +func (o ApplicationLoadBalancerLoadBalancerSecurityGroupOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerLoadBalancerSecurityGroup) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +type ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerLoadBalancerSecurityGroup)(nil)).Elem() +} + +func (o ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput) ToApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput() ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput { + return o +} + +func (o ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput) ToApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput { + return o +} + +func (o ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput) Elem() ApplicationLoadBalancerLoadBalancerSecurityGroupOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerLoadBalancerSecurityGroup) ApplicationLoadBalancerLoadBalancerSecurityGroup { if v != nil { return *v } - var ret ImageConfig + var ret ApplicationLoadBalancerLoadBalancerSecurityGroup return ret - }).(ImageConfigOutput) + }).(ApplicationLoadBalancerLoadBalancerSecurityGroupOutput) } -// Enables the BIOS bootmenu. -func (o ImageConfigPtrOutput) BootMenu() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ImageConfig) *bool { - if v == nil { - return nil - } - return v.BootMenu - }).(pulumi.BoolPtrOutput) -} - -// Sets CDROM bus controller type. -func (o ImageConfigPtrOutput) CdromBus() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ImageConfig) *string { +// ID of the security Group +func (o ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerLoadBalancerSecurityGroup) *string { if v == nil { return nil } - return v.CdromBus + return v.Id }).(pulumi.StringPtrOutput) } -// Sets Disk bus controller type. -func (o ImageConfigPtrOutput) DiskBus() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ImageConfig) *string { +// Name of the security Group +func (o ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerLoadBalancerSecurityGroup) *string { if v == nil { return nil } - return v.DiskBus + return v.Name }).(pulumi.StringPtrOutput) } -// Sets virtual network interface model. -func (o ImageConfigPtrOutput) NicModel() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ImageConfig) *string { - if v == nil { - return nil - } - return v.NicModel - }).(pulumi.StringPtrOutput) +type ApplicationLoadBalancerNetwork struct { + // STACKIT network ID the Application Load Balancer and/or targets are in. + NetworkId string `pulumi:"networkId"` + // 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`. + Role string `pulumi:"role"` } -// Enables operating system specific optimizations. -func (o ImageConfigPtrOutput) OperatingSystem() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ImageConfig) *string { - if v == nil { - return nil - } - return v.OperatingSystem - }).(pulumi.StringPtrOutput) -} +// ApplicationLoadBalancerNetworkInput is an input type that accepts ApplicationLoadBalancerNetworkArgs and ApplicationLoadBalancerNetworkOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerNetworkInput` via: +// +// ApplicationLoadBalancerNetworkArgs{...} +type ApplicationLoadBalancerNetworkInput interface { + pulumi.Input -// Operating system distribution. -func (o ImageConfigPtrOutput) OperatingSystemDistro() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ImageConfig) *string { - if v == nil { - return nil - } - return v.OperatingSystemDistro - }).(pulumi.StringPtrOutput) + ToApplicationLoadBalancerNetworkOutput() ApplicationLoadBalancerNetworkOutput + ToApplicationLoadBalancerNetworkOutputWithContext(context.Context) ApplicationLoadBalancerNetworkOutput } -// Version of the operating system. -func (o ImageConfigPtrOutput) OperatingSystemVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ImageConfig) *string { - if v == nil { - return nil - } - return v.OperatingSystemVersion - }).(pulumi.StringPtrOutput) +type ApplicationLoadBalancerNetworkArgs struct { + // STACKIT network ID the Application Load Balancer and/or targets are in. + NetworkId pulumi.StringInput `pulumi:"networkId"` + // 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`. + Role pulumi.StringInput `pulumi:"role"` } -// Sets the device bus when the image is used as a rescue image. -func (o ImageConfigPtrOutput) RescueBus() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ImageConfig) *string { - if v == nil { - return nil - } - return v.RescueBus - }).(pulumi.StringPtrOutput) +func (ApplicationLoadBalancerNetworkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerNetwork)(nil)).Elem() } -// Sets the device when the image is used as a rescue image. -func (o ImageConfigPtrOutput) RescueDevice() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ImageConfig) *string { - if v == nil { - return nil - } - return v.RescueDevice - }).(pulumi.StringPtrOutput) +func (i ApplicationLoadBalancerNetworkArgs) ToApplicationLoadBalancerNetworkOutput() ApplicationLoadBalancerNetworkOutput { + return i.ToApplicationLoadBalancerNetworkOutputWithContext(context.Background()) } -// Enables Secure Boot. -func (o ImageConfigPtrOutput) SecureBoot() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ImageConfig) *bool { - if v == nil { - return nil - } - return v.SecureBoot - }).(pulumi.BoolPtrOutput) +func (i ApplicationLoadBalancerNetworkArgs) ToApplicationLoadBalancerNetworkOutputWithContext(ctx context.Context) ApplicationLoadBalancerNetworkOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerNetworkOutput) } -// Enables UEFI boot. -func (o ImageConfigPtrOutput) Uefi() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ImageConfig) *bool { - if v == nil { - return nil - } - return v.Uefi - }).(pulumi.BoolPtrOutput) +// ApplicationLoadBalancerNetworkArrayInput is an input type that accepts ApplicationLoadBalancerNetworkArray and ApplicationLoadBalancerNetworkArrayOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerNetworkArrayInput` via: +// +// ApplicationLoadBalancerNetworkArray{ ApplicationLoadBalancerNetworkArgs{...} } +type ApplicationLoadBalancerNetworkArrayInput interface { + pulumi.Input + + ToApplicationLoadBalancerNetworkArrayOutput() ApplicationLoadBalancerNetworkArrayOutput + ToApplicationLoadBalancerNetworkArrayOutputWithContext(context.Context) ApplicationLoadBalancerNetworkArrayOutput } -// Sets Graphic device model. -func (o ImageConfigPtrOutput) VideoModel() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ImageConfig) *string { - if v == nil { - return nil - } - return v.VideoModel - }).(pulumi.StringPtrOutput) +type ApplicationLoadBalancerNetworkArray []ApplicationLoadBalancerNetworkInput + +func (ApplicationLoadBalancerNetworkArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerNetwork)(nil)).Elem() } -// Enables the use of VirtIO SCSI to provide block device access. By default instances use VirtIO Block. -func (o ImageConfigPtrOutput) VirtioScsi() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ImageConfig) *bool { - if v == nil { - return nil - } - return v.VirtioScsi - }).(pulumi.BoolPtrOutput) +func (i ApplicationLoadBalancerNetworkArray) ToApplicationLoadBalancerNetworkArrayOutput() ApplicationLoadBalancerNetworkArrayOutput { + return i.ToApplicationLoadBalancerNetworkArrayOutputWithContext(context.Background()) } -type LoadbalancerListener struct { - DisplayName *string `pulumi:"displayName"` - // Port number where we listen for traffic. - Port int `pulumi:"port"` - // 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`. - Protocol string `pulumi:"protocol"` - // A list of domain names to match in order to pass TLS traffic to the target pool in the current listener - ServerNameIndicators []LoadbalancerListenerServerNameIndicator `pulumi:"serverNameIndicators"` - // Reference target pool by target pool name. - TargetPool string `pulumi:"targetPool"` - // Options that are specific to the TCP protocol. - Tcp *LoadbalancerListenerTcp `pulumi:"tcp"` - // Options that are specific to the UDP protocol. - Udp *LoadbalancerListenerUdp `pulumi:"udp"` +func (i ApplicationLoadBalancerNetworkArray) ToApplicationLoadBalancerNetworkArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerNetworkArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerNetworkArrayOutput) } -// LoadbalancerListenerInput is an input type that accepts LoadbalancerListenerArgs and LoadbalancerListenerOutput values. -// You can construct a concrete instance of `LoadbalancerListenerInput` via: -// -// LoadbalancerListenerArgs{...} -type LoadbalancerListenerInput interface { - pulumi.Input +type ApplicationLoadBalancerNetworkOutput struct{ *pulumi.OutputState } - ToLoadbalancerListenerOutput() LoadbalancerListenerOutput - ToLoadbalancerListenerOutputWithContext(context.Context) LoadbalancerListenerOutput +func (ApplicationLoadBalancerNetworkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerNetwork)(nil)).Elem() } -type LoadbalancerListenerArgs struct { - DisplayName pulumi.StringPtrInput `pulumi:"displayName"` - // Port number where we listen for traffic. - Port pulumi.IntInput `pulumi:"port"` - // 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`. - Protocol pulumi.StringInput `pulumi:"protocol"` - // A list of domain names to match in order to pass TLS traffic to the target pool in the current listener - ServerNameIndicators LoadbalancerListenerServerNameIndicatorArrayInput `pulumi:"serverNameIndicators"` - // Reference target pool by target pool name. - TargetPool pulumi.StringInput `pulumi:"targetPool"` - // Options that are specific to the TCP protocol. - Tcp LoadbalancerListenerTcpPtrInput `pulumi:"tcp"` - // Options that are specific to the UDP protocol. - Udp LoadbalancerListenerUdpPtrInput `pulumi:"udp"` +func (o ApplicationLoadBalancerNetworkOutput) ToApplicationLoadBalancerNetworkOutput() ApplicationLoadBalancerNetworkOutput { + return o } -func (LoadbalancerListenerArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerListener)(nil)).Elem() +func (o ApplicationLoadBalancerNetworkOutput) ToApplicationLoadBalancerNetworkOutputWithContext(ctx context.Context) ApplicationLoadBalancerNetworkOutput { + return o } -func (i LoadbalancerListenerArgs) ToLoadbalancerListenerOutput() LoadbalancerListenerOutput { - return i.ToLoadbalancerListenerOutputWithContext(context.Background()) +// STACKIT network ID the Application Load Balancer and/or targets are in. +func (o ApplicationLoadBalancerNetworkOutput) NetworkId() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerNetwork) string { return v.NetworkId }).(pulumi.StringOutput) } -func (i LoadbalancerListenerArgs) ToLoadbalancerListenerOutputWithContext(ctx context.Context) LoadbalancerListenerOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerOutput) +// 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`. +func (o ApplicationLoadBalancerNetworkOutput) Role() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerNetwork) string { return v.Role }).(pulumi.StringOutput) } -// LoadbalancerListenerArrayInput is an input type that accepts LoadbalancerListenerArray and LoadbalancerListenerArrayOutput values. -// You can construct a concrete instance of `LoadbalancerListenerArrayInput` via: -// -// LoadbalancerListenerArray{ LoadbalancerListenerArgs{...} } -type LoadbalancerListenerArrayInput interface { - pulumi.Input +type ApplicationLoadBalancerNetworkArrayOutput struct{ *pulumi.OutputState } - ToLoadbalancerListenerArrayOutput() LoadbalancerListenerArrayOutput - ToLoadbalancerListenerArrayOutputWithContext(context.Context) LoadbalancerListenerArrayOutput +func (ApplicationLoadBalancerNetworkArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerNetwork)(nil)).Elem() } -type LoadbalancerListenerArray []LoadbalancerListenerInput +func (o ApplicationLoadBalancerNetworkArrayOutput) ToApplicationLoadBalancerNetworkArrayOutput() ApplicationLoadBalancerNetworkArrayOutput { + return o +} -func (LoadbalancerListenerArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]LoadbalancerListener)(nil)).Elem() +func (o ApplicationLoadBalancerNetworkArrayOutput) ToApplicationLoadBalancerNetworkArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerNetworkArrayOutput { + return o } -func (i LoadbalancerListenerArray) ToLoadbalancerListenerArrayOutput() LoadbalancerListenerArrayOutput { - return i.ToLoadbalancerListenerArrayOutputWithContext(context.Background()) +func (o ApplicationLoadBalancerNetworkArrayOutput) Index(i pulumi.IntInput) ApplicationLoadBalancerNetworkOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationLoadBalancerNetwork { + return vs[0].([]ApplicationLoadBalancerNetwork)[vs[1].(int)] + }).(ApplicationLoadBalancerNetworkOutput) } -func (i LoadbalancerListenerArray) ToLoadbalancerListenerArrayOutputWithContext(ctx context.Context) LoadbalancerListenerArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerArrayOutput) +type ApplicationLoadBalancerOptions struct { + // Use this option to limit the IP ranges that can use the Application Load Balancer. + AccessControl *ApplicationLoadBalancerOptionsAccessControl `pulumi:"accessControl"` + // 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. + EphemeralAddress *bool `pulumi:"ephemeralAddress"` + // We offer Load Balancer observability via STACKIT Observability or external solutions. + Observability *ApplicationLoadBalancerOptionsObservability `pulumi:"observability"` + // Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. + PrivateNetworkOnly *bool `pulumi:"privateNetworkOnly"` } -type LoadbalancerListenerOutput struct{ *pulumi.OutputState } +// ApplicationLoadBalancerOptionsInput is an input type that accepts ApplicationLoadBalancerOptionsArgs and ApplicationLoadBalancerOptionsOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerOptionsInput` via: +// +// ApplicationLoadBalancerOptionsArgs{...} +type ApplicationLoadBalancerOptionsInput interface { + pulumi.Input -func (LoadbalancerListenerOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerListener)(nil)).Elem() + ToApplicationLoadBalancerOptionsOutput() ApplicationLoadBalancerOptionsOutput + ToApplicationLoadBalancerOptionsOutputWithContext(context.Context) ApplicationLoadBalancerOptionsOutput } -func (o LoadbalancerListenerOutput) ToLoadbalancerListenerOutput() LoadbalancerListenerOutput { - return o +type ApplicationLoadBalancerOptionsArgs struct { + // Use this option to limit the IP ranges that can use the Application Load Balancer. + AccessControl ApplicationLoadBalancerOptionsAccessControlPtrInput `pulumi:"accessControl"` + // 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. + EphemeralAddress pulumi.BoolPtrInput `pulumi:"ephemeralAddress"` + // We offer Load Balancer observability via STACKIT Observability or external solutions. + Observability ApplicationLoadBalancerOptionsObservabilityPtrInput `pulumi:"observability"` + // Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. + PrivateNetworkOnly pulumi.BoolPtrInput `pulumi:"privateNetworkOnly"` } -func (o LoadbalancerListenerOutput) ToLoadbalancerListenerOutputWithContext(ctx context.Context) LoadbalancerListenerOutput { - return o +func (ApplicationLoadBalancerOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerOptions)(nil)).Elem() } -func (o LoadbalancerListenerOutput) DisplayName() pulumi.StringPtrOutput { - return o.ApplyT(func(v LoadbalancerListener) *string { return v.DisplayName }).(pulumi.StringPtrOutput) +func (i ApplicationLoadBalancerOptionsArgs) ToApplicationLoadBalancerOptionsOutput() ApplicationLoadBalancerOptionsOutput { + return i.ToApplicationLoadBalancerOptionsOutputWithContext(context.Background()) } -// Port number where we listen for traffic. -func (o LoadbalancerListenerOutput) Port() pulumi.IntOutput { - return o.ApplyT(func(v LoadbalancerListener) int { return v.Port }).(pulumi.IntOutput) +func (i ApplicationLoadBalancerOptionsArgs) ToApplicationLoadBalancerOptionsOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerOptionsOutput) } -// 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`. -func (o LoadbalancerListenerOutput) Protocol() pulumi.StringOutput { - return o.ApplyT(func(v LoadbalancerListener) string { return v.Protocol }).(pulumi.StringOutput) +func (i ApplicationLoadBalancerOptionsArgs) ToApplicationLoadBalancerOptionsPtrOutput() ApplicationLoadBalancerOptionsPtrOutput { + return i.ToApplicationLoadBalancerOptionsPtrOutputWithContext(context.Background()) } -// A list of domain names to match in order to pass TLS traffic to the target pool in the current listener -func (o LoadbalancerListenerOutput) ServerNameIndicators() LoadbalancerListenerServerNameIndicatorArrayOutput { - return o.ApplyT(func(v LoadbalancerListener) []LoadbalancerListenerServerNameIndicator { return v.ServerNameIndicators }).(LoadbalancerListenerServerNameIndicatorArrayOutput) +func (i ApplicationLoadBalancerOptionsArgs) ToApplicationLoadBalancerOptionsPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerOptionsOutput).ToApplicationLoadBalancerOptionsPtrOutputWithContext(ctx) } -// Reference target pool by target pool name. -func (o LoadbalancerListenerOutput) TargetPool() pulumi.StringOutput { - return o.ApplyT(func(v LoadbalancerListener) string { return v.TargetPool }).(pulumi.StringOutput) +// ApplicationLoadBalancerOptionsPtrInput is an input type that accepts ApplicationLoadBalancerOptionsArgs, ApplicationLoadBalancerOptionsPtr and ApplicationLoadBalancerOptionsPtrOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerOptionsPtrInput` via: +// +// ApplicationLoadBalancerOptionsArgs{...} +// +// or: +// +// nil +type ApplicationLoadBalancerOptionsPtrInput interface { + pulumi.Input + + ToApplicationLoadBalancerOptionsPtrOutput() ApplicationLoadBalancerOptionsPtrOutput + ToApplicationLoadBalancerOptionsPtrOutputWithContext(context.Context) ApplicationLoadBalancerOptionsPtrOutput } -// Options that are specific to the TCP protocol. -func (o LoadbalancerListenerOutput) Tcp() LoadbalancerListenerTcpPtrOutput { - return o.ApplyT(func(v LoadbalancerListener) *LoadbalancerListenerTcp { return v.Tcp }).(LoadbalancerListenerTcpPtrOutput) +type applicationLoadBalancerOptionsPtrType ApplicationLoadBalancerOptionsArgs + +func ApplicationLoadBalancerOptionsPtr(v *ApplicationLoadBalancerOptionsArgs) ApplicationLoadBalancerOptionsPtrInput { + return (*applicationLoadBalancerOptionsPtrType)(v) } -// Options that are specific to the UDP protocol. -func (o LoadbalancerListenerOutput) Udp() LoadbalancerListenerUdpPtrOutput { - return o.ApplyT(func(v LoadbalancerListener) *LoadbalancerListenerUdp { return v.Udp }).(LoadbalancerListenerUdpPtrOutput) +func (*applicationLoadBalancerOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerOptions)(nil)).Elem() } -type LoadbalancerListenerArrayOutput struct{ *pulumi.OutputState } +func (i *applicationLoadBalancerOptionsPtrType) ToApplicationLoadBalancerOptionsPtrOutput() ApplicationLoadBalancerOptionsPtrOutput { + return i.ToApplicationLoadBalancerOptionsPtrOutputWithContext(context.Background()) +} -func (LoadbalancerListenerArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]LoadbalancerListener)(nil)).Elem() +func (i *applicationLoadBalancerOptionsPtrType) ToApplicationLoadBalancerOptionsPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerOptionsPtrOutput) } -func (o LoadbalancerListenerArrayOutput) ToLoadbalancerListenerArrayOutput() LoadbalancerListenerArrayOutput { - return o +type ApplicationLoadBalancerOptionsOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerOptions)(nil)).Elem() } -func (o LoadbalancerListenerArrayOutput) ToLoadbalancerListenerArrayOutputWithContext(ctx context.Context) LoadbalancerListenerArrayOutput { +func (o ApplicationLoadBalancerOptionsOutput) ToApplicationLoadBalancerOptionsOutput() ApplicationLoadBalancerOptionsOutput { return o } -func (o LoadbalancerListenerArrayOutput) Index(i pulumi.IntInput) LoadbalancerListenerOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) LoadbalancerListener { - return vs[0].([]LoadbalancerListener)[vs[1].(int)] - }).(LoadbalancerListenerOutput) +func (o ApplicationLoadBalancerOptionsOutput) ToApplicationLoadBalancerOptionsOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsOutput { + return o } -type LoadbalancerListenerServerNameIndicator struct { - // A domain name to match in order to pass TLS traffic to the target pool in the current listener - Name *string `pulumi:"name"` +func (o ApplicationLoadBalancerOptionsOutput) ToApplicationLoadBalancerOptionsPtrOutput() ApplicationLoadBalancerOptionsPtrOutput { + return o.ToApplicationLoadBalancerOptionsPtrOutputWithContext(context.Background()) } -// LoadbalancerListenerServerNameIndicatorInput is an input type that accepts LoadbalancerListenerServerNameIndicatorArgs and LoadbalancerListenerServerNameIndicatorOutput values. -// You can construct a concrete instance of `LoadbalancerListenerServerNameIndicatorInput` via: -// -// LoadbalancerListenerServerNameIndicatorArgs{...} -type LoadbalancerListenerServerNameIndicatorInput interface { - pulumi.Input - - ToLoadbalancerListenerServerNameIndicatorOutput() LoadbalancerListenerServerNameIndicatorOutput - ToLoadbalancerListenerServerNameIndicatorOutputWithContext(context.Context) LoadbalancerListenerServerNameIndicatorOutput +func (o ApplicationLoadBalancerOptionsOutput) ToApplicationLoadBalancerOptionsPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationLoadBalancerOptions) *ApplicationLoadBalancerOptions { + return &v + }).(ApplicationLoadBalancerOptionsPtrOutput) } -type LoadbalancerListenerServerNameIndicatorArgs struct { - // A domain name to match in order to pass TLS traffic to the target pool in the current listener - Name pulumi.StringPtrInput `pulumi:"name"` +// Use this option to limit the IP ranges that can use the Application Load Balancer. +func (o ApplicationLoadBalancerOptionsOutput) AccessControl() ApplicationLoadBalancerOptionsAccessControlPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerOptions) *ApplicationLoadBalancerOptionsAccessControl { + return v.AccessControl + }).(ApplicationLoadBalancerOptionsAccessControlPtrOutput) } -func (LoadbalancerListenerServerNameIndicatorArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerListenerServerNameIndicator)(nil)).Elem() +// 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. +func (o ApplicationLoadBalancerOptionsOutput) EphemeralAddress() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerOptions) *bool { return v.EphemeralAddress }).(pulumi.BoolPtrOutput) } -func (i LoadbalancerListenerServerNameIndicatorArgs) ToLoadbalancerListenerServerNameIndicatorOutput() LoadbalancerListenerServerNameIndicatorOutput { - return i.ToLoadbalancerListenerServerNameIndicatorOutputWithContext(context.Background()) +// We offer Load Balancer observability via STACKIT Observability or external solutions. +func (o ApplicationLoadBalancerOptionsOutput) Observability() ApplicationLoadBalancerOptionsObservabilityPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerOptions) *ApplicationLoadBalancerOptionsObservability { + return v.Observability + }).(ApplicationLoadBalancerOptionsObservabilityPtrOutput) } -func (i LoadbalancerListenerServerNameIndicatorArgs) ToLoadbalancerListenerServerNameIndicatorOutputWithContext(ctx context.Context) LoadbalancerListenerServerNameIndicatorOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerServerNameIndicatorOutput) +// Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. +func (o ApplicationLoadBalancerOptionsOutput) PrivateNetworkOnly() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerOptions) *bool { return v.PrivateNetworkOnly }).(pulumi.BoolPtrOutput) } -// LoadbalancerListenerServerNameIndicatorArrayInput is an input type that accepts LoadbalancerListenerServerNameIndicatorArray and LoadbalancerListenerServerNameIndicatorArrayOutput values. -// You can construct a concrete instance of `LoadbalancerListenerServerNameIndicatorArrayInput` via: -// -// LoadbalancerListenerServerNameIndicatorArray{ LoadbalancerListenerServerNameIndicatorArgs{...} } -type LoadbalancerListenerServerNameIndicatorArrayInput interface { - pulumi.Input +type ApplicationLoadBalancerOptionsPtrOutput struct{ *pulumi.OutputState } - ToLoadbalancerListenerServerNameIndicatorArrayOutput() LoadbalancerListenerServerNameIndicatorArrayOutput - ToLoadbalancerListenerServerNameIndicatorArrayOutputWithContext(context.Context) LoadbalancerListenerServerNameIndicatorArrayOutput +func (ApplicationLoadBalancerOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerOptions)(nil)).Elem() } -type LoadbalancerListenerServerNameIndicatorArray []LoadbalancerListenerServerNameIndicatorInput - -func (LoadbalancerListenerServerNameIndicatorArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]LoadbalancerListenerServerNameIndicator)(nil)).Elem() -} - -func (i LoadbalancerListenerServerNameIndicatorArray) ToLoadbalancerListenerServerNameIndicatorArrayOutput() LoadbalancerListenerServerNameIndicatorArrayOutput { - return i.ToLoadbalancerListenerServerNameIndicatorArrayOutputWithContext(context.Background()) -} - -func (i LoadbalancerListenerServerNameIndicatorArray) ToLoadbalancerListenerServerNameIndicatorArrayOutputWithContext(ctx context.Context) LoadbalancerListenerServerNameIndicatorArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerServerNameIndicatorArrayOutput) -} - -type LoadbalancerListenerServerNameIndicatorOutput struct{ *pulumi.OutputState } - -func (LoadbalancerListenerServerNameIndicatorOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerListenerServerNameIndicator)(nil)).Elem() -} - -func (o LoadbalancerListenerServerNameIndicatorOutput) ToLoadbalancerListenerServerNameIndicatorOutput() LoadbalancerListenerServerNameIndicatorOutput { +func (o ApplicationLoadBalancerOptionsPtrOutput) ToApplicationLoadBalancerOptionsPtrOutput() ApplicationLoadBalancerOptionsPtrOutput { return o } -func (o LoadbalancerListenerServerNameIndicatorOutput) ToLoadbalancerListenerServerNameIndicatorOutputWithContext(ctx context.Context) LoadbalancerListenerServerNameIndicatorOutput { +func (o ApplicationLoadBalancerOptionsPtrOutput) ToApplicationLoadBalancerOptionsPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsPtrOutput { return o } -// A domain name to match in order to pass TLS traffic to the target pool in the current listener -func (o LoadbalancerListenerServerNameIndicatorOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v LoadbalancerListenerServerNameIndicator) *string { return v.Name }).(pulumi.StringPtrOutput) +func (o ApplicationLoadBalancerOptionsPtrOutput) Elem() ApplicationLoadBalancerOptionsOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerOptions) ApplicationLoadBalancerOptions { + if v != nil { + return *v + } + var ret ApplicationLoadBalancerOptions + return ret + }).(ApplicationLoadBalancerOptionsOutput) } -type LoadbalancerListenerServerNameIndicatorArrayOutput struct{ *pulumi.OutputState } - -func (LoadbalancerListenerServerNameIndicatorArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]LoadbalancerListenerServerNameIndicator)(nil)).Elem() +// Use this option to limit the IP ranges that can use the Application Load Balancer. +func (o ApplicationLoadBalancerOptionsPtrOutput) AccessControl() ApplicationLoadBalancerOptionsAccessControlPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerOptions) *ApplicationLoadBalancerOptionsAccessControl { + if v == nil { + return nil + } + return v.AccessControl + }).(ApplicationLoadBalancerOptionsAccessControlPtrOutput) } -func (o LoadbalancerListenerServerNameIndicatorArrayOutput) ToLoadbalancerListenerServerNameIndicatorArrayOutput() LoadbalancerListenerServerNameIndicatorArrayOutput { - return o +// 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. +func (o ApplicationLoadBalancerOptionsPtrOutput) EphemeralAddress() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerOptions) *bool { + if v == nil { + return nil + } + return v.EphemeralAddress + }).(pulumi.BoolPtrOutput) } -func (o LoadbalancerListenerServerNameIndicatorArrayOutput) ToLoadbalancerListenerServerNameIndicatorArrayOutputWithContext(ctx context.Context) LoadbalancerListenerServerNameIndicatorArrayOutput { - return o +// We offer Load Balancer observability via STACKIT Observability or external solutions. +func (o ApplicationLoadBalancerOptionsPtrOutput) Observability() ApplicationLoadBalancerOptionsObservabilityPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerOptions) *ApplicationLoadBalancerOptionsObservability { + if v == nil { + return nil + } + return v.Observability + }).(ApplicationLoadBalancerOptionsObservabilityPtrOutput) } -func (o LoadbalancerListenerServerNameIndicatorArrayOutput) Index(i pulumi.IntInput) LoadbalancerListenerServerNameIndicatorOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) LoadbalancerListenerServerNameIndicator { - return vs[0].([]LoadbalancerListenerServerNameIndicator)[vs[1].(int)] - }).(LoadbalancerListenerServerNameIndicatorOutput) +// Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. +func (o ApplicationLoadBalancerOptionsPtrOutput) PrivateNetworkOnly() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerOptions) *bool { + if v == nil { + return nil + } + return v.PrivateNetworkOnly + }).(pulumi.BoolPtrOutput) } -type LoadbalancerListenerTcp struct { - // 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 - IdleTimeout *string `pulumi:"idleTimeout"` +type ApplicationLoadBalancerOptionsAccessControl struct { + // Application Load Balancer is accessible only from an IP address in this range. + AllowedSourceRanges []string `pulumi:"allowedSourceRanges"` } -// LoadbalancerListenerTcpInput is an input type that accepts LoadbalancerListenerTcpArgs and LoadbalancerListenerTcpOutput values. -// You can construct a concrete instance of `LoadbalancerListenerTcpInput` via: +// ApplicationLoadBalancerOptionsAccessControlInput is an input type that accepts ApplicationLoadBalancerOptionsAccessControlArgs and ApplicationLoadBalancerOptionsAccessControlOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerOptionsAccessControlInput` via: // -// LoadbalancerListenerTcpArgs{...} -type LoadbalancerListenerTcpInput interface { +// ApplicationLoadBalancerOptionsAccessControlArgs{...} +type ApplicationLoadBalancerOptionsAccessControlInput interface { pulumi.Input - ToLoadbalancerListenerTcpOutput() LoadbalancerListenerTcpOutput - ToLoadbalancerListenerTcpOutputWithContext(context.Context) LoadbalancerListenerTcpOutput + ToApplicationLoadBalancerOptionsAccessControlOutput() ApplicationLoadBalancerOptionsAccessControlOutput + ToApplicationLoadBalancerOptionsAccessControlOutputWithContext(context.Context) ApplicationLoadBalancerOptionsAccessControlOutput } -type LoadbalancerListenerTcpArgs struct { - // 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 - IdleTimeout pulumi.StringPtrInput `pulumi:"idleTimeout"` +type ApplicationLoadBalancerOptionsAccessControlArgs struct { + // Application Load Balancer is accessible only from an IP address in this range. + AllowedSourceRanges pulumi.StringArrayInput `pulumi:"allowedSourceRanges"` } -func (LoadbalancerListenerTcpArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerListenerTcp)(nil)).Elem() +func (ApplicationLoadBalancerOptionsAccessControlArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerOptionsAccessControl)(nil)).Elem() } -func (i LoadbalancerListenerTcpArgs) ToLoadbalancerListenerTcpOutput() LoadbalancerListenerTcpOutput { - return i.ToLoadbalancerListenerTcpOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerOptionsAccessControlArgs) ToApplicationLoadBalancerOptionsAccessControlOutput() ApplicationLoadBalancerOptionsAccessControlOutput { + return i.ToApplicationLoadBalancerOptionsAccessControlOutputWithContext(context.Background()) } -func (i LoadbalancerListenerTcpArgs) ToLoadbalancerListenerTcpOutputWithContext(ctx context.Context) LoadbalancerListenerTcpOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerTcpOutput) +func (i ApplicationLoadBalancerOptionsAccessControlArgs) ToApplicationLoadBalancerOptionsAccessControlOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsAccessControlOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerOptionsAccessControlOutput) } -func (i LoadbalancerListenerTcpArgs) ToLoadbalancerListenerTcpPtrOutput() LoadbalancerListenerTcpPtrOutput { - return i.ToLoadbalancerListenerTcpPtrOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerOptionsAccessControlArgs) ToApplicationLoadBalancerOptionsAccessControlPtrOutput() ApplicationLoadBalancerOptionsAccessControlPtrOutput { + return i.ToApplicationLoadBalancerOptionsAccessControlPtrOutputWithContext(context.Background()) } -func (i LoadbalancerListenerTcpArgs) ToLoadbalancerListenerTcpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerTcpPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerTcpOutput).ToLoadbalancerListenerTcpPtrOutputWithContext(ctx) +func (i ApplicationLoadBalancerOptionsAccessControlArgs) ToApplicationLoadBalancerOptionsAccessControlPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsAccessControlPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerOptionsAccessControlOutput).ToApplicationLoadBalancerOptionsAccessControlPtrOutputWithContext(ctx) } -// LoadbalancerListenerTcpPtrInput is an input type that accepts LoadbalancerListenerTcpArgs, LoadbalancerListenerTcpPtr and LoadbalancerListenerTcpPtrOutput values. -// You can construct a concrete instance of `LoadbalancerListenerTcpPtrInput` via: +// ApplicationLoadBalancerOptionsAccessControlPtrInput is an input type that accepts ApplicationLoadBalancerOptionsAccessControlArgs, ApplicationLoadBalancerOptionsAccessControlPtr and ApplicationLoadBalancerOptionsAccessControlPtrOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerOptionsAccessControlPtrInput` via: // -// LoadbalancerListenerTcpArgs{...} +// ApplicationLoadBalancerOptionsAccessControlArgs{...} // // or: // // nil -type LoadbalancerListenerTcpPtrInput interface { +type ApplicationLoadBalancerOptionsAccessControlPtrInput interface { pulumi.Input - ToLoadbalancerListenerTcpPtrOutput() LoadbalancerListenerTcpPtrOutput - ToLoadbalancerListenerTcpPtrOutputWithContext(context.Context) LoadbalancerListenerTcpPtrOutput + ToApplicationLoadBalancerOptionsAccessControlPtrOutput() ApplicationLoadBalancerOptionsAccessControlPtrOutput + ToApplicationLoadBalancerOptionsAccessControlPtrOutputWithContext(context.Context) ApplicationLoadBalancerOptionsAccessControlPtrOutput } -type loadbalancerListenerTcpPtrType LoadbalancerListenerTcpArgs +type applicationLoadBalancerOptionsAccessControlPtrType ApplicationLoadBalancerOptionsAccessControlArgs -func LoadbalancerListenerTcpPtr(v *LoadbalancerListenerTcpArgs) LoadbalancerListenerTcpPtrInput { - return (*loadbalancerListenerTcpPtrType)(v) +func ApplicationLoadBalancerOptionsAccessControlPtr(v *ApplicationLoadBalancerOptionsAccessControlArgs) ApplicationLoadBalancerOptionsAccessControlPtrInput { + return (*applicationLoadBalancerOptionsAccessControlPtrType)(v) } -func (*loadbalancerListenerTcpPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**LoadbalancerListenerTcp)(nil)).Elem() +func (*applicationLoadBalancerOptionsAccessControlPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerOptionsAccessControl)(nil)).Elem() } -func (i *loadbalancerListenerTcpPtrType) ToLoadbalancerListenerTcpPtrOutput() LoadbalancerListenerTcpPtrOutput { - return i.ToLoadbalancerListenerTcpPtrOutputWithContext(context.Background()) +func (i *applicationLoadBalancerOptionsAccessControlPtrType) ToApplicationLoadBalancerOptionsAccessControlPtrOutput() ApplicationLoadBalancerOptionsAccessControlPtrOutput { + return i.ToApplicationLoadBalancerOptionsAccessControlPtrOutputWithContext(context.Background()) } -func (i *loadbalancerListenerTcpPtrType) ToLoadbalancerListenerTcpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerTcpPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerTcpPtrOutput) +func (i *applicationLoadBalancerOptionsAccessControlPtrType) ToApplicationLoadBalancerOptionsAccessControlPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsAccessControlPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerOptionsAccessControlPtrOutput) } -type LoadbalancerListenerTcpOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerOptionsAccessControlOutput struct{ *pulumi.OutputState } -func (LoadbalancerListenerTcpOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerListenerTcp)(nil)).Elem() +func (ApplicationLoadBalancerOptionsAccessControlOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerOptionsAccessControl)(nil)).Elem() } -func (o LoadbalancerListenerTcpOutput) ToLoadbalancerListenerTcpOutput() LoadbalancerListenerTcpOutput { +func (o ApplicationLoadBalancerOptionsAccessControlOutput) ToApplicationLoadBalancerOptionsAccessControlOutput() ApplicationLoadBalancerOptionsAccessControlOutput { return o } -func (o LoadbalancerListenerTcpOutput) ToLoadbalancerListenerTcpOutputWithContext(ctx context.Context) LoadbalancerListenerTcpOutput { +func (o ApplicationLoadBalancerOptionsAccessControlOutput) ToApplicationLoadBalancerOptionsAccessControlOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsAccessControlOutput { return o } -func (o LoadbalancerListenerTcpOutput) ToLoadbalancerListenerTcpPtrOutput() LoadbalancerListenerTcpPtrOutput { - return o.ToLoadbalancerListenerTcpPtrOutputWithContext(context.Background()) +func (o ApplicationLoadBalancerOptionsAccessControlOutput) ToApplicationLoadBalancerOptionsAccessControlPtrOutput() ApplicationLoadBalancerOptionsAccessControlPtrOutput { + return o.ToApplicationLoadBalancerOptionsAccessControlPtrOutputWithContext(context.Background()) } -func (o LoadbalancerListenerTcpOutput) ToLoadbalancerListenerTcpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerTcpPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerListenerTcp) *LoadbalancerListenerTcp { +func (o ApplicationLoadBalancerOptionsAccessControlOutput) ToApplicationLoadBalancerOptionsAccessControlPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsAccessControlPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationLoadBalancerOptionsAccessControl) *ApplicationLoadBalancerOptionsAccessControl { return &v - }).(LoadbalancerListenerTcpPtrOutput) + }).(ApplicationLoadBalancerOptionsAccessControlPtrOutput) } -// 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 -func (o LoadbalancerListenerTcpOutput) IdleTimeout() pulumi.StringPtrOutput { - return o.ApplyT(func(v LoadbalancerListenerTcp) *string { return v.IdleTimeout }).(pulumi.StringPtrOutput) +// Application Load Balancer is accessible only from an IP address in this range. +func (o ApplicationLoadBalancerOptionsAccessControlOutput) AllowedSourceRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v ApplicationLoadBalancerOptionsAccessControl) []string { return v.AllowedSourceRanges }).(pulumi.StringArrayOutput) } -type LoadbalancerListenerTcpPtrOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerOptionsAccessControlPtrOutput struct{ *pulumi.OutputState } -func (LoadbalancerListenerTcpPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**LoadbalancerListenerTcp)(nil)).Elem() +func (ApplicationLoadBalancerOptionsAccessControlPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerOptionsAccessControl)(nil)).Elem() } -func (o LoadbalancerListenerTcpPtrOutput) ToLoadbalancerListenerTcpPtrOutput() LoadbalancerListenerTcpPtrOutput { +func (o ApplicationLoadBalancerOptionsAccessControlPtrOutput) ToApplicationLoadBalancerOptionsAccessControlPtrOutput() ApplicationLoadBalancerOptionsAccessControlPtrOutput { return o } -func (o LoadbalancerListenerTcpPtrOutput) ToLoadbalancerListenerTcpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerTcpPtrOutput { +func (o ApplicationLoadBalancerOptionsAccessControlPtrOutput) ToApplicationLoadBalancerOptionsAccessControlPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsAccessControlPtrOutput { return o } -func (o LoadbalancerListenerTcpPtrOutput) Elem() LoadbalancerListenerTcpOutput { - return o.ApplyT(func(v *LoadbalancerListenerTcp) LoadbalancerListenerTcp { +func (o ApplicationLoadBalancerOptionsAccessControlPtrOutput) Elem() ApplicationLoadBalancerOptionsAccessControlOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerOptionsAccessControl) ApplicationLoadBalancerOptionsAccessControl { if v != nil { return *v } - var ret LoadbalancerListenerTcp + var ret ApplicationLoadBalancerOptionsAccessControl return ret - }).(LoadbalancerListenerTcpOutput) + }).(ApplicationLoadBalancerOptionsAccessControlOutput) } -// 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 -func (o LoadbalancerListenerTcpPtrOutput) IdleTimeout() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LoadbalancerListenerTcp) *string { +// Application Load Balancer is accessible only from an IP address in this range. +func (o ApplicationLoadBalancerOptionsAccessControlPtrOutput) AllowedSourceRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerOptionsAccessControl) []string { if v == nil { return nil } - return v.IdleTimeout - }).(pulumi.StringPtrOutput) + return v.AllowedSourceRanges + }).(pulumi.StringArrayOutput) } -type LoadbalancerListenerUdp struct { - // 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 - IdleTimeout *string `pulumi:"idleTimeout"` +type ApplicationLoadBalancerOptionsObservability struct { + // Observability logs configuration. + Logs *ApplicationLoadBalancerOptionsObservabilityLogs `pulumi:"logs"` + // Observability metrics configuration. + Metrics *ApplicationLoadBalancerOptionsObservabilityMetrics `pulumi:"metrics"` } -// LoadbalancerListenerUdpInput is an input type that accepts LoadbalancerListenerUdpArgs and LoadbalancerListenerUdpOutput values. -// You can construct a concrete instance of `LoadbalancerListenerUdpInput` via: +// ApplicationLoadBalancerOptionsObservabilityInput is an input type that accepts ApplicationLoadBalancerOptionsObservabilityArgs and ApplicationLoadBalancerOptionsObservabilityOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerOptionsObservabilityInput` via: // -// LoadbalancerListenerUdpArgs{...} -type LoadbalancerListenerUdpInput interface { +// ApplicationLoadBalancerOptionsObservabilityArgs{...} +type ApplicationLoadBalancerOptionsObservabilityInput interface { pulumi.Input - ToLoadbalancerListenerUdpOutput() LoadbalancerListenerUdpOutput - ToLoadbalancerListenerUdpOutputWithContext(context.Context) LoadbalancerListenerUdpOutput + ToApplicationLoadBalancerOptionsObservabilityOutput() ApplicationLoadBalancerOptionsObservabilityOutput + ToApplicationLoadBalancerOptionsObservabilityOutputWithContext(context.Context) ApplicationLoadBalancerOptionsObservabilityOutput } -type LoadbalancerListenerUdpArgs struct { - // 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 - IdleTimeout pulumi.StringPtrInput `pulumi:"idleTimeout"` +type ApplicationLoadBalancerOptionsObservabilityArgs struct { + // Observability logs configuration. + Logs ApplicationLoadBalancerOptionsObservabilityLogsPtrInput `pulumi:"logs"` + // Observability metrics configuration. + Metrics ApplicationLoadBalancerOptionsObservabilityMetricsPtrInput `pulumi:"metrics"` } -func (LoadbalancerListenerUdpArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerListenerUdp)(nil)).Elem() +func (ApplicationLoadBalancerOptionsObservabilityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerOptionsObservability)(nil)).Elem() } -func (i LoadbalancerListenerUdpArgs) ToLoadbalancerListenerUdpOutput() LoadbalancerListenerUdpOutput { - return i.ToLoadbalancerListenerUdpOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerOptionsObservabilityArgs) ToApplicationLoadBalancerOptionsObservabilityOutput() ApplicationLoadBalancerOptionsObservabilityOutput { + return i.ToApplicationLoadBalancerOptionsObservabilityOutputWithContext(context.Background()) } -func (i LoadbalancerListenerUdpArgs) ToLoadbalancerListenerUdpOutputWithContext(ctx context.Context) LoadbalancerListenerUdpOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerUdpOutput) +func (i ApplicationLoadBalancerOptionsObservabilityArgs) ToApplicationLoadBalancerOptionsObservabilityOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerOptionsObservabilityOutput) } -func (i LoadbalancerListenerUdpArgs) ToLoadbalancerListenerUdpPtrOutput() LoadbalancerListenerUdpPtrOutput { - return i.ToLoadbalancerListenerUdpPtrOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerOptionsObservabilityArgs) ToApplicationLoadBalancerOptionsObservabilityPtrOutput() ApplicationLoadBalancerOptionsObservabilityPtrOutput { + return i.ToApplicationLoadBalancerOptionsObservabilityPtrOutputWithContext(context.Background()) } -func (i LoadbalancerListenerUdpArgs) ToLoadbalancerListenerUdpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerUdpPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerUdpOutput).ToLoadbalancerListenerUdpPtrOutputWithContext(ctx) +func (i ApplicationLoadBalancerOptionsObservabilityArgs) ToApplicationLoadBalancerOptionsObservabilityPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerOptionsObservabilityOutput).ToApplicationLoadBalancerOptionsObservabilityPtrOutputWithContext(ctx) } -// LoadbalancerListenerUdpPtrInput is an input type that accepts LoadbalancerListenerUdpArgs, LoadbalancerListenerUdpPtr and LoadbalancerListenerUdpPtrOutput values. -// You can construct a concrete instance of `LoadbalancerListenerUdpPtrInput` via: +// ApplicationLoadBalancerOptionsObservabilityPtrInput is an input type that accepts ApplicationLoadBalancerOptionsObservabilityArgs, ApplicationLoadBalancerOptionsObservabilityPtr and ApplicationLoadBalancerOptionsObservabilityPtrOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerOptionsObservabilityPtrInput` via: // -// LoadbalancerListenerUdpArgs{...} +// ApplicationLoadBalancerOptionsObservabilityArgs{...} // // or: // // nil -type LoadbalancerListenerUdpPtrInput interface { +type ApplicationLoadBalancerOptionsObservabilityPtrInput interface { pulumi.Input - ToLoadbalancerListenerUdpPtrOutput() LoadbalancerListenerUdpPtrOutput - ToLoadbalancerListenerUdpPtrOutputWithContext(context.Context) LoadbalancerListenerUdpPtrOutput + ToApplicationLoadBalancerOptionsObservabilityPtrOutput() ApplicationLoadBalancerOptionsObservabilityPtrOutput + ToApplicationLoadBalancerOptionsObservabilityPtrOutputWithContext(context.Context) ApplicationLoadBalancerOptionsObservabilityPtrOutput } -type loadbalancerListenerUdpPtrType LoadbalancerListenerUdpArgs +type applicationLoadBalancerOptionsObservabilityPtrType ApplicationLoadBalancerOptionsObservabilityArgs -func LoadbalancerListenerUdpPtr(v *LoadbalancerListenerUdpArgs) LoadbalancerListenerUdpPtrInput { - return (*loadbalancerListenerUdpPtrType)(v) +func ApplicationLoadBalancerOptionsObservabilityPtr(v *ApplicationLoadBalancerOptionsObservabilityArgs) ApplicationLoadBalancerOptionsObservabilityPtrInput { + return (*applicationLoadBalancerOptionsObservabilityPtrType)(v) } -func (*loadbalancerListenerUdpPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**LoadbalancerListenerUdp)(nil)).Elem() +func (*applicationLoadBalancerOptionsObservabilityPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerOptionsObservability)(nil)).Elem() } -func (i *loadbalancerListenerUdpPtrType) ToLoadbalancerListenerUdpPtrOutput() LoadbalancerListenerUdpPtrOutput { - return i.ToLoadbalancerListenerUdpPtrOutputWithContext(context.Background()) +func (i *applicationLoadBalancerOptionsObservabilityPtrType) ToApplicationLoadBalancerOptionsObservabilityPtrOutput() ApplicationLoadBalancerOptionsObservabilityPtrOutput { + return i.ToApplicationLoadBalancerOptionsObservabilityPtrOutputWithContext(context.Background()) } -func (i *loadbalancerListenerUdpPtrType) ToLoadbalancerListenerUdpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerUdpPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerUdpPtrOutput) +func (i *applicationLoadBalancerOptionsObservabilityPtrType) ToApplicationLoadBalancerOptionsObservabilityPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerOptionsObservabilityPtrOutput) } -type LoadbalancerListenerUdpOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerOptionsObservabilityOutput struct{ *pulumi.OutputState } -func (LoadbalancerListenerUdpOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerListenerUdp)(nil)).Elem() +func (ApplicationLoadBalancerOptionsObservabilityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerOptionsObservability)(nil)).Elem() } -func (o LoadbalancerListenerUdpOutput) ToLoadbalancerListenerUdpOutput() LoadbalancerListenerUdpOutput { +func (o ApplicationLoadBalancerOptionsObservabilityOutput) ToApplicationLoadBalancerOptionsObservabilityOutput() ApplicationLoadBalancerOptionsObservabilityOutput { return o } -func (o LoadbalancerListenerUdpOutput) ToLoadbalancerListenerUdpOutputWithContext(ctx context.Context) LoadbalancerListenerUdpOutput { +func (o ApplicationLoadBalancerOptionsObservabilityOutput) ToApplicationLoadBalancerOptionsObservabilityOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityOutput { return o } -func (o LoadbalancerListenerUdpOutput) ToLoadbalancerListenerUdpPtrOutput() LoadbalancerListenerUdpPtrOutput { - return o.ToLoadbalancerListenerUdpPtrOutputWithContext(context.Background()) +func (o ApplicationLoadBalancerOptionsObservabilityOutput) ToApplicationLoadBalancerOptionsObservabilityPtrOutput() ApplicationLoadBalancerOptionsObservabilityPtrOutput { + return o.ToApplicationLoadBalancerOptionsObservabilityPtrOutputWithContext(context.Background()) } -func (o LoadbalancerListenerUdpOutput) ToLoadbalancerListenerUdpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerUdpPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerListenerUdp) *LoadbalancerListenerUdp { +func (o ApplicationLoadBalancerOptionsObservabilityOutput) ToApplicationLoadBalancerOptionsObservabilityPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationLoadBalancerOptionsObservability) *ApplicationLoadBalancerOptionsObservability { return &v - }).(LoadbalancerListenerUdpPtrOutput) + }).(ApplicationLoadBalancerOptionsObservabilityPtrOutput) } -// 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 -func (o LoadbalancerListenerUdpOutput) IdleTimeout() pulumi.StringPtrOutput { - return o.ApplyT(func(v LoadbalancerListenerUdp) *string { return v.IdleTimeout }).(pulumi.StringPtrOutput) +// Observability logs configuration. +func (o ApplicationLoadBalancerOptionsObservabilityOutput) Logs() ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerOptionsObservability) *ApplicationLoadBalancerOptionsObservabilityLogs { + return v.Logs + }).(ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput) } -type LoadbalancerListenerUdpPtrOutput struct{ *pulumi.OutputState } +// Observability metrics configuration. +func (o ApplicationLoadBalancerOptionsObservabilityOutput) Metrics() ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerOptionsObservability) *ApplicationLoadBalancerOptionsObservabilityMetrics { + return v.Metrics + }).(ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput) +} -func (LoadbalancerListenerUdpPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**LoadbalancerListenerUdp)(nil)).Elem() +type ApplicationLoadBalancerOptionsObservabilityPtrOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerOptionsObservabilityPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerOptionsObservability)(nil)).Elem() } -func (o LoadbalancerListenerUdpPtrOutput) ToLoadbalancerListenerUdpPtrOutput() LoadbalancerListenerUdpPtrOutput { +func (o ApplicationLoadBalancerOptionsObservabilityPtrOutput) ToApplicationLoadBalancerOptionsObservabilityPtrOutput() ApplicationLoadBalancerOptionsObservabilityPtrOutput { return o } -func (o LoadbalancerListenerUdpPtrOutput) ToLoadbalancerListenerUdpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerUdpPtrOutput { +func (o ApplicationLoadBalancerOptionsObservabilityPtrOutput) ToApplicationLoadBalancerOptionsObservabilityPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityPtrOutput { return o } -func (o LoadbalancerListenerUdpPtrOutput) Elem() LoadbalancerListenerUdpOutput { - return o.ApplyT(func(v *LoadbalancerListenerUdp) LoadbalancerListenerUdp { +func (o ApplicationLoadBalancerOptionsObservabilityPtrOutput) Elem() ApplicationLoadBalancerOptionsObservabilityOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerOptionsObservability) ApplicationLoadBalancerOptionsObservability { if v != nil { return *v } - var ret LoadbalancerListenerUdp + var ret ApplicationLoadBalancerOptionsObservability return ret - }).(LoadbalancerListenerUdpOutput) + }).(ApplicationLoadBalancerOptionsObservabilityOutput) } -// 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 -func (o LoadbalancerListenerUdpPtrOutput) IdleTimeout() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LoadbalancerListenerUdp) *string { +// Observability logs configuration. +func (o ApplicationLoadBalancerOptionsObservabilityPtrOutput) Logs() ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerOptionsObservability) *ApplicationLoadBalancerOptionsObservabilityLogs { if v == nil { return nil } - return v.IdleTimeout - }).(pulumi.StringPtrOutput) + return v.Logs + }).(ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput) } -type LoadbalancerNetwork struct { - // Openstack network ID. - NetworkId string `pulumi:"networkId"` - // The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. - Role string `pulumi:"role"` +// Observability metrics configuration. +func (o ApplicationLoadBalancerOptionsObservabilityPtrOutput) Metrics() ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerOptionsObservability) *ApplicationLoadBalancerOptionsObservabilityMetrics { + if v == nil { + return nil + } + return v.Metrics + }).(ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput) } -// LoadbalancerNetworkInput is an input type that accepts LoadbalancerNetworkArgs and LoadbalancerNetworkOutput values. -// You can construct a concrete instance of `LoadbalancerNetworkInput` via: +type ApplicationLoadBalancerOptionsObservabilityLogs struct { + // 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. + CredentialsRef string `pulumi:"credentialsRef"` + // 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. + PushUrl string `pulumi:"pushUrl"` +} + +// ApplicationLoadBalancerOptionsObservabilityLogsInput is an input type that accepts ApplicationLoadBalancerOptionsObservabilityLogsArgs and ApplicationLoadBalancerOptionsObservabilityLogsOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerOptionsObservabilityLogsInput` via: // -// LoadbalancerNetworkArgs{...} -type LoadbalancerNetworkInput interface { +// ApplicationLoadBalancerOptionsObservabilityLogsArgs{...} +type ApplicationLoadBalancerOptionsObservabilityLogsInput interface { pulumi.Input - ToLoadbalancerNetworkOutput() LoadbalancerNetworkOutput - ToLoadbalancerNetworkOutputWithContext(context.Context) LoadbalancerNetworkOutput + ToApplicationLoadBalancerOptionsObservabilityLogsOutput() ApplicationLoadBalancerOptionsObservabilityLogsOutput + ToApplicationLoadBalancerOptionsObservabilityLogsOutputWithContext(context.Context) ApplicationLoadBalancerOptionsObservabilityLogsOutput } -type LoadbalancerNetworkArgs struct { - // Openstack network ID. - NetworkId pulumi.StringInput `pulumi:"networkId"` - // The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. - Role pulumi.StringInput `pulumi:"role"` +type ApplicationLoadBalancerOptionsObservabilityLogsArgs struct { + // 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. + CredentialsRef pulumi.StringInput `pulumi:"credentialsRef"` + // 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. + PushUrl pulumi.StringInput `pulumi:"pushUrl"` } -func (LoadbalancerNetworkArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerNetwork)(nil)).Elem() +func (ApplicationLoadBalancerOptionsObservabilityLogsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerOptionsObservabilityLogs)(nil)).Elem() } -func (i LoadbalancerNetworkArgs) ToLoadbalancerNetworkOutput() LoadbalancerNetworkOutput { - return i.ToLoadbalancerNetworkOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerOptionsObservabilityLogsArgs) ToApplicationLoadBalancerOptionsObservabilityLogsOutput() ApplicationLoadBalancerOptionsObservabilityLogsOutput { + return i.ToApplicationLoadBalancerOptionsObservabilityLogsOutputWithContext(context.Background()) } -func (i LoadbalancerNetworkArgs) ToLoadbalancerNetworkOutputWithContext(ctx context.Context) LoadbalancerNetworkOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerNetworkOutput) +func (i ApplicationLoadBalancerOptionsObservabilityLogsArgs) ToApplicationLoadBalancerOptionsObservabilityLogsOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityLogsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerOptionsObservabilityLogsOutput) } -// LoadbalancerNetworkArrayInput is an input type that accepts LoadbalancerNetworkArray and LoadbalancerNetworkArrayOutput values. -// You can construct a concrete instance of `LoadbalancerNetworkArrayInput` via: +func (i ApplicationLoadBalancerOptionsObservabilityLogsArgs) ToApplicationLoadBalancerOptionsObservabilityLogsPtrOutput() ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput { + return i.ToApplicationLoadBalancerOptionsObservabilityLogsPtrOutputWithContext(context.Background()) +} + +func (i ApplicationLoadBalancerOptionsObservabilityLogsArgs) ToApplicationLoadBalancerOptionsObservabilityLogsPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerOptionsObservabilityLogsOutput).ToApplicationLoadBalancerOptionsObservabilityLogsPtrOutputWithContext(ctx) +} + +// ApplicationLoadBalancerOptionsObservabilityLogsPtrInput is an input type that accepts ApplicationLoadBalancerOptionsObservabilityLogsArgs, ApplicationLoadBalancerOptionsObservabilityLogsPtr and ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerOptionsObservabilityLogsPtrInput` via: // -// LoadbalancerNetworkArray{ LoadbalancerNetworkArgs{...} } -type LoadbalancerNetworkArrayInput interface { +// ApplicationLoadBalancerOptionsObservabilityLogsArgs{...} +// +// or: +// +// nil +type ApplicationLoadBalancerOptionsObservabilityLogsPtrInput interface { pulumi.Input - ToLoadbalancerNetworkArrayOutput() LoadbalancerNetworkArrayOutput - ToLoadbalancerNetworkArrayOutputWithContext(context.Context) LoadbalancerNetworkArrayOutput + ToApplicationLoadBalancerOptionsObservabilityLogsPtrOutput() ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput + ToApplicationLoadBalancerOptionsObservabilityLogsPtrOutputWithContext(context.Context) ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput } -type LoadbalancerNetworkArray []LoadbalancerNetworkInput +type applicationLoadBalancerOptionsObservabilityLogsPtrType ApplicationLoadBalancerOptionsObservabilityLogsArgs -func (LoadbalancerNetworkArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]LoadbalancerNetwork)(nil)).Elem() +func ApplicationLoadBalancerOptionsObservabilityLogsPtr(v *ApplicationLoadBalancerOptionsObservabilityLogsArgs) ApplicationLoadBalancerOptionsObservabilityLogsPtrInput { + return (*applicationLoadBalancerOptionsObservabilityLogsPtrType)(v) } -func (i LoadbalancerNetworkArray) ToLoadbalancerNetworkArrayOutput() LoadbalancerNetworkArrayOutput { - return i.ToLoadbalancerNetworkArrayOutputWithContext(context.Background()) +func (*applicationLoadBalancerOptionsObservabilityLogsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerOptionsObservabilityLogs)(nil)).Elem() } -func (i LoadbalancerNetworkArray) ToLoadbalancerNetworkArrayOutputWithContext(ctx context.Context) LoadbalancerNetworkArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerNetworkArrayOutput) +func (i *applicationLoadBalancerOptionsObservabilityLogsPtrType) ToApplicationLoadBalancerOptionsObservabilityLogsPtrOutput() ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput { + return i.ToApplicationLoadBalancerOptionsObservabilityLogsPtrOutputWithContext(context.Background()) } -type LoadbalancerNetworkOutput struct{ *pulumi.OutputState } +func (i *applicationLoadBalancerOptionsObservabilityLogsPtrType) ToApplicationLoadBalancerOptionsObservabilityLogsPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput) +} -func (LoadbalancerNetworkOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerNetwork)(nil)).Elem() +type ApplicationLoadBalancerOptionsObservabilityLogsOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerOptionsObservabilityLogsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerOptionsObservabilityLogs)(nil)).Elem() } -func (o LoadbalancerNetworkOutput) ToLoadbalancerNetworkOutput() LoadbalancerNetworkOutput { +func (o ApplicationLoadBalancerOptionsObservabilityLogsOutput) ToApplicationLoadBalancerOptionsObservabilityLogsOutput() ApplicationLoadBalancerOptionsObservabilityLogsOutput { return o } -func (o LoadbalancerNetworkOutput) ToLoadbalancerNetworkOutputWithContext(ctx context.Context) LoadbalancerNetworkOutput { +func (o ApplicationLoadBalancerOptionsObservabilityLogsOutput) ToApplicationLoadBalancerOptionsObservabilityLogsOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityLogsOutput { return o } -// Openstack network ID. -func (o LoadbalancerNetworkOutput) NetworkId() pulumi.StringOutput { - return o.ApplyT(func(v LoadbalancerNetwork) string { return v.NetworkId }).(pulumi.StringOutput) +func (o ApplicationLoadBalancerOptionsObservabilityLogsOutput) ToApplicationLoadBalancerOptionsObservabilityLogsPtrOutput() ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput { + return o.ToApplicationLoadBalancerOptionsObservabilityLogsPtrOutputWithContext(context.Background()) } -// The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. -func (o LoadbalancerNetworkOutput) Role() pulumi.StringOutput { - return o.ApplyT(func(v LoadbalancerNetwork) string { return v.Role }).(pulumi.StringOutput) +func (o ApplicationLoadBalancerOptionsObservabilityLogsOutput) ToApplicationLoadBalancerOptionsObservabilityLogsPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationLoadBalancerOptionsObservabilityLogs) *ApplicationLoadBalancerOptionsObservabilityLogs { + return &v + }).(ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput) } -type LoadbalancerNetworkArrayOutput struct{ *pulumi.OutputState } +// 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. +func (o ApplicationLoadBalancerOptionsObservabilityLogsOutput) CredentialsRef() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerOptionsObservabilityLogs) string { return v.CredentialsRef }).(pulumi.StringOutput) +} -func (LoadbalancerNetworkArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]LoadbalancerNetwork)(nil)).Elem() +// 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. +func (o ApplicationLoadBalancerOptionsObservabilityLogsOutput) PushUrl() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerOptionsObservabilityLogs) string { return v.PushUrl }).(pulumi.StringOutput) } -func (o LoadbalancerNetworkArrayOutput) ToLoadbalancerNetworkArrayOutput() LoadbalancerNetworkArrayOutput { +type ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerOptionsObservabilityLogs)(nil)).Elem() +} + +func (o ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput) ToApplicationLoadBalancerOptionsObservabilityLogsPtrOutput() ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput { return o } -func (o LoadbalancerNetworkArrayOutput) ToLoadbalancerNetworkArrayOutputWithContext(ctx context.Context) LoadbalancerNetworkArrayOutput { +func (o ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput) ToApplicationLoadBalancerOptionsObservabilityLogsPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput { return o } -func (o LoadbalancerNetworkArrayOutput) Index(i pulumi.IntInput) LoadbalancerNetworkOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) LoadbalancerNetwork { - return vs[0].([]LoadbalancerNetwork)[vs[1].(int)] - }).(LoadbalancerNetworkOutput) +func (o ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput) Elem() ApplicationLoadBalancerOptionsObservabilityLogsOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerOptionsObservabilityLogs) ApplicationLoadBalancerOptionsObservabilityLogs { + if v != nil { + return *v + } + var ret ApplicationLoadBalancerOptionsObservabilityLogs + return ret + }).(ApplicationLoadBalancerOptionsObservabilityLogsOutput) } -type LoadbalancerOptions struct { - // Load Balancer is accessible only from an IP address in this range. - Acls []string `pulumi:"acls"` - // We offer Load Balancer metrics observability via ARGUS or external solutions. Not changeable after creation. - Observability *LoadbalancerOptionsObservability `pulumi:"observability"` - // If true, Load Balancer is accessible only via a private network IP address. - PrivateNetworkOnly *bool `pulumi:"privateNetworkOnly"` +// 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. +func (o ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput) CredentialsRef() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerOptionsObservabilityLogs) *string { + if v == nil { + return nil + } + return &v.CredentialsRef + }).(pulumi.StringPtrOutput) } -// LoadbalancerOptionsInput is an input type that accepts LoadbalancerOptionsArgs and LoadbalancerOptionsOutput values. -// You can construct a concrete instance of `LoadbalancerOptionsInput` via: +// 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. +func (o ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput) PushUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerOptionsObservabilityLogs) *string { + if v == nil { + return nil + } + return &v.PushUrl + }).(pulumi.StringPtrOutput) +} + +type ApplicationLoadBalancerOptionsObservabilityMetrics struct { + // 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. + CredentialsRef string `pulumi:"credentialsRef"` + // 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. + PushUrl string `pulumi:"pushUrl"` +} + +// ApplicationLoadBalancerOptionsObservabilityMetricsInput is an input type that accepts ApplicationLoadBalancerOptionsObservabilityMetricsArgs and ApplicationLoadBalancerOptionsObservabilityMetricsOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerOptionsObservabilityMetricsInput` via: // -// LoadbalancerOptionsArgs{...} -type LoadbalancerOptionsInput interface { +// ApplicationLoadBalancerOptionsObservabilityMetricsArgs{...} +type ApplicationLoadBalancerOptionsObservabilityMetricsInput interface { pulumi.Input - ToLoadbalancerOptionsOutput() LoadbalancerOptionsOutput - ToLoadbalancerOptionsOutputWithContext(context.Context) LoadbalancerOptionsOutput + ToApplicationLoadBalancerOptionsObservabilityMetricsOutput() ApplicationLoadBalancerOptionsObservabilityMetricsOutput + ToApplicationLoadBalancerOptionsObservabilityMetricsOutputWithContext(context.Context) ApplicationLoadBalancerOptionsObservabilityMetricsOutput } -type LoadbalancerOptionsArgs struct { - // Load Balancer is accessible only from an IP address in this range. - Acls pulumi.StringArrayInput `pulumi:"acls"` - // We offer Load Balancer metrics observability via ARGUS or external solutions. Not changeable after creation. - Observability LoadbalancerOptionsObservabilityPtrInput `pulumi:"observability"` - // If true, Load Balancer is accessible only via a private network IP address. - PrivateNetworkOnly pulumi.BoolPtrInput `pulumi:"privateNetworkOnly"` +type ApplicationLoadBalancerOptionsObservabilityMetricsArgs struct { + // 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. + CredentialsRef pulumi.StringInput `pulumi:"credentialsRef"` + // 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. + PushUrl pulumi.StringInput `pulumi:"pushUrl"` } -func (LoadbalancerOptionsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerOptions)(nil)).Elem() +func (ApplicationLoadBalancerOptionsObservabilityMetricsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerOptionsObservabilityMetrics)(nil)).Elem() } -func (i LoadbalancerOptionsArgs) ToLoadbalancerOptionsOutput() LoadbalancerOptionsOutput { - return i.ToLoadbalancerOptionsOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerOptionsObservabilityMetricsArgs) ToApplicationLoadBalancerOptionsObservabilityMetricsOutput() ApplicationLoadBalancerOptionsObservabilityMetricsOutput { + return i.ToApplicationLoadBalancerOptionsObservabilityMetricsOutputWithContext(context.Background()) } -func (i LoadbalancerOptionsArgs) ToLoadbalancerOptionsOutputWithContext(ctx context.Context) LoadbalancerOptionsOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsOutput) +func (i ApplicationLoadBalancerOptionsObservabilityMetricsArgs) ToApplicationLoadBalancerOptionsObservabilityMetricsOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityMetricsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerOptionsObservabilityMetricsOutput) } -func (i LoadbalancerOptionsArgs) ToLoadbalancerOptionsPtrOutput() LoadbalancerOptionsPtrOutput { - return i.ToLoadbalancerOptionsPtrOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerOptionsObservabilityMetricsArgs) ToApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput() ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput { + return i.ToApplicationLoadBalancerOptionsObservabilityMetricsPtrOutputWithContext(context.Background()) } -func (i LoadbalancerOptionsArgs) ToLoadbalancerOptionsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsOutput).ToLoadbalancerOptionsPtrOutputWithContext(ctx) +func (i ApplicationLoadBalancerOptionsObservabilityMetricsArgs) ToApplicationLoadBalancerOptionsObservabilityMetricsPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerOptionsObservabilityMetricsOutput).ToApplicationLoadBalancerOptionsObservabilityMetricsPtrOutputWithContext(ctx) } -// LoadbalancerOptionsPtrInput is an input type that accepts LoadbalancerOptionsArgs, LoadbalancerOptionsPtr and LoadbalancerOptionsPtrOutput values. -// You can construct a concrete instance of `LoadbalancerOptionsPtrInput` via: +// ApplicationLoadBalancerOptionsObservabilityMetricsPtrInput is an input type that accepts ApplicationLoadBalancerOptionsObservabilityMetricsArgs, ApplicationLoadBalancerOptionsObservabilityMetricsPtr and ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerOptionsObservabilityMetricsPtrInput` via: // -// LoadbalancerOptionsArgs{...} +// ApplicationLoadBalancerOptionsObservabilityMetricsArgs{...} // // or: // // nil -type LoadbalancerOptionsPtrInput interface { +type ApplicationLoadBalancerOptionsObservabilityMetricsPtrInput interface { pulumi.Input - ToLoadbalancerOptionsPtrOutput() LoadbalancerOptionsPtrOutput - ToLoadbalancerOptionsPtrOutputWithContext(context.Context) LoadbalancerOptionsPtrOutput + ToApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput() ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput + ToApplicationLoadBalancerOptionsObservabilityMetricsPtrOutputWithContext(context.Context) ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput } -type loadbalancerOptionsPtrType LoadbalancerOptionsArgs +type applicationLoadBalancerOptionsObservabilityMetricsPtrType ApplicationLoadBalancerOptionsObservabilityMetricsArgs -func LoadbalancerOptionsPtr(v *LoadbalancerOptionsArgs) LoadbalancerOptionsPtrInput { - return (*loadbalancerOptionsPtrType)(v) +func ApplicationLoadBalancerOptionsObservabilityMetricsPtr(v *ApplicationLoadBalancerOptionsObservabilityMetricsArgs) ApplicationLoadBalancerOptionsObservabilityMetricsPtrInput { + return (*applicationLoadBalancerOptionsObservabilityMetricsPtrType)(v) } -func (*loadbalancerOptionsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**LoadbalancerOptions)(nil)).Elem() +func (*applicationLoadBalancerOptionsObservabilityMetricsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerOptionsObservabilityMetrics)(nil)).Elem() } -func (i *loadbalancerOptionsPtrType) ToLoadbalancerOptionsPtrOutput() LoadbalancerOptionsPtrOutput { - return i.ToLoadbalancerOptionsPtrOutputWithContext(context.Background()) +func (i *applicationLoadBalancerOptionsObservabilityMetricsPtrType) ToApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput() ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput { + return i.ToApplicationLoadBalancerOptionsObservabilityMetricsPtrOutputWithContext(context.Background()) } -func (i *loadbalancerOptionsPtrType) ToLoadbalancerOptionsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsPtrOutput) +func (i *applicationLoadBalancerOptionsObservabilityMetricsPtrType) ToApplicationLoadBalancerOptionsObservabilityMetricsPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput) } -type LoadbalancerOptionsOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerOptionsObservabilityMetricsOutput struct{ *pulumi.OutputState } -func (LoadbalancerOptionsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerOptions)(nil)).Elem() +func (ApplicationLoadBalancerOptionsObservabilityMetricsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerOptionsObservabilityMetrics)(nil)).Elem() } -func (o LoadbalancerOptionsOutput) ToLoadbalancerOptionsOutput() LoadbalancerOptionsOutput { +func (o ApplicationLoadBalancerOptionsObservabilityMetricsOutput) ToApplicationLoadBalancerOptionsObservabilityMetricsOutput() ApplicationLoadBalancerOptionsObservabilityMetricsOutput { return o } -func (o LoadbalancerOptionsOutput) ToLoadbalancerOptionsOutputWithContext(ctx context.Context) LoadbalancerOptionsOutput { +func (o ApplicationLoadBalancerOptionsObservabilityMetricsOutput) ToApplicationLoadBalancerOptionsObservabilityMetricsOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityMetricsOutput { return o } -func (o LoadbalancerOptionsOutput) ToLoadbalancerOptionsPtrOutput() LoadbalancerOptionsPtrOutput { - return o.ToLoadbalancerOptionsPtrOutputWithContext(context.Background()) +func (o ApplicationLoadBalancerOptionsObservabilityMetricsOutput) ToApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput() ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput { + return o.ToApplicationLoadBalancerOptionsObservabilityMetricsPtrOutputWithContext(context.Background()) } -func (o LoadbalancerOptionsOutput) ToLoadbalancerOptionsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerOptions) *LoadbalancerOptions { +func (o ApplicationLoadBalancerOptionsObservabilityMetricsOutput) ToApplicationLoadBalancerOptionsObservabilityMetricsPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationLoadBalancerOptionsObservabilityMetrics) *ApplicationLoadBalancerOptionsObservabilityMetrics { return &v - }).(LoadbalancerOptionsPtrOutput) -} - -// Load Balancer is accessible only from an IP address in this range. -func (o LoadbalancerOptionsOutput) Acls() pulumi.StringArrayOutput { - return o.ApplyT(func(v LoadbalancerOptions) []string { return v.Acls }).(pulumi.StringArrayOutput) + }).(ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput) } -// We offer Load Balancer metrics observability via ARGUS or external solutions. Not changeable after creation. -func (o LoadbalancerOptionsOutput) Observability() LoadbalancerOptionsObservabilityPtrOutput { - return o.ApplyT(func(v LoadbalancerOptions) *LoadbalancerOptionsObservability { return v.Observability }).(LoadbalancerOptionsObservabilityPtrOutput) +// 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. +func (o ApplicationLoadBalancerOptionsObservabilityMetricsOutput) CredentialsRef() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerOptionsObservabilityMetrics) string { return v.CredentialsRef }).(pulumi.StringOutput) } -// If true, Load Balancer is accessible only via a private network IP address. -func (o LoadbalancerOptionsOutput) PrivateNetworkOnly() pulumi.BoolPtrOutput { - return o.ApplyT(func(v LoadbalancerOptions) *bool { return v.PrivateNetworkOnly }).(pulumi.BoolPtrOutput) +// 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. +func (o ApplicationLoadBalancerOptionsObservabilityMetricsOutput) PushUrl() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerOptionsObservabilityMetrics) string { return v.PushUrl }).(pulumi.StringOutput) } -type LoadbalancerOptionsPtrOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput struct{ *pulumi.OutputState } -func (LoadbalancerOptionsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**LoadbalancerOptions)(nil)).Elem() +func (ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerOptionsObservabilityMetrics)(nil)).Elem() } -func (o LoadbalancerOptionsPtrOutput) ToLoadbalancerOptionsPtrOutput() LoadbalancerOptionsPtrOutput { +func (o ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput) ToApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput() ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput { return o } -func (o LoadbalancerOptionsPtrOutput) ToLoadbalancerOptionsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsPtrOutput { +func (o ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput) ToApplicationLoadBalancerOptionsObservabilityMetricsPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput { return o } -func (o LoadbalancerOptionsPtrOutput) Elem() LoadbalancerOptionsOutput { - return o.ApplyT(func(v *LoadbalancerOptions) LoadbalancerOptions { +func (o ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput) Elem() ApplicationLoadBalancerOptionsObservabilityMetricsOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerOptionsObservabilityMetrics) ApplicationLoadBalancerOptionsObservabilityMetrics { if v != nil { return *v } - var ret LoadbalancerOptions + var ret ApplicationLoadBalancerOptionsObservabilityMetrics return ret - }).(LoadbalancerOptionsOutput) -} - -// Load Balancer is accessible only from an IP address in this range. -func (o LoadbalancerOptionsPtrOutput) Acls() pulumi.StringArrayOutput { - return o.ApplyT(func(v *LoadbalancerOptions) []string { - if v == nil { - return nil - } - return v.Acls - }).(pulumi.StringArrayOutput) + }).(ApplicationLoadBalancerOptionsObservabilityMetricsOutput) } -// We offer Load Balancer metrics observability via ARGUS or external solutions. Not changeable after creation. -func (o LoadbalancerOptionsPtrOutput) Observability() LoadbalancerOptionsObservabilityPtrOutput { - return o.ApplyT(func(v *LoadbalancerOptions) *LoadbalancerOptionsObservability { +// 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. +func (o ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput) CredentialsRef() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerOptionsObservabilityMetrics) *string { if v == nil { return nil } - return v.Observability - }).(LoadbalancerOptionsObservabilityPtrOutput) + return &v.CredentialsRef + }).(pulumi.StringPtrOutput) } -// If true, Load Balancer is accessible only via a private network IP address. -func (o LoadbalancerOptionsPtrOutput) PrivateNetworkOnly() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *LoadbalancerOptions) *bool { +// 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. +func (o ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput) PushUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerOptionsObservabilityMetrics) *string { if v == nil { return nil } - return v.PrivateNetworkOnly - }).(pulumi.BoolPtrOutput) + return &v.PushUrl + }).(pulumi.StringPtrOutput) } -type LoadbalancerOptionsObservability struct { - // Observability logs configuration. Not changeable after creation. - Logs *LoadbalancerOptionsObservabilityLogs `pulumi:"logs"` - // Observability metrics configuration. Not changeable after creation. - Metrics *LoadbalancerOptionsObservabilityMetrics `pulumi:"metrics"` +type ApplicationLoadBalancerTargetPool struct { + ActiveHealthCheck *ApplicationLoadBalancerTargetPoolActiveHealthCheck `pulumi:"activeHealthCheck"` + // Target pool name. + Name string `pulumi:"name"` + // The number identifying the port where each target listens for traffic. + TargetPort int `pulumi:"targetPort"` + // List of all targets which will be used in the pool. Limited to 250. + Targets []ApplicationLoadBalancerTargetPoolTarget `pulumi:"targets"` + // Configuration for TLS bridging. + TlsConfig *ApplicationLoadBalancerTargetPoolTlsConfig `pulumi:"tlsConfig"` } -// LoadbalancerOptionsObservabilityInput is an input type that accepts LoadbalancerOptionsObservabilityArgs and LoadbalancerOptionsObservabilityOutput values. -// You can construct a concrete instance of `LoadbalancerOptionsObservabilityInput` via: +// ApplicationLoadBalancerTargetPoolInput is an input type that accepts ApplicationLoadBalancerTargetPoolArgs and ApplicationLoadBalancerTargetPoolOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerTargetPoolInput` via: // -// LoadbalancerOptionsObservabilityArgs{...} -type LoadbalancerOptionsObservabilityInput interface { +// ApplicationLoadBalancerTargetPoolArgs{...} +type ApplicationLoadBalancerTargetPoolInput interface { pulumi.Input - ToLoadbalancerOptionsObservabilityOutput() LoadbalancerOptionsObservabilityOutput - ToLoadbalancerOptionsObservabilityOutputWithContext(context.Context) LoadbalancerOptionsObservabilityOutput -} - -type LoadbalancerOptionsObservabilityArgs struct { - // Observability logs configuration. Not changeable after creation. - Logs LoadbalancerOptionsObservabilityLogsPtrInput `pulumi:"logs"` - // Observability metrics configuration. Not changeable after creation. - Metrics LoadbalancerOptionsObservabilityMetricsPtrInput `pulumi:"metrics"` -} - -func (LoadbalancerOptionsObservabilityArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerOptionsObservability)(nil)).Elem() + ToApplicationLoadBalancerTargetPoolOutput() ApplicationLoadBalancerTargetPoolOutput + ToApplicationLoadBalancerTargetPoolOutputWithContext(context.Context) ApplicationLoadBalancerTargetPoolOutput } -func (i LoadbalancerOptionsObservabilityArgs) ToLoadbalancerOptionsObservabilityOutput() LoadbalancerOptionsObservabilityOutput { - return i.ToLoadbalancerOptionsObservabilityOutputWithContext(context.Background()) +type ApplicationLoadBalancerTargetPoolArgs struct { + ActiveHealthCheck ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrInput `pulumi:"activeHealthCheck"` + // Target pool name. + Name pulumi.StringInput `pulumi:"name"` + // The number identifying the port where each target listens for traffic. + TargetPort pulumi.IntInput `pulumi:"targetPort"` + // List of all targets which will be used in the pool. Limited to 250. + Targets ApplicationLoadBalancerTargetPoolTargetArrayInput `pulumi:"targets"` + // Configuration for TLS bridging. + TlsConfig ApplicationLoadBalancerTargetPoolTlsConfigPtrInput `pulumi:"tlsConfig"` } -func (i LoadbalancerOptionsObservabilityArgs) ToLoadbalancerOptionsObservabilityOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityOutput) +func (ApplicationLoadBalancerTargetPoolArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerTargetPool)(nil)).Elem() } -func (i LoadbalancerOptionsObservabilityArgs) ToLoadbalancerOptionsObservabilityPtrOutput() LoadbalancerOptionsObservabilityPtrOutput { - return i.ToLoadbalancerOptionsObservabilityPtrOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerTargetPoolArgs) ToApplicationLoadBalancerTargetPoolOutput() ApplicationLoadBalancerTargetPoolOutput { + return i.ToApplicationLoadBalancerTargetPoolOutputWithContext(context.Background()) } -func (i LoadbalancerOptionsObservabilityArgs) ToLoadbalancerOptionsObservabilityPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityOutput).ToLoadbalancerOptionsObservabilityPtrOutputWithContext(ctx) +func (i ApplicationLoadBalancerTargetPoolArgs) ToApplicationLoadBalancerTargetPoolOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerTargetPoolOutput) } -// LoadbalancerOptionsObservabilityPtrInput is an input type that accepts LoadbalancerOptionsObservabilityArgs, LoadbalancerOptionsObservabilityPtr and LoadbalancerOptionsObservabilityPtrOutput values. -// You can construct a concrete instance of `LoadbalancerOptionsObservabilityPtrInput` via: -// -// LoadbalancerOptionsObservabilityArgs{...} -// -// or: +// ApplicationLoadBalancerTargetPoolArrayInput is an input type that accepts ApplicationLoadBalancerTargetPoolArray and ApplicationLoadBalancerTargetPoolArrayOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerTargetPoolArrayInput` via: // -// nil -type LoadbalancerOptionsObservabilityPtrInput interface { +// ApplicationLoadBalancerTargetPoolArray{ ApplicationLoadBalancerTargetPoolArgs{...} } +type ApplicationLoadBalancerTargetPoolArrayInput interface { pulumi.Input - ToLoadbalancerOptionsObservabilityPtrOutput() LoadbalancerOptionsObservabilityPtrOutput - ToLoadbalancerOptionsObservabilityPtrOutputWithContext(context.Context) LoadbalancerOptionsObservabilityPtrOutput + ToApplicationLoadBalancerTargetPoolArrayOutput() ApplicationLoadBalancerTargetPoolArrayOutput + ToApplicationLoadBalancerTargetPoolArrayOutputWithContext(context.Context) ApplicationLoadBalancerTargetPoolArrayOutput } -type loadbalancerOptionsObservabilityPtrType LoadbalancerOptionsObservabilityArgs - -func LoadbalancerOptionsObservabilityPtr(v *LoadbalancerOptionsObservabilityArgs) LoadbalancerOptionsObservabilityPtrInput { - return (*loadbalancerOptionsObservabilityPtrType)(v) -} +type ApplicationLoadBalancerTargetPoolArray []ApplicationLoadBalancerTargetPoolInput -func (*loadbalancerOptionsObservabilityPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**LoadbalancerOptionsObservability)(nil)).Elem() +func (ApplicationLoadBalancerTargetPoolArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerTargetPool)(nil)).Elem() } -func (i *loadbalancerOptionsObservabilityPtrType) ToLoadbalancerOptionsObservabilityPtrOutput() LoadbalancerOptionsObservabilityPtrOutput { - return i.ToLoadbalancerOptionsObservabilityPtrOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerTargetPoolArray) ToApplicationLoadBalancerTargetPoolArrayOutput() ApplicationLoadBalancerTargetPoolArrayOutput { + return i.ToApplicationLoadBalancerTargetPoolArrayOutputWithContext(context.Background()) } -func (i *loadbalancerOptionsObservabilityPtrType) ToLoadbalancerOptionsObservabilityPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityPtrOutput) +func (i ApplicationLoadBalancerTargetPoolArray) ToApplicationLoadBalancerTargetPoolArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerTargetPoolArrayOutput) } -type LoadbalancerOptionsObservabilityOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerTargetPoolOutput struct{ *pulumi.OutputState } -func (LoadbalancerOptionsObservabilityOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerOptionsObservability)(nil)).Elem() +func (ApplicationLoadBalancerTargetPoolOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerTargetPool)(nil)).Elem() } -func (o LoadbalancerOptionsObservabilityOutput) ToLoadbalancerOptionsObservabilityOutput() LoadbalancerOptionsObservabilityOutput { +func (o ApplicationLoadBalancerTargetPoolOutput) ToApplicationLoadBalancerTargetPoolOutput() ApplicationLoadBalancerTargetPoolOutput { return o } -func (o LoadbalancerOptionsObservabilityOutput) ToLoadbalancerOptionsObservabilityOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityOutput { +func (o ApplicationLoadBalancerTargetPoolOutput) ToApplicationLoadBalancerTargetPoolOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolOutput { return o } -func (o LoadbalancerOptionsObservabilityOutput) ToLoadbalancerOptionsObservabilityPtrOutput() LoadbalancerOptionsObservabilityPtrOutput { - return o.ToLoadbalancerOptionsObservabilityPtrOutputWithContext(context.Background()) +func (o ApplicationLoadBalancerTargetPoolOutput) ActiveHealthCheck() ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPool) *ApplicationLoadBalancerTargetPoolActiveHealthCheck { + return v.ActiveHealthCheck + }).(ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput) } -func (o LoadbalancerOptionsObservabilityOutput) ToLoadbalancerOptionsObservabilityPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerOptionsObservability) *LoadbalancerOptionsObservability { - return &v - }).(LoadbalancerOptionsObservabilityPtrOutput) +// Target pool name. +func (o ApplicationLoadBalancerTargetPoolOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPool) string { return v.Name }).(pulumi.StringOutput) } -// Observability logs configuration. Not changeable after creation. -func (o LoadbalancerOptionsObservabilityOutput) Logs() LoadbalancerOptionsObservabilityLogsPtrOutput { - return o.ApplyT(func(v LoadbalancerOptionsObservability) *LoadbalancerOptionsObservabilityLogs { return v.Logs }).(LoadbalancerOptionsObservabilityLogsPtrOutput) +// The number identifying the port where each target listens for traffic. +func (o ApplicationLoadBalancerTargetPoolOutput) TargetPort() pulumi.IntOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPool) int { return v.TargetPort }).(pulumi.IntOutput) } -// Observability metrics configuration. Not changeable after creation. -func (o LoadbalancerOptionsObservabilityOutput) Metrics() LoadbalancerOptionsObservabilityMetricsPtrOutput { - return o.ApplyT(func(v LoadbalancerOptionsObservability) *LoadbalancerOptionsObservabilityMetrics { return v.Metrics }).(LoadbalancerOptionsObservabilityMetricsPtrOutput) +// List of all targets which will be used in the pool. Limited to 250. +func (o ApplicationLoadBalancerTargetPoolOutput) Targets() ApplicationLoadBalancerTargetPoolTargetArrayOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPool) []ApplicationLoadBalancerTargetPoolTarget { return v.Targets }).(ApplicationLoadBalancerTargetPoolTargetArrayOutput) } -type LoadbalancerOptionsObservabilityPtrOutput struct{ *pulumi.OutputState } +// Configuration for TLS bridging. +func (o ApplicationLoadBalancerTargetPoolOutput) TlsConfig() ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPool) *ApplicationLoadBalancerTargetPoolTlsConfig { + return v.TlsConfig + }).(ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput) +} -func (LoadbalancerOptionsObservabilityPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**LoadbalancerOptionsObservability)(nil)).Elem() +type ApplicationLoadBalancerTargetPoolArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerTargetPoolArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerTargetPool)(nil)).Elem() } -func (o LoadbalancerOptionsObservabilityPtrOutput) ToLoadbalancerOptionsObservabilityPtrOutput() LoadbalancerOptionsObservabilityPtrOutput { +func (o ApplicationLoadBalancerTargetPoolArrayOutput) ToApplicationLoadBalancerTargetPoolArrayOutput() ApplicationLoadBalancerTargetPoolArrayOutput { return o } -func (o LoadbalancerOptionsObservabilityPtrOutput) ToLoadbalancerOptionsObservabilityPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityPtrOutput { +func (o ApplicationLoadBalancerTargetPoolArrayOutput) ToApplicationLoadBalancerTargetPoolArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolArrayOutput { return o } -func (o LoadbalancerOptionsObservabilityPtrOutput) Elem() LoadbalancerOptionsObservabilityOutput { - return o.ApplyT(func(v *LoadbalancerOptionsObservability) LoadbalancerOptionsObservability { - if v != nil { - return *v - } - var ret LoadbalancerOptionsObservability - return ret - }).(LoadbalancerOptionsObservabilityOutput) +func (o ApplicationLoadBalancerTargetPoolArrayOutput) Index(i pulumi.IntInput) ApplicationLoadBalancerTargetPoolOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationLoadBalancerTargetPool { + return vs[0].([]ApplicationLoadBalancerTargetPool)[vs[1].(int)] + }).(ApplicationLoadBalancerTargetPoolOutput) } -// Observability logs configuration. Not changeable after creation. -func (o LoadbalancerOptionsObservabilityPtrOutput) Logs() LoadbalancerOptionsObservabilityLogsPtrOutput { - return o.ApplyT(func(v *LoadbalancerOptionsObservability) *LoadbalancerOptionsObservabilityLogs { - if v == nil { - return nil - } - return v.Logs - }).(LoadbalancerOptionsObservabilityLogsPtrOutput) +type ApplicationLoadBalancerTargetPoolActiveHealthCheck struct { + // Healthy threshold of the health checking. + HealthyThreshold int `pulumi:"healthyThreshold"` + // Options for the HTTP health checking. + HttpHealthChecks *ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks `pulumi:"httpHealthChecks"` + // Interval duration of health checking in seconds. + Interval string `pulumi:"interval"` + // Interval duration threshold of the health checking in seconds. + IntervalJitter string `pulumi:"intervalJitter"` + // Active health checking timeout duration in seconds. + Timeout string `pulumi:"timeout"` + // Unhealthy threshold of the health checking. + UnhealthyThreshold int `pulumi:"unhealthyThreshold"` } -// Observability metrics configuration. Not changeable after creation. -func (o LoadbalancerOptionsObservabilityPtrOutput) Metrics() LoadbalancerOptionsObservabilityMetricsPtrOutput { - return o.ApplyT(func(v *LoadbalancerOptionsObservability) *LoadbalancerOptionsObservabilityMetrics { - if v == nil { - return nil - } - return v.Metrics - }).(LoadbalancerOptionsObservabilityMetricsPtrOutput) -} - -type LoadbalancerOptionsObservabilityLogs struct { - // Credentials reference for logs. Not changeable after creation. - CredentialsRef *string `pulumi:"credentialsRef"` - // Credentials reference for logs. Not changeable after creation. - PushUrl *string `pulumi:"pushUrl"` -} - -// LoadbalancerOptionsObservabilityLogsInput is an input type that accepts LoadbalancerOptionsObservabilityLogsArgs and LoadbalancerOptionsObservabilityLogsOutput values. -// You can construct a concrete instance of `LoadbalancerOptionsObservabilityLogsInput` via: +// ApplicationLoadBalancerTargetPoolActiveHealthCheckInput is an input type that accepts ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs and ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerTargetPoolActiveHealthCheckInput` via: // -// LoadbalancerOptionsObservabilityLogsArgs{...} -type LoadbalancerOptionsObservabilityLogsInput interface { +// ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs{...} +type ApplicationLoadBalancerTargetPoolActiveHealthCheckInput interface { pulumi.Input - ToLoadbalancerOptionsObservabilityLogsOutput() LoadbalancerOptionsObservabilityLogsOutput - ToLoadbalancerOptionsObservabilityLogsOutputWithContext(context.Context) LoadbalancerOptionsObservabilityLogsOutput + ToApplicationLoadBalancerTargetPoolActiveHealthCheckOutput() ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput + ToApplicationLoadBalancerTargetPoolActiveHealthCheckOutputWithContext(context.Context) ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput } -type LoadbalancerOptionsObservabilityLogsArgs struct { - // Credentials reference for logs. Not changeable after creation. - CredentialsRef pulumi.StringPtrInput `pulumi:"credentialsRef"` - // Credentials reference for logs. Not changeable after creation. - PushUrl pulumi.StringPtrInput `pulumi:"pushUrl"` +type ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs struct { + // Healthy threshold of the health checking. + HealthyThreshold pulumi.IntInput `pulumi:"healthyThreshold"` + // Options for the HTTP health checking. + HttpHealthChecks ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrInput `pulumi:"httpHealthChecks"` + // Interval duration of health checking in seconds. + Interval pulumi.StringInput `pulumi:"interval"` + // Interval duration threshold of the health checking in seconds. + IntervalJitter pulumi.StringInput `pulumi:"intervalJitter"` + // Active health checking timeout duration in seconds. + Timeout pulumi.StringInput `pulumi:"timeout"` + // Unhealthy threshold of the health checking. + UnhealthyThreshold pulumi.IntInput `pulumi:"unhealthyThreshold"` } -func (LoadbalancerOptionsObservabilityLogsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerOptionsObservabilityLogs)(nil)).Elem() +func (ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerTargetPoolActiveHealthCheck)(nil)).Elem() } -func (i LoadbalancerOptionsObservabilityLogsArgs) ToLoadbalancerOptionsObservabilityLogsOutput() LoadbalancerOptionsObservabilityLogsOutput { - return i.ToLoadbalancerOptionsObservabilityLogsOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs) ToApplicationLoadBalancerTargetPoolActiveHealthCheckOutput() ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput { + return i.ToApplicationLoadBalancerTargetPoolActiveHealthCheckOutputWithContext(context.Background()) } -func (i LoadbalancerOptionsObservabilityLogsArgs) ToLoadbalancerOptionsObservabilityLogsOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityLogsOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityLogsOutput) +func (i ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs) ToApplicationLoadBalancerTargetPoolActiveHealthCheckOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) } -func (i LoadbalancerOptionsObservabilityLogsArgs) ToLoadbalancerOptionsObservabilityLogsPtrOutput() LoadbalancerOptionsObservabilityLogsPtrOutput { - return i.ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs) ToApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput() ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput { + return i.ToApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutputWithContext(context.Background()) } -func (i LoadbalancerOptionsObservabilityLogsArgs) ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityLogsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityLogsOutput).ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(ctx) +func (i ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs) ToApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput).ToApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutputWithContext(ctx) } -// LoadbalancerOptionsObservabilityLogsPtrInput is an input type that accepts LoadbalancerOptionsObservabilityLogsArgs, LoadbalancerOptionsObservabilityLogsPtr and LoadbalancerOptionsObservabilityLogsPtrOutput values. -// You can construct a concrete instance of `LoadbalancerOptionsObservabilityLogsPtrInput` via: +// ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrInput is an input type that accepts ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs, ApplicationLoadBalancerTargetPoolActiveHealthCheckPtr and ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrInput` via: // -// LoadbalancerOptionsObservabilityLogsArgs{...} +// ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs{...} // // or: // // nil -type LoadbalancerOptionsObservabilityLogsPtrInput interface { +type ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrInput interface { pulumi.Input - ToLoadbalancerOptionsObservabilityLogsPtrOutput() LoadbalancerOptionsObservabilityLogsPtrOutput - ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(context.Context) LoadbalancerOptionsObservabilityLogsPtrOutput + ToApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput() ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput + ToApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutputWithContext(context.Context) ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput } -type loadbalancerOptionsObservabilityLogsPtrType LoadbalancerOptionsObservabilityLogsArgs +type applicationLoadBalancerTargetPoolActiveHealthCheckPtrType ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs -func LoadbalancerOptionsObservabilityLogsPtr(v *LoadbalancerOptionsObservabilityLogsArgs) LoadbalancerOptionsObservabilityLogsPtrInput { - return (*loadbalancerOptionsObservabilityLogsPtrType)(v) +func ApplicationLoadBalancerTargetPoolActiveHealthCheckPtr(v *ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs) ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrInput { + return (*applicationLoadBalancerTargetPoolActiveHealthCheckPtrType)(v) } -func (*loadbalancerOptionsObservabilityLogsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**LoadbalancerOptionsObservabilityLogs)(nil)).Elem() +func (*applicationLoadBalancerTargetPoolActiveHealthCheckPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerTargetPoolActiveHealthCheck)(nil)).Elem() } -func (i *loadbalancerOptionsObservabilityLogsPtrType) ToLoadbalancerOptionsObservabilityLogsPtrOutput() LoadbalancerOptionsObservabilityLogsPtrOutput { - return i.ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(context.Background()) +func (i *applicationLoadBalancerTargetPoolActiveHealthCheckPtrType) ToApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput() ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput { + return i.ToApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutputWithContext(context.Background()) } -func (i *loadbalancerOptionsObservabilityLogsPtrType) ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityLogsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityLogsPtrOutput) +func (i *applicationLoadBalancerTargetPoolActiveHealthCheckPtrType) ToApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput) } -type LoadbalancerOptionsObservabilityLogsOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput struct{ *pulumi.OutputState } -func (LoadbalancerOptionsObservabilityLogsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerOptionsObservabilityLogs)(nil)).Elem() +func (ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerTargetPoolActiveHealthCheck)(nil)).Elem() } -func (o LoadbalancerOptionsObservabilityLogsOutput) ToLoadbalancerOptionsObservabilityLogsOutput() LoadbalancerOptionsObservabilityLogsOutput { +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) ToApplicationLoadBalancerTargetPoolActiveHealthCheckOutput() ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput { return o } -func (o LoadbalancerOptionsObservabilityLogsOutput) ToLoadbalancerOptionsObservabilityLogsOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityLogsOutput { +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) ToApplicationLoadBalancerTargetPoolActiveHealthCheckOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput { return o } -func (o LoadbalancerOptionsObservabilityLogsOutput) ToLoadbalancerOptionsObservabilityLogsPtrOutput() LoadbalancerOptionsObservabilityLogsPtrOutput { - return o.ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(context.Background()) +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) ToApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput() ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput { + return o.ToApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutputWithContext(context.Background()) } -func (o LoadbalancerOptionsObservabilityLogsOutput) ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityLogsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerOptionsObservabilityLogs) *LoadbalancerOptionsObservabilityLogs { +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) ToApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationLoadBalancerTargetPoolActiveHealthCheck) *ApplicationLoadBalancerTargetPoolActiveHealthCheck { return &v - }).(LoadbalancerOptionsObservabilityLogsPtrOutput) + }).(ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput) } -// Credentials reference for logs. Not changeable after creation. -func (o LoadbalancerOptionsObservabilityLogsOutput) CredentialsRef() pulumi.StringPtrOutput { - return o.ApplyT(func(v LoadbalancerOptionsObservabilityLogs) *string { return v.CredentialsRef }).(pulumi.StringPtrOutput) +// Healthy threshold of the health checking. +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) HealthyThreshold() pulumi.IntOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPoolActiveHealthCheck) int { return v.HealthyThreshold }).(pulumi.IntOutput) } -// Credentials reference for logs. Not changeable after creation. -func (o LoadbalancerOptionsObservabilityLogsOutput) PushUrl() pulumi.StringPtrOutput { - return o.ApplyT(func(v LoadbalancerOptionsObservabilityLogs) *string { return v.PushUrl }).(pulumi.StringPtrOutput) +// Options for the HTTP health checking. +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) HttpHealthChecks() ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPoolActiveHealthCheck) *ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks { + return v.HttpHealthChecks + }).(ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput) } -type LoadbalancerOptionsObservabilityLogsPtrOutput struct{ *pulumi.OutputState } +// Interval duration of health checking in seconds. +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) Interval() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPoolActiveHealthCheck) string { return v.Interval }).(pulumi.StringOutput) +} -func (LoadbalancerOptionsObservabilityLogsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**LoadbalancerOptionsObservabilityLogs)(nil)).Elem() +// Interval duration threshold of the health checking in seconds. +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) IntervalJitter() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPoolActiveHealthCheck) string { return v.IntervalJitter }).(pulumi.StringOutput) } -func (o LoadbalancerOptionsObservabilityLogsPtrOutput) ToLoadbalancerOptionsObservabilityLogsPtrOutput() LoadbalancerOptionsObservabilityLogsPtrOutput { +// Active health checking timeout duration in seconds. +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) Timeout() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPoolActiveHealthCheck) string { return v.Timeout }).(pulumi.StringOutput) +} + +// Unhealthy threshold of the health checking. +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) UnhealthyThreshold() pulumi.IntOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPoolActiveHealthCheck) int { return v.UnhealthyThreshold }).(pulumi.IntOutput) +} + +type ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerTargetPoolActiveHealthCheck)(nil)).Elem() +} + +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput) ToApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput() ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput { return o } -func (o LoadbalancerOptionsObservabilityLogsPtrOutput) ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityLogsPtrOutput { +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput) ToApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput { return o } -func (o LoadbalancerOptionsObservabilityLogsPtrOutput) Elem() LoadbalancerOptionsObservabilityLogsOutput { - return o.ApplyT(func(v *LoadbalancerOptionsObservabilityLogs) LoadbalancerOptionsObservabilityLogs { +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput) Elem() ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerTargetPoolActiveHealthCheck) ApplicationLoadBalancerTargetPoolActiveHealthCheck { if v != nil { return *v } - var ret LoadbalancerOptionsObservabilityLogs + var ret ApplicationLoadBalancerTargetPoolActiveHealthCheck return ret - }).(LoadbalancerOptionsObservabilityLogsOutput) + }).(ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) } -// Credentials reference for logs. Not changeable after creation. -func (o LoadbalancerOptionsObservabilityLogsPtrOutput) CredentialsRef() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LoadbalancerOptionsObservabilityLogs) *string { +// Healthy threshold of the health checking. +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput) HealthyThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerTargetPoolActiveHealthCheck) *int { if v == nil { return nil } - return v.CredentialsRef + return &v.HealthyThreshold + }).(pulumi.IntPtrOutput) +} + +// Options for the HTTP health checking. +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput) HttpHealthChecks() ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerTargetPoolActiveHealthCheck) *ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks { + if v == nil { + return nil + } + return v.HttpHealthChecks + }).(ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput) +} + +// Interval duration of health checking in seconds. +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput) Interval() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerTargetPoolActiveHealthCheck) *string { + if v == nil { + return nil + } + return &v.Interval }).(pulumi.StringPtrOutput) } -// Credentials reference for logs. Not changeable after creation. -func (o LoadbalancerOptionsObservabilityLogsPtrOutput) PushUrl() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LoadbalancerOptionsObservabilityLogs) *string { +// Interval duration threshold of the health checking in seconds. +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput) IntervalJitter() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerTargetPoolActiveHealthCheck) *string { if v == nil { return nil } - return v.PushUrl + return &v.IntervalJitter }).(pulumi.StringPtrOutput) } -type LoadbalancerOptionsObservabilityMetrics struct { - // Credentials reference for metrics. Not changeable after creation. - CredentialsRef *string `pulumi:"credentialsRef"` - // Credentials reference for metrics. Not changeable after creation. - PushUrl *string `pulumi:"pushUrl"` +// Active health checking timeout duration in seconds. +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput) Timeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerTargetPoolActiveHealthCheck) *string { + if v == nil { + return nil + } + return &v.Timeout + }).(pulumi.StringPtrOutput) } -// LoadbalancerOptionsObservabilityMetricsInput is an input type that accepts LoadbalancerOptionsObservabilityMetricsArgs and LoadbalancerOptionsObservabilityMetricsOutput values. -// You can construct a concrete instance of `LoadbalancerOptionsObservabilityMetricsInput` via: +// Unhealthy threshold of the health checking. +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput) UnhealthyThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerTargetPoolActiveHealthCheck) *int { + if v == nil { + return nil + } + return &v.UnhealthyThreshold + }).(pulumi.IntPtrOutput) +} + +type ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks struct { + // List of HTTP status codes that indicate a healthy response. + OkStatuses []string `pulumi:"okStatuses"` + // Path to send the health check request to. + Path string `pulumi:"path"` +} + +// ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksInput is an input type that accepts ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs and ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksInput` via: // -// LoadbalancerOptionsObservabilityMetricsArgs{...} -type LoadbalancerOptionsObservabilityMetricsInput interface { +// ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs{...} +type ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksInput interface { pulumi.Input - ToLoadbalancerOptionsObservabilityMetricsOutput() LoadbalancerOptionsObservabilityMetricsOutput - ToLoadbalancerOptionsObservabilityMetricsOutputWithContext(context.Context) LoadbalancerOptionsObservabilityMetricsOutput + ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput() ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput + ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutputWithContext(context.Context) ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput } -type LoadbalancerOptionsObservabilityMetricsArgs struct { - // Credentials reference for metrics. Not changeable after creation. - CredentialsRef pulumi.StringPtrInput `pulumi:"credentialsRef"` - // Credentials reference for metrics. Not changeable after creation. - PushUrl pulumi.StringPtrInput `pulumi:"pushUrl"` +type ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs struct { + // List of HTTP status codes that indicate a healthy response. + OkStatuses pulumi.StringArrayInput `pulumi:"okStatuses"` + // Path to send the health check request to. + Path pulumi.StringInput `pulumi:"path"` } -func (LoadbalancerOptionsObservabilityMetricsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerOptionsObservabilityMetrics)(nil)).Elem() +func (ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks)(nil)).Elem() } -func (i LoadbalancerOptionsObservabilityMetricsArgs) ToLoadbalancerOptionsObservabilityMetricsOutput() LoadbalancerOptionsObservabilityMetricsOutput { - return i.ToLoadbalancerOptionsObservabilityMetricsOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs) ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput() ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput { + return i.ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutputWithContext(context.Background()) } -func (i LoadbalancerOptionsObservabilityMetricsArgs) ToLoadbalancerOptionsObservabilityMetricsOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityMetricsOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityMetricsOutput) +func (i ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs) ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput) } -func (i LoadbalancerOptionsObservabilityMetricsArgs) ToLoadbalancerOptionsObservabilityMetricsPtrOutput() LoadbalancerOptionsObservabilityMetricsPtrOutput { - return i.ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs) ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput() ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput { + return i.ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutputWithContext(context.Background()) } -func (i LoadbalancerOptionsObservabilityMetricsArgs) ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityMetricsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityMetricsOutput).ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(ctx) +func (i ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs) ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput).ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutputWithContext(ctx) } -// LoadbalancerOptionsObservabilityMetricsPtrInput is an input type that accepts LoadbalancerOptionsObservabilityMetricsArgs, LoadbalancerOptionsObservabilityMetricsPtr and LoadbalancerOptionsObservabilityMetricsPtrOutput values. -// You can construct a concrete instance of `LoadbalancerOptionsObservabilityMetricsPtrInput` via: +// ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrInput is an input type that accepts ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs, ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtr and ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrInput` via: // -// LoadbalancerOptionsObservabilityMetricsArgs{...} +// ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs{...} // // or: // // nil -type LoadbalancerOptionsObservabilityMetricsPtrInput interface { +type ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrInput interface { pulumi.Input - ToLoadbalancerOptionsObservabilityMetricsPtrOutput() LoadbalancerOptionsObservabilityMetricsPtrOutput - ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(context.Context) LoadbalancerOptionsObservabilityMetricsPtrOutput + ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput() ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput + ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutputWithContext(context.Context) ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput } -type loadbalancerOptionsObservabilityMetricsPtrType LoadbalancerOptionsObservabilityMetricsArgs +type applicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrType ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs -func LoadbalancerOptionsObservabilityMetricsPtr(v *LoadbalancerOptionsObservabilityMetricsArgs) LoadbalancerOptionsObservabilityMetricsPtrInput { - return (*loadbalancerOptionsObservabilityMetricsPtrType)(v) +func ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtr(v *ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs) ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrInput { + return (*applicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrType)(v) } -func (*loadbalancerOptionsObservabilityMetricsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**LoadbalancerOptionsObservabilityMetrics)(nil)).Elem() +func (*applicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks)(nil)).Elem() } -func (i *loadbalancerOptionsObservabilityMetricsPtrType) ToLoadbalancerOptionsObservabilityMetricsPtrOutput() LoadbalancerOptionsObservabilityMetricsPtrOutput { - return i.ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(context.Background()) +func (i *applicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrType) ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput() ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput { + return i.ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutputWithContext(context.Background()) } -func (i *loadbalancerOptionsObservabilityMetricsPtrType) ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityMetricsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityMetricsPtrOutput) +func (i *applicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrType) ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput) } -type LoadbalancerOptionsObservabilityMetricsOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput struct{ *pulumi.OutputState } -func (LoadbalancerOptionsObservabilityMetricsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerOptionsObservabilityMetrics)(nil)).Elem() +func (ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks)(nil)).Elem() } -func (o LoadbalancerOptionsObservabilityMetricsOutput) ToLoadbalancerOptionsObservabilityMetricsOutput() LoadbalancerOptionsObservabilityMetricsOutput { +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput) ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput() ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput { return o } -func (o LoadbalancerOptionsObservabilityMetricsOutput) ToLoadbalancerOptionsObservabilityMetricsOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityMetricsOutput { +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput) ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput { return o } -func (o LoadbalancerOptionsObservabilityMetricsOutput) ToLoadbalancerOptionsObservabilityMetricsPtrOutput() LoadbalancerOptionsObservabilityMetricsPtrOutput { - return o.ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(context.Background()) +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput) ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput() ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput { + return o.ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutputWithContext(context.Background()) } -func (o LoadbalancerOptionsObservabilityMetricsOutput) ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityMetricsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerOptionsObservabilityMetrics) *LoadbalancerOptionsObservabilityMetrics { +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput) ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks) *ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks { return &v - }).(LoadbalancerOptionsObservabilityMetricsPtrOutput) + }).(ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput) } -// Credentials reference for metrics. Not changeable after creation. -func (o LoadbalancerOptionsObservabilityMetricsOutput) CredentialsRef() pulumi.StringPtrOutput { - return o.ApplyT(func(v LoadbalancerOptionsObservabilityMetrics) *string { return v.CredentialsRef }).(pulumi.StringPtrOutput) +// List of HTTP status codes that indicate a healthy response. +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput) OkStatuses() pulumi.StringArrayOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks) []string { + return v.OkStatuses + }).(pulumi.StringArrayOutput) } -// Credentials reference for metrics. Not changeable after creation. -func (o LoadbalancerOptionsObservabilityMetricsOutput) PushUrl() pulumi.StringPtrOutput { - return o.ApplyT(func(v LoadbalancerOptionsObservabilityMetrics) *string { return v.PushUrl }).(pulumi.StringPtrOutput) +// Path to send the health check request to. +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks) string { return v.Path }).(pulumi.StringOutput) } -type LoadbalancerOptionsObservabilityMetricsPtrOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput struct{ *pulumi.OutputState } -func (LoadbalancerOptionsObservabilityMetricsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**LoadbalancerOptionsObservabilityMetrics)(nil)).Elem() +func (ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks)(nil)).Elem() } -func (o LoadbalancerOptionsObservabilityMetricsPtrOutput) ToLoadbalancerOptionsObservabilityMetricsPtrOutput() LoadbalancerOptionsObservabilityMetricsPtrOutput { +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput) ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput() ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput { return o } -func (o LoadbalancerOptionsObservabilityMetricsPtrOutput) ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityMetricsPtrOutput { +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput) ToApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput { return o } -func (o LoadbalancerOptionsObservabilityMetricsPtrOutput) Elem() LoadbalancerOptionsObservabilityMetricsOutput { - return o.ApplyT(func(v *LoadbalancerOptionsObservabilityMetrics) LoadbalancerOptionsObservabilityMetrics { +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput) Elem() ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks) ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks { if v != nil { return *v } - var ret LoadbalancerOptionsObservabilityMetrics + var ret ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks return ret - }).(LoadbalancerOptionsObservabilityMetricsOutput) + }).(ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput) } -// Credentials reference for metrics. Not changeable after creation. -func (o LoadbalancerOptionsObservabilityMetricsPtrOutput) CredentialsRef() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LoadbalancerOptionsObservabilityMetrics) *string { +// List of HTTP status codes that indicate a healthy response. +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput) OkStatuses() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks) []string { if v == nil { return nil } - return v.CredentialsRef - }).(pulumi.StringPtrOutput) + return v.OkStatuses + }).(pulumi.StringArrayOutput) } -// Credentials reference for metrics. Not changeable after creation. -func (o LoadbalancerOptionsObservabilityMetricsPtrOutput) PushUrl() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LoadbalancerOptionsObservabilityMetrics) *string { +// Path to send the health check request to. +func (o ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks) *string { if v == nil { return nil } - return v.PushUrl + return &v.Path }).(pulumi.StringPtrOutput) } -type LoadbalancerTargetPool struct { - ActiveHealthCheck *LoadbalancerTargetPoolActiveHealthCheck `pulumi:"activeHealthCheck"` - // Target pool name. - Name string `pulumi:"name"` - // Here you can setup various session persistence options, so far only "`useSourceIpAddress`" is supported. - SessionPersistence *LoadbalancerTargetPoolSessionPersistence `pulumi:"sessionPersistence"` - // Identical port number where each target listens for traffic. - TargetPort int `pulumi:"targetPort"` - // List of all targets which will be used in the pool. Limited to 1000. - Targets []LoadbalancerTargetPoolTarget `pulumi:"targets"` +type ApplicationLoadBalancerTargetPoolTarget struct { + // Target display name + DisplayName *string `pulumi:"displayName"` + // Private target IP, which must by unique within a target pool. + Ip string `pulumi:"ip"` } -// LoadbalancerTargetPoolInput is an input type that accepts LoadbalancerTargetPoolArgs and LoadbalancerTargetPoolOutput values. -// You can construct a concrete instance of `LoadbalancerTargetPoolInput` via: +// ApplicationLoadBalancerTargetPoolTargetInput is an input type that accepts ApplicationLoadBalancerTargetPoolTargetArgs and ApplicationLoadBalancerTargetPoolTargetOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerTargetPoolTargetInput` via: // -// LoadbalancerTargetPoolArgs{...} -type LoadbalancerTargetPoolInput interface { +// ApplicationLoadBalancerTargetPoolTargetArgs{...} +type ApplicationLoadBalancerTargetPoolTargetInput interface { pulumi.Input - ToLoadbalancerTargetPoolOutput() LoadbalancerTargetPoolOutput - ToLoadbalancerTargetPoolOutputWithContext(context.Context) LoadbalancerTargetPoolOutput + ToApplicationLoadBalancerTargetPoolTargetOutput() ApplicationLoadBalancerTargetPoolTargetOutput + ToApplicationLoadBalancerTargetPoolTargetOutputWithContext(context.Context) ApplicationLoadBalancerTargetPoolTargetOutput } -type LoadbalancerTargetPoolArgs struct { - ActiveHealthCheck LoadbalancerTargetPoolActiveHealthCheckPtrInput `pulumi:"activeHealthCheck"` - // Target pool name. - Name pulumi.StringInput `pulumi:"name"` - // Here you can setup various session persistence options, so far only "`useSourceIpAddress`" is supported. - SessionPersistence LoadbalancerTargetPoolSessionPersistencePtrInput `pulumi:"sessionPersistence"` - // Identical port number where each target listens for traffic. - TargetPort pulumi.IntInput `pulumi:"targetPort"` - // List of all targets which will be used in the pool. Limited to 1000. - Targets LoadbalancerTargetPoolTargetArrayInput `pulumi:"targets"` +type ApplicationLoadBalancerTargetPoolTargetArgs struct { + // Target display name + DisplayName pulumi.StringPtrInput `pulumi:"displayName"` + // Private target IP, which must by unique within a target pool. + Ip pulumi.StringInput `pulumi:"ip"` } -func (LoadbalancerTargetPoolArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerTargetPool)(nil)).Elem() +func (ApplicationLoadBalancerTargetPoolTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerTargetPoolTarget)(nil)).Elem() } -func (i LoadbalancerTargetPoolArgs) ToLoadbalancerTargetPoolOutput() LoadbalancerTargetPoolOutput { - return i.ToLoadbalancerTargetPoolOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerTargetPoolTargetArgs) ToApplicationLoadBalancerTargetPoolTargetOutput() ApplicationLoadBalancerTargetPoolTargetOutput { + return i.ToApplicationLoadBalancerTargetPoolTargetOutputWithContext(context.Background()) } -func (i LoadbalancerTargetPoolArgs) ToLoadbalancerTargetPoolOutputWithContext(ctx context.Context) LoadbalancerTargetPoolOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolOutput) +func (i ApplicationLoadBalancerTargetPoolTargetArgs) ToApplicationLoadBalancerTargetPoolTargetOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerTargetPoolTargetOutput) } -// LoadbalancerTargetPoolArrayInput is an input type that accepts LoadbalancerTargetPoolArray and LoadbalancerTargetPoolArrayOutput values. -// You can construct a concrete instance of `LoadbalancerTargetPoolArrayInput` via: +// ApplicationLoadBalancerTargetPoolTargetArrayInput is an input type that accepts ApplicationLoadBalancerTargetPoolTargetArray and ApplicationLoadBalancerTargetPoolTargetArrayOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerTargetPoolTargetArrayInput` via: // -// LoadbalancerTargetPoolArray{ LoadbalancerTargetPoolArgs{...} } -type LoadbalancerTargetPoolArrayInput interface { +// ApplicationLoadBalancerTargetPoolTargetArray{ ApplicationLoadBalancerTargetPoolTargetArgs{...} } +type ApplicationLoadBalancerTargetPoolTargetArrayInput interface { pulumi.Input - ToLoadbalancerTargetPoolArrayOutput() LoadbalancerTargetPoolArrayOutput - ToLoadbalancerTargetPoolArrayOutputWithContext(context.Context) LoadbalancerTargetPoolArrayOutput + ToApplicationLoadBalancerTargetPoolTargetArrayOutput() ApplicationLoadBalancerTargetPoolTargetArrayOutput + ToApplicationLoadBalancerTargetPoolTargetArrayOutputWithContext(context.Context) ApplicationLoadBalancerTargetPoolTargetArrayOutput } -type LoadbalancerTargetPoolArray []LoadbalancerTargetPoolInput +type ApplicationLoadBalancerTargetPoolTargetArray []ApplicationLoadBalancerTargetPoolTargetInput -func (LoadbalancerTargetPoolArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]LoadbalancerTargetPool)(nil)).Elem() +func (ApplicationLoadBalancerTargetPoolTargetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerTargetPoolTarget)(nil)).Elem() } -func (i LoadbalancerTargetPoolArray) ToLoadbalancerTargetPoolArrayOutput() LoadbalancerTargetPoolArrayOutput { - return i.ToLoadbalancerTargetPoolArrayOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerTargetPoolTargetArray) ToApplicationLoadBalancerTargetPoolTargetArrayOutput() ApplicationLoadBalancerTargetPoolTargetArrayOutput { + return i.ToApplicationLoadBalancerTargetPoolTargetArrayOutputWithContext(context.Background()) } -func (i LoadbalancerTargetPoolArray) ToLoadbalancerTargetPoolArrayOutputWithContext(ctx context.Context) LoadbalancerTargetPoolArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolArrayOutput) +func (i ApplicationLoadBalancerTargetPoolTargetArray) ToApplicationLoadBalancerTargetPoolTargetArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolTargetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerTargetPoolTargetArrayOutput) } -type LoadbalancerTargetPoolOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerTargetPoolTargetOutput struct{ *pulumi.OutputState } -func (LoadbalancerTargetPoolOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerTargetPool)(nil)).Elem() +func (ApplicationLoadBalancerTargetPoolTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerTargetPoolTarget)(nil)).Elem() } -func (o LoadbalancerTargetPoolOutput) ToLoadbalancerTargetPoolOutput() LoadbalancerTargetPoolOutput { +func (o ApplicationLoadBalancerTargetPoolTargetOutput) ToApplicationLoadBalancerTargetPoolTargetOutput() ApplicationLoadBalancerTargetPoolTargetOutput { return o } -func (o LoadbalancerTargetPoolOutput) ToLoadbalancerTargetPoolOutputWithContext(ctx context.Context) LoadbalancerTargetPoolOutput { +func (o ApplicationLoadBalancerTargetPoolTargetOutput) ToApplicationLoadBalancerTargetPoolTargetOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolTargetOutput { return o } -func (o LoadbalancerTargetPoolOutput) ActiveHealthCheck() LoadbalancerTargetPoolActiveHealthCheckPtrOutput { - return o.ApplyT(func(v LoadbalancerTargetPool) *LoadbalancerTargetPoolActiveHealthCheck { return v.ActiveHealthCheck }).(LoadbalancerTargetPoolActiveHealthCheckPtrOutput) -} - -// Target pool name. -func (o LoadbalancerTargetPoolOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v LoadbalancerTargetPool) string { return v.Name }).(pulumi.StringOutput) -} - -// Here you can setup various session persistence options, so far only "`useSourceIpAddress`" is supported. -func (o LoadbalancerTargetPoolOutput) SessionPersistence() LoadbalancerTargetPoolSessionPersistencePtrOutput { - return o.ApplyT(func(v LoadbalancerTargetPool) *LoadbalancerTargetPoolSessionPersistence { return v.SessionPersistence }).(LoadbalancerTargetPoolSessionPersistencePtrOutput) -} - -// Identical port number where each target listens for traffic. -func (o LoadbalancerTargetPoolOutput) TargetPort() pulumi.IntOutput { - return o.ApplyT(func(v LoadbalancerTargetPool) int { return v.TargetPort }).(pulumi.IntOutput) +// Target display name +func (o ApplicationLoadBalancerTargetPoolTargetOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPoolTarget) *string { return v.DisplayName }).(pulumi.StringPtrOutput) } -// List of all targets which will be used in the pool. Limited to 1000. -func (o LoadbalancerTargetPoolOutput) Targets() LoadbalancerTargetPoolTargetArrayOutput { - return o.ApplyT(func(v LoadbalancerTargetPool) []LoadbalancerTargetPoolTarget { return v.Targets }).(LoadbalancerTargetPoolTargetArrayOutput) +// Private target IP, which must by unique within a target pool. +func (o ApplicationLoadBalancerTargetPoolTargetOutput) Ip() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPoolTarget) string { return v.Ip }).(pulumi.StringOutput) } -type LoadbalancerTargetPoolArrayOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerTargetPoolTargetArrayOutput struct{ *pulumi.OutputState } -func (LoadbalancerTargetPoolArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]LoadbalancerTargetPool)(nil)).Elem() +func (ApplicationLoadBalancerTargetPoolTargetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationLoadBalancerTargetPoolTarget)(nil)).Elem() } -func (o LoadbalancerTargetPoolArrayOutput) ToLoadbalancerTargetPoolArrayOutput() LoadbalancerTargetPoolArrayOutput { +func (o ApplicationLoadBalancerTargetPoolTargetArrayOutput) ToApplicationLoadBalancerTargetPoolTargetArrayOutput() ApplicationLoadBalancerTargetPoolTargetArrayOutput { return o } -func (o LoadbalancerTargetPoolArrayOutput) ToLoadbalancerTargetPoolArrayOutputWithContext(ctx context.Context) LoadbalancerTargetPoolArrayOutput { +func (o ApplicationLoadBalancerTargetPoolTargetArrayOutput) ToApplicationLoadBalancerTargetPoolTargetArrayOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolTargetArrayOutput { return o } -func (o LoadbalancerTargetPoolArrayOutput) Index(i pulumi.IntInput) LoadbalancerTargetPoolOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) LoadbalancerTargetPool { - return vs[0].([]LoadbalancerTargetPool)[vs[1].(int)] - }).(LoadbalancerTargetPoolOutput) +func (o ApplicationLoadBalancerTargetPoolTargetArrayOutput) Index(i pulumi.IntInput) ApplicationLoadBalancerTargetPoolTargetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationLoadBalancerTargetPoolTarget { + return vs[0].([]ApplicationLoadBalancerTargetPoolTarget)[vs[1].(int)] + }).(ApplicationLoadBalancerTargetPoolTargetOutput) } -type LoadbalancerTargetPoolActiveHealthCheck struct { - // Healthy threshold of the health checking. - HealthyThreshold *int `pulumi:"healthyThreshold"` - // Interval duration of health checking in seconds. - Interval *string `pulumi:"interval"` - // Interval duration threshold of the health checking in seconds. - IntervalJitter *string `pulumi:"intervalJitter"` - // Active health checking timeout duration in seconds. - Timeout *string `pulumi:"timeout"` - // Unhealthy threshold of the health checking. - UnhealthyThreshold *int `pulumi:"unhealthyThreshold"` +type ApplicationLoadBalancerTargetPoolTlsConfig struct { + // 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. + CustomCa *string `pulumi:"customCa"` + // 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. + Enabled *bool `pulumi:"enabled"` + // 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! + SkipCertificateValidation *bool `pulumi:"skipCertificateValidation"` } -// LoadbalancerTargetPoolActiveHealthCheckInput is an input type that accepts LoadbalancerTargetPoolActiveHealthCheckArgs and LoadbalancerTargetPoolActiveHealthCheckOutput values. -// You can construct a concrete instance of `LoadbalancerTargetPoolActiveHealthCheckInput` via: +// ApplicationLoadBalancerTargetPoolTlsConfigInput is an input type that accepts ApplicationLoadBalancerTargetPoolTlsConfigArgs and ApplicationLoadBalancerTargetPoolTlsConfigOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerTargetPoolTlsConfigInput` via: // -// LoadbalancerTargetPoolActiveHealthCheckArgs{...} -type LoadbalancerTargetPoolActiveHealthCheckInput interface { +// ApplicationLoadBalancerTargetPoolTlsConfigArgs{...} +type ApplicationLoadBalancerTargetPoolTlsConfigInput interface { pulumi.Input - ToLoadbalancerTargetPoolActiveHealthCheckOutput() LoadbalancerTargetPoolActiveHealthCheckOutput - ToLoadbalancerTargetPoolActiveHealthCheckOutputWithContext(context.Context) LoadbalancerTargetPoolActiveHealthCheckOutput + ToApplicationLoadBalancerTargetPoolTlsConfigOutput() ApplicationLoadBalancerTargetPoolTlsConfigOutput + ToApplicationLoadBalancerTargetPoolTlsConfigOutputWithContext(context.Context) ApplicationLoadBalancerTargetPoolTlsConfigOutput } -type LoadbalancerTargetPoolActiveHealthCheckArgs struct { - // Healthy threshold of the health checking. - HealthyThreshold pulumi.IntPtrInput `pulumi:"healthyThreshold"` - // Interval duration of health checking in seconds. - Interval pulumi.StringPtrInput `pulumi:"interval"` - // Interval duration threshold of the health checking in seconds. - IntervalJitter pulumi.StringPtrInput `pulumi:"intervalJitter"` - // Active health checking timeout duration in seconds. - Timeout pulumi.StringPtrInput `pulumi:"timeout"` - // Unhealthy threshold of the health checking. - UnhealthyThreshold pulumi.IntPtrInput `pulumi:"unhealthyThreshold"` +type ApplicationLoadBalancerTargetPoolTlsConfigArgs struct { + // 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. + CustomCa pulumi.StringPtrInput `pulumi:"customCa"` + // 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. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // 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! + SkipCertificateValidation pulumi.BoolPtrInput `pulumi:"skipCertificateValidation"` } -func (LoadbalancerTargetPoolActiveHealthCheckArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerTargetPoolActiveHealthCheck)(nil)).Elem() +func (ApplicationLoadBalancerTargetPoolTlsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerTargetPoolTlsConfig)(nil)).Elem() } -func (i LoadbalancerTargetPoolActiveHealthCheckArgs) ToLoadbalancerTargetPoolActiveHealthCheckOutput() LoadbalancerTargetPoolActiveHealthCheckOutput { - return i.ToLoadbalancerTargetPoolActiveHealthCheckOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerTargetPoolTlsConfigArgs) ToApplicationLoadBalancerTargetPoolTlsConfigOutput() ApplicationLoadBalancerTargetPoolTlsConfigOutput { + return i.ToApplicationLoadBalancerTargetPoolTlsConfigOutputWithContext(context.Background()) } -func (i LoadbalancerTargetPoolActiveHealthCheckArgs) ToLoadbalancerTargetPoolActiveHealthCheckOutputWithContext(ctx context.Context) LoadbalancerTargetPoolActiveHealthCheckOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolActiveHealthCheckOutput) +func (i ApplicationLoadBalancerTargetPoolTlsConfigArgs) ToApplicationLoadBalancerTargetPoolTlsConfigOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolTlsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerTargetPoolTlsConfigOutput) } -func (i LoadbalancerTargetPoolActiveHealthCheckArgs) ToLoadbalancerTargetPoolActiveHealthCheckPtrOutput() LoadbalancerTargetPoolActiveHealthCheckPtrOutput { - return i.ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerTargetPoolTlsConfigArgs) ToApplicationLoadBalancerTargetPoolTlsConfigPtrOutput() ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput { + return i.ToApplicationLoadBalancerTargetPoolTlsConfigPtrOutputWithContext(context.Background()) } -func (i LoadbalancerTargetPoolActiveHealthCheckArgs) ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(ctx context.Context) LoadbalancerTargetPoolActiveHealthCheckPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolActiveHealthCheckOutput).ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(ctx) +func (i ApplicationLoadBalancerTargetPoolTlsConfigArgs) ToApplicationLoadBalancerTargetPoolTlsConfigPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerTargetPoolTlsConfigOutput).ToApplicationLoadBalancerTargetPoolTlsConfigPtrOutputWithContext(ctx) } -// LoadbalancerTargetPoolActiveHealthCheckPtrInput is an input type that accepts LoadbalancerTargetPoolActiveHealthCheckArgs, LoadbalancerTargetPoolActiveHealthCheckPtr and LoadbalancerTargetPoolActiveHealthCheckPtrOutput values. -// You can construct a concrete instance of `LoadbalancerTargetPoolActiveHealthCheckPtrInput` via: +// ApplicationLoadBalancerTargetPoolTlsConfigPtrInput is an input type that accepts ApplicationLoadBalancerTargetPoolTlsConfigArgs, ApplicationLoadBalancerTargetPoolTlsConfigPtr and ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerTargetPoolTlsConfigPtrInput` via: // -// LoadbalancerTargetPoolActiveHealthCheckArgs{...} +// ApplicationLoadBalancerTargetPoolTlsConfigArgs{...} // // or: // // nil -type LoadbalancerTargetPoolActiveHealthCheckPtrInput interface { +type ApplicationLoadBalancerTargetPoolTlsConfigPtrInput interface { pulumi.Input - ToLoadbalancerTargetPoolActiveHealthCheckPtrOutput() LoadbalancerTargetPoolActiveHealthCheckPtrOutput - ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(context.Context) LoadbalancerTargetPoolActiveHealthCheckPtrOutput + ToApplicationLoadBalancerTargetPoolTlsConfigPtrOutput() ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput + ToApplicationLoadBalancerTargetPoolTlsConfigPtrOutputWithContext(context.Context) ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput } -type loadbalancerTargetPoolActiveHealthCheckPtrType LoadbalancerTargetPoolActiveHealthCheckArgs +type applicationLoadBalancerTargetPoolTlsConfigPtrType ApplicationLoadBalancerTargetPoolTlsConfigArgs -func LoadbalancerTargetPoolActiveHealthCheckPtr(v *LoadbalancerTargetPoolActiveHealthCheckArgs) LoadbalancerTargetPoolActiveHealthCheckPtrInput { - return (*loadbalancerTargetPoolActiveHealthCheckPtrType)(v) +func ApplicationLoadBalancerTargetPoolTlsConfigPtr(v *ApplicationLoadBalancerTargetPoolTlsConfigArgs) ApplicationLoadBalancerTargetPoolTlsConfigPtrInput { + return (*applicationLoadBalancerTargetPoolTlsConfigPtrType)(v) } -func (*loadbalancerTargetPoolActiveHealthCheckPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**LoadbalancerTargetPoolActiveHealthCheck)(nil)).Elem() +func (*applicationLoadBalancerTargetPoolTlsConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerTargetPoolTlsConfig)(nil)).Elem() } -func (i *loadbalancerTargetPoolActiveHealthCheckPtrType) ToLoadbalancerTargetPoolActiveHealthCheckPtrOutput() LoadbalancerTargetPoolActiveHealthCheckPtrOutput { - return i.ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(context.Background()) +func (i *applicationLoadBalancerTargetPoolTlsConfigPtrType) ToApplicationLoadBalancerTargetPoolTlsConfigPtrOutput() ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput { + return i.ToApplicationLoadBalancerTargetPoolTlsConfigPtrOutputWithContext(context.Background()) } -func (i *loadbalancerTargetPoolActiveHealthCheckPtrType) ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(ctx context.Context) LoadbalancerTargetPoolActiveHealthCheckPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolActiveHealthCheckPtrOutput) +func (i *applicationLoadBalancerTargetPoolTlsConfigPtrType) ToApplicationLoadBalancerTargetPoolTlsConfigPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput) } -type LoadbalancerTargetPoolActiveHealthCheckOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerTargetPoolTlsConfigOutput struct{ *pulumi.OutputState } -func (LoadbalancerTargetPoolActiveHealthCheckOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerTargetPoolActiveHealthCheck)(nil)).Elem() +func (ApplicationLoadBalancerTargetPoolTlsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerTargetPoolTlsConfig)(nil)).Elem() } -func (o LoadbalancerTargetPoolActiveHealthCheckOutput) ToLoadbalancerTargetPoolActiveHealthCheckOutput() LoadbalancerTargetPoolActiveHealthCheckOutput { +func (o ApplicationLoadBalancerTargetPoolTlsConfigOutput) ToApplicationLoadBalancerTargetPoolTlsConfigOutput() ApplicationLoadBalancerTargetPoolTlsConfigOutput { return o } -func (o LoadbalancerTargetPoolActiveHealthCheckOutput) ToLoadbalancerTargetPoolActiveHealthCheckOutputWithContext(ctx context.Context) LoadbalancerTargetPoolActiveHealthCheckOutput { +func (o ApplicationLoadBalancerTargetPoolTlsConfigOutput) ToApplicationLoadBalancerTargetPoolTlsConfigOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolTlsConfigOutput { return o } -func (o LoadbalancerTargetPoolActiveHealthCheckOutput) ToLoadbalancerTargetPoolActiveHealthCheckPtrOutput() LoadbalancerTargetPoolActiveHealthCheckPtrOutput { - return o.ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(context.Background()) +func (o ApplicationLoadBalancerTargetPoolTlsConfigOutput) ToApplicationLoadBalancerTargetPoolTlsConfigPtrOutput() ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput { + return o.ToApplicationLoadBalancerTargetPoolTlsConfigPtrOutputWithContext(context.Background()) } -func (o LoadbalancerTargetPoolActiveHealthCheckOutput) ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(ctx context.Context) LoadbalancerTargetPoolActiveHealthCheckPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerTargetPoolActiveHealthCheck) *LoadbalancerTargetPoolActiveHealthCheck { +func (o ApplicationLoadBalancerTargetPoolTlsConfigOutput) ToApplicationLoadBalancerTargetPoolTlsConfigPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationLoadBalancerTargetPoolTlsConfig) *ApplicationLoadBalancerTargetPoolTlsConfig { return &v - }).(LoadbalancerTargetPoolActiveHealthCheckPtrOutput) -} - -// Healthy threshold of the health checking. -func (o LoadbalancerTargetPoolActiveHealthCheckOutput) HealthyThreshold() pulumi.IntPtrOutput { - return o.ApplyT(func(v LoadbalancerTargetPoolActiveHealthCheck) *int { return v.HealthyThreshold }).(pulumi.IntPtrOutput) -} - -// Interval duration of health checking in seconds. -func (o LoadbalancerTargetPoolActiveHealthCheckOutput) Interval() pulumi.StringPtrOutput { - return o.ApplyT(func(v LoadbalancerTargetPoolActiveHealthCheck) *string { return v.Interval }).(pulumi.StringPtrOutput) + }).(ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput) } -// Interval duration threshold of the health checking in seconds. -func (o LoadbalancerTargetPoolActiveHealthCheckOutput) IntervalJitter() pulumi.StringPtrOutput { - return o.ApplyT(func(v LoadbalancerTargetPoolActiveHealthCheck) *string { return v.IntervalJitter }).(pulumi.StringPtrOutput) +// 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. +func (o ApplicationLoadBalancerTargetPoolTlsConfigOutput) CustomCa() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPoolTlsConfig) *string { return v.CustomCa }).(pulumi.StringPtrOutput) } -// Active health checking timeout duration in seconds. -func (o LoadbalancerTargetPoolActiveHealthCheckOutput) Timeout() pulumi.StringPtrOutput { - return o.ApplyT(func(v LoadbalancerTargetPoolActiveHealthCheck) *string { return v.Timeout }).(pulumi.StringPtrOutput) +// 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. +func (o ApplicationLoadBalancerTargetPoolTlsConfigOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPoolTlsConfig) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -// Unhealthy threshold of the health checking. -func (o LoadbalancerTargetPoolActiveHealthCheckOutput) UnhealthyThreshold() pulumi.IntPtrOutput { - return o.ApplyT(func(v LoadbalancerTargetPoolActiveHealthCheck) *int { return v.UnhealthyThreshold }).(pulumi.IntPtrOutput) +// 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! +func (o ApplicationLoadBalancerTargetPoolTlsConfigOutput) SkipCertificateValidation() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetPoolTlsConfig) *bool { return v.SkipCertificateValidation }).(pulumi.BoolPtrOutput) } -type LoadbalancerTargetPoolActiveHealthCheckPtrOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput struct{ *pulumi.OutputState } -func (LoadbalancerTargetPoolActiveHealthCheckPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**LoadbalancerTargetPoolActiveHealthCheck)(nil)).Elem() +func (ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerTargetPoolTlsConfig)(nil)).Elem() } -func (o LoadbalancerTargetPoolActiveHealthCheckPtrOutput) ToLoadbalancerTargetPoolActiveHealthCheckPtrOutput() LoadbalancerTargetPoolActiveHealthCheckPtrOutput { +func (o ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput) ToApplicationLoadBalancerTargetPoolTlsConfigPtrOutput() ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput { return o } -func (o LoadbalancerTargetPoolActiveHealthCheckPtrOutput) ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(ctx context.Context) LoadbalancerTargetPoolActiveHealthCheckPtrOutput { +func (o ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput) ToApplicationLoadBalancerTargetPoolTlsConfigPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput { return o } -func (o LoadbalancerTargetPoolActiveHealthCheckPtrOutput) Elem() LoadbalancerTargetPoolActiveHealthCheckOutput { - return o.ApplyT(func(v *LoadbalancerTargetPoolActiveHealthCheck) LoadbalancerTargetPoolActiveHealthCheck { +func (o ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput) Elem() ApplicationLoadBalancerTargetPoolTlsConfigOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerTargetPoolTlsConfig) ApplicationLoadBalancerTargetPoolTlsConfig { if v != nil { return *v } - var ret LoadbalancerTargetPoolActiveHealthCheck + var ret ApplicationLoadBalancerTargetPoolTlsConfig return ret - }).(LoadbalancerTargetPoolActiveHealthCheckOutput) -} - -// Healthy threshold of the health checking. -func (o LoadbalancerTargetPoolActiveHealthCheckPtrOutput) HealthyThreshold() pulumi.IntPtrOutput { - return o.ApplyT(func(v *LoadbalancerTargetPoolActiveHealthCheck) *int { - if v == nil { - return nil - } - return v.HealthyThreshold - }).(pulumi.IntPtrOutput) -} - -// Interval duration of health checking in seconds. -func (o LoadbalancerTargetPoolActiveHealthCheckPtrOutput) Interval() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LoadbalancerTargetPoolActiveHealthCheck) *string { - if v == nil { - return nil - } - return v.Interval - }).(pulumi.StringPtrOutput) + }).(ApplicationLoadBalancerTargetPoolTlsConfigOutput) } -// Interval duration threshold of the health checking in seconds. -func (o LoadbalancerTargetPoolActiveHealthCheckPtrOutput) IntervalJitter() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LoadbalancerTargetPoolActiveHealthCheck) *string { +// 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. +func (o ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput) CustomCa() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerTargetPoolTlsConfig) *string { if v == nil { return nil } - return v.IntervalJitter + return v.CustomCa }).(pulumi.StringPtrOutput) } -// Active health checking timeout duration in seconds. -func (o LoadbalancerTargetPoolActiveHealthCheckPtrOutput) Timeout() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LoadbalancerTargetPoolActiveHealthCheck) *string { +// 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. +func (o ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerTargetPoolTlsConfig) *bool { if v == nil { return nil } - return v.Timeout - }).(pulumi.StringPtrOutput) + return v.Enabled + }).(pulumi.BoolPtrOutput) } -// Unhealthy threshold of the health checking. -func (o LoadbalancerTargetPoolActiveHealthCheckPtrOutput) UnhealthyThreshold() pulumi.IntPtrOutput { - return o.ApplyT(func(v *LoadbalancerTargetPoolActiveHealthCheck) *int { +// 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! +func (o ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput) SkipCertificateValidation() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerTargetPoolTlsConfig) *bool { if v == nil { return nil } - return v.UnhealthyThreshold - }).(pulumi.IntPtrOutput) + return v.SkipCertificateValidation + }).(pulumi.BoolPtrOutput) } -type LoadbalancerTargetPoolSessionPersistence struct { - // 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. - UseSourceIpAddress *bool `pulumi:"useSourceIpAddress"` +type ApplicationLoadBalancerTargetSecurityGroup struct { + // ID of the security Group + Id *string `pulumi:"id"` + // Name of the security Group + Name *string `pulumi:"name"` } -// LoadbalancerTargetPoolSessionPersistenceInput is an input type that accepts LoadbalancerTargetPoolSessionPersistenceArgs and LoadbalancerTargetPoolSessionPersistenceOutput values. -// You can construct a concrete instance of `LoadbalancerTargetPoolSessionPersistenceInput` via: +// ApplicationLoadBalancerTargetSecurityGroupInput is an input type that accepts ApplicationLoadBalancerTargetSecurityGroupArgs and ApplicationLoadBalancerTargetSecurityGroupOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerTargetSecurityGroupInput` via: // -// LoadbalancerTargetPoolSessionPersistenceArgs{...} -type LoadbalancerTargetPoolSessionPersistenceInput interface { +// ApplicationLoadBalancerTargetSecurityGroupArgs{...} +type ApplicationLoadBalancerTargetSecurityGroupInput interface { pulumi.Input - ToLoadbalancerTargetPoolSessionPersistenceOutput() LoadbalancerTargetPoolSessionPersistenceOutput - ToLoadbalancerTargetPoolSessionPersistenceOutputWithContext(context.Context) LoadbalancerTargetPoolSessionPersistenceOutput + ToApplicationLoadBalancerTargetSecurityGroupOutput() ApplicationLoadBalancerTargetSecurityGroupOutput + ToApplicationLoadBalancerTargetSecurityGroupOutputWithContext(context.Context) ApplicationLoadBalancerTargetSecurityGroupOutput } -type LoadbalancerTargetPoolSessionPersistenceArgs struct { - // 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. - UseSourceIpAddress pulumi.BoolPtrInput `pulumi:"useSourceIpAddress"` +type ApplicationLoadBalancerTargetSecurityGroupArgs struct { + // ID of the security Group + Id pulumi.StringPtrInput `pulumi:"id"` + // Name of the security Group + Name pulumi.StringPtrInput `pulumi:"name"` } -func (LoadbalancerTargetPoolSessionPersistenceArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerTargetPoolSessionPersistence)(nil)).Elem() +func (ApplicationLoadBalancerTargetSecurityGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerTargetSecurityGroup)(nil)).Elem() } -func (i LoadbalancerTargetPoolSessionPersistenceArgs) ToLoadbalancerTargetPoolSessionPersistenceOutput() LoadbalancerTargetPoolSessionPersistenceOutput { - return i.ToLoadbalancerTargetPoolSessionPersistenceOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerTargetSecurityGroupArgs) ToApplicationLoadBalancerTargetSecurityGroupOutput() ApplicationLoadBalancerTargetSecurityGroupOutput { + return i.ToApplicationLoadBalancerTargetSecurityGroupOutputWithContext(context.Background()) } -func (i LoadbalancerTargetPoolSessionPersistenceArgs) ToLoadbalancerTargetPoolSessionPersistenceOutputWithContext(ctx context.Context) LoadbalancerTargetPoolSessionPersistenceOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolSessionPersistenceOutput) +func (i ApplicationLoadBalancerTargetSecurityGroupArgs) ToApplicationLoadBalancerTargetSecurityGroupOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetSecurityGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerTargetSecurityGroupOutput) } -func (i LoadbalancerTargetPoolSessionPersistenceArgs) ToLoadbalancerTargetPoolSessionPersistencePtrOutput() LoadbalancerTargetPoolSessionPersistencePtrOutput { - return i.ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(context.Background()) +func (i ApplicationLoadBalancerTargetSecurityGroupArgs) ToApplicationLoadBalancerTargetSecurityGroupPtrOutput() ApplicationLoadBalancerTargetSecurityGroupPtrOutput { + return i.ToApplicationLoadBalancerTargetSecurityGroupPtrOutputWithContext(context.Background()) } -func (i LoadbalancerTargetPoolSessionPersistenceArgs) ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(ctx context.Context) LoadbalancerTargetPoolSessionPersistencePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolSessionPersistenceOutput).ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(ctx) +func (i ApplicationLoadBalancerTargetSecurityGroupArgs) ToApplicationLoadBalancerTargetSecurityGroupPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetSecurityGroupPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerTargetSecurityGroupOutput).ToApplicationLoadBalancerTargetSecurityGroupPtrOutputWithContext(ctx) } -// LoadbalancerTargetPoolSessionPersistencePtrInput is an input type that accepts LoadbalancerTargetPoolSessionPersistenceArgs, LoadbalancerTargetPoolSessionPersistencePtr and LoadbalancerTargetPoolSessionPersistencePtrOutput values. -// You can construct a concrete instance of `LoadbalancerTargetPoolSessionPersistencePtrInput` via: +// ApplicationLoadBalancerTargetSecurityGroupPtrInput is an input type that accepts ApplicationLoadBalancerTargetSecurityGroupArgs, ApplicationLoadBalancerTargetSecurityGroupPtr and ApplicationLoadBalancerTargetSecurityGroupPtrOutput values. +// You can construct a concrete instance of `ApplicationLoadBalancerTargetSecurityGroupPtrInput` via: // -// LoadbalancerTargetPoolSessionPersistenceArgs{...} +// ApplicationLoadBalancerTargetSecurityGroupArgs{...} // // or: // // nil -type LoadbalancerTargetPoolSessionPersistencePtrInput interface { +type ApplicationLoadBalancerTargetSecurityGroupPtrInput interface { pulumi.Input - ToLoadbalancerTargetPoolSessionPersistencePtrOutput() LoadbalancerTargetPoolSessionPersistencePtrOutput - ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(context.Context) LoadbalancerTargetPoolSessionPersistencePtrOutput + ToApplicationLoadBalancerTargetSecurityGroupPtrOutput() ApplicationLoadBalancerTargetSecurityGroupPtrOutput + ToApplicationLoadBalancerTargetSecurityGroupPtrOutputWithContext(context.Context) ApplicationLoadBalancerTargetSecurityGroupPtrOutput } -type loadbalancerTargetPoolSessionPersistencePtrType LoadbalancerTargetPoolSessionPersistenceArgs +type applicationLoadBalancerTargetSecurityGroupPtrType ApplicationLoadBalancerTargetSecurityGroupArgs -func LoadbalancerTargetPoolSessionPersistencePtr(v *LoadbalancerTargetPoolSessionPersistenceArgs) LoadbalancerTargetPoolSessionPersistencePtrInput { - return (*loadbalancerTargetPoolSessionPersistencePtrType)(v) +func ApplicationLoadBalancerTargetSecurityGroupPtr(v *ApplicationLoadBalancerTargetSecurityGroupArgs) ApplicationLoadBalancerTargetSecurityGroupPtrInput { + return (*applicationLoadBalancerTargetSecurityGroupPtrType)(v) } -func (*loadbalancerTargetPoolSessionPersistencePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**LoadbalancerTargetPoolSessionPersistence)(nil)).Elem() +func (*applicationLoadBalancerTargetSecurityGroupPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerTargetSecurityGroup)(nil)).Elem() } -func (i *loadbalancerTargetPoolSessionPersistencePtrType) ToLoadbalancerTargetPoolSessionPersistencePtrOutput() LoadbalancerTargetPoolSessionPersistencePtrOutput { - return i.ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(context.Background()) +func (i *applicationLoadBalancerTargetSecurityGroupPtrType) ToApplicationLoadBalancerTargetSecurityGroupPtrOutput() ApplicationLoadBalancerTargetSecurityGroupPtrOutput { + return i.ToApplicationLoadBalancerTargetSecurityGroupPtrOutputWithContext(context.Background()) } -func (i *loadbalancerTargetPoolSessionPersistencePtrType) ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(ctx context.Context) LoadbalancerTargetPoolSessionPersistencePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolSessionPersistencePtrOutput) +func (i *applicationLoadBalancerTargetSecurityGroupPtrType) ToApplicationLoadBalancerTargetSecurityGroupPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetSecurityGroupPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationLoadBalancerTargetSecurityGroupPtrOutput) } -type LoadbalancerTargetPoolSessionPersistenceOutput struct{ *pulumi.OutputState } +type ApplicationLoadBalancerTargetSecurityGroupOutput struct{ *pulumi.OutputState } -func (LoadbalancerTargetPoolSessionPersistenceOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerTargetPoolSessionPersistence)(nil)).Elem() +func (ApplicationLoadBalancerTargetSecurityGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationLoadBalancerTargetSecurityGroup)(nil)).Elem() } -func (o LoadbalancerTargetPoolSessionPersistenceOutput) ToLoadbalancerTargetPoolSessionPersistenceOutput() LoadbalancerTargetPoolSessionPersistenceOutput { +func (o ApplicationLoadBalancerTargetSecurityGroupOutput) ToApplicationLoadBalancerTargetSecurityGroupOutput() ApplicationLoadBalancerTargetSecurityGroupOutput { return o } -func (o LoadbalancerTargetPoolSessionPersistenceOutput) ToLoadbalancerTargetPoolSessionPersistenceOutputWithContext(ctx context.Context) LoadbalancerTargetPoolSessionPersistenceOutput { +func (o ApplicationLoadBalancerTargetSecurityGroupOutput) ToApplicationLoadBalancerTargetSecurityGroupOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetSecurityGroupOutput { return o } -func (o LoadbalancerTargetPoolSessionPersistenceOutput) ToLoadbalancerTargetPoolSessionPersistencePtrOutput() LoadbalancerTargetPoolSessionPersistencePtrOutput { - return o.ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(context.Background()) +func (o ApplicationLoadBalancerTargetSecurityGroupOutput) ToApplicationLoadBalancerTargetSecurityGroupPtrOutput() ApplicationLoadBalancerTargetSecurityGroupPtrOutput { + return o.ToApplicationLoadBalancerTargetSecurityGroupPtrOutputWithContext(context.Background()) } -func (o LoadbalancerTargetPoolSessionPersistenceOutput) ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(ctx context.Context) LoadbalancerTargetPoolSessionPersistencePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerTargetPoolSessionPersistence) *LoadbalancerTargetPoolSessionPersistence { +func (o ApplicationLoadBalancerTargetSecurityGroupOutput) ToApplicationLoadBalancerTargetSecurityGroupPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetSecurityGroupPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationLoadBalancerTargetSecurityGroup) *ApplicationLoadBalancerTargetSecurityGroup { return &v - }).(LoadbalancerTargetPoolSessionPersistencePtrOutput) + }).(ApplicationLoadBalancerTargetSecurityGroupPtrOutput) } -// 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. -func (o LoadbalancerTargetPoolSessionPersistenceOutput) UseSourceIpAddress() pulumi.BoolPtrOutput { - return o.ApplyT(func(v LoadbalancerTargetPoolSessionPersistence) *bool { return v.UseSourceIpAddress }).(pulumi.BoolPtrOutput) +// ID of the security Group +func (o ApplicationLoadBalancerTargetSecurityGroupOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetSecurityGroup) *string { return v.Id }).(pulumi.StringPtrOutput) } -type LoadbalancerTargetPoolSessionPersistencePtrOutput struct{ *pulumi.OutputState } +// Name of the security Group +func (o ApplicationLoadBalancerTargetSecurityGroupOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationLoadBalancerTargetSecurityGroup) *string { return v.Name }).(pulumi.StringPtrOutput) +} -func (LoadbalancerTargetPoolSessionPersistencePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**LoadbalancerTargetPoolSessionPersistence)(nil)).Elem() +type ApplicationLoadBalancerTargetSecurityGroupPtrOutput struct{ *pulumi.OutputState } + +func (ApplicationLoadBalancerTargetSecurityGroupPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationLoadBalancerTargetSecurityGroup)(nil)).Elem() } -func (o LoadbalancerTargetPoolSessionPersistencePtrOutput) ToLoadbalancerTargetPoolSessionPersistencePtrOutput() LoadbalancerTargetPoolSessionPersistencePtrOutput { +func (o ApplicationLoadBalancerTargetSecurityGroupPtrOutput) ToApplicationLoadBalancerTargetSecurityGroupPtrOutput() ApplicationLoadBalancerTargetSecurityGroupPtrOutput { return o } -func (o LoadbalancerTargetPoolSessionPersistencePtrOutput) ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(ctx context.Context) LoadbalancerTargetPoolSessionPersistencePtrOutput { +func (o ApplicationLoadBalancerTargetSecurityGroupPtrOutput) ToApplicationLoadBalancerTargetSecurityGroupPtrOutputWithContext(ctx context.Context) ApplicationLoadBalancerTargetSecurityGroupPtrOutput { return o } -func (o LoadbalancerTargetPoolSessionPersistencePtrOutput) Elem() LoadbalancerTargetPoolSessionPersistenceOutput { - return o.ApplyT(func(v *LoadbalancerTargetPoolSessionPersistence) LoadbalancerTargetPoolSessionPersistence { +func (o ApplicationLoadBalancerTargetSecurityGroupPtrOutput) Elem() ApplicationLoadBalancerTargetSecurityGroupOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerTargetSecurityGroup) ApplicationLoadBalancerTargetSecurityGroup { if v != nil { return *v } - var ret LoadbalancerTargetPoolSessionPersistence + var ret ApplicationLoadBalancerTargetSecurityGroup return ret - }).(LoadbalancerTargetPoolSessionPersistenceOutput) + }).(ApplicationLoadBalancerTargetSecurityGroupOutput) } -// 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. -func (o LoadbalancerTargetPoolSessionPersistencePtrOutput) UseSourceIpAddress() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *LoadbalancerTargetPoolSessionPersistence) *bool { +// ID of the security Group +func (o ApplicationLoadBalancerTargetSecurityGroupPtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerTargetSecurityGroup) *string { if v == nil { return nil } - return v.UseSourceIpAddress - }).(pulumi.BoolPtrOutput) + return v.Id + }).(pulumi.StringPtrOutput) } -type LoadbalancerTargetPoolTarget struct { - // Target display name - DisplayName string `pulumi:"displayName"` - // Target IP - Ip string `pulumi:"ip"` +// Name of the security Group +func (o ApplicationLoadBalancerTargetSecurityGroupPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationLoadBalancerTargetSecurityGroup) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) } -// LoadbalancerTargetPoolTargetInput is an input type that accepts LoadbalancerTargetPoolTargetArgs and LoadbalancerTargetPoolTargetOutput values. -// You can construct a concrete instance of `LoadbalancerTargetPoolTargetInput` via: -// -// LoadbalancerTargetPoolTargetArgs{...} -type LoadbalancerTargetPoolTargetInput interface { - pulumi.Input - - ToLoadbalancerTargetPoolTargetOutput() LoadbalancerTargetPoolTargetOutput - ToLoadbalancerTargetPoolTargetOutputWithContext(context.Context) LoadbalancerTargetPoolTargetOutput +type CdnCustomDomainCertificate struct { + // The PEM-encoded TLS certificate. Required for custom certificates. + Certificate *string `pulumi:"certificate"` + // The PEM-encoded private key for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. + PrivateKey *string `pulumi:"privateKey"` + // A version identifier for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. + Version *int `pulumi:"version"` } -type LoadbalancerTargetPoolTargetArgs struct { - // Target display name - DisplayName pulumi.StringInput `pulumi:"displayName"` - // Target IP - Ip pulumi.StringInput `pulumi:"ip"` -} +// CdnCustomDomainCertificateInput is an input type that accepts CdnCustomDomainCertificateArgs and CdnCustomDomainCertificateOutput values. +// You can construct a concrete instance of `CdnCustomDomainCertificateInput` via: +// +// CdnCustomDomainCertificateArgs{...} +type CdnCustomDomainCertificateInput interface { + pulumi.Input -func (LoadbalancerTargetPoolTargetArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerTargetPoolTarget)(nil)).Elem() + ToCdnCustomDomainCertificateOutput() CdnCustomDomainCertificateOutput + ToCdnCustomDomainCertificateOutputWithContext(context.Context) CdnCustomDomainCertificateOutput } -func (i LoadbalancerTargetPoolTargetArgs) ToLoadbalancerTargetPoolTargetOutput() LoadbalancerTargetPoolTargetOutput { - return i.ToLoadbalancerTargetPoolTargetOutputWithContext(context.Background()) +type CdnCustomDomainCertificateArgs struct { + // The PEM-encoded TLS certificate. Required for custom certificates. + Certificate pulumi.StringPtrInput `pulumi:"certificate"` + // The PEM-encoded private key for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. + PrivateKey pulumi.StringPtrInput `pulumi:"privateKey"` + // A version identifier for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. + Version pulumi.IntPtrInput `pulumi:"version"` } -func (i LoadbalancerTargetPoolTargetArgs) ToLoadbalancerTargetPoolTargetOutputWithContext(ctx context.Context) LoadbalancerTargetPoolTargetOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolTargetOutput) +func (CdnCustomDomainCertificateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CdnCustomDomainCertificate)(nil)).Elem() } -// LoadbalancerTargetPoolTargetArrayInput is an input type that accepts LoadbalancerTargetPoolTargetArray and LoadbalancerTargetPoolTargetArrayOutput values. -// You can construct a concrete instance of `LoadbalancerTargetPoolTargetArrayInput` via: -// -// LoadbalancerTargetPoolTargetArray{ LoadbalancerTargetPoolTargetArgs{...} } -type LoadbalancerTargetPoolTargetArrayInput interface { - pulumi.Input - - ToLoadbalancerTargetPoolTargetArrayOutput() LoadbalancerTargetPoolTargetArrayOutput - ToLoadbalancerTargetPoolTargetArrayOutputWithContext(context.Context) LoadbalancerTargetPoolTargetArrayOutput +func (i CdnCustomDomainCertificateArgs) ToCdnCustomDomainCertificateOutput() CdnCustomDomainCertificateOutput { + return i.ToCdnCustomDomainCertificateOutputWithContext(context.Background()) } -type LoadbalancerTargetPoolTargetArray []LoadbalancerTargetPoolTargetInput - -func (LoadbalancerTargetPoolTargetArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]LoadbalancerTargetPoolTarget)(nil)).Elem() +func (i CdnCustomDomainCertificateArgs) ToCdnCustomDomainCertificateOutputWithContext(ctx context.Context) CdnCustomDomainCertificateOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnCustomDomainCertificateOutput) } -func (i LoadbalancerTargetPoolTargetArray) ToLoadbalancerTargetPoolTargetArrayOutput() LoadbalancerTargetPoolTargetArrayOutput { - return i.ToLoadbalancerTargetPoolTargetArrayOutputWithContext(context.Background()) +func (i CdnCustomDomainCertificateArgs) ToCdnCustomDomainCertificatePtrOutput() CdnCustomDomainCertificatePtrOutput { + return i.ToCdnCustomDomainCertificatePtrOutputWithContext(context.Background()) } -func (i LoadbalancerTargetPoolTargetArray) ToLoadbalancerTargetPoolTargetArrayOutputWithContext(ctx context.Context) LoadbalancerTargetPoolTargetArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolTargetArrayOutput) +func (i CdnCustomDomainCertificateArgs) ToCdnCustomDomainCertificatePtrOutputWithContext(ctx context.Context) CdnCustomDomainCertificatePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnCustomDomainCertificateOutput).ToCdnCustomDomainCertificatePtrOutputWithContext(ctx) } -type LoadbalancerTargetPoolTargetOutput struct{ *pulumi.OutputState } +// CdnCustomDomainCertificatePtrInput is an input type that accepts CdnCustomDomainCertificateArgs, CdnCustomDomainCertificatePtr and CdnCustomDomainCertificatePtrOutput values. +// You can construct a concrete instance of `CdnCustomDomainCertificatePtrInput` via: +// +// CdnCustomDomainCertificateArgs{...} +// +// or: +// +// nil +type CdnCustomDomainCertificatePtrInput interface { + pulumi.Input -func (LoadbalancerTargetPoolTargetOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LoadbalancerTargetPoolTarget)(nil)).Elem() + ToCdnCustomDomainCertificatePtrOutput() CdnCustomDomainCertificatePtrOutput + ToCdnCustomDomainCertificatePtrOutputWithContext(context.Context) CdnCustomDomainCertificatePtrOutput } -func (o LoadbalancerTargetPoolTargetOutput) ToLoadbalancerTargetPoolTargetOutput() LoadbalancerTargetPoolTargetOutput { - return o +type cdnCustomDomainCertificatePtrType CdnCustomDomainCertificateArgs + +func CdnCustomDomainCertificatePtr(v *CdnCustomDomainCertificateArgs) CdnCustomDomainCertificatePtrInput { + return (*cdnCustomDomainCertificatePtrType)(v) } -func (o LoadbalancerTargetPoolTargetOutput) ToLoadbalancerTargetPoolTargetOutputWithContext(ctx context.Context) LoadbalancerTargetPoolTargetOutput { - return o +func (*cdnCustomDomainCertificatePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CdnCustomDomainCertificate)(nil)).Elem() } -// Target display name -func (o LoadbalancerTargetPoolTargetOutput) DisplayName() pulumi.StringOutput { - return o.ApplyT(func(v LoadbalancerTargetPoolTarget) string { return v.DisplayName }).(pulumi.StringOutput) +func (i *cdnCustomDomainCertificatePtrType) ToCdnCustomDomainCertificatePtrOutput() CdnCustomDomainCertificatePtrOutput { + return i.ToCdnCustomDomainCertificatePtrOutputWithContext(context.Background()) } -// Target IP -func (o LoadbalancerTargetPoolTargetOutput) Ip() pulumi.StringOutput { - return o.ApplyT(func(v LoadbalancerTargetPoolTarget) string { return v.Ip }).(pulumi.StringOutput) +func (i *cdnCustomDomainCertificatePtrType) ToCdnCustomDomainCertificatePtrOutputWithContext(ctx context.Context) CdnCustomDomainCertificatePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnCustomDomainCertificatePtrOutput) } -type LoadbalancerTargetPoolTargetArrayOutput struct{ *pulumi.OutputState } +type CdnCustomDomainCertificateOutput struct{ *pulumi.OutputState } -func (LoadbalancerTargetPoolTargetArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]LoadbalancerTargetPoolTarget)(nil)).Elem() +func (CdnCustomDomainCertificateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CdnCustomDomainCertificate)(nil)).Elem() } -func (o LoadbalancerTargetPoolTargetArrayOutput) ToLoadbalancerTargetPoolTargetArrayOutput() LoadbalancerTargetPoolTargetArrayOutput { +func (o CdnCustomDomainCertificateOutput) ToCdnCustomDomainCertificateOutput() CdnCustomDomainCertificateOutput { return o } -func (o LoadbalancerTargetPoolTargetArrayOutput) ToLoadbalancerTargetPoolTargetArrayOutputWithContext(ctx context.Context) LoadbalancerTargetPoolTargetArrayOutput { +func (o CdnCustomDomainCertificateOutput) ToCdnCustomDomainCertificateOutputWithContext(ctx context.Context) CdnCustomDomainCertificateOutput { return o } -func (o LoadbalancerTargetPoolTargetArrayOutput) Index(i pulumi.IntInput) LoadbalancerTargetPoolTargetOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) LoadbalancerTargetPoolTarget { - return vs[0].([]LoadbalancerTargetPoolTarget)[vs[1].(int)] - }).(LoadbalancerTargetPoolTargetOutput) +func (o CdnCustomDomainCertificateOutput) ToCdnCustomDomainCertificatePtrOutput() CdnCustomDomainCertificatePtrOutput { + return o.ToCdnCustomDomainCertificatePtrOutputWithContext(context.Background()) } -type LogmeInstanceParameters struct { - // Enable monitoring. - EnableMonitoring *bool `pulumi:"enableMonitoring"` - FluentdTcp *int `pulumi:"fluentdTcp"` - FluentdTls *int `pulumi:"fluentdTls"` - FluentdTlsCiphers *string `pulumi:"fluentdTlsCiphers"` - FluentdTlsMaxVersion *string `pulumi:"fluentdTlsMaxVersion"` - FluentdTlsMinVersion *string `pulumi:"fluentdTlsMinVersion"` - FluentdTlsVersion *string `pulumi:"fluentdTlsVersion"` - FluentdUdp *int `pulumi:"fluentdUdp"` - // If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). - Graphite *string `pulumi:"graphite"` - // Combination of an integer and a timerange when an index will be considered "old" and can be deleted. Possible values for the timerange are `s`, `m`, `h` and `d`. - IsmDeletionAfter *string `pulumi:"ismDeletionAfter"` - IsmJitter *float64 `pulumi:"ismJitter"` - // Jitter of the execution time. - IsmJobInterval *int `pulumi:"ismJobInterval"` - // The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. - JavaHeapspace *int `pulumi:"javaHeapspace"` - // The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. - JavaMaxmetaspace *int `pulumi:"javaMaxmetaspace"` - // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. - MaxDiskThreshold *int `pulumi:"maxDiskThreshold"` - // The frequency in seconds at which metrics are emitted (in seconds). - MetricsFrequency *int `pulumi:"metricsFrequency"` - // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. - MetricsPrefix *string `pulumi:"metricsPrefix"` - // The ID of the STACKIT monitoring instance. - MonitoringInstanceId *string `pulumi:"monitoringInstanceId"` - OpensearchTlsCiphers []string `pulumi:"opensearchTlsCiphers"` - OpensearchTlsProtocols []string `pulumi:"opensearchTlsProtocols"` - // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. - SgwAcl *string `pulumi:"sgwAcl"` - // List of syslog servers to send logs to. - Syslogs []string `pulumi:"syslogs"` +func (o CdnCustomDomainCertificateOutput) ToCdnCustomDomainCertificatePtrOutputWithContext(ctx context.Context) CdnCustomDomainCertificatePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CdnCustomDomainCertificate) *CdnCustomDomainCertificate { + return &v + }).(CdnCustomDomainCertificatePtrOutput) } -// LogmeInstanceParametersInput is an input type that accepts LogmeInstanceParametersArgs and LogmeInstanceParametersOutput values. -// You can construct a concrete instance of `LogmeInstanceParametersInput` via: -// -// LogmeInstanceParametersArgs{...} -type LogmeInstanceParametersInput interface { - pulumi.Input - - ToLogmeInstanceParametersOutput() LogmeInstanceParametersOutput - ToLogmeInstanceParametersOutputWithContext(context.Context) LogmeInstanceParametersOutput +// The PEM-encoded TLS certificate. Required for custom certificates. +func (o CdnCustomDomainCertificateOutput) Certificate() pulumi.StringPtrOutput { + return o.ApplyT(func(v CdnCustomDomainCertificate) *string { return v.Certificate }).(pulumi.StringPtrOutput) } -type LogmeInstanceParametersArgs struct { - // Enable monitoring. - EnableMonitoring pulumi.BoolPtrInput `pulumi:"enableMonitoring"` - FluentdTcp pulumi.IntPtrInput `pulumi:"fluentdTcp"` - FluentdTls pulumi.IntPtrInput `pulumi:"fluentdTls"` - FluentdTlsCiphers pulumi.StringPtrInput `pulumi:"fluentdTlsCiphers"` - FluentdTlsMaxVersion pulumi.StringPtrInput `pulumi:"fluentdTlsMaxVersion"` - FluentdTlsMinVersion pulumi.StringPtrInput `pulumi:"fluentdTlsMinVersion"` - FluentdTlsVersion pulumi.StringPtrInput `pulumi:"fluentdTlsVersion"` - FluentdUdp pulumi.IntPtrInput `pulumi:"fluentdUdp"` - // If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). - Graphite pulumi.StringPtrInput `pulumi:"graphite"` - // Combination of an integer and a timerange when an index will be considered "old" and can be deleted. Possible values for the timerange are `s`, `m`, `h` and `d`. - IsmDeletionAfter pulumi.StringPtrInput `pulumi:"ismDeletionAfter"` - IsmJitter pulumi.Float64PtrInput `pulumi:"ismJitter"` - // Jitter of the execution time. - IsmJobInterval pulumi.IntPtrInput `pulumi:"ismJobInterval"` - // The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. - JavaHeapspace pulumi.IntPtrInput `pulumi:"javaHeapspace"` - // The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. - JavaMaxmetaspace pulumi.IntPtrInput `pulumi:"javaMaxmetaspace"` - // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. - MaxDiskThreshold pulumi.IntPtrInput `pulumi:"maxDiskThreshold"` - // The frequency in seconds at which metrics are emitted (in seconds). - MetricsFrequency pulumi.IntPtrInput `pulumi:"metricsFrequency"` - // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. - MetricsPrefix pulumi.StringPtrInput `pulumi:"metricsPrefix"` - // The ID of the STACKIT monitoring instance. - MonitoringInstanceId pulumi.StringPtrInput `pulumi:"monitoringInstanceId"` - OpensearchTlsCiphers pulumi.StringArrayInput `pulumi:"opensearchTlsCiphers"` - OpensearchTlsProtocols pulumi.StringArrayInput `pulumi:"opensearchTlsProtocols"` - // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. - SgwAcl pulumi.StringPtrInput `pulumi:"sgwAcl"` - // List of syslog servers to send logs to. - Syslogs pulumi.StringArrayInput `pulumi:"syslogs"` +// The PEM-encoded private key for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. +func (o CdnCustomDomainCertificateOutput) PrivateKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v CdnCustomDomainCertificate) *string { return v.PrivateKey }).(pulumi.StringPtrOutput) } -func (LogmeInstanceParametersArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LogmeInstanceParameters)(nil)).Elem() +// A version identifier for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. +func (o CdnCustomDomainCertificateOutput) Version() pulumi.IntPtrOutput { + return o.ApplyT(func(v CdnCustomDomainCertificate) *int { return v.Version }).(pulumi.IntPtrOutput) } -func (i LogmeInstanceParametersArgs) ToLogmeInstanceParametersOutput() LogmeInstanceParametersOutput { - return i.ToLogmeInstanceParametersOutputWithContext(context.Background()) -} +type CdnCustomDomainCertificatePtrOutput struct{ *pulumi.OutputState } -func (i LogmeInstanceParametersArgs) ToLogmeInstanceParametersOutputWithContext(ctx context.Context) LogmeInstanceParametersOutput { - return pulumi.ToOutputWithContext(ctx, i).(LogmeInstanceParametersOutput) +func (CdnCustomDomainCertificatePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CdnCustomDomainCertificate)(nil)).Elem() } -func (i LogmeInstanceParametersArgs) ToLogmeInstanceParametersPtrOutput() LogmeInstanceParametersPtrOutput { - return i.ToLogmeInstanceParametersPtrOutputWithContext(context.Background()) +func (o CdnCustomDomainCertificatePtrOutput) ToCdnCustomDomainCertificatePtrOutput() CdnCustomDomainCertificatePtrOutput { + return o } -func (i LogmeInstanceParametersArgs) ToLogmeInstanceParametersPtrOutputWithContext(ctx context.Context) LogmeInstanceParametersPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LogmeInstanceParametersOutput).ToLogmeInstanceParametersPtrOutputWithContext(ctx) +func (o CdnCustomDomainCertificatePtrOutput) ToCdnCustomDomainCertificatePtrOutputWithContext(ctx context.Context) CdnCustomDomainCertificatePtrOutput { + return o } -// LogmeInstanceParametersPtrInput is an input type that accepts LogmeInstanceParametersArgs, LogmeInstanceParametersPtr and LogmeInstanceParametersPtrOutput values. -// You can construct a concrete instance of `LogmeInstanceParametersPtrInput` via: -// -// LogmeInstanceParametersArgs{...} -// -// or: -// -// nil -type LogmeInstanceParametersPtrInput interface { - pulumi.Input - - ToLogmeInstanceParametersPtrOutput() LogmeInstanceParametersPtrOutput - ToLogmeInstanceParametersPtrOutputWithContext(context.Context) LogmeInstanceParametersPtrOutput +func (o CdnCustomDomainCertificatePtrOutput) Elem() CdnCustomDomainCertificateOutput { + return o.ApplyT(func(v *CdnCustomDomainCertificate) CdnCustomDomainCertificate { + if v != nil { + return *v + } + var ret CdnCustomDomainCertificate + return ret + }).(CdnCustomDomainCertificateOutput) } -type logmeInstanceParametersPtrType LogmeInstanceParametersArgs - -func LogmeInstanceParametersPtr(v *LogmeInstanceParametersArgs) LogmeInstanceParametersPtrInput { - return (*logmeInstanceParametersPtrType)(v) +// The PEM-encoded TLS certificate. Required for custom certificates. +func (o CdnCustomDomainCertificatePtrOutput) Certificate() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CdnCustomDomainCertificate) *string { + if v == nil { + return nil + } + return v.Certificate + }).(pulumi.StringPtrOutput) } -func (*logmeInstanceParametersPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**LogmeInstanceParameters)(nil)).Elem() -} - -func (i *logmeInstanceParametersPtrType) ToLogmeInstanceParametersPtrOutput() LogmeInstanceParametersPtrOutput { - return i.ToLogmeInstanceParametersPtrOutputWithContext(context.Background()) -} - -func (i *logmeInstanceParametersPtrType) ToLogmeInstanceParametersPtrOutputWithContext(ctx context.Context) LogmeInstanceParametersPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LogmeInstanceParametersPtrOutput) +// The PEM-encoded private key for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. +func (o CdnCustomDomainCertificatePtrOutput) PrivateKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CdnCustomDomainCertificate) *string { + if v == nil { + return nil + } + return v.PrivateKey + }).(pulumi.StringPtrOutput) } -type LogmeInstanceParametersOutput struct{ *pulumi.OutputState } - -func (LogmeInstanceParametersOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LogmeInstanceParameters)(nil)).Elem() +// A version identifier for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. +func (o CdnCustomDomainCertificatePtrOutput) Version() pulumi.IntPtrOutput { + return o.ApplyT(func(v *CdnCustomDomainCertificate) *int { + if v == nil { + return nil + } + return v.Version + }).(pulumi.IntPtrOutput) } -func (o LogmeInstanceParametersOutput) ToLogmeInstanceParametersOutput() LogmeInstanceParametersOutput { - return o +type CdnDistributionConfig struct { + // The configured backend for the distribution + Backend CdnDistributionConfigBackend `pulumi:"backend"` + // The configured countries where distribution of content is blocked + BlockedCountries []string `pulumi:"blockedCountries"` + // 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. + Optimizer *CdnDistributionConfigOptimizer `pulumi:"optimizer"` + // The configured regions where content will be hosted + Regions []string `pulumi:"regions"` } -func (o LogmeInstanceParametersOutput) ToLogmeInstanceParametersOutputWithContext(ctx context.Context) LogmeInstanceParametersOutput { - return o -} +// CdnDistributionConfigInput is an input type that accepts CdnDistributionConfigArgs and CdnDistributionConfigOutput values. +// You can construct a concrete instance of `CdnDistributionConfigInput` via: +// +// CdnDistributionConfigArgs{...} +type CdnDistributionConfigInput interface { + pulumi.Input -func (o LogmeInstanceParametersOutput) ToLogmeInstanceParametersPtrOutput() LogmeInstanceParametersPtrOutput { - return o.ToLogmeInstanceParametersPtrOutputWithContext(context.Background()) + ToCdnDistributionConfigOutput() CdnDistributionConfigOutput + ToCdnDistributionConfigOutputWithContext(context.Context) CdnDistributionConfigOutput } -func (o LogmeInstanceParametersOutput) ToLogmeInstanceParametersPtrOutputWithContext(ctx context.Context) LogmeInstanceParametersPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v LogmeInstanceParameters) *LogmeInstanceParameters { - return &v - }).(LogmeInstanceParametersPtrOutput) +type CdnDistributionConfigArgs struct { + // The configured backend for the distribution + Backend CdnDistributionConfigBackendInput `pulumi:"backend"` + // The configured countries where distribution of content is blocked + BlockedCountries pulumi.StringArrayInput `pulumi:"blockedCountries"` + // 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. + Optimizer CdnDistributionConfigOptimizerPtrInput `pulumi:"optimizer"` + // The configured regions where content will be hosted + Regions pulumi.StringArrayInput `pulumi:"regions"` } -// Enable monitoring. -func (o LogmeInstanceParametersOutput) EnableMonitoring() pulumi.BoolPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *bool { return v.EnableMonitoring }).(pulumi.BoolPtrOutput) +func (CdnDistributionConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionConfig)(nil)).Elem() } -func (o LogmeInstanceParametersOutput) FluentdTcp() pulumi.IntPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *int { return v.FluentdTcp }).(pulumi.IntPtrOutput) +func (i CdnDistributionConfigArgs) ToCdnDistributionConfigOutput() CdnDistributionConfigOutput { + return i.ToCdnDistributionConfigOutputWithContext(context.Background()) } -func (o LogmeInstanceParametersOutput) FluentdTls() pulumi.IntPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *int { return v.FluentdTls }).(pulumi.IntPtrOutput) +func (i CdnDistributionConfigArgs) ToCdnDistributionConfigOutputWithContext(ctx context.Context) CdnDistributionConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigOutput) } -func (o LogmeInstanceParametersOutput) FluentdTlsCiphers() pulumi.StringPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.FluentdTlsCiphers }).(pulumi.StringPtrOutput) +func (i CdnDistributionConfigArgs) ToCdnDistributionConfigPtrOutput() CdnDistributionConfigPtrOutput { + return i.ToCdnDistributionConfigPtrOutputWithContext(context.Background()) } -func (o LogmeInstanceParametersOutput) FluentdTlsMaxVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.FluentdTlsMaxVersion }).(pulumi.StringPtrOutput) +func (i CdnDistributionConfigArgs) ToCdnDistributionConfigPtrOutputWithContext(ctx context.Context) CdnDistributionConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigOutput).ToCdnDistributionConfigPtrOutputWithContext(ctx) } -func (o LogmeInstanceParametersOutput) FluentdTlsMinVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.FluentdTlsMinVersion }).(pulumi.StringPtrOutput) -} +// CdnDistributionConfigPtrInput is an input type that accepts CdnDistributionConfigArgs, CdnDistributionConfigPtr and CdnDistributionConfigPtrOutput values. +// You can construct a concrete instance of `CdnDistributionConfigPtrInput` via: +// +// CdnDistributionConfigArgs{...} +// +// or: +// +// nil +type CdnDistributionConfigPtrInput interface { + pulumi.Input -func (o LogmeInstanceParametersOutput) FluentdTlsVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.FluentdTlsVersion }).(pulumi.StringPtrOutput) + ToCdnDistributionConfigPtrOutput() CdnDistributionConfigPtrOutput + ToCdnDistributionConfigPtrOutputWithContext(context.Context) CdnDistributionConfigPtrOutput } -func (o LogmeInstanceParametersOutput) FluentdUdp() pulumi.IntPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *int { return v.FluentdUdp }).(pulumi.IntPtrOutput) -} +type cdnDistributionConfigPtrType CdnDistributionConfigArgs -// If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). -func (o LogmeInstanceParametersOutput) Graphite() pulumi.StringPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.Graphite }).(pulumi.StringPtrOutput) +func CdnDistributionConfigPtr(v *CdnDistributionConfigArgs) CdnDistributionConfigPtrInput { + return (*cdnDistributionConfigPtrType)(v) } -// Combination of an integer and a timerange when an index will be considered "old" and can be deleted. Possible values for the timerange are `s`, `m`, `h` and `d`. -func (o LogmeInstanceParametersOutput) IsmDeletionAfter() pulumi.StringPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.IsmDeletionAfter }).(pulumi.StringPtrOutput) +func (*cdnDistributionConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CdnDistributionConfig)(nil)).Elem() } -func (o LogmeInstanceParametersOutput) IsmJitter() pulumi.Float64PtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *float64 { return v.IsmJitter }).(pulumi.Float64PtrOutput) +func (i *cdnDistributionConfigPtrType) ToCdnDistributionConfigPtrOutput() CdnDistributionConfigPtrOutput { + return i.ToCdnDistributionConfigPtrOutputWithContext(context.Background()) } -// Jitter of the execution time. -func (o LogmeInstanceParametersOutput) IsmJobInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *int { return v.IsmJobInterval }).(pulumi.IntPtrOutput) +func (i *cdnDistributionConfigPtrType) ToCdnDistributionConfigPtrOutputWithContext(ctx context.Context) CdnDistributionConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigPtrOutput) } -// The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. -func (o LogmeInstanceParametersOutput) JavaHeapspace() pulumi.IntPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *int { return v.JavaHeapspace }).(pulumi.IntPtrOutput) -} +type CdnDistributionConfigOutput struct{ *pulumi.OutputState } -// The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. -func (o LogmeInstanceParametersOutput) JavaMaxmetaspace() pulumi.IntPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *int { return v.JavaMaxmetaspace }).(pulumi.IntPtrOutput) +func (CdnDistributionConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionConfig)(nil)).Elem() } -// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. -func (o LogmeInstanceParametersOutput) MaxDiskThreshold() pulumi.IntPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *int { return v.MaxDiskThreshold }).(pulumi.IntPtrOutput) +func (o CdnDistributionConfigOutput) ToCdnDistributionConfigOutput() CdnDistributionConfigOutput { + return o } -// The frequency in seconds at which metrics are emitted (in seconds). -func (o LogmeInstanceParametersOutput) MetricsFrequency() pulumi.IntPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *int { return v.MetricsFrequency }).(pulumi.IntPtrOutput) +func (o CdnDistributionConfigOutput) ToCdnDistributionConfigOutputWithContext(ctx context.Context) CdnDistributionConfigOutput { + return o } -// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. -func (o LogmeInstanceParametersOutput) MetricsPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.MetricsPrefix }).(pulumi.StringPtrOutput) +func (o CdnDistributionConfigOutput) ToCdnDistributionConfigPtrOutput() CdnDistributionConfigPtrOutput { + return o.ToCdnDistributionConfigPtrOutputWithContext(context.Background()) } -// The ID of the STACKIT monitoring instance. -func (o LogmeInstanceParametersOutput) MonitoringInstanceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.MonitoringInstanceId }).(pulumi.StringPtrOutput) +func (o CdnDistributionConfigOutput) ToCdnDistributionConfigPtrOutputWithContext(ctx context.Context) CdnDistributionConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CdnDistributionConfig) *CdnDistributionConfig { + return &v + }).(CdnDistributionConfigPtrOutput) } -func (o LogmeInstanceParametersOutput) OpensearchTlsCiphers() pulumi.StringArrayOutput { - return o.ApplyT(func(v LogmeInstanceParameters) []string { return v.OpensearchTlsCiphers }).(pulumi.StringArrayOutput) +// The configured backend for the distribution +func (o CdnDistributionConfigOutput) Backend() CdnDistributionConfigBackendOutput { + return o.ApplyT(func(v CdnDistributionConfig) CdnDistributionConfigBackend { return v.Backend }).(CdnDistributionConfigBackendOutput) } -func (o LogmeInstanceParametersOutput) OpensearchTlsProtocols() pulumi.StringArrayOutput { - return o.ApplyT(func(v LogmeInstanceParameters) []string { return v.OpensearchTlsProtocols }).(pulumi.StringArrayOutput) +// The configured countries where distribution of content is blocked +func (o CdnDistributionConfigOutput) BlockedCountries() pulumi.StringArrayOutput { + return o.ApplyT(func(v CdnDistributionConfig) []string { return v.BlockedCountries }).(pulumi.StringArrayOutput) } -// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. -func (o LogmeInstanceParametersOutput) SgwAcl() pulumi.StringPtrOutput { - return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.SgwAcl }).(pulumi.StringPtrOutput) +// 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. +func (o CdnDistributionConfigOutput) Optimizer() CdnDistributionConfigOptimizerPtrOutput { + return o.ApplyT(func(v CdnDistributionConfig) *CdnDistributionConfigOptimizer { return v.Optimizer }).(CdnDistributionConfigOptimizerPtrOutput) } -// List of syslog servers to send logs to. -func (o LogmeInstanceParametersOutput) Syslogs() pulumi.StringArrayOutput { - return o.ApplyT(func(v LogmeInstanceParameters) []string { return v.Syslogs }).(pulumi.StringArrayOutput) +// The configured regions where content will be hosted +func (o CdnDistributionConfigOutput) Regions() pulumi.StringArrayOutput { + return o.ApplyT(func(v CdnDistributionConfig) []string { return v.Regions }).(pulumi.StringArrayOutput) } -type LogmeInstanceParametersPtrOutput struct{ *pulumi.OutputState } +type CdnDistributionConfigPtrOutput struct{ *pulumi.OutputState } -func (LogmeInstanceParametersPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**LogmeInstanceParameters)(nil)).Elem() +func (CdnDistributionConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CdnDistributionConfig)(nil)).Elem() } -func (o LogmeInstanceParametersPtrOutput) ToLogmeInstanceParametersPtrOutput() LogmeInstanceParametersPtrOutput { +func (o CdnDistributionConfigPtrOutput) ToCdnDistributionConfigPtrOutput() CdnDistributionConfigPtrOutput { return o } -func (o LogmeInstanceParametersPtrOutput) ToLogmeInstanceParametersPtrOutputWithContext(ctx context.Context) LogmeInstanceParametersPtrOutput { +func (o CdnDistributionConfigPtrOutput) ToCdnDistributionConfigPtrOutputWithContext(ctx context.Context) CdnDistributionConfigPtrOutput { return o } -func (o LogmeInstanceParametersPtrOutput) Elem() LogmeInstanceParametersOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) LogmeInstanceParameters { +func (o CdnDistributionConfigPtrOutput) Elem() CdnDistributionConfigOutput { + return o.ApplyT(func(v *CdnDistributionConfig) CdnDistributionConfig { if v != nil { return *v } - var ret LogmeInstanceParameters + var ret CdnDistributionConfig return ret - }).(LogmeInstanceParametersOutput) -} - -// Enable monitoring. -func (o LogmeInstanceParametersPtrOutput) EnableMonitoring() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *bool { - if v == nil { - return nil - } - return v.EnableMonitoring - }).(pulumi.BoolPtrOutput) -} - -func (o LogmeInstanceParametersPtrOutput) FluentdTcp() pulumi.IntPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *int { - if v == nil { - return nil - } - return v.FluentdTcp - }).(pulumi.IntPtrOutput) + }).(CdnDistributionConfigOutput) } -func (o LogmeInstanceParametersPtrOutput) FluentdTls() pulumi.IntPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *int { +// The configured backend for the distribution +func (o CdnDistributionConfigPtrOutput) Backend() CdnDistributionConfigBackendPtrOutput { + return o.ApplyT(func(v *CdnDistributionConfig) *CdnDistributionConfigBackend { if v == nil { return nil } - return v.FluentdTls - }).(pulumi.IntPtrOutput) + return &v.Backend + }).(CdnDistributionConfigBackendPtrOutput) } -func (o LogmeInstanceParametersPtrOutput) FluentdTlsCiphers() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *string { +// The configured countries where distribution of content is blocked +func (o CdnDistributionConfigPtrOutput) BlockedCountries() pulumi.StringArrayOutput { + return o.ApplyT(func(v *CdnDistributionConfig) []string { if v == nil { return nil } - return v.FluentdTlsCiphers - }).(pulumi.StringPtrOutput) + return v.BlockedCountries + }).(pulumi.StringArrayOutput) } -func (o LogmeInstanceParametersPtrOutput) FluentdTlsMaxVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *string { +// 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. +func (o CdnDistributionConfigPtrOutput) Optimizer() CdnDistributionConfigOptimizerPtrOutput { + return o.ApplyT(func(v *CdnDistributionConfig) *CdnDistributionConfigOptimizer { if v == nil { return nil } - return v.FluentdTlsMaxVersion - }).(pulumi.StringPtrOutput) + return v.Optimizer + }).(CdnDistributionConfigOptimizerPtrOutput) } -func (o LogmeInstanceParametersPtrOutput) FluentdTlsMinVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *string { +// The configured regions where content will be hosted +func (o CdnDistributionConfigPtrOutput) Regions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *CdnDistributionConfig) []string { if v == nil { return nil } - return v.FluentdTlsMinVersion - }).(pulumi.StringPtrOutput) + return v.Regions + }).(pulumi.StringArrayOutput) } -func (o LogmeInstanceParametersPtrOutput) FluentdTlsVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *string { - if v == nil { - return nil - } - return v.FluentdTlsVersion - }).(pulumi.StringPtrOutput) +type CdnDistributionConfigBackend struct { + // The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + BucketUrl *string `pulumi:"bucketUrl"` + // The credentials for the bucket. Required if type is 'bucket'. + Credentials *CdnDistributionConfigBackendCredentials `pulumi:"credentials"` + // The configured type http to configure countries where content is allowed. A map of URLs to a list of countries + Geofencing map[string][]string `pulumi:"geofencing"` + // The configured type http origin request headers for the backend + OriginRequestHeaders map[string]string `pulumi:"originRequestHeaders"` + // The configured backend type http for the distribution + OriginUrl *string `pulumi:"originUrl"` + // The region where the bucket is hosted. Required if type is 'bucket'. + Region *string `pulumi:"region"` + // The configured backend type. Possible values are: `http`, `bucket`. + Type string `pulumi:"type"` } -func (o LogmeInstanceParametersPtrOutput) FluentdUdp() pulumi.IntPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *int { - if v == nil { - return nil +// CdnDistributionConfigBackendInput is an input type that accepts CdnDistributionConfigBackendArgs and CdnDistributionConfigBackendOutput values. +// You can construct a concrete instance of `CdnDistributionConfigBackendInput` via: +// +// CdnDistributionConfigBackendArgs{...} +type CdnDistributionConfigBackendInput interface { + pulumi.Input + + ToCdnDistributionConfigBackendOutput() CdnDistributionConfigBackendOutput + ToCdnDistributionConfigBackendOutputWithContext(context.Context) CdnDistributionConfigBackendOutput +} + +type CdnDistributionConfigBackendArgs struct { + // The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + BucketUrl pulumi.StringPtrInput `pulumi:"bucketUrl"` + // The credentials for the bucket. Required if type is 'bucket'. + Credentials CdnDistributionConfigBackendCredentialsPtrInput `pulumi:"credentials"` + // The configured type http to configure countries where content is allowed. A map of URLs to a list of countries + Geofencing pulumi.StringArrayMapInput `pulumi:"geofencing"` + // The configured type http origin request headers for the backend + OriginRequestHeaders pulumi.StringMapInput `pulumi:"originRequestHeaders"` + // The configured backend type http for the distribution + OriginUrl pulumi.StringPtrInput `pulumi:"originUrl"` + // The region where the bucket is hosted. Required if type is 'bucket'. + Region pulumi.StringPtrInput `pulumi:"region"` + // The configured backend type. Possible values are: `http`, `bucket`. + Type pulumi.StringInput `pulumi:"type"` +} + +func (CdnDistributionConfigBackendArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionConfigBackend)(nil)).Elem() +} + +func (i CdnDistributionConfigBackendArgs) ToCdnDistributionConfigBackendOutput() CdnDistributionConfigBackendOutput { + return i.ToCdnDistributionConfigBackendOutputWithContext(context.Background()) +} + +func (i CdnDistributionConfigBackendArgs) ToCdnDistributionConfigBackendOutputWithContext(ctx context.Context) CdnDistributionConfigBackendOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigBackendOutput) +} + +func (i CdnDistributionConfigBackendArgs) ToCdnDistributionConfigBackendPtrOutput() CdnDistributionConfigBackendPtrOutput { + return i.ToCdnDistributionConfigBackendPtrOutputWithContext(context.Background()) +} + +func (i CdnDistributionConfigBackendArgs) ToCdnDistributionConfigBackendPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigBackendOutput).ToCdnDistributionConfigBackendPtrOutputWithContext(ctx) +} + +// CdnDistributionConfigBackendPtrInput is an input type that accepts CdnDistributionConfigBackendArgs, CdnDistributionConfigBackendPtr and CdnDistributionConfigBackendPtrOutput values. +// You can construct a concrete instance of `CdnDistributionConfigBackendPtrInput` via: +// +// CdnDistributionConfigBackendArgs{...} +// +// or: +// +// nil +type CdnDistributionConfigBackendPtrInput interface { + pulumi.Input + + ToCdnDistributionConfigBackendPtrOutput() CdnDistributionConfigBackendPtrOutput + ToCdnDistributionConfigBackendPtrOutputWithContext(context.Context) CdnDistributionConfigBackendPtrOutput +} + +type cdnDistributionConfigBackendPtrType CdnDistributionConfigBackendArgs + +func CdnDistributionConfigBackendPtr(v *CdnDistributionConfigBackendArgs) CdnDistributionConfigBackendPtrInput { + return (*cdnDistributionConfigBackendPtrType)(v) +} + +func (*cdnDistributionConfigBackendPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CdnDistributionConfigBackend)(nil)).Elem() +} + +func (i *cdnDistributionConfigBackendPtrType) ToCdnDistributionConfigBackendPtrOutput() CdnDistributionConfigBackendPtrOutput { + return i.ToCdnDistributionConfigBackendPtrOutputWithContext(context.Background()) +} + +func (i *cdnDistributionConfigBackendPtrType) ToCdnDistributionConfigBackendPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigBackendPtrOutput) +} + +type CdnDistributionConfigBackendOutput struct{ *pulumi.OutputState } + +func (CdnDistributionConfigBackendOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionConfigBackend)(nil)).Elem() +} + +func (o CdnDistributionConfigBackendOutput) ToCdnDistributionConfigBackendOutput() CdnDistributionConfigBackendOutput { + return o +} + +func (o CdnDistributionConfigBackendOutput) ToCdnDistributionConfigBackendOutputWithContext(ctx context.Context) CdnDistributionConfigBackendOutput { + return o +} + +func (o CdnDistributionConfigBackendOutput) ToCdnDistributionConfigBackendPtrOutput() CdnDistributionConfigBackendPtrOutput { + return o.ToCdnDistributionConfigBackendPtrOutputWithContext(context.Background()) +} + +func (o CdnDistributionConfigBackendOutput) ToCdnDistributionConfigBackendPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CdnDistributionConfigBackend) *CdnDistributionConfigBackend { + return &v + }).(CdnDistributionConfigBackendPtrOutput) +} + +// The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. +func (o CdnDistributionConfigBackendOutput) BucketUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v CdnDistributionConfigBackend) *string { return v.BucketUrl }).(pulumi.StringPtrOutput) +} + +// The credentials for the bucket. Required if type is 'bucket'. +func (o CdnDistributionConfigBackendOutput) Credentials() CdnDistributionConfigBackendCredentialsPtrOutput { + return o.ApplyT(func(v CdnDistributionConfigBackend) *CdnDistributionConfigBackendCredentials { return v.Credentials }).(CdnDistributionConfigBackendCredentialsPtrOutput) +} + +// The configured type http to configure countries where content is allowed. A map of URLs to a list of countries +func (o CdnDistributionConfigBackendOutput) Geofencing() pulumi.StringArrayMapOutput { + return o.ApplyT(func(v CdnDistributionConfigBackend) map[string][]string { return v.Geofencing }).(pulumi.StringArrayMapOutput) +} + +// The configured type http origin request headers for the backend +func (o CdnDistributionConfigBackendOutput) OriginRequestHeaders() pulumi.StringMapOutput { + return o.ApplyT(func(v CdnDistributionConfigBackend) map[string]string { return v.OriginRequestHeaders }).(pulumi.StringMapOutput) +} + +// The configured backend type http for the distribution +func (o CdnDistributionConfigBackendOutput) OriginUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v CdnDistributionConfigBackend) *string { return v.OriginUrl }).(pulumi.StringPtrOutput) +} + +// The region where the bucket is hosted. Required if type is 'bucket'. +func (o CdnDistributionConfigBackendOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v CdnDistributionConfigBackend) *string { return v.Region }).(pulumi.StringPtrOutput) +} + +// The configured backend type. Possible values are: `http`, `bucket`. +func (o CdnDistributionConfigBackendOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v CdnDistributionConfigBackend) string { return v.Type }).(pulumi.StringOutput) +} + +type CdnDistributionConfigBackendPtrOutput struct{ *pulumi.OutputState } + +func (CdnDistributionConfigBackendPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CdnDistributionConfigBackend)(nil)).Elem() +} + +func (o CdnDistributionConfigBackendPtrOutput) ToCdnDistributionConfigBackendPtrOutput() CdnDistributionConfigBackendPtrOutput { + return o +} + +func (o CdnDistributionConfigBackendPtrOutput) ToCdnDistributionConfigBackendPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendPtrOutput { + return o +} + +func (o CdnDistributionConfigBackendPtrOutput) Elem() CdnDistributionConfigBackendOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackend) CdnDistributionConfigBackend { + if v != nil { + return *v } - return v.FluentdUdp - }).(pulumi.IntPtrOutput) + var ret CdnDistributionConfigBackend + return ret + }).(CdnDistributionConfigBackendOutput) } -// If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). -func (o LogmeInstanceParametersPtrOutput) Graphite() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *string { +// The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. +func (o CdnDistributionConfigBackendPtrOutput) BucketUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackend) *string { if v == nil { return nil } - return v.Graphite + return v.BucketUrl }).(pulumi.StringPtrOutput) } -// Combination of an integer and a timerange when an index will be considered "old" and can be deleted. Possible values for the timerange are `s`, `m`, `h` and `d`. -func (o LogmeInstanceParametersPtrOutput) IsmDeletionAfter() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *string { +// The credentials for the bucket. Required if type is 'bucket'. +func (o CdnDistributionConfigBackendPtrOutput) Credentials() CdnDistributionConfigBackendCredentialsPtrOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackend) *CdnDistributionConfigBackendCredentials { if v == nil { return nil } - return v.IsmDeletionAfter - }).(pulumi.StringPtrOutput) + return v.Credentials + }).(CdnDistributionConfigBackendCredentialsPtrOutput) } -func (o LogmeInstanceParametersPtrOutput) IsmJitter() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *float64 { +// The configured type http to configure countries where content is allowed. A map of URLs to a list of countries +func (o CdnDistributionConfigBackendPtrOutput) Geofencing() pulumi.StringArrayMapOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackend) map[string][]string { if v == nil { return nil } - return v.IsmJitter - }).(pulumi.Float64PtrOutput) + return v.Geofencing + }).(pulumi.StringArrayMapOutput) } -// Jitter of the execution time. -func (o LogmeInstanceParametersPtrOutput) IsmJobInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *int { +// The configured type http origin request headers for the backend +func (o CdnDistributionConfigBackendPtrOutput) OriginRequestHeaders() pulumi.StringMapOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackend) map[string]string { if v == nil { return nil } - return v.IsmJobInterval - }).(pulumi.IntPtrOutput) + return v.OriginRequestHeaders + }).(pulumi.StringMapOutput) } -// The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. -func (o LogmeInstanceParametersPtrOutput) JavaHeapspace() pulumi.IntPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *int { +// The configured backend type http for the distribution +func (o CdnDistributionConfigBackendPtrOutput) OriginUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackend) *string { if v == nil { return nil } - return v.JavaHeapspace - }).(pulumi.IntPtrOutput) + return v.OriginUrl + }).(pulumi.StringPtrOutput) } -// The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. -func (o LogmeInstanceParametersPtrOutput) JavaMaxmetaspace() pulumi.IntPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *int { +// The region where the bucket is hosted. Required if type is 'bucket'. +func (o CdnDistributionConfigBackendPtrOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackend) *string { if v == nil { return nil } - return v.JavaMaxmetaspace - }).(pulumi.IntPtrOutput) + return v.Region + }).(pulumi.StringPtrOutput) } -// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. -func (o LogmeInstanceParametersPtrOutput) MaxDiskThreshold() pulumi.IntPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *int { +// The configured backend type. Possible values are: `http`, `bucket`. +func (o CdnDistributionConfigBackendPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackend) *string { if v == nil { return nil } - return v.MaxDiskThreshold - }).(pulumi.IntPtrOutput) + return &v.Type + }).(pulumi.StringPtrOutput) } -// The frequency in seconds at which metrics are emitted (in seconds). -func (o LogmeInstanceParametersPtrOutput) MetricsFrequency() pulumi.IntPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *int { - if v == nil { - return nil - } - return v.MetricsFrequency - }).(pulumi.IntPtrOutput) -} - -// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. -func (o LogmeInstanceParametersPtrOutput) MetricsPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *string { - if v == nil { - return nil - } - return v.MetricsPrefix - }).(pulumi.StringPtrOutput) -} - -// The ID of the STACKIT monitoring instance. -func (o LogmeInstanceParametersPtrOutput) MonitoringInstanceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *string { - if v == nil { - return nil - } - return v.MonitoringInstanceId - }).(pulumi.StringPtrOutput) -} - -func (o LogmeInstanceParametersPtrOutput) OpensearchTlsCiphers() pulumi.StringArrayOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) []string { - if v == nil { - return nil - } - return v.OpensearchTlsCiphers - }).(pulumi.StringArrayOutput) -} - -func (o LogmeInstanceParametersPtrOutput) OpensearchTlsProtocols() pulumi.StringArrayOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) []string { - if v == nil { - return nil - } - return v.OpensearchTlsProtocols - }).(pulumi.StringArrayOutput) -} - -// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. -func (o LogmeInstanceParametersPtrOutput) SgwAcl() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) *string { - if v == nil { - return nil - } - return v.SgwAcl - }).(pulumi.StringPtrOutput) -} - -// List of syslog servers to send logs to. -func (o LogmeInstanceParametersPtrOutput) Syslogs() pulumi.StringArrayOutput { - return o.ApplyT(func(v *LogmeInstanceParameters) []string { - if v == nil { - return nil - } - return v.Syslogs - }).(pulumi.StringArrayOutput) -} - -type MariadbInstanceParameters struct { - // Enable monitoring. - EnableMonitoring *bool `pulumi:"enableMonitoring"` - // Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. - Graphite *string `pulumi:"graphite"` - // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. - MaxDiskThreshold *int `pulumi:"maxDiskThreshold"` - // The frequency in seconds at which metrics are emitted. - MetricsFrequency *int `pulumi:"metricsFrequency"` - // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key - MetricsPrefix *string `pulumi:"metricsPrefix"` - // The ID of the STACKIT monitoring instance. Monitoring instances with the plan "Observability-Monitoring-Starter" are not supported. - MonitoringInstanceId *string `pulumi:"monitoringInstanceId"` - // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. - SgwAcl *string `pulumi:"sgwAcl"` - // List of syslog servers to send logs to. - Syslogs []string `pulumi:"syslogs"` +type CdnDistributionConfigBackendCredentials struct { + // The access key for the bucket. Required if type is 'bucket'. + AccessKeyId string `pulumi:"accessKeyId"` + // The access key for the bucket. Required if type is 'bucket'. + SecretAccessKey string `pulumi:"secretAccessKey"` } -// MariadbInstanceParametersInput is an input type that accepts MariadbInstanceParametersArgs and MariadbInstanceParametersOutput values. -// You can construct a concrete instance of `MariadbInstanceParametersInput` via: +// CdnDistributionConfigBackendCredentialsInput is an input type that accepts CdnDistributionConfigBackendCredentialsArgs and CdnDistributionConfigBackendCredentialsOutput values. +// You can construct a concrete instance of `CdnDistributionConfigBackendCredentialsInput` via: // -// MariadbInstanceParametersArgs{...} -type MariadbInstanceParametersInput interface { +// CdnDistributionConfigBackendCredentialsArgs{...} +type CdnDistributionConfigBackendCredentialsInput interface { pulumi.Input - ToMariadbInstanceParametersOutput() MariadbInstanceParametersOutput - ToMariadbInstanceParametersOutputWithContext(context.Context) MariadbInstanceParametersOutput + ToCdnDistributionConfigBackendCredentialsOutput() CdnDistributionConfigBackendCredentialsOutput + ToCdnDistributionConfigBackendCredentialsOutputWithContext(context.Context) CdnDistributionConfigBackendCredentialsOutput } -type MariadbInstanceParametersArgs struct { - // Enable monitoring. - EnableMonitoring pulumi.BoolPtrInput `pulumi:"enableMonitoring"` - // Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. - Graphite pulumi.StringPtrInput `pulumi:"graphite"` - // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. - MaxDiskThreshold pulumi.IntPtrInput `pulumi:"maxDiskThreshold"` - // The frequency in seconds at which metrics are emitted. - MetricsFrequency pulumi.IntPtrInput `pulumi:"metricsFrequency"` - // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key - MetricsPrefix pulumi.StringPtrInput `pulumi:"metricsPrefix"` - // The ID of the STACKIT monitoring instance. Monitoring instances with the plan "Observability-Monitoring-Starter" are not supported. - MonitoringInstanceId pulumi.StringPtrInput `pulumi:"monitoringInstanceId"` - // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. - SgwAcl pulumi.StringPtrInput `pulumi:"sgwAcl"` - // List of syslog servers to send logs to. - Syslogs pulumi.StringArrayInput `pulumi:"syslogs"` +type CdnDistributionConfigBackendCredentialsArgs struct { + // The access key for the bucket. Required if type is 'bucket'. + AccessKeyId pulumi.StringInput `pulumi:"accessKeyId"` + // The access key for the bucket. Required if type is 'bucket'. + SecretAccessKey pulumi.StringInput `pulumi:"secretAccessKey"` } -func (MariadbInstanceParametersArgs) ElementType() reflect.Type { - return reflect.TypeOf((*MariadbInstanceParameters)(nil)).Elem() +func (CdnDistributionConfigBackendCredentialsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionConfigBackendCredentials)(nil)).Elem() } -func (i MariadbInstanceParametersArgs) ToMariadbInstanceParametersOutput() MariadbInstanceParametersOutput { - return i.ToMariadbInstanceParametersOutputWithContext(context.Background()) +func (i CdnDistributionConfigBackendCredentialsArgs) ToCdnDistributionConfigBackendCredentialsOutput() CdnDistributionConfigBackendCredentialsOutput { + return i.ToCdnDistributionConfigBackendCredentialsOutputWithContext(context.Background()) } -func (i MariadbInstanceParametersArgs) ToMariadbInstanceParametersOutputWithContext(ctx context.Context) MariadbInstanceParametersOutput { - return pulumi.ToOutputWithContext(ctx, i).(MariadbInstanceParametersOutput) +func (i CdnDistributionConfigBackendCredentialsArgs) ToCdnDistributionConfigBackendCredentialsOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigBackendCredentialsOutput) } -func (i MariadbInstanceParametersArgs) ToMariadbInstanceParametersPtrOutput() MariadbInstanceParametersPtrOutput { - return i.ToMariadbInstanceParametersPtrOutputWithContext(context.Background()) +func (i CdnDistributionConfigBackendCredentialsArgs) ToCdnDistributionConfigBackendCredentialsPtrOutput() CdnDistributionConfigBackendCredentialsPtrOutput { + return i.ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(context.Background()) } -func (i MariadbInstanceParametersArgs) ToMariadbInstanceParametersPtrOutputWithContext(ctx context.Context) MariadbInstanceParametersPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MariadbInstanceParametersOutput).ToMariadbInstanceParametersPtrOutputWithContext(ctx) +func (i CdnDistributionConfigBackendCredentialsArgs) ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigBackendCredentialsOutput).ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(ctx) } -// MariadbInstanceParametersPtrInput is an input type that accepts MariadbInstanceParametersArgs, MariadbInstanceParametersPtr and MariadbInstanceParametersPtrOutput values. -// You can construct a concrete instance of `MariadbInstanceParametersPtrInput` via: +// CdnDistributionConfigBackendCredentialsPtrInput is an input type that accepts CdnDistributionConfigBackendCredentialsArgs, CdnDistributionConfigBackendCredentialsPtr and CdnDistributionConfigBackendCredentialsPtrOutput values. +// You can construct a concrete instance of `CdnDistributionConfigBackendCredentialsPtrInput` via: // -// MariadbInstanceParametersArgs{...} +// CdnDistributionConfigBackendCredentialsArgs{...} // // or: // // nil -type MariadbInstanceParametersPtrInput interface { +type CdnDistributionConfigBackendCredentialsPtrInput interface { pulumi.Input - ToMariadbInstanceParametersPtrOutput() MariadbInstanceParametersPtrOutput - ToMariadbInstanceParametersPtrOutputWithContext(context.Context) MariadbInstanceParametersPtrOutput + ToCdnDistributionConfigBackendCredentialsPtrOutput() CdnDistributionConfigBackendCredentialsPtrOutput + ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(context.Context) CdnDistributionConfigBackendCredentialsPtrOutput } -type mariadbInstanceParametersPtrType MariadbInstanceParametersArgs +type cdnDistributionConfigBackendCredentialsPtrType CdnDistributionConfigBackendCredentialsArgs -func MariadbInstanceParametersPtr(v *MariadbInstanceParametersArgs) MariadbInstanceParametersPtrInput { - return (*mariadbInstanceParametersPtrType)(v) +func CdnDistributionConfigBackendCredentialsPtr(v *CdnDistributionConfigBackendCredentialsArgs) CdnDistributionConfigBackendCredentialsPtrInput { + return (*cdnDistributionConfigBackendCredentialsPtrType)(v) } -func (*mariadbInstanceParametersPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**MariadbInstanceParameters)(nil)).Elem() +func (*cdnDistributionConfigBackendCredentialsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CdnDistributionConfigBackendCredentials)(nil)).Elem() } -func (i *mariadbInstanceParametersPtrType) ToMariadbInstanceParametersPtrOutput() MariadbInstanceParametersPtrOutput { - return i.ToMariadbInstanceParametersPtrOutputWithContext(context.Background()) +func (i *cdnDistributionConfigBackendCredentialsPtrType) ToCdnDistributionConfigBackendCredentialsPtrOutput() CdnDistributionConfigBackendCredentialsPtrOutput { + return i.ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(context.Background()) } -func (i *mariadbInstanceParametersPtrType) ToMariadbInstanceParametersPtrOutputWithContext(ctx context.Context) MariadbInstanceParametersPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MariadbInstanceParametersPtrOutput) +func (i *cdnDistributionConfigBackendCredentialsPtrType) ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigBackendCredentialsPtrOutput) } -type MariadbInstanceParametersOutput struct{ *pulumi.OutputState } +type CdnDistributionConfigBackendCredentialsOutput struct{ *pulumi.OutputState } -func (MariadbInstanceParametersOutput) ElementType() reflect.Type { - return reflect.TypeOf((*MariadbInstanceParameters)(nil)).Elem() +func (CdnDistributionConfigBackendCredentialsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionConfigBackendCredentials)(nil)).Elem() } -func (o MariadbInstanceParametersOutput) ToMariadbInstanceParametersOutput() MariadbInstanceParametersOutput { +func (o CdnDistributionConfigBackendCredentialsOutput) ToCdnDistributionConfigBackendCredentialsOutput() CdnDistributionConfigBackendCredentialsOutput { return o } -func (o MariadbInstanceParametersOutput) ToMariadbInstanceParametersOutputWithContext(ctx context.Context) MariadbInstanceParametersOutput { +func (o CdnDistributionConfigBackendCredentialsOutput) ToCdnDistributionConfigBackendCredentialsOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsOutput { return o } -func (o MariadbInstanceParametersOutput) ToMariadbInstanceParametersPtrOutput() MariadbInstanceParametersPtrOutput { - return o.ToMariadbInstanceParametersPtrOutputWithContext(context.Background()) +func (o CdnDistributionConfigBackendCredentialsOutput) ToCdnDistributionConfigBackendCredentialsPtrOutput() CdnDistributionConfigBackendCredentialsPtrOutput { + return o.ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(context.Background()) } -func (o MariadbInstanceParametersOutput) ToMariadbInstanceParametersPtrOutputWithContext(ctx context.Context) MariadbInstanceParametersPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v MariadbInstanceParameters) *MariadbInstanceParameters { +func (o CdnDistributionConfigBackendCredentialsOutput) ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CdnDistributionConfigBackendCredentials) *CdnDistributionConfigBackendCredentials { return &v - }).(MariadbInstanceParametersPtrOutput) -} - -// Enable monitoring. -func (o MariadbInstanceParametersOutput) EnableMonitoring() pulumi.BoolPtrOutput { - return o.ApplyT(func(v MariadbInstanceParameters) *bool { return v.EnableMonitoring }).(pulumi.BoolPtrOutput) -} - -// Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. -func (o MariadbInstanceParametersOutput) Graphite() pulumi.StringPtrOutput { - return o.ApplyT(func(v MariadbInstanceParameters) *string { return v.Graphite }).(pulumi.StringPtrOutput) -} - -// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. -func (o MariadbInstanceParametersOutput) MaxDiskThreshold() pulumi.IntPtrOutput { - return o.ApplyT(func(v MariadbInstanceParameters) *int { return v.MaxDiskThreshold }).(pulumi.IntPtrOutput) -} - -// The frequency in seconds at which metrics are emitted. -func (o MariadbInstanceParametersOutput) MetricsFrequency() pulumi.IntPtrOutput { - return o.ApplyT(func(v MariadbInstanceParameters) *int { return v.MetricsFrequency }).(pulumi.IntPtrOutput) -} - -// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key -func (o MariadbInstanceParametersOutput) MetricsPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v MariadbInstanceParameters) *string { return v.MetricsPrefix }).(pulumi.StringPtrOutput) -} - -// The ID of the STACKIT monitoring instance. Monitoring instances with the plan "Observability-Monitoring-Starter" are not supported. -func (o MariadbInstanceParametersOutput) MonitoringInstanceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v MariadbInstanceParameters) *string { return v.MonitoringInstanceId }).(pulumi.StringPtrOutput) + }).(CdnDistributionConfigBackendCredentialsPtrOutput) } -// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. -func (o MariadbInstanceParametersOutput) SgwAcl() pulumi.StringPtrOutput { - return o.ApplyT(func(v MariadbInstanceParameters) *string { return v.SgwAcl }).(pulumi.StringPtrOutput) +// The access key for the bucket. Required if type is 'bucket'. +func (o CdnDistributionConfigBackendCredentialsOutput) AccessKeyId() pulumi.StringOutput { + return o.ApplyT(func(v CdnDistributionConfigBackendCredentials) string { return v.AccessKeyId }).(pulumi.StringOutput) } -// List of syslog servers to send logs to. -func (o MariadbInstanceParametersOutput) Syslogs() pulumi.StringArrayOutput { - return o.ApplyT(func(v MariadbInstanceParameters) []string { return v.Syslogs }).(pulumi.StringArrayOutput) +// The access key for the bucket. Required if type is 'bucket'. +func (o CdnDistributionConfigBackendCredentialsOutput) SecretAccessKey() pulumi.StringOutput { + return o.ApplyT(func(v CdnDistributionConfigBackendCredentials) string { return v.SecretAccessKey }).(pulumi.StringOutput) } -type MariadbInstanceParametersPtrOutput struct{ *pulumi.OutputState } +type CdnDistributionConfigBackendCredentialsPtrOutput struct{ *pulumi.OutputState } -func (MariadbInstanceParametersPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**MariadbInstanceParameters)(nil)).Elem() +func (CdnDistributionConfigBackendCredentialsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CdnDistributionConfigBackendCredentials)(nil)).Elem() } -func (o MariadbInstanceParametersPtrOutput) ToMariadbInstanceParametersPtrOutput() MariadbInstanceParametersPtrOutput { +func (o CdnDistributionConfigBackendCredentialsPtrOutput) ToCdnDistributionConfigBackendCredentialsPtrOutput() CdnDistributionConfigBackendCredentialsPtrOutput { return o } -func (o MariadbInstanceParametersPtrOutput) ToMariadbInstanceParametersPtrOutputWithContext(ctx context.Context) MariadbInstanceParametersPtrOutput { +func (o CdnDistributionConfigBackendCredentialsPtrOutput) ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsPtrOutput { return o } -func (o MariadbInstanceParametersPtrOutput) Elem() MariadbInstanceParametersOutput { - return o.ApplyT(func(v *MariadbInstanceParameters) MariadbInstanceParameters { +func (o CdnDistributionConfigBackendCredentialsPtrOutput) Elem() CdnDistributionConfigBackendCredentialsOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackendCredentials) CdnDistributionConfigBackendCredentials { if v != nil { return *v } - var ret MariadbInstanceParameters + var ret CdnDistributionConfigBackendCredentials return ret - }).(MariadbInstanceParametersOutput) + }).(CdnDistributionConfigBackendCredentialsOutput) } -// Enable monitoring. -func (o MariadbInstanceParametersPtrOutput) EnableMonitoring() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *MariadbInstanceParameters) *bool { - if v == nil { - return nil - } - return v.EnableMonitoring - }).(pulumi.BoolPtrOutput) -} - -// Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. -func (o MariadbInstanceParametersPtrOutput) Graphite() pulumi.StringPtrOutput { - return o.ApplyT(func(v *MariadbInstanceParameters) *string { - if v == nil { - return nil - } - return v.Graphite - }).(pulumi.StringPtrOutput) -} - -// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. -func (o MariadbInstanceParametersPtrOutput) MaxDiskThreshold() pulumi.IntPtrOutput { - return o.ApplyT(func(v *MariadbInstanceParameters) *int { - if v == nil { - return nil - } - return v.MaxDiskThreshold - }).(pulumi.IntPtrOutput) -} - -// The frequency in seconds at which metrics are emitted. -func (o MariadbInstanceParametersPtrOutput) MetricsFrequency() pulumi.IntPtrOutput { - return o.ApplyT(func(v *MariadbInstanceParameters) *int { - if v == nil { - return nil - } - return v.MetricsFrequency - }).(pulumi.IntPtrOutput) -} - -// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key -func (o MariadbInstanceParametersPtrOutput) MetricsPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *MariadbInstanceParameters) *string { - if v == nil { - return nil - } - return v.MetricsPrefix - }).(pulumi.StringPtrOutput) -} - -// The ID of the STACKIT monitoring instance. Monitoring instances with the plan "Observability-Monitoring-Starter" are not supported. -func (o MariadbInstanceParametersPtrOutput) MonitoringInstanceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *MariadbInstanceParameters) *string { +// The access key for the bucket. Required if type is 'bucket'. +func (o CdnDistributionConfigBackendCredentialsPtrOutput) AccessKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackendCredentials) *string { if v == nil { return nil } - return v.MonitoringInstanceId + return &v.AccessKeyId }).(pulumi.StringPtrOutput) } -// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. -func (o MariadbInstanceParametersPtrOutput) SgwAcl() pulumi.StringPtrOutput { - return o.ApplyT(func(v *MariadbInstanceParameters) *string { +// The access key for the bucket. Required if type is 'bucket'. +func (o CdnDistributionConfigBackendCredentialsPtrOutput) SecretAccessKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackendCredentials) *string { if v == nil { return nil } - return v.SgwAcl + return &v.SecretAccessKey }).(pulumi.StringPtrOutput) } -// List of syslog servers to send logs to. -func (o MariadbInstanceParametersPtrOutput) Syslogs() pulumi.StringArrayOutput { - return o.ApplyT(func(v *MariadbInstanceParameters) []string { - if v == nil { - return nil - } - return v.Syslogs - }).(pulumi.StringArrayOutput) -} - -type MongodbflexInstanceFlavor struct { - Cpu int `pulumi:"cpu"` - Description *string `pulumi:"description"` - Id *string `pulumi:"id"` - Ram int `pulumi:"ram"` +type CdnDistributionConfigOptimizer struct { + Enabled *bool `pulumi:"enabled"` } -// MongodbflexInstanceFlavorInput is an input type that accepts MongodbflexInstanceFlavorArgs and MongodbflexInstanceFlavorOutput values. -// You can construct a concrete instance of `MongodbflexInstanceFlavorInput` via: +// CdnDistributionConfigOptimizerInput is an input type that accepts CdnDistributionConfigOptimizerArgs and CdnDistributionConfigOptimizerOutput values. +// You can construct a concrete instance of `CdnDistributionConfigOptimizerInput` via: // -// MongodbflexInstanceFlavorArgs{...} -type MongodbflexInstanceFlavorInput interface { +// CdnDistributionConfigOptimizerArgs{...} +type CdnDistributionConfigOptimizerInput interface { pulumi.Input - ToMongodbflexInstanceFlavorOutput() MongodbflexInstanceFlavorOutput - ToMongodbflexInstanceFlavorOutputWithContext(context.Context) MongodbflexInstanceFlavorOutput + ToCdnDistributionConfigOptimizerOutput() CdnDistributionConfigOptimizerOutput + ToCdnDistributionConfigOptimizerOutputWithContext(context.Context) CdnDistributionConfigOptimizerOutput } -type MongodbflexInstanceFlavorArgs struct { - Cpu pulumi.IntInput `pulumi:"cpu"` - Description pulumi.StringPtrInput `pulumi:"description"` - Id pulumi.StringPtrInput `pulumi:"id"` - Ram pulumi.IntInput `pulumi:"ram"` +type CdnDistributionConfigOptimizerArgs struct { + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` } -func (MongodbflexInstanceFlavorArgs) ElementType() reflect.Type { - return reflect.TypeOf((*MongodbflexInstanceFlavor)(nil)).Elem() +func (CdnDistributionConfigOptimizerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionConfigOptimizer)(nil)).Elem() } -func (i MongodbflexInstanceFlavorArgs) ToMongodbflexInstanceFlavorOutput() MongodbflexInstanceFlavorOutput { - return i.ToMongodbflexInstanceFlavorOutputWithContext(context.Background()) +func (i CdnDistributionConfigOptimizerArgs) ToCdnDistributionConfigOptimizerOutput() CdnDistributionConfigOptimizerOutput { + return i.ToCdnDistributionConfigOptimizerOutputWithContext(context.Background()) } -func (i MongodbflexInstanceFlavorArgs) ToMongodbflexInstanceFlavorOutputWithContext(ctx context.Context) MongodbflexInstanceFlavorOutput { - return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceFlavorOutput) +func (i CdnDistributionConfigOptimizerArgs) ToCdnDistributionConfigOptimizerOutputWithContext(ctx context.Context) CdnDistributionConfigOptimizerOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigOptimizerOutput) } -func (i MongodbflexInstanceFlavorArgs) ToMongodbflexInstanceFlavorPtrOutput() MongodbflexInstanceFlavorPtrOutput { - return i.ToMongodbflexInstanceFlavorPtrOutputWithContext(context.Background()) +func (i CdnDistributionConfigOptimizerArgs) ToCdnDistributionConfigOptimizerPtrOutput() CdnDistributionConfigOptimizerPtrOutput { + return i.ToCdnDistributionConfigOptimizerPtrOutputWithContext(context.Background()) } -func (i MongodbflexInstanceFlavorArgs) ToMongodbflexInstanceFlavorPtrOutputWithContext(ctx context.Context) MongodbflexInstanceFlavorPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceFlavorOutput).ToMongodbflexInstanceFlavorPtrOutputWithContext(ctx) +func (i CdnDistributionConfigOptimizerArgs) ToCdnDistributionConfigOptimizerPtrOutputWithContext(ctx context.Context) CdnDistributionConfigOptimizerPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigOptimizerOutput).ToCdnDistributionConfigOptimizerPtrOutputWithContext(ctx) } -// MongodbflexInstanceFlavorPtrInput is an input type that accepts MongodbflexInstanceFlavorArgs, MongodbflexInstanceFlavorPtr and MongodbflexInstanceFlavorPtrOutput values. -// You can construct a concrete instance of `MongodbflexInstanceFlavorPtrInput` via: +// CdnDistributionConfigOptimizerPtrInput is an input type that accepts CdnDistributionConfigOptimizerArgs, CdnDistributionConfigOptimizerPtr and CdnDistributionConfigOptimizerPtrOutput values. +// You can construct a concrete instance of `CdnDistributionConfigOptimizerPtrInput` via: // -// MongodbflexInstanceFlavorArgs{...} +// CdnDistributionConfigOptimizerArgs{...} // // or: // // nil -type MongodbflexInstanceFlavorPtrInput interface { +type CdnDistributionConfigOptimizerPtrInput interface { pulumi.Input - ToMongodbflexInstanceFlavorPtrOutput() MongodbflexInstanceFlavorPtrOutput - ToMongodbflexInstanceFlavorPtrOutputWithContext(context.Context) MongodbflexInstanceFlavorPtrOutput + ToCdnDistributionConfigOptimizerPtrOutput() CdnDistributionConfigOptimizerPtrOutput + ToCdnDistributionConfigOptimizerPtrOutputWithContext(context.Context) CdnDistributionConfigOptimizerPtrOutput } -type mongodbflexInstanceFlavorPtrType MongodbflexInstanceFlavorArgs +type cdnDistributionConfigOptimizerPtrType CdnDistributionConfigOptimizerArgs -func MongodbflexInstanceFlavorPtr(v *MongodbflexInstanceFlavorArgs) MongodbflexInstanceFlavorPtrInput { - return (*mongodbflexInstanceFlavorPtrType)(v) +func CdnDistributionConfigOptimizerPtr(v *CdnDistributionConfigOptimizerArgs) CdnDistributionConfigOptimizerPtrInput { + return (*cdnDistributionConfigOptimizerPtrType)(v) } -func (*mongodbflexInstanceFlavorPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**MongodbflexInstanceFlavor)(nil)).Elem() +func (*cdnDistributionConfigOptimizerPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CdnDistributionConfigOptimizer)(nil)).Elem() } -func (i *mongodbflexInstanceFlavorPtrType) ToMongodbflexInstanceFlavorPtrOutput() MongodbflexInstanceFlavorPtrOutput { - return i.ToMongodbflexInstanceFlavorPtrOutputWithContext(context.Background()) +func (i *cdnDistributionConfigOptimizerPtrType) ToCdnDistributionConfigOptimizerPtrOutput() CdnDistributionConfigOptimizerPtrOutput { + return i.ToCdnDistributionConfigOptimizerPtrOutputWithContext(context.Background()) } -func (i *mongodbflexInstanceFlavorPtrType) ToMongodbflexInstanceFlavorPtrOutputWithContext(ctx context.Context) MongodbflexInstanceFlavorPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceFlavorPtrOutput) +func (i *cdnDistributionConfigOptimizerPtrType) ToCdnDistributionConfigOptimizerPtrOutputWithContext(ctx context.Context) CdnDistributionConfigOptimizerPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigOptimizerPtrOutput) } -type MongodbflexInstanceFlavorOutput struct{ *pulumi.OutputState } +type CdnDistributionConfigOptimizerOutput struct{ *pulumi.OutputState } -func (MongodbflexInstanceFlavorOutput) ElementType() reflect.Type { - return reflect.TypeOf((*MongodbflexInstanceFlavor)(nil)).Elem() +func (CdnDistributionConfigOptimizerOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionConfigOptimizer)(nil)).Elem() } -func (o MongodbflexInstanceFlavorOutput) ToMongodbflexInstanceFlavorOutput() MongodbflexInstanceFlavorOutput { +func (o CdnDistributionConfigOptimizerOutput) ToCdnDistributionConfigOptimizerOutput() CdnDistributionConfigOptimizerOutput { return o } -func (o MongodbflexInstanceFlavorOutput) ToMongodbflexInstanceFlavorOutputWithContext(ctx context.Context) MongodbflexInstanceFlavorOutput { +func (o CdnDistributionConfigOptimizerOutput) ToCdnDistributionConfigOptimizerOutputWithContext(ctx context.Context) CdnDistributionConfigOptimizerOutput { return o } -func (o MongodbflexInstanceFlavorOutput) ToMongodbflexInstanceFlavorPtrOutput() MongodbflexInstanceFlavorPtrOutput { - return o.ToMongodbflexInstanceFlavorPtrOutputWithContext(context.Background()) +func (o CdnDistributionConfigOptimizerOutput) ToCdnDistributionConfigOptimizerPtrOutput() CdnDistributionConfigOptimizerPtrOutput { + return o.ToCdnDistributionConfigOptimizerPtrOutputWithContext(context.Background()) } -func (o MongodbflexInstanceFlavorOutput) ToMongodbflexInstanceFlavorPtrOutputWithContext(ctx context.Context) MongodbflexInstanceFlavorPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v MongodbflexInstanceFlavor) *MongodbflexInstanceFlavor { +func (o CdnDistributionConfigOptimizerOutput) ToCdnDistributionConfigOptimizerPtrOutputWithContext(ctx context.Context) CdnDistributionConfigOptimizerPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CdnDistributionConfigOptimizer) *CdnDistributionConfigOptimizer { return &v - }).(MongodbflexInstanceFlavorPtrOutput) -} - -func (o MongodbflexInstanceFlavorOutput) Cpu() pulumi.IntOutput { - return o.ApplyT(func(v MongodbflexInstanceFlavor) int { return v.Cpu }).(pulumi.IntOutput) -} - -func (o MongodbflexInstanceFlavorOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v MongodbflexInstanceFlavor) *string { return v.Description }).(pulumi.StringPtrOutput) -} - -func (o MongodbflexInstanceFlavorOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v MongodbflexInstanceFlavor) *string { return v.Id }).(pulumi.StringPtrOutput) + }).(CdnDistributionConfigOptimizerPtrOutput) } -func (o MongodbflexInstanceFlavorOutput) Ram() pulumi.IntOutput { - return o.ApplyT(func(v MongodbflexInstanceFlavor) int { return v.Ram }).(pulumi.IntOutput) +func (o CdnDistributionConfigOptimizerOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v CdnDistributionConfigOptimizer) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -type MongodbflexInstanceFlavorPtrOutput struct{ *pulumi.OutputState } +type CdnDistributionConfigOptimizerPtrOutput struct{ *pulumi.OutputState } -func (MongodbflexInstanceFlavorPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**MongodbflexInstanceFlavor)(nil)).Elem() +func (CdnDistributionConfigOptimizerPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CdnDistributionConfigOptimizer)(nil)).Elem() } -func (o MongodbflexInstanceFlavorPtrOutput) ToMongodbflexInstanceFlavorPtrOutput() MongodbflexInstanceFlavorPtrOutput { +func (o CdnDistributionConfigOptimizerPtrOutput) ToCdnDistributionConfigOptimizerPtrOutput() CdnDistributionConfigOptimizerPtrOutput { return o } -func (o MongodbflexInstanceFlavorPtrOutput) ToMongodbflexInstanceFlavorPtrOutputWithContext(ctx context.Context) MongodbflexInstanceFlavorPtrOutput { +func (o CdnDistributionConfigOptimizerPtrOutput) ToCdnDistributionConfigOptimizerPtrOutputWithContext(ctx context.Context) CdnDistributionConfigOptimizerPtrOutput { return o } -func (o MongodbflexInstanceFlavorPtrOutput) Elem() MongodbflexInstanceFlavorOutput { - return o.ApplyT(func(v *MongodbflexInstanceFlavor) MongodbflexInstanceFlavor { +func (o CdnDistributionConfigOptimizerPtrOutput) Elem() CdnDistributionConfigOptimizerOutput { + return o.ApplyT(func(v *CdnDistributionConfigOptimizer) CdnDistributionConfigOptimizer { if v != nil { return *v } - var ret MongodbflexInstanceFlavor + var ret CdnDistributionConfigOptimizer return ret - }).(MongodbflexInstanceFlavorOutput) + }).(CdnDistributionConfigOptimizerOutput) } -func (o MongodbflexInstanceFlavorPtrOutput) Cpu() pulumi.IntPtrOutput { - return o.ApplyT(func(v *MongodbflexInstanceFlavor) *int { +func (o CdnDistributionConfigOptimizerPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *CdnDistributionConfigOptimizer) *bool { if v == nil { return nil } - return &v.Cpu - }).(pulumi.IntPtrOutput) + return v.Enabled + }).(pulumi.BoolPtrOutput) } -func (o MongodbflexInstanceFlavorPtrOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v *MongodbflexInstanceFlavor) *string { - if v == nil { - return nil - } - return v.Description - }).(pulumi.StringPtrOutput) +type CdnDistributionDomain struct { + // List of domain errors + Errors []string `pulumi:"errors"` + // The name of the domain + Name *string `pulumi:"name"` + // The status of the domain + Status *string `pulumi:"status"` + // 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 + Type *string `pulumi:"type"` } -func (o MongodbflexInstanceFlavorPtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *MongodbflexInstanceFlavor) *string { - if v == nil { - return nil - } - return v.Id - }).(pulumi.StringPtrOutput) -} +// CdnDistributionDomainInput is an input type that accepts CdnDistributionDomainArgs and CdnDistributionDomainOutput values. +// You can construct a concrete instance of `CdnDistributionDomainInput` via: +// +// CdnDistributionDomainArgs{...} +type CdnDistributionDomainInput interface { + pulumi.Input -func (o MongodbflexInstanceFlavorPtrOutput) Ram() pulumi.IntPtrOutput { - return o.ApplyT(func(v *MongodbflexInstanceFlavor) *int { - if v == nil { - return nil - } - return &v.Ram - }).(pulumi.IntPtrOutput) + ToCdnDistributionDomainOutput() CdnDistributionDomainOutput + ToCdnDistributionDomainOutputWithContext(context.Context) CdnDistributionDomainOutput } -type MongodbflexInstanceOptions struct { - // The number of days that daily backups will be retained. - DailySnapshotRetentionDays *int `pulumi:"dailySnapshotRetentionDays"` - // The number of months that monthly backups will be retained. - MonthlySnapshotRetentionMonths *int `pulumi:"monthlySnapshotRetentionMonths"` - // The number of hours back in time the point-in-time recovery feature will be able to recover. - PointInTimeWindowHours int `pulumi:"pointInTimeWindowHours"` - // The number of days that continuous backups (controlled via the `backupSchedule`) will be retained. - SnapshotRetentionDays *int `pulumi:"snapshotRetentionDays"` - // Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. - Type string `pulumi:"type"` - // The number of weeks that weekly backups will be retained. - WeeklySnapshotRetentionWeeks *int `pulumi:"weeklySnapshotRetentionWeeks"` +type CdnDistributionDomainArgs struct { + // List of domain errors + Errors pulumi.StringArrayInput `pulumi:"errors"` + // The name of the domain + Name pulumi.StringPtrInput `pulumi:"name"` + // The status of the domain + Status pulumi.StringPtrInput `pulumi:"status"` + // 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 + Type pulumi.StringPtrInput `pulumi:"type"` } -// MongodbflexInstanceOptionsInput is an input type that accepts MongodbflexInstanceOptionsArgs and MongodbflexInstanceOptionsOutput values. -// You can construct a concrete instance of `MongodbflexInstanceOptionsInput` via: -// -// MongodbflexInstanceOptionsArgs{...} -type MongodbflexInstanceOptionsInput interface { - pulumi.Input - - ToMongodbflexInstanceOptionsOutput() MongodbflexInstanceOptionsOutput - ToMongodbflexInstanceOptionsOutputWithContext(context.Context) MongodbflexInstanceOptionsOutput +func (CdnDistributionDomainArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionDomain)(nil)).Elem() } -type MongodbflexInstanceOptionsArgs struct { - // The number of days that daily backups will be retained. - DailySnapshotRetentionDays pulumi.IntPtrInput `pulumi:"dailySnapshotRetentionDays"` - // The number of months that monthly backups will be retained. - MonthlySnapshotRetentionMonths pulumi.IntPtrInput `pulumi:"monthlySnapshotRetentionMonths"` - // The number of hours back in time the point-in-time recovery feature will be able to recover. - PointInTimeWindowHours pulumi.IntInput `pulumi:"pointInTimeWindowHours"` - // The number of days that continuous backups (controlled via the `backupSchedule`) will be retained. - SnapshotRetentionDays pulumi.IntPtrInput `pulumi:"snapshotRetentionDays"` - // Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. - Type pulumi.StringInput `pulumi:"type"` - // The number of weeks that weekly backups will be retained. - WeeklySnapshotRetentionWeeks pulumi.IntPtrInput `pulumi:"weeklySnapshotRetentionWeeks"` +func (i CdnDistributionDomainArgs) ToCdnDistributionDomainOutput() CdnDistributionDomainOutput { + return i.ToCdnDistributionDomainOutputWithContext(context.Background()) } -func (MongodbflexInstanceOptionsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*MongodbflexInstanceOptions)(nil)).Elem() +func (i CdnDistributionDomainArgs) ToCdnDistributionDomainOutputWithContext(ctx context.Context) CdnDistributionDomainOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionDomainOutput) } -func (i MongodbflexInstanceOptionsArgs) ToMongodbflexInstanceOptionsOutput() MongodbflexInstanceOptionsOutput { - return i.ToMongodbflexInstanceOptionsOutputWithContext(context.Background()) +// CdnDistributionDomainArrayInput is an input type that accepts CdnDistributionDomainArray and CdnDistributionDomainArrayOutput values. +// You can construct a concrete instance of `CdnDistributionDomainArrayInput` via: +// +// CdnDistributionDomainArray{ CdnDistributionDomainArgs{...} } +type CdnDistributionDomainArrayInput interface { + pulumi.Input + + ToCdnDistributionDomainArrayOutput() CdnDistributionDomainArrayOutput + ToCdnDistributionDomainArrayOutputWithContext(context.Context) CdnDistributionDomainArrayOutput } -func (i MongodbflexInstanceOptionsArgs) ToMongodbflexInstanceOptionsOutputWithContext(ctx context.Context) MongodbflexInstanceOptionsOutput { - return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceOptionsOutput) +type CdnDistributionDomainArray []CdnDistributionDomainInput + +func (CdnDistributionDomainArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]CdnDistributionDomain)(nil)).Elem() } -func (i MongodbflexInstanceOptionsArgs) ToMongodbflexInstanceOptionsPtrOutput() MongodbflexInstanceOptionsPtrOutput { - return i.ToMongodbflexInstanceOptionsPtrOutputWithContext(context.Background()) +func (i CdnDistributionDomainArray) ToCdnDistributionDomainArrayOutput() CdnDistributionDomainArrayOutput { + return i.ToCdnDistributionDomainArrayOutputWithContext(context.Background()) } -func (i MongodbflexInstanceOptionsArgs) ToMongodbflexInstanceOptionsPtrOutputWithContext(ctx context.Context) MongodbflexInstanceOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceOptionsOutput).ToMongodbflexInstanceOptionsPtrOutputWithContext(ctx) +func (i CdnDistributionDomainArray) ToCdnDistributionDomainArrayOutputWithContext(ctx context.Context) CdnDistributionDomainArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionDomainArrayOutput) } -// MongodbflexInstanceOptionsPtrInput is an input type that accepts MongodbflexInstanceOptionsArgs, MongodbflexInstanceOptionsPtr and MongodbflexInstanceOptionsPtrOutput values. -// You can construct a concrete instance of `MongodbflexInstanceOptionsPtrInput` via: -// -// MongodbflexInstanceOptionsArgs{...} -// -// or: -// -// nil -type MongodbflexInstanceOptionsPtrInput interface { - pulumi.Input +type CdnDistributionDomainOutput struct{ *pulumi.OutputState } - ToMongodbflexInstanceOptionsPtrOutput() MongodbflexInstanceOptionsPtrOutput - ToMongodbflexInstanceOptionsPtrOutputWithContext(context.Context) MongodbflexInstanceOptionsPtrOutput +func (CdnDistributionDomainOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionDomain)(nil)).Elem() } -type mongodbflexInstanceOptionsPtrType MongodbflexInstanceOptionsArgs +func (o CdnDistributionDomainOutput) ToCdnDistributionDomainOutput() CdnDistributionDomainOutput { + return o +} -func MongodbflexInstanceOptionsPtr(v *MongodbflexInstanceOptionsArgs) MongodbflexInstanceOptionsPtrInput { - return (*mongodbflexInstanceOptionsPtrType)(v) +func (o CdnDistributionDomainOutput) ToCdnDistributionDomainOutputWithContext(ctx context.Context) CdnDistributionDomainOutput { + return o } -func (*mongodbflexInstanceOptionsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**MongodbflexInstanceOptions)(nil)).Elem() +// List of domain errors +func (o CdnDistributionDomainOutput) Errors() pulumi.StringArrayOutput { + return o.ApplyT(func(v CdnDistributionDomain) []string { return v.Errors }).(pulumi.StringArrayOutput) } -func (i *mongodbflexInstanceOptionsPtrType) ToMongodbflexInstanceOptionsPtrOutput() MongodbflexInstanceOptionsPtrOutput { - return i.ToMongodbflexInstanceOptionsPtrOutputWithContext(context.Background()) +// The name of the domain +func (o CdnDistributionDomainOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v CdnDistributionDomain) *string { return v.Name }).(pulumi.StringPtrOutput) } -func (i *mongodbflexInstanceOptionsPtrType) ToMongodbflexInstanceOptionsPtrOutputWithContext(ctx context.Context) MongodbflexInstanceOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceOptionsPtrOutput) +// The status of the domain +func (o CdnDistributionDomainOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v CdnDistributionDomain) *string { return v.Status }).(pulumi.StringPtrOutput) } -type MongodbflexInstanceOptionsOutput struct{ *pulumi.OutputState } +// 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 +func (o CdnDistributionDomainOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v CdnDistributionDomain) *string { return v.Type }).(pulumi.StringPtrOutput) +} -func (MongodbflexInstanceOptionsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*MongodbflexInstanceOptions)(nil)).Elem() +type CdnDistributionDomainArrayOutput struct{ *pulumi.OutputState } + +func (CdnDistributionDomainArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CdnDistributionDomain)(nil)).Elem() } -func (o MongodbflexInstanceOptionsOutput) ToMongodbflexInstanceOptionsOutput() MongodbflexInstanceOptionsOutput { +func (o CdnDistributionDomainArrayOutput) ToCdnDistributionDomainArrayOutput() CdnDistributionDomainArrayOutput { return o } -func (o MongodbflexInstanceOptionsOutput) ToMongodbflexInstanceOptionsOutputWithContext(ctx context.Context) MongodbflexInstanceOptionsOutput { +func (o CdnDistributionDomainArrayOutput) ToCdnDistributionDomainArrayOutputWithContext(ctx context.Context) CdnDistributionDomainArrayOutput { return o } -func (o MongodbflexInstanceOptionsOutput) ToMongodbflexInstanceOptionsPtrOutput() MongodbflexInstanceOptionsPtrOutput { - return o.ToMongodbflexInstanceOptionsPtrOutputWithContext(context.Background()) +func (o CdnDistributionDomainArrayOutput) Index(i pulumi.IntInput) CdnDistributionDomainOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CdnDistributionDomain { + return vs[0].([]CdnDistributionDomain)[vs[1].(int)] + }).(CdnDistributionDomainOutput) } -func (o MongodbflexInstanceOptionsOutput) ToMongodbflexInstanceOptionsPtrOutputWithContext(ctx context.Context) MongodbflexInstanceOptionsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v MongodbflexInstanceOptions) *MongodbflexInstanceOptions { - return &v - }).(MongodbflexInstanceOptionsPtrOutput) +type ImageChecksum struct { + // Algorithm for the checksum of the image data. + Algorithm *string `pulumi:"algorithm"` + // Hexdigest of the checksum of the image data. + Digest *string `pulumi:"digest"` } -// The number of days that daily backups will be retained. -func (o MongodbflexInstanceOptionsOutput) DailySnapshotRetentionDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v MongodbflexInstanceOptions) *int { return v.DailySnapshotRetentionDays }).(pulumi.IntPtrOutput) -} +// ImageChecksumInput is an input type that accepts ImageChecksumArgs and ImageChecksumOutput values. +// You can construct a concrete instance of `ImageChecksumInput` via: +// +// ImageChecksumArgs{...} +type ImageChecksumInput interface { + pulumi.Input -// The number of months that monthly backups will be retained. -func (o MongodbflexInstanceOptionsOutput) MonthlySnapshotRetentionMonths() pulumi.IntPtrOutput { - return o.ApplyT(func(v MongodbflexInstanceOptions) *int { return v.MonthlySnapshotRetentionMonths }).(pulumi.IntPtrOutput) + ToImageChecksumOutput() ImageChecksumOutput + ToImageChecksumOutputWithContext(context.Context) ImageChecksumOutput } -// The number of hours back in time the point-in-time recovery feature will be able to recover. -func (o MongodbflexInstanceOptionsOutput) PointInTimeWindowHours() pulumi.IntOutput { - return o.ApplyT(func(v MongodbflexInstanceOptions) int { return v.PointInTimeWindowHours }).(pulumi.IntOutput) +type ImageChecksumArgs struct { + // Algorithm for the checksum of the image data. + Algorithm pulumi.StringPtrInput `pulumi:"algorithm"` + // Hexdigest of the checksum of the image data. + Digest pulumi.StringPtrInput `pulumi:"digest"` } -// The number of days that continuous backups (controlled via the `backupSchedule`) will be retained. -func (o MongodbflexInstanceOptionsOutput) SnapshotRetentionDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v MongodbflexInstanceOptions) *int { return v.SnapshotRetentionDays }).(pulumi.IntPtrOutput) +func (ImageChecksumArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ImageChecksum)(nil)).Elem() } -// Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. -func (o MongodbflexInstanceOptionsOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v MongodbflexInstanceOptions) string { return v.Type }).(pulumi.StringOutput) +func (i ImageChecksumArgs) ToImageChecksumOutput() ImageChecksumOutput { + return i.ToImageChecksumOutputWithContext(context.Background()) } -// The number of weeks that weekly backups will be retained. -func (o MongodbflexInstanceOptionsOutput) WeeklySnapshotRetentionWeeks() pulumi.IntPtrOutput { - return o.ApplyT(func(v MongodbflexInstanceOptions) *int { return v.WeeklySnapshotRetentionWeeks }).(pulumi.IntPtrOutput) +func (i ImageChecksumArgs) ToImageChecksumOutputWithContext(ctx context.Context) ImageChecksumOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageChecksumOutput) } -type MongodbflexInstanceOptionsPtrOutput struct{ *pulumi.OutputState } - -func (MongodbflexInstanceOptionsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**MongodbflexInstanceOptions)(nil)).Elem() +func (i ImageChecksumArgs) ToImageChecksumPtrOutput() ImageChecksumPtrOutput { + return i.ToImageChecksumPtrOutputWithContext(context.Background()) } -func (o MongodbflexInstanceOptionsPtrOutput) ToMongodbflexInstanceOptionsPtrOutput() MongodbflexInstanceOptionsPtrOutput { - return o +func (i ImageChecksumArgs) ToImageChecksumPtrOutputWithContext(ctx context.Context) ImageChecksumPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageChecksumOutput).ToImageChecksumPtrOutputWithContext(ctx) } -func (o MongodbflexInstanceOptionsPtrOutput) ToMongodbflexInstanceOptionsPtrOutputWithContext(ctx context.Context) MongodbflexInstanceOptionsPtrOutput { - return o +// ImageChecksumPtrInput is an input type that accepts ImageChecksumArgs, ImageChecksumPtr and ImageChecksumPtrOutput values. +// You can construct a concrete instance of `ImageChecksumPtrInput` via: +// +// ImageChecksumArgs{...} +// +// or: +// +// nil +type ImageChecksumPtrInput interface { + pulumi.Input + + ToImageChecksumPtrOutput() ImageChecksumPtrOutput + ToImageChecksumPtrOutputWithContext(context.Context) ImageChecksumPtrOutput } -func (o MongodbflexInstanceOptionsPtrOutput) Elem() MongodbflexInstanceOptionsOutput { - return o.ApplyT(func(v *MongodbflexInstanceOptions) MongodbflexInstanceOptions { - if v != nil { - return *v - } - var ret MongodbflexInstanceOptions - return ret - }).(MongodbflexInstanceOptionsOutput) +type imageChecksumPtrType ImageChecksumArgs + +func ImageChecksumPtr(v *ImageChecksumArgs) ImageChecksumPtrInput { + return (*imageChecksumPtrType)(v) } -// The number of days that daily backups will be retained. -func (o MongodbflexInstanceOptionsPtrOutput) DailySnapshotRetentionDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v *MongodbflexInstanceOptions) *int { - if v == nil { - return nil - } - return v.DailySnapshotRetentionDays - }).(pulumi.IntPtrOutput) +func (*imageChecksumPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ImageChecksum)(nil)).Elem() } -// The number of months that monthly backups will be retained. -func (o MongodbflexInstanceOptionsPtrOutput) MonthlySnapshotRetentionMonths() pulumi.IntPtrOutput { - return o.ApplyT(func(v *MongodbflexInstanceOptions) *int { - if v == nil { - return nil - } - return v.MonthlySnapshotRetentionMonths - }).(pulumi.IntPtrOutput) +func (i *imageChecksumPtrType) ToImageChecksumPtrOutput() ImageChecksumPtrOutput { + return i.ToImageChecksumPtrOutputWithContext(context.Background()) } -// The number of hours back in time the point-in-time recovery feature will be able to recover. -func (o MongodbflexInstanceOptionsPtrOutput) PointInTimeWindowHours() pulumi.IntPtrOutput { - return o.ApplyT(func(v *MongodbflexInstanceOptions) *int { - if v == nil { - return nil - } - return &v.PointInTimeWindowHours - }).(pulumi.IntPtrOutput) +func (i *imageChecksumPtrType) ToImageChecksumPtrOutputWithContext(ctx context.Context) ImageChecksumPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageChecksumPtrOutput) } -// The number of days that continuous backups (controlled via the `backupSchedule`) will be retained. -func (o MongodbflexInstanceOptionsPtrOutput) SnapshotRetentionDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v *MongodbflexInstanceOptions) *int { - if v == nil { - return nil - } - return v.SnapshotRetentionDays - }).(pulumi.IntPtrOutput) +type ImageChecksumOutput struct{ *pulumi.OutputState } + +func (ImageChecksumOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ImageChecksum)(nil)).Elem() } -// Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. -func (o MongodbflexInstanceOptionsPtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *MongodbflexInstanceOptions) *string { +func (o ImageChecksumOutput) ToImageChecksumOutput() ImageChecksumOutput { + return o +} + +func (o ImageChecksumOutput) ToImageChecksumOutputWithContext(ctx context.Context) ImageChecksumOutput { + return o +} + +func (o ImageChecksumOutput) ToImageChecksumPtrOutput() ImageChecksumPtrOutput { + return o.ToImageChecksumPtrOutputWithContext(context.Background()) +} + +func (o ImageChecksumOutput) ToImageChecksumPtrOutputWithContext(ctx context.Context) ImageChecksumPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ImageChecksum) *ImageChecksum { + return &v + }).(ImageChecksumPtrOutput) +} + +// Algorithm for the checksum of the image data. +func (o ImageChecksumOutput) Algorithm() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageChecksum) *string { return v.Algorithm }).(pulumi.StringPtrOutput) +} + +// Hexdigest of the checksum of the image data. +func (o ImageChecksumOutput) Digest() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageChecksum) *string { return v.Digest }).(pulumi.StringPtrOutput) +} + +type ImageChecksumPtrOutput struct{ *pulumi.OutputState } + +func (ImageChecksumPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ImageChecksum)(nil)).Elem() +} + +func (o ImageChecksumPtrOutput) ToImageChecksumPtrOutput() ImageChecksumPtrOutput { + return o +} + +func (o ImageChecksumPtrOutput) ToImageChecksumPtrOutputWithContext(ctx context.Context) ImageChecksumPtrOutput { + return o +} + +func (o ImageChecksumPtrOutput) Elem() ImageChecksumOutput { + return o.ApplyT(func(v *ImageChecksum) ImageChecksum { + if v != nil { + return *v + } + var ret ImageChecksum + return ret + }).(ImageChecksumOutput) +} + +// Algorithm for the checksum of the image data. +func (o ImageChecksumPtrOutput) Algorithm() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageChecksum) *string { if v == nil { return nil } - return &v.Type + return v.Algorithm }).(pulumi.StringPtrOutput) } -// The number of weeks that weekly backups will be retained. -func (o MongodbflexInstanceOptionsPtrOutput) WeeklySnapshotRetentionWeeks() pulumi.IntPtrOutput { - return o.ApplyT(func(v *MongodbflexInstanceOptions) *int { +// Hexdigest of the checksum of the image data. +func (o ImageChecksumPtrOutput) Digest() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageChecksum) *string { if v == nil { return nil } - return v.WeeklySnapshotRetentionWeeks - }).(pulumi.IntPtrOutput) + return v.Digest + }).(pulumi.StringPtrOutput) } -type MongodbflexInstanceStorage struct { - Class string `pulumi:"class"` - Size int `pulumi:"size"` +type ImageConfig struct { + // Enables the BIOS bootmenu. + BootMenu *bool `pulumi:"bootMenu"` + // Sets CDROM bus controller type. + CdromBus *string `pulumi:"cdromBus"` + // Sets Disk bus controller type. + DiskBus *string `pulumi:"diskBus"` + // Sets virtual network interface model. + NicModel *string `pulumi:"nicModel"` + // Enables operating system specific optimizations. + OperatingSystem *string `pulumi:"operatingSystem"` + // Operating system distribution. + OperatingSystemDistro *string `pulumi:"operatingSystemDistro"` + // Version of the operating system. + OperatingSystemVersion *string `pulumi:"operatingSystemVersion"` + // Sets the device bus when the image is used as a rescue image. + RescueBus *string `pulumi:"rescueBus"` + // Sets the device when the image is used as a rescue image. + RescueDevice *string `pulumi:"rescueDevice"` + // Enables Secure Boot. + SecureBoot *bool `pulumi:"secureBoot"` + // Enables UEFI boot. + Uefi *bool `pulumi:"uefi"` + // Sets Graphic device model. + VideoModel *string `pulumi:"videoModel"` + // Enables the use of VirtIO SCSI to provide block device access. By default instances use VirtIO Block. + VirtioScsi *bool `pulumi:"virtioScsi"` } -// MongodbflexInstanceStorageInput is an input type that accepts MongodbflexInstanceStorageArgs and MongodbflexInstanceStorageOutput values. -// You can construct a concrete instance of `MongodbflexInstanceStorageInput` via: +// ImageConfigInput is an input type that accepts ImageConfigArgs and ImageConfigOutput values. +// You can construct a concrete instance of `ImageConfigInput` via: // -// MongodbflexInstanceStorageArgs{...} -type MongodbflexInstanceStorageInput interface { +// ImageConfigArgs{...} +type ImageConfigInput interface { pulumi.Input - ToMongodbflexInstanceStorageOutput() MongodbflexInstanceStorageOutput - ToMongodbflexInstanceStorageOutputWithContext(context.Context) MongodbflexInstanceStorageOutput + ToImageConfigOutput() ImageConfigOutput + ToImageConfigOutputWithContext(context.Context) ImageConfigOutput } -type MongodbflexInstanceStorageArgs struct { - Class pulumi.StringInput `pulumi:"class"` - Size pulumi.IntInput `pulumi:"size"` +type ImageConfigArgs struct { + // Enables the BIOS bootmenu. + BootMenu pulumi.BoolPtrInput `pulumi:"bootMenu"` + // Sets CDROM bus controller type. + CdromBus pulumi.StringPtrInput `pulumi:"cdromBus"` + // Sets Disk bus controller type. + DiskBus pulumi.StringPtrInput `pulumi:"diskBus"` + // Sets virtual network interface model. + NicModel pulumi.StringPtrInput `pulumi:"nicModel"` + // Enables operating system specific optimizations. + OperatingSystem pulumi.StringPtrInput `pulumi:"operatingSystem"` + // Operating system distribution. + OperatingSystemDistro pulumi.StringPtrInput `pulumi:"operatingSystemDistro"` + // Version of the operating system. + OperatingSystemVersion pulumi.StringPtrInput `pulumi:"operatingSystemVersion"` + // Sets the device bus when the image is used as a rescue image. + RescueBus pulumi.StringPtrInput `pulumi:"rescueBus"` + // Sets the device when the image is used as a rescue image. + RescueDevice pulumi.StringPtrInput `pulumi:"rescueDevice"` + // Enables Secure Boot. + SecureBoot pulumi.BoolPtrInput `pulumi:"secureBoot"` + // Enables UEFI boot. + Uefi pulumi.BoolPtrInput `pulumi:"uefi"` + // Sets Graphic device model. + VideoModel pulumi.StringPtrInput `pulumi:"videoModel"` + // Enables the use of VirtIO SCSI to provide block device access. By default instances use VirtIO Block. + VirtioScsi pulumi.BoolPtrInput `pulumi:"virtioScsi"` } -func (MongodbflexInstanceStorageArgs) ElementType() reflect.Type { - return reflect.TypeOf((*MongodbflexInstanceStorage)(nil)).Elem() +func (ImageConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ImageConfig)(nil)).Elem() } -func (i MongodbflexInstanceStorageArgs) ToMongodbflexInstanceStorageOutput() MongodbflexInstanceStorageOutput { - return i.ToMongodbflexInstanceStorageOutputWithContext(context.Background()) +func (i ImageConfigArgs) ToImageConfigOutput() ImageConfigOutput { + return i.ToImageConfigOutputWithContext(context.Background()) } -func (i MongodbflexInstanceStorageArgs) ToMongodbflexInstanceStorageOutputWithContext(ctx context.Context) MongodbflexInstanceStorageOutput { - return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceStorageOutput) +func (i ImageConfigArgs) ToImageConfigOutputWithContext(ctx context.Context) ImageConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageConfigOutput) } -func (i MongodbflexInstanceStorageArgs) ToMongodbflexInstanceStoragePtrOutput() MongodbflexInstanceStoragePtrOutput { - return i.ToMongodbflexInstanceStoragePtrOutputWithContext(context.Background()) +func (i ImageConfigArgs) ToImageConfigPtrOutput() ImageConfigPtrOutput { + return i.ToImageConfigPtrOutputWithContext(context.Background()) } -func (i MongodbflexInstanceStorageArgs) ToMongodbflexInstanceStoragePtrOutputWithContext(ctx context.Context) MongodbflexInstanceStoragePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceStorageOutput).ToMongodbflexInstanceStoragePtrOutputWithContext(ctx) +func (i ImageConfigArgs) ToImageConfigPtrOutputWithContext(ctx context.Context) ImageConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageConfigOutput).ToImageConfigPtrOutputWithContext(ctx) } -// MongodbflexInstanceStoragePtrInput is an input type that accepts MongodbflexInstanceStorageArgs, MongodbflexInstanceStoragePtr and MongodbflexInstanceStoragePtrOutput values. -// You can construct a concrete instance of `MongodbflexInstanceStoragePtrInput` via: +// ImageConfigPtrInput is an input type that accepts ImageConfigArgs, ImageConfigPtr and ImageConfigPtrOutput values. +// You can construct a concrete instance of `ImageConfigPtrInput` via: // -// MongodbflexInstanceStorageArgs{...} +// ImageConfigArgs{...} // // or: // // nil -type MongodbflexInstanceStoragePtrInput interface { +type ImageConfigPtrInput interface { pulumi.Input - ToMongodbflexInstanceStoragePtrOutput() MongodbflexInstanceStoragePtrOutput - ToMongodbflexInstanceStoragePtrOutputWithContext(context.Context) MongodbflexInstanceStoragePtrOutput + ToImageConfigPtrOutput() ImageConfigPtrOutput + ToImageConfigPtrOutputWithContext(context.Context) ImageConfigPtrOutput } -type mongodbflexInstanceStoragePtrType MongodbflexInstanceStorageArgs +type imageConfigPtrType ImageConfigArgs -func MongodbflexInstanceStoragePtr(v *MongodbflexInstanceStorageArgs) MongodbflexInstanceStoragePtrInput { - return (*mongodbflexInstanceStoragePtrType)(v) +func ImageConfigPtr(v *ImageConfigArgs) ImageConfigPtrInput { + return (*imageConfigPtrType)(v) } -func (*mongodbflexInstanceStoragePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**MongodbflexInstanceStorage)(nil)).Elem() +func (*imageConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ImageConfig)(nil)).Elem() } -func (i *mongodbflexInstanceStoragePtrType) ToMongodbflexInstanceStoragePtrOutput() MongodbflexInstanceStoragePtrOutput { - return i.ToMongodbflexInstanceStoragePtrOutputWithContext(context.Background()) +func (i *imageConfigPtrType) ToImageConfigPtrOutput() ImageConfigPtrOutput { + return i.ToImageConfigPtrOutputWithContext(context.Background()) } -func (i *mongodbflexInstanceStoragePtrType) ToMongodbflexInstanceStoragePtrOutputWithContext(ctx context.Context) MongodbflexInstanceStoragePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceStoragePtrOutput) +func (i *imageConfigPtrType) ToImageConfigPtrOutputWithContext(ctx context.Context) ImageConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageConfigPtrOutput) } -type MongodbflexInstanceStorageOutput struct{ *pulumi.OutputState } +type ImageConfigOutput struct{ *pulumi.OutputState } -func (MongodbflexInstanceStorageOutput) ElementType() reflect.Type { - return reflect.TypeOf((*MongodbflexInstanceStorage)(nil)).Elem() +func (ImageConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ImageConfig)(nil)).Elem() } -func (o MongodbflexInstanceStorageOutput) ToMongodbflexInstanceStorageOutput() MongodbflexInstanceStorageOutput { +func (o ImageConfigOutput) ToImageConfigOutput() ImageConfigOutput { return o } -func (o MongodbflexInstanceStorageOutput) ToMongodbflexInstanceStorageOutputWithContext(ctx context.Context) MongodbflexInstanceStorageOutput { +func (o ImageConfigOutput) ToImageConfigOutputWithContext(ctx context.Context) ImageConfigOutput { return o } -func (o MongodbflexInstanceStorageOutput) ToMongodbflexInstanceStoragePtrOutput() MongodbflexInstanceStoragePtrOutput { - return o.ToMongodbflexInstanceStoragePtrOutputWithContext(context.Background()) +func (o ImageConfigOutput) ToImageConfigPtrOutput() ImageConfigPtrOutput { + return o.ToImageConfigPtrOutputWithContext(context.Background()) } -func (o MongodbflexInstanceStorageOutput) ToMongodbflexInstanceStoragePtrOutputWithContext(ctx context.Context) MongodbflexInstanceStoragePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v MongodbflexInstanceStorage) *MongodbflexInstanceStorage { +func (o ImageConfigOutput) ToImageConfigPtrOutputWithContext(ctx context.Context) ImageConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ImageConfig) *ImageConfig { return &v - }).(MongodbflexInstanceStoragePtrOutput) + }).(ImageConfigPtrOutput) } -func (o MongodbflexInstanceStorageOutput) Class() pulumi.StringOutput { - return o.ApplyT(func(v MongodbflexInstanceStorage) string { return v.Class }).(pulumi.StringOutput) +// Enables the BIOS bootmenu. +func (o ImageConfigOutput) BootMenu() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ImageConfig) *bool { return v.BootMenu }).(pulumi.BoolPtrOutput) } -func (o MongodbflexInstanceStorageOutput) Size() pulumi.IntOutput { - return o.ApplyT(func(v MongodbflexInstanceStorage) int { return v.Size }).(pulumi.IntOutput) +// Sets CDROM bus controller type. +func (o ImageConfigOutput) CdromBus() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageConfig) *string { return v.CdromBus }).(pulumi.StringPtrOutput) } -type MongodbflexInstanceStoragePtrOutput struct{ *pulumi.OutputState } +// Sets Disk bus controller type. +func (o ImageConfigOutput) DiskBus() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageConfig) *string { return v.DiskBus }).(pulumi.StringPtrOutput) +} -func (MongodbflexInstanceStoragePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**MongodbflexInstanceStorage)(nil)).Elem() +// Sets virtual network interface model. +func (o ImageConfigOutput) NicModel() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageConfig) *string { return v.NicModel }).(pulumi.StringPtrOutput) } -func (o MongodbflexInstanceStoragePtrOutput) ToMongodbflexInstanceStoragePtrOutput() MongodbflexInstanceStoragePtrOutput { - return o +// Enables operating system specific optimizations. +func (o ImageConfigOutput) OperatingSystem() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageConfig) *string { return v.OperatingSystem }).(pulumi.StringPtrOutput) } -func (o MongodbflexInstanceStoragePtrOutput) ToMongodbflexInstanceStoragePtrOutputWithContext(ctx context.Context) MongodbflexInstanceStoragePtrOutput { - return o +// Operating system distribution. +func (o ImageConfigOutput) OperatingSystemDistro() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageConfig) *string { return v.OperatingSystemDistro }).(pulumi.StringPtrOutput) } -func (o MongodbflexInstanceStoragePtrOutput) Elem() MongodbflexInstanceStorageOutput { - return o.ApplyT(func(v *MongodbflexInstanceStorage) MongodbflexInstanceStorage { - if v != nil { - return *v - } - var ret MongodbflexInstanceStorage - return ret - }).(MongodbflexInstanceStorageOutput) +// Version of the operating system. +func (o ImageConfigOutput) OperatingSystemVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageConfig) *string { return v.OperatingSystemVersion }).(pulumi.StringPtrOutput) } -func (o MongodbflexInstanceStoragePtrOutput) Class() pulumi.StringPtrOutput { - return o.ApplyT(func(v *MongodbflexInstanceStorage) *string { - if v == nil { - return nil - } - return &v.Class - }).(pulumi.StringPtrOutput) +// Sets the device bus when the image is used as a rescue image. +func (o ImageConfigOutput) RescueBus() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageConfig) *string { return v.RescueBus }).(pulumi.StringPtrOutput) } -func (o MongodbflexInstanceStoragePtrOutput) Size() pulumi.IntPtrOutput { - return o.ApplyT(func(v *MongodbflexInstanceStorage) *int { - if v == nil { - return nil - } - return &v.Size - }).(pulumi.IntPtrOutput) +// Sets the device when the image is used as a rescue image. +func (o ImageConfigOutput) RescueDevice() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageConfig) *string { return v.RescueDevice }).(pulumi.StringPtrOutput) } -type NetworkAreaNetworkRange struct { - // Deprecated: Deprecated because of the IaaS API v1 -> v2 migration. Will be removed in May 2026. Use the new `NetworkAreaRegion` resource instead. - NetworkRangeId *string `pulumi:"networkRangeId"` - // Classless Inter-Domain Routing (CIDR). - // - // Deprecated: Deprecated because of the IaaS API v1 -> v2 migration. Will be removed in May 2026. Use the new `NetworkAreaRegion` resource instead. - Prefix string `pulumi:"prefix"` +// Enables Secure Boot. +func (o ImageConfigOutput) SecureBoot() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ImageConfig) *bool { return v.SecureBoot }).(pulumi.BoolPtrOutput) } -// NetworkAreaNetworkRangeInput is an input type that accepts NetworkAreaNetworkRangeArgs and NetworkAreaNetworkRangeOutput values. -// You can construct a concrete instance of `NetworkAreaNetworkRangeInput` via: -// -// NetworkAreaNetworkRangeArgs{...} -type NetworkAreaNetworkRangeInput interface { - pulumi.Input - - ToNetworkAreaNetworkRangeOutput() NetworkAreaNetworkRangeOutput - ToNetworkAreaNetworkRangeOutputWithContext(context.Context) NetworkAreaNetworkRangeOutput +// Enables UEFI boot. +func (o ImageConfigOutput) Uefi() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ImageConfig) *bool { return v.Uefi }).(pulumi.BoolPtrOutput) } -type NetworkAreaNetworkRangeArgs struct { - // Deprecated: Deprecated because of the IaaS API v1 -> v2 migration. Will be removed in May 2026. Use the new `NetworkAreaRegion` resource instead. - NetworkRangeId pulumi.StringPtrInput `pulumi:"networkRangeId"` - // Classless Inter-Domain Routing (CIDR). - // - // Deprecated: Deprecated because of the IaaS API v1 -> v2 migration. Will be removed in May 2026. Use the new `NetworkAreaRegion` resource instead. - Prefix pulumi.StringInput `pulumi:"prefix"` +// Sets Graphic device model. +func (o ImageConfigOutput) VideoModel() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageConfig) *string { return v.VideoModel }).(pulumi.StringPtrOutput) } -func (NetworkAreaNetworkRangeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*NetworkAreaNetworkRange)(nil)).Elem() +// Enables the use of VirtIO SCSI to provide block device access. By default instances use VirtIO Block. +func (o ImageConfigOutput) VirtioScsi() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ImageConfig) *bool { return v.VirtioScsi }).(pulumi.BoolPtrOutput) } -func (i NetworkAreaNetworkRangeArgs) ToNetworkAreaNetworkRangeOutput() NetworkAreaNetworkRangeOutput { - return i.ToNetworkAreaNetworkRangeOutputWithContext(context.Background()) -} +type ImageConfigPtrOutput struct{ *pulumi.OutputState } -func (i NetworkAreaNetworkRangeArgs) ToNetworkAreaNetworkRangeOutputWithContext(ctx context.Context) NetworkAreaNetworkRangeOutput { - return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaNetworkRangeOutput) +func (ImageConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ImageConfig)(nil)).Elem() } -// NetworkAreaNetworkRangeArrayInput is an input type that accepts NetworkAreaNetworkRangeArray and NetworkAreaNetworkRangeArrayOutput values. -// You can construct a concrete instance of `NetworkAreaNetworkRangeArrayInput` via: -// -// NetworkAreaNetworkRangeArray{ NetworkAreaNetworkRangeArgs{...} } -type NetworkAreaNetworkRangeArrayInput interface { - pulumi.Input - - ToNetworkAreaNetworkRangeArrayOutput() NetworkAreaNetworkRangeArrayOutput - ToNetworkAreaNetworkRangeArrayOutputWithContext(context.Context) NetworkAreaNetworkRangeArrayOutput +func (o ImageConfigPtrOutput) ToImageConfigPtrOutput() ImageConfigPtrOutput { + return o } -type NetworkAreaNetworkRangeArray []NetworkAreaNetworkRangeInput +func (o ImageConfigPtrOutput) ToImageConfigPtrOutputWithContext(ctx context.Context) ImageConfigPtrOutput { + return o +} -func (NetworkAreaNetworkRangeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]NetworkAreaNetworkRange)(nil)).Elem() +func (o ImageConfigPtrOutput) Elem() ImageConfigOutput { + return o.ApplyT(func(v *ImageConfig) ImageConfig { + if v != nil { + return *v + } + var ret ImageConfig + return ret + }).(ImageConfigOutput) } -func (i NetworkAreaNetworkRangeArray) ToNetworkAreaNetworkRangeArrayOutput() NetworkAreaNetworkRangeArrayOutput { - return i.ToNetworkAreaNetworkRangeArrayOutputWithContext(context.Background()) +// Enables the BIOS bootmenu. +func (o ImageConfigPtrOutput) BootMenu() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ImageConfig) *bool { + if v == nil { + return nil + } + return v.BootMenu + }).(pulumi.BoolPtrOutput) } -func (i NetworkAreaNetworkRangeArray) ToNetworkAreaNetworkRangeArrayOutputWithContext(ctx context.Context) NetworkAreaNetworkRangeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaNetworkRangeArrayOutput) +// Sets CDROM bus controller type. +func (o ImageConfigPtrOutput) CdromBus() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageConfig) *string { + if v == nil { + return nil + } + return v.CdromBus + }).(pulumi.StringPtrOutput) } -type NetworkAreaNetworkRangeOutput struct{ *pulumi.OutputState } +// Sets Disk bus controller type. +func (o ImageConfigPtrOutput) DiskBus() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageConfig) *string { + if v == nil { + return nil + } + return v.DiskBus + }).(pulumi.StringPtrOutput) +} -func (NetworkAreaNetworkRangeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*NetworkAreaNetworkRange)(nil)).Elem() +// Sets virtual network interface model. +func (o ImageConfigPtrOutput) NicModel() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageConfig) *string { + if v == nil { + return nil + } + return v.NicModel + }).(pulumi.StringPtrOutput) } -func (o NetworkAreaNetworkRangeOutput) ToNetworkAreaNetworkRangeOutput() NetworkAreaNetworkRangeOutput { - return o +// Enables operating system specific optimizations. +func (o ImageConfigPtrOutput) OperatingSystem() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageConfig) *string { + if v == nil { + return nil + } + return v.OperatingSystem + }).(pulumi.StringPtrOutput) } -func (o NetworkAreaNetworkRangeOutput) ToNetworkAreaNetworkRangeOutputWithContext(ctx context.Context) NetworkAreaNetworkRangeOutput { - return o +// Operating system distribution. +func (o ImageConfigPtrOutput) OperatingSystemDistro() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageConfig) *string { + if v == nil { + return nil + } + return v.OperatingSystemDistro + }).(pulumi.StringPtrOutput) } -// Deprecated: Deprecated because of the IaaS API v1 -> v2 migration. Will be removed in May 2026. Use the new `NetworkAreaRegion` resource instead. -func (o NetworkAreaNetworkRangeOutput) NetworkRangeId() pulumi.StringPtrOutput { - return o.ApplyT(func(v NetworkAreaNetworkRange) *string { return v.NetworkRangeId }).(pulumi.StringPtrOutput) +// Version of the operating system. +func (o ImageConfigPtrOutput) OperatingSystemVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageConfig) *string { + if v == nil { + return nil + } + return v.OperatingSystemVersion + }).(pulumi.StringPtrOutput) } -// Classless Inter-Domain Routing (CIDR). -// -// Deprecated: Deprecated because of the IaaS API v1 -> v2 migration. Will be removed in May 2026. Use the new `NetworkAreaRegion` resource instead. -func (o NetworkAreaNetworkRangeOutput) Prefix() pulumi.StringOutput { - return o.ApplyT(func(v NetworkAreaNetworkRange) string { return v.Prefix }).(pulumi.StringOutput) +// Sets the device bus when the image is used as a rescue image. +func (o ImageConfigPtrOutput) RescueBus() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageConfig) *string { + if v == nil { + return nil + } + return v.RescueBus + }).(pulumi.StringPtrOutput) } -type NetworkAreaNetworkRangeArrayOutput struct{ *pulumi.OutputState } +// Sets the device when the image is used as a rescue image. +func (o ImageConfigPtrOutput) RescueDevice() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageConfig) *string { + if v == nil { + return nil + } + return v.RescueDevice + }).(pulumi.StringPtrOutput) +} -func (NetworkAreaNetworkRangeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]NetworkAreaNetworkRange)(nil)).Elem() +// Enables Secure Boot. +func (o ImageConfigPtrOutput) SecureBoot() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ImageConfig) *bool { + if v == nil { + return nil + } + return v.SecureBoot + }).(pulumi.BoolPtrOutput) } -func (o NetworkAreaNetworkRangeArrayOutput) ToNetworkAreaNetworkRangeArrayOutput() NetworkAreaNetworkRangeArrayOutput { - return o +// Enables UEFI boot. +func (o ImageConfigPtrOutput) Uefi() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ImageConfig) *bool { + if v == nil { + return nil + } + return v.Uefi + }).(pulumi.BoolPtrOutput) } -func (o NetworkAreaNetworkRangeArrayOutput) ToNetworkAreaNetworkRangeArrayOutputWithContext(ctx context.Context) NetworkAreaNetworkRangeArrayOutput { - return o +// Sets Graphic device model. +func (o ImageConfigPtrOutput) VideoModel() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageConfig) *string { + if v == nil { + return nil + } + return v.VideoModel + }).(pulumi.StringPtrOutput) } -func (o NetworkAreaNetworkRangeArrayOutput) Index(i pulumi.IntInput) NetworkAreaNetworkRangeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) NetworkAreaNetworkRange { - return vs[0].([]NetworkAreaNetworkRange)[vs[1].(int)] - }).(NetworkAreaNetworkRangeOutput) +// Enables the use of VirtIO SCSI to provide block device access. By default instances use VirtIO Block. +func (o ImageConfigPtrOutput) VirtioScsi() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ImageConfig) *bool { + if v == nil { + return nil + } + return v.VirtioScsi + }).(pulumi.BoolPtrOutput) } -type NetworkAreaRegionIpv4 struct { - // List of DNS Servers/Nameservers. - DefaultNameservers []string `pulumi:"defaultNameservers"` - // The default prefix length for networks in the network area. - DefaultPrefixLength *int `pulumi:"defaultPrefixLength"` - // The maximal prefix length for networks in the network area. - MaxPrefixLength *int `pulumi:"maxPrefixLength"` - // The minimal prefix length for networks in the network area. - MinPrefixLength *int `pulumi:"minPrefixLength"` - // List of Network ranges. - NetworkRanges []NetworkAreaRegionIpv4NetworkRange `pulumi:"networkRanges"` - // IPv4 Classless Inter-Domain Routing (CIDR). - TransferNetwork string `pulumi:"transferNetwork"` +type LoadbalancerListener struct { + DisplayName *string `pulumi:"displayName"` + // Port number where we listen for traffic. + Port int `pulumi:"port"` + // 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`. + Protocol string `pulumi:"protocol"` + // A list of domain names to match in order to pass TLS traffic to the target pool in the current listener + ServerNameIndicators []LoadbalancerListenerServerNameIndicator `pulumi:"serverNameIndicators"` + // Reference target pool by target pool name. + TargetPool string `pulumi:"targetPool"` + // Options that are specific to the TCP protocol. + Tcp *LoadbalancerListenerTcp `pulumi:"tcp"` + // Options that are specific to the UDP protocol. + Udp *LoadbalancerListenerUdp `pulumi:"udp"` } -// NetworkAreaRegionIpv4Input is an input type that accepts NetworkAreaRegionIpv4Args and NetworkAreaRegionIpv4Output values. -// You can construct a concrete instance of `NetworkAreaRegionIpv4Input` via: +// LoadbalancerListenerInput is an input type that accepts LoadbalancerListenerArgs and LoadbalancerListenerOutput values. +// You can construct a concrete instance of `LoadbalancerListenerInput` via: // -// NetworkAreaRegionIpv4Args{...} -type NetworkAreaRegionIpv4Input interface { +// LoadbalancerListenerArgs{...} +type LoadbalancerListenerInput interface { pulumi.Input - ToNetworkAreaRegionIpv4Output() NetworkAreaRegionIpv4Output - ToNetworkAreaRegionIpv4OutputWithContext(context.Context) NetworkAreaRegionIpv4Output -} - -type NetworkAreaRegionIpv4Args struct { - // List of DNS Servers/Nameservers. - DefaultNameservers pulumi.StringArrayInput `pulumi:"defaultNameservers"` - // The default prefix length for networks in the network area. - DefaultPrefixLength pulumi.IntPtrInput `pulumi:"defaultPrefixLength"` - // The maximal prefix length for networks in the network area. - MaxPrefixLength pulumi.IntPtrInput `pulumi:"maxPrefixLength"` - // The minimal prefix length for networks in the network area. - MinPrefixLength pulumi.IntPtrInput `pulumi:"minPrefixLength"` - // List of Network ranges. - NetworkRanges NetworkAreaRegionIpv4NetworkRangeArrayInput `pulumi:"networkRanges"` - // IPv4 Classless Inter-Domain Routing (CIDR). - TransferNetwork pulumi.StringInput `pulumi:"transferNetwork"` -} - -func (NetworkAreaRegionIpv4Args) ElementType() reflect.Type { - return reflect.TypeOf((*NetworkAreaRegionIpv4)(nil)).Elem() + ToLoadbalancerListenerOutput() LoadbalancerListenerOutput + ToLoadbalancerListenerOutputWithContext(context.Context) LoadbalancerListenerOutput } -func (i NetworkAreaRegionIpv4Args) ToNetworkAreaRegionIpv4Output() NetworkAreaRegionIpv4Output { - return i.ToNetworkAreaRegionIpv4OutputWithContext(context.Background()) +type LoadbalancerListenerArgs struct { + DisplayName pulumi.StringPtrInput `pulumi:"displayName"` + // Port number where we listen for traffic. + Port pulumi.IntInput `pulumi:"port"` + // 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`. + Protocol pulumi.StringInput `pulumi:"protocol"` + // A list of domain names to match in order to pass TLS traffic to the target pool in the current listener + ServerNameIndicators LoadbalancerListenerServerNameIndicatorArrayInput `pulumi:"serverNameIndicators"` + // Reference target pool by target pool name. + TargetPool pulumi.StringInput `pulumi:"targetPool"` + // Options that are specific to the TCP protocol. + Tcp LoadbalancerListenerTcpPtrInput `pulumi:"tcp"` + // Options that are specific to the UDP protocol. + Udp LoadbalancerListenerUdpPtrInput `pulumi:"udp"` } -func (i NetworkAreaRegionIpv4Args) ToNetworkAreaRegionIpv4OutputWithContext(ctx context.Context) NetworkAreaRegionIpv4Output { - return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRegionIpv4Output) +func (LoadbalancerListenerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerListener)(nil)).Elem() } -func (i NetworkAreaRegionIpv4Args) ToNetworkAreaRegionIpv4PtrOutput() NetworkAreaRegionIpv4PtrOutput { - return i.ToNetworkAreaRegionIpv4PtrOutputWithContext(context.Background()) +func (i LoadbalancerListenerArgs) ToLoadbalancerListenerOutput() LoadbalancerListenerOutput { + return i.ToLoadbalancerListenerOutputWithContext(context.Background()) } -func (i NetworkAreaRegionIpv4Args) ToNetworkAreaRegionIpv4PtrOutputWithContext(ctx context.Context) NetworkAreaRegionIpv4PtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRegionIpv4Output).ToNetworkAreaRegionIpv4PtrOutputWithContext(ctx) +func (i LoadbalancerListenerArgs) ToLoadbalancerListenerOutputWithContext(ctx context.Context) LoadbalancerListenerOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerOutput) } -// NetworkAreaRegionIpv4PtrInput is an input type that accepts NetworkAreaRegionIpv4Args, NetworkAreaRegionIpv4Ptr and NetworkAreaRegionIpv4PtrOutput values. -// You can construct a concrete instance of `NetworkAreaRegionIpv4PtrInput` via: -// -// NetworkAreaRegionIpv4Args{...} -// -// or: +// LoadbalancerListenerArrayInput is an input type that accepts LoadbalancerListenerArray and LoadbalancerListenerArrayOutput values. +// You can construct a concrete instance of `LoadbalancerListenerArrayInput` via: // -// nil -type NetworkAreaRegionIpv4PtrInput interface { +// LoadbalancerListenerArray{ LoadbalancerListenerArgs{...} } +type LoadbalancerListenerArrayInput interface { pulumi.Input - ToNetworkAreaRegionIpv4PtrOutput() NetworkAreaRegionIpv4PtrOutput - ToNetworkAreaRegionIpv4PtrOutputWithContext(context.Context) NetworkAreaRegionIpv4PtrOutput + ToLoadbalancerListenerArrayOutput() LoadbalancerListenerArrayOutput + ToLoadbalancerListenerArrayOutputWithContext(context.Context) LoadbalancerListenerArrayOutput } -type networkAreaRegionIpv4PtrType NetworkAreaRegionIpv4Args - -func NetworkAreaRegionIpv4Ptr(v *NetworkAreaRegionIpv4Args) NetworkAreaRegionIpv4PtrInput { - return (*networkAreaRegionIpv4PtrType)(v) -} +type LoadbalancerListenerArray []LoadbalancerListenerInput -func (*networkAreaRegionIpv4PtrType) ElementType() reflect.Type { - return reflect.TypeOf((**NetworkAreaRegionIpv4)(nil)).Elem() +func (LoadbalancerListenerArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]LoadbalancerListener)(nil)).Elem() } -func (i *networkAreaRegionIpv4PtrType) ToNetworkAreaRegionIpv4PtrOutput() NetworkAreaRegionIpv4PtrOutput { - return i.ToNetworkAreaRegionIpv4PtrOutputWithContext(context.Background()) +func (i LoadbalancerListenerArray) ToLoadbalancerListenerArrayOutput() LoadbalancerListenerArrayOutput { + return i.ToLoadbalancerListenerArrayOutputWithContext(context.Background()) } -func (i *networkAreaRegionIpv4PtrType) ToNetworkAreaRegionIpv4PtrOutputWithContext(ctx context.Context) NetworkAreaRegionIpv4PtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRegionIpv4PtrOutput) +func (i LoadbalancerListenerArray) ToLoadbalancerListenerArrayOutputWithContext(ctx context.Context) LoadbalancerListenerArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerArrayOutput) } -type NetworkAreaRegionIpv4Output struct{ *pulumi.OutputState } +type LoadbalancerListenerOutput struct{ *pulumi.OutputState } -func (NetworkAreaRegionIpv4Output) ElementType() reflect.Type { - return reflect.TypeOf((*NetworkAreaRegionIpv4)(nil)).Elem() +func (LoadbalancerListenerOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerListener)(nil)).Elem() } -func (o NetworkAreaRegionIpv4Output) ToNetworkAreaRegionIpv4Output() NetworkAreaRegionIpv4Output { +func (o LoadbalancerListenerOutput) ToLoadbalancerListenerOutput() LoadbalancerListenerOutput { return o } -func (o NetworkAreaRegionIpv4Output) ToNetworkAreaRegionIpv4OutputWithContext(ctx context.Context) NetworkAreaRegionIpv4Output { +func (o LoadbalancerListenerOutput) ToLoadbalancerListenerOutputWithContext(ctx context.Context) LoadbalancerListenerOutput { return o } -func (o NetworkAreaRegionIpv4Output) ToNetworkAreaRegionIpv4PtrOutput() NetworkAreaRegionIpv4PtrOutput { - return o.ToNetworkAreaRegionIpv4PtrOutputWithContext(context.Background()) -} - -func (o NetworkAreaRegionIpv4Output) ToNetworkAreaRegionIpv4PtrOutputWithContext(ctx context.Context) NetworkAreaRegionIpv4PtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkAreaRegionIpv4) *NetworkAreaRegionIpv4 { - return &v - }).(NetworkAreaRegionIpv4PtrOutput) +func (o LoadbalancerListenerOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadbalancerListener) *string { return v.DisplayName }).(pulumi.StringPtrOutput) } -// List of DNS Servers/Nameservers. -func (o NetworkAreaRegionIpv4Output) DefaultNameservers() pulumi.StringArrayOutput { - return o.ApplyT(func(v NetworkAreaRegionIpv4) []string { return v.DefaultNameservers }).(pulumi.StringArrayOutput) +// Port number where we listen for traffic. +func (o LoadbalancerListenerOutput) Port() pulumi.IntOutput { + return o.ApplyT(func(v LoadbalancerListener) int { return v.Port }).(pulumi.IntOutput) } -// The default prefix length for networks in the network area. -func (o NetworkAreaRegionIpv4Output) DefaultPrefixLength() pulumi.IntPtrOutput { - return o.ApplyT(func(v NetworkAreaRegionIpv4) *int { return v.DefaultPrefixLength }).(pulumi.IntPtrOutput) +// 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`. +func (o LoadbalancerListenerOutput) Protocol() pulumi.StringOutput { + return o.ApplyT(func(v LoadbalancerListener) string { return v.Protocol }).(pulumi.StringOutput) } -// The maximal prefix length for networks in the network area. -func (o NetworkAreaRegionIpv4Output) MaxPrefixLength() pulumi.IntPtrOutput { - return o.ApplyT(func(v NetworkAreaRegionIpv4) *int { return v.MaxPrefixLength }).(pulumi.IntPtrOutput) +// A list of domain names to match in order to pass TLS traffic to the target pool in the current listener +func (o LoadbalancerListenerOutput) ServerNameIndicators() LoadbalancerListenerServerNameIndicatorArrayOutput { + return o.ApplyT(func(v LoadbalancerListener) []LoadbalancerListenerServerNameIndicator { return v.ServerNameIndicators }).(LoadbalancerListenerServerNameIndicatorArrayOutput) } -// The minimal prefix length for networks in the network area. -func (o NetworkAreaRegionIpv4Output) MinPrefixLength() pulumi.IntPtrOutput { - return o.ApplyT(func(v NetworkAreaRegionIpv4) *int { return v.MinPrefixLength }).(pulumi.IntPtrOutput) +// Reference target pool by target pool name. +func (o LoadbalancerListenerOutput) TargetPool() pulumi.StringOutput { + return o.ApplyT(func(v LoadbalancerListener) string { return v.TargetPool }).(pulumi.StringOutput) } -// List of Network ranges. -func (o NetworkAreaRegionIpv4Output) NetworkRanges() NetworkAreaRegionIpv4NetworkRangeArrayOutput { - return o.ApplyT(func(v NetworkAreaRegionIpv4) []NetworkAreaRegionIpv4NetworkRange { return v.NetworkRanges }).(NetworkAreaRegionIpv4NetworkRangeArrayOutput) +// Options that are specific to the TCP protocol. +func (o LoadbalancerListenerOutput) Tcp() LoadbalancerListenerTcpPtrOutput { + return o.ApplyT(func(v LoadbalancerListener) *LoadbalancerListenerTcp { return v.Tcp }).(LoadbalancerListenerTcpPtrOutput) } -// IPv4 Classless Inter-Domain Routing (CIDR). -func (o NetworkAreaRegionIpv4Output) TransferNetwork() pulumi.StringOutput { - return o.ApplyT(func(v NetworkAreaRegionIpv4) string { return v.TransferNetwork }).(pulumi.StringOutput) +// Options that are specific to the UDP protocol. +func (o LoadbalancerListenerOutput) Udp() LoadbalancerListenerUdpPtrOutput { + return o.ApplyT(func(v LoadbalancerListener) *LoadbalancerListenerUdp { return v.Udp }).(LoadbalancerListenerUdpPtrOutput) } -type NetworkAreaRegionIpv4PtrOutput struct{ *pulumi.OutputState } +type LoadbalancerListenerArrayOutput struct{ *pulumi.OutputState } -func (NetworkAreaRegionIpv4PtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**NetworkAreaRegionIpv4)(nil)).Elem() +func (LoadbalancerListenerArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]LoadbalancerListener)(nil)).Elem() } -func (o NetworkAreaRegionIpv4PtrOutput) ToNetworkAreaRegionIpv4PtrOutput() NetworkAreaRegionIpv4PtrOutput { +func (o LoadbalancerListenerArrayOutput) ToLoadbalancerListenerArrayOutput() LoadbalancerListenerArrayOutput { return o } -func (o NetworkAreaRegionIpv4PtrOutput) ToNetworkAreaRegionIpv4PtrOutputWithContext(ctx context.Context) NetworkAreaRegionIpv4PtrOutput { +func (o LoadbalancerListenerArrayOutput) ToLoadbalancerListenerArrayOutputWithContext(ctx context.Context) LoadbalancerListenerArrayOutput { return o } -func (o NetworkAreaRegionIpv4PtrOutput) Elem() NetworkAreaRegionIpv4Output { - return o.ApplyT(func(v *NetworkAreaRegionIpv4) NetworkAreaRegionIpv4 { - if v != nil { - return *v - } - var ret NetworkAreaRegionIpv4 - return ret - }).(NetworkAreaRegionIpv4Output) +func (o LoadbalancerListenerArrayOutput) Index(i pulumi.IntInput) LoadbalancerListenerOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) LoadbalancerListener { + return vs[0].([]LoadbalancerListener)[vs[1].(int)] + }).(LoadbalancerListenerOutput) } -// List of DNS Servers/Nameservers. -func (o NetworkAreaRegionIpv4PtrOutput) DefaultNameservers() pulumi.StringArrayOutput { - return o.ApplyT(func(v *NetworkAreaRegionIpv4) []string { - if v == nil { - return nil - } - return v.DefaultNameservers - }).(pulumi.StringArrayOutput) +type LoadbalancerListenerServerNameIndicator struct { + // A domain name to match in order to pass TLS traffic to the target pool in the current listener + Name *string `pulumi:"name"` } -// The default prefix length for networks in the network area. -func (o NetworkAreaRegionIpv4PtrOutput) DefaultPrefixLength() pulumi.IntPtrOutput { - return o.ApplyT(func(v *NetworkAreaRegionIpv4) *int { - if v == nil { - return nil - } - return v.DefaultPrefixLength - }).(pulumi.IntPtrOutput) -} +// LoadbalancerListenerServerNameIndicatorInput is an input type that accepts LoadbalancerListenerServerNameIndicatorArgs and LoadbalancerListenerServerNameIndicatorOutput values. +// You can construct a concrete instance of `LoadbalancerListenerServerNameIndicatorInput` via: +// +// LoadbalancerListenerServerNameIndicatorArgs{...} +type LoadbalancerListenerServerNameIndicatorInput interface { + pulumi.Input -// The maximal prefix length for networks in the network area. -func (o NetworkAreaRegionIpv4PtrOutput) MaxPrefixLength() pulumi.IntPtrOutput { - return o.ApplyT(func(v *NetworkAreaRegionIpv4) *int { - if v == nil { - return nil - } - return v.MaxPrefixLength - }).(pulumi.IntPtrOutput) + ToLoadbalancerListenerServerNameIndicatorOutput() LoadbalancerListenerServerNameIndicatorOutput + ToLoadbalancerListenerServerNameIndicatorOutputWithContext(context.Context) LoadbalancerListenerServerNameIndicatorOutput } -// The minimal prefix length for networks in the network area. -func (o NetworkAreaRegionIpv4PtrOutput) MinPrefixLength() pulumi.IntPtrOutput { - return o.ApplyT(func(v *NetworkAreaRegionIpv4) *int { - if v == nil { - return nil - } - return v.MinPrefixLength - }).(pulumi.IntPtrOutput) +type LoadbalancerListenerServerNameIndicatorArgs struct { + // A domain name to match in order to pass TLS traffic to the target pool in the current listener + Name pulumi.StringPtrInput `pulumi:"name"` } -// List of Network ranges. -func (o NetworkAreaRegionIpv4PtrOutput) NetworkRanges() NetworkAreaRegionIpv4NetworkRangeArrayOutput { - return o.ApplyT(func(v *NetworkAreaRegionIpv4) []NetworkAreaRegionIpv4NetworkRange { - if v == nil { - return nil - } - return v.NetworkRanges - }).(NetworkAreaRegionIpv4NetworkRangeArrayOutput) +func (LoadbalancerListenerServerNameIndicatorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerListenerServerNameIndicator)(nil)).Elem() } -// IPv4 Classless Inter-Domain Routing (CIDR). -func (o NetworkAreaRegionIpv4PtrOutput) TransferNetwork() pulumi.StringPtrOutput { - return o.ApplyT(func(v *NetworkAreaRegionIpv4) *string { - if v == nil { - return nil - } - return &v.TransferNetwork - }).(pulumi.StringPtrOutput) +func (i LoadbalancerListenerServerNameIndicatorArgs) ToLoadbalancerListenerServerNameIndicatorOutput() LoadbalancerListenerServerNameIndicatorOutput { + return i.ToLoadbalancerListenerServerNameIndicatorOutputWithContext(context.Background()) } -type NetworkAreaRegionIpv4NetworkRange struct { - NetworkRangeId *string `pulumi:"networkRangeId"` - // Classless Inter-Domain Routing (CIDR). - Prefix string `pulumi:"prefix"` +func (i LoadbalancerListenerServerNameIndicatorArgs) ToLoadbalancerListenerServerNameIndicatorOutputWithContext(ctx context.Context) LoadbalancerListenerServerNameIndicatorOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerServerNameIndicatorOutput) } -// NetworkAreaRegionIpv4NetworkRangeInput is an input type that accepts NetworkAreaRegionIpv4NetworkRangeArgs and NetworkAreaRegionIpv4NetworkRangeOutput values. -// You can construct a concrete instance of `NetworkAreaRegionIpv4NetworkRangeInput` via: +// LoadbalancerListenerServerNameIndicatorArrayInput is an input type that accepts LoadbalancerListenerServerNameIndicatorArray and LoadbalancerListenerServerNameIndicatorArrayOutput values. +// You can construct a concrete instance of `LoadbalancerListenerServerNameIndicatorArrayInput` via: // -// NetworkAreaRegionIpv4NetworkRangeArgs{...} -type NetworkAreaRegionIpv4NetworkRangeInput interface { +// LoadbalancerListenerServerNameIndicatorArray{ LoadbalancerListenerServerNameIndicatorArgs{...} } +type LoadbalancerListenerServerNameIndicatorArrayInput interface { pulumi.Input - ToNetworkAreaRegionIpv4NetworkRangeOutput() NetworkAreaRegionIpv4NetworkRangeOutput - ToNetworkAreaRegionIpv4NetworkRangeOutputWithContext(context.Context) NetworkAreaRegionIpv4NetworkRangeOutput + ToLoadbalancerListenerServerNameIndicatorArrayOutput() LoadbalancerListenerServerNameIndicatorArrayOutput + ToLoadbalancerListenerServerNameIndicatorArrayOutputWithContext(context.Context) LoadbalancerListenerServerNameIndicatorArrayOutput } -type NetworkAreaRegionIpv4NetworkRangeArgs struct { - NetworkRangeId pulumi.StringPtrInput `pulumi:"networkRangeId"` - // Classless Inter-Domain Routing (CIDR). - Prefix pulumi.StringInput `pulumi:"prefix"` -} +type LoadbalancerListenerServerNameIndicatorArray []LoadbalancerListenerServerNameIndicatorInput -func (NetworkAreaRegionIpv4NetworkRangeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*NetworkAreaRegionIpv4NetworkRange)(nil)).Elem() -} - -func (i NetworkAreaRegionIpv4NetworkRangeArgs) ToNetworkAreaRegionIpv4NetworkRangeOutput() NetworkAreaRegionIpv4NetworkRangeOutput { - return i.ToNetworkAreaRegionIpv4NetworkRangeOutputWithContext(context.Background()) -} - -func (i NetworkAreaRegionIpv4NetworkRangeArgs) ToNetworkAreaRegionIpv4NetworkRangeOutputWithContext(ctx context.Context) NetworkAreaRegionIpv4NetworkRangeOutput { - return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRegionIpv4NetworkRangeOutput) -} - -// NetworkAreaRegionIpv4NetworkRangeArrayInput is an input type that accepts NetworkAreaRegionIpv4NetworkRangeArray and NetworkAreaRegionIpv4NetworkRangeArrayOutput values. -// You can construct a concrete instance of `NetworkAreaRegionIpv4NetworkRangeArrayInput` via: -// -// NetworkAreaRegionIpv4NetworkRangeArray{ NetworkAreaRegionIpv4NetworkRangeArgs{...} } -type NetworkAreaRegionIpv4NetworkRangeArrayInput interface { - pulumi.Input - - ToNetworkAreaRegionIpv4NetworkRangeArrayOutput() NetworkAreaRegionIpv4NetworkRangeArrayOutput - ToNetworkAreaRegionIpv4NetworkRangeArrayOutputWithContext(context.Context) NetworkAreaRegionIpv4NetworkRangeArrayOutput -} - -type NetworkAreaRegionIpv4NetworkRangeArray []NetworkAreaRegionIpv4NetworkRangeInput - -func (NetworkAreaRegionIpv4NetworkRangeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]NetworkAreaRegionIpv4NetworkRange)(nil)).Elem() +func (LoadbalancerListenerServerNameIndicatorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]LoadbalancerListenerServerNameIndicator)(nil)).Elem() } -func (i NetworkAreaRegionIpv4NetworkRangeArray) ToNetworkAreaRegionIpv4NetworkRangeArrayOutput() NetworkAreaRegionIpv4NetworkRangeArrayOutput { - return i.ToNetworkAreaRegionIpv4NetworkRangeArrayOutputWithContext(context.Background()) +func (i LoadbalancerListenerServerNameIndicatorArray) ToLoadbalancerListenerServerNameIndicatorArrayOutput() LoadbalancerListenerServerNameIndicatorArrayOutput { + return i.ToLoadbalancerListenerServerNameIndicatorArrayOutputWithContext(context.Background()) } -func (i NetworkAreaRegionIpv4NetworkRangeArray) ToNetworkAreaRegionIpv4NetworkRangeArrayOutputWithContext(ctx context.Context) NetworkAreaRegionIpv4NetworkRangeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRegionIpv4NetworkRangeArrayOutput) +func (i LoadbalancerListenerServerNameIndicatorArray) ToLoadbalancerListenerServerNameIndicatorArrayOutputWithContext(ctx context.Context) LoadbalancerListenerServerNameIndicatorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerServerNameIndicatorArrayOutput) } -type NetworkAreaRegionIpv4NetworkRangeOutput struct{ *pulumi.OutputState } +type LoadbalancerListenerServerNameIndicatorOutput struct{ *pulumi.OutputState } -func (NetworkAreaRegionIpv4NetworkRangeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*NetworkAreaRegionIpv4NetworkRange)(nil)).Elem() +func (LoadbalancerListenerServerNameIndicatorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerListenerServerNameIndicator)(nil)).Elem() } -func (o NetworkAreaRegionIpv4NetworkRangeOutput) ToNetworkAreaRegionIpv4NetworkRangeOutput() NetworkAreaRegionIpv4NetworkRangeOutput { +func (o LoadbalancerListenerServerNameIndicatorOutput) ToLoadbalancerListenerServerNameIndicatorOutput() LoadbalancerListenerServerNameIndicatorOutput { return o } -func (o NetworkAreaRegionIpv4NetworkRangeOutput) ToNetworkAreaRegionIpv4NetworkRangeOutputWithContext(ctx context.Context) NetworkAreaRegionIpv4NetworkRangeOutput { +func (o LoadbalancerListenerServerNameIndicatorOutput) ToLoadbalancerListenerServerNameIndicatorOutputWithContext(ctx context.Context) LoadbalancerListenerServerNameIndicatorOutput { return o } -func (o NetworkAreaRegionIpv4NetworkRangeOutput) NetworkRangeId() pulumi.StringPtrOutput { - return o.ApplyT(func(v NetworkAreaRegionIpv4NetworkRange) *string { return v.NetworkRangeId }).(pulumi.StringPtrOutput) -} - -// Classless Inter-Domain Routing (CIDR). -func (o NetworkAreaRegionIpv4NetworkRangeOutput) Prefix() pulumi.StringOutput { - return o.ApplyT(func(v NetworkAreaRegionIpv4NetworkRange) string { return v.Prefix }).(pulumi.StringOutput) +// A domain name to match in order to pass TLS traffic to the target pool in the current listener +func (o LoadbalancerListenerServerNameIndicatorOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadbalancerListenerServerNameIndicator) *string { return v.Name }).(pulumi.StringPtrOutput) } -type NetworkAreaRegionIpv4NetworkRangeArrayOutput struct{ *pulumi.OutputState } +type LoadbalancerListenerServerNameIndicatorArrayOutput struct{ *pulumi.OutputState } -func (NetworkAreaRegionIpv4NetworkRangeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]NetworkAreaRegionIpv4NetworkRange)(nil)).Elem() +func (LoadbalancerListenerServerNameIndicatorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]LoadbalancerListenerServerNameIndicator)(nil)).Elem() } -func (o NetworkAreaRegionIpv4NetworkRangeArrayOutput) ToNetworkAreaRegionIpv4NetworkRangeArrayOutput() NetworkAreaRegionIpv4NetworkRangeArrayOutput { +func (o LoadbalancerListenerServerNameIndicatorArrayOutput) ToLoadbalancerListenerServerNameIndicatorArrayOutput() LoadbalancerListenerServerNameIndicatorArrayOutput { return o } -func (o NetworkAreaRegionIpv4NetworkRangeArrayOutput) ToNetworkAreaRegionIpv4NetworkRangeArrayOutputWithContext(ctx context.Context) NetworkAreaRegionIpv4NetworkRangeArrayOutput { +func (o LoadbalancerListenerServerNameIndicatorArrayOutput) ToLoadbalancerListenerServerNameIndicatorArrayOutputWithContext(ctx context.Context) LoadbalancerListenerServerNameIndicatorArrayOutput { return o } -func (o NetworkAreaRegionIpv4NetworkRangeArrayOutput) Index(i pulumi.IntInput) NetworkAreaRegionIpv4NetworkRangeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) NetworkAreaRegionIpv4NetworkRange { - return vs[0].([]NetworkAreaRegionIpv4NetworkRange)[vs[1].(int)] - }).(NetworkAreaRegionIpv4NetworkRangeOutput) +func (o LoadbalancerListenerServerNameIndicatorArrayOutput) Index(i pulumi.IntInput) LoadbalancerListenerServerNameIndicatorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) LoadbalancerListenerServerNameIndicator { + return vs[0].([]LoadbalancerListenerServerNameIndicator)[vs[1].(int)] + }).(LoadbalancerListenerServerNameIndicatorOutput) } -type NetworkAreaRouteDestination struct { - // CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported currently. - Type string `pulumi:"type"` - // An CIDR string. - Value string `pulumi:"value"` +type LoadbalancerListenerTcp struct { + // 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 + IdleTimeout *string `pulumi:"idleTimeout"` } -// NetworkAreaRouteDestinationInput is an input type that accepts NetworkAreaRouteDestinationArgs and NetworkAreaRouteDestinationOutput values. -// You can construct a concrete instance of `NetworkAreaRouteDestinationInput` via: +// LoadbalancerListenerTcpInput is an input type that accepts LoadbalancerListenerTcpArgs and LoadbalancerListenerTcpOutput values. +// You can construct a concrete instance of `LoadbalancerListenerTcpInput` via: // -// NetworkAreaRouteDestinationArgs{...} -type NetworkAreaRouteDestinationInput interface { +// LoadbalancerListenerTcpArgs{...} +type LoadbalancerListenerTcpInput interface { pulumi.Input - ToNetworkAreaRouteDestinationOutput() NetworkAreaRouteDestinationOutput - ToNetworkAreaRouteDestinationOutputWithContext(context.Context) NetworkAreaRouteDestinationOutput + ToLoadbalancerListenerTcpOutput() LoadbalancerListenerTcpOutput + ToLoadbalancerListenerTcpOutputWithContext(context.Context) LoadbalancerListenerTcpOutput } -type NetworkAreaRouteDestinationArgs struct { - // CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported currently. - Type pulumi.StringInput `pulumi:"type"` - // An CIDR string. - Value pulumi.StringInput `pulumi:"value"` +type LoadbalancerListenerTcpArgs struct { + // 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 + IdleTimeout pulumi.StringPtrInput `pulumi:"idleTimeout"` } -func (NetworkAreaRouteDestinationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*NetworkAreaRouteDestination)(nil)).Elem() +func (LoadbalancerListenerTcpArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerListenerTcp)(nil)).Elem() } -func (i NetworkAreaRouteDestinationArgs) ToNetworkAreaRouteDestinationOutput() NetworkAreaRouteDestinationOutput { - return i.ToNetworkAreaRouteDestinationOutputWithContext(context.Background()) +func (i LoadbalancerListenerTcpArgs) ToLoadbalancerListenerTcpOutput() LoadbalancerListenerTcpOutput { + return i.ToLoadbalancerListenerTcpOutputWithContext(context.Background()) } -func (i NetworkAreaRouteDestinationArgs) ToNetworkAreaRouteDestinationOutputWithContext(ctx context.Context) NetworkAreaRouteDestinationOutput { - return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRouteDestinationOutput) +func (i LoadbalancerListenerTcpArgs) ToLoadbalancerListenerTcpOutputWithContext(ctx context.Context) LoadbalancerListenerTcpOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerTcpOutput) } -func (i NetworkAreaRouteDestinationArgs) ToNetworkAreaRouteDestinationPtrOutput() NetworkAreaRouteDestinationPtrOutput { - return i.ToNetworkAreaRouteDestinationPtrOutputWithContext(context.Background()) +func (i LoadbalancerListenerTcpArgs) ToLoadbalancerListenerTcpPtrOutput() LoadbalancerListenerTcpPtrOutput { + return i.ToLoadbalancerListenerTcpPtrOutputWithContext(context.Background()) } -func (i NetworkAreaRouteDestinationArgs) ToNetworkAreaRouteDestinationPtrOutputWithContext(ctx context.Context) NetworkAreaRouteDestinationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRouteDestinationOutput).ToNetworkAreaRouteDestinationPtrOutputWithContext(ctx) +func (i LoadbalancerListenerTcpArgs) ToLoadbalancerListenerTcpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerTcpPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerTcpOutput).ToLoadbalancerListenerTcpPtrOutputWithContext(ctx) } -// NetworkAreaRouteDestinationPtrInput is an input type that accepts NetworkAreaRouteDestinationArgs, NetworkAreaRouteDestinationPtr and NetworkAreaRouteDestinationPtrOutput values. -// You can construct a concrete instance of `NetworkAreaRouteDestinationPtrInput` via: +// LoadbalancerListenerTcpPtrInput is an input type that accepts LoadbalancerListenerTcpArgs, LoadbalancerListenerTcpPtr and LoadbalancerListenerTcpPtrOutput values. +// You can construct a concrete instance of `LoadbalancerListenerTcpPtrInput` via: // -// NetworkAreaRouteDestinationArgs{...} +// LoadbalancerListenerTcpArgs{...} // // or: // // nil -type NetworkAreaRouteDestinationPtrInput interface { +type LoadbalancerListenerTcpPtrInput interface { pulumi.Input - ToNetworkAreaRouteDestinationPtrOutput() NetworkAreaRouteDestinationPtrOutput - ToNetworkAreaRouteDestinationPtrOutputWithContext(context.Context) NetworkAreaRouteDestinationPtrOutput + ToLoadbalancerListenerTcpPtrOutput() LoadbalancerListenerTcpPtrOutput + ToLoadbalancerListenerTcpPtrOutputWithContext(context.Context) LoadbalancerListenerTcpPtrOutput } -type networkAreaRouteDestinationPtrType NetworkAreaRouteDestinationArgs +type loadbalancerListenerTcpPtrType LoadbalancerListenerTcpArgs -func NetworkAreaRouteDestinationPtr(v *NetworkAreaRouteDestinationArgs) NetworkAreaRouteDestinationPtrInput { - return (*networkAreaRouteDestinationPtrType)(v) +func LoadbalancerListenerTcpPtr(v *LoadbalancerListenerTcpArgs) LoadbalancerListenerTcpPtrInput { + return (*loadbalancerListenerTcpPtrType)(v) } -func (*networkAreaRouteDestinationPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**NetworkAreaRouteDestination)(nil)).Elem() +func (*loadbalancerListenerTcpPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerListenerTcp)(nil)).Elem() } -func (i *networkAreaRouteDestinationPtrType) ToNetworkAreaRouteDestinationPtrOutput() NetworkAreaRouteDestinationPtrOutput { - return i.ToNetworkAreaRouteDestinationPtrOutputWithContext(context.Background()) +func (i *loadbalancerListenerTcpPtrType) ToLoadbalancerListenerTcpPtrOutput() LoadbalancerListenerTcpPtrOutput { + return i.ToLoadbalancerListenerTcpPtrOutputWithContext(context.Background()) } -func (i *networkAreaRouteDestinationPtrType) ToNetworkAreaRouteDestinationPtrOutputWithContext(ctx context.Context) NetworkAreaRouteDestinationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRouteDestinationPtrOutput) +func (i *loadbalancerListenerTcpPtrType) ToLoadbalancerListenerTcpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerTcpPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerTcpPtrOutput) } -type NetworkAreaRouteDestinationOutput struct{ *pulumi.OutputState } +type LoadbalancerListenerTcpOutput struct{ *pulumi.OutputState } -func (NetworkAreaRouteDestinationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*NetworkAreaRouteDestination)(nil)).Elem() +func (LoadbalancerListenerTcpOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerListenerTcp)(nil)).Elem() } -func (o NetworkAreaRouteDestinationOutput) ToNetworkAreaRouteDestinationOutput() NetworkAreaRouteDestinationOutput { +func (o LoadbalancerListenerTcpOutput) ToLoadbalancerListenerTcpOutput() LoadbalancerListenerTcpOutput { return o } -func (o NetworkAreaRouteDestinationOutput) ToNetworkAreaRouteDestinationOutputWithContext(ctx context.Context) NetworkAreaRouteDestinationOutput { +func (o LoadbalancerListenerTcpOutput) ToLoadbalancerListenerTcpOutputWithContext(ctx context.Context) LoadbalancerListenerTcpOutput { return o } -func (o NetworkAreaRouteDestinationOutput) ToNetworkAreaRouteDestinationPtrOutput() NetworkAreaRouteDestinationPtrOutput { - return o.ToNetworkAreaRouteDestinationPtrOutputWithContext(context.Background()) +func (o LoadbalancerListenerTcpOutput) ToLoadbalancerListenerTcpPtrOutput() LoadbalancerListenerTcpPtrOutput { + return o.ToLoadbalancerListenerTcpPtrOutputWithContext(context.Background()) } -func (o NetworkAreaRouteDestinationOutput) ToNetworkAreaRouteDestinationPtrOutputWithContext(ctx context.Context) NetworkAreaRouteDestinationPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkAreaRouteDestination) *NetworkAreaRouteDestination { +func (o LoadbalancerListenerTcpOutput) ToLoadbalancerListenerTcpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerTcpPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerListenerTcp) *LoadbalancerListenerTcp { return &v - }).(NetworkAreaRouteDestinationPtrOutput) -} - -// CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported currently. -func (o NetworkAreaRouteDestinationOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v NetworkAreaRouteDestination) string { return v.Type }).(pulumi.StringOutput) + }).(LoadbalancerListenerTcpPtrOutput) } -// An CIDR string. -func (o NetworkAreaRouteDestinationOutput) Value() pulumi.StringOutput { - return o.ApplyT(func(v NetworkAreaRouteDestination) string { return v.Value }).(pulumi.StringOutput) +// 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 +func (o LoadbalancerListenerTcpOutput) IdleTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadbalancerListenerTcp) *string { return v.IdleTimeout }).(pulumi.StringPtrOutput) } -type NetworkAreaRouteDestinationPtrOutput struct{ *pulumi.OutputState } +type LoadbalancerListenerTcpPtrOutput struct{ *pulumi.OutputState } -func (NetworkAreaRouteDestinationPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**NetworkAreaRouteDestination)(nil)).Elem() +func (LoadbalancerListenerTcpPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerListenerTcp)(nil)).Elem() } -func (o NetworkAreaRouteDestinationPtrOutput) ToNetworkAreaRouteDestinationPtrOutput() NetworkAreaRouteDestinationPtrOutput { +func (o LoadbalancerListenerTcpPtrOutput) ToLoadbalancerListenerTcpPtrOutput() LoadbalancerListenerTcpPtrOutput { return o } -func (o NetworkAreaRouteDestinationPtrOutput) ToNetworkAreaRouteDestinationPtrOutputWithContext(ctx context.Context) NetworkAreaRouteDestinationPtrOutput { +func (o LoadbalancerListenerTcpPtrOutput) ToLoadbalancerListenerTcpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerTcpPtrOutput { return o } -func (o NetworkAreaRouteDestinationPtrOutput) Elem() NetworkAreaRouteDestinationOutput { - return o.ApplyT(func(v *NetworkAreaRouteDestination) NetworkAreaRouteDestination { +func (o LoadbalancerListenerTcpPtrOutput) Elem() LoadbalancerListenerTcpOutput { + return o.ApplyT(func(v *LoadbalancerListenerTcp) LoadbalancerListenerTcp { if v != nil { return *v } - var ret NetworkAreaRouteDestination + var ret LoadbalancerListenerTcp return ret - }).(NetworkAreaRouteDestinationOutput) -} - -// CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported currently. -func (o NetworkAreaRouteDestinationPtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *NetworkAreaRouteDestination) *string { - if v == nil { - return nil - } - return &v.Type - }).(pulumi.StringPtrOutput) + }).(LoadbalancerListenerTcpOutput) } -// An CIDR string. -func (o NetworkAreaRouteDestinationPtrOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v *NetworkAreaRouteDestination) *string { +// 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 +func (o LoadbalancerListenerTcpPtrOutput) IdleTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LoadbalancerListenerTcp) *string { if v == nil { return nil } - return &v.Value + return v.IdleTimeout }).(pulumi.StringPtrOutput) } -type NetworkAreaRouteNextHop struct { - // Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `ipv4` supported currently. - Type string `pulumi:"type"` - // Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported currently. - Value *string `pulumi:"value"` +type LoadbalancerListenerUdp struct { + // 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 + IdleTimeout *string `pulumi:"idleTimeout"` } -// NetworkAreaRouteNextHopInput is an input type that accepts NetworkAreaRouteNextHopArgs and NetworkAreaRouteNextHopOutput values. -// You can construct a concrete instance of `NetworkAreaRouteNextHopInput` via: +// LoadbalancerListenerUdpInput is an input type that accepts LoadbalancerListenerUdpArgs and LoadbalancerListenerUdpOutput values. +// You can construct a concrete instance of `LoadbalancerListenerUdpInput` via: // -// NetworkAreaRouteNextHopArgs{...} -type NetworkAreaRouteNextHopInput interface { +// LoadbalancerListenerUdpArgs{...} +type LoadbalancerListenerUdpInput interface { pulumi.Input - ToNetworkAreaRouteNextHopOutput() NetworkAreaRouteNextHopOutput - ToNetworkAreaRouteNextHopOutputWithContext(context.Context) NetworkAreaRouteNextHopOutput + ToLoadbalancerListenerUdpOutput() LoadbalancerListenerUdpOutput + ToLoadbalancerListenerUdpOutputWithContext(context.Context) LoadbalancerListenerUdpOutput } -type NetworkAreaRouteNextHopArgs struct { - // Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `ipv4` supported currently. - Type pulumi.StringInput `pulumi:"type"` - // Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported currently. - Value pulumi.StringPtrInput `pulumi:"value"` +type LoadbalancerListenerUdpArgs struct { + // 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 + IdleTimeout pulumi.StringPtrInput `pulumi:"idleTimeout"` } -func (NetworkAreaRouteNextHopArgs) ElementType() reflect.Type { - return reflect.TypeOf((*NetworkAreaRouteNextHop)(nil)).Elem() +func (LoadbalancerListenerUdpArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerListenerUdp)(nil)).Elem() } -func (i NetworkAreaRouteNextHopArgs) ToNetworkAreaRouteNextHopOutput() NetworkAreaRouteNextHopOutput { - return i.ToNetworkAreaRouteNextHopOutputWithContext(context.Background()) +func (i LoadbalancerListenerUdpArgs) ToLoadbalancerListenerUdpOutput() LoadbalancerListenerUdpOutput { + return i.ToLoadbalancerListenerUdpOutputWithContext(context.Background()) } -func (i NetworkAreaRouteNextHopArgs) ToNetworkAreaRouteNextHopOutputWithContext(ctx context.Context) NetworkAreaRouteNextHopOutput { - return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRouteNextHopOutput) +func (i LoadbalancerListenerUdpArgs) ToLoadbalancerListenerUdpOutputWithContext(ctx context.Context) LoadbalancerListenerUdpOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerUdpOutput) } -func (i NetworkAreaRouteNextHopArgs) ToNetworkAreaRouteNextHopPtrOutput() NetworkAreaRouteNextHopPtrOutput { - return i.ToNetworkAreaRouteNextHopPtrOutputWithContext(context.Background()) +func (i LoadbalancerListenerUdpArgs) ToLoadbalancerListenerUdpPtrOutput() LoadbalancerListenerUdpPtrOutput { + return i.ToLoadbalancerListenerUdpPtrOutputWithContext(context.Background()) } -func (i NetworkAreaRouteNextHopArgs) ToNetworkAreaRouteNextHopPtrOutputWithContext(ctx context.Context) NetworkAreaRouteNextHopPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRouteNextHopOutput).ToNetworkAreaRouteNextHopPtrOutputWithContext(ctx) +func (i LoadbalancerListenerUdpArgs) ToLoadbalancerListenerUdpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerUdpPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerUdpOutput).ToLoadbalancerListenerUdpPtrOutputWithContext(ctx) } -// NetworkAreaRouteNextHopPtrInput is an input type that accepts NetworkAreaRouteNextHopArgs, NetworkAreaRouteNextHopPtr and NetworkAreaRouteNextHopPtrOutput values. -// You can construct a concrete instance of `NetworkAreaRouteNextHopPtrInput` via: +// LoadbalancerListenerUdpPtrInput is an input type that accepts LoadbalancerListenerUdpArgs, LoadbalancerListenerUdpPtr and LoadbalancerListenerUdpPtrOutput values. +// You can construct a concrete instance of `LoadbalancerListenerUdpPtrInput` via: // -// NetworkAreaRouteNextHopArgs{...} +// LoadbalancerListenerUdpArgs{...} // // or: // // nil -type NetworkAreaRouteNextHopPtrInput interface { +type LoadbalancerListenerUdpPtrInput interface { pulumi.Input - ToNetworkAreaRouteNextHopPtrOutput() NetworkAreaRouteNextHopPtrOutput - ToNetworkAreaRouteNextHopPtrOutputWithContext(context.Context) NetworkAreaRouteNextHopPtrOutput + ToLoadbalancerListenerUdpPtrOutput() LoadbalancerListenerUdpPtrOutput + ToLoadbalancerListenerUdpPtrOutputWithContext(context.Context) LoadbalancerListenerUdpPtrOutput } -type networkAreaRouteNextHopPtrType NetworkAreaRouteNextHopArgs +type loadbalancerListenerUdpPtrType LoadbalancerListenerUdpArgs -func NetworkAreaRouteNextHopPtr(v *NetworkAreaRouteNextHopArgs) NetworkAreaRouteNextHopPtrInput { - return (*networkAreaRouteNextHopPtrType)(v) +func LoadbalancerListenerUdpPtr(v *LoadbalancerListenerUdpArgs) LoadbalancerListenerUdpPtrInput { + return (*loadbalancerListenerUdpPtrType)(v) } -func (*networkAreaRouteNextHopPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**NetworkAreaRouteNextHop)(nil)).Elem() +func (*loadbalancerListenerUdpPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerListenerUdp)(nil)).Elem() } -func (i *networkAreaRouteNextHopPtrType) ToNetworkAreaRouteNextHopPtrOutput() NetworkAreaRouteNextHopPtrOutput { - return i.ToNetworkAreaRouteNextHopPtrOutputWithContext(context.Background()) +func (i *loadbalancerListenerUdpPtrType) ToLoadbalancerListenerUdpPtrOutput() LoadbalancerListenerUdpPtrOutput { + return i.ToLoadbalancerListenerUdpPtrOutputWithContext(context.Background()) } -func (i *networkAreaRouteNextHopPtrType) ToNetworkAreaRouteNextHopPtrOutputWithContext(ctx context.Context) NetworkAreaRouteNextHopPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRouteNextHopPtrOutput) +func (i *loadbalancerListenerUdpPtrType) ToLoadbalancerListenerUdpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerUdpPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerUdpPtrOutput) } -type NetworkAreaRouteNextHopOutput struct{ *pulumi.OutputState } +type LoadbalancerListenerUdpOutput struct{ *pulumi.OutputState } -func (NetworkAreaRouteNextHopOutput) ElementType() reflect.Type { - return reflect.TypeOf((*NetworkAreaRouteNextHop)(nil)).Elem() +func (LoadbalancerListenerUdpOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerListenerUdp)(nil)).Elem() } -func (o NetworkAreaRouteNextHopOutput) ToNetworkAreaRouteNextHopOutput() NetworkAreaRouteNextHopOutput { +func (o LoadbalancerListenerUdpOutput) ToLoadbalancerListenerUdpOutput() LoadbalancerListenerUdpOutput { return o } -func (o NetworkAreaRouteNextHopOutput) ToNetworkAreaRouteNextHopOutputWithContext(ctx context.Context) NetworkAreaRouteNextHopOutput { +func (o LoadbalancerListenerUdpOutput) ToLoadbalancerListenerUdpOutputWithContext(ctx context.Context) LoadbalancerListenerUdpOutput { return o } -func (o NetworkAreaRouteNextHopOutput) ToNetworkAreaRouteNextHopPtrOutput() NetworkAreaRouteNextHopPtrOutput { - return o.ToNetworkAreaRouteNextHopPtrOutputWithContext(context.Background()) +func (o LoadbalancerListenerUdpOutput) ToLoadbalancerListenerUdpPtrOutput() LoadbalancerListenerUdpPtrOutput { + return o.ToLoadbalancerListenerUdpPtrOutputWithContext(context.Background()) } -func (o NetworkAreaRouteNextHopOutput) ToNetworkAreaRouteNextHopPtrOutputWithContext(ctx context.Context) NetworkAreaRouteNextHopPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkAreaRouteNextHop) *NetworkAreaRouteNextHop { +func (o LoadbalancerListenerUdpOutput) ToLoadbalancerListenerUdpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerUdpPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerListenerUdp) *LoadbalancerListenerUdp { return &v - }).(NetworkAreaRouteNextHopPtrOutput) -} - -// Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `ipv4` supported currently. -func (o NetworkAreaRouteNextHopOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v NetworkAreaRouteNextHop) string { return v.Type }).(pulumi.StringOutput) + }).(LoadbalancerListenerUdpPtrOutput) } -// Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported currently. -func (o NetworkAreaRouteNextHopOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v NetworkAreaRouteNextHop) *string { return v.Value }).(pulumi.StringPtrOutput) +// 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 +func (o LoadbalancerListenerUdpOutput) IdleTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadbalancerListenerUdp) *string { return v.IdleTimeout }).(pulumi.StringPtrOutput) } -type NetworkAreaRouteNextHopPtrOutput struct{ *pulumi.OutputState } +type LoadbalancerListenerUdpPtrOutput struct{ *pulumi.OutputState } -func (NetworkAreaRouteNextHopPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**NetworkAreaRouteNextHop)(nil)).Elem() +func (LoadbalancerListenerUdpPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerListenerUdp)(nil)).Elem() } -func (o NetworkAreaRouteNextHopPtrOutput) ToNetworkAreaRouteNextHopPtrOutput() NetworkAreaRouteNextHopPtrOutput { +func (o LoadbalancerListenerUdpPtrOutput) ToLoadbalancerListenerUdpPtrOutput() LoadbalancerListenerUdpPtrOutput { return o } -func (o NetworkAreaRouteNextHopPtrOutput) ToNetworkAreaRouteNextHopPtrOutputWithContext(ctx context.Context) NetworkAreaRouteNextHopPtrOutput { +func (o LoadbalancerListenerUdpPtrOutput) ToLoadbalancerListenerUdpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerUdpPtrOutput { return o } -func (o NetworkAreaRouteNextHopPtrOutput) Elem() NetworkAreaRouteNextHopOutput { - return o.ApplyT(func(v *NetworkAreaRouteNextHop) NetworkAreaRouteNextHop { +func (o LoadbalancerListenerUdpPtrOutput) Elem() LoadbalancerListenerUdpOutput { + return o.ApplyT(func(v *LoadbalancerListenerUdp) LoadbalancerListenerUdp { if v != nil { return *v } - var ret NetworkAreaRouteNextHop + var ret LoadbalancerListenerUdp return ret - }).(NetworkAreaRouteNextHopOutput) -} - -// Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `ipv4` supported currently. -func (o NetworkAreaRouteNextHopPtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *NetworkAreaRouteNextHop) *string { - if v == nil { - return nil - } - return &v.Type - }).(pulumi.StringPtrOutput) + }).(LoadbalancerListenerUdpOutput) } -// Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported currently. -func (o NetworkAreaRouteNextHopPtrOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v *NetworkAreaRouteNextHop) *string { +// 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 +func (o LoadbalancerListenerUdpPtrOutput) IdleTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LoadbalancerListenerUdp) *string { if v == nil { return nil } - return v.Value + return v.IdleTimeout }).(pulumi.StringPtrOutput) } -type ObservabilityAlertgroupRule struct { - // The name of the alert rule. Is the identifier and must be unique in the group. - Alert *string `pulumi:"alert"` - // A map of key:value. Annotations to add or overwrite for each alert - Annotations map[string]string `pulumi:"annotations"` - // The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. - Expression string `pulumi:"expression"` - // 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 - For *string `pulumi:"for"` - // A map of key:value. Labels to add or overwrite for each alert - Labels map[string]string `pulumi:"labels"` - // The name of the metric. It's the identifier and must be unique in the group. - Record *string `pulumi:"record"` +type LoadbalancerNetwork struct { + // Openstack network ID. + NetworkId string `pulumi:"networkId"` + // The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + Role string `pulumi:"role"` } -// ObservabilityAlertgroupRuleInput is an input type that accepts ObservabilityAlertgroupRuleArgs and ObservabilityAlertgroupRuleOutput values. -// You can construct a concrete instance of `ObservabilityAlertgroupRuleInput` via: +// LoadbalancerNetworkInput is an input type that accepts LoadbalancerNetworkArgs and LoadbalancerNetworkOutput values. +// You can construct a concrete instance of `LoadbalancerNetworkInput` via: // -// ObservabilityAlertgroupRuleArgs{...} -type ObservabilityAlertgroupRuleInput interface { +// LoadbalancerNetworkArgs{...} +type LoadbalancerNetworkInput interface { pulumi.Input - ToObservabilityAlertgroupRuleOutput() ObservabilityAlertgroupRuleOutput - ToObservabilityAlertgroupRuleOutputWithContext(context.Context) ObservabilityAlertgroupRuleOutput + ToLoadbalancerNetworkOutput() LoadbalancerNetworkOutput + ToLoadbalancerNetworkOutputWithContext(context.Context) LoadbalancerNetworkOutput } -type ObservabilityAlertgroupRuleArgs struct { - // The name of the alert rule. Is the identifier and must be unique in the group. - Alert pulumi.StringPtrInput `pulumi:"alert"` - // A map of key:value. Annotations to add or overwrite for each alert - Annotations pulumi.StringMapInput `pulumi:"annotations"` - // The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. - Expression pulumi.StringInput `pulumi:"expression"` - // 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 - For pulumi.StringPtrInput `pulumi:"for"` - // A map of key:value. Labels to add or overwrite for each alert - Labels pulumi.StringMapInput `pulumi:"labels"` - // The name of the metric. It's the identifier and must be unique in the group. - Record pulumi.StringPtrInput `pulumi:"record"` +type LoadbalancerNetworkArgs struct { + // Openstack network ID. + NetworkId pulumi.StringInput `pulumi:"networkId"` + // The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + Role pulumi.StringInput `pulumi:"role"` } -func (ObservabilityAlertgroupRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityAlertgroupRule)(nil)).Elem() +func (LoadbalancerNetworkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerNetwork)(nil)).Elem() } -func (i ObservabilityAlertgroupRuleArgs) ToObservabilityAlertgroupRuleOutput() ObservabilityAlertgroupRuleOutput { - return i.ToObservabilityAlertgroupRuleOutputWithContext(context.Background()) +func (i LoadbalancerNetworkArgs) ToLoadbalancerNetworkOutput() LoadbalancerNetworkOutput { + return i.ToLoadbalancerNetworkOutputWithContext(context.Background()) } -func (i ObservabilityAlertgroupRuleArgs) ToObservabilityAlertgroupRuleOutputWithContext(ctx context.Context) ObservabilityAlertgroupRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityAlertgroupRuleOutput) +func (i LoadbalancerNetworkArgs) ToLoadbalancerNetworkOutputWithContext(ctx context.Context) LoadbalancerNetworkOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerNetworkOutput) } -// ObservabilityAlertgroupRuleArrayInput is an input type that accepts ObservabilityAlertgroupRuleArray and ObservabilityAlertgroupRuleArrayOutput values. -// You can construct a concrete instance of `ObservabilityAlertgroupRuleArrayInput` via: +// LoadbalancerNetworkArrayInput is an input type that accepts LoadbalancerNetworkArray and LoadbalancerNetworkArrayOutput values. +// You can construct a concrete instance of `LoadbalancerNetworkArrayInput` via: // -// ObservabilityAlertgroupRuleArray{ ObservabilityAlertgroupRuleArgs{...} } -type ObservabilityAlertgroupRuleArrayInput interface { +// LoadbalancerNetworkArray{ LoadbalancerNetworkArgs{...} } +type LoadbalancerNetworkArrayInput interface { pulumi.Input - ToObservabilityAlertgroupRuleArrayOutput() ObservabilityAlertgroupRuleArrayOutput - ToObservabilityAlertgroupRuleArrayOutputWithContext(context.Context) ObservabilityAlertgroupRuleArrayOutput + ToLoadbalancerNetworkArrayOutput() LoadbalancerNetworkArrayOutput + ToLoadbalancerNetworkArrayOutputWithContext(context.Context) LoadbalancerNetworkArrayOutput } -type ObservabilityAlertgroupRuleArray []ObservabilityAlertgroupRuleInput +type LoadbalancerNetworkArray []LoadbalancerNetworkInput -func (ObservabilityAlertgroupRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObservabilityAlertgroupRule)(nil)).Elem() +func (LoadbalancerNetworkArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]LoadbalancerNetwork)(nil)).Elem() } -func (i ObservabilityAlertgroupRuleArray) ToObservabilityAlertgroupRuleArrayOutput() ObservabilityAlertgroupRuleArrayOutput { - return i.ToObservabilityAlertgroupRuleArrayOutputWithContext(context.Background()) +func (i LoadbalancerNetworkArray) ToLoadbalancerNetworkArrayOutput() LoadbalancerNetworkArrayOutput { + return i.ToLoadbalancerNetworkArrayOutputWithContext(context.Background()) } -func (i ObservabilityAlertgroupRuleArray) ToObservabilityAlertgroupRuleArrayOutputWithContext(ctx context.Context) ObservabilityAlertgroupRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityAlertgroupRuleArrayOutput) +func (i LoadbalancerNetworkArray) ToLoadbalancerNetworkArrayOutputWithContext(ctx context.Context) LoadbalancerNetworkArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerNetworkArrayOutput) } -type ObservabilityAlertgroupRuleOutput struct{ *pulumi.OutputState } +type LoadbalancerNetworkOutput struct{ *pulumi.OutputState } -func (ObservabilityAlertgroupRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityAlertgroupRule)(nil)).Elem() +func (LoadbalancerNetworkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerNetwork)(nil)).Elem() } -func (o ObservabilityAlertgroupRuleOutput) ToObservabilityAlertgroupRuleOutput() ObservabilityAlertgroupRuleOutput { +func (o LoadbalancerNetworkOutput) ToLoadbalancerNetworkOutput() LoadbalancerNetworkOutput { return o } -func (o ObservabilityAlertgroupRuleOutput) ToObservabilityAlertgroupRuleOutputWithContext(ctx context.Context) ObservabilityAlertgroupRuleOutput { +func (o LoadbalancerNetworkOutput) ToLoadbalancerNetworkOutputWithContext(ctx context.Context) LoadbalancerNetworkOutput { return o } -// The name of the alert rule. Is the identifier and must be unique in the group. -func (o ObservabilityAlertgroupRuleOutput) Alert() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityAlertgroupRule) *string { return v.Alert }).(pulumi.StringPtrOutput) -} - -// A map of key:value. Annotations to add or overwrite for each alert -func (o ObservabilityAlertgroupRuleOutput) Annotations() pulumi.StringMapOutput { - return o.ApplyT(func(v ObservabilityAlertgroupRule) map[string]string { return v.Annotations }).(pulumi.StringMapOutput) -} - -// The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. -func (o ObservabilityAlertgroupRuleOutput) Expression() pulumi.StringOutput { - return o.ApplyT(func(v ObservabilityAlertgroupRule) string { return v.Expression }).(pulumi.StringOutput) -} - -// 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 -func (o ObservabilityAlertgroupRuleOutput) For() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityAlertgroupRule) *string { return v.For }).(pulumi.StringPtrOutput) -} - -// A map of key:value. Labels to add or overwrite for each alert -func (o ObservabilityAlertgroupRuleOutput) Labels() pulumi.StringMapOutput { - return o.ApplyT(func(v ObservabilityAlertgroupRule) map[string]string { return v.Labels }).(pulumi.StringMapOutput) +// Openstack network ID. +func (o LoadbalancerNetworkOutput) NetworkId() pulumi.StringOutput { + return o.ApplyT(func(v LoadbalancerNetwork) string { return v.NetworkId }).(pulumi.StringOutput) } -// The name of the metric. It's the identifier and must be unique in the group. -func (o ObservabilityAlertgroupRuleOutput) Record() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityAlertgroupRule) *string { return v.Record }).(pulumi.StringPtrOutput) +// The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. +func (o LoadbalancerNetworkOutput) Role() pulumi.StringOutput { + return o.ApplyT(func(v LoadbalancerNetwork) string { return v.Role }).(pulumi.StringOutput) } -type ObservabilityAlertgroupRuleArrayOutput struct{ *pulumi.OutputState } +type LoadbalancerNetworkArrayOutput struct{ *pulumi.OutputState } -func (ObservabilityAlertgroupRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObservabilityAlertgroupRule)(nil)).Elem() +func (LoadbalancerNetworkArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]LoadbalancerNetwork)(nil)).Elem() } -func (o ObservabilityAlertgroupRuleArrayOutput) ToObservabilityAlertgroupRuleArrayOutput() ObservabilityAlertgroupRuleArrayOutput { +func (o LoadbalancerNetworkArrayOutput) ToLoadbalancerNetworkArrayOutput() LoadbalancerNetworkArrayOutput { return o } -func (o ObservabilityAlertgroupRuleArrayOutput) ToObservabilityAlertgroupRuleArrayOutputWithContext(ctx context.Context) ObservabilityAlertgroupRuleArrayOutput { +func (o LoadbalancerNetworkArrayOutput) ToLoadbalancerNetworkArrayOutputWithContext(ctx context.Context) LoadbalancerNetworkArrayOutput { return o } -func (o ObservabilityAlertgroupRuleArrayOutput) Index(i pulumi.IntInput) ObservabilityAlertgroupRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObservabilityAlertgroupRule { - return vs[0].([]ObservabilityAlertgroupRule)[vs[1].(int)] - }).(ObservabilityAlertgroupRuleOutput) +func (o LoadbalancerNetworkArrayOutput) Index(i pulumi.IntInput) LoadbalancerNetworkOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) LoadbalancerNetwork { + return vs[0].([]LoadbalancerNetwork)[vs[1].(int)] + }).(LoadbalancerNetworkOutput) } -type ObservabilityInstanceAlertConfig struct { - // 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. - Global *ObservabilityInstanceAlertConfigGlobal `pulumi:"global"` - // List of alert receivers. - Receivers []ObservabilityInstanceAlertConfigReceiver `pulumi:"receivers"` - // Route configuration for the alerts. - Route ObservabilityInstanceAlertConfigRoute `pulumi:"route"` +type LoadbalancerOptions struct { + // Load Balancer is accessible only from an IP address in this range. + Acls []string `pulumi:"acls"` + // We offer Load Balancer metrics observability via ARGUS or external solutions. Not changeable after creation. + Observability *LoadbalancerOptionsObservability `pulumi:"observability"` + // If true, Load Balancer is accessible only via a private network IP address. + PrivateNetworkOnly *bool `pulumi:"privateNetworkOnly"` } -// ObservabilityInstanceAlertConfigInput is an input type that accepts ObservabilityInstanceAlertConfigArgs and ObservabilityInstanceAlertConfigOutput values. -// You can construct a concrete instance of `ObservabilityInstanceAlertConfigInput` via: +// LoadbalancerOptionsInput is an input type that accepts LoadbalancerOptionsArgs and LoadbalancerOptionsOutput values. +// You can construct a concrete instance of `LoadbalancerOptionsInput` via: // -// ObservabilityInstanceAlertConfigArgs{...} -type ObservabilityInstanceAlertConfigInput interface { +// LoadbalancerOptionsArgs{...} +type LoadbalancerOptionsInput interface { pulumi.Input - ToObservabilityInstanceAlertConfigOutput() ObservabilityInstanceAlertConfigOutput - ToObservabilityInstanceAlertConfigOutputWithContext(context.Context) ObservabilityInstanceAlertConfigOutput + ToLoadbalancerOptionsOutput() LoadbalancerOptionsOutput + ToLoadbalancerOptionsOutputWithContext(context.Context) LoadbalancerOptionsOutput } -type ObservabilityInstanceAlertConfigArgs struct { - // 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. - Global ObservabilityInstanceAlertConfigGlobalPtrInput `pulumi:"global"` - // List of alert receivers. - Receivers ObservabilityInstanceAlertConfigReceiverArrayInput `pulumi:"receivers"` - // Route configuration for the alerts. - Route ObservabilityInstanceAlertConfigRouteInput `pulumi:"route"` +type LoadbalancerOptionsArgs struct { + // Load Balancer is accessible only from an IP address in this range. + Acls pulumi.StringArrayInput `pulumi:"acls"` + // We offer Load Balancer metrics observability via ARGUS or external solutions. Not changeable after creation. + Observability LoadbalancerOptionsObservabilityPtrInput `pulumi:"observability"` + // If true, Load Balancer is accessible only via a private network IP address. + PrivateNetworkOnly pulumi.BoolPtrInput `pulumi:"privateNetworkOnly"` } -func (ObservabilityInstanceAlertConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityInstanceAlertConfig)(nil)).Elem() +func (LoadbalancerOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerOptions)(nil)).Elem() } -func (i ObservabilityInstanceAlertConfigArgs) ToObservabilityInstanceAlertConfigOutput() ObservabilityInstanceAlertConfigOutput { - return i.ToObservabilityInstanceAlertConfigOutputWithContext(context.Background()) +func (i LoadbalancerOptionsArgs) ToLoadbalancerOptionsOutput() LoadbalancerOptionsOutput { + return i.ToLoadbalancerOptionsOutputWithContext(context.Background()) } -func (i ObservabilityInstanceAlertConfigArgs) ToObservabilityInstanceAlertConfigOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigOutput) +func (i LoadbalancerOptionsArgs) ToLoadbalancerOptionsOutputWithContext(ctx context.Context) LoadbalancerOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsOutput) } -func (i ObservabilityInstanceAlertConfigArgs) ToObservabilityInstanceAlertConfigPtrOutput() ObservabilityInstanceAlertConfigPtrOutput { - return i.ToObservabilityInstanceAlertConfigPtrOutputWithContext(context.Background()) +func (i LoadbalancerOptionsArgs) ToLoadbalancerOptionsPtrOutput() LoadbalancerOptionsPtrOutput { + return i.ToLoadbalancerOptionsPtrOutputWithContext(context.Background()) } -func (i ObservabilityInstanceAlertConfigArgs) ToObservabilityInstanceAlertConfigPtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigOutput).ToObservabilityInstanceAlertConfigPtrOutputWithContext(ctx) +func (i LoadbalancerOptionsArgs) ToLoadbalancerOptionsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsOutput).ToLoadbalancerOptionsPtrOutputWithContext(ctx) } -// ObservabilityInstanceAlertConfigPtrInput is an input type that accepts ObservabilityInstanceAlertConfigArgs, ObservabilityInstanceAlertConfigPtr and ObservabilityInstanceAlertConfigPtrOutput values. -// You can construct a concrete instance of `ObservabilityInstanceAlertConfigPtrInput` via: +// LoadbalancerOptionsPtrInput is an input type that accepts LoadbalancerOptionsArgs, LoadbalancerOptionsPtr and LoadbalancerOptionsPtrOutput values. +// You can construct a concrete instance of `LoadbalancerOptionsPtrInput` via: // -// ObservabilityInstanceAlertConfigArgs{...} +// LoadbalancerOptionsArgs{...} // // or: // // nil -type ObservabilityInstanceAlertConfigPtrInput interface { +type LoadbalancerOptionsPtrInput interface { pulumi.Input - ToObservabilityInstanceAlertConfigPtrOutput() ObservabilityInstanceAlertConfigPtrOutput - ToObservabilityInstanceAlertConfigPtrOutputWithContext(context.Context) ObservabilityInstanceAlertConfigPtrOutput + ToLoadbalancerOptionsPtrOutput() LoadbalancerOptionsPtrOutput + ToLoadbalancerOptionsPtrOutputWithContext(context.Context) LoadbalancerOptionsPtrOutput } -type observabilityInstanceAlertConfigPtrType ObservabilityInstanceAlertConfigArgs +type loadbalancerOptionsPtrType LoadbalancerOptionsArgs -func ObservabilityInstanceAlertConfigPtr(v *ObservabilityInstanceAlertConfigArgs) ObservabilityInstanceAlertConfigPtrInput { - return (*observabilityInstanceAlertConfigPtrType)(v) +func LoadbalancerOptionsPtr(v *LoadbalancerOptionsArgs) LoadbalancerOptionsPtrInput { + return (*loadbalancerOptionsPtrType)(v) } -func (*observabilityInstanceAlertConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ObservabilityInstanceAlertConfig)(nil)).Elem() +func (*loadbalancerOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerOptions)(nil)).Elem() } -func (i *observabilityInstanceAlertConfigPtrType) ToObservabilityInstanceAlertConfigPtrOutput() ObservabilityInstanceAlertConfigPtrOutput { - return i.ToObservabilityInstanceAlertConfigPtrOutputWithContext(context.Background()) +func (i *loadbalancerOptionsPtrType) ToLoadbalancerOptionsPtrOutput() LoadbalancerOptionsPtrOutput { + return i.ToLoadbalancerOptionsPtrOutputWithContext(context.Background()) } -func (i *observabilityInstanceAlertConfigPtrType) ToObservabilityInstanceAlertConfigPtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigPtrOutput) +func (i *loadbalancerOptionsPtrType) ToLoadbalancerOptionsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsPtrOutput) } -type ObservabilityInstanceAlertConfigOutput struct{ *pulumi.OutputState } +type LoadbalancerOptionsOutput struct{ *pulumi.OutputState } -func (ObservabilityInstanceAlertConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityInstanceAlertConfig)(nil)).Elem() +func (LoadbalancerOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerOptions)(nil)).Elem() } -func (o ObservabilityInstanceAlertConfigOutput) ToObservabilityInstanceAlertConfigOutput() ObservabilityInstanceAlertConfigOutput { +func (o LoadbalancerOptionsOutput) ToLoadbalancerOptionsOutput() LoadbalancerOptionsOutput { return o } -func (o ObservabilityInstanceAlertConfigOutput) ToObservabilityInstanceAlertConfigOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigOutput { +func (o LoadbalancerOptionsOutput) ToLoadbalancerOptionsOutputWithContext(ctx context.Context) LoadbalancerOptionsOutput { return o } -func (o ObservabilityInstanceAlertConfigOutput) ToObservabilityInstanceAlertConfigPtrOutput() ObservabilityInstanceAlertConfigPtrOutput { - return o.ToObservabilityInstanceAlertConfigPtrOutputWithContext(context.Background()) +func (o LoadbalancerOptionsOutput) ToLoadbalancerOptionsPtrOutput() LoadbalancerOptionsPtrOutput { + return o.ToLoadbalancerOptionsPtrOutputWithContext(context.Background()) } -func (o ObservabilityInstanceAlertConfigOutput) ToObservabilityInstanceAlertConfigPtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ObservabilityInstanceAlertConfig) *ObservabilityInstanceAlertConfig { +func (o LoadbalancerOptionsOutput) ToLoadbalancerOptionsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerOptions) *LoadbalancerOptions { return &v - }).(ObservabilityInstanceAlertConfigPtrOutput) + }).(LoadbalancerOptionsPtrOutput) } -// 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. -func (o ObservabilityInstanceAlertConfigOutput) Global() ObservabilityInstanceAlertConfigGlobalPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfig) *ObservabilityInstanceAlertConfigGlobal { return v.Global }).(ObservabilityInstanceAlertConfigGlobalPtrOutput) +// Load Balancer is accessible only from an IP address in this range. +func (o LoadbalancerOptionsOutput) Acls() pulumi.StringArrayOutput { + return o.ApplyT(func(v LoadbalancerOptions) []string { return v.Acls }).(pulumi.StringArrayOutput) } -// List of alert receivers. -func (o ObservabilityInstanceAlertConfigOutput) Receivers() ObservabilityInstanceAlertConfigReceiverArrayOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfig) []ObservabilityInstanceAlertConfigReceiver { - return v.Receivers - }).(ObservabilityInstanceAlertConfigReceiverArrayOutput) +// We offer Load Balancer metrics observability via ARGUS or external solutions. Not changeable after creation. +func (o LoadbalancerOptionsOutput) Observability() LoadbalancerOptionsObservabilityPtrOutput { + return o.ApplyT(func(v LoadbalancerOptions) *LoadbalancerOptionsObservability { return v.Observability }).(LoadbalancerOptionsObservabilityPtrOutput) } -// Route configuration for the alerts. -func (o ObservabilityInstanceAlertConfigOutput) Route() ObservabilityInstanceAlertConfigRouteOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfig) ObservabilityInstanceAlertConfigRoute { return v.Route }).(ObservabilityInstanceAlertConfigRouteOutput) +// If true, Load Balancer is accessible only via a private network IP address. +func (o LoadbalancerOptionsOutput) PrivateNetworkOnly() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LoadbalancerOptions) *bool { return v.PrivateNetworkOnly }).(pulumi.BoolPtrOutput) } -type ObservabilityInstanceAlertConfigPtrOutput struct{ *pulumi.OutputState } +type LoadbalancerOptionsPtrOutput struct{ *pulumi.OutputState } -func (ObservabilityInstanceAlertConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ObservabilityInstanceAlertConfig)(nil)).Elem() +func (LoadbalancerOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerOptions)(nil)).Elem() } -func (o ObservabilityInstanceAlertConfigPtrOutput) ToObservabilityInstanceAlertConfigPtrOutput() ObservabilityInstanceAlertConfigPtrOutput { +func (o LoadbalancerOptionsPtrOutput) ToLoadbalancerOptionsPtrOutput() LoadbalancerOptionsPtrOutput { return o } -func (o ObservabilityInstanceAlertConfigPtrOutput) ToObservabilityInstanceAlertConfigPtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigPtrOutput { +func (o LoadbalancerOptionsPtrOutput) ToLoadbalancerOptionsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsPtrOutput { return o } -func (o ObservabilityInstanceAlertConfigPtrOutput) Elem() ObservabilityInstanceAlertConfigOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfig) ObservabilityInstanceAlertConfig { +func (o LoadbalancerOptionsPtrOutput) Elem() LoadbalancerOptionsOutput { + return o.ApplyT(func(v *LoadbalancerOptions) LoadbalancerOptions { if v != nil { return *v } - var ret ObservabilityInstanceAlertConfig + var ret LoadbalancerOptions return ret - }).(ObservabilityInstanceAlertConfigOutput) + }).(LoadbalancerOptionsOutput) } -// 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. -func (o ObservabilityInstanceAlertConfigPtrOutput) Global() ObservabilityInstanceAlertConfigGlobalPtrOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfig) *ObservabilityInstanceAlertConfigGlobal { +// Load Balancer is accessible only from an IP address in this range. +func (o LoadbalancerOptionsPtrOutput) Acls() pulumi.StringArrayOutput { + return o.ApplyT(func(v *LoadbalancerOptions) []string { if v == nil { return nil } - return v.Global - }).(ObservabilityInstanceAlertConfigGlobalPtrOutput) + return v.Acls + }).(pulumi.StringArrayOutput) } -// List of alert receivers. -func (o ObservabilityInstanceAlertConfigPtrOutput) Receivers() ObservabilityInstanceAlertConfigReceiverArrayOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfig) []ObservabilityInstanceAlertConfigReceiver { +// We offer Load Balancer metrics observability via ARGUS or external solutions. Not changeable after creation. +func (o LoadbalancerOptionsPtrOutput) Observability() LoadbalancerOptionsObservabilityPtrOutput { + return o.ApplyT(func(v *LoadbalancerOptions) *LoadbalancerOptionsObservability { if v == nil { return nil } - return v.Receivers - }).(ObservabilityInstanceAlertConfigReceiverArrayOutput) + return v.Observability + }).(LoadbalancerOptionsObservabilityPtrOutput) } -// Route configuration for the alerts. -func (o ObservabilityInstanceAlertConfigPtrOutput) Route() ObservabilityInstanceAlertConfigRoutePtrOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfig) *ObservabilityInstanceAlertConfigRoute { +// If true, Load Balancer is accessible only via a private network IP address. +func (o LoadbalancerOptionsPtrOutput) PrivateNetworkOnly() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LoadbalancerOptions) *bool { if v == nil { return nil } - return &v.Route - }).(ObservabilityInstanceAlertConfigRoutePtrOutput) + return v.PrivateNetworkOnly + }).(pulumi.BoolPtrOutput) } -type ObservabilityInstanceAlertConfigGlobal struct { - // The API key for OpsGenie. - OpsgenieApiKey *string `pulumi:"opsgenieApiKey"` - // The host to send OpsGenie API requests to. Must be a valid URL - OpsgenieApiUrl *string `pulumi:"opsgenieApiUrl"` - // 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. - ResolveTimeout *string `pulumi:"resolveTimeout"` - // SMTP authentication information. Must be a valid email address - SmtpAuthIdentity *string `pulumi:"smtpAuthIdentity"` - // SMTP Auth using LOGIN and PLAIN. - SmtpAuthPassword *string `pulumi:"smtpAuthPassword"` - // SMTP Auth using CRAM-MD5, LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server. - SmtpAuthUsername *string `pulumi:"smtpAuthUsername"` - // The default SMTP From header field. Must be a valid email address - SmtpFrom *string `pulumi:"smtpFrom"` - // 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). - SmtpSmartHost *string `pulumi:"smtpSmartHost"` +type LoadbalancerOptionsObservability struct { + // Observability logs configuration. Not changeable after creation. + Logs *LoadbalancerOptionsObservabilityLogs `pulumi:"logs"` + // Observability metrics configuration. Not changeable after creation. + Metrics *LoadbalancerOptionsObservabilityMetrics `pulumi:"metrics"` } -// ObservabilityInstanceAlertConfigGlobalInput is an input type that accepts ObservabilityInstanceAlertConfigGlobalArgs and ObservabilityInstanceAlertConfigGlobalOutput values. -// You can construct a concrete instance of `ObservabilityInstanceAlertConfigGlobalInput` via: +// LoadbalancerOptionsObservabilityInput is an input type that accepts LoadbalancerOptionsObservabilityArgs and LoadbalancerOptionsObservabilityOutput values. +// You can construct a concrete instance of `LoadbalancerOptionsObservabilityInput` via: // -// ObservabilityInstanceAlertConfigGlobalArgs{...} -type ObservabilityInstanceAlertConfigGlobalInput interface { +// LoadbalancerOptionsObservabilityArgs{...} +type LoadbalancerOptionsObservabilityInput interface { pulumi.Input - ToObservabilityInstanceAlertConfigGlobalOutput() ObservabilityInstanceAlertConfigGlobalOutput - ToObservabilityInstanceAlertConfigGlobalOutputWithContext(context.Context) ObservabilityInstanceAlertConfigGlobalOutput + ToLoadbalancerOptionsObservabilityOutput() LoadbalancerOptionsObservabilityOutput + ToLoadbalancerOptionsObservabilityOutputWithContext(context.Context) LoadbalancerOptionsObservabilityOutput } -type ObservabilityInstanceAlertConfigGlobalArgs struct { - // The API key for OpsGenie. - OpsgenieApiKey pulumi.StringPtrInput `pulumi:"opsgenieApiKey"` - // The host to send OpsGenie API requests to. Must be a valid URL - OpsgenieApiUrl pulumi.StringPtrInput `pulumi:"opsgenieApiUrl"` - // 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. - ResolveTimeout pulumi.StringPtrInput `pulumi:"resolveTimeout"` - // SMTP authentication information. Must be a valid email address - SmtpAuthIdentity pulumi.StringPtrInput `pulumi:"smtpAuthIdentity"` - // SMTP Auth using LOGIN and PLAIN. - SmtpAuthPassword pulumi.StringPtrInput `pulumi:"smtpAuthPassword"` - // SMTP Auth using CRAM-MD5, LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server. - SmtpAuthUsername pulumi.StringPtrInput `pulumi:"smtpAuthUsername"` - // The default SMTP From header field. Must be a valid email address - SmtpFrom pulumi.StringPtrInput `pulumi:"smtpFrom"` - // 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). - SmtpSmartHost pulumi.StringPtrInput `pulumi:"smtpSmartHost"` +type LoadbalancerOptionsObservabilityArgs struct { + // Observability logs configuration. Not changeable after creation. + Logs LoadbalancerOptionsObservabilityLogsPtrInput `pulumi:"logs"` + // Observability metrics configuration. Not changeable after creation. + Metrics LoadbalancerOptionsObservabilityMetricsPtrInput `pulumi:"metrics"` } -func (ObservabilityInstanceAlertConfigGlobalArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityInstanceAlertConfigGlobal)(nil)).Elem() +func (LoadbalancerOptionsObservabilityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerOptionsObservability)(nil)).Elem() } -func (i ObservabilityInstanceAlertConfigGlobalArgs) ToObservabilityInstanceAlertConfigGlobalOutput() ObservabilityInstanceAlertConfigGlobalOutput { - return i.ToObservabilityInstanceAlertConfigGlobalOutputWithContext(context.Background()) +func (i LoadbalancerOptionsObservabilityArgs) ToLoadbalancerOptionsObservabilityOutput() LoadbalancerOptionsObservabilityOutput { + return i.ToLoadbalancerOptionsObservabilityOutputWithContext(context.Background()) } -func (i ObservabilityInstanceAlertConfigGlobalArgs) ToObservabilityInstanceAlertConfigGlobalOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigGlobalOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigGlobalOutput) +func (i LoadbalancerOptionsObservabilityArgs) ToLoadbalancerOptionsObservabilityOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityOutput) } -func (i ObservabilityInstanceAlertConfigGlobalArgs) ToObservabilityInstanceAlertConfigGlobalPtrOutput() ObservabilityInstanceAlertConfigGlobalPtrOutput { - return i.ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(context.Background()) +func (i LoadbalancerOptionsObservabilityArgs) ToLoadbalancerOptionsObservabilityPtrOutput() LoadbalancerOptionsObservabilityPtrOutput { + return i.ToLoadbalancerOptionsObservabilityPtrOutputWithContext(context.Background()) } -func (i ObservabilityInstanceAlertConfigGlobalArgs) ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigGlobalPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigGlobalOutput).ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(ctx) +func (i LoadbalancerOptionsObservabilityArgs) ToLoadbalancerOptionsObservabilityPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityOutput).ToLoadbalancerOptionsObservabilityPtrOutputWithContext(ctx) } -// ObservabilityInstanceAlertConfigGlobalPtrInput is an input type that accepts ObservabilityInstanceAlertConfigGlobalArgs, ObservabilityInstanceAlertConfigGlobalPtr and ObservabilityInstanceAlertConfigGlobalPtrOutput values. -// You can construct a concrete instance of `ObservabilityInstanceAlertConfigGlobalPtrInput` via: -// -// ObservabilityInstanceAlertConfigGlobalArgs{...} +// LoadbalancerOptionsObservabilityPtrInput is an input type that accepts LoadbalancerOptionsObservabilityArgs, LoadbalancerOptionsObservabilityPtr and LoadbalancerOptionsObservabilityPtrOutput values. +// You can construct a concrete instance of `LoadbalancerOptionsObservabilityPtrInput` via: +// +// LoadbalancerOptionsObservabilityArgs{...} // // or: // // nil -type ObservabilityInstanceAlertConfigGlobalPtrInput interface { +type LoadbalancerOptionsObservabilityPtrInput interface { pulumi.Input - ToObservabilityInstanceAlertConfigGlobalPtrOutput() ObservabilityInstanceAlertConfigGlobalPtrOutput - ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(context.Context) ObservabilityInstanceAlertConfigGlobalPtrOutput + ToLoadbalancerOptionsObservabilityPtrOutput() LoadbalancerOptionsObservabilityPtrOutput + ToLoadbalancerOptionsObservabilityPtrOutputWithContext(context.Context) LoadbalancerOptionsObservabilityPtrOutput } -type observabilityInstanceAlertConfigGlobalPtrType ObservabilityInstanceAlertConfigGlobalArgs +type loadbalancerOptionsObservabilityPtrType LoadbalancerOptionsObservabilityArgs -func ObservabilityInstanceAlertConfigGlobalPtr(v *ObservabilityInstanceAlertConfigGlobalArgs) ObservabilityInstanceAlertConfigGlobalPtrInput { - return (*observabilityInstanceAlertConfigGlobalPtrType)(v) +func LoadbalancerOptionsObservabilityPtr(v *LoadbalancerOptionsObservabilityArgs) LoadbalancerOptionsObservabilityPtrInput { + return (*loadbalancerOptionsObservabilityPtrType)(v) } -func (*observabilityInstanceAlertConfigGlobalPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ObservabilityInstanceAlertConfigGlobal)(nil)).Elem() +func (*loadbalancerOptionsObservabilityPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerOptionsObservability)(nil)).Elem() } -func (i *observabilityInstanceAlertConfigGlobalPtrType) ToObservabilityInstanceAlertConfigGlobalPtrOutput() ObservabilityInstanceAlertConfigGlobalPtrOutput { - return i.ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(context.Background()) +func (i *loadbalancerOptionsObservabilityPtrType) ToLoadbalancerOptionsObservabilityPtrOutput() LoadbalancerOptionsObservabilityPtrOutput { + return i.ToLoadbalancerOptionsObservabilityPtrOutputWithContext(context.Background()) } -func (i *observabilityInstanceAlertConfigGlobalPtrType) ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigGlobalPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigGlobalPtrOutput) +func (i *loadbalancerOptionsObservabilityPtrType) ToLoadbalancerOptionsObservabilityPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityPtrOutput) } -type ObservabilityInstanceAlertConfigGlobalOutput struct{ *pulumi.OutputState } +type LoadbalancerOptionsObservabilityOutput struct{ *pulumi.OutputState } -func (ObservabilityInstanceAlertConfigGlobalOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityInstanceAlertConfigGlobal)(nil)).Elem() +func (LoadbalancerOptionsObservabilityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerOptionsObservability)(nil)).Elem() } -func (o ObservabilityInstanceAlertConfigGlobalOutput) ToObservabilityInstanceAlertConfigGlobalOutput() ObservabilityInstanceAlertConfigGlobalOutput { +func (o LoadbalancerOptionsObservabilityOutput) ToLoadbalancerOptionsObservabilityOutput() LoadbalancerOptionsObservabilityOutput { return o } -func (o ObservabilityInstanceAlertConfigGlobalOutput) ToObservabilityInstanceAlertConfigGlobalOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigGlobalOutput { +func (o LoadbalancerOptionsObservabilityOutput) ToLoadbalancerOptionsObservabilityOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityOutput { return o } -func (o ObservabilityInstanceAlertConfigGlobalOutput) ToObservabilityInstanceAlertConfigGlobalPtrOutput() ObservabilityInstanceAlertConfigGlobalPtrOutput { - return o.ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(context.Background()) +func (o LoadbalancerOptionsObservabilityOutput) ToLoadbalancerOptionsObservabilityPtrOutput() LoadbalancerOptionsObservabilityPtrOutput { + return o.ToLoadbalancerOptionsObservabilityPtrOutputWithContext(context.Background()) } -func (o ObservabilityInstanceAlertConfigGlobalOutput) ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigGlobalPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ObservabilityInstanceAlertConfigGlobal) *ObservabilityInstanceAlertConfigGlobal { +func (o LoadbalancerOptionsObservabilityOutput) ToLoadbalancerOptionsObservabilityPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerOptionsObservability) *LoadbalancerOptionsObservability { return &v - }).(ObservabilityInstanceAlertConfigGlobalPtrOutput) -} - -// The API key for OpsGenie. -func (o ObservabilityInstanceAlertConfigGlobalOutput) OpsgenieApiKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigGlobal) *string { return v.OpsgenieApiKey }).(pulumi.StringPtrOutput) -} - -// The host to send OpsGenie API requests to. Must be a valid URL -func (o ObservabilityInstanceAlertConfigGlobalOutput) OpsgenieApiUrl() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigGlobal) *string { return v.OpsgenieApiUrl }).(pulumi.StringPtrOutput) -} - -// 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. -func (o ObservabilityInstanceAlertConfigGlobalOutput) ResolveTimeout() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigGlobal) *string { return v.ResolveTimeout }).(pulumi.StringPtrOutput) -} - -// SMTP authentication information. Must be a valid email address -func (o ObservabilityInstanceAlertConfigGlobalOutput) SmtpAuthIdentity() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigGlobal) *string { return v.SmtpAuthIdentity }).(pulumi.StringPtrOutput) -} - -// SMTP Auth using LOGIN and PLAIN. -func (o ObservabilityInstanceAlertConfigGlobalOutput) SmtpAuthPassword() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigGlobal) *string { return v.SmtpAuthPassword }).(pulumi.StringPtrOutput) -} - -// SMTP Auth using CRAM-MD5, LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server. -func (o ObservabilityInstanceAlertConfigGlobalOutput) SmtpAuthUsername() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigGlobal) *string { return v.SmtpAuthUsername }).(pulumi.StringPtrOutput) + }).(LoadbalancerOptionsObservabilityPtrOutput) } -// The default SMTP From header field. Must be a valid email address -func (o ObservabilityInstanceAlertConfigGlobalOutput) SmtpFrom() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigGlobal) *string { return v.SmtpFrom }).(pulumi.StringPtrOutput) +// Observability logs configuration. Not changeable after creation. +func (o LoadbalancerOptionsObservabilityOutput) Logs() LoadbalancerOptionsObservabilityLogsPtrOutput { + return o.ApplyT(func(v LoadbalancerOptionsObservability) *LoadbalancerOptionsObservabilityLogs { return v.Logs }).(LoadbalancerOptionsObservabilityLogsPtrOutput) } -// 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). -func (o ObservabilityInstanceAlertConfigGlobalOutput) SmtpSmartHost() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigGlobal) *string { return v.SmtpSmartHost }).(pulumi.StringPtrOutput) +// Observability metrics configuration. Not changeable after creation. +func (o LoadbalancerOptionsObservabilityOutput) Metrics() LoadbalancerOptionsObservabilityMetricsPtrOutput { + return o.ApplyT(func(v LoadbalancerOptionsObservability) *LoadbalancerOptionsObservabilityMetrics { return v.Metrics }).(LoadbalancerOptionsObservabilityMetricsPtrOutput) } -type ObservabilityInstanceAlertConfigGlobalPtrOutput struct{ *pulumi.OutputState } +type LoadbalancerOptionsObservabilityPtrOutput struct{ *pulumi.OutputState } -func (ObservabilityInstanceAlertConfigGlobalPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ObservabilityInstanceAlertConfigGlobal)(nil)).Elem() +func (LoadbalancerOptionsObservabilityPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerOptionsObservability)(nil)).Elem() } -func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) ToObservabilityInstanceAlertConfigGlobalPtrOutput() ObservabilityInstanceAlertConfigGlobalPtrOutput { +func (o LoadbalancerOptionsObservabilityPtrOutput) ToLoadbalancerOptionsObservabilityPtrOutput() LoadbalancerOptionsObservabilityPtrOutput { return o } -func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigGlobalPtrOutput { +func (o LoadbalancerOptionsObservabilityPtrOutput) ToLoadbalancerOptionsObservabilityPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityPtrOutput { return o } -func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) Elem() ObservabilityInstanceAlertConfigGlobalOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) ObservabilityInstanceAlertConfigGlobal { +func (o LoadbalancerOptionsObservabilityPtrOutput) Elem() LoadbalancerOptionsObservabilityOutput { + return o.ApplyT(func(v *LoadbalancerOptionsObservability) LoadbalancerOptionsObservability { if v != nil { return *v } - var ret ObservabilityInstanceAlertConfigGlobal + var ret LoadbalancerOptionsObservability return ret - }).(ObservabilityInstanceAlertConfigGlobalOutput) + }).(LoadbalancerOptionsObservabilityOutput) } -// The API key for OpsGenie. -func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) OpsgenieApiKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) *string { +// Observability logs configuration. Not changeable after creation. +func (o LoadbalancerOptionsObservabilityPtrOutput) Logs() LoadbalancerOptionsObservabilityLogsPtrOutput { + return o.ApplyT(func(v *LoadbalancerOptionsObservability) *LoadbalancerOptionsObservabilityLogs { if v == nil { return nil } - return v.OpsgenieApiKey - }).(pulumi.StringPtrOutput) + return v.Logs + }).(LoadbalancerOptionsObservabilityLogsPtrOutput) } -// The host to send OpsGenie API requests to. Must be a valid URL -func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) OpsgenieApiUrl() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) *string { +// Observability metrics configuration. Not changeable after creation. +func (o LoadbalancerOptionsObservabilityPtrOutput) Metrics() LoadbalancerOptionsObservabilityMetricsPtrOutput { + return o.ApplyT(func(v *LoadbalancerOptionsObservability) *LoadbalancerOptionsObservabilityMetrics { if v == nil { return nil } - return v.OpsgenieApiUrl - }).(pulumi.StringPtrOutput) + return v.Metrics + }).(LoadbalancerOptionsObservabilityMetricsPtrOutput) } -// 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. -func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) ResolveTimeout() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) *string { - if v == nil { - return nil - } - return v.ResolveTimeout - }).(pulumi.StringPtrOutput) +type LoadbalancerOptionsObservabilityLogs struct { + // Credentials reference for logs. Not changeable after creation. + CredentialsRef *string `pulumi:"credentialsRef"` + // Credentials reference for logs. Not changeable after creation. + PushUrl *string `pulumi:"pushUrl"` } -// SMTP authentication information. Must be a valid email address -func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) SmtpAuthIdentity() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) *string { - if v == nil { - return nil - } - return v.SmtpAuthIdentity - }).(pulumi.StringPtrOutput) +// LoadbalancerOptionsObservabilityLogsInput is an input type that accepts LoadbalancerOptionsObservabilityLogsArgs and LoadbalancerOptionsObservabilityLogsOutput values. +// You can construct a concrete instance of `LoadbalancerOptionsObservabilityLogsInput` via: +// +// LoadbalancerOptionsObservabilityLogsArgs{...} +type LoadbalancerOptionsObservabilityLogsInput interface { + pulumi.Input + + ToLoadbalancerOptionsObservabilityLogsOutput() LoadbalancerOptionsObservabilityLogsOutput + ToLoadbalancerOptionsObservabilityLogsOutputWithContext(context.Context) LoadbalancerOptionsObservabilityLogsOutput } -// SMTP Auth using LOGIN and PLAIN. -func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) SmtpAuthPassword() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) *string { - if v == nil { - return nil - } - return v.SmtpAuthPassword - }).(pulumi.StringPtrOutput) +type LoadbalancerOptionsObservabilityLogsArgs struct { + // Credentials reference for logs. Not changeable after creation. + CredentialsRef pulumi.StringPtrInput `pulumi:"credentialsRef"` + // Credentials reference for logs. Not changeable after creation. + PushUrl pulumi.StringPtrInput `pulumi:"pushUrl"` } -// SMTP Auth using CRAM-MD5, LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server. -func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) SmtpAuthUsername() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) *string { - if v == nil { - return nil - } - return v.SmtpAuthUsername - }).(pulumi.StringPtrOutput) +func (LoadbalancerOptionsObservabilityLogsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerOptionsObservabilityLogs)(nil)).Elem() } -// The default SMTP From header field. Must be a valid email address -func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) SmtpFrom() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) *string { - if v == nil { - return nil - } - return v.SmtpFrom - }).(pulumi.StringPtrOutput) +func (i LoadbalancerOptionsObservabilityLogsArgs) ToLoadbalancerOptionsObservabilityLogsOutput() LoadbalancerOptionsObservabilityLogsOutput { + return i.ToLoadbalancerOptionsObservabilityLogsOutputWithContext(context.Background()) } -// 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). -func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) SmtpSmartHost() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) *string { - if v == nil { - return nil - } - return v.SmtpSmartHost - }).(pulumi.StringPtrOutput) +func (i LoadbalancerOptionsObservabilityLogsArgs) ToLoadbalancerOptionsObservabilityLogsOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityLogsOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityLogsOutput) } -type ObservabilityInstanceAlertConfigReceiver struct { - // List of email configurations. - EmailConfigs []ObservabilityInstanceAlertConfigReceiverEmailConfig `pulumi:"emailConfigs"` - // Name of the receiver. - Name string `pulumi:"name"` - // List of OpsGenie configurations. - OpsgenieConfigs []ObservabilityInstanceAlertConfigReceiverOpsgenieConfig `pulumi:"opsgenieConfigs"` - // List of Webhooks configurations. - WebhooksConfigs []ObservabilityInstanceAlertConfigReceiverWebhooksConfig `pulumi:"webhooksConfigs"` +func (i LoadbalancerOptionsObservabilityLogsArgs) ToLoadbalancerOptionsObservabilityLogsPtrOutput() LoadbalancerOptionsObservabilityLogsPtrOutput { + return i.ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(context.Background()) } -// ObservabilityInstanceAlertConfigReceiverInput is an input type that accepts ObservabilityInstanceAlertConfigReceiverArgs and ObservabilityInstanceAlertConfigReceiverOutput values. -// You can construct a concrete instance of `ObservabilityInstanceAlertConfigReceiverInput` via: +func (i LoadbalancerOptionsObservabilityLogsArgs) ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityLogsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityLogsOutput).ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(ctx) +} + +// LoadbalancerOptionsObservabilityLogsPtrInput is an input type that accepts LoadbalancerOptionsObservabilityLogsArgs, LoadbalancerOptionsObservabilityLogsPtr and LoadbalancerOptionsObservabilityLogsPtrOutput values. +// You can construct a concrete instance of `LoadbalancerOptionsObservabilityLogsPtrInput` via: // -// ObservabilityInstanceAlertConfigReceiverArgs{...} -type ObservabilityInstanceAlertConfigReceiverInput interface { +// LoadbalancerOptionsObservabilityLogsArgs{...} +// +// or: +// +// nil +type LoadbalancerOptionsObservabilityLogsPtrInput interface { pulumi.Input - ToObservabilityInstanceAlertConfigReceiverOutput() ObservabilityInstanceAlertConfigReceiverOutput - ToObservabilityInstanceAlertConfigReceiverOutputWithContext(context.Context) ObservabilityInstanceAlertConfigReceiverOutput + ToLoadbalancerOptionsObservabilityLogsPtrOutput() LoadbalancerOptionsObservabilityLogsPtrOutput + ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(context.Context) LoadbalancerOptionsObservabilityLogsPtrOutput } -type ObservabilityInstanceAlertConfigReceiverArgs struct { - // List of email configurations. - EmailConfigs ObservabilityInstanceAlertConfigReceiverEmailConfigArrayInput `pulumi:"emailConfigs"` - // Name of the receiver. - Name pulumi.StringInput `pulumi:"name"` - // List of OpsGenie configurations. - OpsgenieConfigs ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayInput `pulumi:"opsgenieConfigs"` - // List of Webhooks configurations. - WebhooksConfigs ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayInput `pulumi:"webhooksConfigs"` -} +type loadbalancerOptionsObservabilityLogsPtrType LoadbalancerOptionsObservabilityLogsArgs -func (ObservabilityInstanceAlertConfigReceiverArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityInstanceAlertConfigReceiver)(nil)).Elem() +func LoadbalancerOptionsObservabilityLogsPtr(v *LoadbalancerOptionsObservabilityLogsArgs) LoadbalancerOptionsObservabilityLogsPtrInput { + return (*loadbalancerOptionsObservabilityLogsPtrType)(v) } -func (i ObservabilityInstanceAlertConfigReceiverArgs) ToObservabilityInstanceAlertConfigReceiverOutput() ObservabilityInstanceAlertConfigReceiverOutput { - return i.ToObservabilityInstanceAlertConfigReceiverOutputWithContext(context.Background()) +func (*loadbalancerOptionsObservabilityLogsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerOptionsObservabilityLogs)(nil)).Elem() } -func (i ObservabilityInstanceAlertConfigReceiverArgs) ToObservabilityInstanceAlertConfigReceiverOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigReceiverOutput) +func (i *loadbalancerOptionsObservabilityLogsPtrType) ToLoadbalancerOptionsObservabilityLogsPtrOutput() LoadbalancerOptionsObservabilityLogsPtrOutput { + return i.ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(context.Background()) } -// ObservabilityInstanceAlertConfigReceiverArrayInput is an input type that accepts ObservabilityInstanceAlertConfigReceiverArray and ObservabilityInstanceAlertConfigReceiverArrayOutput values. -// You can construct a concrete instance of `ObservabilityInstanceAlertConfigReceiverArrayInput` via: -// -// ObservabilityInstanceAlertConfigReceiverArray{ ObservabilityInstanceAlertConfigReceiverArgs{...} } -type ObservabilityInstanceAlertConfigReceiverArrayInput interface { - pulumi.Input - - ToObservabilityInstanceAlertConfigReceiverArrayOutput() ObservabilityInstanceAlertConfigReceiverArrayOutput - ToObservabilityInstanceAlertConfigReceiverArrayOutputWithContext(context.Context) ObservabilityInstanceAlertConfigReceiverArrayOutput -} - -type ObservabilityInstanceAlertConfigReceiverArray []ObservabilityInstanceAlertConfigReceiverInput - -func (ObservabilityInstanceAlertConfigReceiverArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigReceiver)(nil)).Elem() -} - -func (i ObservabilityInstanceAlertConfigReceiverArray) ToObservabilityInstanceAlertConfigReceiverArrayOutput() ObservabilityInstanceAlertConfigReceiverArrayOutput { - return i.ToObservabilityInstanceAlertConfigReceiverArrayOutputWithContext(context.Background()) -} - -func (i ObservabilityInstanceAlertConfigReceiverArray) ToObservabilityInstanceAlertConfigReceiverArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigReceiverArrayOutput) +func (i *loadbalancerOptionsObservabilityLogsPtrType) ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityLogsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityLogsPtrOutput) } -type ObservabilityInstanceAlertConfigReceiverOutput struct{ *pulumi.OutputState } +type LoadbalancerOptionsObservabilityLogsOutput struct{ *pulumi.OutputState } -func (ObservabilityInstanceAlertConfigReceiverOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityInstanceAlertConfigReceiver)(nil)).Elem() +func (LoadbalancerOptionsObservabilityLogsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerOptionsObservabilityLogs)(nil)).Elem() } -func (o ObservabilityInstanceAlertConfigReceiverOutput) ToObservabilityInstanceAlertConfigReceiverOutput() ObservabilityInstanceAlertConfigReceiverOutput { +func (o LoadbalancerOptionsObservabilityLogsOutput) ToLoadbalancerOptionsObservabilityLogsOutput() LoadbalancerOptionsObservabilityLogsOutput { return o } -func (o ObservabilityInstanceAlertConfigReceiverOutput) ToObservabilityInstanceAlertConfigReceiverOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverOutput { +func (o LoadbalancerOptionsObservabilityLogsOutput) ToLoadbalancerOptionsObservabilityLogsOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityLogsOutput { return o } -// List of email configurations. -func (o ObservabilityInstanceAlertConfigReceiverOutput) EmailConfigs() ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiver) []ObservabilityInstanceAlertConfigReceiverEmailConfig { - return v.EmailConfigs - }).(ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput) +func (o LoadbalancerOptionsObservabilityLogsOutput) ToLoadbalancerOptionsObservabilityLogsPtrOutput() LoadbalancerOptionsObservabilityLogsPtrOutput { + return o.ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(context.Background()) } -// Name of the receiver. -func (o ObservabilityInstanceAlertConfigReceiverOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiver) string { return v.Name }).(pulumi.StringOutput) +func (o LoadbalancerOptionsObservabilityLogsOutput) ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityLogsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerOptionsObservabilityLogs) *LoadbalancerOptionsObservabilityLogs { + return &v + }).(LoadbalancerOptionsObservabilityLogsPtrOutput) } -// List of OpsGenie configurations. -func (o ObservabilityInstanceAlertConfigReceiverOutput) OpsgenieConfigs() ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiver) []ObservabilityInstanceAlertConfigReceiverOpsgenieConfig { - return v.OpsgenieConfigs - }).(ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput) +// Credentials reference for logs. Not changeable after creation. +func (o LoadbalancerOptionsObservabilityLogsOutput) CredentialsRef() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadbalancerOptionsObservabilityLogs) *string { return v.CredentialsRef }).(pulumi.StringPtrOutput) } -// List of Webhooks configurations. -func (o ObservabilityInstanceAlertConfigReceiverOutput) WebhooksConfigs() ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiver) []ObservabilityInstanceAlertConfigReceiverWebhooksConfig { - return v.WebhooksConfigs - }).(ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput) +// Credentials reference for logs. Not changeable after creation. +func (o LoadbalancerOptionsObservabilityLogsOutput) PushUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadbalancerOptionsObservabilityLogs) *string { return v.PushUrl }).(pulumi.StringPtrOutput) } -type ObservabilityInstanceAlertConfigReceiverArrayOutput struct{ *pulumi.OutputState } +type LoadbalancerOptionsObservabilityLogsPtrOutput struct{ *pulumi.OutputState } -func (ObservabilityInstanceAlertConfigReceiverArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigReceiver)(nil)).Elem() +func (LoadbalancerOptionsObservabilityLogsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerOptionsObservabilityLogs)(nil)).Elem() } -func (o ObservabilityInstanceAlertConfigReceiverArrayOutput) ToObservabilityInstanceAlertConfigReceiverArrayOutput() ObservabilityInstanceAlertConfigReceiverArrayOutput { +func (o LoadbalancerOptionsObservabilityLogsPtrOutput) ToLoadbalancerOptionsObservabilityLogsPtrOutput() LoadbalancerOptionsObservabilityLogsPtrOutput { return o } -func (o ObservabilityInstanceAlertConfigReceiverArrayOutput) ToObservabilityInstanceAlertConfigReceiverArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverArrayOutput { +func (o LoadbalancerOptionsObservabilityLogsPtrOutput) ToLoadbalancerOptionsObservabilityLogsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityLogsPtrOutput { return o } -func (o ObservabilityInstanceAlertConfigReceiverArrayOutput) Index(i pulumi.IntInput) ObservabilityInstanceAlertConfigReceiverOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObservabilityInstanceAlertConfigReceiver { - return vs[0].([]ObservabilityInstanceAlertConfigReceiver)[vs[1].(int)] - }).(ObservabilityInstanceAlertConfigReceiverOutput) +func (o LoadbalancerOptionsObservabilityLogsPtrOutput) Elem() LoadbalancerOptionsObservabilityLogsOutput { + return o.ApplyT(func(v *LoadbalancerOptionsObservabilityLogs) LoadbalancerOptionsObservabilityLogs { + if v != nil { + return *v + } + var ret LoadbalancerOptionsObservabilityLogs + return ret + }).(LoadbalancerOptionsObservabilityLogsOutput) } -type ObservabilityInstanceAlertConfigReceiverEmailConfig struct { - // SMTP authentication information. Must be a valid email address - AuthIdentity *string `pulumi:"authIdentity"` - // SMTP authentication password. - AuthPassword *string `pulumi:"authPassword"` - // SMTP authentication username. - AuthUsername *string `pulumi:"authUsername"` - // The sender email address. Must be a valid email address - From *string `pulumi:"from"` - // Whether to notify about resolved alerts. - SendResolved *bool `pulumi:"sendResolved"` - // The SMTP host through which emails are sent. - SmartHost *string `pulumi:"smartHost"` - // The email address to send notifications to. Must be a valid email address - To *string `pulumi:"to"` +// Credentials reference for logs. Not changeable after creation. +func (o LoadbalancerOptionsObservabilityLogsPtrOutput) CredentialsRef() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LoadbalancerOptionsObservabilityLogs) *string { + if v == nil { + return nil + } + return v.CredentialsRef + }).(pulumi.StringPtrOutput) } -// ObservabilityInstanceAlertConfigReceiverEmailConfigInput is an input type that accepts ObservabilityInstanceAlertConfigReceiverEmailConfigArgs and ObservabilityInstanceAlertConfigReceiverEmailConfigOutput values. -// You can construct a concrete instance of `ObservabilityInstanceAlertConfigReceiverEmailConfigInput` via: +// Credentials reference for logs. Not changeable after creation. +func (o LoadbalancerOptionsObservabilityLogsPtrOutput) PushUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LoadbalancerOptionsObservabilityLogs) *string { + if v == nil { + return nil + } + return v.PushUrl + }).(pulumi.StringPtrOutput) +} + +type LoadbalancerOptionsObservabilityMetrics struct { + // Credentials reference for metrics. Not changeable after creation. + CredentialsRef *string `pulumi:"credentialsRef"` + // Credentials reference for metrics. Not changeable after creation. + PushUrl *string `pulumi:"pushUrl"` +} + +// LoadbalancerOptionsObservabilityMetricsInput is an input type that accepts LoadbalancerOptionsObservabilityMetricsArgs and LoadbalancerOptionsObservabilityMetricsOutput values. +// You can construct a concrete instance of `LoadbalancerOptionsObservabilityMetricsInput` via: // -// ObservabilityInstanceAlertConfigReceiverEmailConfigArgs{...} -type ObservabilityInstanceAlertConfigReceiverEmailConfigInput interface { +// LoadbalancerOptionsObservabilityMetricsArgs{...} +type LoadbalancerOptionsObservabilityMetricsInput interface { pulumi.Input - ToObservabilityInstanceAlertConfigReceiverEmailConfigOutput() ObservabilityInstanceAlertConfigReceiverEmailConfigOutput - ToObservabilityInstanceAlertConfigReceiverEmailConfigOutputWithContext(context.Context) ObservabilityInstanceAlertConfigReceiverEmailConfigOutput + ToLoadbalancerOptionsObservabilityMetricsOutput() LoadbalancerOptionsObservabilityMetricsOutput + ToLoadbalancerOptionsObservabilityMetricsOutputWithContext(context.Context) LoadbalancerOptionsObservabilityMetricsOutput } -type ObservabilityInstanceAlertConfigReceiverEmailConfigArgs struct { - // SMTP authentication information. Must be a valid email address - AuthIdentity pulumi.StringPtrInput `pulumi:"authIdentity"` - // SMTP authentication password. - AuthPassword pulumi.StringPtrInput `pulumi:"authPassword"` - // SMTP authentication username. - AuthUsername pulumi.StringPtrInput `pulumi:"authUsername"` - // The sender email address. Must be a valid email address - From pulumi.StringPtrInput `pulumi:"from"` - // Whether to notify about resolved alerts. - SendResolved pulumi.BoolPtrInput `pulumi:"sendResolved"` - // The SMTP host through which emails are sent. - SmartHost pulumi.StringPtrInput `pulumi:"smartHost"` - // The email address to send notifications to. Must be a valid email address - To pulumi.StringPtrInput `pulumi:"to"` +type LoadbalancerOptionsObservabilityMetricsArgs struct { + // Credentials reference for metrics. Not changeable after creation. + CredentialsRef pulumi.StringPtrInput `pulumi:"credentialsRef"` + // Credentials reference for metrics. Not changeable after creation. + PushUrl pulumi.StringPtrInput `pulumi:"pushUrl"` } -func (ObservabilityInstanceAlertConfigReceiverEmailConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityInstanceAlertConfigReceiverEmailConfig)(nil)).Elem() +func (LoadbalancerOptionsObservabilityMetricsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerOptionsObservabilityMetrics)(nil)).Elem() } -func (i ObservabilityInstanceAlertConfigReceiverEmailConfigArgs) ToObservabilityInstanceAlertConfigReceiverEmailConfigOutput() ObservabilityInstanceAlertConfigReceiverEmailConfigOutput { - return i.ToObservabilityInstanceAlertConfigReceiverEmailConfigOutputWithContext(context.Background()) +func (i LoadbalancerOptionsObservabilityMetricsArgs) ToLoadbalancerOptionsObservabilityMetricsOutput() LoadbalancerOptionsObservabilityMetricsOutput { + return i.ToLoadbalancerOptionsObservabilityMetricsOutputWithContext(context.Background()) } -func (i ObservabilityInstanceAlertConfigReceiverEmailConfigArgs) ToObservabilityInstanceAlertConfigReceiverEmailConfigOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverEmailConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) +func (i LoadbalancerOptionsObservabilityMetricsArgs) ToLoadbalancerOptionsObservabilityMetricsOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityMetricsOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityMetricsOutput) } -// ObservabilityInstanceAlertConfigReceiverEmailConfigArrayInput is an input type that accepts ObservabilityInstanceAlertConfigReceiverEmailConfigArray and ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput values. -// You can construct a concrete instance of `ObservabilityInstanceAlertConfigReceiverEmailConfigArrayInput` via: +func (i LoadbalancerOptionsObservabilityMetricsArgs) ToLoadbalancerOptionsObservabilityMetricsPtrOutput() LoadbalancerOptionsObservabilityMetricsPtrOutput { + return i.ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(context.Background()) +} + +func (i LoadbalancerOptionsObservabilityMetricsArgs) ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityMetricsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityMetricsOutput).ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(ctx) +} + +// LoadbalancerOptionsObservabilityMetricsPtrInput is an input type that accepts LoadbalancerOptionsObservabilityMetricsArgs, LoadbalancerOptionsObservabilityMetricsPtr and LoadbalancerOptionsObservabilityMetricsPtrOutput values. +// You can construct a concrete instance of `LoadbalancerOptionsObservabilityMetricsPtrInput` via: // -// ObservabilityInstanceAlertConfigReceiverEmailConfigArray{ ObservabilityInstanceAlertConfigReceiverEmailConfigArgs{...} } -type ObservabilityInstanceAlertConfigReceiverEmailConfigArrayInput interface { +// LoadbalancerOptionsObservabilityMetricsArgs{...} +// +// or: +// +// nil +type LoadbalancerOptionsObservabilityMetricsPtrInput interface { pulumi.Input - ToObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput - ToObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutputWithContext(context.Context) ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput + ToLoadbalancerOptionsObservabilityMetricsPtrOutput() LoadbalancerOptionsObservabilityMetricsPtrOutput + ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(context.Context) LoadbalancerOptionsObservabilityMetricsPtrOutput } -type ObservabilityInstanceAlertConfigReceiverEmailConfigArray []ObservabilityInstanceAlertConfigReceiverEmailConfigInput +type loadbalancerOptionsObservabilityMetricsPtrType LoadbalancerOptionsObservabilityMetricsArgs -func (ObservabilityInstanceAlertConfigReceiverEmailConfigArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigReceiverEmailConfig)(nil)).Elem() +func LoadbalancerOptionsObservabilityMetricsPtr(v *LoadbalancerOptionsObservabilityMetricsArgs) LoadbalancerOptionsObservabilityMetricsPtrInput { + return (*loadbalancerOptionsObservabilityMetricsPtrType)(v) } -func (i ObservabilityInstanceAlertConfigReceiverEmailConfigArray) ToObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput { - return i.ToObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutputWithContext(context.Background()) +func (*loadbalancerOptionsObservabilityMetricsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerOptionsObservabilityMetrics)(nil)).Elem() } -func (i ObservabilityInstanceAlertConfigReceiverEmailConfigArray) ToObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput) +func (i *loadbalancerOptionsObservabilityMetricsPtrType) ToLoadbalancerOptionsObservabilityMetricsPtrOutput() LoadbalancerOptionsObservabilityMetricsPtrOutput { + return i.ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(context.Background()) } -type ObservabilityInstanceAlertConfigReceiverEmailConfigOutput struct{ *pulumi.OutputState } +func (i *loadbalancerOptionsObservabilityMetricsPtrType) ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityMetricsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerOptionsObservabilityMetricsPtrOutput) +} -func (ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityInstanceAlertConfigReceiverEmailConfig)(nil)).Elem() +type LoadbalancerOptionsObservabilityMetricsOutput struct{ *pulumi.OutputState } + +func (LoadbalancerOptionsObservabilityMetricsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerOptionsObservabilityMetrics)(nil)).Elem() } -func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) ToObservabilityInstanceAlertConfigReceiverEmailConfigOutput() ObservabilityInstanceAlertConfigReceiverEmailConfigOutput { +func (o LoadbalancerOptionsObservabilityMetricsOutput) ToLoadbalancerOptionsObservabilityMetricsOutput() LoadbalancerOptionsObservabilityMetricsOutput { return o } -func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) ToObservabilityInstanceAlertConfigReceiverEmailConfigOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverEmailConfigOutput { +func (o LoadbalancerOptionsObservabilityMetricsOutput) ToLoadbalancerOptionsObservabilityMetricsOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityMetricsOutput { return o } -// SMTP authentication information. Must be a valid email address -func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) AuthIdentity() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverEmailConfig) *string { return v.AuthIdentity }).(pulumi.StringPtrOutput) +func (o LoadbalancerOptionsObservabilityMetricsOutput) ToLoadbalancerOptionsObservabilityMetricsPtrOutput() LoadbalancerOptionsObservabilityMetricsPtrOutput { + return o.ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(context.Background()) } -// SMTP authentication password. -func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) AuthPassword() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverEmailConfig) *string { return v.AuthPassword }).(pulumi.StringPtrOutput) +func (o LoadbalancerOptionsObservabilityMetricsOutput) ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityMetricsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerOptionsObservabilityMetrics) *LoadbalancerOptionsObservabilityMetrics { + return &v + }).(LoadbalancerOptionsObservabilityMetricsPtrOutput) } -// SMTP authentication username. -func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) AuthUsername() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverEmailConfig) *string { return v.AuthUsername }).(pulumi.StringPtrOutput) +// Credentials reference for metrics. Not changeable after creation. +func (o LoadbalancerOptionsObservabilityMetricsOutput) CredentialsRef() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadbalancerOptionsObservabilityMetrics) *string { return v.CredentialsRef }).(pulumi.StringPtrOutput) } -// The sender email address. Must be a valid email address -func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) From() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverEmailConfig) *string { return v.From }).(pulumi.StringPtrOutput) +// Credentials reference for metrics. Not changeable after creation. +func (o LoadbalancerOptionsObservabilityMetricsOutput) PushUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadbalancerOptionsObservabilityMetrics) *string { return v.PushUrl }).(pulumi.StringPtrOutput) } -// Whether to notify about resolved alerts. -func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) SendResolved() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverEmailConfig) *bool { return v.SendResolved }).(pulumi.BoolPtrOutput) +type LoadbalancerOptionsObservabilityMetricsPtrOutput struct{ *pulumi.OutputState } + +func (LoadbalancerOptionsObservabilityMetricsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerOptionsObservabilityMetrics)(nil)).Elem() } -// The SMTP host through which emails are sent. -func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) SmartHost() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverEmailConfig) *string { return v.SmartHost }).(pulumi.StringPtrOutput) -} - -// The email address to send notifications to. Must be a valid email address -func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) To() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverEmailConfig) *string { return v.To }).(pulumi.StringPtrOutput) +func (o LoadbalancerOptionsObservabilityMetricsPtrOutput) ToLoadbalancerOptionsObservabilityMetricsPtrOutput() LoadbalancerOptionsObservabilityMetricsPtrOutput { + return o } -type ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput struct{ *pulumi.OutputState } - -func (ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigReceiverEmailConfig)(nil)).Elem() +func (o LoadbalancerOptionsObservabilityMetricsPtrOutput) ToLoadbalancerOptionsObservabilityMetricsPtrOutputWithContext(ctx context.Context) LoadbalancerOptionsObservabilityMetricsPtrOutput { + return o } -func (o ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput) ToObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput { - return o +func (o LoadbalancerOptionsObservabilityMetricsPtrOutput) Elem() LoadbalancerOptionsObservabilityMetricsOutput { + return o.ApplyT(func(v *LoadbalancerOptionsObservabilityMetrics) LoadbalancerOptionsObservabilityMetrics { + if v != nil { + return *v + } + var ret LoadbalancerOptionsObservabilityMetrics + return ret + }).(LoadbalancerOptionsObservabilityMetricsOutput) } -func (o ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput) ToObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput { - return o +// Credentials reference for metrics. Not changeable after creation. +func (o LoadbalancerOptionsObservabilityMetricsPtrOutput) CredentialsRef() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LoadbalancerOptionsObservabilityMetrics) *string { + if v == nil { + return nil + } + return v.CredentialsRef + }).(pulumi.StringPtrOutput) } -func (o ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput) Index(i pulumi.IntInput) ObservabilityInstanceAlertConfigReceiverEmailConfigOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObservabilityInstanceAlertConfigReceiverEmailConfig { - return vs[0].([]ObservabilityInstanceAlertConfigReceiverEmailConfig)[vs[1].(int)] - }).(ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) +// Credentials reference for metrics. Not changeable after creation. +func (o LoadbalancerOptionsObservabilityMetricsPtrOutput) PushUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LoadbalancerOptionsObservabilityMetrics) *string { + if v == nil { + return nil + } + return v.PushUrl + }).(pulumi.StringPtrOutput) } -type ObservabilityInstanceAlertConfigReceiverOpsgenieConfig struct { - // The API key for OpsGenie. - ApiKey *string `pulumi:"apiKey"` - // The host to send OpsGenie API requests to. Must be a valid URL - ApiUrl *string `pulumi:"apiUrl"` - // Priority of the alert. Possible values are: `P1`, `P2`, `P3`, `P4`, `P5`. - Priority *string `pulumi:"priority"` - // Whether to notify about resolved alerts. - SendResolved *bool `pulumi:"sendResolved"` - // Comma separated list of tags attached to the notifications. - Tags *string `pulumi:"tags"` +type LoadbalancerTargetPool struct { + ActiveHealthCheck *LoadbalancerTargetPoolActiveHealthCheck `pulumi:"activeHealthCheck"` + // Target pool name. + Name string `pulumi:"name"` + // Here you can setup various session persistence options, so far only "`useSourceIpAddress`" is supported. + SessionPersistence *LoadbalancerTargetPoolSessionPersistence `pulumi:"sessionPersistence"` + // Identical port number where each target listens for traffic. + TargetPort int `pulumi:"targetPort"` + // List of all targets which will be used in the pool. Limited to 1000. + Targets []LoadbalancerTargetPoolTarget `pulumi:"targets"` } -// ObservabilityInstanceAlertConfigReceiverOpsgenieConfigInput is an input type that accepts ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArgs and ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput values. -// You can construct a concrete instance of `ObservabilityInstanceAlertConfigReceiverOpsgenieConfigInput` via: +// LoadbalancerTargetPoolInput is an input type that accepts LoadbalancerTargetPoolArgs and LoadbalancerTargetPoolOutput values. +// You can construct a concrete instance of `LoadbalancerTargetPoolInput` via: // -// ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArgs{...} -type ObservabilityInstanceAlertConfigReceiverOpsgenieConfigInput interface { +// LoadbalancerTargetPoolArgs{...} +type LoadbalancerTargetPoolInput interface { pulumi.Input - ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput() ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput - ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutputWithContext(context.Context) ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput + ToLoadbalancerTargetPoolOutput() LoadbalancerTargetPoolOutput + ToLoadbalancerTargetPoolOutputWithContext(context.Context) LoadbalancerTargetPoolOutput } -type ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArgs struct { - // The API key for OpsGenie. - ApiKey pulumi.StringPtrInput `pulumi:"apiKey"` - // The host to send OpsGenie API requests to. Must be a valid URL - ApiUrl pulumi.StringPtrInput `pulumi:"apiUrl"` - // Priority of the alert. Possible values are: `P1`, `P2`, `P3`, `P4`, `P5`. - Priority pulumi.StringPtrInput `pulumi:"priority"` - // Whether to notify about resolved alerts. - SendResolved pulumi.BoolPtrInput `pulumi:"sendResolved"` - // Comma separated list of tags attached to the notifications. - Tags pulumi.StringPtrInput `pulumi:"tags"` +type LoadbalancerTargetPoolArgs struct { + ActiveHealthCheck LoadbalancerTargetPoolActiveHealthCheckPtrInput `pulumi:"activeHealthCheck"` + // Target pool name. + Name pulumi.StringInput `pulumi:"name"` + // Here you can setup various session persistence options, so far only "`useSourceIpAddress`" is supported. + SessionPersistence LoadbalancerTargetPoolSessionPersistencePtrInput `pulumi:"sessionPersistence"` + // Identical port number where each target listens for traffic. + TargetPort pulumi.IntInput `pulumi:"targetPort"` + // List of all targets which will be used in the pool. Limited to 1000. + Targets LoadbalancerTargetPoolTargetArrayInput `pulumi:"targets"` } -func (ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityInstanceAlertConfigReceiverOpsgenieConfig)(nil)).Elem() +func (LoadbalancerTargetPoolArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerTargetPool)(nil)).Elem() } -func (i ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArgs) ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput() ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput { - return i.ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutputWithContext(context.Background()) +func (i LoadbalancerTargetPoolArgs) ToLoadbalancerTargetPoolOutput() LoadbalancerTargetPoolOutput { + return i.ToLoadbalancerTargetPoolOutputWithContext(context.Background()) } -func (i ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArgs) ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) +func (i LoadbalancerTargetPoolArgs) ToLoadbalancerTargetPoolOutputWithContext(ctx context.Context) LoadbalancerTargetPoolOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolOutput) } -// ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayInput is an input type that accepts ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArray and ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput values. -// You can construct a concrete instance of `ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayInput` via: +// LoadbalancerTargetPoolArrayInput is an input type that accepts LoadbalancerTargetPoolArray and LoadbalancerTargetPoolArrayOutput values. +// You can construct a concrete instance of `LoadbalancerTargetPoolArrayInput` via: // -// ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArray{ ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArgs{...} } -type ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayInput interface { +// LoadbalancerTargetPoolArray{ LoadbalancerTargetPoolArgs{...} } +type LoadbalancerTargetPoolArrayInput interface { pulumi.Input - ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput - ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutputWithContext(context.Context) ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput + ToLoadbalancerTargetPoolArrayOutput() LoadbalancerTargetPoolArrayOutput + ToLoadbalancerTargetPoolArrayOutputWithContext(context.Context) LoadbalancerTargetPoolArrayOutput } -type ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArray []ObservabilityInstanceAlertConfigReceiverOpsgenieConfigInput +type LoadbalancerTargetPoolArray []LoadbalancerTargetPoolInput -func (ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigReceiverOpsgenieConfig)(nil)).Elem() +func (LoadbalancerTargetPoolArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]LoadbalancerTargetPool)(nil)).Elem() } -func (i ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArray) ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput { - return i.ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutputWithContext(context.Background()) +func (i LoadbalancerTargetPoolArray) ToLoadbalancerTargetPoolArrayOutput() LoadbalancerTargetPoolArrayOutput { + return i.ToLoadbalancerTargetPoolArrayOutputWithContext(context.Background()) } -func (i ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArray) ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput) +func (i LoadbalancerTargetPoolArray) ToLoadbalancerTargetPoolArrayOutputWithContext(ctx context.Context) LoadbalancerTargetPoolArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolArrayOutput) } -type ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput struct{ *pulumi.OutputState } +type LoadbalancerTargetPoolOutput struct{ *pulumi.OutputState } -func (ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityInstanceAlertConfigReceiverOpsgenieConfig)(nil)).Elem() +func (LoadbalancerTargetPoolOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerTargetPool)(nil)).Elem() } -func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput() ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput { +func (o LoadbalancerTargetPoolOutput) ToLoadbalancerTargetPoolOutput() LoadbalancerTargetPoolOutput { return o } -func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput { +func (o LoadbalancerTargetPoolOutput) ToLoadbalancerTargetPoolOutputWithContext(ctx context.Context) LoadbalancerTargetPoolOutput { return o } -// The API key for OpsGenie. -func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) ApiKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverOpsgenieConfig) *string { return v.ApiKey }).(pulumi.StringPtrOutput) +func (o LoadbalancerTargetPoolOutput) ActiveHealthCheck() LoadbalancerTargetPoolActiveHealthCheckPtrOutput { + return o.ApplyT(func(v LoadbalancerTargetPool) *LoadbalancerTargetPoolActiveHealthCheck { return v.ActiveHealthCheck }).(LoadbalancerTargetPoolActiveHealthCheckPtrOutput) } -// The host to send OpsGenie API requests to. Must be a valid URL -func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) ApiUrl() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverOpsgenieConfig) *string { return v.ApiUrl }).(pulumi.StringPtrOutput) +// Target pool name. +func (o LoadbalancerTargetPoolOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LoadbalancerTargetPool) string { return v.Name }).(pulumi.StringOutput) } -// Priority of the alert. Possible values are: `P1`, `P2`, `P3`, `P4`, `P5`. -func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) Priority() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverOpsgenieConfig) *string { return v.Priority }).(pulumi.StringPtrOutput) +// Here you can setup various session persistence options, so far only "`useSourceIpAddress`" is supported. +func (o LoadbalancerTargetPoolOutput) SessionPersistence() LoadbalancerTargetPoolSessionPersistencePtrOutput { + return o.ApplyT(func(v LoadbalancerTargetPool) *LoadbalancerTargetPoolSessionPersistence { return v.SessionPersistence }).(LoadbalancerTargetPoolSessionPersistencePtrOutput) } -// Whether to notify about resolved alerts. -func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) SendResolved() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverOpsgenieConfig) *bool { return v.SendResolved }).(pulumi.BoolPtrOutput) +// Identical port number where each target listens for traffic. +func (o LoadbalancerTargetPoolOutput) TargetPort() pulumi.IntOutput { + return o.ApplyT(func(v LoadbalancerTargetPool) int { return v.TargetPort }).(pulumi.IntOutput) } -// Comma separated list of tags attached to the notifications. -func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) Tags() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverOpsgenieConfig) *string { return v.Tags }).(pulumi.StringPtrOutput) +// List of all targets which will be used in the pool. Limited to 1000. +func (o LoadbalancerTargetPoolOutput) Targets() LoadbalancerTargetPoolTargetArrayOutput { + return o.ApplyT(func(v LoadbalancerTargetPool) []LoadbalancerTargetPoolTarget { return v.Targets }).(LoadbalancerTargetPoolTargetArrayOutput) } -type ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput struct{ *pulumi.OutputState } +type LoadbalancerTargetPoolArrayOutput struct{ *pulumi.OutputState } -func (ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigReceiverOpsgenieConfig)(nil)).Elem() +func (LoadbalancerTargetPoolArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]LoadbalancerTargetPool)(nil)).Elem() } -func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput) ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput { +func (o LoadbalancerTargetPoolArrayOutput) ToLoadbalancerTargetPoolArrayOutput() LoadbalancerTargetPoolArrayOutput { return o } -func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput) ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput { +func (o LoadbalancerTargetPoolArrayOutput) ToLoadbalancerTargetPoolArrayOutputWithContext(ctx context.Context) LoadbalancerTargetPoolArrayOutput { return o } -func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput) Index(i pulumi.IntInput) ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObservabilityInstanceAlertConfigReceiverOpsgenieConfig { - return vs[0].([]ObservabilityInstanceAlertConfigReceiverOpsgenieConfig)[vs[1].(int)] - }).(ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) +func (o LoadbalancerTargetPoolArrayOutput) Index(i pulumi.IntInput) LoadbalancerTargetPoolOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) LoadbalancerTargetPool { + return vs[0].([]LoadbalancerTargetPool)[vs[1].(int)] + }).(LoadbalancerTargetPoolOutput) } -type ObservabilityInstanceAlertConfigReceiverWebhooksConfig struct { - // Google Chat webhooks require special handling, set this to true if the webhook is for Google Chat. - GoogleChat *bool `pulumi:"googleChat"` - // Microsoft Teams webhooks require special handling, set this to true if the webhook is for Microsoft Teams. - MsTeams *bool `pulumi:"msTeams"` - // Whether to notify about resolved alerts. - SendResolved *bool `pulumi:"sendResolved"` - // The endpoint to send HTTP POST requests to. Must be a valid URL - Url *string `pulumi:"url"` +type LoadbalancerTargetPoolActiveHealthCheck struct { + // Healthy threshold of the health checking. + HealthyThreshold *int `pulumi:"healthyThreshold"` + // Interval duration of health checking in seconds. + Interval *string `pulumi:"interval"` + // Interval duration threshold of the health checking in seconds. + IntervalJitter *string `pulumi:"intervalJitter"` + // Active health checking timeout duration in seconds. + Timeout *string `pulumi:"timeout"` + // Unhealthy threshold of the health checking. + UnhealthyThreshold *int `pulumi:"unhealthyThreshold"` } -// ObservabilityInstanceAlertConfigReceiverWebhooksConfigInput is an input type that accepts ObservabilityInstanceAlertConfigReceiverWebhooksConfigArgs and ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput values. -// You can construct a concrete instance of `ObservabilityInstanceAlertConfigReceiverWebhooksConfigInput` via: +// LoadbalancerTargetPoolActiveHealthCheckInput is an input type that accepts LoadbalancerTargetPoolActiveHealthCheckArgs and LoadbalancerTargetPoolActiveHealthCheckOutput values. +// You can construct a concrete instance of `LoadbalancerTargetPoolActiveHealthCheckInput` via: // -// ObservabilityInstanceAlertConfigReceiverWebhooksConfigArgs{...} -type ObservabilityInstanceAlertConfigReceiverWebhooksConfigInput interface { +// LoadbalancerTargetPoolActiveHealthCheckArgs{...} +type LoadbalancerTargetPoolActiveHealthCheckInput interface { pulumi.Input - ToObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput() ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput - ToObservabilityInstanceAlertConfigReceiverWebhooksConfigOutputWithContext(context.Context) ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput + ToLoadbalancerTargetPoolActiveHealthCheckOutput() LoadbalancerTargetPoolActiveHealthCheckOutput + ToLoadbalancerTargetPoolActiveHealthCheckOutputWithContext(context.Context) LoadbalancerTargetPoolActiveHealthCheckOutput } -type ObservabilityInstanceAlertConfigReceiverWebhooksConfigArgs struct { - // Google Chat webhooks require special handling, set this to true if the webhook is for Google Chat. - GoogleChat pulumi.BoolPtrInput `pulumi:"googleChat"` - // Microsoft Teams webhooks require special handling, set this to true if the webhook is for Microsoft Teams. - MsTeams pulumi.BoolPtrInput `pulumi:"msTeams"` - // Whether to notify about resolved alerts. - SendResolved pulumi.BoolPtrInput `pulumi:"sendResolved"` - // The endpoint to send HTTP POST requests to. Must be a valid URL - Url pulumi.StringPtrInput `pulumi:"url"` +type LoadbalancerTargetPoolActiveHealthCheckArgs struct { + // Healthy threshold of the health checking. + HealthyThreshold pulumi.IntPtrInput `pulumi:"healthyThreshold"` + // Interval duration of health checking in seconds. + Interval pulumi.StringPtrInput `pulumi:"interval"` + // Interval duration threshold of the health checking in seconds. + IntervalJitter pulumi.StringPtrInput `pulumi:"intervalJitter"` + // Active health checking timeout duration in seconds. + Timeout pulumi.StringPtrInput `pulumi:"timeout"` + // Unhealthy threshold of the health checking. + UnhealthyThreshold pulumi.IntPtrInput `pulumi:"unhealthyThreshold"` } -func (ObservabilityInstanceAlertConfigReceiverWebhooksConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityInstanceAlertConfigReceiverWebhooksConfig)(nil)).Elem() +func (LoadbalancerTargetPoolActiveHealthCheckArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerTargetPoolActiveHealthCheck)(nil)).Elem() } -func (i ObservabilityInstanceAlertConfigReceiverWebhooksConfigArgs) ToObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput() ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput { - return i.ToObservabilityInstanceAlertConfigReceiverWebhooksConfigOutputWithContext(context.Background()) +func (i LoadbalancerTargetPoolActiveHealthCheckArgs) ToLoadbalancerTargetPoolActiveHealthCheckOutput() LoadbalancerTargetPoolActiveHealthCheckOutput { + return i.ToLoadbalancerTargetPoolActiveHealthCheckOutputWithContext(context.Background()) } -func (i ObservabilityInstanceAlertConfigReceiverWebhooksConfigArgs) ToObservabilityInstanceAlertConfigReceiverWebhooksConfigOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput { +func (i LoadbalancerTargetPoolActiveHealthCheckArgs) ToLoadbalancerTargetPoolActiveHealthCheckOutputWithContext(ctx context.Context) LoadbalancerTargetPoolActiveHealthCheckOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolActiveHealthCheckOutput) +} + +func (i LoadbalancerTargetPoolActiveHealthCheckArgs) ToLoadbalancerTargetPoolActiveHealthCheckPtrOutput() LoadbalancerTargetPoolActiveHealthCheckPtrOutput { + return i.ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(context.Background()) +} + +func (i LoadbalancerTargetPoolActiveHealthCheckArgs) ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(ctx context.Context) LoadbalancerTargetPoolActiveHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolActiveHealthCheckOutput).ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(ctx) +} + +// LoadbalancerTargetPoolActiveHealthCheckPtrInput is an input type that accepts LoadbalancerTargetPoolActiveHealthCheckArgs, LoadbalancerTargetPoolActiveHealthCheckPtr and LoadbalancerTargetPoolActiveHealthCheckPtrOutput values. +// You can construct a concrete instance of `LoadbalancerTargetPoolActiveHealthCheckPtrInput` via: +// +// LoadbalancerTargetPoolActiveHealthCheckArgs{...} +// +// or: +// +// nil +type LoadbalancerTargetPoolActiveHealthCheckPtrInput interface { + pulumi.Input + + ToLoadbalancerTargetPoolActiveHealthCheckPtrOutput() LoadbalancerTargetPoolActiveHealthCheckPtrOutput + ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(context.Context) LoadbalancerTargetPoolActiveHealthCheckPtrOutput +} + +type loadbalancerTargetPoolActiveHealthCheckPtrType LoadbalancerTargetPoolActiveHealthCheckArgs + +func LoadbalancerTargetPoolActiveHealthCheckPtr(v *LoadbalancerTargetPoolActiveHealthCheckArgs) LoadbalancerTargetPoolActiveHealthCheckPtrInput { + return (*loadbalancerTargetPoolActiveHealthCheckPtrType)(v) +} + +func (*loadbalancerTargetPoolActiveHealthCheckPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerTargetPoolActiveHealthCheck)(nil)).Elem() +} + +func (i *loadbalancerTargetPoolActiveHealthCheckPtrType) ToLoadbalancerTargetPoolActiveHealthCheckPtrOutput() LoadbalancerTargetPoolActiveHealthCheckPtrOutput { + return i.ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(context.Background()) +} + +func (i *loadbalancerTargetPoolActiveHealthCheckPtrType) ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(ctx context.Context) LoadbalancerTargetPoolActiveHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolActiveHealthCheckPtrOutput) +} + +type LoadbalancerTargetPoolActiveHealthCheckOutput struct{ *pulumi.OutputState } + +func (LoadbalancerTargetPoolActiveHealthCheckOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerTargetPoolActiveHealthCheck)(nil)).Elem() +} + +func (o LoadbalancerTargetPoolActiveHealthCheckOutput) ToLoadbalancerTargetPoolActiveHealthCheckOutput() LoadbalancerTargetPoolActiveHealthCheckOutput { + return o +} + +func (o LoadbalancerTargetPoolActiveHealthCheckOutput) ToLoadbalancerTargetPoolActiveHealthCheckOutputWithContext(ctx context.Context) LoadbalancerTargetPoolActiveHealthCheckOutput { + return o +} + +func (o LoadbalancerTargetPoolActiveHealthCheckOutput) ToLoadbalancerTargetPoolActiveHealthCheckPtrOutput() LoadbalancerTargetPoolActiveHealthCheckPtrOutput { + return o.ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(context.Background()) +} + +func (o LoadbalancerTargetPoolActiveHealthCheckOutput) ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(ctx context.Context) LoadbalancerTargetPoolActiveHealthCheckPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerTargetPoolActiveHealthCheck) *LoadbalancerTargetPoolActiveHealthCheck { + return &v + }).(LoadbalancerTargetPoolActiveHealthCheckPtrOutput) +} + +// Healthy threshold of the health checking. +func (o LoadbalancerTargetPoolActiveHealthCheckOutput) HealthyThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v LoadbalancerTargetPoolActiveHealthCheck) *int { return v.HealthyThreshold }).(pulumi.IntPtrOutput) +} + +// Interval duration of health checking in seconds. +func (o LoadbalancerTargetPoolActiveHealthCheckOutput) Interval() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadbalancerTargetPoolActiveHealthCheck) *string { return v.Interval }).(pulumi.StringPtrOutput) +} + +// Interval duration threshold of the health checking in seconds. +func (o LoadbalancerTargetPoolActiveHealthCheckOutput) IntervalJitter() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadbalancerTargetPoolActiveHealthCheck) *string { return v.IntervalJitter }).(pulumi.StringPtrOutput) +} + +// Active health checking timeout duration in seconds. +func (o LoadbalancerTargetPoolActiveHealthCheckOutput) Timeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadbalancerTargetPoolActiveHealthCheck) *string { return v.Timeout }).(pulumi.StringPtrOutput) +} + +// Unhealthy threshold of the health checking. +func (o LoadbalancerTargetPoolActiveHealthCheckOutput) UnhealthyThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v LoadbalancerTargetPoolActiveHealthCheck) *int { return v.UnhealthyThreshold }).(pulumi.IntPtrOutput) +} + +type LoadbalancerTargetPoolActiveHealthCheckPtrOutput struct{ *pulumi.OutputState } + +func (LoadbalancerTargetPoolActiveHealthCheckPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerTargetPoolActiveHealthCheck)(nil)).Elem() +} + +func (o LoadbalancerTargetPoolActiveHealthCheckPtrOutput) ToLoadbalancerTargetPoolActiveHealthCheckPtrOutput() LoadbalancerTargetPoolActiveHealthCheckPtrOutput { + return o +} + +func (o LoadbalancerTargetPoolActiveHealthCheckPtrOutput) ToLoadbalancerTargetPoolActiveHealthCheckPtrOutputWithContext(ctx context.Context) LoadbalancerTargetPoolActiveHealthCheckPtrOutput { + return o +} + +func (o LoadbalancerTargetPoolActiveHealthCheckPtrOutput) Elem() LoadbalancerTargetPoolActiveHealthCheckOutput { + return o.ApplyT(func(v *LoadbalancerTargetPoolActiveHealthCheck) LoadbalancerTargetPoolActiveHealthCheck { + if v != nil { + return *v + } + var ret LoadbalancerTargetPoolActiveHealthCheck + return ret + }).(LoadbalancerTargetPoolActiveHealthCheckOutput) +} + +// Healthy threshold of the health checking. +func (o LoadbalancerTargetPoolActiveHealthCheckPtrOutput) HealthyThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LoadbalancerTargetPoolActiveHealthCheck) *int { + if v == nil { + return nil + } + return v.HealthyThreshold + }).(pulumi.IntPtrOutput) +} + +// Interval duration of health checking in seconds. +func (o LoadbalancerTargetPoolActiveHealthCheckPtrOutput) Interval() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LoadbalancerTargetPoolActiveHealthCheck) *string { + if v == nil { + return nil + } + return v.Interval + }).(pulumi.StringPtrOutput) +} + +// Interval duration threshold of the health checking in seconds. +func (o LoadbalancerTargetPoolActiveHealthCheckPtrOutput) IntervalJitter() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LoadbalancerTargetPoolActiveHealthCheck) *string { + if v == nil { + return nil + } + return v.IntervalJitter + }).(pulumi.StringPtrOutput) +} + +// Active health checking timeout duration in seconds. +func (o LoadbalancerTargetPoolActiveHealthCheckPtrOutput) Timeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LoadbalancerTargetPoolActiveHealthCheck) *string { + if v == nil { + return nil + } + return v.Timeout + }).(pulumi.StringPtrOutput) +} + +// Unhealthy threshold of the health checking. +func (o LoadbalancerTargetPoolActiveHealthCheckPtrOutput) UnhealthyThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LoadbalancerTargetPoolActiveHealthCheck) *int { + if v == nil { + return nil + } + return v.UnhealthyThreshold + }).(pulumi.IntPtrOutput) +} + +type LoadbalancerTargetPoolSessionPersistence struct { + // 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. + UseSourceIpAddress *bool `pulumi:"useSourceIpAddress"` +} + +// LoadbalancerTargetPoolSessionPersistenceInput is an input type that accepts LoadbalancerTargetPoolSessionPersistenceArgs and LoadbalancerTargetPoolSessionPersistenceOutput values. +// You can construct a concrete instance of `LoadbalancerTargetPoolSessionPersistenceInput` via: +// +// LoadbalancerTargetPoolSessionPersistenceArgs{...} +type LoadbalancerTargetPoolSessionPersistenceInput interface { + pulumi.Input + + ToLoadbalancerTargetPoolSessionPersistenceOutput() LoadbalancerTargetPoolSessionPersistenceOutput + ToLoadbalancerTargetPoolSessionPersistenceOutputWithContext(context.Context) LoadbalancerTargetPoolSessionPersistenceOutput +} + +type LoadbalancerTargetPoolSessionPersistenceArgs struct { + // 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. + UseSourceIpAddress pulumi.BoolPtrInput `pulumi:"useSourceIpAddress"` +} + +func (LoadbalancerTargetPoolSessionPersistenceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerTargetPoolSessionPersistence)(nil)).Elem() +} + +func (i LoadbalancerTargetPoolSessionPersistenceArgs) ToLoadbalancerTargetPoolSessionPersistenceOutput() LoadbalancerTargetPoolSessionPersistenceOutput { + return i.ToLoadbalancerTargetPoolSessionPersistenceOutputWithContext(context.Background()) +} + +func (i LoadbalancerTargetPoolSessionPersistenceArgs) ToLoadbalancerTargetPoolSessionPersistenceOutputWithContext(ctx context.Context) LoadbalancerTargetPoolSessionPersistenceOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolSessionPersistenceOutput) +} + +func (i LoadbalancerTargetPoolSessionPersistenceArgs) ToLoadbalancerTargetPoolSessionPersistencePtrOutput() LoadbalancerTargetPoolSessionPersistencePtrOutput { + return i.ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(context.Background()) +} + +func (i LoadbalancerTargetPoolSessionPersistenceArgs) ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(ctx context.Context) LoadbalancerTargetPoolSessionPersistencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolSessionPersistenceOutput).ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(ctx) +} + +// LoadbalancerTargetPoolSessionPersistencePtrInput is an input type that accepts LoadbalancerTargetPoolSessionPersistenceArgs, LoadbalancerTargetPoolSessionPersistencePtr and LoadbalancerTargetPoolSessionPersistencePtrOutput values. +// You can construct a concrete instance of `LoadbalancerTargetPoolSessionPersistencePtrInput` via: +// +// LoadbalancerTargetPoolSessionPersistenceArgs{...} +// +// or: +// +// nil +type LoadbalancerTargetPoolSessionPersistencePtrInput interface { + pulumi.Input + + ToLoadbalancerTargetPoolSessionPersistencePtrOutput() LoadbalancerTargetPoolSessionPersistencePtrOutput + ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(context.Context) LoadbalancerTargetPoolSessionPersistencePtrOutput +} + +type loadbalancerTargetPoolSessionPersistencePtrType LoadbalancerTargetPoolSessionPersistenceArgs + +func LoadbalancerTargetPoolSessionPersistencePtr(v *LoadbalancerTargetPoolSessionPersistenceArgs) LoadbalancerTargetPoolSessionPersistencePtrInput { + return (*loadbalancerTargetPoolSessionPersistencePtrType)(v) +} + +func (*loadbalancerTargetPoolSessionPersistencePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerTargetPoolSessionPersistence)(nil)).Elem() +} + +func (i *loadbalancerTargetPoolSessionPersistencePtrType) ToLoadbalancerTargetPoolSessionPersistencePtrOutput() LoadbalancerTargetPoolSessionPersistencePtrOutput { + return i.ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(context.Background()) +} + +func (i *loadbalancerTargetPoolSessionPersistencePtrType) ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(ctx context.Context) LoadbalancerTargetPoolSessionPersistencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolSessionPersistencePtrOutput) +} + +type LoadbalancerTargetPoolSessionPersistenceOutput struct{ *pulumi.OutputState } + +func (LoadbalancerTargetPoolSessionPersistenceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerTargetPoolSessionPersistence)(nil)).Elem() +} + +func (o LoadbalancerTargetPoolSessionPersistenceOutput) ToLoadbalancerTargetPoolSessionPersistenceOutput() LoadbalancerTargetPoolSessionPersistenceOutput { + return o +} + +func (o LoadbalancerTargetPoolSessionPersistenceOutput) ToLoadbalancerTargetPoolSessionPersistenceOutputWithContext(ctx context.Context) LoadbalancerTargetPoolSessionPersistenceOutput { + return o +} + +func (o LoadbalancerTargetPoolSessionPersistenceOutput) ToLoadbalancerTargetPoolSessionPersistencePtrOutput() LoadbalancerTargetPoolSessionPersistencePtrOutput { + return o.ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(context.Background()) +} + +func (o LoadbalancerTargetPoolSessionPersistenceOutput) ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(ctx context.Context) LoadbalancerTargetPoolSessionPersistencePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerTargetPoolSessionPersistence) *LoadbalancerTargetPoolSessionPersistence { + return &v + }).(LoadbalancerTargetPoolSessionPersistencePtrOutput) +} + +// 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. +func (o LoadbalancerTargetPoolSessionPersistenceOutput) UseSourceIpAddress() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LoadbalancerTargetPoolSessionPersistence) *bool { return v.UseSourceIpAddress }).(pulumi.BoolPtrOutput) +} + +type LoadbalancerTargetPoolSessionPersistencePtrOutput struct{ *pulumi.OutputState } + +func (LoadbalancerTargetPoolSessionPersistencePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerTargetPoolSessionPersistence)(nil)).Elem() +} + +func (o LoadbalancerTargetPoolSessionPersistencePtrOutput) ToLoadbalancerTargetPoolSessionPersistencePtrOutput() LoadbalancerTargetPoolSessionPersistencePtrOutput { + return o +} + +func (o LoadbalancerTargetPoolSessionPersistencePtrOutput) ToLoadbalancerTargetPoolSessionPersistencePtrOutputWithContext(ctx context.Context) LoadbalancerTargetPoolSessionPersistencePtrOutput { + return o +} + +func (o LoadbalancerTargetPoolSessionPersistencePtrOutput) Elem() LoadbalancerTargetPoolSessionPersistenceOutput { + return o.ApplyT(func(v *LoadbalancerTargetPoolSessionPersistence) LoadbalancerTargetPoolSessionPersistence { + if v != nil { + return *v + } + var ret LoadbalancerTargetPoolSessionPersistence + return ret + }).(LoadbalancerTargetPoolSessionPersistenceOutput) +} + +// 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. +func (o LoadbalancerTargetPoolSessionPersistencePtrOutput) UseSourceIpAddress() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LoadbalancerTargetPoolSessionPersistence) *bool { + if v == nil { + return nil + } + return v.UseSourceIpAddress + }).(pulumi.BoolPtrOutput) +} + +type LoadbalancerTargetPoolTarget struct { + // Target display name + DisplayName string `pulumi:"displayName"` + // Target IP + Ip string `pulumi:"ip"` +} + +// LoadbalancerTargetPoolTargetInput is an input type that accepts LoadbalancerTargetPoolTargetArgs and LoadbalancerTargetPoolTargetOutput values. +// You can construct a concrete instance of `LoadbalancerTargetPoolTargetInput` via: +// +// LoadbalancerTargetPoolTargetArgs{...} +type LoadbalancerTargetPoolTargetInput interface { + pulumi.Input + + ToLoadbalancerTargetPoolTargetOutput() LoadbalancerTargetPoolTargetOutput + ToLoadbalancerTargetPoolTargetOutputWithContext(context.Context) LoadbalancerTargetPoolTargetOutput +} + +type LoadbalancerTargetPoolTargetArgs struct { + // Target display name + DisplayName pulumi.StringInput `pulumi:"displayName"` + // Target IP + Ip pulumi.StringInput `pulumi:"ip"` +} + +func (LoadbalancerTargetPoolTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerTargetPoolTarget)(nil)).Elem() +} + +func (i LoadbalancerTargetPoolTargetArgs) ToLoadbalancerTargetPoolTargetOutput() LoadbalancerTargetPoolTargetOutput { + return i.ToLoadbalancerTargetPoolTargetOutputWithContext(context.Background()) +} + +func (i LoadbalancerTargetPoolTargetArgs) ToLoadbalancerTargetPoolTargetOutputWithContext(ctx context.Context) LoadbalancerTargetPoolTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolTargetOutput) +} + +// LoadbalancerTargetPoolTargetArrayInput is an input type that accepts LoadbalancerTargetPoolTargetArray and LoadbalancerTargetPoolTargetArrayOutput values. +// You can construct a concrete instance of `LoadbalancerTargetPoolTargetArrayInput` via: +// +// LoadbalancerTargetPoolTargetArray{ LoadbalancerTargetPoolTargetArgs{...} } +type LoadbalancerTargetPoolTargetArrayInput interface { + pulumi.Input + + ToLoadbalancerTargetPoolTargetArrayOutput() LoadbalancerTargetPoolTargetArrayOutput + ToLoadbalancerTargetPoolTargetArrayOutputWithContext(context.Context) LoadbalancerTargetPoolTargetArrayOutput +} + +type LoadbalancerTargetPoolTargetArray []LoadbalancerTargetPoolTargetInput + +func (LoadbalancerTargetPoolTargetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]LoadbalancerTargetPoolTarget)(nil)).Elem() +} + +func (i LoadbalancerTargetPoolTargetArray) ToLoadbalancerTargetPoolTargetArrayOutput() LoadbalancerTargetPoolTargetArrayOutput { + return i.ToLoadbalancerTargetPoolTargetArrayOutputWithContext(context.Background()) +} + +func (i LoadbalancerTargetPoolTargetArray) ToLoadbalancerTargetPoolTargetArrayOutputWithContext(ctx context.Context) LoadbalancerTargetPoolTargetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerTargetPoolTargetArrayOutput) +} + +type LoadbalancerTargetPoolTargetOutput struct{ *pulumi.OutputState } + +func (LoadbalancerTargetPoolTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerTargetPoolTarget)(nil)).Elem() +} + +func (o LoadbalancerTargetPoolTargetOutput) ToLoadbalancerTargetPoolTargetOutput() LoadbalancerTargetPoolTargetOutput { + return o +} + +func (o LoadbalancerTargetPoolTargetOutput) ToLoadbalancerTargetPoolTargetOutputWithContext(ctx context.Context) LoadbalancerTargetPoolTargetOutput { + return o +} + +// Target display name +func (o LoadbalancerTargetPoolTargetOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v LoadbalancerTargetPoolTarget) string { return v.DisplayName }).(pulumi.StringOutput) +} + +// Target IP +func (o LoadbalancerTargetPoolTargetOutput) Ip() pulumi.StringOutput { + return o.ApplyT(func(v LoadbalancerTargetPoolTarget) string { return v.Ip }).(pulumi.StringOutput) +} + +type LoadbalancerTargetPoolTargetArrayOutput struct{ *pulumi.OutputState } + +func (LoadbalancerTargetPoolTargetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]LoadbalancerTargetPoolTarget)(nil)).Elem() +} + +func (o LoadbalancerTargetPoolTargetArrayOutput) ToLoadbalancerTargetPoolTargetArrayOutput() LoadbalancerTargetPoolTargetArrayOutput { + return o +} + +func (o LoadbalancerTargetPoolTargetArrayOutput) ToLoadbalancerTargetPoolTargetArrayOutputWithContext(ctx context.Context) LoadbalancerTargetPoolTargetArrayOutput { + return o +} + +func (o LoadbalancerTargetPoolTargetArrayOutput) Index(i pulumi.IntInput) LoadbalancerTargetPoolTargetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) LoadbalancerTargetPoolTarget { + return vs[0].([]LoadbalancerTargetPoolTarget)[vs[1].(int)] + }).(LoadbalancerTargetPoolTargetOutput) +} + +type LogmeInstanceParameters struct { + // Enable monitoring. + EnableMonitoring *bool `pulumi:"enableMonitoring"` + FluentdTcp *int `pulumi:"fluentdTcp"` + FluentdTls *int `pulumi:"fluentdTls"` + FluentdTlsCiphers *string `pulumi:"fluentdTlsCiphers"` + FluentdTlsMaxVersion *string `pulumi:"fluentdTlsMaxVersion"` + FluentdTlsMinVersion *string `pulumi:"fluentdTlsMinVersion"` + FluentdTlsVersion *string `pulumi:"fluentdTlsVersion"` + FluentdUdp *int `pulumi:"fluentdUdp"` + // If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). + Graphite *string `pulumi:"graphite"` + // Combination of an integer and a timerange when an index will be considered "old" and can be deleted. Possible values for the timerange are `s`, `m`, `h` and `d`. + IsmDeletionAfter *string `pulumi:"ismDeletionAfter"` + IsmJitter *float64 `pulumi:"ismJitter"` + // Jitter of the execution time. + IsmJobInterval *int `pulumi:"ismJobInterval"` + // The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. + JavaHeapspace *int `pulumi:"javaHeapspace"` + // The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. + JavaMaxmetaspace *int `pulumi:"javaMaxmetaspace"` + // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + MaxDiskThreshold *int `pulumi:"maxDiskThreshold"` + // The frequency in seconds at which metrics are emitted (in seconds). + MetricsFrequency *int `pulumi:"metricsFrequency"` + // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. + MetricsPrefix *string `pulumi:"metricsPrefix"` + // The ID of the STACKIT monitoring instance. + MonitoringInstanceId *string `pulumi:"monitoringInstanceId"` + OpensearchTlsCiphers []string `pulumi:"opensearchTlsCiphers"` + OpensearchTlsProtocols []string `pulumi:"opensearchTlsProtocols"` + // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + SgwAcl *string `pulumi:"sgwAcl"` + // List of syslog servers to send logs to. + Syslogs []string `pulumi:"syslogs"` +} + +// LogmeInstanceParametersInput is an input type that accepts LogmeInstanceParametersArgs and LogmeInstanceParametersOutput values. +// You can construct a concrete instance of `LogmeInstanceParametersInput` via: +// +// LogmeInstanceParametersArgs{...} +type LogmeInstanceParametersInput interface { + pulumi.Input + + ToLogmeInstanceParametersOutput() LogmeInstanceParametersOutput + ToLogmeInstanceParametersOutputWithContext(context.Context) LogmeInstanceParametersOutput +} + +type LogmeInstanceParametersArgs struct { + // Enable monitoring. + EnableMonitoring pulumi.BoolPtrInput `pulumi:"enableMonitoring"` + FluentdTcp pulumi.IntPtrInput `pulumi:"fluentdTcp"` + FluentdTls pulumi.IntPtrInput `pulumi:"fluentdTls"` + FluentdTlsCiphers pulumi.StringPtrInput `pulumi:"fluentdTlsCiphers"` + FluentdTlsMaxVersion pulumi.StringPtrInput `pulumi:"fluentdTlsMaxVersion"` + FluentdTlsMinVersion pulumi.StringPtrInput `pulumi:"fluentdTlsMinVersion"` + FluentdTlsVersion pulumi.StringPtrInput `pulumi:"fluentdTlsVersion"` + FluentdUdp pulumi.IntPtrInput `pulumi:"fluentdUdp"` + // If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). + Graphite pulumi.StringPtrInput `pulumi:"graphite"` + // Combination of an integer and a timerange when an index will be considered "old" and can be deleted. Possible values for the timerange are `s`, `m`, `h` and `d`. + IsmDeletionAfter pulumi.StringPtrInput `pulumi:"ismDeletionAfter"` + IsmJitter pulumi.Float64PtrInput `pulumi:"ismJitter"` + // Jitter of the execution time. + IsmJobInterval pulumi.IntPtrInput `pulumi:"ismJobInterval"` + // The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. + JavaHeapspace pulumi.IntPtrInput `pulumi:"javaHeapspace"` + // The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. + JavaMaxmetaspace pulumi.IntPtrInput `pulumi:"javaMaxmetaspace"` + // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + MaxDiskThreshold pulumi.IntPtrInput `pulumi:"maxDiskThreshold"` + // The frequency in seconds at which metrics are emitted (in seconds). + MetricsFrequency pulumi.IntPtrInput `pulumi:"metricsFrequency"` + // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. + MetricsPrefix pulumi.StringPtrInput `pulumi:"metricsPrefix"` + // The ID of the STACKIT monitoring instance. + MonitoringInstanceId pulumi.StringPtrInput `pulumi:"monitoringInstanceId"` + OpensearchTlsCiphers pulumi.StringArrayInput `pulumi:"opensearchTlsCiphers"` + OpensearchTlsProtocols pulumi.StringArrayInput `pulumi:"opensearchTlsProtocols"` + // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + SgwAcl pulumi.StringPtrInput `pulumi:"sgwAcl"` + // List of syslog servers to send logs to. + Syslogs pulumi.StringArrayInput `pulumi:"syslogs"` +} + +func (LogmeInstanceParametersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LogmeInstanceParameters)(nil)).Elem() +} + +func (i LogmeInstanceParametersArgs) ToLogmeInstanceParametersOutput() LogmeInstanceParametersOutput { + return i.ToLogmeInstanceParametersOutputWithContext(context.Background()) +} + +func (i LogmeInstanceParametersArgs) ToLogmeInstanceParametersOutputWithContext(ctx context.Context) LogmeInstanceParametersOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogmeInstanceParametersOutput) +} + +func (i LogmeInstanceParametersArgs) ToLogmeInstanceParametersPtrOutput() LogmeInstanceParametersPtrOutput { + return i.ToLogmeInstanceParametersPtrOutputWithContext(context.Background()) +} + +func (i LogmeInstanceParametersArgs) ToLogmeInstanceParametersPtrOutputWithContext(ctx context.Context) LogmeInstanceParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogmeInstanceParametersOutput).ToLogmeInstanceParametersPtrOutputWithContext(ctx) +} + +// LogmeInstanceParametersPtrInput is an input type that accepts LogmeInstanceParametersArgs, LogmeInstanceParametersPtr and LogmeInstanceParametersPtrOutput values. +// You can construct a concrete instance of `LogmeInstanceParametersPtrInput` via: +// +// LogmeInstanceParametersArgs{...} +// +// or: +// +// nil +type LogmeInstanceParametersPtrInput interface { + pulumi.Input + + ToLogmeInstanceParametersPtrOutput() LogmeInstanceParametersPtrOutput + ToLogmeInstanceParametersPtrOutputWithContext(context.Context) LogmeInstanceParametersPtrOutput +} + +type logmeInstanceParametersPtrType LogmeInstanceParametersArgs + +func LogmeInstanceParametersPtr(v *LogmeInstanceParametersArgs) LogmeInstanceParametersPtrInput { + return (*logmeInstanceParametersPtrType)(v) +} + +func (*logmeInstanceParametersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LogmeInstanceParameters)(nil)).Elem() +} + +func (i *logmeInstanceParametersPtrType) ToLogmeInstanceParametersPtrOutput() LogmeInstanceParametersPtrOutput { + return i.ToLogmeInstanceParametersPtrOutputWithContext(context.Background()) +} + +func (i *logmeInstanceParametersPtrType) ToLogmeInstanceParametersPtrOutputWithContext(ctx context.Context) LogmeInstanceParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogmeInstanceParametersPtrOutput) +} + +type LogmeInstanceParametersOutput struct{ *pulumi.OutputState } + +func (LogmeInstanceParametersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LogmeInstanceParameters)(nil)).Elem() +} + +func (o LogmeInstanceParametersOutput) ToLogmeInstanceParametersOutput() LogmeInstanceParametersOutput { + return o +} + +func (o LogmeInstanceParametersOutput) ToLogmeInstanceParametersOutputWithContext(ctx context.Context) LogmeInstanceParametersOutput { + return o +} + +func (o LogmeInstanceParametersOutput) ToLogmeInstanceParametersPtrOutput() LogmeInstanceParametersPtrOutput { + return o.ToLogmeInstanceParametersPtrOutputWithContext(context.Background()) +} + +func (o LogmeInstanceParametersOutput) ToLogmeInstanceParametersPtrOutputWithContext(ctx context.Context) LogmeInstanceParametersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LogmeInstanceParameters) *LogmeInstanceParameters { + return &v + }).(LogmeInstanceParametersPtrOutput) +} + +// Enable monitoring. +func (o LogmeInstanceParametersOutput) EnableMonitoring() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *bool { return v.EnableMonitoring }).(pulumi.BoolPtrOutput) +} + +func (o LogmeInstanceParametersOutput) FluentdTcp() pulumi.IntPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *int { return v.FluentdTcp }).(pulumi.IntPtrOutput) +} + +func (o LogmeInstanceParametersOutput) FluentdTls() pulumi.IntPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *int { return v.FluentdTls }).(pulumi.IntPtrOutput) +} + +func (o LogmeInstanceParametersOutput) FluentdTlsCiphers() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.FluentdTlsCiphers }).(pulumi.StringPtrOutput) +} + +func (o LogmeInstanceParametersOutput) FluentdTlsMaxVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.FluentdTlsMaxVersion }).(pulumi.StringPtrOutput) +} + +func (o LogmeInstanceParametersOutput) FluentdTlsMinVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.FluentdTlsMinVersion }).(pulumi.StringPtrOutput) +} + +func (o LogmeInstanceParametersOutput) FluentdTlsVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.FluentdTlsVersion }).(pulumi.StringPtrOutput) +} + +func (o LogmeInstanceParametersOutput) FluentdUdp() pulumi.IntPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *int { return v.FluentdUdp }).(pulumi.IntPtrOutput) +} + +// If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). +func (o LogmeInstanceParametersOutput) Graphite() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.Graphite }).(pulumi.StringPtrOutput) +} + +// Combination of an integer and a timerange when an index will be considered "old" and can be deleted. Possible values for the timerange are `s`, `m`, `h` and `d`. +func (o LogmeInstanceParametersOutput) IsmDeletionAfter() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.IsmDeletionAfter }).(pulumi.StringPtrOutput) +} + +func (o LogmeInstanceParametersOutput) IsmJitter() pulumi.Float64PtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *float64 { return v.IsmJitter }).(pulumi.Float64PtrOutput) +} + +// Jitter of the execution time. +func (o LogmeInstanceParametersOutput) IsmJobInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *int { return v.IsmJobInterval }).(pulumi.IntPtrOutput) +} + +// The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. +func (o LogmeInstanceParametersOutput) JavaHeapspace() pulumi.IntPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *int { return v.JavaHeapspace }).(pulumi.IntPtrOutput) +} + +// The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. +func (o LogmeInstanceParametersOutput) JavaMaxmetaspace() pulumi.IntPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *int { return v.JavaMaxmetaspace }).(pulumi.IntPtrOutput) +} + +// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. +func (o LogmeInstanceParametersOutput) MaxDiskThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *int { return v.MaxDiskThreshold }).(pulumi.IntPtrOutput) +} + +// The frequency in seconds at which metrics are emitted (in seconds). +func (o LogmeInstanceParametersOutput) MetricsFrequency() pulumi.IntPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *int { return v.MetricsFrequency }).(pulumi.IntPtrOutput) +} + +// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. +func (o LogmeInstanceParametersOutput) MetricsPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.MetricsPrefix }).(pulumi.StringPtrOutput) +} + +// The ID of the STACKIT monitoring instance. +func (o LogmeInstanceParametersOutput) MonitoringInstanceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.MonitoringInstanceId }).(pulumi.StringPtrOutput) +} + +func (o LogmeInstanceParametersOutput) OpensearchTlsCiphers() pulumi.StringArrayOutput { + return o.ApplyT(func(v LogmeInstanceParameters) []string { return v.OpensearchTlsCiphers }).(pulumi.StringArrayOutput) +} + +func (o LogmeInstanceParametersOutput) OpensearchTlsProtocols() pulumi.StringArrayOutput { + return o.ApplyT(func(v LogmeInstanceParameters) []string { return v.OpensearchTlsProtocols }).(pulumi.StringArrayOutput) +} + +// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. +func (o LogmeInstanceParametersOutput) SgwAcl() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogmeInstanceParameters) *string { return v.SgwAcl }).(pulumi.StringPtrOutput) +} + +// List of syslog servers to send logs to. +func (o LogmeInstanceParametersOutput) Syslogs() pulumi.StringArrayOutput { + return o.ApplyT(func(v LogmeInstanceParameters) []string { return v.Syslogs }).(pulumi.StringArrayOutput) +} + +type LogmeInstanceParametersPtrOutput struct{ *pulumi.OutputState } + +func (LogmeInstanceParametersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogmeInstanceParameters)(nil)).Elem() +} + +func (o LogmeInstanceParametersPtrOutput) ToLogmeInstanceParametersPtrOutput() LogmeInstanceParametersPtrOutput { + return o +} + +func (o LogmeInstanceParametersPtrOutput) ToLogmeInstanceParametersPtrOutputWithContext(ctx context.Context) LogmeInstanceParametersPtrOutput { + return o +} + +func (o LogmeInstanceParametersPtrOutput) Elem() LogmeInstanceParametersOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) LogmeInstanceParameters { + if v != nil { + return *v + } + var ret LogmeInstanceParameters + return ret + }).(LogmeInstanceParametersOutput) +} + +// Enable monitoring. +func (o LogmeInstanceParametersPtrOutput) EnableMonitoring() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *bool { + if v == nil { + return nil + } + return v.EnableMonitoring + }).(pulumi.BoolPtrOutput) +} + +func (o LogmeInstanceParametersPtrOutput) FluentdTcp() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *int { + if v == nil { + return nil + } + return v.FluentdTcp + }).(pulumi.IntPtrOutput) +} + +func (o LogmeInstanceParametersPtrOutput) FluentdTls() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *int { + if v == nil { + return nil + } + return v.FluentdTls + }).(pulumi.IntPtrOutput) +} + +func (o LogmeInstanceParametersPtrOutput) FluentdTlsCiphers() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *string { + if v == nil { + return nil + } + return v.FluentdTlsCiphers + }).(pulumi.StringPtrOutput) +} + +func (o LogmeInstanceParametersPtrOutput) FluentdTlsMaxVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *string { + if v == nil { + return nil + } + return v.FluentdTlsMaxVersion + }).(pulumi.StringPtrOutput) +} + +func (o LogmeInstanceParametersPtrOutput) FluentdTlsMinVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *string { + if v == nil { + return nil + } + return v.FluentdTlsMinVersion + }).(pulumi.StringPtrOutput) +} + +func (o LogmeInstanceParametersPtrOutput) FluentdTlsVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *string { + if v == nil { + return nil + } + return v.FluentdTlsVersion + }).(pulumi.StringPtrOutput) +} + +func (o LogmeInstanceParametersPtrOutput) FluentdUdp() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *int { + if v == nil { + return nil + } + return v.FluentdUdp + }).(pulumi.IntPtrOutput) +} + +// If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). +func (o LogmeInstanceParametersPtrOutput) Graphite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *string { + if v == nil { + return nil + } + return v.Graphite + }).(pulumi.StringPtrOutput) +} + +// Combination of an integer and a timerange when an index will be considered "old" and can be deleted. Possible values for the timerange are `s`, `m`, `h` and `d`. +func (o LogmeInstanceParametersPtrOutput) IsmDeletionAfter() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *string { + if v == nil { + return nil + } + return v.IsmDeletionAfter + }).(pulumi.StringPtrOutput) +} + +func (o LogmeInstanceParametersPtrOutput) IsmJitter() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *float64 { + if v == nil { + return nil + } + return v.IsmJitter + }).(pulumi.Float64PtrOutput) +} + +// Jitter of the execution time. +func (o LogmeInstanceParametersPtrOutput) IsmJobInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *int { + if v == nil { + return nil + } + return v.IsmJobInterval + }).(pulumi.IntPtrOutput) +} + +// The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. +func (o LogmeInstanceParametersPtrOutput) JavaHeapspace() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *int { + if v == nil { + return nil + } + return v.JavaHeapspace + }).(pulumi.IntPtrOutput) +} + +// The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. +func (o LogmeInstanceParametersPtrOutput) JavaMaxmetaspace() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *int { + if v == nil { + return nil + } + return v.JavaMaxmetaspace + }).(pulumi.IntPtrOutput) +} + +// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. +func (o LogmeInstanceParametersPtrOutput) MaxDiskThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *int { + if v == nil { + return nil + } + return v.MaxDiskThreshold + }).(pulumi.IntPtrOutput) +} + +// The frequency in seconds at which metrics are emitted (in seconds). +func (o LogmeInstanceParametersPtrOutput) MetricsFrequency() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *int { + if v == nil { + return nil + } + return v.MetricsFrequency + }).(pulumi.IntPtrOutput) +} + +// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. +func (o LogmeInstanceParametersPtrOutput) MetricsPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *string { + if v == nil { + return nil + } + return v.MetricsPrefix + }).(pulumi.StringPtrOutput) +} + +// The ID of the STACKIT monitoring instance. +func (o LogmeInstanceParametersPtrOutput) MonitoringInstanceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *string { + if v == nil { + return nil + } + return v.MonitoringInstanceId + }).(pulumi.StringPtrOutput) +} + +func (o LogmeInstanceParametersPtrOutput) OpensearchTlsCiphers() pulumi.StringArrayOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) []string { + if v == nil { + return nil + } + return v.OpensearchTlsCiphers + }).(pulumi.StringArrayOutput) +} + +func (o LogmeInstanceParametersPtrOutput) OpensearchTlsProtocols() pulumi.StringArrayOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) []string { + if v == nil { + return nil + } + return v.OpensearchTlsProtocols + }).(pulumi.StringArrayOutput) +} + +// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. +func (o LogmeInstanceParametersPtrOutput) SgwAcl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) *string { + if v == nil { + return nil + } + return v.SgwAcl + }).(pulumi.StringPtrOutput) +} + +// List of syslog servers to send logs to. +func (o LogmeInstanceParametersPtrOutput) Syslogs() pulumi.StringArrayOutput { + return o.ApplyT(func(v *LogmeInstanceParameters) []string { + if v == nil { + return nil + } + return v.Syslogs + }).(pulumi.StringArrayOutput) +} + +type MariadbInstanceParameters struct { + // Enable monitoring. + EnableMonitoring *bool `pulumi:"enableMonitoring"` + // Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. + Graphite *string `pulumi:"graphite"` + // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + MaxDiskThreshold *int `pulumi:"maxDiskThreshold"` + // The frequency in seconds at which metrics are emitted. + MetricsFrequency *int `pulumi:"metricsFrequency"` + // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key + MetricsPrefix *string `pulumi:"metricsPrefix"` + // The ID of the STACKIT monitoring instance. Monitoring instances with the plan "Observability-Monitoring-Starter" are not supported. + MonitoringInstanceId *string `pulumi:"monitoringInstanceId"` + // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + SgwAcl *string `pulumi:"sgwAcl"` + // List of syslog servers to send logs to. + Syslogs []string `pulumi:"syslogs"` +} + +// MariadbInstanceParametersInput is an input type that accepts MariadbInstanceParametersArgs and MariadbInstanceParametersOutput values. +// You can construct a concrete instance of `MariadbInstanceParametersInput` via: +// +// MariadbInstanceParametersArgs{...} +type MariadbInstanceParametersInput interface { + pulumi.Input + + ToMariadbInstanceParametersOutput() MariadbInstanceParametersOutput + ToMariadbInstanceParametersOutputWithContext(context.Context) MariadbInstanceParametersOutput +} + +type MariadbInstanceParametersArgs struct { + // Enable monitoring. + EnableMonitoring pulumi.BoolPtrInput `pulumi:"enableMonitoring"` + // Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. + Graphite pulumi.StringPtrInput `pulumi:"graphite"` + // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + MaxDiskThreshold pulumi.IntPtrInput `pulumi:"maxDiskThreshold"` + // The frequency in seconds at which metrics are emitted. + MetricsFrequency pulumi.IntPtrInput `pulumi:"metricsFrequency"` + // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key + MetricsPrefix pulumi.StringPtrInput `pulumi:"metricsPrefix"` + // The ID of the STACKIT monitoring instance. Monitoring instances with the plan "Observability-Monitoring-Starter" are not supported. + MonitoringInstanceId pulumi.StringPtrInput `pulumi:"monitoringInstanceId"` + // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + SgwAcl pulumi.StringPtrInput `pulumi:"sgwAcl"` + // List of syslog servers to send logs to. + Syslogs pulumi.StringArrayInput `pulumi:"syslogs"` +} + +func (MariadbInstanceParametersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MariadbInstanceParameters)(nil)).Elem() +} + +func (i MariadbInstanceParametersArgs) ToMariadbInstanceParametersOutput() MariadbInstanceParametersOutput { + return i.ToMariadbInstanceParametersOutputWithContext(context.Background()) +} + +func (i MariadbInstanceParametersArgs) ToMariadbInstanceParametersOutputWithContext(ctx context.Context) MariadbInstanceParametersOutput { + return pulumi.ToOutputWithContext(ctx, i).(MariadbInstanceParametersOutput) +} + +func (i MariadbInstanceParametersArgs) ToMariadbInstanceParametersPtrOutput() MariadbInstanceParametersPtrOutput { + return i.ToMariadbInstanceParametersPtrOutputWithContext(context.Background()) +} + +func (i MariadbInstanceParametersArgs) ToMariadbInstanceParametersPtrOutputWithContext(ctx context.Context) MariadbInstanceParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MariadbInstanceParametersOutput).ToMariadbInstanceParametersPtrOutputWithContext(ctx) +} + +// MariadbInstanceParametersPtrInput is an input type that accepts MariadbInstanceParametersArgs, MariadbInstanceParametersPtr and MariadbInstanceParametersPtrOutput values. +// You can construct a concrete instance of `MariadbInstanceParametersPtrInput` via: +// +// MariadbInstanceParametersArgs{...} +// +// or: +// +// nil +type MariadbInstanceParametersPtrInput interface { + pulumi.Input + + ToMariadbInstanceParametersPtrOutput() MariadbInstanceParametersPtrOutput + ToMariadbInstanceParametersPtrOutputWithContext(context.Context) MariadbInstanceParametersPtrOutput +} + +type mariadbInstanceParametersPtrType MariadbInstanceParametersArgs + +func MariadbInstanceParametersPtr(v *MariadbInstanceParametersArgs) MariadbInstanceParametersPtrInput { + return (*mariadbInstanceParametersPtrType)(v) +} + +func (*mariadbInstanceParametersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MariadbInstanceParameters)(nil)).Elem() +} + +func (i *mariadbInstanceParametersPtrType) ToMariadbInstanceParametersPtrOutput() MariadbInstanceParametersPtrOutput { + return i.ToMariadbInstanceParametersPtrOutputWithContext(context.Background()) +} + +func (i *mariadbInstanceParametersPtrType) ToMariadbInstanceParametersPtrOutputWithContext(ctx context.Context) MariadbInstanceParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MariadbInstanceParametersPtrOutput) +} + +type MariadbInstanceParametersOutput struct{ *pulumi.OutputState } + +func (MariadbInstanceParametersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MariadbInstanceParameters)(nil)).Elem() +} + +func (o MariadbInstanceParametersOutput) ToMariadbInstanceParametersOutput() MariadbInstanceParametersOutput { + return o +} + +func (o MariadbInstanceParametersOutput) ToMariadbInstanceParametersOutputWithContext(ctx context.Context) MariadbInstanceParametersOutput { + return o +} + +func (o MariadbInstanceParametersOutput) ToMariadbInstanceParametersPtrOutput() MariadbInstanceParametersPtrOutput { + return o.ToMariadbInstanceParametersPtrOutputWithContext(context.Background()) +} + +func (o MariadbInstanceParametersOutput) ToMariadbInstanceParametersPtrOutputWithContext(ctx context.Context) MariadbInstanceParametersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MariadbInstanceParameters) *MariadbInstanceParameters { + return &v + }).(MariadbInstanceParametersPtrOutput) +} + +// Enable monitoring. +func (o MariadbInstanceParametersOutput) EnableMonitoring() pulumi.BoolPtrOutput { + return o.ApplyT(func(v MariadbInstanceParameters) *bool { return v.EnableMonitoring }).(pulumi.BoolPtrOutput) +} + +// Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. +func (o MariadbInstanceParametersOutput) Graphite() pulumi.StringPtrOutput { + return o.ApplyT(func(v MariadbInstanceParameters) *string { return v.Graphite }).(pulumi.StringPtrOutput) +} + +// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. +func (o MariadbInstanceParametersOutput) MaxDiskThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v MariadbInstanceParameters) *int { return v.MaxDiskThreshold }).(pulumi.IntPtrOutput) +} + +// The frequency in seconds at which metrics are emitted. +func (o MariadbInstanceParametersOutput) MetricsFrequency() pulumi.IntPtrOutput { + return o.ApplyT(func(v MariadbInstanceParameters) *int { return v.MetricsFrequency }).(pulumi.IntPtrOutput) +} + +// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key +func (o MariadbInstanceParametersOutput) MetricsPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v MariadbInstanceParameters) *string { return v.MetricsPrefix }).(pulumi.StringPtrOutput) +} + +// The ID of the STACKIT monitoring instance. Monitoring instances with the plan "Observability-Monitoring-Starter" are not supported. +func (o MariadbInstanceParametersOutput) MonitoringInstanceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v MariadbInstanceParameters) *string { return v.MonitoringInstanceId }).(pulumi.StringPtrOutput) +} + +// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. +func (o MariadbInstanceParametersOutput) SgwAcl() pulumi.StringPtrOutput { + return o.ApplyT(func(v MariadbInstanceParameters) *string { return v.SgwAcl }).(pulumi.StringPtrOutput) +} + +// List of syslog servers to send logs to. +func (o MariadbInstanceParametersOutput) Syslogs() pulumi.StringArrayOutput { + return o.ApplyT(func(v MariadbInstanceParameters) []string { return v.Syslogs }).(pulumi.StringArrayOutput) +} + +type MariadbInstanceParametersPtrOutput struct{ *pulumi.OutputState } + +func (MariadbInstanceParametersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MariadbInstanceParameters)(nil)).Elem() +} + +func (o MariadbInstanceParametersPtrOutput) ToMariadbInstanceParametersPtrOutput() MariadbInstanceParametersPtrOutput { + return o +} + +func (o MariadbInstanceParametersPtrOutput) ToMariadbInstanceParametersPtrOutputWithContext(ctx context.Context) MariadbInstanceParametersPtrOutput { + return o +} + +func (o MariadbInstanceParametersPtrOutput) Elem() MariadbInstanceParametersOutput { + return o.ApplyT(func(v *MariadbInstanceParameters) MariadbInstanceParameters { + if v != nil { + return *v + } + var ret MariadbInstanceParameters + return ret + }).(MariadbInstanceParametersOutput) +} + +// Enable monitoring. +func (o MariadbInstanceParametersPtrOutput) EnableMonitoring() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *MariadbInstanceParameters) *bool { + if v == nil { + return nil + } + return v.EnableMonitoring + }).(pulumi.BoolPtrOutput) +} + +// Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. +func (o MariadbInstanceParametersPtrOutput) Graphite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MariadbInstanceParameters) *string { + if v == nil { + return nil + } + return v.Graphite + }).(pulumi.StringPtrOutput) +} + +// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. +func (o MariadbInstanceParametersPtrOutput) MaxDiskThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MariadbInstanceParameters) *int { + if v == nil { + return nil + } + return v.MaxDiskThreshold + }).(pulumi.IntPtrOutput) +} + +// The frequency in seconds at which metrics are emitted. +func (o MariadbInstanceParametersPtrOutput) MetricsFrequency() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MariadbInstanceParameters) *int { + if v == nil { + return nil + } + return v.MetricsFrequency + }).(pulumi.IntPtrOutput) +} + +// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key +func (o MariadbInstanceParametersPtrOutput) MetricsPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MariadbInstanceParameters) *string { + if v == nil { + return nil + } + return v.MetricsPrefix + }).(pulumi.StringPtrOutput) +} + +// The ID of the STACKIT monitoring instance. Monitoring instances with the plan "Observability-Monitoring-Starter" are not supported. +func (o MariadbInstanceParametersPtrOutput) MonitoringInstanceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MariadbInstanceParameters) *string { + if v == nil { + return nil + } + return v.MonitoringInstanceId + }).(pulumi.StringPtrOutput) +} + +// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. +func (o MariadbInstanceParametersPtrOutput) SgwAcl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MariadbInstanceParameters) *string { + if v == nil { + return nil + } + return v.SgwAcl + }).(pulumi.StringPtrOutput) +} + +// List of syslog servers to send logs to. +func (o MariadbInstanceParametersPtrOutput) Syslogs() pulumi.StringArrayOutput { + return o.ApplyT(func(v *MariadbInstanceParameters) []string { + if v == nil { + return nil + } + return v.Syslogs + }).(pulumi.StringArrayOutput) +} + +type MongodbflexInstanceFlavor struct { + Cpu int `pulumi:"cpu"` + Description *string `pulumi:"description"` + Id *string `pulumi:"id"` + Ram int `pulumi:"ram"` +} + +// MongodbflexInstanceFlavorInput is an input type that accepts MongodbflexInstanceFlavorArgs and MongodbflexInstanceFlavorOutput values. +// You can construct a concrete instance of `MongodbflexInstanceFlavorInput` via: +// +// MongodbflexInstanceFlavorArgs{...} +type MongodbflexInstanceFlavorInput interface { + pulumi.Input + + ToMongodbflexInstanceFlavorOutput() MongodbflexInstanceFlavorOutput + ToMongodbflexInstanceFlavorOutputWithContext(context.Context) MongodbflexInstanceFlavorOutput +} + +type MongodbflexInstanceFlavorArgs struct { + Cpu pulumi.IntInput `pulumi:"cpu"` + Description pulumi.StringPtrInput `pulumi:"description"` + Id pulumi.StringPtrInput `pulumi:"id"` + Ram pulumi.IntInput `pulumi:"ram"` +} + +func (MongodbflexInstanceFlavorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MongodbflexInstanceFlavor)(nil)).Elem() +} + +func (i MongodbflexInstanceFlavorArgs) ToMongodbflexInstanceFlavorOutput() MongodbflexInstanceFlavorOutput { + return i.ToMongodbflexInstanceFlavorOutputWithContext(context.Background()) +} + +func (i MongodbflexInstanceFlavorArgs) ToMongodbflexInstanceFlavorOutputWithContext(ctx context.Context) MongodbflexInstanceFlavorOutput { + return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceFlavorOutput) +} + +func (i MongodbflexInstanceFlavorArgs) ToMongodbflexInstanceFlavorPtrOutput() MongodbflexInstanceFlavorPtrOutput { + return i.ToMongodbflexInstanceFlavorPtrOutputWithContext(context.Background()) +} + +func (i MongodbflexInstanceFlavorArgs) ToMongodbflexInstanceFlavorPtrOutputWithContext(ctx context.Context) MongodbflexInstanceFlavorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceFlavorOutput).ToMongodbflexInstanceFlavorPtrOutputWithContext(ctx) +} + +// MongodbflexInstanceFlavorPtrInput is an input type that accepts MongodbflexInstanceFlavorArgs, MongodbflexInstanceFlavorPtr and MongodbflexInstanceFlavorPtrOutput values. +// You can construct a concrete instance of `MongodbflexInstanceFlavorPtrInput` via: +// +// MongodbflexInstanceFlavorArgs{...} +// +// or: +// +// nil +type MongodbflexInstanceFlavorPtrInput interface { + pulumi.Input + + ToMongodbflexInstanceFlavorPtrOutput() MongodbflexInstanceFlavorPtrOutput + ToMongodbflexInstanceFlavorPtrOutputWithContext(context.Context) MongodbflexInstanceFlavorPtrOutput +} + +type mongodbflexInstanceFlavorPtrType MongodbflexInstanceFlavorArgs + +func MongodbflexInstanceFlavorPtr(v *MongodbflexInstanceFlavorArgs) MongodbflexInstanceFlavorPtrInput { + return (*mongodbflexInstanceFlavorPtrType)(v) +} + +func (*mongodbflexInstanceFlavorPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MongodbflexInstanceFlavor)(nil)).Elem() +} + +func (i *mongodbflexInstanceFlavorPtrType) ToMongodbflexInstanceFlavorPtrOutput() MongodbflexInstanceFlavorPtrOutput { + return i.ToMongodbflexInstanceFlavorPtrOutputWithContext(context.Background()) +} + +func (i *mongodbflexInstanceFlavorPtrType) ToMongodbflexInstanceFlavorPtrOutputWithContext(ctx context.Context) MongodbflexInstanceFlavorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceFlavorPtrOutput) +} + +type MongodbflexInstanceFlavorOutput struct{ *pulumi.OutputState } + +func (MongodbflexInstanceFlavorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MongodbflexInstanceFlavor)(nil)).Elem() +} + +func (o MongodbflexInstanceFlavorOutput) ToMongodbflexInstanceFlavorOutput() MongodbflexInstanceFlavorOutput { + return o +} + +func (o MongodbflexInstanceFlavorOutput) ToMongodbflexInstanceFlavorOutputWithContext(ctx context.Context) MongodbflexInstanceFlavorOutput { + return o +} + +func (o MongodbflexInstanceFlavorOutput) ToMongodbflexInstanceFlavorPtrOutput() MongodbflexInstanceFlavorPtrOutput { + return o.ToMongodbflexInstanceFlavorPtrOutputWithContext(context.Background()) +} + +func (o MongodbflexInstanceFlavorOutput) ToMongodbflexInstanceFlavorPtrOutputWithContext(ctx context.Context) MongodbflexInstanceFlavorPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MongodbflexInstanceFlavor) *MongodbflexInstanceFlavor { + return &v + }).(MongodbflexInstanceFlavorPtrOutput) +} + +func (o MongodbflexInstanceFlavorOutput) Cpu() pulumi.IntOutput { + return o.ApplyT(func(v MongodbflexInstanceFlavor) int { return v.Cpu }).(pulumi.IntOutput) +} + +func (o MongodbflexInstanceFlavorOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v MongodbflexInstanceFlavor) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o MongodbflexInstanceFlavorOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v MongodbflexInstanceFlavor) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +func (o MongodbflexInstanceFlavorOutput) Ram() pulumi.IntOutput { + return o.ApplyT(func(v MongodbflexInstanceFlavor) int { return v.Ram }).(pulumi.IntOutput) +} + +type MongodbflexInstanceFlavorPtrOutput struct{ *pulumi.OutputState } + +func (MongodbflexInstanceFlavorPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MongodbflexInstanceFlavor)(nil)).Elem() +} + +func (o MongodbflexInstanceFlavorPtrOutput) ToMongodbflexInstanceFlavorPtrOutput() MongodbflexInstanceFlavorPtrOutput { + return o +} + +func (o MongodbflexInstanceFlavorPtrOutput) ToMongodbflexInstanceFlavorPtrOutputWithContext(ctx context.Context) MongodbflexInstanceFlavorPtrOutput { + return o +} + +func (o MongodbflexInstanceFlavorPtrOutput) Elem() MongodbflexInstanceFlavorOutput { + return o.ApplyT(func(v *MongodbflexInstanceFlavor) MongodbflexInstanceFlavor { + if v != nil { + return *v + } + var ret MongodbflexInstanceFlavor + return ret + }).(MongodbflexInstanceFlavorOutput) +} + +func (o MongodbflexInstanceFlavorPtrOutput) Cpu() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MongodbflexInstanceFlavor) *int { + if v == nil { + return nil + } + return &v.Cpu + }).(pulumi.IntPtrOutput) +} + +func (o MongodbflexInstanceFlavorPtrOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MongodbflexInstanceFlavor) *string { + if v == nil { + return nil + } + return v.Description + }).(pulumi.StringPtrOutput) +} + +func (o MongodbflexInstanceFlavorPtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MongodbflexInstanceFlavor) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +func (o MongodbflexInstanceFlavorPtrOutput) Ram() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MongodbflexInstanceFlavor) *int { + if v == nil { + return nil + } + return &v.Ram + }).(pulumi.IntPtrOutput) +} + +type MongodbflexInstanceOptions struct { + // The number of days that daily backups will be retained. + DailySnapshotRetentionDays *int `pulumi:"dailySnapshotRetentionDays"` + // The number of months that monthly backups will be retained. + MonthlySnapshotRetentionMonths *int `pulumi:"monthlySnapshotRetentionMonths"` + // The number of hours back in time the point-in-time recovery feature will be able to recover. + PointInTimeWindowHours int `pulumi:"pointInTimeWindowHours"` + // The number of days that continuous backups (controlled via the `backupSchedule`) will be retained. + SnapshotRetentionDays *int `pulumi:"snapshotRetentionDays"` + // Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. + Type string `pulumi:"type"` + // The number of weeks that weekly backups will be retained. + WeeklySnapshotRetentionWeeks *int `pulumi:"weeklySnapshotRetentionWeeks"` +} + +// MongodbflexInstanceOptionsInput is an input type that accepts MongodbflexInstanceOptionsArgs and MongodbflexInstanceOptionsOutput values. +// You can construct a concrete instance of `MongodbflexInstanceOptionsInput` via: +// +// MongodbflexInstanceOptionsArgs{...} +type MongodbflexInstanceOptionsInput interface { + pulumi.Input + + ToMongodbflexInstanceOptionsOutput() MongodbflexInstanceOptionsOutput + ToMongodbflexInstanceOptionsOutputWithContext(context.Context) MongodbflexInstanceOptionsOutput +} + +type MongodbflexInstanceOptionsArgs struct { + // The number of days that daily backups will be retained. + DailySnapshotRetentionDays pulumi.IntPtrInput `pulumi:"dailySnapshotRetentionDays"` + // The number of months that monthly backups will be retained. + MonthlySnapshotRetentionMonths pulumi.IntPtrInput `pulumi:"monthlySnapshotRetentionMonths"` + // The number of hours back in time the point-in-time recovery feature will be able to recover. + PointInTimeWindowHours pulumi.IntInput `pulumi:"pointInTimeWindowHours"` + // The number of days that continuous backups (controlled via the `backupSchedule`) will be retained. + SnapshotRetentionDays pulumi.IntPtrInput `pulumi:"snapshotRetentionDays"` + // Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. + Type pulumi.StringInput `pulumi:"type"` + // The number of weeks that weekly backups will be retained. + WeeklySnapshotRetentionWeeks pulumi.IntPtrInput `pulumi:"weeklySnapshotRetentionWeeks"` +} + +func (MongodbflexInstanceOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MongodbflexInstanceOptions)(nil)).Elem() +} + +func (i MongodbflexInstanceOptionsArgs) ToMongodbflexInstanceOptionsOutput() MongodbflexInstanceOptionsOutput { + return i.ToMongodbflexInstanceOptionsOutputWithContext(context.Background()) +} + +func (i MongodbflexInstanceOptionsArgs) ToMongodbflexInstanceOptionsOutputWithContext(ctx context.Context) MongodbflexInstanceOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceOptionsOutput) +} + +func (i MongodbflexInstanceOptionsArgs) ToMongodbflexInstanceOptionsPtrOutput() MongodbflexInstanceOptionsPtrOutput { + return i.ToMongodbflexInstanceOptionsPtrOutputWithContext(context.Background()) +} + +func (i MongodbflexInstanceOptionsArgs) ToMongodbflexInstanceOptionsPtrOutputWithContext(ctx context.Context) MongodbflexInstanceOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceOptionsOutput).ToMongodbflexInstanceOptionsPtrOutputWithContext(ctx) +} + +// MongodbflexInstanceOptionsPtrInput is an input type that accepts MongodbflexInstanceOptionsArgs, MongodbflexInstanceOptionsPtr and MongodbflexInstanceOptionsPtrOutput values. +// You can construct a concrete instance of `MongodbflexInstanceOptionsPtrInput` via: +// +// MongodbflexInstanceOptionsArgs{...} +// +// or: +// +// nil +type MongodbflexInstanceOptionsPtrInput interface { + pulumi.Input + + ToMongodbflexInstanceOptionsPtrOutput() MongodbflexInstanceOptionsPtrOutput + ToMongodbflexInstanceOptionsPtrOutputWithContext(context.Context) MongodbflexInstanceOptionsPtrOutput +} + +type mongodbflexInstanceOptionsPtrType MongodbflexInstanceOptionsArgs + +func MongodbflexInstanceOptionsPtr(v *MongodbflexInstanceOptionsArgs) MongodbflexInstanceOptionsPtrInput { + return (*mongodbflexInstanceOptionsPtrType)(v) +} + +func (*mongodbflexInstanceOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MongodbflexInstanceOptions)(nil)).Elem() +} + +func (i *mongodbflexInstanceOptionsPtrType) ToMongodbflexInstanceOptionsPtrOutput() MongodbflexInstanceOptionsPtrOutput { + return i.ToMongodbflexInstanceOptionsPtrOutputWithContext(context.Background()) +} + +func (i *mongodbflexInstanceOptionsPtrType) ToMongodbflexInstanceOptionsPtrOutputWithContext(ctx context.Context) MongodbflexInstanceOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceOptionsPtrOutput) +} + +type MongodbflexInstanceOptionsOutput struct{ *pulumi.OutputState } + +func (MongodbflexInstanceOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MongodbflexInstanceOptions)(nil)).Elem() +} + +func (o MongodbflexInstanceOptionsOutput) ToMongodbflexInstanceOptionsOutput() MongodbflexInstanceOptionsOutput { + return o +} + +func (o MongodbflexInstanceOptionsOutput) ToMongodbflexInstanceOptionsOutputWithContext(ctx context.Context) MongodbflexInstanceOptionsOutput { + return o +} + +func (o MongodbflexInstanceOptionsOutput) ToMongodbflexInstanceOptionsPtrOutput() MongodbflexInstanceOptionsPtrOutput { + return o.ToMongodbflexInstanceOptionsPtrOutputWithContext(context.Background()) +} + +func (o MongodbflexInstanceOptionsOutput) ToMongodbflexInstanceOptionsPtrOutputWithContext(ctx context.Context) MongodbflexInstanceOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MongodbflexInstanceOptions) *MongodbflexInstanceOptions { + return &v + }).(MongodbflexInstanceOptionsPtrOutput) +} + +// The number of days that daily backups will be retained. +func (o MongodbflexInstanceOptionsOutput) DailySnapshotRetentionDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v MongodbflexInstanceOptions) *int { return v.DailySnapshotRetentionDays }).(pulumi.IntPtrOutput) +} + +// The number of months that monthly backups will be retained. +func (o MongodbflexInstanceOptionsOutput) MonthlySnapshotRetentionMonths() pulumi.IntPtrOutput { + return o.ApplyT(func(v MongodbflexInstanceOptions) *int { return v.MonthlySnapshotRetentionMonths }).(pulumi.IntPtrOutput) +} + +// The number of hours back in time the point-in-time recovery feature will be able to recover. +func (o MongodbflexInstanceOptionsOutput) PointInTimeWindowHours() pulumi.IntOutput { + return o.ApplyT(func(v MongodbflexInstanceOptions) int { return v.PointInTimeWindowHours }).(pulumi.IntOutput) +} + +// The number of days that continuous backups (controlled via the `backupSchedule`) will be retained. +func (o MongodbflexInstanceOptionsOutput) SnapshotRetentionDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v MongodbflexInstanceOptions) *int { return v.SnapshotRetentionDays }).(pulumi.IntPtrOutput) +} + +// Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. +func (o MongodbflexInstanceOptionsOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v MongodbflexInstanceOptions) string { return v.Type }).(pulumi.StringOutput) +} + +// The number of weeks that weekly backups will be retained. +func (o MongodbflexInstanceOptionsOutput) WeeklySnapshotRetentionWeeks() pulumi.IntPtrOutput { + return o.ApplyT(func(v MongodbflexInstanceOptions) *int { return v.WeeklySnapshotRetentionWeeks }).(pulumi.IntPtrOutput) +} + +type MongodbflexInstanceOptionsPtrOutput struct{ *pulumi.OutputState } + +func (MongodbflexInstanceOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MongodbflexInstanceOptions)(nil)).Elem() +} + +func (o MongodbflexInstanceOptionsPtrOutput) ToMongodbflexInstanceOptionsPtrOutput() MongodbflexInstanceOptionsPtrOutput { + return o +} + +func (o MongodbflexInstanceOptionsPtrOutput) ToMongodbflexInstanceOptionsPtrOutputWithContext(ctx context.Context) MongodbflexInstanceOptionsPtrOutput { + return o +} + +func (o MongodbflexInstanceOptionsPtrOutput) Elem() MongodbflexInstanceOptionsOutput { + return o.ApplyT(func(v *MongodbflexInstanceOptions) MongodbflexInstanceOptions { + if v != nil { + return *v + } + var ret MongodbflexInstanceOptions + return ret + }).(MongodbflexInstanceOptionsOutput) +} + +// The number of days that daily backups will be retained. +func (o MongodbflexInstanceOptionsPtrOutput) DailySnapshotRetentionDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MongodbflexInstanceOptions) *int { + if v == nil { + return nil + } + return v.DailySnapshotRetentionDays + }).(pulumi.IntPtrOutput) +} + +// The number of months that monthly backups will be retained. +func (o MongodbflexInstanceOptionsPtrOutput) MonthlySnapshotRetentionMonths() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MongodbflexInstanceOptions) *int { + if v == nil { + return nil + } + return v.MonthlySnapshotRetentionMonths + }).(pulumi.IntPtrOutput) +} + +// The number of hours back in time the point-in-time recovery feature will be able to recover. +func (o MongodbflexInstanceOptionsPtrOutput) PointInTimeWindowHours() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MongodbflexInstanceOptions) *int { + if v == nil { + return nil + } + return &v.PointInTimeWindowHours + }).(pulumi.IntPtrOutput) +} + +// The number of days that continuous backups (controlled via the `backupSchedule`) will be retained. +func (o MongodbflexInstanceOptionsPtrOutput) SnapshotRetentionDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MongodbflexInstanceOptions) *int { + if v == nil { + return nil + } + return v.SnapshotRetentionDays + }).(pulumi.IntPtrOutput) +} + +// Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. +func (o MongodbflexInstanceOptionsPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MongodbflexInstanceOptions) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +// The number of weeks that weekly backups will be retained. +func (o MongodbflexInstanceOptionsPtrOutput) WeeklySnapshotRetentionWeeks() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MongodbflexInstanceOptions) *int { + if v == nil { + return nil + } + return v.WeeklySnapshotRetentionWeeks + }).(pulumi.IntPtrOutput) +} + +type MongodbflexInstanceStorage struct { + Class string `pulumi:"class"` + Size int `pulumi:"size"` +} + +// MongodbflexInstanceStorageInput is an input type that accepts MongodbflexInstanceStorageArgs and MongodbflexInstanceStorageOutput values. +// You can construct a concrete instance of `MongodbflexInstanceStorageInput` via: +// +// MongodbflexInstanceStorageArgs{...} +type MongodbflexInstanceStorageInput interface { + pulumi.Input + + ToMongodbflexInstanceStorageOutput() MongodbflexInstanceStorageOutput + ToMongodbflexInstanceStorageOutputWithContext(context.Context) MongodbflexInstanceStorageOutput +} + +type MongodbflexInstanceStorageArgs struct { + Class pulumi.StringInput `pulumi:"class"` + Size pulumi.IntInput `pulumi:"size"` +} + +func (MongodbflexInstanceStorageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MongodbflexInstanceStorage)(nil)).Elem() +} + +func (i MongodbflexInstanceStorageArgs) ToMongodbflexInstanceStorageOutput() MongodbflexInstanceStorageOutput { + return i.ToMongodbflexInstanceStorageOutputWithContext(context.Background()) +} + +func (i MongodbflexInstanceStorageArgs) ToMongodbflexInstanceStorageOutputWithContext(ctx context.Context) MongodbflexInstanceStorageOutput { + return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceStorageOutput) +} + +func (i MongodbflexInstanceStorageArgs) ToMongodbflexInstanceStoragePtrOutput() MongodbflexInstanceStoragePtrOutput { + return i.ToMongodbflexInstanceStoragePtrOutputWithContext(context.Background()) +} + +func (i MongodbflexInstanceStorageArgs) ToMongodbflexInstanceStoragePtrOutputWithContext(ctx context.Context) MongodbflexInstanceStoragePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceStorageOutput).ToMongodbflexInstanceStoragePtrOutputWithContext(ctx) +} + +// MongodbflexInstanceStoragePtrInput is an input type that accepts MongodbflexInstanceStorageArgs, MongodbflexInstanceStoragePtr and MongodbflexInstanceStoragePtrOutput values. +// You can construct a concrete instance of `MongodbflexInstanceStoragePtrInput` via: +// +// MongodbflexInstanceStorageArgs{...} +// +// or: +// +// nil +type MongodbflexInstanceStoragePtrInput interface { + pulumi.Input + + ToMongodbflexInstanceStoragePtrOutput() MongodbflexInstanceStoragePtrOutput + ToMongodbflexInstanceStoragePtrOutputWithContext(context.Context) MongodbflexInstanceStoragePtrOutput +} + +type mongodbflexInstanceStoragePtrType MongodbflexInstanceStorageArgs + +func MongodbflexInstanceStoragePtr(v *MongodbflexInstanceStorageArgs) MongodbflexInstanceStoragePtrInput { + return (*mongodbflexInstanceStoragePtrType)(v) +} + +func (*mongodbflexInstanceStoragePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MongodbflexInstanceStorage)(nil)).Elem() +} + +func (i *mongodbflexInstanceStoragePtrType) ToMongodbflexInstanceStoragePtrOutput() MongodbflexInstanceStoragePtrOutput { + return i.ToMongodbflexInstanceStoragePtrOutputWithContext(context.Background()) +} + +func (i *mongodbflexInstanceStoragePtrType) ToMongodbflexInstanceStoragePtrOutputWithContext(ctx context.Context) MongodbflexInstanceStoragePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MongodbflexInstanceStoragePtrOutput) +} + +type MongodbflexInstanceStorageOutput struct{ *pulumi.OutputState } + +func (MongodbflexInstanceStorageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MongodbflexInstanceStorage)(nil)).Elem() +} + +func (o MongodbflexInstanceStorageOutput) ToMongodbflexInstanceStorageOutput() MongodbflexInstanceStorageOutput { + return o +} + +func (o MongodbflexInstanceStorageOutput) ToMongodbflexInstanceStorageOutputWithContext(ctx context.Context) MongodbflexInstanceStorageOutput { + return o +} + +func (o MongodbflexInstanceStorageOutput) ToMongodbflexInstanceStoragePtrOutput() MongodbflexInstanceStoragePtrOutput { + return o.ToMongodbflexInstanceStoragePtrOutputWithContext(context.Background()) +} + +func (o MongodbflexInstanceStorageOutput) ToMongodbflexInstanceStoragePtrOutputWithContext(ctx context.Context) MongodbflexInstanceStoragePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MongodbflexInstanceStorage) *MongodbflexInstanceStorage { + return &v + }).(MongodbflexInstanceStoragePtrOutput) +} + +func (o MongodbflexInstanceStorageOutput) Class() pulumi.StringOutput { + return o.ApplyT(func(v MongodbflexInstanceStorage) string { return v.Class }).(pulumi.StringOutput) +} + +func (o MongodbflexInstanceStorageOutput) Size() pulumi.IntOutput { + return o.ApplyT(func(v MongodbflexInstanceStorage) int { return v.Size }).(pulumi.IntOutput) +} + +type MongodbflexInstanceStoragePtrOutput struct{ *pulumi.OutputState } + +func (MongodbflexInstanceStoragePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MongodbflexInstanceStorage)(nil)).Elem() +} + +func (o MongodbflexInstanceStoragePtrOutput) ToMongodbflexInstanceStoragePtrOutput() MongodbflexInstanceStoragePtrOutput { + return o +} + +func (o MongodbflexInstanceStoragePtrOutput) ToMongodbflexInstanceStoragePtrOutputWithContext(ctx context.Context) MongodbflexInstanceStoragePtrOutput { + return o +} + +func (o MongodbflexInstanceStoragePtrOutput) Elem() MongodbflexInstanceStorageOutput { + return o.ApplyT(func(v *MongodbflexInstanceStorage) MongodbflexInstanceStorage { + if v != nil { + return *v + } + var ret MongodbflexInstanceStorage + return ret + }).(MongodbflexInstanceStorageOutput) +} + +func (o MongodbflexInstanceStoragePtrOutput) Class() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MongodbflexInstanceStorage) *string { + if v == nil { + return nil + } + return &v.Class + }).(pulumi.StringPtrOutput) +} + +func (o MongodbflexInstanceStoragePtrOutput) Size() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MongodbflexInstanceStorage) *int { + if v == nil { + return nil + } + return &v.Size + }).(pulumi.IntPtrOutput) +} + +type NetworkAreaNetworkRange struct { + // Deprecated: Deprecated because of the IaaS API v1 -> v2 migration. Will be removed in May 2026. Use the new `NetworkAreaRegion` resource instead. + NetworkRangeId *string `pulumi:"networkRangeId"` + // Classless Inter-Domain Routing (CIDR). + // + // Deprecated: Deprecated because of the IaaS API v1 -> v2 migration. Will be removed in May 2026. Use the new `NetworkAreaRegion` resource instead. + Prefix string `pulumi:"prefix"` +} + +// NetworkAreaNetworkRangeInput is an input type that accepts NetworkAreaNetworkRangeArgs and NetworkAreaNetworkRangeOutput values. +// You can construct a concrete instance of `NetworkAreaNetworkRangeInput` via: +// +// NetworkAreaNetworkRangeArgs{...} +type NetworkAreaNetworkRangeInput interface { + pulumi.Input + + ToNetworkAreaNetworkRangeOutput() NetworkAreaNetworkRangeOutput + ToNetworkAreaNetworkRangeOutputWithContext(context.Context) NetworkAreaNetworkRangeOutput +} + +type NetworkAreaNetworkRangeArgs struct { + // Deprecated: Deprecated because of the IaaS API v1 -> v2 migration. Will be removed in May 2026. Use the new `NetworkAreaRegion` resource instead. + NetworkRangeId pulumi.StringPtrInput `pulumi:"networkRangeId"` + // Classless Inter-Domain Routing (CIDR). + // + // Deprecated: Deprecated because of the IaaS API v1 -> v2 migration. Will be removed in May 2026. Use the new `NetworkAreaRegion` resource instead. + Prefix pulumi.StringInput `pulumi:"prefix"` +} + +func (NetworkAreaNetworkRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkAreaNetworkRange)(nil)).Elem() +} + +func (i NetworkAreaNetworkRangeArgs) ToNetworkAreaNetworkRangeOutput() NetworkAreaNetworkRangeOutput { + return i.ToNetworkAreaNetworkRangeOutputWithContext(context.Background()) +} + +func (i NetworkAreaNetworkRangeArgs) ToNetworkAreaNetworkRangeOutputWithContext(ctx context.Context) NetworkAreaNetworkRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaNetworkRangeOutput) +} + +// NetworkAreaNetworkRangeArrayInput is an input type that accepts NetworkAreaNetworkRangeArray and NetworkAreaNetworkRangeArrayOutput values. +// You can construct a concrete instance of `NetworkAreaNetworkRangeArrayInput` via: +// +// NetworkAreaNetworkRangeArray{ NetworkAreaNetworkRangeArgs{...} } +type NetworkAreaNetworkRangeArrayInput interface { + pulumi.Input + + ToNetworkAreaNetworkRangeArrayOutput() NetworkAreaNetworkRangeArrayOutput + ToNetworkAreaNetworkRangeArrayOutputWithContext(context.Context) NetworkAreaNetworkRangeArrayOutput +} + +type NetworkAreaNetworkRangeArray []NetworkAreaNetworkRangeInput + +func (NetworkAreaNetworkRangeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]NetworkAreaNetworkRange)(nil)).Elem() +} + +func (i NetworkAreaNetworkRangeArray) ToNetworkAreaNetworkRangeArrayOutput() NetworkAreaNetworkRangeArrayOutput { + return i.ToNetworkAreaNetworkRangeArrayOutputWithContext(context.Background()) +} + +func (i NetworkAreaNetworkRangeArray) ToNetworkAreaNetworkRangeArrayOutputWithContext(ctx context.Context) NetworkAreaNetworkRangeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaNetworkRangeArrayOutput) +} + +type NetworkAreaNetworkRangeOutput struct{ *pulumi.OutputState } + +func (NetworkAreaNetworkRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkAreaNetworkRange)(nil)).Elem() +} + +func (o NetworkAreaNetworkRangeOutput) ToNetworkAreaNetworkRangeOutput() NetworkAreaNetworkRangeOutput { + return o +} + +func (o NetworkAreaNetworkRangeOutput) ToNetworkAreaNetworkRangeOutputWithContext(ctx context.Context) NetworkAreaNetworkRangeOutput { + return o +} + +// Deprecated: Deprecated because of the IaaS API v1 -> v2 migration. Will be removed in May 2026. Use the new `NetworkAreaRegion` resource instead. +func (o NetworkAreaNetworkRangeOutput) NetworkRangeId() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkAreaNetworkRange) *string { return v.NetworkRangeId }).(pulumi.StringPtrOutput) +} + +// Classless Inter-Domain Routing (CIDR). +// +// Deprecated: Deprecated because of the IaaS API v1 -> v2 migration. Will be removed in May 2026. Use the new `NetworkAreaRegion` resource instead. +func (o NetworkAreaNetworkRangeOutput) Prefix() pulumi.StringOutput { + return o.ApplyT(func(v NetworkAreaNetworkRange) string { return v.Prefix }).(pulumi.StringOutput) +} + +type NetworkAreaNetworkRangeArrayOutput struct{ *pulumi.OutputState } + +func (NetworkAreaNetworkRangeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]NetworkAreaNetworkRange)(nil)).Elem() +} + +func (o NetworkAreaNetworkRangeArrayOutput) ToNetworkAreaNetworkRangeArrayOutput() NetworkAreaNetworkRangeArrayOutput { + return o +} + +func (o NetworkAreaNetworkRangeArrayOutput) ToNetworkAreaNetworkRangeArrayOutputWithContext(ctx context.Context) NetworkAreaNetworkRangeArrayOutput { + return o +} + +func (o NetworkAreaNetworkRangeArrayOutput) Index(i pulumi.IntInput) NetworkAreaNetworkRangeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) NetworkAreaNetworkRange { + return vs[0].([]NetworkAreaNetworkRange)[vs[1].(int)] + }).(NetworkAreaNetworkRangeOutput) +} + +type NetworkAreaRegionIpv4 struct { + // List of DNS Servers/Nameservers. + DefaultNameservers []string `pulumi:"defaultNameservers"` + // The default prefix length for networks in the network area. + DefaultPrefixLength *int `pulumi:"defaultPrefixLength"` + // The maximal prefix length for networks in the network area. + MaxPrefixLength *int `pulumi:"maxPrefixLength"` + // The minimal prefix length for networks in the network area. + MinPrefixLength *int `pulumi:"minPrefixLength"` + // List of Network ranges. + NetworkRanges []NetworkAreaRegionIpv4NetworkRange `pulumi:"networkRanges"` + // IPv4 Classless Inter-Domain Routing (CIDR). + TransferNetwork string `pulumi:"transferNetwork"` +} + +// NetworkAreaRegionIpv4Input is an input type that accepts NetworkAreaRegionIpv4Args and NetworkAreaRegionIpv4Output values. +// You can construct a concrete instance of `NetworkAreaRegionIpv4Input` via: +// +// NetworkAreaRegionIpv4Args{...} +type NetworkAreaRegionIpv4Input interface { + pulumi.Input + + ToNetworkAreaRegionIpv4Output() NetworkAreaRegionIpv4Output + ToNetworkAreaRegionIpv4OutputWithContext(context.Context) NetworkAreaRegionIpv4Output +} + +type NetworkAreaRegionIpv4Args struct { + // List of DNS Servers/Nameservers. + DefaultNameservers pulumi.StringArrayInput `pulumi:"defaultNameservers"` + // The default prefix length for networks in the network area. + DefaultPrefixLength pulumi.IntPtrInput `pulumi:"defaultPrefixLength"` + // The maximal prefix length for networks in the network area. + MaxPrefixLength pulumi.IntPtrInput `pulumi:"maxPrefixLength"` + // The minimal prefix length for networks in the network area. + MinPrefixLength pulumi.IntPtrInput `pulumi:"minPrefixLength"` + // List of Network ranges. + NetworkRanges NetworkAreaRegionIpv4NetworkRangeArrayInput `pulumi:"networkRanges"` + // IPv4 Classless Inter-Domain Routing (CIDR). + TransferNetwork pulumi.StringInput `pulumi:"transferNetwork"` +} + +func (NetworkAreaRegionIpv4Args) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkAreaRegionIpv4)(nil)).Elem() +} + +func (i NetworkAreaRegionIpv4Args) ToNetworkAreaRegionIpv4Output() NetworkAreaRegionIpv4Output { + return i.ToNetworkAreaRegionIpv4OutputWithContext(context.Background()) +} + +func (i NetworkAreaRegionIpv4Args) ToNetworkAreaRegionIpv4OutputWithContext(ctx context.Context) NetworkAreaRegionIpv4Output { + return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRegionIpv4Output) +} + +func (i NetworkAreaRegionIpv4Args) ToNetworkAreaRegionIpv4PtrOutput() NetworkAreaRegionIpv4PtrOutput { + return i.ToNetworkAreaRegionIpv4PtrOutputWithContext(context.Background()) +} + +func (i NetworkAreaRegionIpv4Args) ToNetworkAreaRegionIpv4PtrOutputWithContext(ctx context.Context) NetworkAreaRegionIpv4PtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRegionIpv4Output).ToNetworkAreaRegionIpv4PtrOutputWithContext(ctx) +} + +// NetworkAreaRegionIpv4PtrInput is an input type that accepts NetworkAreaRegionIpv4Args, NetworkAreaRegionIpv4Ptr and NetworkAreaRegionIpv4PtrOutput values. +// You can construct a concrete instance of `NetworkAreaRegionIpv4PtrInput` via: +// +// NetworkAreaRegionIpv4Args{...} +// +// or: +// +// nil +type NetworkAreaRegionIpv4PtrInput interface { + pulumi.Input + + ToNetworkAreaRegionIpv4PtrOutput() NetworkAreaRegionIpv4PtrOutput + ToNetworkAreaRegionIpv4PtrOutputWithContext(context.Context) NetworkAreaRegionIpv4PtrOutput +} + +type networkAreaRegionIpv4PtrType NetworkAreaRegionIpv4Args + +func NetworkAreaRegionIpv4Ptr(v *NetworkAreaRegionIpv4Args) NetworkAreaRegionIpv4PtrInput { + return (*networkAreaRegionIpv4PtrType)(v) +} + +func (*networkAreaRegionIpv4PtrType) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkAreaRegionIpv4)(nil)).Elem() +} + +func (i *networkAreaRegionIpv4PtrType) ToNetworkAreaRegionIpv4PtrOutput() NetworkAreaRegionIpv4PtrOutput { + return i.ToNetworkAreaRegionIpv4PtrOutputWithContext(context.Background()) +} + +func (i *networkAreaRegionIpv4PtrType) ToNetworkAreaRegionIpv4PtrOutputWithContext(ctx context.Context) NetworkAreaRegionIpv4PtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRegionIpv4PtrOutput) +} + +type NetworkAreaRegionIpv4Output struct{ *pulumi.OutputState } + +func (NetworkAreaRegionIpv4Output) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkAreaRegionIpv4)(nil)).Elem() +} + +func (o NetworkAreaRegionIpv4Output) ToNetworkAreaRegionIpv4Output() NetworkAreaRegionIpv4Output { + return o +} + +func (o NetworkAreaRegionIpv4Output) ToNetworkAreaRegionIpv4OutputWithContext(ctx context.Context) NetworkAreaRegionIpv4Output { + return o +} + +func (o NetworkAreaRegionIpv4Output) ToNetworkAreaRegionIpv4PtrOutput() NetworkAreaRegionIpv4PtrOutput { + return o.ToNetworkAreaRegionIpv4PtrOutputWithContext(context.Background()) +} + +func (o NetworkAreaRegionIpv4Output) ToNetworkAreaRegionIpv4PtrOutputWithContext(ctx context.Context) NetworkAreaRegionIpv4PtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkAreaRegionIpv4) *NetworkAreaRegionIpv4 { + return &v + }).(NetworkAreaRegionIpv4PtrOutput) +} + +// List of DNS Servers/Nameservers. +func (o NetworkAreaRegionIpv4Output) DefaultNameservers() pulumi.StringArrayOutput { + return o.ApplyT(func(v NetworkAreaRegionIpv4) []string { return v.DefaultNameservers }).(pulumi.StringArrayOutput) +} + +// The default prefix length for networks in the network area. +func (o NetworkAreaRegionIpv4Output) DefaultPrefixLength() pulumi.IntPtrOutput { + return o.ApplyT(func(v NetworkAreaRegionIpv4) *int { return v.DefaultPrefixLength }).(pulumi.IntPtrOutput) +} + +// The maximal prefix length for networks in the network area. +func (o NetworkAreaRegionIpv4Output) MaxPrefixLength() pulumi.IntPtrOutput { + return o.ApplyT(func(v NetworkAreaRegionIpv4) *int { return v.MaxPrefixLength }).(pulumi.IntPtrOutput) +} + +// The minimal prefix length for networks in the network area. +func (o NetworkAreaRegionIpv4Output) MinPrefixLength() pulumi.IntPtrOutput { + return o.ApplyT(func(v NetworkAreaRegionIpv4) *int { return v.MinPrefixLength }).(pulumi.IntPtrOutput) +} + +// List of Network ranges. +func (o NetworkAreaRegionIpv4Output) NetworkRanges() NetworkAreaRegionIpv4NetworkRangeArrayOutput { + return o.ApplyT(func(v NetworkAreaRegionIpv4) []NetworkAreaRegionIpv4NetworkRange { return v.NetworkRanges }).(NetworkAreaRegionIpv4NetworkRangeArrayOutput) +} + +// IPv4 Classless Inter-Domain Routing (CIDR). +func (o NetworkAreaRegionIpv4Output) TransferNetwork() pulumi.StringOutput { + return o.ApplyT(func(v NetworkAreaRegionIpv4) string { return v.TransferNetwork }).(pulumi.StringOutput) +} + +type NetworkAreaRegionIpv4PtrOutput struct{ *pulumi.OutputState } + +func (NetworkAreaRegionIpv4PtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkAreaRegionIpv4)(nil)).Elem() +} + +func (o NetworkAreaRegionIpv4PtrOutput) ToNetworkAreaRegionIpv4PtrOutput() NetworkAreaRegionIpv4PtrOutput { + return o +} + +func (o NetworkAreaRegionIpv4PtrOutput) ToNetworkAreaRegionIpv4PtrOutputWithContext(ctx context.Context) NetworkAreaRegionIpv4PtrOutput { + return o +} + +func (o NetworkAreaRegionIpv4PtrOutput) Elem() NetworkAreaRegionIpv4Output { + return o.ApplyT(func(v *NetworkAreaRegionIpv4) NetworkAreaRegionIpv4 { + if v != nil { + return *v + } + var ret NetworkAreaRegionIpv4 + return ret + }).(NetworkAreaRegionIpv4Output) +} + +// List of DNS Servers/Nameservers. +func (o NetworkAreaRegionIpv4PtrOutput) DefaultNameservers() pulumi.StringArrayOutput { + return o.ApplyT(func(v *NetworkAreaRegionIpv4) []string { + if v == nil { + return nil + } + return v.DefaultNameservers + }).(pulumi.StringArrayOutput) +} + +// The default prefix length for networks in the network area. +func (o NetworkAreaRegionIpv4PtrOutput) DefaultPrefixLength() pulumi.IntPtrOutput { + return o.ApplyT(func(v *NetworkAreaRegionIpv4) *int { + if v == nil { + return nil + } + return v.DefaultPrefixLength + }).(pulumi.IntPtrOutput) +} + +// The maximal prefix length for networks in the network area. +func (o NetworkAreaRegionIpv4PtrOutput) MaxPrefixLength() pulumi.IntPtrOutput { + return o.ApplyT(func(v *NetworkAreaRegionIpv4) *int { + if v == nil { + return nil + } + return v.MaxPrefixLength + }).(pulumi.IntPtrOutput) +} + +// The minimal prefix length for networks in the network area. +func (o NetworkAreaRegionIpv4PtrOutput) MinPrefixLength() pulumi.IntPtrOutput { + return o.ApplyT(func(v *NetworkAreaRegionIpv4) *int { + if v == nil { + return nil + } + return v.MinPrefixLength + }).(pulumi.IntPtrOutput) +} + +// List of Network ranges. +func (o NetworkAreaRegionIpv4PtrOutput) NetworkRanges() NetworkAreaRegionIpv4NetworkRangeArrayOutput { + return o.ApplyT(func(v *NetworkAreaRegionIpv4) []NetworkAreaRegionIpv4NetworkRange { + if v == nil { + return nil + } + return v.NetworkRanges + }).(NetworkAreaRegionIpv4NetworkRangeArrayOutput) +} + +// IPv4 Classless Inter-Domain Routing (CIDR). +func (o NetworkAreaRegionIpv4PtrOutput) TransferNetwork() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkAreaRegionIpv4) *string { + if v == nil { + return nil + } + return &v.TransferNetwork + }).(pulumi.StringPtrOutput) +} + +type NetworkAreaRegionIpv4NetworkRange struct { + NetworkRangeId *string `pulumi:"networkRangeId"` + // Classless Inter-Domain Routing (CIDR). + Prefix string `pulumi:"prefix"` +} + +// NetworkAreaRegionIpv4NetworkRangeInput is an input type that accepts NetworkAreaRegionIpv4NetworkRangeArgs and NetworkAreaRegionIpv4NetworkRangeOutput values. +// You can construct a concrete instance of `NetworkAreaRegionIpv4NetworkRangeInput` via: +// +// NetworkAreaRegionIpv4NetworkRangeArgs{...} +type NetworkAreaRegionIpv4NetworkRangeInput interface { + pulumi.Input + + ToNetworkAreaRegionIpv4NetworkRangeOutput() NetworkAreaRegionIpv4NetworkRangeOutput + ToNetworkAreaRegionIpv4NetworkRangeOutputWithContext(context.Context) NetworkAreaRegionIpv4NetworkRangeOutput +} + +type NetworkAreaRegionIpv4NetworkRangeArgs struct { + NetworkRangeId pulumi.StringPtrInput `pulumi:"networkRangeId"` + // Classless Inter-Domain Routing (CIDR). + Prefix pulumi.StringInput `pulumi:"prefix"` +} + +func (NetworkAreaRegionIpv4NetworkRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkAreaRegionIpv4NetworkRange)(nil)).Elem() +} + +func (i NetworkAreaRegionIpv4NetworkRangeArgs) ToNetworkAreaRegionIpv4NetworkRangeOutput() NetworkAreaRegionIpv4NetworkRangeOutput { + return i.ToNetworkAreaRegionIpv4NetworkRangeOutputWithContext(context.Background()) +} + +func (i NetworkAreaRegionIpv4NetworkRangeArgs) ToNetworkAreaRegionIpv4NetworkRangeOutputWithContext(ctx context.Context) NetworkAreaRegionIpv4NetworkRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRegionIpv4NetworkRangeOutput) +} + +// NetworkAreaRegionIpv4NetworkRangeArrayInput is an input type that accepts NetworkAreaRegionIpv4NetworkRangeArray and NetworkAreaRegionIpv4NetworkRangeArrayOutput values. +// You can construct a concrete instance of `NetworkAreaRegionIpv4NetworkRangeArrayInput` via: +// +// NetworkAreaRegionIpv4NetworkRangeArray{ NetworkAreaRegionIpv4NetworkRangeArgs{...} } +type NetworkAreaRegionIpv4NetworkRangeArrayInput interface { + pulumi.Input + + ToNetworkAreaRegionIpv4NetworkRangeArrayOutput() NetworkAreaRegionIpv4NetworkRangeArrayOutput + ToNetworkAreaRegionIpv4NetworkRangeArrayOutputWithContext(context.Context) NetworkAreaRegionIpv4NetworkRangeArrayOutput +} + +type NetworkAreaRegionIpv4NetworkRangeArray []NetworkAreaRegionIpv4NetworkRangeInput + +func (NetworkAreaRegionIpv4NetworkRangeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]NetworkAreaRegionIpv4NetworkRange)(nil)).Elem() +} + +func (i NetworkAreaRegionIpv4NetworkRangeArray) ToNetworkAreaRegionIpv4NetworkRangeArrayOutput() NetworkAreaRegionIpv4NetworkRangeArrayOutput { + return i.ToNetworkAreaRegionIpv4NetworkRangeArrayOutputWithContext(context.Background()) +} + +func (i NetworkAreaRegionIpv4NetworkRangeArray) ToNetworkAreaRegionIpv4NetworkRangeArrayOutputWithContext(ctx context.Context) NetworkAreaRegionIpv4NetworkRangeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRegionIpv4NetworkRangeArrayOutput) +} + +type NetworkAreaRegionIpv4NetworkRangeOutput struct{ *pulumi.OutputState } + +func (NetworkAreaRegionIpv4NetworkRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkAreaRegionIpv4NetworkRange)(nil)).Elem() +} + +func (o NetworkAreaRegionIpv4NetworkRangeOutput) ToNetworkAreaRegionIpv4NetworkRangeOutput() NetworkAreaRegionIpv4NetworkRangeOutput { + return o +} + +func (o NetworkAreaRegionIpv4NetworkRangeOutput) ToNetworkAreaRegionIpv4NetworkRangeOutputWithContext(ctx context.Context) NetworkAreaRegionIpv4NetworkRangeOutput { + return o +} + +func (o NetworkAreaRegionIpv4NetworkRangeOutput) NetworkRangeId() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkAreaRegionIpv4NetworkRange) *string { return v.NetworkRangeId }).(pulumi.StringPtrOutput) +} + +// Classless Inter-Domain Routing (CIDR). +func (o NetworkAreaRegionIpv4NetworkRangeOutput) Prefix() pulumi.StringOutput { + return o.ApplyT(func(v NetworkAreaRegionIpv4NetworkRange) string { return v.Prefix }).(pulumi.StringOutput) +} + +type NetworkAreaRegionIpv4NetworkRangeArrayOutput struct{ *pulumi.OutputState } + +func (NetworkAreaRegionIpv4NetworkRangeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]NetworkAreaRegionIpv4NetworkRange)(nil)).Elem() +} + +func (o NetworkAreaRegionIpv4NetworkRangeArrayOutput) ToNetworkAreaRegionIpv4NetworkRangeArrayOutput() NetworkAreaRegionIpv4NetworkRangeArrayOutput { + return o +} + +func (o NetworkAreaRegionIpv4NetworkRangeArrayOutput) ToNetworkAreaRegionIpv4NetworkRangeArrayOutputWithContext(ctx context.Context) NetworkAreaRegionIpv4NetworkRangeArrayOutput { + return o +} + +func (o NetworkAreaRegionIpv4NetworkRangeArrayOutput) Index(i pulumi.IntInput) NetworkAreaRegionIpv4NetworkRangeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) NetworkAreaRegionIpv4NetworkRange { + return vs[0].([]NetworkAreaRegionIpv4NetworkRange)[vs[1].(int)] + }).(NetworkAreaRegionIpv4NetworkRangeOutput) +} + +type NetworkAreaRouteDestination struct { + // CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported currently. + Type string `pulumi:"type"` + // An CIDR string. + Value string `pulumi:"value"` +} + +// NetworkAreaRouteDestinationInput is an input type that accepts NetworkAreaRouteDestinationArgs and NetworkAreaRouteDestinationOutput values. +// You can construct a concrete instance of `NetworkAreaRouteDestinationInput` via: +// +// NetworkAreaRouteDestinationArgs{...} +type NetworkAreaRouteDestinationInput interface { + pulumi.Input + + ToNetworkAreaRouteDestinationOutput() NetworkAreaRouteDestinationOutput + ToNetworkAreaRouteDestinationOutputWithContext(context.Context) NetworkAreaRouteDestinationOutput +} + +type NetworkAreaRouteDestinationArgs struct { + // CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported currently. + Type pulumi.StringInput `pulumi:"type"` + // An CIDR string. + Value pulumi.StringInput `pulumi:"value"` +} + +func (NetworkAreaRouteDestinationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkAreaRouteDestination)(nil)).Elem() +} + +func (i NetworkAreaRouteDestinationArgs) ToNetworkAreaRouteDestinationOutput() NetworkAreaRouteDestinationOutput { + return i.ToNetworkAreaRouteDestinationOutputWithContext(context.Background()) +} + +func (i NetworkAreaRouteDestinationArgs) ToNetworkAreaRouteDestinationOutputWithContext(ctx context.Context) NetworkAreaRouteDestinationOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRouteDestinationOutput) +} + +func (i NetworkAreaRouteDestinationArgs) ToNetworkAreaRouteDestinationPtrOutput() NetworkAreaRouteDestinationPtrOutput { + return i.ToNetworkAreaRouteDestinationPtrOutputWithContext(context.Background()) +} + +func (i NetworkAreaRouteDestinationArgs) ToNetworkAreaRouteDestinationPtrOutputWithContext(ctx context.Context) NetworkAreaRouteDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRouteDestinationOutput).ToNetworkAreaRouteDestinationPtrOutputWithContext(ctx) +} + +// NetworkAreaRouteDestinationPtrInput is an input type that accepts NetworkAreaRouteDestinationArgs, NetworkAreaRouteDestinationPtr and NetworkAreaRouteDestinationPtrOutput values. +// You can construct a concrete instance of `NetworkAreaRouteDestinationPtrInput` via: +// +// NetworkAreaRouteDestinationArgs{...} +// +// or: +// +// nil +type NetworkAreaRouteDestinationPtrInput interface { + pulumi.Input + + ToNetworkAreaRouteDestinationPtrOutput() NetworkAreaRouteDestinationPtrOutput + ToNetworkAreaRouteDestinationPtrOutputWithContext(context.Context) NetworkAreaRouteDestinationPtrOutput +} + +type networkAreaRouteDestinationPtrType NetworkAreaRouteDestinationArgs + +func NetworkAreaRouteDestinationPtr(v *NetworkAreaRouteDestinationArgs) NetworkAreaRouteDestinationPtrInput { + return (*networkAreaRouteDestinationPtrType)(v) +} + +func (*networkAreaRouteDestinationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkAreaRouteDestination)(nil)).Elem() +} + +func (i *networkAreaRouteDestinationPtrType) ToNetworkAreaRouteDestinationPtrOutput() NetworkAreaRouteDestinationPtrOutput { + return i.ToNetworkAreaRouteDestinationPtrOutputWithContext(context.Background()) +} + +func (i *networkAreaRouteDestinationPtrType) ToNetworkAreaRouteDestinationPtrOutputWithContext(ctx context.Context) NetworkAreaRouteDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRouteDestinationPtrOutput) +} + +type NetworkAreaRouteDestinationOutput struct{ *pulumi.OutputState } + +func (NetworkAreaRouteDestinationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkAreaRouteDestination)(nil)).Elem() +} + +func (o NetworkAreaRouteDestinationOutput) ToNetworkAreaRouteDestinationOutput() NetworkAreaRouteDestinationOutput { + return o +} + +func (o NetworkAreaRouteDestinationOutput) ToNetworkAreaRouteDestinationOutputWithContext(ctx context.Context) NetworkAreaRouteDestinationOutput { + return o +} + +func (o NetworkAreaRouteDestinationOutput) ToNetworkAreaRouteDestinationPtrOutput() NetworkAreaRouteDestinationPtrOutput { + return o.ToNetworkAreaRouteDestinationPtrOutputWithContext(context.Background()) +} + +func (o NetworkAreaRouteDestinationOutput) ToNetworkAreaRouteDestinationPtrOutputWithContext(ctx context.Context) NetworkAreaRouteDestinationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkAreaRouteDestination) *NetworkAreaRouteDestination { + return &v + }).(NetworkAreaRouteDestinationPtrOutput) +} + +// CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported currently. +func (o NetworkAreaRouteDestinationOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v NetworkAreaRouteDestination) string { return v.Type }).(pulumi.StringOutput) +} + +// An CIDR string. +func (o NetworkAreaRouteDestinationOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v NetworkAreaRouteDestination) string { return v.Value }).(pulumi.StringOutput) +} + +type NetworkAreaRouteDestinationPtrOutput struct{ *pulumi.OutputState } + +func (NetworkAreaRouteDestinationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkAreaRouteDestination)(nil)).Elem() +} + +func (o NetworkAreaRouteDestinationPtrOutput) ToNetworkAreaRouteDestinationPtrOutput() NetworkAreaRouteDestinationPtrOutput { + return o +} + +func (o NetworkAreaRouteDestinationPtrOutput) ToNetworkAreaRouteDestinationPtrOutputWithContext(ctx context.Context) NetworkAreaRouteDestinationPtrOutput { + return o +} + +func (o NetworkAreaRouteDestinationPtrOutput) Elem() NetworkAreaRouteDestinationOutput { + return o.ApplyT(func(v *NetworkAreaRouteDestination) NetworkAreaRouteDestination { + if v != nil { + return *v + } + var ret NetworkAreaRouteDestination + return ret + }).(NetworkAreaRouteDestinationOutput) +} + +// CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported currently. +func (o NetworkAreaRouteDestinationPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkAreaRouteDestination) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +// An CIDR string. +func (o NetworkAreaRouteDestinationPtrOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkAreaRouteDestination) *string { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.StringPtrOutput) +} + +type NetworkAreaRouteNextHop struct { + // Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `ipv4` supported currently. + Type string `pulumi:"type"` + // Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported currently. + Value *string `pulumi:"value"` +} + +// NetworkAreaRouteNextHopInput is an input type that accepts NetworkAreaRouteNextHopArgs and NetworkAreaRouteNextHopOutput values. +// You can construct a concrete instance of `NetworkAreaRouteNextHopInput` via: +// +// NetworkAreaRouteNextHopArgs{...} +type NetworkAreaRouteNextHopInput interface { + pulumi.Input + + ToNetworkAreaRouteNextHopOutput() NetworkAreaRouteNextHopOutput + ToNetworkAreaRouteNextHopOutputWithContext(context.Context) NetworkAreaRouteNextHopOutput +} + +type NetworkAreaRouteNextHopArgs struct { + // Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `ipv4` supported currently. + Type pulumi.StringInput `pulumi:"type"` + // Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported currently. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (NetworkAreaRouteNextHopArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkAreaRouteNextHop)(nil)).Elem() +} + +func (i NetworkAreaRouteNextHopArgs) ToNetworkAreaRouteNextHopOutput() NetworkAreaRouteNextHopOutput { + return i.ToNetworkAreaRouteNextHopOutputWithContext(context.Background()) +} + +func (i NetworkAreaRouteNextHopArgs) ToNetworkAreaRouteNextHopOutputWithContext(ctx context.Context) NetworkAreaRouteNextHopOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRouteNextHopOutput) +} + +func (i NetworkAreaRouteNextHopArgs) ToNetworkAreaRouteNextHopPtrOutput() NetworkAreaRouteNextHopPtrOutput { + return i.ToNetworkAreaRouteNextHopPtrOutputWithContext(context.Background()) +} + +func (i NetworkAreaRouteNextHopArgs) ToNetworkAreaRouteNextHopPtrOutputWithContext(ctx context.Context) NetworkAreaRouteNextHopPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRouteNextHopOutput).ToNetworkAreaRouteNextHopPtrOutputWithContext(ctx) +} + +// NetworkAreaRouteNextHopPtrInput is an input type that accepts NetworkAreaRouteNextHopArgs, NetworkAreaRouteNextHopPtr and NetworkAreaRouteNextHopPtrOutput values. +// You can construct a concrete instance of `NetworkAreaRouteNextHopPtrInput` via: +// +// NetworkAreaRouteNextHopArgs{...} +// +// or: +// +// nil +type NetworkAreaRouteNextHopPtrInput interface { + pulumi.Input + + ToNetworkAreaRouteNextHopPtrOutput() NetworkAreaRouteNextHopPtrOutput + ToNetworkAreaRouteNextHopPtrOutputWithContext(context.Context) NetworkAreaRouteNextHopPtrOutput +} + +type networkAreaRouteNextHopPtrType NetworkAreaRouteNextHopArgs + +func NetworkAreaRouteNextHopPtr(v *NetworkAreaRouteNextHopArgs) NetworkAreaRouteNextHopPtrInput { + return (*networkAreaRouteNextHopPtrType)(v) +} + +func (*networkAreaRouteNextHopPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkAreaRouteNextHop)(nil)).Elem() +} + +func (i *networkAreaRouteNextHopPtrType) ToNetworkAreaRouteNextHopPtrOutput() NetworkAreaRouteNextHopPtrOutput { + return i.ToNetworkAreaRouteNextHopPtrOutputWithContext(context.Background()) +} + +func (i *networkAreaRouteNextHopPtrType) ToNetworkAreaRouteNextHopPtrOutputWithContext(ctx context.Context) NetworkAreaRouteNextHopPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkAreaRouteNextHopPtrOutput) +} + +type NetworkAreaRouteNextHopOutput struct{ *pulumi.OutputState } + +func (NetworkAreaRouteNextHopOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkAreaRouteNextHop)(nil)).Elem() +} + +func (o NetworkAreaRouteNextHopOutput) ToNetworkAreaRouteNextHopOutput() NetworkAreaRouteNextHopOutput { + return o +} + +func (o NetworkAreaRouteNextHopOutput) ToNetworkAreaRouteNextHopOutputWithContext(ctx context.Context) NetworkAreaRouteNextHopOutput { + return o +} + +func (o NetworkAreaRouteNextHopOutput) ToNetworkAreaRouteNextHopPtrOutput() NetworkAreaRouteNextHopPtrOutput { + return o.ToNetworkAreaRouteNextHopPtrOutputWithContext(context.Background()) +} + +func (o NetworkAreaRouteNextHopOutput) ToNetworkAreaRouteNextHopPtrOutputWithContext(ctx context.Context) NetworkAreaRouteNextHopPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkAreaRouteNextHop) *NetworkAreaRouteNextHop { + return &v + }).(NetworkAreaRouteNextHopPtrOutput) +} + +// Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `ipv4` supported currently. +func (o NetworkAreaRouteNextHopOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v NetworkAreaRouteNextHop) string { return v.Type }).(pulumi.StringOutput) +} + +// Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported currently. +func (o NetworkAreaRouteNextHopOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkAreaRouteNextHop) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type NetworkAreaRouteNextHopPtrOutput struct{ *pulumi.OutputState } + +func (NetworkAreaRouteNextHopPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkAreaRouteNextHop)(nil)).Elem() +} + +func (o NetworkAreaRouteNextHopPtrOutput) ToNetworkAreaRouteNextHopPtrOutput() NetworkAreaRouteNextHopPtrOutput { + return o +} + +func (o NetworkAreaRouteNextHopPtrOutput) ToNetworkAreaRouteNextHopPtrOutputWithContext(ctx context.Context) NetworkAreaRouteNextHopPtrOutput { + return o +} + +func (o NetworkAreaRouteNextHopPtrOutput) Elem() NetworkAreaRouteNextHopOutput { + return o.ApplyT(func(v *NetworkAreaRouteNextHop) NetworkAreaRouteNextHop { + if v != nil { + return *v + } + var ret NetworkAreaRouteNextHop + return ret + }).(NetworkAreaRouteNextHopOutput) +} + +// Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `ipv4` supported currently. +func (o NetworkAreaRouteNextHopPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkAreaRouteNextHop) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +// Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported currently. +func (o NetworkAreaRouteNextHopPtrOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkAreaRouteNextHop) *string { + if v == nil { + return nil + } + return v.Value + }).(pulumi.StringPtrOutput) +} + +type ObservabilityAlertgroupRule struct { + // The name of the alert rule. Is the identifier and must be unique in the group. + Alert *string `pulumi:"alert"` + // A map of key:value. Annotations to add or overwrite for each alert + Annotations map[string]string `pulumi:"annotations"` + // The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. + Expression string `pulumi:"expression"` + // 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 + For *string `pulumi:"for"` + // A map of key:value. Labels to add or overwrite for each alert + Labels map[string]string `pulumi:"labels"` + // The name of the metric. It's the identifier and must be unique in the group. + Record *string `pulumi:"record"` +} + +// ObservabilityAlertgroupRuleInput is an input type that accepts ObservabilityAlertgroupRuleArgs and ObservabilityAlertgroupRuleOutput values. +// You can construct a concrete instance of `ObservabilityAlertgroupRuleInput` via: +// +// ObservabilityAlertgroupRuleArgs{...} +type ObservabilityAlertgroupRuleInput interface { + pulumi.Input + + ToObservabilityAlertgroupRuleOutput() ObservabilityAlertgroupRuleOutput + ToObservabilityAlertgroupRuleOutputWithContext(context.Context) ObservabilityAlertgroupRuleOutput +} + +type ObservabilityAlertgroupRuleArgs struct { + // The name of the alert rule. Is the identifier and must be unique in the group. + Alert pulumi.StringPtrInput `pulumi:"alert"` + // A map of key:value. Annotations to add or overwrite for each alert + Annotations pulumi.StringMapInput `pulumi:"annotations"` + // The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. + Expression pulumi.StringInput `pulumi:"expression"` + // 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 + For pulumi.StringPtrInput `pulumi:"for"` + // A map of key:value. Labels to add or overwrite for each alert + Labels pulumi.StringMapInput `pulumi:"labels"` + // The name of the metric. It's the identifier and must be unique in the group. + Record pulumi.StringPtrInput `pulumi:"record"` +} + +func (ObservabilityAlertgroupRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityAlertgroupRule)(nil)).Elem() +} + +func (i ObservabilityAlertgroupRuleArgs) ToObservabilityAlertgroupRuleOutput() ObservabilityAlertgroupRuleOutput { + return i.ToObservabilityAlertgroupRuleOutputWithContext(context.Background()) +} + +func (i ObservabilityAlertgroupRuleArgs) ToObservabilityAlertgroupRuleOutputWithContext(ctx context.Context) ObservabilityAlertgroupRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityAlertgroupRuleOutput) +} + +// ObservabilityAlertgroupRuleArrayInput is an input type that accepts ObservabilityAlertgroupRuleArray and ObservabilityAlertgroupRuleArrayOutput values. +// You can construct a concrete instance of `ObservabilityAlertgroupRuleArrayInput` via: +// +// ObservabilityAlertgroupRuleArray{ ObservabilityAlertgroupRuleArgs{...} } +type ObservabilityAlertgroupRuleArrayInput interface { + pulumi.Input + + ToObservabilityAlertgroupRuleArrayOutput() ObservabilityAlertgroupRuleArrayOutput + ToObservabilityAlertgroupRuleArrayOutputWithContext(context.Context) ObservabilityAlertgroupRuleArrayOutput +} + +type ObservabilityAlertgroupRuleArray []ObservabilityAlertgroupRuleInput + +func (ObservabilityAlertgroupRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObservabilityAlertgroupRule)(nil)).Elem() +} + +func (i ObservabilityAlertgroupRuleArray) ToObservabilityAlertgroupRuleArrayOutput() ObservabilityAlertgroupRuleArrayOutput { + return i.ToObservabilityAlertgroupRuleArrayOutputWithContext(context.Background()) +} + +func (i ObservabilityAlertgroupRuleArray) ToObservabilityAlertgroupRuleArrayOutputWithContext(ctx context.Context) ObservabilityAlertgroupRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityAlertgroupRuleArrayOutput) +} + +type ObservabilityAlertgroupRuleOutput struct{ *pulumi.OutputState } + +func (ObservabilityAlertgroupRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityAlertgroupRule)(nil)).Elem() +} + +func (o ObservabilityAlertgroupRuleOutput) ToObservabilityAlertgroupRuleOutput() ObservabilityAlertgroupRuleOutput { + return o +} + +func (o ObservabilityAlertgroupRuleOutput) ToObservabilityAlertgroupRuleOutputWithContext(ctx context.Context) ObservabilityAlertgroupRuleOutput { + return o +} + +// The name of the alert rule. Is the identifier and must be unique in the group. +func (o ObservabilityAlertgroupRuleOutput) Alert() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityAlertgroupRule) *string { return v.Alert }).(pulumi.StringPtrOutput) +} + +// A map of key:value. Annotations to add or overwrite for each alert +func (o ObservabilityAlertgroupRuleOutput) Annotations() pulumi.StringMapOutput { + return o.ApplyT(func(v ObservabilityAlertgroupRule) map[string]string { return v.Annotations }).(pulumi.StringMapOutput) +} + +// The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. +func (o ObservabilityAlertgroupRuleOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v ObservabilityAlertgroupRule) string { return v.Expression }).(pulumi.StringOutput) +} + +// 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 +func (o ObservabilityAlertgroupRuleOutput) For() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityAlertgroupRule) *string { return v.For }).(pulumi.StringPtrOutput) +} + +// A map of key:value. Labels to add or overwrite for each alert +func (o ObservabilityAlertgroupRuleOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v ObservabilityAlertgroupRule) map[string]string { return v.Labels }).(pulumi.StringMapOutput) +} + +// The name of the metric. It's the identifier and must be unique in the group. +func (o ObservabilityAlertgroupRuleOutput) Record() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityAlertgroupRule) *string { return v.Record }).(pulumi.StringPtrOutput) +} + +type ObservabilityAlertgroupRuleArrayOutput struct{ *pulumi.OutputState } + +func (ObservabilityAlertgroupRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObservabilityAlertgroupRule)(nil)).Elem() +} + +func (o ObservabilityAlertgroupRuleArrayOutput) ToObservabilityAlertgroupRuleArrayOutput() ObservabilityAlertgroupRuleArrayOutput { + return o +} + +func (o ObservabilityAlertgroupRuleArrayOutput) ToObservabilityAlertgroupRuleArrayOutputWithContext(ctx context.Context) ObservabilityAlertgroupRuleArrayOutput { + return o +} + +func (o ObservabilityAlertgroupRuleArrayOutput) Index(i pulumi.IntInput) ObservabilityAlertgroupRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObservabilityAlertgroupRule { + return vs[0].([]ObservabilityAlertgroupRule)[vs[1].(int)] + }).(ObservabilityAlertgroupRuleOutput) +} + +type ObservabilityInstanceAlertConfig struct { + // 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. + Global *ObservabilityInstanceAlertConfigGlobal `pulumi:"global"` + // List of alert receivers. + Receivers []ObservabilityInstanceAlertConfigReceiver `pulumi:"receivers"` + // Route configuration for the alerts. + Route ObservabilityInstanceAlertConfigRoute `pulumi:"route"` +} + +// ObservabilityInstanceAlertConfigInput is an input type that accepts ObservabilityInstanceAlertConfigArgs and ObservabilityInstanceAlertConfigOutput values. +// You can construct a concrete instance of `ObservabilityInstanceAlertConfigInput` via: +// +// ObservabilityInstanceAlertConfigArgs{...} +type ObservabilityInstanceAlertConfigInput interface { + pulumi.Input + + ToObservabilityInstanceAlertConfigOutput() ObservabilityInstanceAlertConfigOutput + ToObservabilityInstanceAlertConfigOutputWithContext(context.Context) ObservabilityInstanceAlertConfigOutput +} + +type ObservabilityInstanceAlertConfigArgs struct { + // 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. + Global ObservabilityInstanceAlertConfigGlobalPtrInput `pulumi:"global"` + // List of alert receivers. + Receivers ObservabilityInstanceAlertConfigReceiverArrayInput `pulumi:"receivers"` + // Route configuration for the alerts. + Route ObservabilityInstanceAlertConfigRouteInput `pulumi:"route"` +} + +func (ObservabilityInstanceAlertConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityInstanceAlertConfig)(nil)).Elem() +} + +func (i ObservabilityInstanceAlertConfigArgs) ToObservabilityInstanceAlertConfigOutput() ObservabilityInstanceAlertConfigOutput { + return i.ToObservabilityInstanceAlertConfigOutputWithContext(context.Background()) +} + +func (i ObservabilityInstanceAlertConfigArgs) ToObservabilityInstanceAlertConfigOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigOutput) +} + +func (i ObservabilityInstanceAlertConfigArgs) ToObservabilityInstanceAlertConfigPtrOutput() ObservabilityInstanceAlertConfigPtrOutput { + return i.ToObservabilityInstanceAlertConfigPtrOutputWithContext(context.Background()) +} + +func (i ObservabilityInstanceAlertConfigArgs) ToObservabilityInstanceAlertConfigPtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigOutput).ToObservabilityInstanceAlertConfigPtrOutputWithContext(ctx) +} + +// ObservabilityInstanceAlertConfigPtrInput is an input type that accepts ObservabilityInstanceAlertConfigArgs, ObservabilityInstanceAlertConfigPtr and ObservabilityInstanceAlertConfigPtrOutput values. +// You can construct a concrete instance of `ObservabilityInstanceAlertConfigPtrInput` via: +// +// ObservabilityInstanceAlertConfigArgs{...} +// +// or: +// +// nil +type ObservabilityInstanceAlertConfigPtrInput interface { + pulumi.Input + + ToObservabilityInstanceAlertConfigPtrOutput() ObservabilityInstanceAlertConfigPtrOutput + ToObservabilityInstanceAlertConfigPtrOutputWithContext(context.Context) ObservabilityInstanceAlertConfigPtrOutput +} + +type observabilityInstanceAlertConfigPtrType ObservabilityInstanceAlertConfigArgs + +func ObservabilityInstanceAlertConfigPtr(v *ObservabilityInstanceAlertConfigArgs) ObservabilityInstanceAlertConfigPtrInput { + return (*observabilityInstanceAlertConfigPtrType)(v) +} + +func (*observabilityInstanceAlertConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ObservabilityInstanceAlertConfig)(nil)).Elem() +} + +func (i *observabilityInstanceAlertConfigPtrType) ToObservabilityInstanceAlertConfigPtrOutput() ObservabilityInstanceAlertConfigPtrOutput { + return i.ToObservabilityInstanceAlertConfigPtrOutputWithContext(context.Background()) +} + +func (i *observabilityInstanceAlertConfigPtrType) ToObservabilityInstanceAlertConfigPtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigPtrOutput) +} + +type ObservabilityInstanceAlertConfigOutput struct{ *pulumi.OutputState } + +func (ObservabilityInstanceAlertConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityInstanceAlertConfig)(nil)).Elem() +} + +func (o ObservabilityInstanceAlertConfigOutput) ToObservabilityInstanceAlertConfigOutput() ObservabilityInstanceAlertConfigOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigOutput) ToObservabilityInstanceAlertConfigOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigOutput) ToObservabilityInstanceAlertConfigPtrOutput() ObservabilityInstanceAlertConfigPtrOutput { + return o.ToObservabilityInstanceAlertConfigPtrOutputWithContext(context.Background()) +} + +func (o ObservabilityInstanceAlertConfigOutput) ToObservabilityInstanceAlertConfigPtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ObservabilityInstanceAlertConfig) *ObservabilityInstanceAlertConfig { + return &v + }).(ObservabilityInstanceAlertConfigPtrOutput) +} + +// 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. +func (o ObservabilityInstanceAlertConfigOutput) Global() ObservabilityInstanceAlertConfigGlobalPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfig) *ObservabilityInstanceAlertConfigGlobal { return v.Global }).(ObservabilityInstanceAlertConfigGlobalPtrOutput) +} + +// List of alert receivers. +func (o ObservabilityInstanceAlertConfigOutput) Receivers() ObservabilityInstanceAlertConfigReceiverArrayOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfig) []ObservabilityInstanceAlertConfigReceiver { + return v.Receivers + }).(ObservabilityInstanceAlertConfigReceiverArrayOutput) +} + +// Route configuration for the alerts. +func (o ObservabilityInstanceAlertConfigOutput) Route() ObservabilityInstanceAlertConfigRouteOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfig) ObservabilityInstanceAlertConfigRoute { return v.Route }).(ObservabilityInstanceAlertConfigRouteOutput) +} + +type ObservabilityInstanceAlertConfigPtrOutput struct{ *pulumi.OutputState } + +func (ObservabilityInstanceAlertConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ObservabilityInstanceAlertConfig)(nil)).Elem() +} + +func (o ObservabilityInstanceAlertConfigPtrOutput) ToObservabilityInstanceAlertConfigPtrOutput() ObservabilityInstanceAlertConfigPtrOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigPtrOutput) ToObservabilityInstanceAlertConfigPtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigPtrOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigPtrOutput) Elem() ObservabilityInstanceAlertConfigOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfig) ObservabilityInstanceAlertConfig { + if v != nil { + return *v + } + var ret ObservabilityInstanceAlertConfig + return ret + }).(ObservabilityInstanceAlertConfigOutput) +} + +// 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. +func (o ObservabilityInstanceAlertConfigPtrOutput) Global() ObservabilityInstanceAlertConfigGlobalPtrOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfig) *ObservabilityInstanceAlertConfigGlobal { + if v == nil { + return nil + } + return v.Global + }).(ObservabilityInstanceAlertConfigGlobalPtrOutput) +} + +// List of alert receivers. +func (o ObservabilityInstanceAlertConfigPtrOutput) Receivers() ObservabilityInstanceAlertConfigReceiverArrayOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfig) []ObservabilityInstanceAlertConfigReceiver { + if v == nil { + return nil + } + return v.Receivers + }).(ObservabilityInstanceAlertConfigReceiverArrayOutput) +} + +// Route configuration for the alerts. +func (o ObservabilityInstanceAlertConfigPtrOutput) Route() ObservabilityInstanceAlertConfigRoutePtrOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfig) *ObservabilityInstanceAlertConfigRoute { + if v == nil { + return nil + } + return &v.Route + }).(ObservabilityInstanceAlertConfigRoutePtrOutput) +} + +type ObservabilityInstanceAlertConfigGlobal struct { + // The API key for OpsGenie. + OpsgenieApiKey *string `pulumi:"opsgenieApiKey"` + // The host to send OpsGenie API requests to. Must be a valid URL + OpsgenieApiUrl *string `pulumi:"opsgenieApiUrl"` + // 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. + ResolveTimeout *string `pulumi:"resolveTimeout"` + // SMTP authentication information. Must be a valid email address + SmtpAuthIdentity *string `pulumi:"smtpAuthIdentity"` + // SMTP Auth using LOGIN and PLAIN. + SmtpAuthPassword *string `pulumi:"smtpAuthPassword"` + // SMTP Auth using CRAM-MD5, LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server. + SmtpAuthUsername *string `pulumi:"smtpAuthUsername"` + // The default SMTP From header field. Must be a valid email address + SmtpFrom *string `pulumi:"smtpFrom"` + // 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). + SmtpSmartHost *string `pulumi:"smtpSmartHost"` +} + +// ObservabilityInstanceAlertConfigGlobalInput is an input type that accepts ObservabilityInstanceAlertConfigGlobalArgs and ObservabilityInstanceAlertConfigGlobalOutput values. +// You can construct a concrete instance of `ObservabilityInstanceAlertConfigGlobalInput` via: +// +// ObservabilityInstanceAlertConfigGlobalArgs{...} +type ObservabilityInstanceAlertConfigGlobalInput interface { + pulumi.Input + + ToObservabilityInstanceAlertConfigGlobalOutput() ObservabilityInstanceAlertConfigGlobalOutput + ToObservabilityInstanceAlertConfigGlobalOutputWithContext(context.Context) ObservabilityInstanceAlertConfigGlobalOutput +} + +type ObservabilityInstanceAlertConfigGlobalArgs struct { + // The API key for OpsGenie. + OpsgenieApiKey pulumi.StringPtrInput `pulumi:"opsgenieApiKey"` + // The host to send OpsGenie API requests to. Must be a valid URL + OpsgenieApiUrl pulumi.StringPtrInput `pulumi:"opsgenieApiUrl"` + // 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. + ResolveTimeout pulumi.StringPtrInput `pulumi:"resolveTimeout"` + // SMTP authentication information. Must be a valid email address + SmtpAuthIdentity pulumi.StringPtrInput `pulumi:"smtpAuthIdentity"` + // SMTP Auth using LOGIN and PLAIN. + SmtpAuthPassword pulumi.StringPtrInput `pulumi:"smtpAuthPassword"` + // SMTP Auth using CRAM-MD5, LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server. + SmtpAuthUsername pulumi.StringPtrInput `pulumi:"smtpAuthUsername"` + // The default SMTP From header field. Must be a valid email address + SmtpFrom pulumi.StringPtrInput `pulumi:"smtpFrom"` + // 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). + SmtpSmartHost pulumi.StringPtrInput `pulumi:"smtpSmartHost"` +} + +func (ObservabilityInstanceAlertConfigGlobalArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityInstanceAlertConfigGlobal)(nil)).Elem() +} + +func (i ObservabilityInstanceAlertConfigGlobalArgs) ToObservabilityInstanceAlertConfigGlobalOutput() ObservabilityInstanceAlertConfigGlobalOutput { + return i.ToObservabilityInstanceAlertConfigGlobalOutputWithContext(context.Background()) +} + +func (i ObservabilityInstanceAlertConfigGlobalArgs) ToObservabilityInstanceAlertConfigGlobalOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigGlobalOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigGlobalOutput) +} + +func (i ObservabilityInstanceAlertConfigGlobalArgs) ToObservabilityInstanceAlertConfigGlobalPtrOutput() ObservabilityInstanceAlertConfigGlobalPtrOutput { + return i.ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(context.Background()) +} + +func (i ObservabilityInstanceAlertConfigGlobalArgs) ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigGlobalPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigGlobalOutput).ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(ctx) +} + +// ObservabilityInstanceAlertConfigGlobalPtrInput is an input type that accepts ObservabilityInstanceAlertConfigGlobalArgs, ObservabilityInstanceAlertConfigGlobalPtr and ObservabilityInstanceAlertConfigGlobalPtrOutput values. +// You can construct a concrete instance of `ObservabilityInstanceAlertConfigGlobalPtrInput` via: +// +// ObservabilityInstanceAlertConfigGlobalArgs{...} +// +// or: +// +// nil +type ObservabilityInstanceAlertConfigGlobalPtrInput interface { + pulumi.Input + + ToObservabilityInstanceAlertConfigGlobalPtrOutput() ObservabilityInstanceAlertConfigGlobalPtrOutput + ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(context.Context) ObservabilityInstanceAlertConfigGlobalPtrOutput +} + +type observabilityInstanceAlertConfigGlobalPtrType ObservabilityInstanceAlertConfigGlobalArgs + +func ObservabilityInstanceAlertConfigGlobalPtr(v *ObservabilityInstanceAlertConfigGlobalArgs) ObservabilityInstanceAlertConfigGlobalPtrInput { + return (*observabilityInstanceAlertConfigGlobalPtrType)(v) +} + +func (*observabilityInstanceAlertConfigGlobalPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ObservabilityInstanceAlertConfigGlobal)(nil)).Elem() +} + +func (i *observabilityInstanceAlertConfigGlobalPtrType) ToObservabilityInstanceAlertConfigGlobalPtrOutput() ObservabilityInstanceAlertConfigGlobalPtrOutput { + return i.ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(context.Background()) +} + +func (i *observabilityInstanceAlertConfigGlobalPtrType) ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigGlobalPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigGlobalPtrOutput) +} + +type ObservabilityInstanceAlertConfigGlobalOutput struct{ *pulumi.OutputState } + +func (ObservabilityInstanceAlertConfigGlobalOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityInstanceAlertConfigGlobal)(nil)).Elem() +} + +func (o ObservabilityInstanceAlertConfigGlobalOutput) ToObservabilityInstanceAlertConfigGlobalOutput() ObservabilityInstanceAlertConfigGlobalOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigGlobalOutput) ToObservabilityInstanceAlertConfigGlobalOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigGlobalOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigGlobalOutput) ToObservabilityInstanceAlertConfigGlobalPtrOutput() ObservabilityInstanceAlertConfigGlobalPtrOutput { + return o.ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(context.Background()) +} + +func (o ObservabilityInstanceAlertConfigGlobalOutput) ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigGlobalPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ObservabilityInstanceAlertConfigGlobal) *ObservabilityInstanceAlertConfigGlobal { + return &v + }).(ObservabilityInstanceAlertConfigGlobalPtrOutput) +} + +// The API key for OpsGenie. +func (o ObservabilityInstanceAlertConfigGlobalOutput) OpsgenieApiKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigGlobal) *string { return v.OpsgenieApiKey }).(pulumi.StringPtrOutput) +} + +// The host to send OpsGenie API requests to. Must be a valid URL +func (o ObservabilityInstanceAlertConfigGlobalOutput) OpsgenieApiUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigGlobal) *string { return v.OpsgenieApiUrl }).(pulumi.StringPtrOutput) +} + +// 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. +func (o ObservabilityInstanceAlertConfigGlobalOutput) ResolveTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigGlobal) *string { return v.ResolveTimeout }).(pulumi.StringPtrOutput) +} + +// SMTP authentication information. Must be a valid email address +func (o ObservabilityInstanceAlertConfigGlobalOutput) SmtpAuthIdentity() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigGlobal) *string { return v.SmtpAuthIdentity }).(pulumi.StringPtrOutput) +} + +// SMTP Auth using LOGIN and PLAIN. +func (o ObservabilityInstanceAlertConfigGlobalOutput) SmtpAuthPassword() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigGlobal) *string { return v.SmtpAuthPassword }).(pulumi.StringPtrOutput) +} + +// SMTP Auth using CRAM-MD5, LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server. +func (o ObservabilityInstanceAlertConfigGlobalOutput) SmtpAuthUsername() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigGlobal) *string { return v.SmtpAuthUsername }).(pulumi.StringPtrOutput) +} + +// The default SMTP From header field. Must be a valid email address +func (o ObservabilityInstanceAlertConfigGlobalOutput) SmtpFrom() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigGlobal) *string { return v.SmtpFrom }).(pulumi.StringPtrOutput) +} + +// 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). +func (o ObservabilityInstanceAlertConfigGlobalOutput) SmtpSmartHost() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigGlobal) *string { return v.SmtpSmartHost }).(pulumi.StringPtrOutput) +} + +type ObservabilityInstanceAlertConfigGlobalPtrOutput struct{ *pulumi.OutputState } + +func (ObservabilityInstanceAlertConfigGlobalPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ObservabilityInstanceAlertConfigGlobal)(nil)).Elem() +} + +func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) ToObservabilityInstanceAlertConfigGlobalPtrOutput() ObservabilityInstanceAlertConfigGlobalPtrOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) ToObservabilityInstanceAlertConfigGlobalPtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigGlobalPtrOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) Elem() ObservabilityInstanceAlertConfigGlobalOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) ObservabilityInstanceAlertConfigGlobal { + if v != nil { + return *v + } + var ret ObservabilityInstanceAlertConfigGlobal + return ret + }).(ObservabilityInstanceAlertConfigGlobalOutput) +} + +// The API key for OpsGenie. +func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) OpsgenieApiKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) *string { + if v == nil { + return nil + } + return v.OpsgenieApiKey + }).(pulumi.StringPtrOutput) +} + +// The host to send OpsGenie API requests to. Must be a valid URL +func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) OpsgenieApiUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) *string { + if v == nil { + return nil + } + return v.OpsgenieApiUrl + }).(pulumi.StringPtrOutput) +} + +// 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. +func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) ResolveTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) *string { + if v == nil { + return nil + } + return v.ResolveTimeout + }).(pulumi.StringPtrOutput) +} + +// SMTP authentication information. Must be a valid email address +func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) SmtpAuthIdentity() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) *string { + if v == nil { + return nil + } + return v.SmtpAuthIdentity + }).(pulumi.StringPtrOutput) +} + +// SMTP Auth using LOGIN and PLAIN. +func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) SmtpAuthPassword() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) *string { + if v == nil { + return nil + } + return v.SmtpAuthPassword + }).(pulumi.StringPtrOutput) +} + +// SMTP Auth using CRAM-MD5, LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server. +func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) SmtpAuthUsername() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) *string { + if v == nil { + return nil + } + return v.SmtpAuthUsername + }).(pulumi.StringPtrOutput) +} + +// The default SMTP From header field. Must be a valid email address +func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) SmtpFrom() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) *string { + if v == nil { + return nil + } + return v.SmtpFrom + }).(pulumi.StringPtrOutput) +} + +// 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). +func (o ObservabilityInstanceAlertConfigGlobalPtrOutput) SmtpSmartHost() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigGlobal) *string { + if v == nil { + return nil + } + return v.SmtpSmartHost + }).(pulumi.StringPtrOutput) +} + +type ObservabilityInstanceAlertConfigReceiver struct { + // List of email configurations. + EmailConfigs []ObservabilityInstanceAlertConfigReceiverEmailConfig `pulumi:"emailConfigs"` + // Name of the receiver. + Name string `pulumi:"name"` + // List of OpsGenie configurations. + OpsgenieConfigs []ObservabilityInstanceAlertConfigReceiverOpsgenieConfig `pulumi:"opsgenieConfigs"` + // List of Webhooks configurations. + WebhooksConfigs []ObservabilityInstanceAlertConfigReceiverWebhooksConfig `pulumi:"webhooksConfigs"` +} + +// ObservabilityInstanceAlertConfigReceiverInput is an input type that accepts ObservabilityInstanceAlertConfigReceiverArgs and ObservabilityInstanceAlertConfigReceiverOutput values. +// You can construct a concrete instance of `ObservabilityInstanceAlertConfigReceiverInput` via: +// +// ObservabilityInstanceAlertConfigReceiverArgs{...} +type ObservabilityInstanceAlertConfigReceiverInput interface { + pulumi.Input + + ToObservabilityInstanceAlertConfigReceiverOutput() ObservabilityInstanceAlertConfigReceiverOutput + ToObservabilityInstanceAlertConfigReceiverOutputWithContext(context.Context) ObservabilityInstanceAlertConfigReceiverOutput +} + +type ObservabilityInstanceAlertConfigReceiverArgs struct { + // List of email configurations. + EmailConfigs ObservabilityInstanceAlertConfigReceiverEmailConfigArrayInput `pulumi:"emailConfigs"` + // Name of the receiver. + Name pulumi.StringInput `pulumi:"name"` + // List of OpsGenie configurations. + OpsgenieConfigs ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayInput `pulumi:"opsgenieConfigs"` + // List of Webhooks configurations. + WebhooksConfigs ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayInput `pulumi:"webhooksConfigs"` +} + +func (ObservabilityInstanceAlertConfigReceiverArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityInstanceAlertConfigReceiver)(nil)).Elem() +} + +func (i ObservabilityInstanceAlertConfigReceiverArgs) ToObservabilityInstanceAlertConfigReceiverOutput() ObservabilityInstanceAlertConfigReceiverOutput { + return i.ToObservabilityInstanceAlertConfigReceiverOutputWithContext(context.Background()) +} + +func (i ObservabilityInstanceAlertConfigReceiverArgs) ToObservabilityInstanceAlertConfigReceiverOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigReceiverOutput) +} + +// ObservabilityInstanceAlertConfigReceiverArrayInput is an input type that accepts ObservabilityInstanceAlertConfigReceiverArray and ObservabilityInstanceAlertConfigReceiverArrayOutput values. +// You can construct a concrete instance of `ObservabilityInstanceAlertConfigReceiverArrayInput` via: +// +// ObservabilityInstanceAlertConfigReceiverArray{ ObservabilityInstanceAlertConfigReceiverArgs{...} } +type ObservabilityInstanceAlertConfigReceiverArrayInput interface { + pulumi.Input + + ToObservabilityInstanceAlertConfigReceiverArrayOutput() ObservabilityInstanceAlertConfigReceiverArrayOutput + ToObservabilityInstanceAlertConfigReceiverArrayOutputWithContext(context.Context) ObservabilityInstanceAlertConfigReceiverArrayOutput +} + +type ObservabilityInstanceAlertConfigReceiverArray []ObservabilityInstanceAlertConfigReceiverInput + +func (ObservabilityInstanceAlertConfigReceiverArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigReceiver)(nil)).Elem() +} + +func (i ObservabilityInstanceAlertConfigReceiverArray) ToObservabilityInstanceAlertConfigReceiverArrayOutput() ObservabilityInstanceAlertConfigReceiverArrayOutput { + return i.ToObservabilityInstanceAlertConfigReceiverArrayOutputWithContext(context.Background()) +} + +func (i ObservabilityInstanceAlertConfigReceiverArray) ToObservabilityInstanceAlertConfigReceiverArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigReceiverArrayOutput) +} + +type ObservabilityInstanceAlertConfigReceiverOutput struct{ *pulumi.OutputState } + +func (ObservabilityInstanceAlertConfigReceiverOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityInstanceAlertConfigReceiver)(nil)).Elem() +} + +func (o ObservabilityInstanceAlertConfigReceiverOutput) ToObservabilityInstanceAlertConfigReceiverOutput() ObservabilityInstanceAlertConfigReceiverOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigReceiverOutput) ToObservabilityInstanceAlertConfigReceiverOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverOutput { + return o +} + +// List of email configurations. +func (o ObservabilityInstanceAlertConfigReceiverOutput) EmailConfigs() ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiver) []ObservabilityInstanceAlertConfigReceiverEmailConfig { + return v.EmailConfigs + }).(ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput) +} + +// Name of the receiver. +func (o ObservabilityInstanceAlertConfigReceiverOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiver) string { return v.Name }).(pulumi.StringOutput) +} + +// List of OpsGenie configurations. +func (o ObservabilityInstanceAlertConfigReceiverOutput) OpsgenieConfigs() ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiver) []ObservabilityInstanceAlertConfigReceiverOpsgenieConfig { + return v.OpsgenieConfigs + }).(ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput) +} + +// List of Webhooks configurations. +func (o ObservabilityInstanceAlertConfigReceiverOutput) WebhooksConfigs() ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiver) []ObservabilityInstanceAlertConfigReceiverWebhooksConfig { + return v.WebhooksConfigs + }).(ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput) +} + +type ObservabilityInstanceAlertConfigReceiverArrayOutput struct{ *pulumi.OutputState } + +func (ObservabilityInstanceAlertConfigReceiverArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigReceiver)(nil)).Elem() +} + +func (o ObservabilityInstanceAlertConfigReceiverArrayOutput) ToObservabilityInstanceAlertConfigReceiverArrayOutput() ObservabilityInstanceAlertConfigReceiverArrayOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigReceiverArrayOutput) ToObservabilityInstanceAlertConfigReceiverArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverArrayOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigReceiverArrayOutput) Index(i pulumi.IntInput) ObservabilityInstanceAlertConfigReceiverOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObservabilityInstanceAlertConfigReceiver { + return vs[0].([]ObservabilityInstanceAlertConfigReceiver)[vs[1].(int)] + }).(ObservabilityInstanceAlertConfigReceiverOutput) +} + +type ObservabilityInstanceAlertConfigReceiverEmailConfig struct { + // SMTP authentication information. Must be a valid email address + AuthIdentity *string `pulumi:"authIdentity"` + // SMTP authentication password. + AuthPassword *string `pulumi:"authPassword"` + // SMTP authentication username. + AuthUsername *string `pulumi:"authUsername"` + // The sender email address. Must be a valid email address + From *string `pulumi:"from"` + // Whether to notify about resolved alerts. + SendResolved *bool `pulumi:"sendResolved"` + // The SMTP host through which emails are sent. + SmartHost *string `pulumi:"smartHost"` + // The email address to send notifications to. Must be a valid email address + To *string `pulumi:"to"` +} + +// ObservabilityInstanceAlertConfigReceiverEmailConfigInput is an input type that accepts ObservabilityInstanceAlertConfigReceiverEmailConfigArgs and ObservabilityInstanceAlertConfigReceiverEmailConfigOutput values. +// You can construct a concrete instance of `ObservabilityInstanceAlertConfigReceiverEmailConfigInput` via: +// +// ObservabilityInstanceAlertConfigReceiverEmailConfigArgs{...} +type ObservabilityInstanceAlertConfigReceiverEmailConfigInput interface { + pulumi.Input + + ToObservabilityInstanceAlertConfigReceiverEmailConfigOutput() ObservabilityInstanceAlertConfigReceiverEmailConfigOutput + ToObservabilityInstanceAlertConfigReceiverEmailConfigOutputWithContext(context.Context) ObservabilityInstanceAlertConfigReceiverEmailConfigOutput +} + +type ObservabilityInstanceAlertConfigReceiverEmailConfigArgs struct { + // SMTP authentication information. Must be a valid email address + AuthIdentity pulumi.StringPtrInput `pulumi:"authIdentity"` + // SMTP authentication password. + AuthPassword pulumi.StringPtrInput `pulumi:"authPassword"` + // SMTP authentication username. + AuthUsername pulumi.StringPtrInput `pulumi:"authUsername"` + // The sender email address. Must be a valid email address + From pulumi.StringPtrInput `pulumi:"from"` + // Whether to notify about resolved alerts. + SendResolved pulumi.BoolPtrInput `pulumi:"sendResolved"` + // The SMTP host through which emails are sent. + SmartHost pulumi.StringPtrInput `pulumi:"smartHost"` + // The email address to send notifications to. Must be a valid email address + To pulumi.StringPtrInput `pulumi:"to"` +} + +func (ObservabilityInstanceAlertConfigReceiverEmailConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityInstanceAlertConfigReceiverEmailConfig)(nil)).Elem() +} + +func (i ObservabilityInstanceAlertConfigReceiverEmailConfigArgs) ToObservabilityInstanceAlertConfigReceiverEmailConfigOutput() ObservabilityInstanceAlertConfigReceiverEmailConfigOutput { + return i.ToObservabilityInstanceAlertConfigReceiverEmailConfigOutputWithContext(context.Background()) +} + +func (i ObservabilityInstanceAlertConfigReceiverEmailConfigArgs) ToObservabilityInstanceAlertConfigReceiverEmailConfigOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverEmailConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) +} + +// ObservabilityInstanceAlertConfigReceiverEmailConfigArrayInput is an input type that accepts ObservabilityInstanceAlertConfigReceiverEmailConfigArray and ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput values. +// You can construct a concrete instance of `ObservabilityInstanceAlertConfigReceiverEmailConfigArrayInput` via: +// +// ObservabilityInstanceAlertConfigReceiverEmailConfigArray{ ObservabilityInstanceAlertConfigReceiverEmailConfigArgs{...} } +type ObservabilityInstanceAlertConfigReceiverEmailConfigArrayInput interface { + pulumi.Input + + ToObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput + ToObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutputWithContext(context.Context) ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput +} + +type ObservabilityInstanceAlertConfigReceiverEmailConfigArray []ObservabilityInstanceAlertConfigReceiverEmailConfigInput + +func (ObservabilityInstanceAlertConfigReceiverEmailConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigReceiverEmailConfig)(nil)).Elem() +} + +func (i ObservabilityInstanceAlertConfigReceiverEmailConfigArray) ToObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput { + return i.ToObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutputWithContext(context.Background()) +} + +func (i ObservabilityInstanceAlertConfigReceiverEmailConfigArray) ToObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput) +} + +type ObservabilityInstanceAlertConfigReceiverEmailConfigOutput struct{ *pulumi.OutputState } + +func (ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityInstanceAlertConfigReceiverEmailConfig)(nil)).Elem() +} + +func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) ToObservabilityInstanceAlertConfigReceiverEmailConfigOutput() ObservabilityInstanceAlertConfigReceiverEmailConfigOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) ToObservabilityInstanceAlertConfigReceiverEmailConfigOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverEmailConfigOutput { + return o +} + +// SMTP authentication information. Must be a valid email address +func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) AuthIdentity() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverEmailConfig) *string { return v.AuthIdentity }).(pulumi.StringPtrOutput) +} + +// SMTP authentication password. +func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) AuthPassword() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverEmailConfig) *string { return v.AuthPassword }).(pulumi.StringPtrOutput) +} + +// SMTP authentication username. +func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) AuthUsername() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverEmailConfig) *string { return v.AuthUsername }).(pulumi.StringPtrOutput) +} + +// The sender email address. Must be a valid email address +func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) From() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverEmailConfig) *string { return v.From }).(pulumi.StringPtrOutput) +} + +// Whether to notify about resolved alerts. +func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) SendResolved() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverEmailConfig) *bool { return v.SendResolved }).(pulumi.BoolPtrOutput) +} + +// The SMTP host through which emails are sent. +func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) SmartHost() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverEmailConfig) *string { return v.SmartHost }).(pulumi.StringPtrOutput) +} + +// The email address to send notifications to. Must be a valid email address +func (o ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) To() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverEmailConfig) *string { return v.To }).(pulumi.StringPtrOutput) +} + +type ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput struct{ *pulumi.OutputState } + +func (ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigReceiverEmailConfig)(nil)).Elem() +} + +func (o ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput) ToObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput) ToObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigReceiverEmailConfigArrayOutput) Index(i pulumi.IntInput) ObservabilityInstanceAlertConfigReceiverEmailConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObservabilityInstanceAlertConfigReceiverEmailConfig { + return vs[0].([]ObservabilityInstanceAlertConfigReceiverEmailConfig)[vs[1].(int)] + }).(ObservabilityInstanceAlertConfigReceiverEmailConfigOutput) +} + +type ObservabilityInstanceAlertConfigReceiverOpsgenieConfig struct { + // The API key for OpsGenie. + ApiKey *string `pulumi:"apiKey"` + // The host to send OpsGenie API requests to. Must be a valid URL + ApiUrl *string `pulumi:"apiUrl"` + // Priority of the alert. Possible values are: `P1`, `P2`, `P3`, `P4`, `P5`. + Priority *string `pulumi:"priority"` + // Whether to notify about resolved alerts. + SendResolved *bool `pulumi:"sendResolved"` + // Comma separated list of tags attached to the notifications. + Tags *string `pulumi:"tags"` +} + +// ObservabilityInstanceAlertConfigReceiverOpsgenieConfigInput is an input type that accepts ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArgs and ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput values. +// You can construct a concrete instance of `ObservabilityInstanceAlertConfigReceiverOpsgenieConfigInput` via: +// +// ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArgs{...} +type ObservabilityInstanceAlertConfigReceiverOpsgenieConfigInput interface { + pulumi.Input + + ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput() ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput + ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutputWithContext(context.Context) ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput +} + +type ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArgs struct { + // The API key for OpsGenie. + ApiKey pulumi.StringPtrInput `pulumi:"apiKey"` + // The host to send OpsGenie API requests to. Must be a valid URL + ApiUrl pulumi.StringPtrInput `pulumi:"apiUrl"` + // Priority of the alert. Possible values are: `P1`, `P2`, `P3`, `P4`, `P5`. + Priority pulumi.StringPtrInput `pulumi:"priority"` + // Whether to notify about resolved alerts. + SendResolved pulumi.BoolPtrInput `pulumi:"sendResolved"` + // Comma separated list of tags attached to the notifications. + Tags pulumi.StringPtrInput `pulumi:"tags"` +} + +func (ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityInstanceAlertConfigReceiverOpsgenieConfig)(nil)).Elem() +} + +func (i ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArgs) ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput() ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput { + return i.ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutputWithContext(context.Background()) +} + +func (i ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArgs) ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) +} + +// ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayInput is an input type that accepts ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArray and ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput values. +// You can construct a concrete instance of `ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayInput` via: +// +// ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArray{ ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArgs{...} } +type ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayInput interface { + pulumi.Input + + ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput + ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutputWithContext(context.Context) ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput +} + +type ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArray []ObservabilityInstanceAlertConfigReceiverOpsgenieConfigInput + +func (ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigReceiverOpsgenieConfig)(nil)).Elem() +} + +func (i ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArray) ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput { + return i.ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutputWithContext(context.Background()) +} + +func (i ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArray) ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput) +} + +type ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput struct{ *pulumi.OutputState } + +func (ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityInstanceAlertConfigReceiverOpsgenieConfig)(nil)).Elem() +} + +func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput() ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput { + return o +} + +// The API key for OpsGenie. +func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) ApiKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverOpsgenieConfig) *string { return v.ApiKey }).(pulumi.StringPtrOutput) +} + +// The host to send OpsGenie API requests to. Must be a valid URL +func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) ApiUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverOpsgenieConfig) *string { return v.ApiUrl }).(pulumi.StringPtrOutput) +} + +// Priority of the alert. Possible values are: `P1`, `P2`, `P3`, `P4`, `P5`. +func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) Priority() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverOpsgenieConfig) *string { return v.Priority }).(pulumi.StringPtrOutput) +} + +// Whether to notify about resolved alerts. +func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) SendResolved() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverOpsgenieConfig) *bool { return v.SendResolved }).(pulumi.BoolPtrOutput) +} + +// Comma separated list of tags attached to the notifications. +func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) Tags() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverOpsgenieConfig) *string { return v.Tags }).(pulumi.StringPtrOutput) +} + +type ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput struct{ *pulumi.OutputState } + +func (ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigReceiverOpsgenieConfig)(nil)).Elem() +} + +func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput) ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput) ToObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArrayOutput) Index(i pulumi.IntInput) ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObservabilityInstanceAlertConfigReceiverOpsgenieConfig { + return vs[0].([]ObservabilityInstanceAlertConfigReceiverOpsgenieConfig)[vs[1].(int)] + }).(ObservabilityInstanceAlertConfigReceiverOpsgenieConfigOutput) +} + +type ObservabilityInstanceAlertConfigReceiverWebhooksConfig struct { + // Google Chat webhooks require special handling, set this to true if the webhook is for Google Chat. + GoogleChat *bool `pulumi:"googleChat"` + // Microsoft Teams webhooks require special handling, set this to true if the webhook is for Microsoft Teams. + MsTeams *bool `pulumi:"msTeams"` + // Whether to notify about resolved alerts. + SendResolved *bool `pulumi:"sendResolved"` + // The endpoint to send HTTP POST requests to. Must be a valid URL + Url *string `pulumi:"url"` +} + +// ObservabilityInstanceAlertConfigReceiverWebhooksConfigInput is an input type that accepts ObservabilityInstanceAlertConfigReceiverWebhooksConfigArgs and ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput values. +// You can construct a concrete instance of `ObservabilityInstanceAlertConfigReceiverWebhooksConfigInput` via: +// +// ObservabilityInstanceAlertConfigReceiverWebhooksConfigArgs{...} +type ObservabilityInstanceAlertConfigReceiverWebhooksConfigInput interface { + pulumi.Input + + ToObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput() ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput + ToObservabilityInstanceAlertConfigReceiverWebhooksConfigOutputWithContext(context.Context) ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput +} + +type ObservabilityInstanceAlertConfigReceiverWebhooksConfigArgs struct { + // Google Chat webhooks require special handling, set this to true if the webhook is for Google Chat. + GoogleChat pulumi.BoolPtrInput `pulumi:"googleChat"` + // Microsoft Teams webhooks require special handling, set this to true if the webhook is for Microsoft Teams. + MsTeams pulumi.BoolPtrInput `pulumi:"msTeams"` + // Whether to notify about resolved alerts. + SendResolved pulumi.BoolPtrInput `pulumi:"sendResolved"` + // The endpoint to send HTTP POST requests to. Must be a valid URL + Url pulumi.StringPtrInput `pulumi:"url"` +} + +func (ObservabilityInstanceAlertConfigReceiverWebhooksConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityInstanceAlertConfigReceiverWebhooksConfig)(nil)).Elem() +} + +func (i ObservabilityInstanceAlertConfigReceiverWebhooksConfigArgs) ToObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput() ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput { + return i.ToObservabilityInstanceAlertConfigReceiverWebhooksConfigOutputWithContext(context.Background()) +} + +func (i ObservabilityInstanceAlertConfigReceiverWebhooksConfigArgs) ToObservabilityInstanceAlertConfigReceiverWebhooksConfigOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput) } -// ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayInput is an input type that accepts ObservabilityInstanceAlertConfigReceiverWebhooksConfigArray and ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput values. -// You can construct a concrete instance of `ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayInput` via: +// ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayInput is an input type that accepts ObservabilityInstanceAlertConfigReceiverWebhooksConfigArray and ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput values. +// You can construct a concrete instance of `ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayInput` via: +// +// ObservabilityInstanceAlertConfigReceiverWebhooksConfigArray{ ObservabilityInstanceAlertConfigReceiverWebhooksConfigArgs{...} } +type ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayInput interface { + pulumi.Input + + ToObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput + ToObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutputWithContext(context.Context) ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput +} + +type ObservabilityInstanceAlertConfigReceiverWebhooksConfigArray []ObservabilityInstanceAlertConfigReceiverWebhooksConfigInput + +func (ObservabilityInstanceAlertConfigReceiverWebhooksConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigReceiverWebhooksConfig)(nil)).Elem() +} + +func (i ObservabilityInstanceAlertConfigReceiverWebhooksConfigArray) ToObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput { + return i.ToObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutputWithContext(context.Background()) +} + +func (i ObservabilityInstanceAlertConfigReceiverWebhooksConfigArray) ToObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput) +} + +type ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput struct{ *pulumi.OutputState } + +func (ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityInstanceAlertConfigReceiverWebhooksConfig)(nil)).Elem() +} + +func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput) ToObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput() ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput) ToObservabilityInstanceAlertConfigReceiverWebhooksConfigOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput { + return o +} + +// Google Chat webhooks require special handling, set this to true if the webhook is for Google Chat. +func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput) GoogleChat() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverWebhooksConfig) *bool { return v.GoogleChat }).(pulumi.BoolPtrOutput) +} + +// Microsoft Teams webhooks require special handling, set this to true if the webhook is for Microsoft Teams. +func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput) MsTeams() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverWebhooksConfig) *bool { return v.MsTeams }).(pulumi.BoolPtrOutput) +} + +// Whether to notify about resolved alerts. +func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput) SendResolved() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverWebhooksConfig) *bool { return v.SendResolved }).(pulumi.BoolPtrOutput) +} + +// The endpoint to send HTTP POST requests to. Must be a valid URL +func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput) Url() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverWebhooksConfig) *string { return v.Url }).(pulumi.StringPtrOutput) +} + +type ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput struct{ *pulumi.OutputState } + +func (ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigReceiverWebhooksConfig)(nil)).Elem() +} + +func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput) ToObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput) ToObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput) Index(i pulumi.IntInput) ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObservabilityInstanceAlertConfigReceiverWebhooksConfig { + return vs[0].([]ObservabilityInstanceAlertConfigReceiverWebhooksConfig)[vs[1].(int)] + }).(ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput) +} + +type ObservabilityInstanceAlertConfigRoute struct { + // Whether an alert should continue matching subsequent sibling nodes. + Continue *bool `pulumi:"continue"` + // 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. + GroupBies []string `pulumi:"groupBies"` + // 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.) + GroupInterval *string `pulumi:"groupInterval"` + // 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.) + GroupWait *string `pulumi:"groupWait"` + // The name of the receiver to route the alerts to. + Receiver string `pulumi:"receiver"` + // How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). + RepeatInterval *string `pulumi:"repeatInterval"` + // List of child routes. + Routes []ObservabilityInstanceAlertConfigRouteRoute `pulumi:"routes"` +} + +// ObservabilityInstanceAlertConfigRouteInput is an input type that accepts ObservabilityInstanceAlertConfigRouteArgs and ObservabilityInstanceAlertConfigRouteOutput values. +// You can construct a concrete instance of `ObservabilityInstanceAlertConfigRouteInput` via: +// +// ObservabilityInstanceAlertConfigRouteArgs{...} +type ObservabilityInstanceAlertConfigRouteInput interface { + pulumi.Input + + ToObservabilityInstanceAlertConfigRouteOutput() ObservabilityInstanceAlertConfigRouteOutput + ToObservabilityInstanceAlertConfigRouteOutputWithContext(context.Context) ObservabilityInstanceAlertConfigRouteOutput +} + +type ObservabilityInstanceAlertConfigRouteArgs struct { + // Whether an alert should continue matching subsequent sibling nodes. + Continue pulumi.BoolPtrInput `pulumi:"continue"` + // 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. + GroupBies pulumi.StringArrayInput `pulumi:"groupBies"` + // 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.) + GroupInterval pulumi.StringPtrInput `pulumi:"groupInterval"` + // 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.) + GroupWait pulumi.StringPtrInput `pulumi:"groupWait"` + // The name of the receiver to route the alerts to. + Receiver pulumi.StringInput `pulumi:"receiver"` + // How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). + RepeatInterval pulumi.StringPtrInput `pulumi:"repeatInterval"` + // List of child routes. + Routes ObservabilityInstanceAlertConfigRouteRouteArrayInput `pulumi:"routes"` +} + +func (ObservabilityInstanceAlertConfigRouteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityInstanceAlertConfigRoute)(nil)).Elem() +} + +func (i ObservabilityInstanceAlertConfigRouteArgs) ToObservabilityInstanceAlertConfigRouteOutput() ObservabilityInstanceAlertConfigRouteOutput { + return i.ToObservabilityInstanceAlertConfigRouteOutputWithContext(context.Background()) +} + +func (i ObservabilityInstanceAlertConfigRouteArgs) ToObservabilityInstanceAlertConfigRouteOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRouteOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigRouteOutput) +} + +func (i ObservabilityInstanceAlertConfigRouteArgs) ToObservabilityInstanceAlertConfigRoutePtrOutput() ObservabilityInstanceAlertConfigRoutePtrOutput { + return i.ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(context.Background()) +} + +func (i ObservabilityInstanceAlertConfigRouteArgs) ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRoutePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigRouteOutput).ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(ctx) +} + +// ObservabilityInstanceAlertConfigRoutePtrInput is an input type that accepts ObservabilityInstanceAlertConfigRouteArgs, ObservabilityInstanceAlertConfigRoutePtr and ObservabilityInstanceAlertConfigRoutePtrOutput values. +// You can construct a concrete instance of `ObservabilityInstanceAlertConfigRoutePtrInput` via: +// +// ObservabilityInstanceAlertConfigRouteArgs{...} +// +// or: +// +// nil +type ObservabilityInstanceAlertConfigRoutePtrInput interface { + pulumi.Input + + ToObservabilityInstanceAlertConfigRoutePtrOutput() ObservabilityInstanceAlertConfigRoutePtrOutput + ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(context.Context) ObservabilityInstanceAlertConfigRoutePtrOutput +} + +type observabilityInstanceAlertConfigRoutePtrType ObservabilityInstanceAlertConfigRouteArgs + +func ObservabilityInstanceAlertConfigRoutePtr(v *ObservabilityInstanceAlertConfigRouteArgs) ObservabilityInstanceAlertConfigRoutePtrInput { + return (*observabilityInstanceAlertConfigRoutePtrType)(v) +} + +func (*observabilityInstanceAlertConfigRoutePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ObservabilityInstanceAlertConfigRoute)(nil)).Elem() +} + +func (i *observabilityInstanceAlertConfigRoutePtrType) ToObservabilityInstanceAlertConfigRoutePtrOutput() ObservabilityInstanceAlertConfigRoutePtrOutput { + return i.ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(context.Background()) +} + +func (i *observabilityInstanceAlertConfigRoutePtrType) ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRoutePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigRoutePtrOutput) +} + +type ObservabilityInstanceAlertConfigRouteOutput struct{ *pulumi.OutputState } + +func (ObservabilityInstanceAlertConfigRouteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityInstanceAlertConfigRoute)(nil)).Elem() +} + +func (o ObservabilityInstanceAlertConfigRouteOutput) ToObservabilityInstanceAlertConfigRouteOutput() ObservabilityInstanceAlertConfigRouteOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigRouteOutput) ToObservabilityInstanceAlertConfigRouteOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRouteOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigRouteOutput) ToObservabilityInstanceAlertConfigRoutePtrOutput() ObservabilityInstanceAlertConfigRoutePtrOutput { + return o.ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(context.Background()) +} + +func (o ObservabilityInstanceAlertConfigRouteOutput) ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRoutePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ObservabilityInstanceAlertConfigRoute) *ObservabilityInstanceAlertConfigRoute { + return &v + }).(ObservabilityInstanceAlertConfigRoutePtrOutput) +} + +// Whether an alert should continue matching subsequent sibling nodes. +func (o ObservabilityInstanceAlertConfigRouteOutput) Continue() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigRoute) *bool { return v.Continue }).(pulumi.BoolPtrOutput) +} + +// 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. +func (o ObservabilityInstanceAlertConfigRouteOutput) GroupBies() pulumi.StringArrayOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigRoute) []string { return v.GroupBies }).(pulumi.StringArrayOutput) +} + +// 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.) +func (o ObservabilityInstanceAlertConfigRouteOutput) GroupInterval() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigRoute) *string { return v.GroupInterval }).(pulumi.StringPtrOutput) +} + +// 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.) +func (o ObservabilityInstanceAlertConfigRouteOutput) GroupWait() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigRoute) *string { return v.GroupWait }).(pulumi.StringPtrOutput) +} + +// The name of the receiver to route the alerts to. +func (o ObservabilityInstanceAlertConfigRouteOutput) Receiver() pulumi.StringOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigRoute) string { return v.Receiver }).(pulumi.StringOutput) +} + +// How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). +func (o ObservabilityInstanceAlertConfigRouteOutput) RepeatInterval() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigRoute) *string { return v.RepeatInterval }).(pulumi.StringPtrOutput) +} + +// List of child routes. +func (o ObservabilityInstanceAlertConfigRouteOutput) Routes() ObservabilityInstanceAlertConfigRouteRouteArrayOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigRoute) []ObservabilityInstanceAlertConfigRouteRoute { + return v.Routes + }).(ObservabilityInstanceAlertConfigRouteRouteArrayOutput) +} + +type ObservabilityInstanceAlertConfigRoutePtrOutput struct{ *pulumi.OutputState } + +func (ObservabilityInstanceAlertConfigRoutePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ObservabilityInstanceAlertConfigRoute)(nil)).Elem() +} + +func (o ObservabilityInstanceAlertConfigRoutePtrOutput) ToObservabilityInstanceAlertConfigRoutePtrOutput() ObservabilityInstanceAlertConfigRoutePtrOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigRoutePtrOutput) ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRoutePtrOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigRoutePtrOutput) Elem() ObservabilityInstanceAlertConfigRouteOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) ObservabilityInstanceAlertConfigRoute { + if v != nil { + return *v + } + var ret ObservabilityInstanceAlertConfigRoute + return ret + }).(ObservabilityInstanceAlertConfigRouteOutput) +} + +// Whether an alert should continue matching subsequent sibling nodes. +func (o ObservabilityInstanceAlertConfigRoutePtrOutput) Continue() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) *bool { + if v == nil { + return nil + } + return v.Continue + }).(pulumi.BoolPtrOutput) +} + +// 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. +func (o ObservabilityInstanceAlertConfigRoutePtrOutput) GroupBies() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) []string { + if v == nil { + return nil + } + return v.GroupBies + }).(pulumi.StringArrayOutput) +} + +// 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.) +func (o ObservabilityInstanceAlertConfigRoutePtrOutput) GroupInterval() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) *string { + if v == nil { + return nil + } + return v.GroupInterval + }).(pulumi.StringPtrOutput) +} + +// 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.) +func (o ObservabilityInstanceAlertConfigRoutePtrOutput) GroupWait() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) *string { + if v == nil { + return nil + } + return v.GroupWait + }).(pulumi.StringPtrOutput) +} + +// The name of the receiver to route the alerts to. +func (o ObservabilityInstanceAlertConfigRoutePtrOutput) Receiver() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) *string { + if v == nil { + return nil + } + return &v.Receiver + }).(pulumi.StringPtrOutput) +} + +// How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). +func (o ObservabilityInstanceAlertConfigRoutePtrOutput) RepeatInterval() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) *string { + if v == nil { + return nil + } + return v.RepeatInterval + }).(pulumi.StringPtrOutput) +} + +// List of child routes. +func (o ObservabilityInstanceAlertConfigRoutePtrOutput) Routes() ObservabilityInstanceAlertConfigRouteRouteArrayOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) []ObservabilityInstanceAlertConfigRouteRoute { + if v == nil { + return nil + } + return v.Routes + }).(ObservabilityInstanceAlertConfigRouteRouteArrayOutput) +} + +type ObservabilityInstanceAlertConfigRouteRoute struct { + // Whether an alert should continue matching subsequent sibling nodes. + Continue *bool `pulumi:"continue"` + // 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. + GroupBies []string `pulumi:"groupBies"` + // 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.) + GroupInterval *string `pulumi:"groupInterval"` + // 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.) + GroupWait *string `pulumi:"groupWait"` + // 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 `matchers` in the `routes` instead + // + // Deprecated: Use `matchers` in the `routes` instead. + Match map[string]string `pulumi:"match"` + // 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 `matchers` in the `routes` instead + // + // Deprecated: Use `matchers` in the `routes` instead. + MatchRegex map[string]string `pulumi:"matchRegex"` + // 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. + Matchers []string `pulumi:"matchers"` + // The name of the receiver to route the alerts to. + Receiver string `pulumi:"receiver"` + // How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). + RepeatInterval *string `pulumi:"repeatInterval"` +} + +// ObservabilityInstanceAlertConfigRouteRouteInput is an input type that accepts ObservabilityInstanceAlertConfigRouteRouteArgs and ObservabilityInstanceAlertConfigRouteRouteOutput values. +// You can construct a concrete instance of `ObservabilityInstanceAlertConfigRouteRouteInput` via: +// +// ObservabilityInstanceAlertConfigRouteRouteArgs{...} +type ObservabilityInstanceAlertConfigRouteRouteInput interface { + pulumi.Input + + ToObservabilityInstanceAlertConfigRouteRouteOutput() ObservabilityInstanceAlertConfigRouteRouteOutput + ToObservabilityInstanceAlertConfigRouteRouteOutputWithContext(context.Context) ObservabilityInstanceAlertConfigRouteRouteOutput +} + +type ObservabilityInstanceAlertConfigRouteRouteArgs struct { + // Whether an alert should continue matching subsequent sibling nodes. + Continue pulumi.BoolPtrInput `pulumi:"continue"` + // 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. + GroupBies pulumi.StringArrayInput `pulumi:"groupBies"` + // 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.) + GroupInterval pulumi.StringPtrInput `pulumi:"groupInterval"` + // 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.) + GroupWait pulumi.StringPtrInput `pulumi:"groupWait"` + // 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 `matchers` in the `routes` instead + // + // Deprecated: Use `matchers` in the `routes` instead. + Match pulumi.StringMapInput `pulumi:"match"` + // 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 `matchers` in the `routes` instead + // + // Deprecated: Use `matchers` in the `routes` instead. + MatchRegex pulumi.StringMapInput `pulumi:"matchRegex"` + // 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. + Matchers pulumi.StringArrayInput `pulumi:"matchers"` + // The name of the receiver to route the alerts to. + Receiver pulumi.StringInput `pulumi:"receiver"` + // How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). + RepeatInterval pulumi.StringPtrInput `pulumi:"repeatInterval"` +} + +func (ObservabilityInstanceAlertConfigRouteRouteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityInstanceAlertConfigRouteRoute)(nil)).Elem() +} + +func (i ObservabilityInstanceAlertConfigRouteRouteArgs) ToObservabilityInstanceAlertConfigRouteRouteOutput() ObservabilityInstanceAlertConfigRouteRouteOutput { + return i.ToObservabilityInstanceAlertConfigRouteRouteOutputWithContext(context.Background()) +} + +func (i ObservabilityInstanceAlertConfigRouteRouteArgs) ToObservabilityInstanceAlertConfigRouteRouteOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRouteRouteOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigRouteRouteOutput) +} + +// ObservabilityInstanceAlertConfigRouteRouteArrayInput is an input type that accepts ObservabilityInstanceAlertConfigRouteRouteArray and ObservabilityInstanceAlertConfigRouteRouteArrayOutput values. +// You can construct a concrete instance of `ObservabilityInstanceAlertConfigRouteRouteArrayInput` via: +// +// ObservabilityInstanceAlertConfigRouteRouteArray{ ObservabilityInstanceAlertConfigRouteRouteArgs{...} } +type ObservabilityInstanceAlertConfigRouteRouteArrayInput interface { + pulumi.Input + + ToObservabilityInstanceAlertConfigRouteRouteArrayOutput() ObservabilityInstanceAlertConfigRouteRouteArrayOutput + ToObservabilityInstanceAlertConfigRouteRouteArrayOutputWithContext(context.Context) ObservabilityInstanceAlertConfigRouteRouteArrayOutput +} + +type ObservabilityInstanceAlertConfigRouteRouteArray []ObservabilityInstanceAlertConfigRouteRouteInput + +func (ObservabilityInstanceAlertConfigRouteRouteArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigRouteRoute)(nil)).Elem() +} + +func (i ObservabilityInstanceAlertConfigRouteRouteArray) ToObservabilityInstanceAlertConfigRouteRouteArrayOutput() ObservabilityInstanceAlertConfigRouteRouteArrayOutput { + return i.ToObservabilityInstanceAlertConfigRouteRouteArrayOutputWithContext(context.Background()) +} + +func (i ObservabilityInstanceAlertConfigRouteRouteArray) ToObservabilityInstanceAlertConfigRouteRouteArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRouteRouteArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigRouteRouteArrayOutput) +} + +type ObservabilityInstanceAlertConfigRouteRouteOutput struct{ *pulumi.OutputState } + +func (ObservabilityInstanceAlertConfigRouteRouteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityInstanceAlertConfigRouteRoute)(nil)).Elem() +} + +func (o ObservabilityInstanceAlertConfigRouteRouteOutput) ToObservabilityInstanceAlertConfigRouteRouteOutput() ObservabilityInstanceAlertConfigRouteRouteOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigRouteRouteOutput) ToObservabilityInstanceAlertConfigRouteRouteOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRouteRouteOutput { + return o +} + +// Whether an alert should continue matching subsequent sibling nodes. +func (o ObservabilityInstanceAlertConfigRouteRouteOutput) Continue() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) *bool { return v.Continue }).(pulumi.BoolPtrOutput) +} + +// 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. +func (o ObservabilityInstanceAlertConfigRouteRouteOutput) GroupBies() pulumi.StringArrayOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) []string { return v.GroupBies }).(pulumi.StringArrayOutput) +} + +// 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.) +func (o ObservabilityInstanceAlertConfigRouteRouteOutput) GroupInterval() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) *string { return v.GroupInterval }).(pulumi.StringPtrOutput) +} + +// 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.) +func (o ObservabilityInstanceAlertConfigRouteRouteOutput) GroupWait() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) *string { return v.GroupWait }).(pulumi.StringPtrOutput) +} + +// 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 `matchers` in the `routes` instead +// +// Deprecated: Use `matchers` in the `routes` instead. +func (o ObservabilityInstanceAlertConfigRouteRouteOutput) Match() pulumi.StringMapOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) map[string]string { return v.Match }).(pulumi.StringMapOutput) +} + +// 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 `matchers` in the `routes` instead +// +// Deprecated: Use `matchers` in the `routes` instead. +func (o ObservabilityInstanceAlertConfigRouteRouteOutput) MatchRegex() pulumi.StringMapOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) map[string]string { return v.MatchRegex }).(pulumi.StringMapOutput) +} + +// 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. +func (o ObservabilityInstanceAlertConfigRouteRouteOutput) Matchers() pulumi.StringArrayOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) []string { return v.Matchers }).(pulumi.StringArrayOutput) +} + +// The name of the receiver to route the alerts to. +func (o ObservabilityInstanceAlertConfigRouteRouteOutput) Receiver() pulumi.StringOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) string { return v.Receiver }).(pulumi.StringOutput) +} + +// How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). +func (o ObservabilityInstanceAlertConfigRouteRouteOutput) RepeatInterval() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) *string { return v.RepeatInterval }).(pulumi.StringPtrOutput) +} + +type ObservabilityInstanceAlertConfigRouteRouteArrayOutput struct{ *pulumi.OutputState } + +func (ObservabilityInstanceAlertConfigRouteRouteArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigRouteRoute)(nil)).Elem() +} + +func (o ObservabilityInstanceAlertConfigRouteRouteArrayOutput) ToObservabilityInstanceAlertConfigRouteRouteArrayOutput() ObservabilityInstanceAlertConfigRouteRouteArrayOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigRouteRouteArrayOutput) ToObservabilityInstanceAlertConfigRouteRouteArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRouteRouteArrayOutput { + return o +} + +func (o ObservabilityInstanceAlertConfigRouteRouteArrayOutput) Index(i pulumi.IntInput) ObservabilityInstanceAlertConfigRouteRouteOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObservabilityInstanceAlertConfigRouteRoute { + return vs[0].([]ObservabilityInstanceAlertConfigRouteRoute)[vs[1].(int)] + }).(ObservabilityInstanceAlertConfigRouteRouteOutput) +} + +type ObservabilityLogalertgroupRule struct { + // The name of the alert rule. Is the identifier and must be unique in the group. + Alert string `pulumi:"alert"` + // A map of key:value. Annotations to add or overwrite for each alert + Annotations map[string]string `pulumi:"annotations"` + // The LogQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. + Expression string `pulumi:"expression"` + // 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 + For *string `pulumi:"for"` + // A map of key:value. Labels to add or overwrite for each alert + Labels map[string]string `pulumi:"labels"` +} + +// ObservabilityLogalertgroupRuleInput is an input type that accepts ObservabilityLogalertgroupRuleArgs and ObservabilityLogalertgroupRuleOutput values. +// You can construct a concrete instance of `ObservabilityLogalertgroupRuleInput` via: +// +// ObservabilityLogalertgroupRuleArgs{...} +type ObservabilityLogalertgroupRuleInput interface { + pulumi.Input + + ToObservabilityLogalertgroupRuleOutput() ObservabilityLogalertgroupRuleOutput + ToObservabilityLogalertgroupRuleOutputWithContext(context.Context) ObservabilityLogalertgroupRuleOutput +} + +type ObservabilityLogalertgroupRuleArgs struct { + // The name of the alert rule. Is the identifier and must be unique in the group. + Alert pulumi.StringInput `pulumi:"alert"` + // A map of key:value. Annotations to add or overwrite for each alert + Annotations pulumi.StringMapInput `pulumi:"annotations"` + // The LogQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. + Expression pulumi.StringInput `pulumi:"expression"` + // 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 + For pulumi.StringPtrInput `pulumi:"for"` + // A map of key:value. Labels to add or overwrite for each alert + Labels pulumi.StringMapInput `pulumi:"labels"` +} + +func (ObservabilityLogalertgroupRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityLogalertgroupRule)(nil)).Elem() +} + +func (i ObservabilityLogalertgroupRuleArgs) ToObservabilityLogalertgroupRuleOutput() ObservabilityLogalertgroupRuleOutput { + return i.ToObservabilityLogalertgroupRuleOutputWithContext(context.Background()) +} + +func (i ObservabilityLogalertgroupRuleArgs) ToObservabilityLogalertgroupRuleOutputWithContext(ctx context.Context) ObservabilityLogalertgroupRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityLogalertgroupRuleOutput) +} + +// ObservabilityLogalertgroupRuleArrayInput is an input type that accepts ObservabilityLogalertgroupRuleArray and ObservabilityLogalertgroupRuleArrayOutput values. +// You can construct a concrete instance of `ObservabilityLogalertgroupRuleArrayInput` via: +// +// ObservabilityLogalertgroupRuleArray{ ObservabilityLogalertgroupRuleArgs{...} } +type ObservabilityLogalertgroupRuleArrayInput interface { + pulumi.Input + + ToObservabilityLogalertgroupRuleArrayOutput() ObservabilityLogalertgroupRuleArrayOutput + ToObservabilityLogalertgroupRuleArrayOutputWithContext(context.Context) ObservabilityLogalertgroupRuleArrayOutput +} + +type ObservabilityLogalertgroupRuleArray []ObservabilityLogalertgroupRuleInput + +func (ObservabilityLogalertgroupRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObservabilityLogalertgroupRule)(nil)).Elem() +} + +func (i ObservabilityLogalertgroupRuleArray) ToObservabilityLogalertgroupRuleArrayOutput() ObservabilityLogalertgroupRuleArrayOutput { + return i.ToObservabilityLogalertgroupRuleArrayOutputWithContext(context.Background()) +} + +func (i ObservabilityLogalertgroupRuleArray) ToObservabilityLogalertgroupRuleArrayOutputWithContext(ctx context.Context) ObservabilityLogalertgroupRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityLogalertgroupRuleArrayOutput) +} + +type ObservabilityLogalertgroupRuleOutput struct{ *pulumi.OutputState } + +func (ObservabilityLogalertgroupRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityLogalertgroupRule)(nil)).Elem() +} + +func (o ObservabilityLogalertgroupRuleOutput) ToObservabilityLogalertgroupRuleOutput() ObservabilityLogalertgroupRuleOutput { + return o +} + +func (o ObservabilityLogalertgroupRuleOutput) ToObservabilityLogalertgroupRuleOutputWithContext(ctx context.Context) ObservabilityLogalertgroupRuleOutput { + return o +} + +// The name of the alert rule. Is the identifier and must be unique in the group. +func (o ObservabilityLogalertgroupRuleOutput) Alert() pulumi.StringOutput { + return o.ApplyT(func(v ObservabilityLogalertgroupRule) string { return v.Alert }).(pulumi.StringOutput) +} + +// A map of key:value. Annotations to add or overwrite for each alert +func (o ObservabilityLogalertgroupRuleOutput) Annotations() pulumi.StringMapOutput { + return o.ApplyT(func(v ObservabilityLogalertgroupRule) map[string]string { return v.Annotations }).(pulumi.StringMapOutput) +} + +// The LogQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. +func (o ObservabilityLogalertgroupRuleOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v ObservabilityLogalertgroupRule) string { return v.Expression }).(pulumi.StringOutput) +} + +// 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 +func (o ObservabilityLogalertgroupRuleOutput) For() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityLogalertgroupRule) *string { return v.For }).(pulumi.StringPtrOutput) +} + +// A map of key:value. Labels to add or overwrite for each alert +func (o ObservabilityLogalertgroupRuleOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v ObservabilityLogalertgroupRule) map[string]string { return v.Labels }).(pulumi.StringMapOutput) +} + +type ObservabilityLogalertgroupRuleArrayOutput struct{ *pulumi.OutputState } + +func (ObservabilityLogalertgroupRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObservabilityLogalertgroupRule)(nil)).Elem() +} + +func (o ObservabilityLogalertgroupRuleArrayOutput) ToObservabilityLogalertgroupRuleArrayOutput() ObservabilityLogalertgroupRuleArrayOutput { + return o +} + +func (o ObservabilityLogalertgroupRuleArrayOutput) ToObservabilityLogalertgroupRuleArrayOutputWithContext(ctx context.Context) ObservabilityLogalertgroupRuleArrayOutput { + return o +} + +func (o ObservabilityLogalertgroupRuleArrayOutput) Index(i pulumi.IntInput) ObservabilityLogalertgroupRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObservabilityLogalertgroupRule { + return vs[0].([]ObservabilityLogalertgroupRule)[vs[1].(int)] + }).(ObservabilityLogalertgroupRuleOutput) +} + +type ObservabilityScrapeconfigBasicAuth struct { + // Specifies basic auth password. + Password string `pulumi:"password"` + // Specifies basic auth username. + Username string `pulumi:"username"` +} + +// ObservabilityScrapeconfigBasicAuthInput is an input type that accepts ObservabilityScrapeconfigBasicAuthArgs and ObservabilityScrapeconfigBasicAuthOutput values. +// You can construct a concrete instance of `ObservabilityScrapeconfigBasicAuthInput` via: +// +// ObservabilityScrapeconfigBasicAuthArgs{...} +type ObservabilityScrapeconfigBasicAuthInput interface { + pulumi.Input + + ToObservabilityScrapeconfigBasicAuthOutput() ObservabilityScrapeconfigBasicAuthOutput + ToObservabilityScrapeconfigBasicAuthOutputWithContext(context.Context) ObservabilityScrapeconfigBasicAuthOutput +} + +type ObservabilityScrapeconfigBasicAuthArgs struct { + // Specifies basic auth password. + Password pulumi.StringInput `pulumi:"password"` + // Specifies basic auth username. + Username pulumi.StringInput `pulumi:"username"` +} + +func (ObservabilityScrapeconfigBasicAuthArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityScrapeconfigBasicAuth)(nil)).Elem() +} + +func (i ObservabilityScrapeconfigBasicAuthArgs) ToObservabilityScrapeconfigBasicAuthOutput() ObservabilityScrapeconfigBasicAuthOutput { + return i.ToObservabilityScrapeconfigBasicAuthOutputWithContext(context.Background()) +} + +func (i ObservabilityScrapeconfigBasicAuthArgs) ToObservabilityScrapeconfigBasicAuthOutputWithContext(ctx context.Context) ObservabilityScrapeconfigBasicAuthOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityScrapeconfigBasicAuthOutput) +} + +func (i ObservabilityScrapeconfigBasicAuthArgs) ToObservabilityScrapeconfigBasicAuthPtrOutput() ObservabilityScrapeconfigBasicAuthPtrOutput { + return i.ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(context.Background()) +} + +func (i ObservabilityScrapeconfigBasicAuthArgs) ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(ctx context.Context) ObservabilityScrapeconfigBasicAuthPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityScrapeconfigBasicAuthOutput).ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(ctx) +} + +// ObservabilityScrapeconfigBasicAuthPtrInput is an input type that accepts ObservabilityScrapeconfigBasicAuthArgs, ObservabilityScrapeconfigBasicAuthPtr and ObservabilityScrapeconfigBasicAuthPtrOutput values. +// You can construct a concrete instance of `ObservabilityScrapeconfigBasicAuthPtrInput` via: +// +// ObservabilityScrapeconfigBasicAuthArgs{...} +// +// or: +// +// nil +type ObservabilityScrapeconfigBasicAuthPtrInput interface { + pulumi.Input + + ToObservabilityScrapeconfigBasicAuthPtrOutput() ObservabilityScrapeconfigBasicAuthPtrOutput + ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(context.Context) ObservabilityScrapeconfigBasicAuthPtrOutput +} + +type observabilityScrapeconfigBasicAuthPtrType ObservabilityScrapeconfigBasicAuthArgs + +func ObservabilityScrapeconfigBasicAuthPtr(v *ObservabilityScrapeconfigBasicAuthArgs) ObservabilityScrapeconfigBasicAuthPtrInput { + return (*observabilityScrapeconfigBasicAuthPtrType)(v) +} + +func (*observabilityScrapeconfigBasicAuthPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ObservabilityScrapeconfigBasicAuth)(nil)).Elem() +} + +func (i *observabilityScrapeconfigBasicAuthPtrType) ToObservabilityScrapeconfigBasicAuthPtrOutput() ObservabilityScrapeconfigBasicAuthPtrOutput { + return i.ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(context.Background()) +} + +func (i *observabilityScrapeconfigBasicAuthPtrType) ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(ctx context.Context) ObservabilityScrapeconfigBasicAuthPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityScrapeconfigBasicAuthPtrOutput) +} + +type ObservabilityScrapeconfigBasicAuthOutput struct{ *pulumi.OutputState } + +func (ObservabilityScrapeconfigBasicAuthOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityScrapeconfigBasicAuth)(nil)).Elem() +} + +func (o ObservabilityScrapeconfigBasicAuthOutput) ToObservabilityScrapeconfigBasicAuthOutput() ObservabilityScrapeconfigBasicAuthOutput { + return o +} + +func (o ObservabilityScrapeconfigBasicAuthOutput) ToObservabilityScrapeconfigBasicAuthOutputWithContext(ctx context.Context) ObservabilityScrapeconfigBasicAuthOutput { + return o +} + +func (o ObservabilityScrapeconfigBasicAuthOutput) ToObservabilityScrapeconfigBasicAuthPtrOutput() ObservabilityScrapeconfigBasicAuthPtrOutput { + return o.ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(context.Background()) +} + +func (o ObservabilityScrapeconfigBasicAuthOutput) ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(ctx context.Context) ObservabilityScrapeconfigBasicAuthPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ObservabilityScrapeconfigBasicAuth) *ObservabilityScrapeconfigBasicAuth { + return &v + }).(ObservabilityScrapeconfigBasicAuthPtrOutput) +} + +// Specifies basic auth password. +func (o ObservabilityScrapeconfigBasicAuthOutput) Password() pulumi.StringOutput { + return o.ApplyT(func(v ObservabilityScrapeconfigBasicAuth) string { return v.Password }).(pulumi.StringOutput) +} + +// Specifies basic auth username. +func (o ObservabilityScrapeconfigBasicAuthOutput) Username() pulumi.StringOutput { + return o.ApplyT(func(v ObservabilityScrapeconfigBasicAuth) string { return v.Username }).(pulumi.StringOutput) +} + +type ObservabilityScrapeconfigBasicAuthPtrOutput struct{ *pulumi.OutputState } + +func (ObservabilityScrapeconfigBasicAuthPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ObservabilityScrapeconfigBasicAuth)(nil)).Elem() +} + +func (o ObservabilityScrapeconfigBasicAuthPtrOutput) ToObservabilityScrapeconfigBasicAuthPtrOutput() ObservabilityScrapeconfigBasicAuthPtrOutput { + return o +} + +func (o ObservabilityScrapeconfigBasicAuthPtrOutput) ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(ctx context.Context) ObservabilityScrapeconfigBasicAuthPtrOutput { + return o +} + +func (o ObservabilityScrapeconfigBasicAuthPtrOutput) Elem() ObservabilityScrapeconfigBasicAuthOutput { + return o.ApplyT(func(v *ObservabilityScrapeconfigBasicAuth) ObservabilityScrapeconfigBasicAuth { + if v != nil { + return *v + } + var ret ObservabilityScrapeconfigBasicAuth + return ret + }).(ObservabilityScrapeconfigBasicAuthOutput) +} + +// Specifies basic auth password. +func (o ObservabilityScrapeconfigBasicAuthPtrOutput) Password() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObservabilityScrapeconfigBasicAuth) *string { + if v == nil { + return nil + } + return &v.Password + }).(pulumi.StringPtrOutput) +} + +// Specifies basic auth username. +func (o ObservabilityScrapeconfigBasicAuthPtrOutput) Username() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObservabilityScrapeconfigBasicAuth) *string { + if v == nil { + return nil + } + return &v.Username + }).(pulumi.StringPtrOutput) +} + +type ObservabilityScrapeconfigSaml2 struct { + // Specifies if URL parameters are enabled. Defaults to `true` + EnableUrlParameters *bool `pulumi:"enableUrlParameters"` +} + +// ObservabilityScrapeconfigSaml2Input is an input type that accepts ObservabilityScrapeconfigSaml2Args and ObservabilityScrapeconfigSaml2Output values. +// You can construct a concrete instance of `ObservabilityScrapeconfigSaml2Input` via: +// +// ObservabilityScrapeconfigSaml2Args{...} +type ObservabilityScrapeconfigSaml2Input interface { + pulumi.Input + + ToObservabilityScrapeconfigSaml2Output() ObservabilityScrapeconfigSaml2Output + ToObservabilityScrapeconfigSaml2OutputWithContext(context.Context) ObservabilityScrapeconfigSaml2Output +} + +type ObservabilityScrapeconfigSaml2Args struct { + // Specifies if URL parameters are enabled. Defaults to `true` + EnableUrlParameters pulumi.BoolPtrInput `pulumi:"enableUrlParameters"` +} + +func (ObservabilityScrapeconfigSaml2Args) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityScrapeconfigSaml2)(nil)).Elem() +} + +func (i ObservabilityScrapeconfigSaml2Args) ToObservabilityScrapeconfigSaml2Output() ObservabilityScrapeconfigSaml2Output { + return i.ToObservabilityScrapeconfigSaml2OutputWithContext(context.Background()) +} + +func (i ObservabilityScrapeconfigSaml2Args) ToObservabilityScrapeconfigSaml2OutputWithContext(ctx context.Context) ObservabilityScrapeconfigSaml2Output { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityScrapeconfigSaml2Output) +} + +func (i ObservabilityScrapeconfigSaml2Args) ToObservabilityScrapeconfigSaml2PtrOutput() ObservabilityScrapeconfigSaml2PtrOutput { + return i.ToObservabilityScrapeconfigSaml2PtrOutputWithContext(context.Background()) +} + +func (i ObservabilityScrapeconfigSaml2Args) ToObservabilityScrapeconfigSaml2PtrOutputWithContext(ctx context.Context) ObservabilityScrapeconfigSaml2PtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityScrapeconfigSaml2Output).ToObservabilityScrapeconfigSaml2PtrOutputWithContext(ctx) +} + +// ObservabilityScrapeconfigSaml2PtrInput is an input type that accepts ObservabilityScrapeconfigSaml2Args, ObservabilityScrapeconfigSaml2Ptr and ObservabilityScrapeconfigSaml2PtrOutput values. +// You can construct a concrete instance of `ObservabilityScrapeconfigSaml2PtrInput` via: +// +// ObservabilityScrapeconfigSaml2Args{...} +// +// or: +// +// nil +type ObservabilityScrapeconfigSaml2PtrInput interface { + pulumi.Input + + ToObservabilityScrapeconfigSaml2PtrOutput() ObservabilityScrapeconfigSaml2PtrOutput + ToObservabilityScrapeconfigSaml2PtrOutputWithContext(context.Context) ObservabilityScrapeconfigSaml2PtrOutput +} + +type observabilityScrapeconfigSaml2PtrType ObservabilityScrapeconfigSaml2Args + +func ObservabilityScrapeconfigSaml2Ptr(v *ObservabilityScrapeconfigSaml2Args) ObservabilityScrapeconfigSaml2PtrInput { + return (*observabilityScrapeconfigSaml2PtrType)(v) +} + +func (*observabilityScrapeconfigSaml2PtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ObservabilityScrapeconfigSaml2)(nil)).Elem() +} + +func (i *observabilityScrapeconfigSaml2PtrType) ToObservabilityScrapeconfigSaml2PtrOutput() ObservabilityScrapeconfigSaml2PtrOutput { + return i.ToObservabilityScrapeconfigSaml2PtrOutputWithContext(context.Background()) +} + +func (i *observabilityScrapeconfigSaml2PtrType) ToObservabilityScrapeconfigSaml2PtrOutputWithContext(ctx context.Context) ObservabilityScrapeconfigSaml2PtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityScrapeconfigSaml2PtrOutput) +} + +type ObservabilityScrapeconfigSaml2Output struct{ *pulumi.OutputState } + +func (ObservabilityScrapeconfigSaml2Output) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityScrapeconfigSaml2)(nil)).Elem() +} + +func (o ObservabilityScrapeconfigSaml2Output) ToObservabilityScrapeconfigSaml2Output() ObservabilityScrapeconfigSaml2Output { + return o +} + +func (o ObservabilityScrapeconfigSaml2Output) ToObservabilityScrapeconfigSaml2OutputWithContext(ctx context.Context) ObservabilityScrapeconfigSaml2Output { + return o +} + +func (o ObservabilityScrapeconfigSaml2Output) ToObservabilityScrapeconfigSaml2PtrOutput() ObservabilityScrapeconfigSaml2PtrOutput { + return o.ToObservabilityScrapeconfigSaml2PtrOutputWithContext(context.Background()) +} + +func (o ObservabilityScrapeconfigSaml2Output) ToObservabilityScrapeconfigSaml2PtrOutputWithContext(ctx context.Context) ObservabilityScrapeconfigSaml2PtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ObservabilityScrapeconfigSaml2) *ObservabilityScrapeconfigSaml2 { + return &v + }).(ObservabilityScrapeconfigSaml2PtrOutput) +} + +// Specifies if URL parameters are enabled. Defaults to `true` +func (o ObservabilityScrapeconfigSaml2Output) EnableUrlParameters() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ObservabilityScrapeconfigSaml2) *bool { return v.EnableUrlParameters }).(pulumi.BoolPtrOutput) +} + +type ObservabilityScrapeconfigSaml2PtrOutput struct{ *pulumi.OutputState } + +func (ObservabilityScrapeconfigSaml2PtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ObservabilityScrapeconfigSaml2)(nil)).Elem() +} + +func (o ObservabilityScrapeconfigSaml2PtrOutput) ToObservabilityScrapeconfigSaml2PtrOutput() ObservabilityScrapeconfigSaml2PtrOutput { + return o +} + +func (o ObservabilityScrapeconfigSaml2PtrOutput) ToObservabilityScrapeconfigSaml2PtrOutputWithContext(ctx context.Context) ObservabilityScrapeconfigSaml2PtrOutput { + return o +} + +func (o ObservabilityScrapeconfigSaml2PtrOutput) Elem() ObservabilityScrapeconfigSaml2Output { + return o.ApplyT(func(v *ObservabilityScrapeconfigSaml2) ObservabilityScrapeconfigSaml2 { + if v != nil { + return *v + } + var ret ObservabilityScrapeconfigSaml2 + return ret + }).(ObservabilityScrapeconfigSaml2Output) +} + +// Specifies if URL parameters are enabled. Defaults to `true` +func (o ObservabilityScrapeconfigSaml2PtrOutput) EnableUrlParameters() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ObservabilityScrapeconfigSaml2) *bool { + if v == nil { + return nil + } + return v.EnableUrlParameters + }).(pulumi.BoolPtrOutput) +} + +type ObservabilityScrapeconfigTarget struct { + // Specifies labels. + Labels map[string]string `pulumi:"labels"` + // Specifies target URLs. + Urls []string `pulumi:"urls"` +} + +// ObservabilityScrapeconfigTargetInput is an input type that accepts ObservabilityScrapeconfigTargetArgs and ObservabilityScrapeconfigTargetOutput values. +// You can construct a concrete instance of `ObservabilityScrapeconfigTargetInput` via: +// +// ObservabilityScrapeconfigTargetArgs{...} +type ObservabilityScrapeconfigTargetInput interface { + pulumi.Input + + ToObservabilityScrapeconfigTargetOutput() ObservabilityScrapeconfigTargetOutput + ToObservabilityScrapeconfigTargetOutputWithContext(context.Context) ObservabilityScrapeconfigTargetOutput +} + +type ObservabilityScrapeconfigTargetArgs struct { + // Specifies labels. + Labels pulumi.StringMapInput `pulumi:"labels"` + // Specifies target URLs. + Urls pulumi.StringArrayInput `pulumi:"urls"` +} + +func (ObservabilityScrapeconfigTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityScrapeconfigTarget)(nil)).Elem() +} + +func (i ObservabilityScrapeconfigTargetArgs) ToObservabilityScrapeconfigTargetOutput() ObservabilityScrapeconfigTargetOutput { + return i.ToObservabilityScrapeconfigTargetOutputWithContext(context.Background()) +} + +func (i ObservabilityScrapeconfigTargetArgs) ToObservabilityScrapeconfigTargetOutputWithContext(ctx context.Context) ObservabilityScrapeconfigTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityScrapeconfigTargetOutput) +} + +// ObservabilityScrapeconfigTargetArrayInput is an input type that accepts ObservabilityScrapeconfigTargetArray and ObservabilityScrapeconfigTargetArrayOutput values. +// You can construct a concrete instance of `ObservabilityScrapeconfigTargetArrayInput` via: +// +// ObservabilityScrapeconfigTargetArray{ ObservabilityScrapeconfigTargetArgs{...} } +type ObservabilityScrapeconfigTargetArrayInput interface { + pulumi.Input + + ToObservabilityScrapeconfigTargetArrayOutput() ObservabilityScrapeconfigTargetArrayOutput + ToObservabilityScrapeconfigTargetArrayOutputWithContext(context.Context) ObservabilityScrapeconfigTargetArrayOutput +} + +type ObservabilityScrapeconfigTargetArray []ObservabilityScrapeconfigTargetInput + +func (ObservabilityScrapeconfigTargetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObservabilityScrapeconfigTarget)(nil)).Elem() +} + +func (i ObservabilityScrapeconfigTargetArray) ToObservabilityScrapeconfigTargetArrayOutput() ObservabilityScrapeconfigTargetArrayOutput { + return i.ToObservabilityScrapeconfigTargetArrayOutputWithContext(context.Background()) +} + +func (i ObservabilityScrapeconfigTargetArray) ToObservabilityScrapeconfigTargetArrayOutputWithContext(ctx context.Context) ObservabilityScrapeconfigTargetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObservabilityScrapeconfigTargetArrayOutput) +} + +type ObservabilityScrapeconfigTargetOutput struct{ *pulumi.OutputState } + +func (ObservabilityScrapeconfigTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ObservabilityScrapeconfigTarget)(nil)).Elem() +} + +func (o ObservabilityScrapeconfigTargetOutput) ToObservabilityScrapeconfigTargetOutput() ObservabilityScrapeconfigTargetOutput { + return o +} + +func (o ObservabilityScrapeconfigTargetOutput) ToObservabilityScrapeconfigTargetOutputWithContext(ctx context.Context) ObservabilityScrapeconfigTargetOutput { + return o +} + +// Specifies labels. +func (o ObservabilityScrapeconfigTargetOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v ObservabilityScrapeconfigTarget) map[string]string { return v.Labels }).(pulumi.StringMapOutput) +} + +// Specifies target URLs. +func (o ObservabilityScrapeconfigTargetOutput) Urls() pulumi.StringArrayOutput { + return o.ApplyT(func(v ObservabilityScrapeconfigTarget) []string { return v.Urls }).(pulumi.StringArrayOutput) +} + +type ObservabilityScrapeconfigTargetArrayOutput struct{ *pulumi.OutputState } + +func (ObservabilityScrapeconfigTargetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObservabilityScrapeconfigTarget)(nil)).Elem() +} + +func (o ObservabilityScrapeconfigTargetArrayOutput) ToObservabilityScrapeconfigTargetArrayOutput() ObservabilityScrapeconfigTargetArrayOutput { + return o +} + +func (o ObservabilityScrapeconfigTargetArrayOutput) ToObservabilityScrapeconfigTargetArrayOutputWithContext(ctx context.Context) ObservabilityScrapeconfigTargetArrayOutput { + return o +} + +func (o ObservabilityScrapeconfigTargetArrayOutput) Index(i pulumi.IntInput) ObservabilityScrapeconfigTargetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObservabilityScrapeconfigTarget { + return vs[0].([]ObservabilityScrapeconfigTarget)[vs[1].(int)] + }).(ObservabilityScrapeconfigTargetOutput) +} + +type OpensearchInstanceParameters struct { + // Enable monitoring. + EnableMonitoring *bool `pulumi:"enableMonitoring"` + // If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). + Graphite *string `pulumi:"graphite"` + // The garbage collector to use for OpenSearch. + JavaGarbageCollector *string `pulumi:"javaGarbageCollector"` + // The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. + JavaHeapspace *int `pulumi:"javaHeapspace"` + // The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. + JavaMaxmetaspace *int `pulumi:"javaMaxmetaspace"` + // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + MaxDiskThreshold *int `pulumi:"maxDiskThreshold"` + // The frequency in seconds at which metrics are emitted (in seconds). + MetricsFrequency *int `pulumi:"metricsFrequency"` + // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. + MetricsPrefix *string `pulumi:"metricsPrefix"` + // The ID of the STACKIT monitoring instance. + MonitoringInstanceId *string `pulumi:"monitoringInstanceId"` + // 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. + Plugins []string `pulumi:"plugins"` + // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + SgwAcl *string `pulumi:"sgwAcl"` + // List of syslog servers to send logs to. + Syslogs []string `pulumi:"syslogs"` + // List of TLS ciphers to use. + TlsCiphers []string `pulumi:"tlsCiphers"` + // The TLS protocol to use. + TlsProtocols []string `pulumi:"tlsProtocols"` +} + +// OpensearchInstanceParametersInput is an input type that accepts OpensearchInstanceParametersArgs and OpensearchInstanceParametersOutput values. +// You can construct a concrete instance of `OpensearchInstanceParametersInput` via: +// +// OpensearchInstanceParametersArgs{...} +type OpensearchInstanceParametersInput interface { + pulumi.Input + + ToOpensearchInstanceParametersOutput() OpensearchInstanceParametersOutput + ToOpensearchInstanceParametersOutputWithContext(context.Context) OpensearchInstanceParametersOutput +} + +type OpensearchInstanceParametersArgs struct { + // Enable monitoring. + EnableMonitoring pulumi.BoolPtrInput `pulumi:"enableMonitoring"` + // If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). + Graphite pulumi.StringPtrInput `pulumi:"graphite"` + // The garbage collector to use for OpenSearch. + JavaGarbageCollector pulumi.StringPtrInput `pulumi:"javaGarbageCollector"` + // The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. + JavaHeapspace pulumi.IntPtrInput `pulumi:"javaHeapspace"` + // The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. + JavaMaxmetaspace pulumi.IntPtrInput `pulumi:"javaMaxmetaspace"` + // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + MaxDiskThreshold pulumi.IntPtrInput `pulumi:"maxDiskThreshold"` + // The frequency in seconds at which metrics are emitted (in seconds). + MetricsFrequency pulumi.IntPtrInput `pulumi:"metricsFrequency"` + // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. + MetricsPrefix pulumi.StringPtrInput `pulumi:"metricsPrefix"` + // The ID of the STACKIT monitoring instance. + MonitoringInstanceId pulumi.StringPtrInput `pulumi:"monitoringInstanceId"` + // 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. + Plugins pulumi.StringArrayInput `pulumi:"plugins"` + // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + SgwAcl pulumi.StringPtrInput `pulumi:"sgwAcl"` + // List of syslog servers to send logs to. + Syslogs pulumi.StringArrayInput `pulumi:"syslogs"` + // List of TLS ciphers to use. + TlsCiphers pulumi.StringArrayInput `pulumi:"tlsCiphers"` + // The TLS protocol to use. + TlsProtocols pulumi.StringArrayInput `pulumi:"tlsProtocols"` +} + +func (OpensearchInstanceParametersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OpensearchInstanceParameters)(nil)).Elem() +} + +func (i OpensearchInstanceParametersArgs) ToOpensearchInstanceParametersOutput() OpensearchInstanceParametersOutput { + return i.ToOpensearchInstanceParametersOutputWithContext(context.Background()) +} + +func (i OpensearchInstanceParametersArgs) ToOpensearchInstanceParametersOutputWithContext(ctx context.Context) OpensearchInstanceParametersOutput { + return pulumi.ToOutputWithContext(ctx, i).(OpensearchInstanceParametersOutput) +} + +func (i OpensearchInstanceParametersArgs) ToOpensearchInstanceParametersPtrOutput() OpensearchInstanceParametersPtrOutput { + return i.ToOpensearchInstanceParametersPtrOutputWithContext(context.Background()) +} + +func (i OpensearchInstanceParametersArgs) ToOpensearchInstanceParametersPtrOutputWithContext(ctx context.Context) OpensearchInstanceParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OpensearchInstanceParametersOutput).ToOpensearchInstanceParametersPtrOutputWithContext(ctx) +} + +// OpensearchInstanceParametersPtrInput is an input type that accepts OpensearchInstanceParametersArgs, OpensearchInstanceParametersPtr and OpensearchInstanceParametersPtrOutput values. +// You can construct a concrete instance of `OpensearchInstanceParametersPtrInput` via: +// +// OpensearchInstanceParametersArgs{...} +// +// or: +// +// nil +type OpensearchInstanceParametersPtrInput interface { + pulumi.Input + + ToOpensearchInstanceParametersPtrOutput() OpensearchInstanceParametersPtrOutput + ToOpensearchInstanceParametersPtrOutputWithContext(context.Context) OpensearchInstanceParametersPtrOutput +} + +type opensearchInstanceParametersPtrType OpensearchInstanceParametersArgs + +func OpensearchInstanceParametersPtr(v *OpensearchInstanceParametersArgs) OpensearchInstanceParametersPtrInput { + return (*opensearchInstanceParametersPtrType)(v) +} + +func (*opensearchInstanceParametersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**OpensearchInstanceParameters)(nil)).Elem() +} + +func (i *opensearchInstanceParametersPtrType) ToOpensearchInstanceParametersPtrOutput() OpensearchInstanceParametersPtrOutput { + return i.ToOpensearchInstanceParametersPtrOutputWithContext(context.Background()) +} + +func (i *opensearchInstanceParametersPtrType) ToOpensearchInstanceParametersPtrOutputWithContext(ctx context.Context) OpensearchInstanceParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OpensearchInstanceParametersPtrOutput) +} + +type OpensearchInstanceParametersOutput struct{ *pulumi.OutputState } + +func (OpensearchInstanceParametersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OpensearchInstanceParameters)(nil)).Elem() +} + +func (o OpensearchInstanceParametersOutput) ToOpensearchInstanceParametersOutput() OpensearchInstanceParametersOutput { + return o +} + +func (o OpensearchInstanceParametersOutput) ToOpensearchInstanceParametersOutputWithContext(ctx context.Context) OpensearchInstanceParametersOutput { + return o +} + +func (o OpensearchInstanceParametersOutput) ToOpensearchInstanceParametersPtrOutput() OpensearchInstanceParametersPtrOutput { + return o.ToOpensearchInstanceParametersPtrOutputWithContext(context.Background()) +} + +func (o OpensearchInstanceParametersOutput) ToOpensearchInstanceParametersPtrOutputWithContext(ctx context.Context) OpensearchInstanceParametersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v OpensearchInstanceParameters) *OpensearchInstanceParameters { + return &v + }).(OpensearchInstanceParametersPtrOutput) +} + +// Enable monitoring. +func (o OpensearchInstanceParametersOutput) EnableMonitoring() pulumi.BoolPtrOutput { + return o.ApplyT(func(v OpensearchInstanceParameters) *bool { return v.EnableMonitoring }).(pulumi.BoolPtrOutput) +} + +// If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). +func (o OpensearchInstanceParametersOutput) Graphite() pulumi.StringPtrOutput { + return o.ApplyT(func(v OpensearchInstanceParameters) *string { return v.Graphite }).(pulumi.StringPtrOutput) +} + +// The garbage collector to use for OpenSearch. +func (o OpensearchInstanceParametersOutput) JavaGarbageCollector() pulumi.StringPtrOutput { + return o.ApplyT(func(v OpensearchInstanceParameters) *string { return v.JavaGarbageCollector }).(pulumi.StringPtrOutput) +} + +// The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. +func (o OpensearchInstanceParametersOutput) JavaHeapspace() pulumi.IntPtrOutput { + return o.ApplyT(func(v OpensearchInstanceParameters) *int { return v.JavaHeapspace }).(pulumi.IntPtrOutput) +} + +// The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. +func (o OpensearchInstanceParametersOutput) JavaMaxmetaspace() pulumi.IntPtrOutput { + return o.ApplyT(func(v OpensearchInstanceParameters) *int { return v.JavaMaxmetaspace }).(pulumi.IntPtrOutput) +} + +// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. +func (o OpensearchInstanceParametersOutput) MaxDiskThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v OpensearchInstanceParameters) *int { return v.MaxDiskThreshold }).(pulumi.IntPtrOutput) +} + +// The frequency in seconds at which metrics are emitted (in seconds). +func (o OpensearchInstanceParametersOutput) MetricsFrequency() pulumi.IntPtrOutput { + return o.ApplyT(func(v OpensearchInstanceParameters) *int { return v.MetricsFrequency }).(pulumi.IntPtrOutput) +} + +// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. +func (o OpensearchInstanceParametersOutput) MetricsPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v OpensearchInstanceParameters) *string { return v.MetricsPrefix }).(pulumi.StringPtrOutput) +} + +// The ID of the STACKIT monitoring instance. +func (o OpensearchInstanceParametersOutput) MonitoringInstanceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v OpensearchInstanceParameters) *string { return v.MonitoringInstanceId }).(pulumi.StringPtrOutput) +} + +// 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. +func (o OpensearchInstanceParametersOutput) Plugins() pulumi.StringArrayOutput { + return o.ApplyT(func(v OpensearchInstanceParameters) []string { return v.Plugins }).(pulumi.StringArrayOutput) +} + +// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. +func (o OpensearchInstanceParametersOutput) SgwAcl() pulumi.StringPtrOutput { + return o.ApplyT(func(v OpensearchInstanceParameters) *string { return v.SgwAcl }).(pulumi.StringPtrOutput) +} + +// List of syslog servers to send logs to. +func (o OpensearchInstanceParametersOutput) Syslogs() pulumi.StringArrayOutput { + return o.ApplyT(func(v OpensearchInstanceParameters) []string { return v.Syslogs }).(pulumi.StringArrayOutput) +} + +// List of TLS ciphers to use. +func (o OpensearchInstanceParametersOutput) TlsCiphers() pulumi.StringArrayOutput { + return o.ApplyT(func(v OpensearchInstanceParameters) []string { return v.TlsCiphers }).(pulumi.StringArrayOutput) +} + +// The TLS protocol to use. +func (o OpensearchInstanceParametersOutput) TlsProtocols() pulumi.StringArrayOutput { + return o.ApplyT(func(v OpensearchInstanceParameters) []string { return v.TlsProtocols }).(pulumi.StringArrayOutput) +} + +type OpensearchInstanceParametersPtrOutput struct{ *pulumi.OutputState } + +func (OpensearchInstanceParametersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OpensearchInstanceParameters)(nil)).Elem() +} + +func (o OpensearchInstanceParametersPtrOutput) ToOpensearchInstanceParametersPtrOutput() OpensearchInstanceParametersPtrOutput { + return o +} + +func (o OpensearchInstanceParametersPtrOutput) ToOpensearchInstanceParametersPtrOutputWithContext(ctx context.Context) OpensearchInstanceParametersPtrOutput { + return o +} + +func (o OpensearchInstanceParametersPtrOutput) Elem() OpensearchInstanceParametersOutput { + return o.ApplyT(func(v *OpensearchInstanceParameters) OpensearchInstanceParameters { + if v != nil { + return *v + } + var ret OpensearchInstanceParameters + return ret + }).(OpensearchInstanceParametersOutput) +} + +// Enable monitoring. +func (o OpensearchInstanceParametersPtrOutput) EnableMonitoring() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *OpensearchInstanceParameters) *bool { + if v == nil { + return nil + } + return v.EnableMonitoring + }).(pulumi.BoolPtrOutput) +} + +// If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). +func (o OpensearchInstanceParametersPtrOutput) Graphite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OpensearchInstanceParameters) *string { + if v == nil { + return nil + } + return v.Graphite + }).(pulumi.StringPtrOutput) +} + +// The garbage collector to use for OpenSearch. +func (o OpensearchInstanceParametersPtrOutput) JavaGarbageCollector() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OpensearchInstanceParameters) *string { + if v == nil { + return nil + } + return v.JavaGarbageCollector + }).(pulumi.StringPtrOutput) +} + +// The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. +func (o OpensearchInstanceParametersPtrOutput) JavaHeapspace() pulumi.IntPtrOutput { + return o.ApplyT(func(v *OpensearchInstanceParameters) *int { + if v == nil { + return nil + } + return v.JavaHeapspace + }).(pulumi.IntPtrOutput) +} + +// The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. +func (o OpensearchInstanceParametersPtrOutput) JavaMaxmetaspace() pulumi.IntPtrOutput { + return o.ApplyT(func(v *OpensearchInstanceParameters) *int { + if v == nil { + return nil + } + return v.JavaMaxmetaspace + }).(pulumi.IntPtrOutput) +} + +// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. +func (o OpensearchInstanceParametersPtrOutput) MaxDiskThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v *OpensearchInstanceParameters) *int { + if v == nil { + return nil + } + return v.MaxDiskThreshold + }).(pulumi.IntPtrOutput) +} + +// The frequency in seconds at which metrics are emitted (in seconds). +func (o OpensearchInstanceParametersPtrOutput) MetricsFrequency() pulumi.IntPtrOutput { + return o.ApplyT(func(v *OpensearchInstanceParameters) *int { + if v == nil { + return nil + } + return v.MetricsFrequency + }).(pulumi.IntPtrOutput) +} + +// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. +func (o OpensearchInstanceParametersPtrOutput) MetricsPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OpensearchInstanceParameters) *string { + if v == nil { + return nil + } + return v.MetricsPrefix + }).(pulumi.StringPtrOutput) +} + +// The ID of the STACKIT monitoring instance. +func (o OpensearchInstanceParametersPtrOutput) MonitoringInstanceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OpensearchInstanceParameters) *string { + if v == nil { + return nil + } + return v.MonitoringInstanceId + }).(pulumi.StringPtrOutput) +} + +// 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. +func (o OpensearchInstanceParametersPtrOutput) Plugins() pulumi.StringArrayOutput { + return o.ApplyT(func(v *OpensearchInstanceParameters) []string { + if v == nil { + return nil + } + return v.Plugins + }).(pulumi.StringArrayOutput) +} + +// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. +func (o OpensearchInstanceParametersPtrOutput) SgwAcl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OpensearchInstanceParameters) *string { + if v == nil { + return nil + } + return v.SgwAcl + }).(pulumi.StringPtrOutput) +} + +// List of syslog servers to send logs to. +func (o OpensearchInstanceParametersPtrOutput) Syslogs() pulumi.StringArrayOutput { + return o.ApplyT(func(v *OpensearchInstanceParameters) []string { + if v == nil { + return nil + } + return v.Syslogs + }).(pulumi.StringArrayOutput) +} + +// List of TLS ciphers to use. +func (o OpensearchInstanceParametersPtrOutput) TlsCiphers() pulumi.StringArrayOutput { + return o.ApplyT(func(v *OpensearchInstanceParameters) []string { + if v == nil { + return nil + } + return v.TlsCiphers + }).(pulumi.StringArrayOutput) +} + +// The TLS protocol to use. +func (o OpensearchInstanceParametersPtrOutput) TlsProtocols() pulumi.StringArrayOutput { + return o.ApplyT(func(v *OpensearchInstanceParameters) []string { + if v == nil { + return nil + } + return v.TlsProtocols + }).(pulumi.StringArrayOutput) +} + +type PostgresflexInstanceFlavor struct { + Cpu int `pulumi:"cpu"` + Description *string `pulumi:"description"` + Id *string `pulumi:"id"` + Ram int `pulumi:"ram"` +} + +// PostgresflexInstanceFlavorInput is an input type that accepts PostgresflexInstanceFlavorArgs and PostgresflexInstanceFlavorOutput values. +// You can construct a concrete instance of `PostgresflexInstanceFlavorInput` via: +// +// PostgresflexInstanceFlavorArgs{...} +type PostgresflexInstanceFlavorInput interface { + pulumi.Input + + ToPostgresflexInstanceFlavorOutput() PostgresflexInstanceFlavorOutput + ToPostgresflexInstanceFlavorOutputWithContext(context.Context) PostgresflexInstanceFlavorOutput +} + +type PostgresflexInstanceFlavorArgs struct { + Cpu pulumi.IntInput `pulumi:"cpu"` + Description pulumi.StringPtrInput `pulumi:"description"` + Id pulumi.StringPtrInput `pulumi:"id"` + Ram pulumi.IntInput `pulumi:"ram"` +} + +func (PostgresflexInstanceFlavorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PostgresflexInstanceFlavor)(nil)).Elem() +} + +func (i PostgresflexInstanceFlavorArgs) ToPostgresflexInstanceFlavorOutput() PostgresflexInstanceFlavorOutput { + return i.ToPostgresflexInstanceFlavorOutputWithContext(context.Background()) +} + +func (i PostgresflexInstanceFlavorArgs) ToPostgresflexInstanceFlavorOutputWithContext(ctx context.Context) PostgresflexInstanceFlavorOutput { + return pulumi.ToOutputWithContext(ctx, i).(PostgresflexInstanceFlavorOutput) +} + +func (i PostgresflexInstanceFlavorArgs) ToPostgresflexInstanceFlavorPtrOutput() PostgresflexInstanceFlavorPtrOutput { + return i.ToPostgresflexInstanceFlavorPtrOutputWithContext(context.Background()) +} + +func (i PostgresflexInstanceFlavorArgs) ToPostgresflexInstanceFlavorPtrOutputWithContext(ctx context.Context) PostgresflexInstanceFlavorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PostgresflexInstanceFlavorOutput).ToPostgresflexInstanceFlavorPtrOutputWithContext(ctx) +} + +// PostgresflexInstanceFlavorPtrInput is an input type that accepts PostgresflexInstanceFlavorArgs, PostgresflexInstanceFlavorPtr and PostgresflexInstanceFlavorPtrOutput values. +// You can construct a concrete instance of `PostgresflexInstanceFlavorPtrInput` via: +// +// PostgresflexInstanceFlavorArgs{...} +// +// or: +// +// nil +type PostgresflexInstanceFlavorPtrInput interface { + pulumi.Input + + ToPostgresflexInstanceFlavorPtrOutput() PostgresflexInstanceFlavorPtrOutput + ToPostgresflexInstanceFlavorPtrOutputWithContext(context.Context) PostgresflexInstanceFlavorPtrOutput +} + +type postgresflexInstanceFlavorPtrType PostgresflexInstanceFlavorArgs + +func PostgresflexInstanceFlavorPtr(v *PostgresflexInstanceFlavorArgs) PostgresflexInstanceFlavorPtrInput { + return (*postgresflexInstanceFlavorPtrType)(v) +} + +func (*postgresflexInstanceFlavorPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PostgresflexInstanceFlavor)(nil)).Elem() +} + +func (i *postgresflexInstanceFlavorPtrType) ToPostgresflexInstanceFlavorPtrOutput() PostgresflexInstanceFlavorPtrOutput { + return i.ToPostgresflexInstanceFlavorPtrOutputWithContext(context.Background()) +} + +func (i *postgresflexInstanceFlavorPtrType) ToPostgresflexInstanceFlavorPtrOutputWithContext(ctx context.Context) PostgresflexInstanceFlavorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PostgresflexInstanceFlavorPtrOutput) +} + +type PostgresflexInstanceFlavorOutput struct{ *pulumi.OutputState } + +func (PostgresflexInstanceFlavorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PostgresflexInstanceFlavor)(nil)).Elem() +} + +func (o PostgresflexInstanceFlavorOutput) ToPostgresflexInstanceFlavorOutput() PostgresflexInstanceFlavorOutput { + return o +} + +func (o PostgresflexInstanceFlavorOutput) ToPostgresflexInstanceFlavorOutputWithContext(ctx context.Context) PostgresflexInstanceFlavorOutput { + return o +} + +func (o PostgresflexInstanceFlavorOutput) ToPostgresflexInstanceFlavorPtrOutput() PostgresflexInstanceFlavorPtrOutput { + return o.ToPostgresflexInstanceFlavorPtrOutputWithContext(context.Background()) +} + +func (o PostgresflexInstanceFlavorOutput) ToPostgresflexInstanceFlavorPtrOutputWithContext(ctx context.Context) PostgresflexInstanceFlavorPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PostgresflexInstanceFlavor) *PostgresflexInstanceFlavor { + return &v + }).(PostgresflexInstanceFlavorPtrOutput) +} + +func (o PostgresflexInstanceFlavorOutput) Cpu() pulumi.IntOutput { + return o.ApplyT(func(v PostgresflexInstanceFlavor) int { return v.Cpu }).(pulumi.IntOutput) +} + +func (o PostgresflexInstanceFlavorOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v PostgresflexInstanceFlavor) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o PostgresflexInstanceFlavorOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v PostgresflexInstanceFlavor) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +func (o PostgresflexInstanceFlavorOutput) Ram() pulumi.IntOutput { + return o.ApplyT(func(v PostgresflexInstanceFlavor) int { return v.Ram }).(pulumi.IntOutput) +} + +type PostgresflexInstanceFlavorPtrOutput struct{ *pulumi.OutputState } + +func (PostgresflexInstanceFlavorPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PostgresflexInstanceFlavor)(nil)).Elem() +} + +func (o PostgresflexInstanceFlavorPtrOutput) ToPostgresflexInstanceFlavorPtrOutput() PostgresflexInstanceFlavorPtrOutput { + return o +} + +func (o PostgresflexInstanceFlavorPtrOutput) ToPostgresflexInstanceFlavorPtrOutputWithContext(ctx context.Context) PostgresflexInstanceFlavorPtrOutput { + return o +} + +func (o PostgresflexInstanceFlavorPtrOutput) Elem() PostgresflexInstanceFlavorOutput { + return o.ApplyT(func(v *PostgresflexInstanceFlavor) PostgresflexInstanceFlavor { + if v != nil { + return *v + } + var ret PostgresflexInstanceFlavor + return ret + }).(PostgresflexInstanceFlavorOutput) +} + +func (o PostgresflexInstanceFlavorPtrOutput) Cpu() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PostgresflexInstanceFlavor) *int { + if v == nil { + return nil + } + return &v.Cpu + }).(pulumi.IntPtrOutput) +} + +func (o PostgresflexInstanceFlavorPtrOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PostgresflexInstanceFlavor) *string { + if v == nil { + return nil + } + return v.Description + }).(pulumi.StringPtrOutput) +} + +func (o PostgresflexInstanceFlavorPtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PostgresflexInstanceFlavor) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +func (o PostgresflexInstanceFlavorPtrOutput) Ram() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PostgresflexInstanceFlavor) *int { + if v == nil { + return nil + } + return &v.Ram + }).(pulumi.IntPtrOutput) +} + +type PostgresflexInstanceStorage struct { + Class string `pulumi:"class"` + Size int `pulumi:"size"` +} + +// PostgresflexInstanceStorageInput is an input type that accepts PostgresflexInstanceStorageArgs and PostgresflexInstanceStorageOutput values. +// You can construct a concrete instance of `PostgresflexInstanceStorageInput` via: +// +// PostgresflexInstanceStorageArgs{...} +type PostgresflexInstanceStorageInput interface { + pulumi.Input + + ToPostgresflexInstanceStorageOutput() PostgresflexInstanceStorageOutput + ToPostgresflexInstanceStorageOutputWithContext(context.Context) PostgresflexInstanceStorageOutput +} + +type PostgresflexInstanceStorageArgs struct { + Class pulumi.StringInput `pulumi:"class"` + Size pulumi.IntInput `pulumi:"size"` +} + +func (PostgresflexInstanceStorageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PostgresflexInstanceStorage)(nil)).Elem() +} + +func (i PostgresflexInstanceStorageArgs) ToPostgresflexInstanceStorageOutput() PostgresflexInstanceStorageOutput { + return i.ToPostgresflexInstanceStorageOutputWithContext(context.Background()) +} + +func (i PostgresflexInstanceStorageArgs) ToPostgresflexInstanceStorageOutputWithContext(ctx context.Context) PostgresflexInstanceStorageOutput { + return pulumi.ToOutputWithContext(ctx, i).(PostgresflexInstanceStorageOutput) +} + +func (i PostgresflexInstanceStorageArgs) ToPostgresflexInstanceStoragePtrOutput() PostgresflexInstanceStoragePtrOutput { + return i.ToPostgresflexInstanceStoragePtrOutputWithContext(context.Background()) +} + +func (i PostgresflexInstanceStorageArgs) ToPostgresflexInstanceStoragePtrOutputWithContext(ctx context.Context) PostgresflexInstanceStoragePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PostgresflexInstanceStorageOutput).ToPostgresflexInstanceStoragePtrOutputWithContext(ctx) +} + +// PostgresflexInstanceStoragePtrInput is an input type that accepts PostgresflexInstanceStorageArgs, PostgresflexInstanceStoragePtr and PostgresflexInstanceStoragePtrOutput values. +// You can construct a concrete instance of `PostgresflexInstanceStoragePtrInput` via: +// +// PostgresflexInstanceStorageArgs{...} +// +// or: +// +// nil +type PostgresflexInstanceStoragePtrInput interface { + pulumi.Input + + ToPostgresflexInstanceStoragePtrOutput() PostgresflexInstanceStoragePtrOutput + ToPostgresflexInstanceStoragePtrOutputWithContext(context.Context) PostgresflexInstanceStoragePtrOutput +} + +type postgresflexInstanceStoragePtrType PostgresflexInstanceStorageArgs + +func PostgresflexInstanceStoragePtr(v *PostgresflexInstanceStorageArgs) PostgresflexInstanceStoragePtrInput { + return (*postgresflexInstanceStoragePtrType)(v) +} + +func (*postgresflexInstanceStoragePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PostgresflexInstanceStorage)(nil)).Elem() +} + +func (i *postgresflexInstanceStoragePtrType) ToPostgresflexInstanceStoragePtrOutput() PostgresflexInstanceStoragePtrOutput { + return i.ToPostgresflexInstanceStoragePtrOutputWithContext(context.Background()) +} + +func (i *postgresflexInstanceStoragePtrType) ToPostgresflexInstanceStoragePtrOutputWithContext(ctx context.Context) PostgresflexInstanceStoragePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PostgresflexInstanceStoragePtrOutput) +} + +type PostgresflexInstanceStorageOutput struct{ *pulumi.OutputState } + +func (PostgresflexInstanceStorageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PostgresflexInstanceStorage)(nil)).Elem() +} + +func (o PostgresflexInstanceStorageOutput) ToPostgresflexInstanceStorageOutput() PostgresflexInstanceStorageOutput { + return o +} + +func (o PostgresflexInstanceStorageOutput) ToPostgresflexInstanceStorageOutputWithContext(ctx context.Context) PostgresflexInstanceStorageOutput { + return o +} + +func (o PostgresflexInstanceStorageOutput) ToPostgresflexInstanceStoragePtrOutput() PostgresflexInstanceStoragePtrOutput { + return o.ToPostgresflexInstanceStoragePtrOutputWithContext(context.Background()) +} + +func (o PostgresflexInstanceStorageOutput) ToPostgresflexInstanceStoragePtrOutputWithContext(ctx context.Context) PostgresflexInstanceStoragePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PostgresflexInstanceStorage) *PostgresflexInstanceStorage { + return &v + }).(PostgresflexInstanceStoragePtrOutput) +} + +func (o PostgresflexInstanceStorageOutput) Class() pulumi.StringOutput { + return o.ApplyT(func(v PostgresflexInstanceStorage) string { return v.Class }).(pulumi.StringOutput) +} + +func (o PostgresflexInstanceStorageOutput) Size() pulumi.IntOutput { + return o.ApplyT(func(v PostgresflexInstanceStorage) int { return v.Size }).(pulumi.IntOutput) +} + +type PostgresflexInstanceStoragePtrOutput struct{ *pulumi.OutputState } + +func (PostgresflexInstanceStoragePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PostgresflexInstanceStorage)(nil)).Elem() +} + +func (o PostgresflexInstanceStoragePtrOutput) ToPostgresflexInstanceStoragePtrOutput() PostgresflexInstanceStoragePtrOutput { + return o +} + +func (o PostgresflexInstanceStoragePtrOutput) ToPostgresflexInstanceStoragePtrOutputWithContext(ctx context.Context) PostgresflexInstanceStoragePtrOutput { + return o +} + +func (o PostgresflexInstanceStoragePtrOutput) Elem() PostgresflexInstanceStorageOutput { + return o.ApplyT(func(v *PostgresflexInstanceStorage) PostgresflexInstanceStorage { + if v != nil { + return *v + } + var ret PostgresflexInstanceStorage + return ret + }).(PostgresflexInstanceStorageOutput) +} + +func (o PostgresflexInstanceStoragePtrOutput) Class() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PostgresflexInstanceStorage) *string { + if v == nil { + return nil + } + return &v.Class + }).(pulumi.StringPtrOutput) +} + +func (o PostgresflexInstanceStoragePtrOutput) Size() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PostgresflexInstanceStorage) *int { + if v == nil { + return nil + } + return &v.Size + }).(pulumi.IntPtrOutput) +} + +type RabbitmqInstanceParameters struct { + // The timeout in milliseconds for the consumer. + ConsumerTimeout *int `pulumi:"consumerTimeout"` + // Enable monitoring. + EnableMonitoring *bool `pulumi:"enableMonitoring"` + // Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. + Graphite *string `pulumi:"graphite"` + // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + MaxDiskThreshold *int `pulumi:"maxDiskThreshold"` + // The frequency in seconds at which metrics are emitted. + MetricsFrequency *int `pulumi:"metricsFrequency"` + // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key + MetricsPrefix *string `pulumi:"metricsPrefix"` + // The ID of the STACKIT monitoring instance. + MonitoringInstanceId *string `pulumi:"monitoringInstanceId"` + // List of plugins to install. Must be a supported plugin name. + Plugins []string `pulumi:"plugins"` + // List of roles to assign to the instance. + Roles []string `pulumi:"roles"` + // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + SgwAcl *string `pulumi:"sgwAcl"` + // List of syslog servers to send logs to. + Syslogs []string `pulumi:"syslogs"` + // List of TLS ciphers to use. + TlsCiphers []string `pulumi:"tlsCiphers"` + // TLS protocol versions to use. + TlsProtocols []string `pulumi:"tlsProtocols"` +} + +// RabbitmqInstanceParametersInput is an input type that accepts RabbitmqInstanceParametersArgs and RabbitmqInstanceParametersOutput values. +// You can construct a concrete instance of `RabbitmqInstanceParametersInput` via: +// +// RabbitmqInstanceParametersArgs{...} +type RabbitmqInstanceParametersInput interface { + pulumi.Input + + ToRabbitmqInstanceParametersOutput() RabbitmqInstanceParametersOutput + ToRabbitmqInstanceParametersOutputWithContext(context.Context) RabbitmqInstanceParametersOutput +} + +type RabbitmqInstanceParametersArgs struct { + // The timeout in milliseconds for the consumer. + ConsumerTimeout pulumi.IntPtrInput `pulumi:"consumerTimeout"` + // Enable monitoring. + EnableMonitoring pulumi.BoolPtrInput `pulumi:"enableMonitoring"` + // Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. + Graphite pulumi.StringPtrInput `pulumi:"graphite"` + // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + MaxDiskThreshold pulumi.IntPtrInput `pulumi:"maxDiskThreshold"` + // The frequency in seconds at which metrics are emitted. + MetricsFrequency pulumi.IntPtrInput `pulumi:"metricsFrequency"` + // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key + MetricsPrefix pulumi.StringPtrInput `pulumi:"metricsPrefix"` + // The ID of the STACKIT monitoring instance. + MonitoringInstanceId pulumi.StringPtrInput `pulumi:"monitoringInstanceId"` + // List of plugins to install. Must be a supported plugin name. + Plugins pulumi.StringArrayInput `pulumi:"plugins"` + // List of roles to assign to the instance. + Roles pulumi.StringArrayInput `pulumi:"roles"` + // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + SgwAcl pulumi.StringPtrInput `pulumi:"sgwAcl"` + // List of syslog servers to send logs to. + Syslogs pulumi.StringArrayInput `pulumi:"syslogs"` + // List of TLS ciphers to use. + TlsCiphers pulumi.StringArrayInput `pulumi:"tlsCiphers"` + // TLS protocol versions to use. + TlsProtocols pulumi.StringArrayInput `pulumi:"tlsProtocols"` +} + +func (RabbitmqInstanceParametersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RabbitmqInstanceParameters)(nil)).Elem() +} + +func (i RabbitmqInstanceParametersArgs) ToRabbitmqInstanceParametersOutput() RabbitmqInstanceParametersOutput { + return i.ToRabbitmqInstanceParametersOutputWithContext(context.Background()) +} + +func (i RabbitmqInstanceParametersArgs) ToRabbitmqInstanceParametersOutputWithContext(ctx context.Context) RabbitmqInstanceParametersOutput { + return pulumi.ToOutputWithContext(ctx, i).(RabbitmqInstanceParametersOutput) +} + +func (i RabbitmqInstanceParametersArgs) ToRabbitmqInstanceParametersPtrOutput() RabbitmqInstanceParametersPtrOutput { + return i.ToRabbitmqInstanceParametersPtrOutputWithContext(context.Background()) +} + +func (i RabbitmqInstanceParametersArgs) ToRabbitmqInstanceParametersPtrOutputWithContext(ctx context.Context) RabbitmqInstanceParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RabbitmqInstanceParametersOutput).ToRabbitmqInstanceParametersPtrOutputWithContext(ctx) +} + +// RabbitmqInstanceParametersPtrInput is an input type that accepts RabbitmqInstanceParametersArgs, RabbitmqInstanceParametersPtr and RabbitmqInstanceParametersPtrOutput values. +// You can construct a concrete instance of `RabbitmqInstanceParametersPtrInput` via: +// +// RabbitmqInstanceParametersArgs{...} +// +// or: +// +// nil +type RabbitmqInstanceParametersPtrInput interface { + pulumi.Input + + ToRabbitmqInstanceParametersPtrOutput() RabbitmqInstanceParametersPtrOutput + ToRabbitmqInstanceParametersPtrOutputWithContext(context.Context) RabbitmqInstanceParametersPtrOutput +} + +type rabbitmqInstanceParametersPtrType RabbitmqInstanceParametersArgs + +func RabbitmqInstanceParametersPtr(v *RabbitmqInstanceParametersArgs) RabbitmqInstanceParametersPtrInput { + return (*rabbitmqInstanceParametersPtrType)(v) +} + +func (*rabbitmqInstanceParametersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RabbitmqInstanceParameters)(nil)).Elem() +} + +func (i *rabbitmqInstanceParametersPtrType) ToRabbitmqInstanceParametersPtrOutput() RabbitmqInstanceParametersPtrOutput { + return i.ToRabbitmqInstanceParametersPtrOutputWithContext(context.Background()) +} + +func (i *rabbitmqInstanceParametersPtrType) ToRabbitmqInstanceParametersPtrOutputWithContext(ctx context.Context) RabbitmqInstanceParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RabbitmqInstanceParametersPtrOutput) +} + +type RabbitmqInstanceParametersOutput struct{ *pulumi.OutputState } + +func (RabbitmqInstanceParametersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RabbitmqInstanceParameters)(nil)).Elem() +} + +func (o RabbitmqInstanceParametersOutput) ToRabbitmqInstanceParametersOutput() RabbitmqInstanceParametersOutput { + return o +} + +func (o RabbitmqInstanceParametersOutput) ToRabbitmqInstanceParametersOutputWithContext(ctx context.Context) RabbitmqInstanceParametersOutput { + return o +} + +func (o RabbitmqInstanceParametersOutput) ToRabbitmqInstanceParametersPtrOutput() RabbitmqInstanceParametersPtrOutput { + return o.ToRabbitmqInstanceParametersPtrOutputWithContext(context.Background()) +} + +func (o RabbitmqInstanceParametersOutput) ToRabbitmqInstanceParametersPtrOutputWithContext(ctx context.Context) RabbitmqInstanceParametersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RabbitmqInstanceParameters) *RabbitmqInstanceParameters { + return &v + }).(RabbitmqInstanceParametersPtrOutput) +} + +// The timeout in milliseconds for the consumer. +func (o RabbitmqInstanceParametersOutput) ConsumerTimeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v RabbitmqInstanceParameters) *int { return v.ConsumerTimeout }).(pulumi.IntPtrOutput) +} + +// Enable monitoring. +func (o RabbitmqInstanceParametersOutput) EnableMonitoring() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RabbitmqInstanceParameters) *bool { return v.EnableMonitoring }).(pulumi.BoolPtrOutput) +} + +// Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. +func (o RabbitmqInstanceParametersOutput) Graphite() pulumi.StringPtrOutput { + return o.ApplyT(func(v RabbitmqInstanceParameters) *string { return v.Graphite }).(pulumi.StringPtrOutput) +} + +// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. +func (o RabbitmqInstanceParametersOutput) MaxDiskThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v RabbitmqInstanceParameters) *int { return v.MaxDiskThreshold }).(pulumi.IntPtrOutput) +} + +// The frequency in seconds at which metrics are emitted. +func (o RabbitmqInstanceParametersOutput) MetricsFrequency() pulumi.IntPtrOutput { + return o.ApplyT(func(v RabbitmqInstanceParameters) *int { return v.MetricsFrequency }).(pulumi.IntPtrOutput) +} + +// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key +func (o RabbitmqInstanceParametersOutput) MetricsPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v RabbitmqInstanceParameters) *string { return v.MetricsPrefix }).(pulumi.StringPtrOutput) +} + +// The ID of the STACKIT monitoring instance. +func (o RabbitmqInstanceParametersOutput) MonitoringInstanceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v RabbitmqInstanceParameters) *string { return v.MonitoringInstanceId }).(pulumi.StringPtrOutput) +} + +// List of plugins to install. Must be a supported plugin name. +func (o RabbitmqInstanceParametersOutput) Plugins() pulumi.StringArrayOutput { + return o.ApplyT(func(v RabbitmqInstanceParameters) []string { return v.Plugins }).(pulumi.StringArrayOutput) +} + +// List of roles to assign to the instance. +func (o RabbitmqInstanceParametersOutput) Roles() pulumi.StringArrayOutput { + return o.ApplyT(func(v RabbitmqInstanceParameters) []string { return v.Roles }).(pulumi.StringArrayOutput) +} + +// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. +func (o RabbitmqInstanceParametersOutput) SgwAcl() pulumi.StringPtrOutput { + return o.ApplyT(func(v RabbitmqInstanceParameters) *string { return v.SgwAcl }).(pulumi.StringPtrOutput) +} + +// List of syslog servers to send logs to. +func (o RabbitmqInstanceParametersOutput) Syslogs() pulumi.StringArrayOutput { + return o.ApplyT(func(v RabbitmqInstanceParameters) []string { return v.Syslogs }).(pulumi.StringArrayOutput) +} + +// List of TLS ciphers to use. +func (o RabbitmqInstanceParametersOutput) TlsCiphers() pulumi.StringArrayOutput { + return o.ApplyT(func(v RabbitmqInstanceParameters) []string { return v.TlsCiphers }).(pulumi.StringArrayOutput) +} + +// TLS protocol versions to use. +func (o RabbitmqInstanceParametersOutput) TlsProtocols() pulumi.StringArrayOutput { + return o.ApplyT(func(v RabbitmqInstanceParameters) []string { return v.TlsProtocols }).(pulumi.StringArrayOutput) +} + +type RabbitmqInstanceParametersPtrOutput struct{ *pulumi.OutputState } + +func (RabbitmqInstanceParametersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RabbitmqInstanceParameters)(nil)).Elem() +} + +func (o RabbitmqInstanceParametersPtrOutput) ToRabbitmqInstanceParametersPtrOutput() RabbitmqInstanceParametersPtrOutput { + return o +} + +func (o RabbitmqInstanceParametersPtrOutput) ToRabbitmqInstanceParametersPtrOutputWithContext(ctx context.Context) RabbitmqInstanceParametersPtrOutput { + return o +} + +func (o RabbitmqInstanceParametersPtrOutput) Elem() RabbitmqInstanceParametersOutput { + return o.ApplyT(func(v *RabbitmqInstanceParameters) RabbitmqInstanceParameters { + if v != nil { + return *v + } + var ret RabbitmqInstanceParameters + return ret + }).(RabbitmqInstanceParametersOutput) +} + +// The timeout in milliseconds for the consumer. +func (o RabbitmqInstanceParametersPtrOutput) ConsumerTimeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RabbitmqInstanceParameters) *int { + if v == nil { + return nil + } + return v.ConsumerTimeout + }).(pulumi.IntPtrOutput) +} + +// Enable monitoring. +func (o RabbitmqInstanceParametersPtrOutput) EnableMonitoring() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RabbitmqInstanceParameters) *bool { + if v == nil { + return nil + } + return v.EnableMonitoring + }).(pulumi.BoolPtrOutput) +} + +// Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. +func (o RabbitmqInstanceParametersPtrOutput) Graphite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RabbitmqInstanceParameters) *string { + if v == nil { + return nil + } + return v.Graphite + }).(pulumi.StringPtrOutput) +} + +// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. +func (o RabbitmqInstanceParametersPtrOutput) MaxDiskThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RabbitmqInstanceParameters) *int { + if v == nil { + return nil + } + return v.MaxDiskThreshold + }).(pulumi.IntPtrOutput) +} + +// The frequency in seconds at which metrics are emitted. +func (o RabbitmqInstanceParametersPtrOutput) MetricsFrequency() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RabbitmqInstanceParameters) *int { + if v == nil { + return nil + } + return v.MetricsFrequency + }).(pulumi.IntPtrOutput) +} + +// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key +func (o RabbitmqInstanceParametersPtrOutput) MetricsPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RabbitmqInstanceParameters) *string { + if v == nil { + return nil + } + return v.MetricsPrefix + }).(pulumi.StringPtrOutput) +} + +// The ID of the STACKIT monitoring instance. +func (o RabbitmqInstanceParametersPtrOutput) MonitoringInstanceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RabbitmqInstanceParameters) *string { + if v == nil { + return nil + } + return v.MonitoringInstanceId + }).(pulumi.StringPtrOutput) +} + +// List of plugins to install. Must be a supported plugin name. +func (o RabbitmqInstanceParametersPtrOutput) Plugins() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RabbitmqInstanceParameters) []string { + if v == nil { + return nil + } + return v.Plugins + }).(pulumi.StringArrayOutput) +} + +// List of roles to assign to the instance. +func (o RabbitmqInstanceParametersPtrOutput) Roles() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RabbitmqInstanceParameters) []string { + if v == nil { + return nil + } + return v.Roles + }).(pulumi.StringArrayOutput) +} + +// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. +func (o RabbitmqInstanceParametersPtrOutput) SgwAcl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RabbitmqInstanceParameters) *string { + if v == nil { + return nil + } + return v.SgwAcl + }).(pulumi.StringPtrOutput) +} + +// List of syslog servers to send logs to. +func (o RabbitmqInstanceParametersPtrOutput) Syslogs() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RabbitmqInstanceParameters) []string { + if v == nil { + return nil + } + return v.Syslogs + }).(pulumi.StringArrayOutput) +} + +// List of TLS ciphers to use. +func (o RabbitmqInstanceParametersPtrOutput) TlsCiphers() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RabbitmqInstanceParameters) []string { + if v == nil { + return nil + } + return v.TlsCiphers + }).(pulumi.StringArrayOutput) +} + +// TLS protocol versions to use. +func (o RabbitmqInstanceParametersPtrOutput) TlsProtocols() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RabbitmqInstanceParameters) []string { + if v == nil { + return nil + } + return v.TlsProtocols + }).(pulumi.StringArrayOutput) +} + +type RedisInstanceParameters struct { + // The number of milliseconds after which the instance is considered down. + DownAfterMilliseconds *int `pulumi:"downAfterMilliseconds"` + // Enable monitoring. + EnableMonitoring *bool `pulumi:"enableMonitoring"` + // The failover timeout in milliseconds. + FailoverTimeout *int `pulumi:"failoverTimeout"` + // Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. + Graphite *string `pulumi:"graphite"` + // The lazy eviction enablement (yes or no). + LazyfreeLazyEviction *string `pulumi:"lazyfreeLazyEviction"` + // The lazy expire enablement (yes or no). + LazyfreeLazyExpire *string `pulumi:"lazyfreeLazyExpire"` + // The Lua time limit. + LuaTimeLimit *int `pulumi:"luaTimeLimit"` + // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + MaxDiskThreshold *int `pulumi:"maxDiskThreshold"` + // The maximum number of clients. + Maxclients *int `pulumi:"maxclients"` + // The policy to handle the maximum memory (volatile-lru, noeviction, etc). + MaxmemoryPolicy *string `pulumi:"maxmemoryPolicy"` + // The maximum memory samples. + MaxmemorySamples *int `pulumi:"maxmemorySamples"` + // The frequency in seconds at which metrics are emitted. + MetricsFrequency *int `pulumi:"metricsFrequency"` + // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key + MetricsPrefix *string `pulumi:"metricsPrefix"` + // The minimum replicas maximum lag. + MinReplicasMaxLag *int `pulumi:"minReplicasMaxLag"` + // The ID of the STACKIT monitoring instance. + MonitoringInstanceId *string `pulumi:"monitoringInstanceId"` + // The notify keyspace events. + NotifyKeyspaceEvents *string `pulumi:"notifyKeyspaceEvents"` + // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + SgwAcl *string `pulumi:"sgwAcl"` + // The snapshot configuration. + Snapshot *string `pulumi:"snapshot"` + // List of syslog servers to send logs to. + Syslogs []string `pulumi:"syslogs"` + // List of TLS ciphers to use. + TlsCiphers []string `pulumi:"tlsCiphers"` + // TLS cipher suites to use. + TlsCiphersuites *string `pulumi:"tlsCiphersuites"` + // TLS protocol to use. + TlsProtocols *string `pulumi:"tlsProtocols"` +} + +// RedisInstanceParametersInput is an input type that accepts RedisInstanceParametersArgs and RedisInstanceParametersOutput values. +// You can construct a concrete instance of `RedisInstanceParametersInput` via: // -// ObservabilityInstanceAlertConfigReceiverWebhooksConfigArray{ ObservabilityInstanceAlertConfigReceiverWebhooksConfigArgs{...} } -type ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayInput interface { +// RedisInstanceParametersArgs{...} +type RedisInstanceParametersInput interface { pulumi.Input - ToObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput - ToObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutputWithContext(context.Context) ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput + ToRedisInstanceParametersOutput() RedisInstanceParametersOutput + ToRedisInstanceParametersOutputWithContext(context.Context) RedisInstanceParametersOutput +} + +type RedisInstanceParametersArgs struct { + // The number of milliseconds after which the instance is considered down. + DownAfterMilliseconds pulumi.IntPtrInput `pulumi:"downAfterMilliseconds"` + // Enable monitoring. + EnableMonitoring pulumi.BoolPtrInput `pulumi:"enableMonitoring"` + // The failover timeout in milliseconds. + FailoverTimeout pulumi.IntPtrInput `pulumi:"failoverTimeout"` + // Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. + Graphite pulumi.StringPtrInput `pulumi:"graphite"` + // The lazy eviction enablement (yes or no). + LazyfreeLazyEviction pulumi.StringPtrInput `pulumi:"lazyfreeLazyEviction"` + // The lazy expire enablement (yes or no). + LazyfreeLazyExpire pulumi.StringPtrInput `pulumi:"lazyfreeLazyExpire"` + // The Lua time limit. + LuaTimeLimit pulumi.IntPtrInput `pulumi:"luaTimeLimit"` + // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + MaxDiskThreshold pulumi.IntPtrInput `pulumi:"maxDiskThreshold"` + // The maximum number of clients. + Maxclients pulumi.IntPtrInput `pulumi:"maxclients"` + // The policy to handle the maximum memory (volatile-lru, noeviction, etc). + MaxmemoryPolicy pulumi.StringPtrInput `pulumi:"maxmemoryPolicy"` + // The maximum memory samples. + MaxmemorySamples pulumi.IntPtrInput `pulumi:"maxmemorySamples"` + // The frequency in seconds at which metrics are emitted. + MetricsFrequency pulumi.IntPtrInput `pulumi:"metricsFrequency"` + // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key + MetricsPrefix pulumi.StringPtrInput `pulumi:"metricsPrefix"` + // The minimum replicas maximum lag. + MinReplicasMaxLag pulumi.IntPtrInput `pulumi:"minReplicasMaxLag"` + // The ID of the STACKIT monitoring instance. + MonitoringInstanceId pulumi.StringPtrInput `pulumi:"monitoringInstanceId"` + // The notify keyspace events. + NotifyKeyspaceEvents pulumi.StringPtrInput `pulumi:"notifyKeyspaceEvents"` + // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + SgwAcl pulumi.StringPtrInput `pulumi:"sgwAcl"` + // The snapshot configuration. + Snapshot pulumi.StringPtrInput `pulumi:"snapshot"` + // List of syslog servers to send logs to. + Syslogs pulumi.StringArrayInput `pulumi:"syslogs"` + // List of TLS ciphers to use. + TlsCiphers pulumi.StringArrayInput `pulumi:"tlsCiphers"` + // TLS cipher suites to use. + TlsCiphersuites pulumi.StringPtrInput `pulumi:"tlsCiphersuites"` + // TLS protocol to use. + TlsProtocols pulumi.StringPtrInput `pulumi:"tlsProtocols"` } -type ObservabilityInstanceAlertConfigReceiverWebhooksConfigArray []ObservabilityInstanceAlertConfigReceiverWebhooksConfigInput - -func (ObservabilityInstanceAlertConfigReceiverWebhooksConfigArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigReceiverWebhooksConfig)(nil)).Elem() +func (RedisInstanceParametersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RedisInstanceParameters)(nil)).Elem() } -func (i ObservabilityInstanceAlertConfigReceiverWebhooksConfigArray) ToObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput { - return i.ToObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutputWithContext(context.Background()) +func (i RedisInstanceParametersArgs) ToRedisInstanceParametersOutput() RedisInstanceParametersOutput { + return i.ToRedisInstanceParametersOutputWithContext(context.Background()) } -func (i ObservabilityInstanceAlertConfigReceiverWebhooksConfigArray) ToObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput) +func (i RedisInstanceParametersArgs) ToRedisInstanceParametersOutputWithContext(ctx context.Context) RedisInstanceParametersOutput { + return pulumi.ToOutputWithContext(ctx, i).(RedisInstanceParametersOutput) } -type ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput struct{ *pulumi.OutputState } - -func (ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityInstanceAlertConfigReceiverWebhooksConfig)(nil)).Elem() +func (i RedisInstanceParametersArgs) ToRedisInstanceParametersPtrOutput() RedisInstanceParametersPtrOutput { + return i.ToRedisInstanceParametersPtrOutputWithContext(context.Background()) } -func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput) ToObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput() ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput { - return o +func (i RedisInstanceParametersArgs) ToRedisInstanceParametersPtrOutputWithContext(ctx context.Context) RedisInstanceParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RedisInstanceParametersOutput).ToRedisInstanceParametersPtrOutputWithContext(ctx) } -func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput) ToObservabilityInstanceAlertConfigReceiverWebhooksConfigOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput { - return o -} +// RedisInstanceParametersPtrInput is an input type that accepts RedisInstanceParametersArgs, RedisInstanceParametersPtr and RedisInstanceParametersPtrOutput values. +// You can construct a concrete instance of `RedisInstanceParametersPtrInput` via: +// +// RedisInstanceParametersArgs{...} +// +// or: +// +// nil +type RedisInstanceParametersPtrInput interface { + pulumi.Input -// Google Chat webhooks require special handling, set this to true if the webhook is for Google Chat. -func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput) GoogleChat() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverWebhooksConfig) *bool { return v.GoogleChat }).(pulumi.BoolPtrOutput) + ToRedisInstanceParametersPtrOutput() RedisInstanceParametersPtrOutput + ToRedisInstanceParametersPtrOutputWithContext(context.Context) RedisInstanceParametersPtrOutput } -// Microsoft Teams webhooks require special handling, set this to true if the webhook is for Microsoft Teams. -func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput) MsTeams() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverWebhooksConfig) *bool { return v.MsTeams }).(pulumi.BoolPtrOutput) -} +type redisInstanceParametersPtrType RedisInstanceParametersArgs -// Whether to notify about resolved alerts. -func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput) SendResolved() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverWebhooksConfig) *bool { return v.SendResolved }).(pulumi.BoolPtrOutput) +func RedisInstanceParametersPtr(v *RedisInstanceParametersArgs) RedisInstanceParametersPtrInput { + return (*redisInstanceParametersPtrType)(v) } -// The endpoint to send HTTP POST requests to. Must be a valid URL -func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput) Url() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigReceiverWebhooksConfig) *string { return v.Url }).(pulumi.StringPtrOutput) +func (*redisInstanceParametersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RedisInstanceParameters)(nil)).Elem() } -type ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput struct{ *pulumi.OutputState } - -func (ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigReceiverWebhooksConfig)(nil)).Elem() +func (i *redisInstanceParametersPtrType) ToRedisInstanceParametersPtrOutput() RedisInstanceParametersPtrOutput { + return i.ToRedisInstanceParametersPtrOutputWithContext(context.Background()) } -func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput) ToObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput() ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput { - return o +func (i *redisInstanceParametersPtrType) ToRedisInstanceParametersPtrOutputWithContext(ctx context.Context) RedisInstanceParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RedisInstanceParametersPtrOutput) } -func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput) ToObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput { - return o -} +type RedisInstanceParametersOutput struct{ *pulumi.OutputState } -func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput) Index(i pulumi.IntInput) ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObservabilityInstanceAlertConfigReceiverWebhooksConfig { - return vs[0].([]ObservabilityInstanceAlertConfigReceiverWebhooksConfig)[vs[1].(int)] - }).(ObservabilityInstanceAlertConfigReceiverWebhooksConfigOutput) +func (RedisInstanceParametersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RedisInstanceParameters)(nil)).Elem() } -type ObservabilityInstanceAlertConfigRoute struct { - // Whether an alert should continue matching subsequent sibling nodes. - Continue *bool `pulumi:"continue"` - // 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. - GroupBies []string `pulumi:"groupBies"` - // 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.) - GroupInterval *string `pulumi:"groupInterval"` - // 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.) - GroupWait *string `pulumi:"groupWait"` - // The name of the receiver to route the alerts to. - Receiver string `pulumi:"receiver"` - // How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). - RepeatInterval *string `pulumi:"repeatInterval"` - // List of child routes. - Routes []ObservabilityInstanceAlertConfigRouteRoute `pulumi:"routes"` +func (o RedisInstanceParametersOutput) ToRedisInstanceParametersOutput() RedisInstanceParametersOutput { + return o } -// ObservabilityInstanceAlertConfigRouteInput is an input type that accepts ObservabilityInstanceAlertConfigRouteArgs and ObservabilityInstanceAlertConfigRouteOutput values. -// You can construct a concrete instance of `ObservabilityInstanceAlertConfigRouteInput` via: -// -// ObservabilityInstanceAlertConfigRouteArgs{...} -type ObservabilityInstanceAlertConfigRouteInput interface { - pulumi.Input - - ToObservabilityInstanceAlertConfigRouteOutput() ObservabilityInstanceAlertConfigRouteOutput - ToObservabilityInstanceAlertConfigRouteOutputWithContext(context.Context) ObservabilityInstanceAlertConfigRouteOutput +func (o RedisInstanceParametersOutput) ToRedisInstanceParametersOutputWithContext(ctx context.Context) RedisInstanceParametersOutput { + return o } -type ObservabilityInstanceAlertConfigRouteArgs struct { - // Whether an alert should continue matching subsequent sibling nodes. - Continue pulumi.BoolPtrInput `pulumi:"continue"` - // 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. - GroupBies pulumi.StringArrayInput `pulumi:"groupBies"` - // 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.) - GroupInterval pulumi.StringPtrInput `pulumi:"groupInterval"` - // 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.) - GroupWait pulumi.StringPtrInput `pulumi:"groupWait"` - // The name of the receiver to route the alerts to. - Receiver pulumi.StringInput `pulumi:"receiver"` - // How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). - RepeatInterval pulumi.StringPtrInput `pulumi:"repeatInterval"` - // List of child routes. - Routes ObservabilityInstanceAlertConfigRouteRouteArrayInput `pulumi:"routes"` +func (o RedisInstanceParametersOutput) ToRedisInstanceParametersPtrOutput() RedisInstanceParametersPtrOutput { + return o.ToRedisInstanceParametersPtrOutputWithContext(context.Background()) } -func (ObservabilityInstanceAlertConfigRouteArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityInstanceAlertConfigRoute)(nil)).Elem() +func (o RedisInstanceParametersOutput) ToRedisInstanceParametersPtrOutputWithContext(ctx context.Context) RedisInstanceParametersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RedisInstanceParameters) *RedisInstanceParameters { + return &v + }).(RedisInstanceParametersPtrOutput) } -func (i ObservabilityInstanceAlertConfigRouteArgs) ToObservabilityInstanceAlertConfigRouteOutput() ObservabilityInstanceAlertConfigRouteOutput { - return i.ToObservabilityInstanceAlertConfigRouteOutputWithContext(context.Background()) +// The number of milliseconds after which the instance is considered down. +func (o RedisInstanceParametersOutput) DownAfterMilliseconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *int { return v.DownAfterMilliseconds }).(pulumi.IntPtrOutput) } -func (i ObservabilityInstanceAlertConfigRouteArgs) ToObservabilityInstanceAlertConfigRouteOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRouteOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigRouteOutput) +// Enable monitoring. +func (o RedisInstanceParametersOutput) EnableMonitoring() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *bool { return v.EnableMonitoring }).(pulumi.BoolPtrOutput) } -func (i ObservabilityInstanceAlertConfigRouteArgs) ToObservabilityInstanceAlertConfigRoutePtrOutput() ObservabilityInstanceAlertConfigRoutePtrOutput { - return i.ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(context.Background()) +// The failover timeout in milliseconds. +func (o RedisInstanceParametersOutput) FailoverTimeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *int { return v.FailoverTimeout }).(pulumi.IntPtrOutput) } -func (i ObservabilityInstanceAlertConfigRouteArgs) ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRoutePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigRouteOutput).ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(ctx) +// Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. +func (o RedisInstanceParametersOutput) Graphite() pulumi.StringPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *string { return v.Graphite }).(pulumi.StringPtrOutput) } -// ObservabilityInstanceAlertConfigRoutePtrInput is an input type that accepts ObservabilityInstanceAlertConfigRouteArgs, ObservabilityInstanceAlertConfigRoutePtr and ObservabilityInstanceAlertConfigRoutePtrOutput values. -// You can construct a concrete instance of `ObservabilityInstanceAlertConfigRoutePtrInput` via: -// -// ObservabilityInstanceAlertConfigRouteArgs{...} -// -// or: -// -// nil -type ObservabilityInstanceAlertConfigRoutePtrInput interface { - pulumi.Input - - ToObservabilityInstanceAlertConfigRoutePtrOutput() ObservabilityInstanceAlertConfigRoutePtrOutput - ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(context.Context) ObservabilityInstanceAlertConfigRoutePtrOutput +// The lazy eviction enablement (yes or no). +func (o RedisInstanceParametersOutput) LazyfreeLazyEviction() pulumi.StringPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *string { return v.LazyfreeLazyEviction }).(pulumi.StringPtrOutput) } -type observabilityInstanceAlertConfigRoutePtrType ObservabilityInstanceAlertConfigRouteArgs - -func ObservabilityInstanceAlertConfigRoutePtr(v *ObservabilityInstanceAlertConfigRouteArgs) ObservabilityInstanceAlertConfigRoutePtrInput { - return (*observabilityInstanceAlertConfigRoutePtrType)(v) +// The lazy expire enablement (yes or no). +func (o RedisInstanceParametersOutput) LazyfreeLazyExpire() pulumi.StringPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *string { return v.LazyfreeLazyExpire }).(pulumi.StringPtrOutput) } -func (*observabilityInstanceAlertConfigRoutePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ObservabilityInstanceAlertConfigRoute)(nil)).Elem() +// The Lua time limit. +func (o RedisInstanceParametersOutput) LuaTimeLimit() pulumi.IntPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *int { return v.LuaTimeLimit }).(pulumi.IntPtrOutput) } -func (i *observabilityInstanceAlertConfigRoutePtrType) ToObservabilityInstanceAlertConfigRoutePtrOutput() ObservabilityInstanceAlertConfigRoutePtrOutput { - return i.ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(context.Background()) +// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. +func (o RedisInstanceParametersOutput) MaxDiskThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *int { return v.MaxDiskThreshold }).(pulumi.IntPtrOutput) } -func (i *observabilityInstanceAlertConfigRoutePtrType) ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRoutePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigRoutePtrOutput) +// The maximum number of clients. +func (o RedisInstanceParametersOutput) Maxclients() pulumi.IntPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *int { return v.Maxclients }).(pulumi.IntPtrOutput) } -type ObservabilityInstanceAlertConfigRouteOutput struct{ *pulumi.OutputState } - -func (ObservabilityInstanceAlertConfigRouteOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityInstanceAlertConfigRoute)(nil)).Elem() +// The policy to handle the maximum memory (volatile-lru, noeviction, etc). +func (o RedisInstanceParametersOutput) MaxmemoryPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *string { return v.MaxmemoryPolicy }).(pulumi.StringPtrOutput) } -func (o ObservabilityInstanceAlertConfigRouteOutput) ToObservabilityInstanceAlertConfigRouteOutput() ObservabilityInstanceAlertConfigRouteOutput { - return o +// The maximum memory samples. +func (o RedisInstanceParametersOutput) MaxmemorySamples() pulumi.IntPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *int { return v.MaxmemorySamples }).(pulumi.IntPtrOutput) } -func (o ObservabilityInstanceAlertConfigRouteOutput) ToObservabilityInstanceAlertConfigRouteOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRouteOutput { - return o +// The frequency in seconds at which metrics are emitted. +func (o RedisInstanceParametersOutput) MetricsFrequency() pulumi.IntPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *int { return v.MetricsFrequency }).(pulumi.IntPtrOutput) } -func (o ObservabilityInstanceAlertConfigRouteOutput) ToObservabilityInstanceAlertConfigRoutePtrOutput() ObservabilityInstanceAlertConfigRoutePtrOutput { - return o.ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(context.Background()) +// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key +func (o RedisInstanceParametersOutput) MetricsPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *string { return v.MetricsPrefix }).(pulumi.StringPtrOutput) } -func (o ObservabilityInstanceAlertConfigRouteOutput) ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRoutePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ObservabilityInstanceAlertConfigRoute) *ObservabilityInstanceAlertConfigRoute { - return &v - }).(ObservabilityInstanceAlertConfigRoutePtrOutput) +// The minimum replicas maximum lag. +func (o RedisInstanceParametersOutput) MinReplicasMaxLag() pulumi.IntPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *int { return v.MinReplicasMaxLag }).(pulumi.IntPtrOutput) } -// Whether an alert should continue matching subsequent sibling nodes. -func (o ObservabilityInstanceAlertConfigRouteOutput) Continue() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigRoute) *bool { return v.Continue }).(pulumi.BoolPtrOutput) +// The ID of the STACKIT monitoring instance. +func (o RedisInstanceParametersOutput) MonitoringInstanceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *string { return v.MonitoringInstanceId }).(pulumi.StringPtrOutput) } -// 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. -func (o ObservabilityInstanceAlertConfigRouteOutput) GroupBies() pulumi.StringArrayOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigRoute) []string { return v.GroupBies }).(pulumi.StringArrayOutput) +// The notify keyspace events. +func (o RedisInstanceParametersOutput) NotifyKeyspaceEvents() pulumi.StringPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *string { return v.NotifyKeyspaceEvents }).(pulumi.StringPtrOutput) } -// 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.) -func (o ObservabilityInstanceAlertConfigRouteOutput) GroupInterval() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigRoute) *string { return v.GroupInterval }).(pulumi.StringPtrOutput) +// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. +func (o RedisInstanceParametersOutput) SgwAcl() pulumi.StringPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *string { return v.SgwAcl }).(pulumi.StringPtrOutput) } -// 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.) -func (o ObservabilityInstanceAlertConfigRouteOutput) GroupWait() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigRoute) *string { return v.GroupWait }).(pulumi.StringPtrOutput) +// The snapshot configuration. +func (o RedisInstanceParametersOutput) Snapshot() pulumi.StringPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *string { return v.Snapshot }).(pulumi.StringPtrOutput) } -// The name of the receiver to route the alerts to. -func (o ObservabilityInstanceAlertConfigRouteOutput) Receiver() pulumi.StringOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigRoute) string { return v.Receiver }).(pulumi.StringOutput) +// List of syslog servers to send logs to. +func (o RedisInstanceParametersOutput) Syslogs() pulumi.StringArrayOutput { + return o.ApplyT(func(v RedisInstanceParameters) []string { return v.Syslogs }).(pulumi.StringArrayOutput) } -// How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). -func (o ObservabilityInstanceAlertConfigRouteOutput) RepeatInterval() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigRoute) *string { return v.RepeatInterval }).(pulumi.StringPtrOutput) +// List of TLS ciphers to use. +func (o RedisInstanceParametersOutput) TlsCiphers() pulumi.StringArrayOutput { + return o.ApplyT(func(v RedisInstanceParameters) []string { return v.TlsCiphers }).(pulumi.StringArrayOutput) } -// List of child routes. -func (o ObservabilityInstanceAlertConfigRouteOutput) Routes() ObservabilityInstanceAlertConfigRouteRouteArrayOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigRoute) []ObservabilityInstanceAlertConfigRouteRoute { - return v.Routes - }).(ObservabilityInstanceAlertConfigRouteRouteArrayOutput) +// TLS cipher suites to use. +func (o RedisInstanceParametersOutput) TlsCiphersuites() pulumi.StringPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *string { return v.TlsCiphersuites }).(pulumi.StringPtrOutput) } -type ObservabilityInstanceAlertConfigRoutePtrOutput struct{ *pulumi.OutputState } +// TLS protocol to use. +func (o RedisInstanceParametersOutput) TlsProtocols() pulumi.StringPtrOutput { + return o.ApplyT(func(v RedisInstanceParameters) *string { return v.TlsProtocols }).(pulumi.StringPtrOutput) +} -func (ObservabilityInstanceAlertConfigRoutePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ObservabilityInstanceAlertConfigRoute)(nil)).Elem() +type RedisInstanceParametersPtrOutput struct{ *pulumi.OutputState } + +func (RedisInstanceParametersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RedisInstanceParameters)(nil)).Elem() } -func (o ObservabilityInstanceAlertConfigRoutePtrOutput) ToObservabilityInstanceAlertConfigRoutePtrOutput() ObservabilityInstanceAlertConfigRoutePtrOutput { +func (o RedisInstanceParametersPtrOutput) ToRedisInstanceParametersPtrOutput() RedisInstanceParametersPtrOutput { return o } -func (o ObservabilityInstanceAlertConfigRoutePtrOutput) ToObservabilityInstanceAlertConfigRoutePtrOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRoutePtrOutput { +func (o RedisInstanceParametersPtrOutput) ToRedisInstanceParametersPtrOutputWithContext(ctx context.Context) RedisInstanceParametersPtrOutput { return o } -func (o ObservabilityInstanceAlertConfigRoutePtrOutput) Elem() ObservabilityInstanceAlertConfigRouteOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) ObservabilityInstanceAlertConfigRoute { +func (o RedisInstanceParametersPtrOutput) Elem() RedisInstanceParametersOutput { + return o.ApplyT(func(v *RedisInstanceParameters) RedisInstanceParameters { if v != nil { return *v } - var ret ObservabilityInstanceAlertConfigRoute + var ret RedisInstanceParameters return ret - }).(ObservabilityInstanceAlertConfigRouteOutput) + }).(RedisInstanceParametersOutput) } -// Whether an alert should continue matching subsequent sibling nodes. -func (o ObservabilityInstanceAlertConfigRoutePtrOutput) Continue() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) *bool { +// The number of milliseconds after which the instance is considered down. +func (o RedisInstanceParametersPtrOutput) DownAfterMilliseconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *int { if v == nil { return nil } - return v.Continue - }).(pulumi.BoolPtrOutput) + return v.DownAfterMilliseconds + }).(pulumi.IntPtrOutput) } -// 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. -func (o ObservabilityInstanceAlertConfigRoutePtrOutput) GroupBies() pulumi.StringArrayOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) []string { +// Enable monitoring. +func (o RedisInstanceParametersPtrOutput) EnableMonitoring() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *bool { if v == nil { return nil } - return v.GroupBies - }).(pulumi.StringArrayOutput) + return v.EnableMonitoring + }).(pulumi.BoolPtrOutput) } -// 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.) -func (o ObservabilityInstanceAlertConfigRoutePtrOutput) GroupInterval() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) *string { +// The failover timeout in milliseconds. +func (o RedisInstanceParametersPtrOutput) FailoverTimeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *int { if v == nil { return nil } - return v.GroupInterval - }).(pulumi.StringPtrOutput) + return v.FailoverTimeout + }).(pulumi.IntPtrOutput) } -// 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.) -func (o ObservabilityInstanceAlertConfigRoutePtrOutput) GroupWait() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) *string { +// Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. +func (o RedisInstanceParametersPtrOutput) Graphite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *string { if v == nil { return nil } - return v.GroupWait + return v.Graphite }).(pulumi.StringPtrOutput) } -// The name of the receiver to route the alerts to. -func (o ObservabilityInstanceAlertConfigRoutePtrOutput) Receiver() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) *string { +// The lazy eviction enablement (yes or no). +func (o RedisInstanceParametersPtrOutput) LazyfreeLazyEviction() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *string { if v == nil { return nil } - return &v.Receiver + return v.LazyfreeLazyEviction }).(pulumi.StringPtrOutput) } -// How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). -func (o ObservabilityInstanceAlertConfigRoutePtrOutput) RepeatInterval() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) *string { +// The lazy expire enablement (yes or no). +func (o RedisInstanceParametersPtrOutput) LazyfreeLazyExpire() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *string { if v == nil { return nil } - return v.RepeatInterval + return v.LazyfreeLazyExpire }).(pulumi.StringPtrOutput) } -// List of child routes. -func (o ObservabilityInstanceAlertConfigRoutePtrOutput) Routes() ObservabilityInstanceAlertConfigRouteRouteArrayOutput { - return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) []ObservabilityInstanceAlertConfigRouteRoute { +// The Lua time limit. +func (o RedisInstanceParametersPtrOutput) LuaTimeLimit() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *int { if v == nil { return nil } - return v.Routes - }).(ObservabilityInstanceAlertConfigRouteRouteArrayOutput) -} - -type ObservabilityInstanceAlertConfigRouteRoute struct { - // Whether an alert should continue matching subsequent sibling nodes. - Continue *bool `pulumi:"continue"` - // 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. - GroupBies []string `pulumi:"groupBies"` - // 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.) - GroupInterval *string `pulumi:"groupInterval"` - // 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.) - GroupWait *string `pulumi:"groupWait"` - // 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 `matchers` in the `routes` instead - // - // Deprecated: Use `matchers` in the `routes` instead. - Match map[string]string `pulumi:"match"` - // 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 `matchers` in the `routes` instead - // - // Deprecated: Use `matchers` in the `routes` instead. - MatchRegex map[string]string `pulumi:"matchRegex"` - // 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. - Matchers []string `pulumi:"matchers"` - // The name of the receiver to route the alerts to. - Receiver string `pulumi:"receiver"` - // How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). - RepeatInterval *string `pulumi:"repeatInterval"` -} - -// ObservabilityInstanceAlertConfigRouteRouteInput is an input type that accepts ObservabilityInstanceAlertConfigRouteRouteArgs and ObservabilityInstanceAlertConfigRouteRouteOutput values. -// You can construct a concrete instance of `ObservabilityInstanceAlertConfigRouteRouteInput` via: -// -// ObservabilityInstanceAlertConfigRouteRouteArgs{...} -type ObservabilityInstanceAlertConfigRouteRouteInput interface { - pulumi.Input - - ToObservabilityInstanceAlertConfigRouteRouteOutput() ObservabilityInstanceAlertConfigRouteRouteOutput - ToObservabilityInstanceAlertConfigRouteRouteOutputWithContext(context.Context) ObservabilityInstanceAlertConfigRouteRouteOutput -} - -type ObservabilityInstanceAlertConfigRouteRouteArgs struct { - // Whether an alert should continue matching subsequent sibling nodes. - Continue pulumi.BoolPtrInput `pulumi:"continue"` - // 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. - GroupBies pulumi.StringArrayInput `pulumi:"groupBies"` - // 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.) - GroupInterval pulumi.StringPtrInput `pulumi:"groupInterval"` - // 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.) - GroupWait pulumi.StringPtrInput `pulumi:"groupWait"` - // 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 `matchers` in the `routes` instead - // - // Deprecated: Use `matchers` in the `routes` instead. - Match pulumi.StringMapInput `pulumi:"match"` - // 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 `matchers` in the `routes` instead - // - // Deprecated: Use `matchers` in the `routes` instead. - MatchRegex pulumi.StringMapInput `pulumi:"matchRegex"` - // 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. - Matchers pulumi.StringArrayInput `pulumi:"matchers"` - // The name of the receiver to route the alerts to. - Receiver pulumi.StringInput `pulumi:"receiver"` - // How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). - RepeatInterval pulumi.StringPtrInput `pulumi:"repeatInterval"` -} - -func (ObservabilityInstanceAlertConfigRouteRouteArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityInstanceAlertConfigRouteRoute)(nil)).Elem() -} - -func (i ObservabilityInstanceAlertConfigRouteRouteArgs) ToObservabilityInstanceAlertConfigRouteRouteOutput() ObservabilityInstanceAlertConfigRouteRouteOutput { - return i.ToObservabilityInstanceAlertConfigRouteRouteOutputWithContext(context.Background()) -} - -func (i ObservabilityInstanceAlertConfigRouteRouteArgs) ToObservabilityInstanceAlertConfigRouteRouteOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRouteRouteOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigRouteRouteOutput) -} - -// ObservabilityInstanceAlertConfigRouteRouteArrayInput is an input type that accepts ObservabilityInstanceAlertConfigRouteRouteArray and ObservabilityInstanceAlertConfigRouteRouteArrayOutput values. -// You can construct a concrete instance of `ObservabilityInstanceAlertConfigRouteRouteArrayInput` via: -// -// ObservabilityInstanceAlertConfigRouteRouteArray{ ObservabilityInstanceAlertConfigRouteRouteArgs{...} } -type ObservabilityInstanceAlertConfigRouteRouteArrayInput interface { - pulumi.Input - - ToObservabilityInstanceAlertConfigRouteRouteArrayOutput() ObservabilityInstanceAlertConfigRouteRouteArrayOutput - ToObservabilityInstanceAlertConfigRouteRouteArrayOutputWithContext(context.Context) ObservabilityInstanceAlertConfigRouteRouteArrayOutput -} - -type ObservabilityInstanceAlertConfigRouteRouteArray []ObservabilityInstanceAlertConfigRouteRouteInput - -func (ObservabilityInstanceAlertConfigRouteRouteArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigRouteRoute)(nil)).Elem() -} - -func (i ObservabilityInstanceAlertConfigRouteRouteArray) ToObservabilityInstanceAlertConfigRouteRouteArrayOutput() ObservabilityInstanceAlertConfigRouteRouteArrayOutput { - return i.ToObservabilityInstanceAlertConfigRouteRouteArrayOutputWithContext(context.Background()) -} - -func (i ObservabilityInstanceAlertConfigRouteRouteArray) ToObservabilityInstanceAlertConfigRouteRouteArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRouteRouteArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityInstanceAlertConfigRouteRouteArrayOutput) -} - -type ObservabilityInstanceAlertConfigRouteRouteOutput struct{ *pulumi.OutputState } - -func (ObservabilityInstanceAlertConfigRouteRouteOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityInstanceAlertConfigRouteRoute)(nil)).Elem() -} - -func (o ObservabilityInstanceAlertConfigRouteRouteOutput) ToObservabilityInstanceAlertConfigRouteRouteOutput() ObservabilityInstanceAlertConfigRouteRouteOutput { - return o + return v.LuaTimeLimit + }).(pulumi.IntPtrOutput) } -func (o ObservabilityInstanceAlertConfigRouteRouteOutput) ToObservabilityInstanceAlertConfigRouteRouteOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRouteRouteOutput { - return o +// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. +func (o RedisInstanceParametersPtrOutput) MaxDiskThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *int { + if v == nil { + return nil + } + return v.MaxDiskThreshold + }).(pulumi.IntPtrOutput) } -// Whether an alert should continue matching subsequent sibling nodes. -func (o ObservabilityInstanceAlertConfigRouteRouteOutput) Continue() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) *bool { return v.Continue }).(pulumi.BoolPtrOutput) +// The maximum number of clients. +func (o RedisInstanceParametersPtrOutput) Maxclients() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *int { + if v == nil { + return nil + } + return v.Maxclients + }).(pulumi.IntPtrOutput) } -// 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. -func (o ObservabilityInstanceAlertConfigRouteRouteOutput) GroupBies() pulumi.StringArrayOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) []string { return v.GroupBies }).(pulumi.StringArrayOutput) +// The policy to handle the maximum memory (volatile-lru, noeviction, etc). +func (o RedisInstanceParametersPtrOutput) MaxmemoryPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *string { + if v == nil { + return nil + } + return v.MaxmemoryPolicy + }).(pulumi.StringPtrOutput) } -// 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.) -func (o ObservabilityInstanceAlertConfigRouteRouteOutput) GroupInterval() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) *string { return v.GroupInterval }).(pulumi.StringPtrOutput) +// The maximum memory samples. +func (o RedisInstanceParametersPtrOutput) MaxmemorySamples() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *int { + if v == nil { + return nil + } + return v.MaxmemorySamples + }).(pulumi.IntPtrOutput) } -// 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.) -func (o ObservabilityInstanceAlertConfigRouteRouteOutput) GroupWait() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) *string { return v.GroupWait }).(pulumi.StringPtrOutput) +// The frequency in seconds at which metrics are emitted. +func (o RedisInstanceParametersPtrOutput) MetricsFrequency() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *int { + if v == nil { + return nil + } + return v.MetricsFrequency + }).(pulumi.IntPtrOutput) } -// 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 `matchers` in the `routes` instead -// -// Deprecated: Use `matchers` in the `routes` instead. -func (o ObservabilityInstanceAlertConfigRouteRouteOutput) Match() pulumi.StringMapOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) map[string]string { return v.Match }).(pulumi.StringMapOutput) +// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key +func (o RedisInstanceParametersPtrOutput) MetricsPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *string { + if v == nil { + return nil + } + return v.MetricsPrefix + }).(pulumi.StringPtrOutput) } -// 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 `matchers` in the `routes` instead -// -// Deprecated: Use `matchers` in the `routes` instead. -func (o ObservabilityInstanceAlertConfigRouteRouteOutput) MatchRegex() pulumi.StringMapOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) map[string]string { return v.MatchRegex }).(pulumi.StringMapOutput) +// The minimum replicas maximum lag. +func (o RedisInstanceParametersPtrOutput) MinReplicasMaxLag() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *int { + if v == nil { + return nil + } + return v.MinReplicasMaxLag + }).(pulumi.IntPtrOutput) } -// 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. -func (o ObservabilityInstanceAlertConfigRouteRouteOutput) Matchers() pulumi.StringArrayOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) []string { return v.Matchers }).(pulumi.StringArrayOutput) +// The ID of the STACKIT monitoring instance. +func (o RedisInstanceParametersPtrOutput) MonitoringInstanceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *string { + if v == nil { + return nil + } + return v.MonitoringInstanceId + }).(pulumi.StringPtrOutput) } -// The name of the receiver to route the alerts to. -func (o ObservabilityInstanceAlertConfigRouteRouteOutput) Receiver() pulumi.StringOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) string { return v.Receiver }).(pulumi.StringOutput) +// The notify keyspace events. +func (o RedisInstanceParametersPtrOutput) NotifyKeyspaceEvents() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *string { + if v == nil { + return nil + } + return v.NotifyKeyspaceEvents + }).(pulumi.StringPtrOutput) } -// How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). -func (o ObservabilityInstanceAlertConfigRouteRouteOutput) RepeatInterval() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityInstanceAlertConfigRouteRoute) *string { return v.RepeatInterval }).(pulumi.StringPtrOutput) +// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. +func (o RedisInstanceParametersPtrOutput) SgwAcl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *string { + if v == nil { + return nil + } + return v.SgwAcl + }).(pulumi.StringPtrOutput) } -type ObservabilityInstanceAlertConfigRouteRouteArrayOutput struct{ *pulumi.OutputState } +// The snapshot configuration. +func (o RedisInstanceParametersPtrOutput) Snapshot() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *string { + if v == nil { + return nil + } + return v.Snapshot + }).(pulumi.StringPtrOutput) +} -func (ObservabilityInstanceAlertConfigRouteRouteArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObservabilityInstanceAlertConfigRouteRoute)(nil)).Elem() +// List of syslog servers to send logs to. +func (o RedisInstanceParametersPtrOutput) Syslogs() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RedisInstanceParameters) []string { + if v == nil { + return nil + } + return v.Syslogs + }).(pulumi.StringArrayOutput) } -func (o ObservabilityInstanceAlertConfigRouteRouteArrayOutput) ToObservabilityInstanceAlertConfigRouteRouteArrayOutput() ObservabilityInstanceAlertConfigRouteRouteArrayOutput { - return o +// List of TLS ciphers to use. +func (o RedisInstanceParametersPtrOutput) TlsCiphers() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RedisInstanceParameters) []string { + if v == nil { + return nil + } + return v.TlsCiphers + }).(pulumi.StringArrayOutput) } -func (o ObservabilityInstanceAlertConfigRouteRouteArrayOutput) ToObservabilityInstanceAlertConfigRouteRouteArrayOutputWithContext(ctx context.Context) ObservabilityInstanceAlertConfigRouteRouteArrayOutput { - return o +// TLS cipher suites to use. +func (o RedisInstanceParametersPtrOutput) TlsCiphersuites() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *string { + if v == nil { + return nil + } + return v.TlsCiphersuites + }).(pulumi.StringPtrOutput) } -func (o ObservabilityInstanceAlertConfigRouteRouteArrayOutput) Index(i pulumi.IntInput) ObservabilityInstanceAlertConfigRouteRouteOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObservabilityInstanceAlertConfigRouteRoute { - return vs[0].([]ObservabilityInstanceAlertConfigRouteRoute)[vs[1].(int)] - }).(ObservabilityInstanceAlertConfigRouteRouteOutput) +// TLS protocol to use. +func (o RedisInstanceParametersPtrOutput) TlsProtocols() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RedisInstanceParameters) *string { + if v == nil { + return nil + } + return v.TlsProtocols + }).(pulumi.StringPtrOutput) } -type ObservabilityLogalertgroupRule struct { - // The name of the alert rule. Is the identifier and must be unique in the group. - Alert string `pulumi:"alert"` - // A map of key:value. Annotations to add or overwrite for each alert - Annotations map[string]string `pulumi:"annotations"` - // The LogQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. - Expression string `pulumi:"expression"` - // 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 - For *string `pulumi:"for"` - // A map of key:value. Labels to add or overwrite for each alert - Labels map[string]string `pulumi:"labels"` +type RoutingTableRouteDestination struct { + // CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported during experimental stage. + Type string `pulumi:"type"` + // An CIDR string. + Value string `pulumi:"value"` } -// ObservabilityLogalertgroupRuleInput is an input type that accepts ObservabilityLogalertgroupRuleArgs and ObservabilityLogalertgroupRuleOutput values. -// You can construct a concrete instance of `ObservabilityLogalertgroupRuleInput` via: +// RoutingTableRouteDestinationInput is an input type that accepts RoutingTableRouteDestinationArgs and RoutingTableRouteDestinationOutput values. +// You can construct a concrete instance of `RoutingTableRouteDestinationInput` via: // -// ObservabilityLogalertgroupRuleArgs{...} -type ObservabilityLogalertgroupRuleInput interface { +// RoutingTableRouteDestinationArgs{...} +type RoutingTableRouteDestinationInput interface { pulumi.Input - ToObservabilityLogalertgroupRuleOutput() ObservabilityLogalertgroupRuleOutput - ToObservabilityLogalertgroupRuleOutputWithContext(context.Context) ObservabilityLogalertgroupRuleOutput + ToRoutingTableRouteDestinationOutput() RoutingTableRouteDestinationOutput + ToRoutingTableRouteDestinationOutputWithContext(context.Context) RoutingTableRouteDestinationOutput } -type ObservabilityLogalertgroupRuleArgs struct { - // The name of the alert rule. Is the identifier and must be unique in the group. - Alert pulumi.StringInput `pulumi:"alert"` - // A map of key:value. Annotations to add or overwrite for each alert - Annotations pulumi.StringMapInput `pulumi:"annotations"` - // The LogQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. - Expression pulumi.StringInput `pulumi:"expression"` - // 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 - For pulumi.StringPtrInput `pulumi:"for"` - // A map of key:value. Labels to add or overwrite for each alert - Labels pulumi.StringMapInput `pulumi:"labels"` +type RoutingTableRouteDestinationArgs struct { + // CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported during experimental stage. + Type pulumi.StringInput `pulumi:"type"` + // An CIDR string. + Value pulumi.StringInput `pulumi:"value"` } -func (ObservabilityLogalertgroupRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityLogalertgroupRule)(nil)).Elem() +func (RoutingTableRouteDestinationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingTableRouteDestination)(nil)).Elem() } -func (i ObservabilityLogalertgroupRuleArgs) ToObservabilityLogalertgroupRuleOutput() ObservabilityLogalertgroupRuleOutput { - return i.ToObservabilityLogalertgroupRuleOutputWithContext(context.Background()) +func (i RoutingTableRouteDestinationArgs) ToRoutingTableRouteDestinationOutput() RoutingTableRouteDestinationOutput { + return i.ToRoutingTableRouteDestinationOutputWithContext(context.Background()) } -func (i ObservabilityLogalertgroupRuleArgs) ToObservabilityLogalertgroupRuleOutputWithContext(ctx context.Context) ObservabilityLogalertgroupRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityLogalertgroupRuleOutput) +func (i RoutingTableRouteDestinationArgs) ToRoutingTableRouteDestinationOutputWithContext(ctx context.Context) RoutingTableRouteDestinationOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingTableRouteDestinationOutput) } -// ObservabilityLogalertgroupRuleArrayInput is an input type that accepts ObservabilityLogalertgroupRuleArray and ObservabilityLogalertgroupRuleArrayOutput values. -// You can construct a concrete instance of `ObservabilityLogalertgroupRuleArrayInput` via: +func (i RoutingTableRouteDestinationArgs) ToRoutingTableRouteDestinationPtrOutput() RoutingTableRouteDestinationPtrOutput { + return i.ToRoutingTableRouteDestinationPtrOutputWithContext(context.Background()) +} + +func (i RoutingTableRouteDestinationArgs) ToRoutingTableRouteDestinationPtrOutputWithContext(ctx context.Context) RoutingTableRouteDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingTableRouteDestinationOutput).ToRoutingTableRouteDestinationPtrOutputWithContext(ctx) +} + +// RoutingTableRouteDestinationPtrInput is an input type that accepts RoutingTableRouteDestinationArgs, RoutingTableRouteDestinationPtr and RoutingTableRouteDestinationPtrOutput values. +// You can construct a concrete instance of `RoutingTableRouteDestinationPtrInput` via: // -// ObservabilityLogalertgroupRuleArray{ ObservabilityLogalertgroupRuleArgs{...} } -type ObservabilityLogalertgroupRuleArrayInput interface { +// RoutingTableRouteDestinationArgs{...} +// +// or: +// +// nil +type RoutingTableRouteDestinationPtrInput interface { pulumi.Input - ToObservabilityLogalertgroupRuleArrayOutput() ObservabilityLogalertgroupRuleArrayOutput - ToObservabilityLogalertgroupRuleArrayOutputWithContext(context.Context) ObservabilityLogalertgroupRuleArrayOutput + ToRoutingTableRouteDestinationPtrOutput() RoutingTableRouteDestinationPtrOutput + ToRoutingTableRouteDestinationPtrOutputWithContext(context.Context) RoutingTableRouteDestinationPtrOutput } -type ObservabilityLogalertgroupRuleArray []ObservabilityLogalertgroupRuleInput +type routingTableRouteDestinationPtrType RoutingTableRouteDestinationArgs -func (ObservabilityLogalertgroupRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObservabilityLogalertgroupRule)(nil)).Elem() +func RoutingTableRouteDestinationPtr(v *RoutingTableRouteDestinationArgs) RoutingTableRouteDestinationPtrInput { + return (*routingTableRouteDestinationPtrType)(v) } -func (i ObservabilityLogalertgroupRuleArray) ToObservabilityLogalertgroupRuleArrayOutput() ObservabilityLogalertgroupRuleArrayOutput { - return i.ToObservabilityLogalertgroupRuleArrayOutputWithContext(context.Background()) +func (*routingTableRouteDestinationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingTableRouteDestination)(nil)).Elem() } -func (i ObservabilityLogalertgroupRuleArray) ToObservabilityLogalertgroupRuleArrayOutputWithContext(ctx context.Context) ObservabilityLogalertgroupRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityLogalertgroupRuleArrayOutput) +func (i *routingTableRouteDestinationPtrType) ToRoutingTableRouteDestinationPtrOutput() RoutingTableRouteDestinationPtrOutput { + return i.ToRoutingTableRouteDestinationPtrOutputWithContext(context.Background()) } -type ObservabilityLogalertgroupRuleOutput struct{ *pulumi.OutputState } +func (i *routingTableRouteDestinationPtrType) ToRoutingTableRouteDestinationPtrOutputWithContext(ctx context.Context) RoutingTableRouteDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingTableRouteDestinationPtrOutput) +} -func (ObservabilityLogalertgroupRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityLogalertgroupRule)(nil)).Elem() +type RoutingTableRouteDestinationOutput struct{ *pulumi.OutputState } + +func (RoutingTableRouteDestinationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingTableRouteDestination)(nil)).Elem() } -func (o ObservabilityLogalertgroupRuleOutput) ToObservabilityLogalertgroupRuleOutput() ObservabilityLogalertgroupRuleOutput { +func (o RoutingTableRouteDestinationOutput) ToRoutingTableRouteDestinationOutput() RoutingTableRouteDestinationOutput { return o } -func (o ObservabilityLogalertgroupRuleOutput) ToObservabilityLogalertgroupRuleOutputWithContext(ctx context.Context) ObservabilityLogalertgroupRuleOutput { +func (o RoutingTableRouteDestinationOutput) ToRoutingTableRouteDestinationOutputWithContext(ctx context.Context) RoutingTableRouteDestinationOutput { return o } -// The name of the alert rule. Is the identifier and must be unique in the group. -func (o ObservabilityLogalertgroupRuleOutput) Alert() pulumi.StringOutput { - return o.ApplyT(func(v ObservabilityLogalertgroupRule) string { return v.Alert }).(pulumi.StringOutput) +func (o RoutingTableRouteDestinationOutput) ToRoutingTableRouteDestinationPtrOutput() RoutingTableRouteDestinationPtrOutput { + return o.ToRoutingTableRouteDestinationPtrOutputWithContext(context.Background()) } -// A map of key:value. Annotations to add or overwrite for each alert -func (o ObservabilityLogalertgroupRuleOutput) Annotations() pulumi.StringMapOutput { - return o.ApplyT(func(v ObservabilityLogalertgroupRule) map[string]string { return v.Annotations }).(pulumi.StringMapOutput) +func (o RoutingTableRouteDestinationOutput) ToRoutingTableRouteDestinationPtrOutputWithContext(ctx context.Context) RoutingTableRouteDestinationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RoutingTableRouteDestination) *RoutingTableRouteDestination { + return &v + }).(RoutingTableRouteDestinationPtrOutput) } -// The LogQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. -func (o ObservabilityLogalertgroupRuleOutput) Expression() pulumi.StringOutput { - return o.ApplyT(func(v ObservabilityLogalertgroupRule) string { return v.Expression }).(pulumi.StringOutput) +// CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported during experimental stage. +func (o RoutingTableRouteDestinationOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v RoutingTableRouteDestination) string { return v.Type }).(pulumi.StringOutput) } -// 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 -func (o ObservabilityLogalertgroupRuleOutput) For() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObservabilityLogalertgroupRule) *string { return v.For }).(pulumi.StringPtrOutput) +// An CIDR string. +func (o RoutingTableRouteDestinationOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v RoutingTableRouteDestination) string { return v.Value }).(pulumi.StringOutput) } -// A map of key:value. Labels to add or overwrite for each alert -func (o ObservabilityLogalertgroupRuleOutput) Labels() pulumi.StringMapOutput { - return o.ApplyT(func(v ObservabilityLogalertgroupRule) map[string]string { return v.Labels }).(pulumi.StringMapOutput) -} +type RoutingTableRouteDestinationPtrOutput struct{ *pulumi.OutputState } -type ObservabilityLogalertgroupRuleArrayOutput struct{ *pulumi.OutputState } +func (RoutingTableRouteDestinationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingTableRouteDestination)(nil)).Elem() +} -func (ObservabilityLogalertgroupRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObservabilityLogalertgroupRule)(nil)).Elem() +func (o RoutingTableRouteDestinationPtrOutput) ToRoutingTableRouteDestinationPtrOutput() RoutingTableRouteDestinationPtrOutput { + return o } -func (o ObservabilityLogalertgroupRuleArrayOutput) ToObservabilityLogalertgroupRuleArrayOutput() ObservabilityLogalertgroupRuleArrayOutput { +func (o RoutingTableRouteDestinationPtrOutput) ToRoutingTableRouteDestinationPtrOutputWithContext(ctx context.Context) RoutingTableRouteDestinationPtrOutput { return o } -func (o ObservabilityLogalertgroupRuleArrayOutput) ToObservabilityLogalertgroupRuleArrayOutputWithContext(ctx context.Context) ObservabilityLogalertgroupRuleArrayOutput { - return o +func (o RoutingTableRouteDestinationPtrOutput) Elem() RoutingTableRouteDestinationOutput { + return o.ApplyT(func(v *RoutingTableRouteDestination) RoutingTableRouteDestination { + if v != nil { + return *v + } + var ret RoutingTableRouteDestination + return ret + }).(RoutingTableRouteDestinationOutput) } -func (o ObservabilityLogalertgroupRuleArrayOutput) Index(i pulumi.IntInput) ObservabilityLogalertgroupRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObservabilityLogalertgroupRule { - return vs[0].([]ObservabilityLogalertgroupRule)[vs[1].(int)] - }).(ObservabilityLogalertgroupRuleOutput) +// CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported during experimental stage. +func (o RoutingTableRouteDestinationPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RoutingTableRouteDestination) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) } -type ObservabilityScrapeconfigBasicAuth struct { - // Specifies basic auth password. - Password string `pulumi:"password"` - // Specifies basic auth username. - Username string `pulumi:"username"` +// An CIDR string. +func (o RoutingTableRouteDestinationPtrOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RoutingTableRouteDestination) *string { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.StringPtrOutput) } -// ObservabilityScrapeconfigBasicAuthInput is an input type that accepts ObservabilityScrapeconfigBasicAuthArgs and ObservabilityScrapeconfigBasicAuthOutput values. -// You can construct a concrete instance of `ObservabilityScrapeconfigBasicAuthInput` via: +type RoutingTableRouteNextHop struct { + // Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. + Type string `pulumi:"type"` + // Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. + Value *string `pulumi:"value"` +} + +// RoutingTableRouteNextHopInput is an input type that accepts RoutingTableRouteNextHopArgs and RoutingTableRouteNextHopOutput values. +// You can construct a concrete instance of `RoutingTableRouteNextHopInput` via: // -// ObservabilityScrapeconfigBasicAuthArgs{...} -type ObservabilityScrapeconfigBasicAuthInput interface { +// RoutingTableRouteNextHopArgs{...} +type RoutingTableRouteNextHopInput interface { pulumi.Input - ToObservabilityScrapeconfigBasicAuthOutput() ObservabilityScrapeconfigBasicAuthOutput - ToObservabilityScrapeconfigBasicAuthOutputWithContext(context.Context) ObservabilityScrapeconfigBasicAuthOutput + ToRoutingTableRouteNextHopOutput() RoutingTableRouteNextHopOutput + ToRoutingTableRouteNextHopOutputWithContext(context.Context) RoutingTableRouteNextHopOutput } -type ObservabilityScrapeconfigBasicAuthArgs struct { - // Specifies basic auth password. - Password pulumi.StringInput `pulumi:"password"` - // Specifies basic auth username. - Username pulumi.StringInput `pulumi:"username"` +type RoutingTableRouteNextHopArgs struct { + // Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. + Type pulumi.StringInput `pulumi:"type"` + // Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. + Value pulumi.StringPtrInput `pulumi:"value"` } -func (ObservabilityScrapeconfigBasicAuthArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityScrapeconfigBasicAuth)(nil)).Elem() +func (RoutingTableRouteNextHopArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingTableRouteNextHop)(nil)).Elem() } -func (i ObservabilityScrapeconfigBasicAuthArgs) ToObservabilityScrapeconfigBasicAuthOutput() ObservabilityScrapeconfigBasicAuthOutput { - return i.ToObservabilityScrapeconfigBasicAuthOutputWithContext(context.Background()) +func (i RoutingTableRouteNextHopArgs) ToRoutingTableRouteNextHopOutput() RoutingTableRouteNextHopOutput { + return i.ToRoutingTableRouteNextHopOutputWithContext(context.Background()) } -func (i ObservabilityScrapeconfigBasicAuthArgs) ToObservabilityScrapeconfigBasicAuthOutputWithContext(ctx context.Context) ObservabilityScrapeconfigBasicAuthOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityScrapeconfigBasicAuthOutput) +func (i RoutingTableRouteNextHopArgs) ToRoutingTableRouteNextHopOutputWithContext(ctx context.Context) RoutingTableRouteNextHopOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingTableRouteNextHopOutput) } -func (i ObservabilityScrapeconfigBasicAuthArgs) ToObservabilityScrapeconfigBasicAuthPtrOutput() ObservabilityScrapeconfigBasicAuthPtrOutput { - return i.ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(context.Background()) +func (i RoutingTableRouteNextHopArgs) ToRoutingTableRouteNextHopPtrOutput() RoutingTableRouteNextHopPtrOutput { + return i.ToRoutingTableRouteNextHopPtrOutputWithContext(context.Background()) } -func (i ObservabilityScrapeconfigBasicAuthArgs) ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(ctx context.Context) ObservabilityScrapeconfigBasicAuthPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityScrapeconfigBasicAuthOutput).ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(ctx) +func (i RoutingTableRouteNextHopArgs) ToRoutingTableRouteNextHopPtrOutputWithContext(ctx context.Context) RoutingTableRouteNextHopPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingTableRouteNextHopOutput).ToRoutingTableRouteNextHopPtrOutputWithContext(ctx) } -// ObservabilityScrapeconfigBasicAuthPtrInput is an input type that accepts ObservabilityScrapeconfigBasicAuthArgs, ObservabilityScrapeconfigBasicAuthPtr and ObservabilityScrapeconfigBasicAuthPtrOutput values. -// You can construct a concrete instance of `ObservabilityScrapeconfigBasicAuthPtrInput` via: +// RoutingTableRouteNextHopPtrInput is an input type that accepts RoutingTableRouteNextHopArgs, RoutingTableRouteNextHopPtr and RoutingTableRouteNextHopPtrOutput values. +// You can construct a concrete instance of `RoutingTableRouteNextHopPtrInput` via: // -// ObservabilityScrapeconfigBasicAuthArgs{...} +// RoutingTableRouteNextHopArgs{...} // // or: // // nil -type ObservabilityScrapeconfigBasicAuthPtrInput interface { +type RoutingTableRouteNextHopPtrInput interface { pulumi.Input - ToObservabilityScrapeconfigBasicAuthPtrOutput() ObservabilityScrapeconfigBasicAuthPtrOutput - ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(context.Context) ObservabilityScrapeconfigBasicAuthPtrOutput + ToRoutingTableRouteNextHopPtrOutput() RoutingTableRouteNextHopPtrOutput + ToRoutingTableRouteNextHopPtrOutputWithContext(context.Context) RoutingTableRouteNextHopPtrOutput } -type observabilityScrapeconfigBasicAuthPtrType ObservabilityScrapeconfigBasicAuthArgs +type routingTableRouteNextHopPtrType RoutingTableRouteNextHopArgs -func ObservabilityScrapeconfigBasicAuthPtr(v *ObservabilityScrapeconfigBasicAuthArgs) ObservabilityScrapeconfigBasicAuthPtrInput { - return (*observabilityScrapeconfigBasicAuthPtrType)(v) +func RoutingTableRouteNextHopPtr(v *RoutingTableRouteNextHopArgs) RoutingTableRouteNextHopPtrInput { + return (*routingTableRouteNextHopPtrType)(v) } -func (*observabilityScrapeconfigBasicAuthPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ObservabilityScrapeconfigBasicAuth)(nil)).Elem() +func (*routingTableRouteNextHopPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingTableRouteNextHop)(nil)).Elem() } -func (i *observabilityScrapeconfigBasicAuthPtrType) ToObservabilityScrapeconfigBasicAuthPtrOutput() ObservabilityScrapeconfigBasicAuthPtrOutput { - return i.ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(context.Background()) +func (i *routingTableRouteNextHopPtrType) ToRoutingTableRouteNextHopPtrOutput() RoutingTableRouteNextHopPtrOutput { + return i.ToRoutingTableRouteNextHopPtrOutputWithContext(context.Background()) } -func (i *observabilityScrapeconfigBasicAuthPtrType) ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(ctx context.Context) ObservabilityScrapeconfigBasicAuthPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityScrapeconfigBasicAuthPtrOutput) +func (i *routingTableRouteNextHopPtrType) ToRoutingTableRouteNextHopPtrOutputWithContext(ctx context.Context) RoutingTableRouteNextHopPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingTableRouteNextHopPtrOutput) } -type ObservabilityScrapeconfigBasicAuthOutput struct{ *pulumi.OutputState } +type RoutingTableRouteNextHopOutput struct{ *pulumi.OutputState } -func (ObservabilityScrapeconfigBasicAuthOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityScrapeconfigBasicAuth)(nil)).Elem() +func (RoutingTableRouteNextHopOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingTableRouteNextHop)(nil)).Elem() } -func (o ObservabilityScrapeconfigBasicAuthOutput) ToObservabilityScrapeconfigBasicAuthOutput() ObservabilityScrapeconfigBasicAuthOutput { +func (o RoutingTableRouteNextHopOutput) ToRoutingTableRouteNextHopOutput() RoutingTableRouteNextHopOutput { return o } -func (o ObservabilityScrapeconfigBasicAuthOutput) ToObservabilityScrapeconfigBasicAuthOutputWithContext(ctx context.Context) ObservabilityScrapeconfigBasicAuthOutput { +func (o RoutingTableRouteNextHopOutput) ToRoutingTableRouteNextHopOutputWithContext(ctx context.Context) RoutingTableRouteNextHopOutput { return o } -func (o ObservabilityScrapeconfigBasicAuthOutput) ToObservabilityScrapeconfigBasicAuthPtrOutput() ObservabilityScrapeconfigBasicAuthPtrOutput { - return o.ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(context.Background()) +func (o RoutingTableRouteNextHopOutput) ToRoutingTableRouteNextHopPtrOutput() RoutingTableRouteNextHopPtrOutput { + return o.ToRoutingTableRouteNextHopPtrOutputWithContext(context.Background()) } -func (o ObservabilityScrapeconfigBasicAuthOutput) ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(ctx context.Context) ObservabilityScrapeconfigBasicAuthPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ObservabilityScrapeconfigBasicAuth) *ObservabilityScrapeconfigBasicAuth { +func (o RoutingTableRouteNextHopOutput) ToRoutingTableRouteNextHopPtrOutputWithContext(ctx context.Context) RoutingTableRouteNextHopPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RoutingTableRouteNextHop) *RoutingTableRouteNextHop { return &v - }).(ObservabilityScrapeconfigBasicAuthPtrOutput) + }).(RoutingTableRouteNextHopPtrOutput) } -// Specifies basic auth password. -func (o ObservabilityScrapeconfigBasicAuthOutput) Password() pulumi.StringOutput { - return o.ApplyT(func(v ObservabilityScrapeconfigBasicAuth) string { return v.Password }).(pulumi.StringOutput) +// Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. +func (o RoutingTableRouteNextHopOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v RoutingTableRouteNextHop) string { return v.Type }).(pulumi.StringOutput) } -// Specifies basic auth username. -func (o ObservabilityScrapeconfigBasicAuthOutput) Username() pulumi.StringOutput { - return o.ApplyT(func(v ObservabilityScrapeconfigBasicAuth) string { return v.Username }).(pulumi.StringOutput) +// Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. +func (o RoutingTableRouteNextHopOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoutingTableRouteNextHop) *string { return v.Value }).(pulumi.StringPtrOutput) } -type ObservabilityScrapeconfigBasicAuthPtrOutput struct{ *pulumi.OutputState } +type RoutingTableRouteNextHopPtrOutput struct{ *pulumi.OutputState } -func (ObservabilityScrapeconfigBasicAuthPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ObservabilityScrapeconfigBasicAuth)(nil)).Elem() +func (RoutingTableRouteNextHopPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingTableRouteNextHop)(nil)).Elem() } -func (o ObservabilityScrapeconfigBasicAuthPtrOutput) ToObservabilityScrapeconfigBasicAuthPtrOutput() ObservabilityScrapeconfigBasicAuthPtrOutput { +func (o RoutingTableRouteNextHopPtrOutput) ToRoutingTableRouteNextHopPtrOutput() RoutingTableRouteNextHopPtrOutput { return o } -func (o ObservabilityScrapeconfigBasicAuthPtrOutput) ToObservabilityScrapeconfigBasicAuthPtrOutputWithContext(ctx context.Context) ObservabilityScrapeconfigBasicAuthPtrOutput { +func (o RoutingTableRouteNextHopPtrOutput) ToRoutingTableRouteNextHopPtrOutputWithContext(ctx context.Context) RoutingTableRouteNextHopPtrOutput { return o } -func (o ObservabilityScrapeconfigBasicAuthPtrOutput) Elem() ObservabilityScrapeconfigBasicAuthOutput { - return o.ApplyT(func(v *ObservabilityScrapeconfigBasicAuth) ObservabilityScrapeconfigBasicAuth { +func (o RoutingTableRouteNextHopPtrOutput) Elem() RoutingTableRouteNextHopOutput { + return o.ApplyT(func(v *RoutingTableRouteNextHop) RoutingTableRouteNextHop { if v != nil { return *v } - var ret ObservabilityScrapeconfigBasicAuth + var ret RoutingTableRouteNextHop return ret - }).(ObservabilityScrapeconfigBasicAuthOutput) + }).(RoutingTableRouteNextHopOutput) } -// Specifies basic auth password. -func (o ObservabilityScrapeconfigBasicAuthPtrOutput) Password() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ObservabilityScrapeconfigBasicAuth) *string { +// Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. +func (o RoutingTableRouteNextHopPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RoutingTableRouteNextHop) *string { if v == nil { return nil } - return &v.Password + return &v.Type }).(pulumi.StringPtrOutput) } -// Specifies basic auth username. -func (o ObservabilityScrapeconfigBasicAuthPtrOutput) Username() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ObservabilityScrapeconfigBasicAuth) *string { +// Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. +func (o RoutingTableRouteNextHopPtrOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RoutingTableRouteNextHop) *string { if v == nil { return nil } - return &v.Username + return v.Value }).(pulumi.StringPtrOutput) } -type ObservabilityScrapeconfigSaml2 struct { - // Specifies if URL parameters are enabled. Defaults to `true` - EnableUrlParameters *bool `pulumi:"enableUrlParameters"` +type SecurityGroupRuleIcmpParameters struct { + // ICMP code. Can be set if the protocol is ICMP. + Code int `pulumi:"code"` + // ICMP type. Can be set if the protocol is ICMP. + Type int `pulumi:"type"` } -// ObservabilityScrapeconfigSaml2Input is an input type that accepts ObservabilityScrapeconfigSaml2Args and ObservabilityScrapeconfigSaml2Output values. -// You can construct a concrete instance of `ObservabilityScrapeconfigSaml2Input` via: +// SecurityGroupRuleIcmpParametersInput is an input type that accepts SecurityGroupRuleIcmpParametersArgs and SecurityGroupRuleIcmpParametersOutput values. +// You can construct a concrete instance of `SecurityGroupRuleIcmpParametersInput` via: // -// ObservabilityScrapeconfigSaml2Args{...} -type ObservabilityScrapeconfigSaml2Input interface { +// SecurityGroupRuleIcmpParametersArgs{...} +type SecurityGroupRuleIcmpParametersInput interface { pulumi.Input - ToObservabilityScrapeconfigSaml2Output() ObservabilityScrapeconfigSaml2Output - ToObservabilityScrapeconfigSaml2OutputWithContext(context.Context) ObservabilityScrapeconfigSaml2Output + ToSecurityGroupRuleIcmpParametersOutput() SecurityGroupRuleIcmpParametersOutput + ToSecurityGroupRuleIcmpParametersOutputWithContext(context.Context) SecurityGroupRuleIcmpParametersOutput } -type ObservabilityScrapeconfigSaml2Args struct { - // Specifies if URL parameters are enabled. Defaults to `true` - EnableUrlParameters pulumi.BoolPtrInput `pulumi:"enableUrlParameters"` +type SecurityGroupRuleIcmpParametersArgs struct { + // ICMP code. Can be set if the protocol is ICMP. + Code pulumi.IntInput `pulumi:"code"` + // ICMP type. Can be set if the protocol is ICMP. + Type pulumi.IntInput `pulumi:"type"` } -func (ObservabilityScrapeconfigSaml2Args) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityScrapeconfigSaml2)(nil)).Elem() +func (SecurityGroupRuleIcmpParametersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityGroupRuleIcmpParameters)(nil)).Elem() } -func (i ObservabilityScrapeconfigSaml2Args) ToObservabilityScrapeconfigSaml2Output() ObservabilityScrapeconfigSaml2Output { - return i.ToObservabilityScrapeconfigSaml2OutputWithContext(context.Background()) +func (i SecurityGroupRuleIcmpParametersArgs) ToSecurityGroupRuleIcmpParametersOutput() SecurityGroupRuleIcmpParametersOutput { + return i.ToSecurityGroupRuleIcmpParametersOutputWithContext(context.Background()) } -func (i ObservabilityScrapeconfigSaml2Args) ToObservabilityScrapeconfigSaml2OutputWithContext(ctx context.Context) ObservabilityScrapeconfigSaml2Output { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityScrapeconfigSaml2Output) +func (i SecurityGroupRuleIcmpParametersArgs) ToSecurityGroupRuleIcmpParametersOutputWithContext(ctx context.Context) SecurityGroupRuleIcmpParametersOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRuleIcmpParametersOutput) } -func (i ObservabilityScrapeconfigSaml2Args) ToObservabilityScrapeconfigSaml2PtrOutput() ObservabilityScrapeconfigSaml2PtrOutput { - return i.ToObservabilityScrapeconfigSaml2PtrOutputWithContext(context.Background()) +func (i SecurityGroupRuleIcmpParametersArgs) ToSecurityGroupRuleIcmpParametersPtrOutput() SecurityGroupRuleIcmpParametersPtrOutput { + return i.ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(context.Background()) } -func (i ObservabilityScrapeconfigSaml2Args) ToObservabilityScrapeconfigSaml2PtrOutputWithContext(ctx context.Context) ObservabilityScrapeconfigSaml2PtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityScrapeconfigSaml2Output).ToObservabilityScrapeconfigSaml2PtrOutputWithContext(ctx) +func (i SecurityGroupRuleIcmpParametersArgs) ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(ctx context.Context) SecurityGroupRuleIcmpParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRuleIcmpParametersOutput).ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(ctx) } -// ObservabilityScrapeconfigSaml2PtrInput is an input type that accepts ObservabilityScrapeconfigSaml2Args, ObservabilityScrapeconfigSaml2Ptr and ObservabilityScrapeconfigSaml2PtrOutput values. -// You can construct a concrete instance of `ObservabilityScrapeconfigSaml2PtrInput` via: +// SecurityGroupRuleIcmpParametersPtrInput is an input type that accepts SecurityGroupRuleIcmpParametersArgs, SecurityGroupRuleIcmpParametersPtr and SecurityGroupRuleIcmpParametersPtrOutput values. +// You can construct a concrete instance of `SecurityGroupRuleIcmpParametersPtrInput` via: // -// ObservabilityScrapeconfigSaml2Args{...} +// SecurityGroupRuleIcmpParametersArgs{...} // // or: // // nil -type ObservabilityScrapeconfigSaml2PtrInput interface { +type SecurityGroupRuleIcmpParametersPtrInput interface { pulumi.Input - ToObservabilityScrapeconfigSaml2PtrOutput() ObservabilityScrapeconfigSaml2PtrOutput - ToObservabilityScrapeconfigSaml2PtrOutputWithContext(context.Context) ObservabilityScrapeconfigSaml2PtrOutput + ToSecurityGroupRuleIcmpParametersPtrOutput() SecurityGroupRuleIcmpParametersPtrOutput + ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(context.Context) SecurityGroupRuleIcmpParametersPtrOutput } -type observabilityScrapeconfigSaml2PtrType ObservabilityScrapeconfigSaml2Args +type securityGroupRuleIcmpParametersPtrType SecurityGroupRuleIcmpParametersArgs -func ObservabilityScrapeconfigSaml2Ptr(v *ObservabilityScrapeconfigSaml2Args) ObservabilityScrapeconfigSaml2PtrInput { - return (*observabilityScrapeconfigSaml2PtrType)(v) +func SecurityGroupRuleIcmpParametersPtr(v *SecurityGroupRuleIcmpParametersArgs) SecurityGroupRuleIcmpParametersPtrInput { + return (*securityGroupRuleIcmpParametersPtrType)(v) } -func (*observabilityScrapeconfigSaml2PtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ObservabilityScrapeconfigSaml2)(nil)).Elem() +func (*securityGroupRuleIcmpParametersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityGroupRuleIcmpParameters)(nil)).Elem() } -func (i *observabilityScrapeconfigSaml2PtrType) ToObservabilityScrapeconfigSaml2PtrOutput() ObservabilityScrapeconfigSaml2PtrOutput { - return i.ToObservabilityScrapeconfigSaml2PtrOutputWithContext(context.Background()) +func (i *securityGroupRuleIcmpParametersPtrType) ToSecurityGroupRuleIcmpParametersPtrOutput() SecurityGroupRuleIcmpParametersPtrOutput { + return i.ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(context.Background()) } -func (i *observabilityScrapeconfigSaml2PtrType) ToObservabilityScrapeconfigSaml2PtrOutputWithContext(ctx context.Context) ObservabilityScrapeconfigSaml2PtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityScrapeconfigSaml2PtrOutput) +func (i *securityGroupRuleIcmpParametersPtrType) ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(ctx context.Context) SecurityGroupRuleIcmpParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRuleIcmpParametersPtrOutput) } -type ObservabilityScrapeconfigSaml2Output struct{ *pulumi.OutputState } +type SecurityGroupRuleIcmpParametersOutput struct{ *pulumi.OutputState } -func (ObservabilityScrapeconfigSaml2Output) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityScrapeconfigSaml2)(nil)).Elem() +func (SecurityGroupRuleIcmpParametersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityGroupRuleIcmpParameters)(nil)).Elem() } -func (o ObservabilityScrapeconfigSaml2Output) ToObservabilityScrapeconfigSaml2Output() ObservabilityScrapeconfigSaml2Output { +func (o SecurityGroupRuleIcmpParametersOutput) ToSecurityGroupRuleIcmpParametersOutput() SecurityGroupRuleIcmpParametersOutput { return o } -func (o ObservabilityScrapeconfigSaml2Output) ToObservabilityScrapeconfigSaml2OutputWithContext(ctx context.Context) ObservabilityScrapeconfigSaml2Output { +func (o SecurityGroupRuleIcmpParametersOutput) ToSecurityGroupRuleIcmpParametersOutputWithContext(ctx context.Context) SecurityGroupRuleIcmpParametersOutput { return o } -func (o ObservabilityScrapeconfigSaml2Output) ToObservabilityScrapeconfigSaml2PtrOutput() ObservabilityScrapeconfigSaml2PtrOutput { - return o.ToObservabilityScrapeconfigSaml2PtrOutputWithContext(context.Background()) +func (o SecurityGroupRuleIcmpParametersOutput) ToSecurityGroupRuleIcmpParametersPtrOutput() SecurityGroupRuleIcmpParametersPtrOutput { + return o.ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(context.Background()) } -func (o ObservabilityScrapeconfigSaml2Output) ToObservabilityScrapeconfigSaml2PtrOutputWithContext(ctx context.Context) ObservabilityScrapeconfigSaml2PtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ObservabilityScrapeconfigSaml2) *ObservabilityScrapeconfigSaml2 { +func (o SecurityGroupRuleIcmpParametersOutput) ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(ctx context.Context) SecurityGroupRuleIcmpParametersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityGroupRuleIcmpParameters) *SecurityGroupRuleIcmpParameters { return &v - }).(ObservabilityScrapeconfigSaml2PtrOutput) + }).(SecurityGroupRuleIcmpParametersPtrOutput) } -// Specifies if URL parameters are enabled. Defaults to `true` -func (o ObservabilityScrapeconfigSaml2Output) EnableUrlParameters() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ObservabilityScrapeconfigSaml2) *bool { return v.EnableUrlParameters }).(pulumi.BoolPtrOutput) +// ICMP code. Can be set if the protocol is ICMP. +func (o SecurityGroupRuleIcmpParametersOutput) Code() pulumi.IntOutput { + return o.ApplyT(func(v SecurityGroupRuleIcmpParameters) int { return v.Code }).(pulumi.IntOutput) } -type ObservabilityScrapeconfigSaml2PtrOutput struct{ *pulumi.OutputState } +// ICMP type. Can be set if the protocol is ICMP. +func (o SecurityGroupRuleIcmpParametersOutput) Type() pulumi.IntOutput { + return o.ApplyT(func(v SecurityGroupRuleIcmpParameters) int { return v.Type }).(pulumi.IntOutput) +} -func (ObservabilityScrapeconfigSaml2PtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ObservabilityScrapeconfigSaml2)(nil)).Elem() +type SecurityGroupRuleIcmpParametersPtrOutput struct{ *pulumi.OutputState } + +func (SecurityGroupRuleIcmpParametersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityGroupRuleIcmpParameters)(nil)).Elem() } -func (o ObservabilityScrapeconfigSaml2PtrOutput) ToObservabilityScrapeconfigSaml2PtrOutput() ObservabilityScrapeconfigSaml2PtrOutput { +func (o SecurityGroupRuleIcmpParametersPtrOutput) ToSecurityGroupRuleIcmpParametersPtrOutput() SecurityGroupRuleIcmpParametersPtrOutput { return o } -func (o ObservabilityScrapeconfigSaml2PtrOutput) ToObservabilityScrapeconfigSaml2PtrOutputWithContext(ctx context.Context) ObservabilityScrapeconfigSaml2PtrOutput { +func (o SecurityGroupRuleIcmpParametersPtrOutput) ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(ctx context.Context) SecurityGroupRuleIcmpParametersPtrOutput { return o } -func (o ObservabilityScrapeconfigSaml2PtrOutput) Elem() ObservabilityScrapeconfigSaml2Output { - return o.ApplyT(func(v *ObservabilityScrapeconfigSaml2) ObservabilityScrapeconfigSaml2 { +func (o SecurityGroupRuleIcmpParametersPtrOutput) Elem() SecurityGroupRuleIcmpParametersOutput { + return o.ApplyT(func(v *SecurityGroupRuleIcmpParameters) SecurityGroupRuleIcmpParameters { if v != nil { return *v } - var ret ObservabilityScrapeconfigSaml2 + var ret SecurityGroupRuleIcmpParameters return ret - }).(ObservabilityScrapeconfigSaml2Output) + }).(SecurityGroupRuleIcmpParametersOutput) } -// Specifies if URL parameters are enabled. Defaults to `true` -func (o ObservabilityScrapeconfigSaml2PtrOutput) EnableUrlParameters() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ObservabilityScrapeconfigSaml2) *bool { +// ICMP code. Can be set if the protocol is ICMP. +func (o SecurityGroupRuleIcmpParametersPtrOutput) Code() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityGroupRuleIcmpParameters) *int { if v == nil { return nil } - return v.EnableUrlParameters - }).(pulumi.BoolPtrOutput) + return &v.Code + }).(pulumi.IntPtrOutput) } -type ObservabilityScrapeconfigTarget struct { - // Specifies labels. - Labels map[string]string `pulumi:"labels"` - // Specifies target URLs. - Urls []string `pulumi:"urls"` +// ICMP type. Can be set if the protocol is ICMP. +func (o SecurityGroupRuleIcmpParametersPtrOutput) Type() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityGroupRuleIcmpParameters) *int { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.IntPtrOutput) } -// ObservabilityScrapeconfigTargetInput is an input type that accepts ObservabilityScrapeconfigTargetArgs and ObservabilityScrapeconfigTargetOutput values. -// You can construct a concrete instance of `ObservabilityScrapeconfigTargetInput` via: +type SecurityGroupRulePortRange struct { + // The maximum port number. Should be greater or equal to the minimum. + Max int `pulumi:"max"` + // The minimum port number. Should be less or equal to the maximum. + Min int `pulumi:"min"` +} + +// SecurityGroupRulePortRangeInput is an input type that accepts SecurityGroupRulePortRangeArgs and SecurityGroupRulePortRangeOutput values. +// You can construct a concrete instance of `SecurityGroupRulePortRangeInput` via: // -// ObservabilityScrapeconfigTargetArgs{...} -type ObservabilityScrapeconfigTargetInput interface { +// SecurityGroupRulePortRangeArgs{...} +type SecurityGroupRulePortRangeInput interface { pulumi.Input - ToObservabilityScrapeconfigTargetOutput() ObservabilityScrapeconfigTargetOutput - ToObservabilityScrapeconfigTargetOutputWithContext(context.Context) ObservabilityScrapeconfigTargetOutput + ToSecurityGroupRulePortRangeOutput() SecurityGroupRulePortRangeOutput + ToSecurityGroupRulePortRangeOutputWithContext(context.Context) SecurityGroupRulePortRangeOutput } -type ObservabilityScrapeconfigTargetArgs struct { - // Specifies labels. - Labels pulumi.StringMapInput `pulumi:"labels"` - // Specifies target URLs. - Urls pulumi.StringArrayInput `pulumi:"urls"` +type SecurityGroupRulePortRangeArgs struct { + // The maximum port number. Should be greater or equal to the minimum. + Max pulumi.IntInput `pulumi:"max"` + // The minimum port number. Should be less or equal to the maximum. + Min pulumi.IntInput `pulumi:"min"` } -func (ObservabilityScrapeconfigTargetArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityScrapeconfigTarget)(nil)).Elem() +func (SecurityGroupRulePortRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityGroupRulePortRange)(nil)).Elem() } -func (i ObservabilityScrapeconfigTargetArgs) ToObservabilityScrapeconfigTargetOutput() ObservabilityScrapeconfigTargetOutput { - return i.ToObservabilityScrapeconfigTargetOutputWithContext(context.Background()) +func (i SecurityGroupRulePortRangeArgs) ToSecurityGroupRulePortRangeOutput() SecurityGroupRulePortRangeOutput { + return i.ToSecurityGroupRulePortRangeOutputWithContext(context.Background()) } -func (i ObservabilityScrapeconfigTargetArgs) ToObservabilityScrapeconfigTargetOutputWithContext(ctx context.Context) ObservabilityScrapeconfigTargetOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityScrapeconfigTargetOutput) +func (i SecurityGroupRulePortRangeArgs) ToSecurityGroupRulePortRangeOutputWithContext(ctx context.Context) SecurityGroupRulePortRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRulePortRangeOutput) } -// ObservabilityScrapeconfigTargetArrayInput is an input type that accepts ObservabilityScrapeconfigTargetArray and ObservabilityScrapeconfigTargetArrayOutput values. -// You can construct a concrete instance of `ObservabilityScrapeconfigTargetArrayInput` via: +func (i SecurityGroupRulePortRangeArgs) ToSecurityGroupRulePortRangePtrOutput() SecurityGroupRulePortRangePtrOutput { + return i.ToSecurityGroupRulePortRangePtrOutputWithContext(context.Background()) +} + +func (i SecurityGroupRulePortRangeArgs) ToSecurityGroupRulePortRangePtrOutputWithContext(ctx context.Context) SecurityGroupRulePortRangePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRulePortRangeOutput).ToSecurityGroupRulePortRangePtrOutputWithContext(ctx) +} + +// SecurityGroupRulePortRangePtrInput is an input type that accepts SecurityGroupRulePortRangeArgs, SecurityGroupRulePortRangePtr and SecurityGroupRulePortRangePtrOutput values. +// You can construct a concrete instance of `SecurityGroupRulePortRangePtrInput` via: // -// ObservabilityScrapeconfigTargetArray{ ObservabilityScrapeconfigTargetArgs{...} } -type ObservabilityScrapeconfigTargetArrayInput interface { +// SecurityGroupRulePortRangeArgs{...} +// +// or: +// +// nil +type SecurityGroupRulePortRangePtrInput interface { pulumi.Input - ToObservabilityScrapeconfigTargetArrayOutput() ObservabilityScrapeconfigTargetArrayOutput - ToObservabilityScrapeconfigTargetArrayOutputWithContext(context.Context) ObservabilityScrapeconfigTargetArrayOutput + ToSecurityGroupRulePortRangePtrOutput() SecurityGroupRulePortRangePtrOutput + ToSecurityGroupRulePortRangePtrOutputWithContext(context.Context) SecurityGroupRulePortRangePtrOutput } -type ObservabilityScrapeconfigTargetArray []ObservabilityScrapeconfigTargetInput +type securityGroupRulePortRangePtrType SecurityGroupRulePortRangeArgs -func (ObservabilityScrapeconfigTargetArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObservabilityScrapeconfigTarget)(nil)).Elem() +func SecurityGroupRulePortRangePtr(v *SecurityGroupRulePortRangeArgs) SecurityGroupRulePortRangePtrInput { + return (*securityGroupRulePortRangePtrType)(v) } -func (i ObservabilityScrapeconfigTargetArray) ToObservabilityScrapeconfigTargetArrayOutput() ObservabilityScrapeconfigTargetArrayOutput { - return i.ToObservabilityScrapeconfigTargetArrayOutputWithContext(context.Background()) +func (*securityGroupRulePortRangePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityGroupRulePortRange)(nil)).Elem() } -func (i ObservabilityScrapeconfigTargetArray) ToObservabilityScrapeconfigTargetArrayOutputWithContext(ctx context.Context) ObservabilityScrapeconfigTargetArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObservabilityScrapeconfigTargetArrayOutput) +func (i *securityGroupRulePortRangePtrType) ToSecurityGroupRulePortRangePtrOutput() SecurityGroupRulePortRangePtrOutput { + return i.ToSecurityGroupRulePortRangePtrOutputWithContext(context.Background()) } -type ObservabilityScrapeconfigTargetOutput struct{ *pulumi.OutputState } +func (i *securityGroupRulePortRangePtrType) ToSecurityGroupRulePortRangePtrOutputWithContext(ctx context.Context) SecurityGroupRulePortRangePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRulePortRangePtrOutput) +} -func (ObservabilityScrapeconfigTargetOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ObservabilityScrapeconfigTarget)(nil)).Elem() +type SecurityGroupRulePortRangeOutput struct{ *pulumi.OutputState } + +func (SecurityGroupRulePortRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityGroupRulePortRange)(nil)).Elem() } -func (o ObservabilityScrapeconfigTargetOutput) ToObservabilityScrapeconfigTargetOutput() ObservabilityScrapeconfigTargetOutput { +func (o SecurityGroupRulePortRangeOutput) ToSecurityGroupRulePortRangeOutput() SecurityGroupRulePortRangeOutput { return o } -func (o ObservabilityScrapeconfigTargetOutput) ToObservabilityScrapeconfigTargetOutputWithContext(ctx context.Context) ObservabilityScrapeconfigTargetOutput { +func (o SecurityGroupRulePortRangeOutput) ToSecurityGroupRulePortRangeOutputWithContext(ctx context.Context) SecurityGroupRulePortRangeOutput { return o } -// Specifies labels. -func (o ObservabilityScrapeconfigTargetOutput) Labels() pulumi.StringMapOutput { - return o.ApplyT(func(v ObservabilityScrapeconfigTarget) map[string]string { return v.Labels }).(pulumi.StringMapOutput) +func (o SecurityGroupRulePortRangeOutput) ToSecurityGroupRulePortRangePtrOutput() SecurityGroupRulePortRangePtrOutput { + return o.ToSecurityGroupRulePortRangePtrOutputWithContext(context.Background()) } -// Specifies target URLs. -func (o ObservabilityScrapeconfigTargetOutput) Urls() pulumi.StringArrayOutput { - return o.ApplyT(func(v ObservabilityScrapeconfigTarget) []string { return v.Urls }).(pulumi.StringArrayOutput) +func (o SecurityGroupRulePortRangeOutput) ToSecurityGroupRulePortRangePtrOutputWithContext(ctx context.Context) SecurityGroupRulePortRangePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityGroupRulePortRange) *SecurityGroupRulePortRange { + return &v + }).(SecurityGroupRulePortRangePtrOutput) } -type ObservabilityScrapeconfigTargetArrayOutput struct{ *pulumi.OutputState } +// The maximum port number. Should be greater or equal to the minimum. +func (o SecurityGroupRulePortRangeOutput) Max() pulumi.IntOutput { + return o.ApplyT(func(v SecurityGroupRulePortRange) int { return v.Max }).(pulumi.IntOutput) +} -func (ObservabilityScrapeconfigTargetArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObservabilityScrapeconfigTarget)(nil)).Elem() +// The minimum port number. Should be less or equal to the maximum. +func (o SecurityGroupRulePortRangeOutput) Min() pulumi.IntOutput { + return o.ApplyT(func(v SecurityGroupRulePortRange) int { return v.Min }).(pulumi.IntOutput) } -func (o ObservabilityScrapeconfigTargetArrayOutput) ToObservabilityScrapeconfigTargetArrayOutput() ObservabilityScrapeconfigTargetArrayOutput { +type SecurityGroupRulePortRangePtrOutput struct{ *pulumi.OutputState } + +func (SecurityGroupRulePortRangePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityGroupRulePortRange)(nil)).Elem() +} + +func (o SecurityGroupRulePortRangePtrOutput) ToSecurityGroupRulePortRangePtrOutput() SecurityGroupRulePortRangePtrOutput { return o } -func (o ObservabilityScrapeconfigTargetArrayOutput) ToObservabilityScrapeconfigTargetArrayOutputWithContext(ctx context.Context) ObservabilityScrapeconfigTargetArrayOutput { +func (o SecurityGroupRulePortRangePtrOutput) ToSecurityGroupRulePortRangePtrOutputWithContext(ctx context.Context) SecurityGroupRulePortRangePtrOutput { return o } -func (o ObservabilityScrapeconfigTargetArrayOutput) Index(i pulumi.IntInput) ObservabilityScrapeconfigTargetOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObservabilityScrapeconfigTarget { - return vs[0].([]ObservabilityScrapeconfigTarget)[vs[1].(int)] - }).(ObservabilityScrapeconfigTargetOutput) +func (o SecurityGroupRulePortRangePtrOutput) Elem() SecurityGroupRulePortRangeOutput { + return o.ApplyT(func(v *SecurityGroupRulePortRange) SecurityGroupRulePortRange { + if v != nil { + return *v + } + var ret SecurityGroupRulePortRange + return ret + }).(SecurityGroupRulePortRangeOutput) } -type OpensearchInstanceParameters struct { - // Enable monitoring. - EnableMonitoring *bool `pulumi:"enableMonitoring"` - // If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). - Graphite *string `pulumi:"graphite"` - // The garbage collector to use for OpenSearch. - JavaGarbageCollector *string `pulumi:"javaGarbageCollector"` - // The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. - JavaHeapspace *int `pulumi:"javaHeapspace"` - // The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. - JavaMaxmetaspace *int `pulumi:"javaMaxmetaspace"` - // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. - MaxDiskThreshold *int `pulumi:"maxDiskThreshold"` - // The frequency in seconds at which metrics are emitted (in seconds). - MetricsFrequency *int `pulumi:"metricsFrequency"` - // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. - MetricsPrefix *string `pulumi:"metricsPrefix"` - // The ID of the STACKIT monitoring instance. - MonitoringInstanceId *string `pulumi:"monitoringInstanceId"` - // 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. - Plugins []string `pulumi:"plugins"` - // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. - SgwAcl *string `pulumi:"sgwAcl"` - // List of syslog servers to send logs to. - Syslogs []string `pulumi:"syslogs"` - // List of TLS ciphers to use. - TlsCiphers []string `pulumi:"tlsCiphers"` - // The TLS protocol to use. - TlsProtocols []string `pulumi:"tlsProtocols"` +// The maximum port number. Should be greater or equal to the minimum. +func (o SecurityGroupRulePortRangePtrOutput) Max() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityGroupRulePortRange) *int { + if v == nil { + return nil + } + return &v.Max + }).(pulumi.IntPtrOutput) +} + +// The minimum port number. Should be less or equal to the maximum. +func (o SecurityGroupRulePortRangePtrOutput) Min() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityGroupRulePortRange) *int { + if v == nil { + return nil + } + return &v.Min + }).(pulumi.IntPtrOutput) } -// OpensearchInstanceParametersInput is an input type that accepts OpensearchInstanceParametersArgs and OpensearchInstanceParametersOutput values. -// You can construct a concrete instance of `OpensearchInstanceParametersInput` via: +type SecurityGroupRuleProtocol struct { + // The protocol name which the rule should match. Either `name` or `number` must be provided. Possible values are: `ah`, `dccp`, `egp`, `esp`, `gre`, `icmp`, `igmp`, `ipip`, `ipv6-encap`, `ipv6-frag`, `ipv6-icmp`, `ipv6-nonxt`, `ipv6-opts`, `ipv6-route`, `ospf`, `pgm`, `rsvp`, `sctp`, `tcp`, `udp`, `udplite`, `vrrp`. + Name *string `pulumi:"name"` + // The protocol number which the rule should match. Either `name` or `number` must be provided. + Number *int `pulumi:"number"` +} + +// SecurityGroupRuleProtocolInput is an input type that accepts SecurityGroupRuleProtocolArgs and SecurityGroupRuleProtocolOutput values. +// You can construct a concrete instance of `SecurityGroupRuleProtocolInput` via: // -// OpensearchInstanceParametersArgs{...} -type OpensearchInstanceParametersInput interface { +// SecurityGroupRuleProtocolArgs{...} +type SecurityGroupRuleProtocolInput interface { pulumi.Input - ToOpensearchInstanceParametersOutput() OpensearchInstanceParametersOutput - ToOpensearchInstanceParametersOutputWithContext(context.Context) OpensearchInstanceParametersOutput + ToSecurityGroupRuleProtocolOutput() SecurityGroupRuleProtocolOutput + ToSecurityGroupRuleProtocolOutputWithContext(context.Context) SecurityGroupRuleProtocolOutput } -type OpensearchInstanceParametersArgs struct { - // Enable monitoring. - EnableMonitoring pulumi.BoolPtrInput `pulumi:"enableMonitoring"` - // If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). - Graphite pulumi.StringPtrInput `pulumi:"graphite"` - // The garbage collector to use for OpenSearch. - JavaGarbageCollector pulumi.StringPtrInput `pulumi:"javaGarbageCollector"` - // The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. - JavaHeapspace pulumi.IntPtrInput `pulumi:"javaHeapspace"` - // The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. - JavaMaxmetaspace pulumi.IntPtrInput `pulumi:"javaMaxmetaspace"` - // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. - MaxDiskThreshold pulumi.IntPtrInput `pulumi:"maxDiskThreshold"` - // The frequency in seconds at which metrics are emitted (in seconds). - MetricsFrequency pulumi.IntPtrInput `pulumi:"metricsFrequency"` - // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. - MetricsPrefix pulumi.StringPtrInput `pulumi:"metricsPrefix"` - // The ID of the STACKIT monitoring instance. - MonitoringInstanceId pulumi.StringPtrInput `pulumi:"monitoringInstanceId"` - // 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. - Plugins pulumi.StringArrayInput `pulumi:"plugins"` - // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. - SgwAcl pulumi.StringPtrInput `pulumi:"sgwAcl"` - // List of syslog servers to send logs to. - Syslogs pulumi.StringArrayInput `pulumi:"syslogs"` - // List of TLS ciphers to use. - TlsCiphers pulumi.StringArrayInput `pulumi:"tlsCiphers"` - // The TLS protocol to use. - TlsProtocols pulumi.StringArrayInput `pulumi:"tlsProtocols"` +type SecurityGroupRuleProtocolArgs struct { + // The protocol name which the rule should match. Either `name` or `number` must be provided. Possible values are: `ah`, `dccp`, `egp`, `esp`, `gre`, `icmp`, `igmp`, `ipip`, `ipv6-encap`, `ipv6-frag`, `ipv6-icmp`, `ipv6-nonxt`, `ipv6-opts`, `ipv6-route`, `ospf`, `pgm`, `rsvp`, `sctp`, `tcp`, `udp`, `udplite`, `vrrp`. + Name pulumi.StringPtrInput `pulumi:"name"` + // The protocol number which the rule should match. Either `name` or `number` must be provided. + Number pulumi.IntPtrInput `pulumi:"number"` } -func (OpensearchInstanceParametersArgs) ElementType() reflect.Type { - return reflect.TypeOf((*OpensearchInstanceParameters)(nil)).Elem() +func (SecurityGroupRuleProtocolArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityGroupRuleProtocol)(nil)).Elem() } -func (i OpensearchInstanceParametersArgs) ToOpensearchInstanceParametersOutput() OpensearchInstanceParametersOutput { - return i.ToOpensearchInstanceParametersOutputWithContext(context.Background()) +func (i SecurityGroupRuleProtocolArgs) ToSecurityGroupRuleProtocolOutput() SecurityGroupRuleProtocolOutput { + return i.ToSecurityGroupRuleProtocolOutputWithContext(context.Background()) } -func (i OpensearchInstanceParametersArgs) ToOpensearchInstanceParametersOutputWithContext(ctx context.Context) OpensearchInstanceParametersOutput { - return pulumi.ToOutputWithContext(ctx, i).(OpensearchInstanceParametersOutput) +func (i SecurityGroupRuleProtocolArgs) ToSecurityGroupRuleProtocolOutputWithContext(ctx context.Context) SecurityGroupRuleProtocolOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRuleProtocolOutput) } -func (i OpensearchInstanceParametersArgs) ToOpensearchInstanceParametersPtrOutput() OpensearchInstanceParametersPtrOutput { - return i.ToOpensearchInstanceParametersPtrOutputWithContext(context.Background()) +func (i SecurityGroupRuleProtocolArgs) ToSecurityGroupRuleProtocolPtrOutput() SecurityGroupRuleProtocolPtrOutput { + return i.ToSecurityGroupRuleProtocolPtrOutputWithContext(context.Background()) } -func (i OpensearchInstanceParametersArgs) ToOpensearchInstanceParametersPtrOutputWithContext(ctx context.Context) OpensearchInstanceParametersPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(OpensearchInstanceParametersOutput).ToOpensearchInstanceParametersPtrOutputWithContext(ctx) +func (i SecurityGroupRuleProtocolArgs) ToSecurityGroupRuleProtocolPtrOutputWithContext(ctx context.Context) SecurityGroupRuleProtocolPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRuleProtocolOutput).ToSecurityGroupRuleProtocolPtrOutputWithContext(ctx) } -// OpensearchInstanceParametersPtrInput is an input type that accepts OpensearchInstanceParametersArgs, OpensearchInstanceParametersPtr and OpensearchInstanceParametersPtrOutput values. -// You can construct a concrete instance of `OpensearchInstanceParametersPtrInput` via: +// SecurityGroupRuleProtocolPtrInput is an input type that accepts SecurityGroupRuleProtocolArgs, SecurityGroupRuleProtocolPtr and SecurityGroupRuleProtocolPtrOutput values. +// You can construct a concrete instance of `SecurityGroupRuleProtocolPtrInput` via: // -// OpensearchInstanceParametersArgs{...} +// SecurityGroupRuleProtocolArgs{...} // // or: // // nil -type OpensearchInstanceParametersPtrInput interface { +type SecurityGroupRuleProtocolPtrInput interface { pulumi.Input - ToOpensearchInstanceParametersPtrOutput() OpensearchInstanceParametersPtrOutput - ToOpensearchInstanceParametersPtrOutputWithContext(context.Context) OpensearchInstanceParametersPtrOutput + ToSecurityGroupRuleProtocolPtrOutput() SecurityGroupRuleProtocolPtrOutput + ToSecurityGroupRuleProtocolPtrOutputWithContext(context.Context) SecurityGroupRuleProtocolPtrOutput } -type opensearchInstanceParametersPtrType OpensearchInstanceParametersArgs +type securityGroupRuleProtocolPtrType SecurityGroupRuleProtocolArgs -func OpensearchInstanceParametersPtr(v *OpensearchInstanceParametersArgs) OpensearchInstanceParametersPtrInput { - return (*opensearchInstanceParametersPtrType)(v) +func SecurityGroupRuleProtocolPtr(v *SecurityGroupRuleProtocolArgs) SecurityGroupRuleProtocolPtrInput { + return (*securityGroupRuleProtocolPtrType)(v) } -func (*opensearchInstanceParametersPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**OpensearchInstanceParameters)(nil)).Elem() +func (*securityGroupRuleProtocolPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityGroupRuleProtocol)(nil)).Elem() } -func (i *opensearchInstanceParametersPtrType) ToOpensearchInstanceParametersPtrOutput() OpensearchInstanceParametersPtrOutput { - return i.ToOpensearchInstanceParametersPtrOutputWithContext(context.Background()) +func (i *securityGroupRuleProtocolPtrType) ToSecurityGroupRuleProtocolPtrOutput() SecurityGroupRuleProtocolPtrOutput { + return i.ToSecurityGroupRuleProtocolPtrOutputWithContext(context.Background()) } -func (i *opensearchInstanceParametersPtrType) ToOpensearchInstanceParametersPtrOutputWithContext(ctx context.Context) OpensearchInstanceParametersPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(OpensearchInstanceParametersPtrOutput) +func (i *securityGroupRuleProtocolPtrType) ToSecurityGroupRuleProtocolPtrOutputWithContext(ctx context.Context) SecurityGroupRuleProtocolPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRuleProtocolPtrOutput) } -type OpensearchInstanceParametersOutput struct{ *pulumi.OutputState } +type SecurityGroupRuleProtocolOutput struct{ *pulumi.OutputState } -func (OpensearchInstanceParametersOutput) ElementType() reflect.Type { - return reflect.TypeOf((*OpensearchInstanceParameters)(nil)).Elem() +func (SecurityGroupRuleProtocolOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityGroupRuleProtocol)(nil)).Elem() } -func (o OpensearchInstanceParametersOutput) ToOpensearchInstanceParametersOutput() OpensearchInstanceParametersOutput { +func (o SecurityGroupRuleProtocolOutput) ToSecurityGroupRuleProtocolOutput() SecurityGroupRuleProtocolOutput { return o } -func (o OpensearchInstanceParametersOutput) ToOpensearchInstanceParametersOutputWithContext(ctx context.Context) OpensearchInstanceParametersOutput { +func (o SecurityGroupRuleProtocolOutput) ToSecurityGroupRuleProtocolOutputWithContext(ctx context.Context) SecurityGroupRuleProtocolOutput { return o } -func (o OpensearchInstanceParametersOutput) ToOpensearchInstanceParametersPtrOutput() OpensearchInstanceParametersPtrOutput { - return o.ToOpensearchInstanceParametersPtrOutputWithContext(context.Background()) +func (o SecurityGroupRuleProtocolOutput) ToSecurityGroupRuleProtocolPtrOutput() SecurityGroupRuleProtocolPtrOutput { + return o.ToSecurityGroupRuleProtocolPtrOutputWithContext(context.Background()) } -func (o OpensearchInstanceParametersOutput) ToOpensearchInstanceParametersPtrOutputWithContext(ctx context.Context) OpensearchInstanceParametersPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v OpensearchInstanceParameters) *OpensearchInstanceParameters { +func (o SecurityGroupRuleProtocolOutput) ToSecurityGroupRuleProtocolPtrOutputWithContext(ctx context.Context) SecurityGroupRuleProtocolPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityGroupRuleProtocol) *SecurityGroupRuleProtocol { return &v - }).(OpensearchInstanceParametersPtrOutput) + }).(SecurityGroupRuleProtocolPtrOutput) } -// Enable monitoring. -func (o OpensearchInstanceParametersOutput) EnableMonitoring() pulumi.BoolPtrOutput { - return o.ApplyT(func(v OpensearchInstanceParameters) *bool { return v.EnableMonitoring }).(pulumi.BoolPtrOutput) +// The protocol name which the rule should match. Either `name` or `number` must be provided. Possible values are: `ah`, `dccp`, `egp`, `esp`, `gre`, `icmp`, `igmp`, `ipip`, `ipv6-encap`, `ipv6-frag`, `ipv6-icmp`, `ipv6-nonxt`, `ipv6-opts`, `ipv6-route`, `ospf`, `pgm`, `rsvp`, `sctp`, `tcp`, `udp`, `udplite`, `vrrp`. +func (o SecurityGroupRuleProtocolOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityGroupRuleProtocol) *string { return v.Name }).(pulumi.StringPtrOutput) } -// If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). -func (o OpensearchInstanceParametersOutput) Graphite() pulumi.StringPtrOutput { - return o.ApplyT(func(v OpensearchInstanceParameters) *string { return v.Graphite }).(pulumi.StringPtrOutput) +// The protocol number which the rule should match. Either `name` or `number` must be provided. +func (o SecurityGroupRuleProtocolOutput) Number() pulumi.IntPtrOutput { + return o.ApplyT(func(v SecurityGroupRuleProtocol) *int { return v.Number }).(pulumi.IntPtrOutput) } -// The garbage collector to use for OpenSearch. -func (o OpensearchInstanceParametersOutput) JavaGarbageCollector() pulumi.StringPtrOutput { - return o.ApplyT(func(v OpensearchInstanceParameters) *string { return v.JavaGarbageCollector }).(pulumi.StringPtrOutput) +type SecurityGroupRuleProtocolPtrOutput struct{ *pulumi.OutputState } + +func (SecurityGroupRuleProtocolPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityGroupRuleProtocol)(nil)).Elem() } -// The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. -func (o OpensearchInstanceParametersOutput) JavaHeapspace() pulumi.IntPtrOutput { - return o.ApplyT(func(v OpensearchInstanceParameters) *int { return v.JavaHeapspace }).(pulumi.IntPtrOutput) +func (o SecurityGroupRuleProtocolPtrOutput) ToSecurityGroupRuleProtocolPtrOutput() SecurityGroupRuleProtocolPtrOutput { + return o } -// The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. -func (o OpensearchInstanceParametersOutput) JavaMaxmetaspace() pulumi.IntPtrOutput { - return o.ApplyT(func(v OpensearchInstanceParameters) *int { return v.JavaMaxmetaspace }).(pulumi.IntPtrOutput) +func (o SecurityGroupRuleProtocolPtrOutput) ToSecurityGroupRuleProtocolPtrOutputWithContext(ctx context.Context) SecurityGroupRuleProtocolPtrOutput { + return o } -// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. -func (o OpensearchInstanceParametersOutput) MaxDiskThreshold() pulumi.IntPtrOutput { - return o.ApplyT(func(v OpensearchInstanceParameters) *int { return v.MaxDiskThreshold }).(pulumi.IntPtrOutput) +func (o SecurityGroupRuleProtocolPtrOutput) Elem() SecurityGroupRuleProtocolOutput { + return o.ApplyT(func(v *SecurityGroupRuleProtocol) SecurityGroupRuleProtocol { + if v != nil { + return *v + } + var ret SecurityGroupRuleProtocol + return ret + }).(SecurityGroupRuleProtocolOutput) } -// The frequency in seconds at which metrics are emitted (in seconds). -func (o OpensearchInstanceParametersOutput) MetricsFrequency() pulumi.IntPtrOutput { - return o.ApplyT(func(v OpensearchInstanceParameters) *int { return v.MetricsFrequency }).(pulumi.IntPtrOutput) +// The protocol name which the rule should match. Either `name` or `number` must be provided. Possible values are: `ah`, `dccp`, `egp`, `esp`, `gre`, `icmp`, `igmp`, `ipip`, `ipv6-encap`, `ipv6-frag`, `ipv6-icmp`, `ipv6-nonxt`, `ipv6-opts`, `ipv6-route`, `ospf`, `pgm`, `rsvp`, `sctp`, `tcp`, `udp`, `udplite`, `vrrp`. +func (o SecurityGroupRuleProtocolPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityGroupRuleProtocol) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) } -// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. -func (o OpensearchInstanceParametersOutput) MetricsPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v OpensearchInstanceParameters) *string { return v.MetricsPrefix }).(pulumi.StringPtrOutput) +// The protocol number which the rule should match. Either `name` or `number` must be provided. +func (o SecurityGroupRuleProtocolPtrOutput) Number() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityGroupRuleProtocol) *int { + if v == nil { + return nil + } + return v.Number + }).(pulumi.IntPtrOutput) } -// The ID of the STACKIT monitoring instance. -func (o OpensearchInstanceParametersOutput) MonitoringInstanceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v OpensearchInstanceParameters) *string { return v.MonitoringInstanceId }).(pulumi.StringPtrOutput) +type ServerBackupScheduleBackupProperties struct { + Name string `pulumi:"name"` + RetentionPeriod int `pulumi:"retentionPeriod"` + VolumeIds []string `pulumi:"volumeIds"` } -// 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. -func (o OpensearchInstanceParametersOutput) Plugins() pulumi.StringArrayOutput { - return o.ApplyT(func(v OpensearchInstanceParameters) []string { return v.Plugins }).(pulumi.StringArrayOutput) +// ServerBackupScheduleBackupPropertiesInput is an input type that accepts ServerBackupScheduleBackupPropertiesArgs and ServerBackupScheduleBackupPropertiesOutput values. +// You can construct a concrete instance of `ServerBackupScheduleBackupPropertiesInput` via: +// +// ServerBackupScheduleBackupPropertiesArgs{...} +type ServerBackupScheduleBackupPropertiesInput interface { + pulumi.Input + + ToServerBackupScheduleBackupPropertiesOutput() ServerBackupScheduleBackupPropertiesOutput + ToServerBackupScheduleBackupPropertiesOutputWithContext(context.Context) ServerBackupScheduleBackupPropertiesOutput } -// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. -func (o OpensearchInstanceParametersOutput) SgwAcl() pulumi.StringPtrOutput { - return o.ApplyT(func(v OpensearchInstanceParameters) *string { return v.SgwAcl }).(pulumi.StringPtrOutput) +type ServerBackupScheduleBackupPropertiesArgs struct { + Name pulumi.StringInput `pulumi:"name"` + RetentionPeriod pulumi.IntInput `pulumi:"retentionPeriod"` + VolumeIds pulumi.StringArrayInput `pulumi:"volumeIds"` +} + +func (ServerBackupScheduleBackupPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServerBackupScheduleBackupProperties)(nil)).Elem() +} + +func (i ServerBackupScheduleBackupPropertiesArgs) ToServerBackupScheduleBackupPropertiesOutput() ServerBackupScheduleBackupPropertiesOutput { + return i.ToServerBackupScheduleBackupPropertiesOutputWithContext(context.Background()) +} + +func (i ServerBackupScheduleBackupPropertiesArgs) ToServerBackupScheduleBackupPropertiesOutputWithContext(ctx context.Context) ServerBackupScheduleBackupPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerBackupScheduleBackupPropertiesOutput) +} + +func (i ServerBackupScheduleBackupPropertiesArgs) ToServerBackupScheduleBackupPropertiesPtrOutput() ServerBackupScheduleBackupPropertiesPtrOutput { + return i.ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(context.Background()) +} + +func (i ServerBackupScheduleBackupPropertiesArgs) ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(ctx context.Context) ServerBackupScheduleBackupPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerBackupScheduleBackupPropertiesOutput).ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(ctx) +} + +// ServerBackupScheduleBackupPropertiesPtrInput is an input type that accepts ServerBackupScheduleBackupPropertiesArgs, ServerBackupScheduleBackupPropertiesPtr and ServerBackupScheduleBackupPropertiesPtrOutput values. +// You can construct a concrete instance of `ServerBackupScheduleBackupPropertiesPtrInput` via: +// +// ServerBackupScheduleBackupPropertiesArgs{...} +// +// or: +// +// nil +type ServerBackupScheduleBackupPropertiesPtrInput interface { + pulumi.Input + + ToServerBackupScheduleBackupPropertiesPtrOutput() ServerBackupScheduleBackupPropertiesPtrOutput + ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(context.Context) ServerBackupScheduleBackupPropertiesPtrOutput +} + +type serverBackupScheduleBackupPropertiesPtrType ServerBackupScheduleBackupPropertiesArgs + +func ServerBackupScheduleBackupPropertiesPtr(v *ServerBackupScheduleBackupPropertiesArgs) ServerBackupScheduleBackupPropertiesPtrInput { + return (*serverBackupScheduleBackupPropertiesPtrType)(v) } -// List of syslog servers to send logs to. -func (o OpensearchInstanceParametersOutput) Syslogs() pulumi.StringArrayOutput { - return o.ApplyT(func(v OpensearchInstanceParameters) []string { return v.Syslogs }).(pulumi.StringArrayOutput) +func (*serverBackupScheduleBackupPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServerBackupScheduleBackupProperties)(nil)).Elem() } -// List of TLS ciphers to use. -func (o OpensearchInstanceParametersOutput) TlsCiphers() pulumi.StringArrayOutput { - return o.ApplyT(func(v OpensearchInstanceParameters) []string { return v.TlsCiphers }).(pulumi.StringArrayOutput) +func (i *serverBackupScheduleBackupPropertiesPtrType) ToServerBackupScheduleBackupPropertiesPtrOutput() ServerBackupScheduleBackupPropertiesPtrOutput { + return i.ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(context.Background()) } -// The TLS protocol to use. -func (o OpensearchInstanceParametersOutput) TlsProtocols() pulumi.StringArrayOutput { - return o.ApplyT(func(v OpensearchInstanceParameters) []string { return v.TlsProtocols }).(pulumi.StringArrayOutput) +func (i *serverBackupScheduleBackupPropertiesPtrType) ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(ctx context.Context) ServerBackupScheduleBackupPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerBackupScheduleBackupPropertiesPtrOutput) } -type OpensearchInstanceParametersPtrOutput struct{ *pulumi.OutputState } +type ServerBackupScheduleBackupPropertiesOutput struct{ *pulumi.OutputState } -func (OpensearchInstanceParametersPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**OpensearchInstanceParameters)(nil)).Elem() +func (ServerBackupScheduleBackupPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServerBackupScheduleBackupProperties)(nil)).Elem() } -func (o OpensearchInstanceParametersPtrOutput) ToOpensearchInstanceParametersPtrOutput() OpensearchInstanceParametersPtrOutput { +func (o ServerBackupScheduleBackupPropertiesOutput) ToServerBackupScheduleBackupPropertiesOutput() ServerBackupScheduleBackupPropertiesOutput { return o } -func (o OpensearchInstanceParametersPtrOutput) ToOpensearchInstanceParametersPtrOutputWithContext(ctx context.Context) OpensearchInstanceParametersPtrOutput { +func (o ServerBackupScheduleBackupPropertiesOutput) ToServerBackupScheduleBackupPropertiesOutputWithContext(ctx context.Context) ServerBackupScheduleBackupPropertiesOutput { return o } -func (o OpensearchInstanceParametersPtrOutput) Elem() OpensearchInstanceParametersOutput { - return o.ApplyT(func(v *OpensearchInstanceParameters) OpensearchInstanceParameters { - if v != nil { - return *v - } - var ret OpensearchInstanceParameters - return ret - }).(OpensearchInstanceParametersOutput) -} - -// Enable monitoring. -func (o OpensearchInstanceParametersPtrOutput) EnableMonitoring() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *OpensearchInstanceParameters) *bool { - if v == nil { - return nil - } - return v.EnableMonitoring - }).(pulumi.BoolPtrOutput) +func (o ServerBackupScheduleBackupPropertiesOutput) ToServerBackupScheduleBackupPropertiesPtrOutput() ServerBackupScheduleBackupPropertiesPtrOutput { + return o.ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(context.Background()) } -// If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). -func (o OpensearchInstanceParametersPtrOutput) Graphite() pulumi.StringPtrOutput { - return o.ApplyT(func(v *OpensearchInstanceParameters) *string { - if v == nil { - return nil - } - return v.Graphite - }).(pulumi.StringPtrOutput) +func (o ServerBackupScheduleBackupPropertiesOutput) ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(ctx context.Context) ServerBackupScheduleBackupPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServerBackupScheduleBackupProperties) *ServerBackupScheduleBackupProperties { + return &v + }).(ServerBackupScheduleBackupPropertiesPtrOutput) } -// The garbage collector to use for OpenSearch. -func (o OpensearchInstanceParametersPtrOutput) JavaGarbageCollector() pulumi.StringPtrOutput { - return o.ApplyT(func(v *OpensearchInstanceParameters) *string { - if v == nil { - return nil - } - return v.JavaGarbageCollector - }).(pulumi.StringPtrOutput) +func (o ServerBackupScheduleBackupPropertiesOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ServerBackupScheduleBackupProperties) string { return v.Name }).(pulumi.StringOutput) } -// The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. -func (o OpensearchInstanceParametersPtrOutput) JavaHeapspace() pulumi.IntPtrOutput { - return o.ApplyT(func(v *OpensearchInstanceParameters) *int { - if v == nil { - return nil - } - return v.JavaHeapspace - }).(pulumi.IntPtrOutput) +func (o ServerBackupScheduleBackupPropertiesOutput) RetentionPeriod() pulumi.IntOutput { + return o.ApplyT(func(v ServerBackupScheduleBackupProperties) int { return v.RetentionPeriod }).(pulumi.IntOutput) } -// The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. -func (o OpensearchInstanceParametersPtrOutput) JavaMaxmetaspace() pulumi.IntPtrOutput { - return o.ApplyT(func(v *OpensearchInstanceParameters) *int { - if v == nil { - return nil - } - return v.JavaMaxmetaspace - }).(pulumi.IntPtrOutput) +func (o ServerBackupScheduleBackupPropertiesOutput) VolumeIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServerBackupScheduleBackupProperties) []string { return v.VolumeIds }).(pulumi.StringArrayOutput) } -// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. -func (o OpensearchInstanceParametersPtrOutput) MaxDiskThreshold() pulumi.IntPtrOutput { - return o.ApplyT(func(v *OpensearchInstanceParameters) *int { - if v == nil { - return nil - } - return v.MaxDiskThreshold - }).(pulumi.IntPtrOutput) -} +type ServerBackupScheduleBackupPropertiesPtrOutput struct{ *pulumi.OutputState } -// The frequency in seconds at which metrics are emitted (in seconds). -func (o OpensearchInstanceParametersPtrOutput) MetricsFrequency() pulumi.IntPtrOutput { - return o.ApplyT(func(v *OpensearchInstanceParameters) *int { - if v == nil { - return nil - } - return v.MetricsFrequency - }).(pulumi.IntPtrOutput) +func (ServerBackupScheduleBackupPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServerBackupScheduleBackupProperties)(nil)).Elem() } -// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. -func (o OpensearchInstanceParametersPtrOutput) MetricsPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *OpensearchInstanceParameters) *string { - if v == nil { - return nil - } - return v.MetricsPrefix - }).(pulumi.StringPtrOutput) +func (o ServerBackupScheduleBackupPropertiesPtrOutput) ToServerBackupScheduleBackupPropertiesPtrOutput() ServerBackupScheduleBackupPropertiesPtrOutput { + return o } -// The ID of the STACKIT monitoring instance. -func (o OpensearchInstanceParametersPtrOutput) MonitoringInstanceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *OpensearchInstanceParameters) *string { - if v == nil { - return nil - } - return v.MonitoringInstanceId - }).(pulumi.StringPtrOutput) +func (o ServerBackupScheduleBackupPropertiesPtrOutput) ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(ctx context.Context) ServerBackupScheduleBackupPropertiesPtrOutput { + return o } -// 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. -func (o OpensearchInstanceParametersPtrOutput) Plugins() pulumi.StringArrayOutput { - return o.ApplyT(func(v *OpensearchInstanceParameters) []string { - if v == nil { - return nil +func (o ServerBackupScheduleBackupPropertiesPtrOutput) Elem() ServerBackupScheduleBackupPropertiesOutput { + return o.ApplyT(func(v *ServerBackupScheduleBackupProperties) ServerBackupScheduleBackupProperties { + if v != nil { + return *v } - return v.Plugins - }).(pulumi.StringArrayOutput) + var ret ServerBackupScheduleBackupProperties + return ret + }).(ServerBackupScheduleBackupPropertiesOutput) } -// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. -func (o OpensearchInstanceParametersPtrOutput) SgwAcl() pulumi.StringPtrOutput { - return o.ApplyT(func(v *OpensearchInstanceParameters) *string { +func (o ServerBackupScheduleBackupPropertiesPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServerBackupScheduleBackupProperties) *string { if v == nil { return nil } - return v.SgwAcl + return &v.Name }).(pulumi.StringPtrOutput) } -// List of syslog servers to send logs to. -func (o OpensearchInstanceParametersPtrOutput) Syslogs() pulumi.StringArrayOutput { - return o.ApplyT(func(v *OpensearchInstanceParameters) []string { - if v == nil { - return nil - } - return v.Syslogs - }).(pulumi.StringArrayOutput) -} - -// List of TLS ciphers to use. -func (o OpensearchInstanceParametersPtrOutput) TlsCiphers() pulumi.StringArrayOutput { - return o.ApplyT(func(v *OpensearchInstanceParameters) []string { +func (o ServerBackupScheduleBackupPropertiesPtrOutput) RetentionPeriod() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServerBackupScheduleBackupProperties) *int { if v == nil { return nil } - return v.TlsCiphers - }).(pulumi.StringArrayOutput) + return &v.RetentionPeriod + }).(pulumi.IntPtrOutput) } -// The TLS protocol to use. -func (o OpensearchInstanceParametersPtrOutput) TlsProtocols() pulumi.StringArrayOutput { - return o.ApplyT(func(v *OpensearchInstanceParameters) []string { +func (o ServerBackupScheduleBackupPropertiesPtrOutput) VolumeIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServerBackupScheduleBackupProperties) []string { if v == nil { return nil } - return v.TlsProtocols + return v.VolumeIds }).(pulumi.StringArrayOutput) } -type PostgresflexInstanceFlavor struct { - Cpu int `pulumi:"cpu"` - Description *string `pulumi:"description"` - Id *string `pulumi:"id"` - Ram int `pulumi:"ram"` +type ServerBootVolume struct { + // Delete the volume during the termination of the server. Only allowed when `sourceType` is `image`. + DeleteOnTermination *bool `pulumi:"deleteOnTermination"` + // The ID of the boot volume + Id *string `pulumi:"id"` + // The performance class of the server. + PerformanceClass *string `pulumi:"performanceClass"` + // The size of the boot volume in GB. Must be provided when `sourceType` is `image`. + Size *int `pulumi:"size"` + // The ID of the source, either image ID or volume ID + SourceId string `pulumi:"sourceId"` + // The type of the source. Possible values are: `volume`, `image`. + SourceType string `pulumi:"sourceType"` } -// PostgresflexInstanceFlavorInput is an input type that accepts PostgresflexInstanceFlavorArgs and PostgresflexInstanceFlavorOutput values. -// You can construct a concrete instance of `PostgresflexInstanceFlavorInput` via: +// ServerBootVolumeInput is an input type that accepts ServerBootVolumeArgs and ServerBootVolumeOutput values. +// You can construct a concrete instance of `ServerBootVolumeInput` via: // -// PostgresflexInstanceFlavorArgs{...} -type PostgresflexInstanceFlavorInput interface { +// ServerBootVolumeArgs{...} +type ServerBootVolumeInput interface { pulumi.Input - ToPostgresflexInstanceFlavorOutput() PostgresflexInstanceFlavorOutput - ToPostgresflexInstanceFlavorOutputWithContext(context.Context) PostgresflexInstanceFlavorOutput + ToServerBootVolumeOutput() ServerBootVolumeOutput + ToServerBootVolumeOutputWithContext(context.Context) ServerBootVolumeOutput } -type PostgresflexInstanceFlavorArgs struct { - Cpu pulumi.IntInput `pulumi:"cpu"` - Description pulumi.StringPtrInput `pulumi:"description"` - Id pulumi.StringPtrInput `pulumi:"id"` - Ram pulumi.IntInput `pulumi:"ram"` +type ServerBootVolumeArgs struct { + // Delete the volume during the termination of the server. Only allowed when `sourceType` is `image`. + DeleteOnTermination pulumi.BoolPtrInput `pulumi:"deleteOnTermination"` + // The ID of the boot volume + Id pulumi.StringPtrInput `pulumi:"id"` + // The performance class of the server. + PerformanceClass pulumi.StringPtrInput `pulumi:"performanceClass"` + // The size of the boot volume in GB. Must be provided when `sourceType` is `image`. + Size pulumi.IntPtrInput `pulumi:"size"` + // The ID of the source, either image ID or volume ID + SourceId pulumi.StringInput `pulumi:"sourceId"` + // The type of the source. Possible values are: `volume`, `image`. + SourceType pulumi.StringInput `pulumi:"sourceType"` } -func (PostgresflexInstanceFlavorArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PostgresflexInstanceFlavor)(nil)).Elem() +func (ServerBootVolumeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServerBootVolume)(nil)).Elem() } -func (i PostgresflexInstanceFlavorArgs) ToPostgresflexInstanceFlavorOutput() PostgresflexInstanceFlavorOutput { - return i.ToPostgresflexInstanceFlavorOutputWithContext(context.Background()) +func (i ServerBootVolumeArgs) ToServerBootVolumeOutput() ServerBootVolumeOutput { + return i.ToServerBootVolumeOutputWithContext(context.Background()) } -func (i PostgresflexInstanceFlavorArgs) ToPostgresflexInstanceFlavorOutputWithContext(ctx context.Context) PostgresflexInstanceFlavorOutput { - return pulumi.ToOutputWithContext(ctx, i).(PostgresflexInstanceFlavorOutput) +func (i ServerBootVolumeArgs) ToServerBootVolumeOutputWithContext(ctx context.Context) ServerBootVolumeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerBootVolumeOutput) } -func (i PostgresflexInstanceFlavorArgs) ToPostgresflexInstanceFlavorPtrOutput() PostgresflexInstanceFlavorPtrOutput { - return i.ToPostgresflexInstanceFlavorPtrOutputWithContext(context.Background()) +func (i ServerBootVolumeArgs) ToServerBootVolumePtrOutput() ServerBootVolumePtrOutput { + return i.ToServerBootVolumePtrOutputWithContext(context.Background()) } -func (i PostgresflexInstanceFlavorArgs) ToPostgresflexInstanceFlavorPtrOutputWithContext(ctx context.Context) PostgresflexInstanceFlavorPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PostgresflexInstanceFlavorOutput).ToPostgresflexInstanceFlavorPtrOutputWithContext(ctx) +func (i ServerBootVolumeArgs) ToServerBootVolumePtrOutputWithContext(ctx context.Context) ServerBootVolumePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerBootVolumeOutput).ToServerBootVolumePtrOutputWithContext(ctx) } -// PostgresflexInstanceFlavorPtrInput is an input type that accepts PostgresflexInstanceFlavorArgs, PostgresflexInstanceFlavorPtr and PostgresflexInstanceFlavorPtrOutput values. -// You can construct a concrete instance of `PostgresflexInstanceFlavorPtrInput` via: +// ServerBootVolumePtrInput is an input type that accepts ServerBootVolumeArgs, ServerBootVolumePtr and ServerBootVolumePtrOutput values. +// You can construct a concrete instance of `ServerBootVolumePtrInput` via: // -// PostgresflexInstanceFlavorArgs{...} +// ServerBootVolumeArgs{...} // // or: // // nil -type PostgresflexInstanceFlavorPtrInput interface { +type ServerBootVolumePtrInput interface { pulumi.Input - ToPostgresflexInstanceFlavorPtrOutput() PostgresflexInstanceFlavorPtrOutput - ToPostgresflexInstanceFlavorPtrOutputWithContext(context.Context) PostgresflexInstanceFlavorPtrOutput + ToServerBootVolumePtrOutput() ServerBootVolumePtrOutput + ToServerBootVolumePtrOutputWithContext(context.Context) ServerBootVolumePtrOutput } -type postgresflexInstanceFlavorPtrType PostgresflexInstanceFlavorArgs +type serverBootVolumePtrType ServerBootVolumeArgs -func PostgresflexInstanceFlavorPtr(v *PostgresflexInstanceFlavorArgs) PostgresflexInstanceFlavorPtrInput { - return (*postgresflexInstanceFlavorPtrType)(v) +func ServerBootVolumePtr(v *ServerBootVolumeArgs) ServerBootVolumePtrInput { + return (*serverBootVolumePtrType)(v) } -func (*postgresflexInstanceFlavorPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**PostgresflexInstanceFlavor)(nil)).Elem() +func (*serverBootVolumePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServerBootVolume)(nil)).Elem() } -func (i *postgresflexInstanceFlavorPtrType) ToPostgresflexInstanceFlavorPtrOutput() PostgresflexInstanceFlavorPtrOutput { - return i.ToPostgresflexInstanceFlavorPtrOutputWithContext(context.Background()) +func (i *serverBootVolumePtrType) ToServerBootVolumePtrOutput() ServerBootVolumePtrOutput { + return i.ToServerBootVolumePtrOutputWithContext(context.Background()) } -func (i *postgresflexInstanceFlavorPtrType) ToPostgresflexInstanceFlavorPtrOutputWithContext(ctx context.Context) PostgresflexInstanceFlavorPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PostgresflexInstanceFlavorPtrOutput) +func (i *serverBootVolumePtrType) ToServerBootVolumePtrOutputWithContext(ctx context.Context) ServerBootVolumePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerBootVolumePtrOutput) } -type PostgresflexInstanceFlavorOutput struct{ *pulumi.OutputState } +type ServerBootVolumeOutput struct{ *pulumi.OutputState } -func (PostgresflexInstanceFlavorOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PostgresflexInstanceFlavor)(nil)).Elem() +func (ServerBootVolumeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServerBootVolume)(nil)).Elem() } -func (o PostgresflexInstanceFlavorOutput) ToPostgresflexInstanceFlavorOutput() PostgresflexInstanceFlavorOutput { +func (o ServerBootVolumeOutput) ToServerBootVolumeOutput() ServerBootVolumeOutput { return o } -func (o PostgresflexInstanceFlavorOutput) ToPostgresflexInstanceFlavorOutputWithContext(ctx context.Context) PostgresflexInstanceFlavorOutput { +func (o ServerBootVolumeOutput) ToServerBootVolumeOutputWithContext(ctx context.Context) ServerBootVolumeOutput { return o } -func (o PostgresflexInstanceFlavorOutput) ToPostgresflexInstanceFlavorPtrOutput() PostgresflexInstanceFlavorPtrOutput { - return o.ToPostgresflexInstanceFlavorPtrOutputWithContext(context.Background()) +func (o ServerBootVolumeOutput) ToServerBootVolumePtrOutput() ServerBootVolumePtrOutput { + return o.ToServerBootVolumePtrOutputWithContext(context.Background()) } -func (o PostgresflexInstanceFlavorOutput) ToPostgresflexInstanceFlavorPtrOutputWithContext(ctx context.Context) PostgresflexInstanceFlavorPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v PostgresflexInstanceFlavor) *PostgresflexInstanceFlavor { +func (o ServerBootVolumeOutput) ToServerBootVolumePtrOutputWithContext(ctx context.Context) ServerBootVolumePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServerBootVolume) *ServerBootVolume { return &v - }).(PostgresflexInstanceFlavorPtrOutput) + }).(ServerBootVolumePtrOutput) } -func (o PostgresflexInstanceFlavorOutput) Cpu() pulumi.IntOutput { - return o.ApplyT(func(v PostgresflexInstanceFlavor) int { return v.Cpu }).(pulumi.IntOutput) +// Delete the volume during the termination of the server. Only allowed when `sourceType` is `image`. +func (o ServerBootVolumeOutput) DeleteOnTermination() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ServerBootVolume) *bool { return v.DeleteOnTermination }).(pulumi.BoolPtrOutput) } -func (o PostgresflexInstanceFlavorOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v PostgresflexInstanceFlavor) *string { return v.Description }).(pulumi.StringPtrOutput) +// The ID of the boot volume +func (o ServerBootVolumeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServerBootVolume) *string { return v.Id }).(pulumi.StringPtrOutput) } -func (o PostgresflexInstanceFlavorOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v PostgresflexInstanceFlavor) *string { return v.Id }).(pulumi.StringPtrOutput) +// The performance class of the server. +func (o ServerBootVolumeOutput) PerformanceClass() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServerBootVolume) *string { return v.PerformanceClass }).(pulumi.StringPtrOutput) } -func (o PostgresflexInstanceFlavorOutput) Ram() pulumi.IntOutput { - return o.ApplyT(func(v PostgresflexInstanceFlavor) int { return v.Ram }).(pulumi.IntOutput) +// The size of the boot volume in GB. Must be provided when `sourceType` is `image`. +func (o ServerBootVolumeOutput) Size() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServerBootVolume) *int { return v.Size }).(pulumi.IntPtrOutput) } -type PostgresflexInstanceFlavorPtrOutput struct{ *pulumi.OutputState } +// The ID of the source, either image ID or volume ID +func (o ServerBootVolumeOutput) SourceId() pulumi.StringOutput { + return o.ApplyT(func(v ServerBootVolume) string { return v.SourceId }).(pulumi.StringOutput) +} -func (PostgresflexInstanceFlavorPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PostgresflexInstanceFlavor)(nil)).Elem() +// The type of the source. Possible values are: `volume`, `image`. +func (o ServerBootVolumeOutput) SourceType() pulumi.StringOutput { + return o.ApplyT(func(v ServerBootVolume) string { return v.SourceType }).(pulumi.StringOutput) } -func (o PostgresflexInstanceFlavorPtrOutput) ToPostgresflexInstanceFlavorPtrOutput() PostgresflexInstanceFlavorPtrOutput { +type ServerBootVolumePtrOutput struct{ *pulumi.OutputState } + +func (ServerBootVolumePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServerBootVolume)(nil)).Elem() +} + +func (o ServerBootVolumePtrOutput) ToServerBootVolumePtrOutput() ServerBootVolumePtrOutput { return o } -func (o PostgresflexInstanceFlavorPtrOutput) ToPostgresflexInstanceFlavorPtrOutputWithContext(ctx context.Context) PostgresflexInstanceFlavorPtrOutput { +func (o ServerBootVolumePtrOutput) ToServerBootVolumePtrOutputWithContext(ctx context.Context) ServerBootVolumePtrOutput { return o } -func (o PostgresflexInstanceFlavorPtrOutput) Elem() PostgresflexInstanceFlavorOutput { - return o.ApplyT(func(v *PostgresflexInstanceFlavor) PostgresflexInstanceFlavor { +func (o ServerBootVolumePtrOutput) Elem() ServerBootVolumeOutput { + return o.ApplyT(func(v *ServerBootVolume) ServerBootVolume { if v != nil { return *v } - var ret PostgresflexInstanceFlavor + var ret ServerBootVolume return ret - }).(PostgresflexInstanceFlavorOutput) + }).(ServerBootVolumeOutput) } -func (o PostgresflexInstanceFlavorPtrOutput) Cpu() pulumi.IntPtrOutput { - return o.ApplyT(func(v *PostgresflexInstanceFlavor) *int { +// Delete the volume during the termination of the server. Only allowed when `sourceType` is `image`. +func (o ServerBootVolumePtrOutput) DeleteOnTermination() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ServerBootVolume) *bool { if v == nil { return nil } - return &v.Cpu - }).(pulumi.IntPtrOutput) + return v.DeleteOnTermination + }).(pulumi.BoolPtrOutput) } -func (o PostgresflexInstanceFlavorPtrOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PostgresflexInstanceFlavor) *string { +// The ID of the boot volume +func (o ServerBootVolumePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServerBootVolume) *string { if v == nil { return nil } - return v.Description + return v.Id }).(pulumi.StringPtrOutput) } -func (o PostgresflexInstanceFlavorPtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PostgresflexInstanceFlavor) *string { +// The performance class of the server. +func (o ServerBootVolumePtrOutput) PerformanceClass() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServerBootVolume) *string { if v == nil { return nil } - return v.Id + return v.PerformanceClass }).(pulumi.StringPtrOutput) } -func (o PostgresflexInstanceFlavorPtrOutput) Ram() pulumi.IntPtrOutput { - return o.ApplyT(func(v *PostgresflexInstanceFlavor) *int { +// The size of the boot volume in GB. Must be provided when `sourceType` is `image`. +func (o ServerBootVolumePtrOutput) Size() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServerBootVolume) *int { if v == nil { return nil } - return &v.Ram + return v.Size }).(pulumi.IntPtrOutput) } -type PostgresflexInstanceStorage struct { - Class string `pulumi:"class"` - Size int `pulumi:"size"` -} - -// PostgresflexInstanceStorageInput is an input type that accepts PostgresflexInstanceStorageArgs and PostgresflexInstanceStorageOutput values. -// You can construct a concrete instance of `PostgresflexInstanceStorageInput` via: -// -// PostgresflexInstanceStorageArgs{...} -type PostgresflexInstanceStorageInput interface { - pulumi.Input - - ToPostgresflexInstanceStorageOutput() PostgresflexInstanceStorageOutput - ToPostgresflexInstanceStorageOutputWithContext(context.Context) PostgresflexInstanceStorageOutput -} - -type PostgresflexInstanceStorageArgs struct { - Class pulumi.StringInput `pulumi:"class"` - Size pulumi.IntInput `pulumi:"size"` -} - -func (PostgresflexInstanceStorageArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PostgresflexInstanceStorage)(nil)).Elem() -} - -func (i PostgresflexInstanceStorageArgs) ToPostgresflexInstanceStorageOutput() PostgresflexInstanceStorageOutput { - return i.ToPostgresflexInstanceStorageOutputWithContext(context.Background()) -} - -func (i PostgresflexInstanceStorageArgs) ToPostgresflexInstanceStorageOutputWithContext(ctx context.Context) PostgresflexInstanceStorageOutput { - return pulumi.ToOutputWithContext(ctx, i).(PostgresflexInstanceStorageOutput) +// The ID of the source, either image ID or volume ID +func (o ServerBootVolumePtrOutput) SourceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServerBootVolume) *string { + if v == nil { + return nil + } + return &v.SourceId + }).(pulumi.StringPtrOutput) } -func (i PostgresflexInstanceStorageArgs) ToPostgresflexInstanceStoragePtrOutput() PostgresflexInstanceStoragePtrOutput { - return i.ToPostgresflexInstanceStoragePtrOutputWithContext(context.Background()) +// The type of the source. Possible values are: `volume`, `image`. +func (o ServerBootVolumePtrOutput) SourceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServerBootVolume) *string { + if v == nil { + return nil + } + return &v.SourceType + }).(pulumi.StringPtrOutput) } -func (i PostgresflexInstanceStorageArgs) ToPostgresflexInstanceStoragePtrOutputWithContext(ctx context.Context) PostgresflexInstanceStoragePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PostgresflexInstanceStorageOutput).ToPostgresflexInstanceStoragePtrOutputWithContext(ctx) +type SfsExportPolicyRule struct { + // Description of the Rule + Description *string `pulumi:"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). + IpAcls []string `pulumi:"ipAcls"` + // 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 + Order int `pulumi:"order"` + // Flag to indicate if client IPs matching this rule can only mount the share in read only mode + ReadOnly *bool `pulumi:"readOnly"` + // Flag to honor set UUID + SetUuid *bool `pulumi:"setUuid"` + // Flag to indicate if client IPs matching this rule have root access on the Share + SuperUser *bool `pulumi:"superUser"` } -// PostgresflexInstanceStoragePtrInput is an input type that accepts PostgresflexInstanceStorageArgs, PostgresflexInstanceStoragePtr and PostgresflexInstanceStoragePtrOutput values. -// You can construct a concrete instance of `PostgresflexInstanceStoragePtrInput` via: -// -// PostgresflexInstanceStorageArgs{...} -// -// or: +// SfsExportPolicyRuleInput is an input type that accepts SfsExportPolicyRuleArgs and SfsExportPolicyRuleOutput values. +// You can construct a concrete instance of `SfsExportPolicyRuleInput` via: // -// nil -type PostgresflexInstanceStoragePtrInput interface { - pulumi.Input - - ToPostgresflexInstanceStoragePtrOutput() PostgresflexInstanceStoragePtrOutput - ToPostgresflexInstanceStoragePtrOutputWithContext(context.Context) PostgresflexInstanceStoragePtrOutput -} - -type postgresflexInstanceStoragePtrType PostgresflexInstanceStorageArgs - -func PostgresflexInstanceStoragePtr(v *PostgresflexInstanceStorageArgs) PostgresflexInstanceStoragePtrInput { - return (*postgresflexInstanceStoragePtrType)(v) -} - -func (*postgresflexInstanceStoragePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**PostgresflexInstanceStorage)(nil)).Elem() -} - -func (i *postgresflexInstanceStoragePtrType) ToPostgresflexInstanceStoragePtrOutput() PostgresflexInstanceStoragePtrOutput { - return i.ToPostgresflexInstanceStoragePtrOutputWithContext(context.Background()) -} - -func (i *postgresflexInstanceStoragePtrType) ToPostgresflexInstanceStoragePtrOutputWithContext(ctx context.Context) PostgresflexInstanceStoragePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PostgresflexInstanceStoragePtrOutput) -} - -type PostgresflexInstanceStorageOutput struct{ *pulumi.OutputState } - -func (PostgresflexInstanceStorageOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PostgresflexInstanceStorage)(nil)).Elem() -} - -func (o PostgresflexInstanceStorageOutput) ToPostgresflexInstanceStorageOutput() PostgresflexInstanceStorageOutput { - return o -} - -func (o PostgresflexInstanceStorageOutput) ToPostgresflexInstanceStorageOutputWithContext(ctx context.Context) PostgresflexInstanceStorageOutput { - return o -} - -func (o PostgresflexInstanceStorageOutput) ToPostgresflexInstanceStoragePtrOutput() PostgresflexInstanceStoragePtrOutput { - return o.ToPostgresflexInstanceStoragePtrOutputWithContext(context.Background()) -} - -func (o PostgresflexInstanceStorageOutput) ToPostgresflexInstanceStoragePtrOutputWithContext(ctx context.Context) PostgresflexInstanceStoragePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v PostgresflexInstanceStorage) *PostgresflexInstanceStorage { - return &v - }).(PostgresflexInstanceStoragePtrOutput) -} - -func (o PostgresflexInstanceStorageOutput) Class() pulumi.StringOutput { - return o.ApplyT(func(v PostgresflexInstanceStorage) string { return v.Class }).(pulumi.StringOutput) -} - -func (o PostgresflexInstanceStorageOutput) Size() pulumi.IntOutput { - return o.ApplyT(func(v PostgresflexInstanceStorage) int { return v.Size }).(pulumi.IntOutput) -} - -type PostgresflexInstanceStoragePtrOutput struct{ *pulumi.OutputState } - -func (PostgresflexInstanceStoragePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PostgresflexInstanceStorage)(nil)).Elem() -} - -func (o PostgresflexInstanceStoragePtrOutput) ToPostgresflexInstanceStoragePtrOutput() PostgresflexInstanceStoragePtrOutput { - return o -} +// SfsExportPolicyRuleArgs{...} +type SfsExportPolicyRuleInput interface { + pulumi.Input -func (o PostgresflexInstanceStoragePtrOutput) ToPostgresflexInstanceStoragePtrOutputWithContext(ctx context.Context) PostgresflexInstanceStoragePtrOutput { - return o + ToSfsExportPolicyRuleOutput() SfsExportPolicyRuleOutput + ToSfsExportPolicyRuleOutputWithContext(context.Context) SfsExportPolicyRuleOutput } -func (o PostgresflexInstanceStoragePtrOutput) Elem() PostgresflexInstanceStorageOutput { - return o.ApplyT(func(v *PostgresflexInstanceStorage) PostgresflexInstanceStorage { - if v != nil { - return *v - } - var ret PostgresflexInstanceStorage - return ret - }).(PostgresflexInstanceStorageOutput) +type SfsExportPolicyRuleArgs struct { + // Description of the Rule + Description pulumi.StringPtrInput `pulumi:"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). + IpAcls pulumi.StringArrayInput `pulumi:"ipAcls"` + // 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 + Order pulumi.IntInput `pulumi:"order"` + // Flag to indicate if client IPs matching this rule can only mount the share in read only mode + ReadOnly pulumi.BoolPtrInput `pulumi:"readOnly"` + // Flag to honor set UUID + SetUuid pulumi.BoolPtrInput `pulumi:"setUuid"` + // Flag to indicate if client IPs matching this rule have root access on the Share + SuperUser pulumi.BoolPtrInput `pulumi:"superUser"` } -func (o PostgresflexInstanceStoragePtrOutput) Class() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PostgresflexInstanceStorage) *string { - if v == nil { - return nil - } - return &v.Class - }).(pulumi.StringPtrOutput) +func (SfsExportPolicyRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SfsExportPolicyRule)(nil)).Elem() } -func (o PostgresflexInstanceStoragePtrOutput) Size() pulumi.IntPtrOutput { - return o.ApplyT(func(v *PostgresflexInstanceStorage) *int { - if v == nil { - return nil - } - return &v.Size - }).(pulumi.IntPtrOutput) +func (i SfsExportPolicyRuleArgs) ToSfsExportPolicyRuleOutput() SfsExportPolicyRuleOutput { + return i.ToSfsExportPolicyRuleOutputWithContext(context.Background()) } -type RabbitmqInstanceParameters struct { - // The timeout in milliseconds for the consumer. - ConsumerTimeout *int `pulumi:"consumerTimeout"` - // Enable monitoring. - EnableMonitoring *bool `pulumi:"enableMonitoring"` - // Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. - Graphite *string `pulumi:"graphite"` - // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. - MaxDiskThreshold *int `pulumi:"maxDiskThreshold"` - // The frequency in seconds at which metrics are emitted. - MetricsFrequency *int `pulumi:"metricsFrequency"` - // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key - MetricsPrefix *string `pulumi:"metricsPrefix"` - // The ID of the STACKIT monitoring instance. - MonitoringInstanceId *string `pulumi:"monitoringInstanceId"` - // List of plugins to install. Must be a supported plugin name. - Plugins []string `pulumi:"plugins"` - // List of roles to assign to the instance. - Roles []string `pulumi:"roles"` - // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. - SgwAcl *string `pulumi:"sgwAcl"` - // List of syslog servers to send logs to. - Syslogs []string `pulumi:"syslogs"` - // List of TLS ciphers to use. - TlsCiphers []string `pulumi:"tlsCiphers"` - // TLS protocol versions to use. - TlsProtocols []string `pulumi:"tlsProtocols"` +func (i SfsExportPolicyRuleArgs) ToSfsExportPolicyRuleOutputWithContext(ctx context.Context) SfsExportPolicyRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(SfsExportPolicyRuleOutput) } -// RabbitmqInstanceParametersInput is an input type that accepts RabbitmqInstanceParametersArgs and RabbitmqInstanceParametersOutput values. -// You can construct a concrete instance of `RabbitmqInstanceParametersInput` via: +// SfsExportPolicyRuleArrayInput is an input type that accepts SfsExportPolicyRuleArray and SfsExportPolicyRuleArrayOutput values. +// You can construct a concrete instance of `SfsExportPolicyRuleArrayInput` via: // -// RabbitmqInstanceParametersArgs{...} -type RabbitmqInstanceParametersInput interface { +// SfsExportPolicyRuleArray{ SfsExportPolicyRuleArgs{...} } +type SfsExportPolicyRuleArrayInput interface { pulumi.Input - ToRabbitmqInstanceParametersOutput() RabbitmqInstanceParametersOutput - ToRabbitmqInstanceParametersOutputWithContext(context.Context) RabbitmqInstanceParametersOutput + ToSfsExportPolicyRuleArrayOutput() SfsExportPolicyRuleArrayOutput + ToSfsExportPolicyRuleArrayOutputWithContext(context.Context) SfsExportPolicyRuleArrayOutput } -type RabbitmqInstanceParametersArgs struct { - // The timeout in milliseconds for the consumer. - ConsumerTimeout pulumi.IntPtrInput `pulumi:"consumerTimeout"` - // Enable monitoring. - EnableMonitoring pulumi.BoolPtrInput `pulumi:"enableMonitoring"` - // Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. - Graphite pulumi.StringPtrInput `pulumi:"graphite"` - // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. - MaxDiskThreshold pulumi.IntPtrInput `pulumi:"maxDiskThreshold"` - // The frequency in seconds at which metrics are emitted. - MetricsFrequency pulumi.IntPtrInput `pulumi:"metricsFrequency"` - // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key - MetricsPrefix pulumi.StringPtrInput `pulumi:"metricsPrefix"` - // The ID of the STACKIT monitoring instance. - MonitoringInstanceId pulumi.StringPtrInput `pulumi:"monitoringInstanceId"` - // List of plugins to install. Must be a supported plugin name. - Plugins pulumi.StringArrayInput `pulumi:"plugins"` - // List of roles to assign to the instance. - Roles pulumi.StringArrayInput `pulumi:"roles"` - // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. - SgwAcl pulumi.StringPtrInput `pulumi:"sgwAcl"` - // List of syslog servers to send logs to. - Syslogs pulumi.StringArrayInput `pulumi:"syslogs"` - // List of TLS ciphers to use. - TlsCiphers pulumi.StringArrayInput `pulumi:"tlsCiphers"` - // TLS protocol versions to use. - TlsProtocols pulumi.StringArrayInput `pulumi:"tlsProtocols"` -} +type SfsExportPolicyRuleArray []SfsExportPolicyRuleInput -func (RabbitmqInstanceParametersArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RabbitmqInstanceParameters)(nil)).Elem() +func (SfsExportPolicyRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SfsExportPolicyRule)(nil)).Elem() } -func (i RabbitmqInstanceParametersArgs) ToRabbitmqInstanceParametersOutput() RabbitmqInstanceParametersOutput { - return i.ToRabbitmqInstanceParametersOutputWithContext(context.Background()) +func (i SfsExportPolicyRuleArray) ToSfsExportPolicyRuleArrayOutput() SfsExportPolicyRuleArrayOutput { + return i.ToSfsExportPolicyRuleArrayOutputWithContext(context.Background()) } -func (i RabbitmqInstanceParametersArgs) ToRabbitmqInstanceParametersOutputWithContext(ctx context.Context) RabbitmqInstanceParametersOutput { - return pulumi.ToOutputWithContext(ctx, i).(RabbitmqInstanceParametersOutput) +func (i SfsExportPolicyRuleArray) ToSfsExportPolicyRuleArrayOutputWithContext(ctx context.Context) SfsExportPolicyRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SfsExportPolicyRuleArrayOutput) } -func (i RabbitmqInstanceParametersArgs) ToRabbitmqInstanceParametersPtrOutput() RabbitmqInstanceParametersPtrOutput { - return i.ToRabbitmqInstanceParametersPtrOutputWithContext(context.Background()) +type SfsExportPolicyRuleOutput struct{ *pulumi.OutputState } + +func (SfsExportPolicyRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SfsExportPolicyRule)(nil)).Elem() } -func (i RabbitmqInstanceParametersArgs) ToRabbitmqInstanceParametersPtrOutputWithContext(ctx context.Context) RabbitmqInstanceParametersPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RabbitmqInstanceParametersOutput).ToRabbitmqInstanceParametersPtrOutputWithContext(ctx) +func (o SfsExportPolicyRuleOutput) ToSfsExportPolicyRuleOutput() SfsExportPolicyRuleOutput { + return o } -// RabbitmqInstanceParametersPtrInput is an input type that accepts RabbitmqInstanceParametersArgs, RabbitmqInstanceParametersPtr and RabbitmqInstanceParametersPtrOutput values. -// You can construct a concrete instance of `RabbitmqInstanceParametersPtrInput` via: -// -// RabbitmqInstanceParametersArgs{...} -// -// or: -// -// nil -type RabbitmqInstanceParametersPtrInput interface { - pulumi.Input +func (o SfsExportPolicyRuleOutput) ToSfsExportPolicyRuleOutputWithContext(ctx context.Context) SfsExportPolicyRuleOutput { + return o +} - ToRabbitmqInstanceParametersPtrOutput() RabbitmqInstanceParametersPtrOutput - ToRabbitmqInstanceParametersPtrOutputWithContext(context.Context) RabbitmqInstanceParametersPtrOutput +// Description of the Rule +func (o SfsExportPolicyRuleOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v SfsExportPolicyRule) *string { return v.Description }).(pulumi.StringPtrOutput) } -type rabbitmqInstanceParametersPtrType RabbitmqInstanceParametersArgs +// 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). +func (o SfsExportPolicyRuleOutput) IpAcls() pulumi.StringArrayOutput { + return o.ApplyT(func(v SfsExportPolicyRule) []string { return v.IpAcls }).(pulumi.StringArrayOutput) +} -func RabbitmqInstanceParametersPtr(v *RabbitmqInstanceParametersArgs) RabbitmqInstanceParametersPtrInput { - return (*rabbitmqInstanceParametersPtrType)(v) +// 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 +func (o SfsExportPolicyRuleOutput) Order() pulumi.IntOutput { + return o.ApplyT(func(v SfsExportPolicyRule) int { return v.Order }).(pulumi.IntOutput) } -func (*rabbitmqInstanceParametersPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RabbitmqInstanceParameters)(nil)).Elem() +// Flag to indicate if client IPs matching this rule can only mount the share in read only mode +func (o SfsExportPolicyRuleOutput) ReadOnly() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SfsExportPolicyRule) *bool { return v.ReadOnly }).(pulumi.BoolPtrOutput) } -func (i *rabbitmqInstanceParametersPtrType) ToRabbitmqInstanceParametersPtrOutput() RabbitmqInstanceParametersPtrOutput { - return i.ToRabbitmqInstanceParametersPtrOutputWithContext(context.Background()) +// Flag to honor set UUID +func (o SfsExportPolicyRuleOutput) SetUuid() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SfsExportPolicyRule) *bool { return v.SetUuid }).(pulumi.BoolPtrOutput) } -func (i *rabbitmqInstanceParametersPtrType) ToRabbitmqInstanceParametersPtrOutputWithContext(ctx context.Context) RabbitmqInstanceParametersPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RabbitmqInstanceParametersPtrOutput) +// Flag to indicate if client IPs matching this rule have root access on the Share +func (o SfsExportPolicyRuleOutput) SuperUser() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SfsExportPolicyRule) *bool { return v.SuperUser }).(pulumi.BoolPtrOutput) } -type RabbitmqInstanceParametersOutput struct{ *pulumi.OutputState } +type SfsExportPolicyRuleArrayOutput struct{ *pulumi.OutputState } -func (RabbitmqInstanceParametersOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RabbitmqInstanceParameters)(nil)).Elem() +func (SfsExportPolicyRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SfsExportPolicyRule)(nil)).Elem() } -func (o RabbitmqInstanceParametersOutput) ToRabbitmqInstanceParametersOutput() RabbitmqInstanceParametersOutput { +func (o SfsExportPolicyRuleArrayOutput) ToSfsExportPolicyRuleArrayOutput() SfsExportPolicyRuleArrayOutput { return o } -func (o RabbitmqInstanceParametersOutput) ToRabbitmqInstanceParametersOutputWithContext(ctx context.Context) RabbitmqInstanceParametersOutput { +func (o SfsExportPolicyRuleArrayOutput) ToSfsExportPolicyRuleArrayOutputWithContext(ctx context.Context) SfsExportPolicyRuleArrayOutput { return o } -func (o RabbitmqInstanceParametersOutput) ToRabbitmqInstanceParametersPtrOutput() RabbitmqInstanceParametersPtrOutput { - return o.ToRabbitmqInstanceParametersPtrOutputWithContext(context.Background()) +func (o SfsExportPolicyRuleArrayOutput) Index(i pulumi.IntInput) SfsExportPolicyRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SfsExportPolicyRule { + return vs[0].([]SfsExportPolicyRule)[vs[1].(int)] + }).(SfsExportPolicyRuleOutput) } -func (o RabbitmqInstanceParametersOutput) ToRabbitmqInstanceParametersPtrOutputWithContext(ctx context.Context) RabbitmqInstanceParametersPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RabbitmqInstanceParameters) *RabbitmqInstanceParameters { - return &v - }).(RabbitmqInstanceParametersPtrOutput) +type SkeClusterExtensions struct { + // Cluster access control configuration. + Acl *SkeClusterExtensionsAcl `pulumi:"acl"` + // A single argus block as defined below. This field is deprecated and will be removed 06 January 2026. + // + // Deprecated: Use observability instead. + Argus *SkeClusterExtensionsArgus `pulumi:"argus"` + // DNS extension configuration + Dns *SkeClusterExtensionsDns `pulumi:"dns"` + // A single observability block as defined below. + Observability *SkeClusterExtensionsObservability `pulumi:"observability"` } -// The timeout in milliseconds for the consumer. -func (o RabbitmqInstanceParametersOutput) ConsumerTimeout() pulumi.IntPtrOutput { - return o.ApplyT(func(v RabbitmqInstanceParameters) *int { return v.ConsumerTimeout }).(pulumi.IntPtrOutput) +// SkeClusterExtensionsInput is an input type that accepts SkeClusterExtensionsArgs and SkeClusterExtensionsOutput values. +// You can construct a concrete instance of `SkeClusterExtensionsInput` via: +// +// SkeClusterExtensionsArgs{...} +type SkeClusterExtensionsInput interface { + pulumi.Input + + ToSkeClusterExtensionsOutput() SkeClusterExtensionsOutput + ToSkeClusterExtensionsOutputWithContext(context.Context) SkeClusterExtensionsOutput } -// Enable monitoring. -func (o RabbitmqInstanceParametersOutput) EnableMonitoring() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RabbitmqInstanceParameters) *bool { return v.EnableMonitoring }).(pulumi.BoolPtrOutput) +type SkeClusterExtensionsArgs struct { + // Cluster access control configuration. + Acl SkeClusterExtensionsAclPtrInput `pulumi:"acl"` + // A single argus block as defined below. This field is deprecated and will be removed 06 January 2026. + // + // Deprecated: Use observability instead. + Argus SkeClusterExtensionsArgusPtrInput `pulumi:"argus"` + // DNS extension configuration + Dns SkeClusterExtensionsDnsPtrInput `pulumi:"dns"` + // A single observability block as defined below. + Observability SkeClusterExtensionsObservabilityPtrInput `pulumi:"observability"` } -// Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. -func (o RabbitmqInstanceParametersOutput) Graphite() pulumi.StringPtrOutput { - return o.ApplyT(func(v RabbitmqInstanceParameters) *string { return v.Graphite }).(pulumi.StringPtrOutput) +func (SkeClusterExtensionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterExtensions)(nil)).Elem() } -// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. -func (o RabbitmqInstanceParametersOutput) MaxDiskThreshold() pulumi.IntPtrOutput { - return o.ApplyT(func(v RabbitmqInstanceParameters) *int { return v.MaxDiskThreshold }).(pulumi.IntPtrOutput) +func (i SkeClusterExtensionsArgs) ToSkeClusterExtensionsOutput() SkeClusterExtensionsOutput { + return i.ToSkeClusterExtensionsOutputWithContext(context.Background()) } -// The frequency in seconds at which metrics are emitted. -func (o RabbitmqInstanceParametersOutput) MetricsFrequency() pulumi.IntPtrOutput { - return o.ApplyT(func(v RabbitmqInstanceParameters) *int { return v.MetricsFrequency }).(pulumi.IntPtrOutput) +func (i SkeClusterExtensionsArgs) ToSkeClusterExtensionsOutputWithContext(ctx context.Context) SkeClusterExtensionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsOutput) } -// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key -func (o RabbitmqInstanceParametersOutput) MetricsPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v RabbitmqInstanceParameters) *string { return v.MetricsPrefix }).(pulumi.StringPtrOutput) +func (i SkeClusterExtensionsArgs) ToSkeClusterExtensionsPtrOutput() SkeClusterExtensionsPtrOutput { + return i.ToSkeClusterExtensionsPtrOutputWithContext(context.Background()) } -// The ID of the STACKIT monitoring instance. -func (o RabbitmqInstanceParametersOutput) MonitoringInstanceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v RabbitmqInstanceParameters) *string { return v.MonitoringInstanceId }).(pulumi.StringPtrOutput) +func (i SkeClusterExtensionsArgs) ToSkeClusterExtensionsPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsOutput).ToSkeClusterExtensionsPtrOutputWithContext(ctx) } -// List of plugins to install. Must be a supported plugin name. -func (o RabbitmqInstanceParametersOutput) Plugins() pulumi.StringArrayOutput { - return o.ApplyT(func(v RabbitmqInstanceParameters) []string { return v.Plugins }).(pulumi.StringArrayOutput) -} +// SkeClusterExtensionsPtrInput is an input type that accepts SkeClusterExtensionsArgs, SkeClusterExtensionsPtr and SkeClusterExtensionsPtrOutput values. +// You can construct a concrete instance of `SkeClusterExtensionsPtrInput` via: +// +// SkeClusterExtensionsArgs{...} +// +// or: +// +// nil +type SkeClusterExtensionsPtrInput interface { + pulumi.Input -// List of roles to assign to the instance. -func (o RabbitmqInstanceParametersOutput) Roles() pulumi.StringArrayOutput { - return o.ApplyT(func(v RabbitmqInstanceParameters) []string { return v.Roles }).(pulumi.StringArrayOutput) + ToSkeClusterExtensionsPtrOutput() SkeClusterExtensionsPtrOutput + ToSkeClusterExtensionsPtrOutputWithContext(context.Context) SkeClusterExtensionsPtrOutput } -// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. -func (o RabbitmqInstanceParametersOutput) SgwAcl() pulumi.StringPtrOutput { - return o.ApplyT(func(v RabbitmqInstanceParameters) *string { return v.SgwAcl }).(pulumi.StringPtrOutput) +type skeClusterExtensionsPtrType SkeClusterExtensionsArgs + +func SkeClusterExtensionsPtr(v *SkeClusterExtensionsArgs) SkeClusterExtensionsPtrInput { + return (*skeClusterExtensionsPtrType)(v) } -// List of syslog servers to send logs to. -func (o RabbitmqInstanceParametersOutput) Syslogs() pulumi.StringArrayOutput { - return o.ApplyT(func(v RabbitmqInstanceParameters) []string { return v.Syslogs }).(pulumi.StringArrayOutput) +func (*skeClusterExtensionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SkeClusterExtensions)(nil)).Elem() } -// List of TLS ciphers to use. -func (o RabbitmqInstanceParametersOutput) TlsCiphers() pulumi.StringArrayOutput { - return o.ApplyT(func(v RabbitmqInstanceParameters) []string { return v.TlsCiphers }).(pulumi.StringArrayOutput) +func (i *skeClusterExtensionsPtrType) ToSkeClusterExtensionsPtrOutput() SkeClusterExtensionsPtrOutput { + return i.ToSkeClusterExtensionsPtrOutputWithContext(context.Background()) } -// TLS protocol versions to use. -func (o RabbitmqInstanceParametersOutput) TlsProtocols() pulumi.StringArrayOutput { - return o.ApplyT(func(v RabbitmqInstanceParameters) []string { return v.TlsProtocols }).(pulumi.StringArrayOutput) +func (i *skeClusterExtensionsPtrType) ToSkeClusterExtensionsPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsPtrOutput) } -type RabbitmqInstanceParametersPtrOutput struct{ *pulumi.OutputState } +type SkeClusterExtensionsOutput struct{ *pulumi.OutputState } -func (RabbitmqInstanceParametersPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RabbitmqInstanceParameters)(nil)).Elem() +func (SkeClusterExtensionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterExtensions)(nil)).Elem() } -func (o RabbitmqInstanceParametersPtrOutput) ToRabbitmqInstanceParametersPtrOutput() RabbitmqInstanceParametersPtrOutput { +func (o SkeClusterExtensionsOutput) ToSkeClusterExtensionsOutput() SkeClusterExtensionsOutput { return o } -func (o RabbitmqInstanceParametersPtrOutput) ToRabbitmqInstanceParametersPtrOutputWithContext(ctx context.Context) RabbitmqInstanceParametersPtrOutput { +func (o SkeClusterExtensionsOutput) ToSkeClusterExtensionsOutputWithContext(ctx context.Context) SkeClusterExtensionsOutput { return o } -func (o RabbitmqInstanceParametersPtrOutput) Elem() RabbitmqInstanceParametersOutput { - return o.ApplyT(func(v *RabbitmqInstanceParameters) RabbitmqInstanceParameters { - if v != nil { - return *v - } - var ret RabbitmqInstanceParameters - return ret - }).(RabbitmqInstanceParametersOutput) +func (o SkeClusterExtensionsOutput) ToSkeClusterExtensionsPtrOutput() SkeClusterExtensionsPtrOutput { + return o.ToSkeClusterExtensionsPtrOutputWithContext(context.Background()) } -// The timeout in milliseconds for the consumer. -func (o RabbitmqInstanceParametersPtrOutput) ConsumerTimeout() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RabbitmqInstanceParameters) *int { - if v == nil { - return nil - } - return v.ConsumerTimeout - }).(pulumi.IntPtrOutput) +func (o SkeClusterExtensionsOutput) ToSkeClusterExtensionsPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SkeClusterExtensions) *SkeClusterExtensions { + return &v + }).(SkeClusterExtensionsPtrOutput) } -// Enable monitoring. -func (o RabbitmqInstanceParametersPtrOutput) EnableMonitoring() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RabbitmqInstanceParameters) *bool { - if v == nil { - return nil - } - return v.EnableMonitoring - }).(pulumi.BoolPtrOutput) +// Cluster access control configuration. +func (o SkeClusterExtensionsOutput) Acl() SkeClusterExtensionsAclPtrOutput { + return o.ApplyT(func(v SkeClusterExtensions) *SkeClusterExtensionsAcl { return v.Acl }).(SkeClusterExtensionsAclPtrOutput) } -// Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. -func (o RabbitmqInstanceParametersPtrOutput) Graphite() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RabbitmqInstanceParameters) *string { - if v == nil { - return nil - } - return v.Graphite - }).(pulumi.StringPtrOutput) +// A single argus block as defined below. This field is deprecated and will be removed 06 January 2026. +// +// Deprecated: Use observability instead. +func (o SkeClusterExtensionsOutput) Argus() SkeClusterExtensionsArgusPtrOutput { + return o.ApplyT(func(v SkeClusterExtensions) *SkeClusterExtensionsArgus { return v.Argus }).(SkeClusterExtensionsArgusPtrOutput) } -// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. -func (o RabbitmqInstanceParametersPtrOutput) MaxDiskThreshold() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RabbitmqInstanceParameters) *int { - if v == nil { - return nil - } - return v.MaxDiskThreshold - }).(pulumi.IntPtrOutput) +// DNS extension configuration +func (o SkeClusterExtensionsOutput) Dns() SkeClusterExtensionsDnsPtrOutput { + return o.ApplyT(func(v SkeClusterExtensions) *SkeClusterExtensionsDns { return v.Dns }).(SkeClusterExtensionsDnsPtrOutput) } -// The frequency in seconds at which metrics are emitted. -func (o RabbitmqInstanceParametersPtrOutput) MetricsFrequency() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RabbitmqInstanceParameters) *int { - if v == nil { - return nil - } - return v.MetricsFrequency - }).(pulumi.IntPtrOutput) +// A single observability block as defined below. +func (o SkeClusterExtensionsOutput) Observability() SkeClusterExtensionsObservabilityPtrOutput { + return o.ApplyT(func(v SkeClusterExtensions) *SkeClusterExtensionsObservability { return v.Observability }).(SkeClusterExtensionsObservabilityPtrOutput) } -// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key -func (o RabbitmqInstanceParametersPtrOutput) MetricsPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RabbitmqInstanceParameters) *string { - if v == nil { - return nil - } - return v.MetricsPrefix - }).(pulumi.StringPtrOutput) -} +type SkeClusterExtensionsPtrOutput struct{ *pulumi.OutputState } -// The ID of the STACKIT monitoring instance. -func (o RabbitmqInstanceParametersPtrOutput) MonitoringInstanceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RabbitmqInstanceParameters) *string { - if v == nil { - return nil - } - return v.MonitoringInstanceId - }).(pulumi.StringPtrOutput) +func (SkeClusterExtensionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SkeClusterExtensions)(nil)).Elem() } -// List of plugins to install. Must be a supported plugin name. -func (o RabbitmqInstanceParametersPtrOutput) Plugins() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RabbitmqInstanceParameters) []string { - if v == nil { - return nil - } - return v.Plugins - }).(pulumi.StringArrayOutput) +func (o SkeClusterExtensionsPtrOutput) ToSkeClusterExtensionsPtrOutput() SkeClusterExtensionsPtrOutput { + return o } -// List of roles to assign to the instance. -func (o RabbitmqInstanceParametersPtrOutput) Roles() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RabbitmqInstanceParameters) []string { - if v == nil { - return nil - } - return v.Roles - }).(pulumi.StringArrayOutput) +func (o SkeClusterExtensionsPtrOutput) ToSkeClusterExtensionsPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsPtrOutput { + return o } -// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. -func (o RabbitmqInstanceParametersPtrOutput) SgwAcl() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RabbitmqInstanceParameters) *string { - if v == nil { - return nil +func (o SkeClusterExtensionsPtrOutput) Elem() SkeClusterExtensionsOutput { + return o.ApplyT(func(v *SkeClusterExtensions) SkeClusterExtensions { + if v != nil { + return *v } - return v.SgwAcl - }).(pulumi.StringPtrOutput) + var ret SkeClusterExtensions + return ret + }).(SkeClusterExtensionsOutput) } -// List of syslog servers to send logs to. -func (o RabbitmqInstanceParametersPtrOutput) Syslogs() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RabbitmqInstanceParameters) []string { +// Cluster access control configuration. +func (o SkeClusterExtensionsPtrOutput) Acl() SkeClusterExtensionsAclPtrOutput { + return o.ApplyT(func(v *SkeClusterExtensions) *SkeClusterExtensionsAcl { if v == nil { return nil } - return v.Syslogs - }).(pulumi.StringArrayOutput) + return v.Acl + }).(SkeClusterExtensionsAclPtrOutput) } -// List of TLS ciphers to use. -func (o RabbitmqInstanceParametersPtrOutput) TlsCiphers() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RabbitmqInstanceParameters) []string { +// A single argus block as defined below. This field is deprecated and will be removed 06 January 2026. +// +// Deprecated: Use observability instead. +func (o SkeClusterExtensionsPtrOutput) Argus() SkeClusterExtensionsArgusPtrOutput { + return o.ApplyT(func(v *SkeClusterExtensions) *SkeClusterExtensionsArgus { if v == nil { return nil } - return v.TlsCiphers - }).(pulumi.StringArrayOutput) + return v.Argus + }).(SkeClusterExtensionsArgusPtrOutput) } -// TLS protocol versions to use. -func (o RabbitmqInstanceParametersPtrOutput) TlsProtocols() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RabbitmqInstanceParameters) []string { +// DNS extension configuration +func (o SkeClusterExtensionsPtrOutput) Dns() SkeClusterExtensionsDnsPtrOutput { + return o.ApplyT(func(v *SkeClusterExtensions) *SkeClusterExtensionsDns { if v == nil { return nil - } - return v.TlsProtocols - }).(pulumi.StringArrayOutput) -} - -type RedisInstanceParameters struct { - // The number of milliseconds after which the instance is considered down. - DownAfterMilliseconds *int `pulumi:"downAfterMilliseconds"` - // Enable monitoring. - EnableMonitoring *bool `pulumi:"enableMonitoring"` - // The failover timeout in milliseconds. - FailoverTimeout *int `pulumi:"failoverTimeout"` - // Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. - Graphite *string `pulumi:"graphite"` - // The lazy eviction enablement (yes or no). - LazyfreeLazyEviction *string `pulumi:"lazyfreeLazyEviction"` - // The lazy expire enablement (yes or no). - LazyfreeLazyExpire *string `pulumi:"lazyfreeLazyExpire"` - // The Lua time limit. - LuaTimeLimit *int `pulumi:"luaTimeLimit"` - // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. - MaxDiskThreshold *int `pulumi:"maxDiskThreshold"` - // The maximum number of clients. - Maxclients *int `pulumi:"maxclients"` - // The policy to handle the maximum memory (volatile-lru, noeviction, etc). - MaxmemoryPolicy *string `pulumi:"maxmemoryPolicy"` - // The maximum memory samples. - MaxmemorySamples *int `pulumi:"maxmemorySamples"` - // The frequency in seconds at which metrics are emitted. - MetricsFrequency *int `pulumi:"metricsFrequency"` - // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key - MetricsPrefix *string `pulumi:"metricsPrefix"` - // The minimum replicas maximum lag. - MinReplicasMaxLag *int `pulumi:"minReplicasMaxLag"` - // The ID of the STACKIT monitoring instance. - MonitoringInstanceId *string `pulumi:"monitoringInstanceId"` - // The notify keyspace events. - NotifyKeyspaceEvents *string `pulumi:"notifyKeyspaceEvents"` - // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. - SgwAcl *string `pulumi:"sgwAcl"` - // The snapshot configuration. - Snapshot *string `pulumi:"snapshot"` - // List of syslog servers to send logs to. - Syslogs []string `pulumi:"syslogs"` - // List of TLS ciphers to use. - TlsCiphers []string `pulumi:"tlsCiphers"` - // TLS cipher suites to use. - TlsCiphersuites *string `pulumi:"tlsCiphersuites"` - // TLS protocol to use. - TlsProtocols *string `pulumi:"tlsProtocols"` + } + return v.Dns + }).(SkeClusterExtensionsDnsPtrOutput) } -// RedisInstanceParametersInput is an input type that accepts RedisInstanceParametersArgs and RedisInstanceParametersOutput values. -// You can construct a concrete instance of `RedisInstanceParametersInput` via: +// A single observability block as defined below. +func (o SkeClusterExtensionsPtrOutput) Observability() SkeClusterExtensionsObservabilityPtrOutput { + return o.ApplyT(func(v *SkeClusterExtensions) *SkeClusterExtensionsObservability { + if v == nil { + return nil + } + return v.Observability + }).(SkeClusterExtensionsObservabilityPtrOutput) +} + +type SkeClusterExtensionsAcl struct { + // Specify a list of CIDRs to whitelist. + AllowedCidrs []string `pulumi:"allowedCidrs"` + // Is ACL enabled? + Enabled bool `pulumi:"enabled"` +} + +// SkeClusterExtensionsAclInput is an input type that accepts SkeClusterExtensionsAclArgs and SkeClusterExtensionsAclOutput values. +// You can construct a concrete instance of `SkeClusterExtensionsAclInput` via: // -// RedisInstanceParametersArgs{...} -type RedisInstanceParametersInput interface { +// SkeClusterExtensionsAclArgs{...} +type SkeClusterExtensionsAclInput interface { pulumi.Input - ToRedisInstanceParametersOutput() RedisInstanceParametersOutput - ToRedisInstanceParametersOutputWithContext(context.Context) RedisInstanceParametersOutput + ToSkeClusterExtensionsAclOutput() SkeClusterExtensionsAclOutput + ToSkeClusterExtensionsAclOutputWithContext(context.Context) SkeClusterExtensionsAclOutput } -type RedisInstanceParametersArgs struct { - // The number of milliseconds after which the instance is considered down. - DownAfterMilliseconds pulumi.IntPtrInput `pulumi:"downAfterMilliseconds"` - // Enable monitoring. - EnableMonitoring pulumi.BoolPtrInput `pulumi:"enableMonitoring"` - // The failover timeout in milliseconds. - FailoverTimeout pulumi.IntPtrInput `pulumi:"failoverTimeout"` - // Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. - Graphite pulumi.StringPtrInput `pulumi:"graphite"` - // The lazy eviction enablement (yes or no). - LazyfreeLazyEviction pulumi.StringPtrInput `pulumi:"lazyfreeLazyEviction"` - // The lazy expire enablement (yes or no). - LazyfreeLazyExpire pulumi.StringPtrInput `pulumi:"lazyfreeLazyExpire"` - // The Lua time limit. - LuaTimeLimit pulumi.IntPtrInput `pulumi:"luaTimeLimit"` - // The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. - MaxDiskThreshold pulumi.IntPtrInput `pulumi:"maxDiskThreshold"` - // The maximum number of clients. - Maxclients pulumi.IntPtrInput `pulumi:"maxclients"` - // The policy to handle the maximum memory (volatile-lru, noeviction, etc). - MaxmemoryPolicy pulumi.StringPtrInput `pulumi:"maxmemoryPolicy"` - // The maximum memory samples. - MaxmemorySamples pulumi.IntPtrInput `pulumi:"maxmemorySamples"` - // The frequency in seconds at which metrics are emitted. - MetricsFrequency pulumi.IntPtrInput `pulumi:"metricsFrequency"` - // The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key - MetricsPrefix pulumi.StringPtrInput `pulumi:"metricsPrefix"` - // The minimum replicas maximum lag. - MinReplicasMaxLag pulumi.IntPtrInput `pulumi:"minReplicasMaxLag"` - // The ID of the STACKIT monitoring instance. - MonitoringInstanceId pulumi.StringPtrInput `pulumi:"monitoringInstanceId"` - // The notify keyspace events. - NotifyKeyspaceEvents pulumi.StringPtrInput `pulumi:"notifyKeyspaceEvents"` - // Comma separated list of IP networks in CIDR notation which are allowed to access this instance. - SgwAcl pulumi.StringPtrInput `pulumi:"sgwAcl"` - // The snapshot configuration. - Snapshot pulumi.StringPtrInput `pulumi:"snapshot"` - // List of syslog servers to send logs to. - Syslogs pulumi.StringArrayInput `pulumi:"syslogs"` - // List of TLS ciphers to use. - TlsCiphers pulumi.StringArrayInput `pulumi:"tlsCiphers"` - // TLS cipher suites to use. - TlsCiphersuites pulumi.StringPtrInput `pulumi:"tlsCiphersuites"` - // TLS protocol to use. - TlsProtocols pulumi.StringPtrInput `pulumi:"tlsProtocols"` +type SkeClusterExtensionsAclArgs struct { + // Specify a list of CIDRs to whitelist. + AllowedCidrs pulumi.StringArrayInput `pulumi:"allowedCidrs"` + // Is ACL enabled? + Enabled pulumi.BoolInput `pulumi:"enabled"` } -func (RedisInstanceParametersArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RedisInstanceParameters)(nil)).Elem() +func (SkeClusterExtensionsAclArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterExtensionsAcl)(nil)).Elem() } -func (i RedisInstanceParametersArgs) ToRedisInstanceParametersOutput() RedisInstanceParametersOutput { - return i.ToRedisInstanceParametersOutputWithContext(context.Background()) +func (i SkeClusterExtensionsAclArgs) ToSkeClusterExtensionsAclOutput() SkeClusterExtensionsAclOutput { + return i.ToSkeClusterExtensionsAclOutputWithContext(context.Background()) } -func (i RedisInstanceParametersArgs) ToRedisInstanceParametersOutputWithContext(ctx context.Context) RedisInstanceParametersOutput { - return pulumi.ToOutputWithContext(ctx, i).(RedisInstanceParametersOutput) +func (i SkeClusterExtensionsAclArgs) ToSkeClusterExtensionsAclOutputWithContext(ctx context.Context) SkeClusterExtensionsAclOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsAclOutput) } -func (i RedisInstanceParametersArgs) ToRedisInstanceParametersPtrOutput() RedisInstanceParametersPtrOutput { - return i.ToRedisInstanceParametersPtrOutputWithContext(context.Background()) +func (i SkeClusterExtensionsAclArgs) ToSkeClusterExtensionsAclPtrOutput() SkeClusterExtensionsAclPtrOutput { + return i.ToSkeClusterExtensionsAclPtrOutputWithContext(context.Background()) } -func (i RedisInstanceParametersArgs) ToRedisInstanceParametersPtrOutputWithContext(ctx context.Context) RedisInstanceParametersPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RedisInstanceParametersOutput).ToRedisInstanceParametersPtrOutputWithContext(ctx) +func (i SkeClusterExtensionsAclArgs) ToSkeClusterExtensionsAclPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsAclPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsAclOutput).ToSkeClusterExtensionsAclPtrOutputWithContext(ctx) } -// RedisInstanceParametersPtrInput is an input type that accepts RedisInstanceParametersArgs, RedisInstanceParametersPtr and RedisInstanceParametersPtrOutput values. -// You can construct a concrete instance of `RedisInstanceParametersPtrInput` via: +// SkeClusterExtensionsAclPtrInput is an input type that accepts SkeClusterExtensionsAclArgs, SkeClusterExtensionsAclPtr and SkeClusterExtensionsAclPtrOutput values. +// You can construct a concrete instance of `SkeClusterExtensionsAclPtrInput` via: // -// RedisInstanceParametersArgs{...} +// SkeClusterExtensionsAclArgs{...} // // or: // // nil -type RedisInstanceParametersPtrInput interface { +type SkeClusterExtensionsAclPtrInput interface { pulumi.Input - ToRedisInstanceParametersPtrOutput() RedisInstanceParametersPtrOutput - ToRedisInstanceParametersPtrOutputWithContext(context.Context) RedisInstanceParametersPtrOutput + ToSkeClusterExtensionsAclPtrOutput() SkeClusterExtensionsAclPtrOutput + ToSkeClusterExtensionsAclPtrOutputWithContext(context.Context) SkeClusterExtensionsAclPtrOutput } -type redisInstanceParametersPtrType RedisInstanceParametersArgs +type skeClusterExtensionsAclPtrType SkeClusterExtensionsAclArgs -func RedisInstanceParametersPtr(v *RedisInstanceParametersArgs) RedisInstanceParametersPtrInput { - return (*redisInstanceParametersPtrType)(v) +func SkeClusterExtensionsAclPtr(v *SkeClusterExtensionsAclArgs) SkeClusterExtensionsAclPtrInput { + return (*skeClusterExtensionsAclPtrType)(v) } -func (*redisInstanceParametersPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RedisInstanceParameters)(nil)).Elem() +func (*skeClusterExtensionsAclPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SkeClusterExtensionsAcl)(nil)).Elem() } -func (i *redisInstanceParametersPtrType) ToRedisInstanceParametersPtrOutput() RedisInstanceParametersPtrOutput { - return i.ToRedisInstanceParametersPtrOutputWithContext(context.Background()) +func (i *skeClusterExtensionsAclPtrType) ToSkeClusterExtensionsAclPtrOutput() SkeClusterExtensionsAclPtrOutput { + return i.ToSkeClusterExtensionsAclPtrOutputWithContext(context.Background()) } -func (i *redisInstanceParametersPtrType) ToRedisInstanceParametersPtrOutputWithContext(ctx context.Context) RedisInstanceParametersPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RedisInstanceParametersPtrOutput) +func (i *skeClusterExtensionsAclPtrType) ToSkeClusterExtensionsAclPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsAclPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsAclPtrOutput) } -type RedisInstanceParametersOutput struct{ *pulumi.OutputState } +type SkeClusterExtensionsAclOutput struct{ *pulumi.OutputState } -func (RedisInstanceParametersOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RedisInstanceParameters)(nil)).Elem() +func (SkeClusterExtensionsAclOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterExtensionsAcl)(nil)).Elem() } -func (o RedisInstanceParametersOutput) ToRedisInstanceParametersOutput() RedisInstanceParametersOutput { +func (o SkeClusterExtensionsAclOutput) ToSkeClusterExtensionsAclOutput() SkeClusterExtensionsAclOutput { return o } -func (o RedisInstanceParametersOutput) ToRedisInstanceParametersOutputWithContext(ctx context.Context) RedisInstanceParametersOutput { +func (o SkeClusterExtensionsAclOutput) ToSkeClusterExtensionsAclOutputWithContext(ctx context.Context) SkeClusterExtensionsAclOutput { return o } -func (o RedisInstanceParametersOutput) ToRedisInstanceParametersPtrOutput() RedisInstanceParametersPtrOutput { - return o.ToRedisInstanceParametersPtrOutputWithContext(context.Background()) +func (o SkeClusterExtensionsAclOutput) ToSkeClusterExtensionsAclPtrOutput() SkeClusterExtensionsAclPtrOutput { + return o.ToSkeClusterExtensionsAclPtrOutputWithContext(context.Background()) } -func (o RedisInstanceParametersOutput) ToRedisInstanceParametersPtrOutputWithContext(ctx context.Context) RedisInstanceParametersPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RedisInstanceParameters) *RedisInstanceParameters { +func (o SkeClusterExtensionsAclOutput) ToSkeClusterExtensionsAclPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsAclPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SkeClusterExtensionsAcl) *SkeClusterExtensionsAcl { return &v - }).(RedisInstanceParametersPtrOutput) + }).(SkeClusterExtensionsAclPtrOutput) } -// The number of milliseconds after which the instance is considered down. -func (o RedisInstanceParametersOutput) DownAfterMilliseconds() pulumi.IntPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *int { return v.DownAfterMilliseconds }).(pulumi.IntPtrOutput) +// Specify a list of CIDRs to whitelist. +func (o SkeClusterExtensionsAclOutput) AllowedCidrs() pulumi.StringArrayOutput { + return o.ApplyT(func(v SkeClusterExtensionsAcl) []string { return v.AllowedCidrs }).(pulumi.StringArrayOutput) } -// Enable monitoring. -func (o RedisInstanceParametersOutput) EnableMonitoring() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *bool { return v.EnableMonitoring }).(pulumi.BoolPtrOutput) +// Is ACL enabled? +func (o SkeClusterExtensionsAclOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v SkeClusterExtensionsAcl) bool { return v.Enabled }).(pulumi.BoolOutput) } -// The failover timeout in milliseconds. -func (o RedisInstanceParametersOutput) FailoverTimeout() pulumi.IntPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *int { return v.FailoverTimeout }).(pulumi.IntPtrOutput) +type SkeClusterExtensionsAclPtrOutput struct{ *pulumi.OutputState } + +func (SkeClusterExtensionsAclPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SkeClusterExtensionsAcl)(nil)).Elem() } -// Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. -func (o RedisInstanceParametersOutput) Graphite() pulumi.StringPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *string { return v.Graphite }).(pulumi.StringPtrOutput) +func (o SkeClusterExtensionsAclPtrOutput) ToSkeClusterExtensionsAclPtrOutput() SkeClusterExtensionsAclPtrOutput { + return o } -// The lazy eviction enablement (yes or no). -func (o RedisInstanceParametersOutput) LazyfreeLazyEviction() pulumi.StringPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *string { return v.LazyfreeLazyEviction }).(pulumi.StringPtrOutput) +func (o SkeClusterExtensionsAclPtrOutput) ToSkeClusterExtensionsAclPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsAclPtrOutput { + return o } -// The lazy expire enablement (yes or no). -func (o RedisInstanceParametersOutput) LazyfreeLazyExpire() pulumi.StringPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *string { return v.LazyfreeLazyExpire }).(pulumi.StringPtrOutput) +func (o SkeClusterExtensionsAclPtrOutput) Elem() SkeClusterExtensionsAclOutput { + return o.ApplyT(func(v *SkeClusterExtensionsAcl) SkeClusterExtensionsAcl { + if v != nil { + return *v + } + var ret SkeClusterExtensionsAcl + return ret + }).(SkeClusterExtensionsAclOutput) } -// The Lua time limit. -func (o RedisInstanceParametersOutput) LuaTimeLimit() pulumi.IntPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *int { return v.LuaTimeLimit }).(pulumi.IntPtrOutput) +// Specify a list of CIDRs to whitelist. +func (o SkeClusterExtensionsAclPtrOutput) AllowedCidrs() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SkeClusterExtensionsAcl) []string { + if v == nil { + return nil + } + return v.AllowedCidrs + }).(pulumi.StringArrayOutput) } -// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. -func (o RedisInstanceParametersOutput) MaxDiskThreshold() pulumi.IntPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *int { return v.MaxDiskThreshold }).(pulumi.IntPtrOutput) +// Is ACL enabled? +func (o SkeClusterExtensionsAclPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *SkeClusterExtensionsAcl) *bool { + if v == nil { + return nil + } + return &v.Enabled + }).(pulumi.BoolPtrOutput) } -// The maximum number of clients. -func (o RedisInstanceParametersOutput) Maxclients() pulumi.IntPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *int { return v.Maxclients }).(pulumi.IntPtrOutput) +type SkeClusterExtensionsArgus struct { + // Argus instance ID to choose which Argus instance is used. Required when enabled is set to `true`. + ArgusInstanceId *string `pulumi:"argusInstanceId"` + // Flag to enable/disable Argus extensions. + Enabled bool `pulumi:"enabled"` +} + +// SkeClusterExtensionsArgusInput is an input type that accepts SkeClusterExtensionsArgusArgs and SkeClusterExtensionsArgusOutput values. +// You can construct a concrete instance of `SkeClusterExtensionsArgusInput` via: +// +// SkeClusterExtensionsArgusArgs{...} +type SkeClusterExtensionsArgusInput interface { + pulumi.Input + + ToSkeClusterExtensionsArgusOutput() SkeClusterExtensionsArgusOutput + ToSkeClusterExtensionsArgusOutputWithContext(context.Context) SkeClusterExtensionsArgusOutput +} + +type SkeClusterExtensionsArgusArgs struct { + // Argus instance ID to choose which Argus instance is used. Required when enabled is set to `true`. + ArgusInstanceId pulumi.StringPtrInput `pulumi:"argusInstanceId"` + // Flag to enable/disable Argus extensions. + Enabled pulumi.BoolInput `pulumi:"enabled"` +} + +func (SkeClusterExtensionsArgusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterExtensionsArgus)(nil)).Elem() +} + +func (i SkeClusterExtensionsArgusArgs) ToSkeClusterExtensionsArgusOutput() SkeClusterExtensionsArgusOutput { + return i.ToSkeClusterExtensionsArgusOutputWithContext(context.Background()) +} + +func (i SkeClusterExtensionsArgusArgs) ToSkeClusterExtensionsArgusOutputWithContext(ctx context.Context) SkeClusterExtensionsArgusOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsArgusOutput) +} + +func (i SkeClusterExtensionsArgusArgs) ToSkeClusterExtensionsArgusPtrOutput() SkeClusterExtensionsArgusPtrOutput { + return i.ToSkeClusterExtensionsArgusPtrOutputWithContext(context.Background()) } -// The policy to handle the maximum memory (volatile-lru, noeviction, etc). -func (o RedisInstanceParametersOutput) MaxmemoryPolicy() pulumi.StringPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *string { return v.MaxmemoryPolicy }).(pulumi.StringPtrOutput) +func (i SkeClusterExtensionsArgusArgs) ToSkeClusterExtensionsArgusPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsArgusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsArgusOutput).ToSkeClusterExtensionsArgusPtrOutputWithContext(ctx) } -// The maximum memory samples. -func (o RedisInstanceParametersOutput) MaxmemorySamples() pulumi.IntPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *int { return v.MaxmemorySamples }).(pulumi.IntPtrOutput) +// SkeClusterExtensionsArgusPtrInput is an input type that accepts SkeClusterExtensionsArgusArgs, SkeClusterExtensionsArgusPtr and SkeClusterExtensionsArgusPtrOutput values. +// You can construct a concrete instance of `SkeClusterExtensionsArgusPtrInput` via: +// +// SkeClusterExtensionsArgusArgs{...} +// +// or: +// +// nil +type SkeClusterExtensionsArgusPtrInput interface { + pulumi.Input + + ToSkeClusterExtensionsArgusPtrOutput() SkeClusterExtensionsArgusPtrOutput + ToSkeClusterExtensionsArgusPtrOutputWithContext(context.Context) SkeClusterExtensionsArgusPtrOutput } -// The frequency in seconds at which metrics are emitted. -func (o RedisInstanceParametersOutput) MetricsFrequency() pulumi.IntPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *int { return v.MetricsFrequency }).(pulumi.IntPtrOutput) +type skeClusterExtensionsArgusPtrType SkeClusterExtensionsArgusArgs + +func SkeClusterExtensionsArgusPtr(v *SkeClusterExtensionsArgusArgs) SkeClusterExtensionsArgusPtrInput { + return (*skeClusterExtensionsArgusPtrType)(v) } -// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key -func (o RedisInstanceParametersOutput) MetricsPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *string { return v.MetricsPrefix }).(pulumi.StringPtrOutput) +func (*skeClusterExtensionsArgusPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SkeClusterExtensionsArgus)(nil)).Elem() } -// The minimum replicas maximum lag. -func (o RedisInstanceParametersOutput) MinReplicasMaxLag() pulumi.IntPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *int { return v.MinReplicasMaxLag }).(pulumi.IntPtrOutput) +func (i *skeClusterExtensionsArgusPtrType) ToSkeClusterExtensionsArgusPtrOutput() SkeClusterExtensionsArgusPtrOutput { + return i.ToSkeClusterExtensionsArgusPtrOutputWithContext(context.Background()) } -// The ID of the STACKIT monitoring instance. -func (o RedisInstanceParametersOutput) MonitoringInstanceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *string { return v.MonitoringInstanceId }).(pulumi.StringPtrOutput) +func (i *skeClusterExtensionsArgusPtrType) ToSkeClusterExtensionsArgusPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsArgusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsArgusPtrOutput) } -// The notify keyspace events. -func (o RedisInstanceParametersOutput) NotifyKeyspaceEvents() pulumi.StringPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *string { return v.NotifyKeyspaceEvents }).(pulumi.StringPtrOutput) +type SkeClusterExtensionsArgusOutput struct{ *pulumi.OutputState } + +func (SkeClusterExtensionsArgusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterExtensionsArgus)(nil)).Elem() } -// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. -func (o RedisInstanceParametersOutput) SgwAcl() pulumi.StringPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *string { return v.SgwAcl }).(pulumi.StringPtrOutput) +func (o SkeClusterExtensionsArgusOutput) ToSkeClusterExtensionsArgusOutput() SkeClusterExtensionsArgusOutput { + return o } -// The snapshot configuration. -func (o RedisInstanceParametersOutput) Snapshot() pulumi.StringPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *string { return v.Snapshot }).(pulumi.StringPtrOutput) +func (o SkeClusterExtensionsArgusOutput) ToSkeClusterExtensionsArgusOutputWithContext(ctx context.Context) SkeClusterExtensionsArgusOutput { + return o } -// List of syslog servers to send logs to. -func (o RedisInstanceParametersOutput) Syslogs() pulumi.StringArrayOutput { - return o.ApplyT(func(v RedisInstanceParameters) []string { return v.Syslogs }).(pulumi.StringArrayOutput) +func (o SkeClusterExtensionsArgusOutput) ToSkeClusterExtensionsArgusPtrOutput() SkeClusterExtensionsArgusPtrOutput { + return o.ToSkeClusterExtensionsArgusPtrOutputWithContext(context.Background()) } -// List of TLS ciphers to use. -func (o RedisInstanceParametersOutput) TlsCiphers() pulumi.StringArrayOutput { - return o.ApplyT(func(v RedisInstanceParameters) []string { return v.TlsCiphers }).(pulumi.StringArrayOutput) +func (o SkeClusterExtensionsArgusOutput) ToSkeClusterExtensionsArgusPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsArgusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SkeClusterExtensionsArgus) *SkeClusterExtensionsArgus { + return &v + }).(SkeClusterExtensionsArgusPtrOutput) } -// TLS cipher suites to use. -func (o RedisInstanceParametersOutput) TlsCiphersuites() pulumi.StringPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *string { return v.TlsCiphersuites }).(pulumi.StringPtrOutput) +// Argus instance ID to choose which Argus instance is used. Required when enabled is set to `true`. +func (o SkeClusterExtensionsArgusOutput) ArgusInstanceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v SkeClusterExtensionsArgus) *string { return v.ArgusInstanceId }).(pulumi.StringPtrOutput) } -// TLS protocol to use. -func (o RedisInstanceParametersOutput) TlsProtocols() pulumi.StringPtrOutput { - return o.ApplyT(func(v RedisInstanceParameters) *string { return v.TlsProtocols }).(pulumi.StringPtrOutput) +// Flag to enable/disable Argus extensions. +func (o SkeClusterExtensionsArgusOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v SkeClusterExtensionsArgus) bool { return v.Enabled }).(pulumi.BoolOutput) } -type RedisInstanceParametersPtrOutput struct{ *pulumi.OutputState } +type SkeClusterExtensionsArgusPtrOutput struct{ *pulumi.OutputState } -func (RedisInstanceParametersPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RedisInstanceParameters)(nil)).Elem() +func (SkeClusterExtensionsArgusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SkeClusterExtensionsArgus)(nil)).Elem() } -func (o RedisInstanceParametersPtrOutput) ToRedisInstanceParametersPtrOutput() RedisInstanceParametersPtrOutput { +func (o SkeClusterExtensionsArgusPtrOutput) ToSkeClusterExtensionsArgusPtrOutput() SkeClusterExtensionsArgusPtrOutput { return o } -func (o RedisInstanceParametersPtrOutput) ToRedisInstanceParametersPtrOutputWithContext(ctx context.Context) RedisInstanceParametersPtrOutput { +func (o SkeClusterExtensionsArgusPtrOutput) ToSkeClusterExtensionsArgusPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsArgusPtrOutput { return o } -func (o RedisInstanceParametersPtrOutput) Elem() RedisInstanceParametersOutput { - return o.ApplyT(func(v *RedisInstanceParameters) RedisInstanceParameters { +func (o SkeClusterExtensionsArgusPtrOutput) Elem() SkeClusterExtensionsArgusOutput { + return o.ApplyT(func(v *SkeClusterExtensionsArgus) SkeClusterExtensionsArgus { if v != nil { return *v } - var ret RedisInstanceParameters + var ret SkeClusterExtensionsArgus return ret - }).(RedisInstanceParametersOutput) + }).(SkeClusterExtensionsArgusOutput) } -// The number of milliseconds after which the instance is considered down. -func (o RedisInstanceParametersPtrOutput) DownAfterMilliseconds() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *int { +// Argus instance ID to choose which Argus instance is used. Required when enabled is set to `true`. +func (o SkeClusterExtensionsArgusPtrOutput) ArgusInstanceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SkeClusterExtensionsArgus) *string { if v == nil { return nil } - return v.DownAfterMilliseconds - }).(pulumi.IntPtrOutput) + return v.ArgusInstanceId + }).(pulumi.StringPtrOutput) } -// Enable monitoring. -func (o RedisInstanceParametersPtrOutput) EnableMonitoring() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *bool { +// Flag to enable/disable Argus extensions. +func (o SkeClusterExtensionsArgusPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *SkeClusterExtensionsArgus) *bool { if v == nil { return nil } - return v.EnableMonitoring + return &v.Enabled }).(pulumi.BoolPtrOutput) } -// The failover timeout in milliseconds. -func (o RedisInstanceParametersPtrOutput) FailoverTimeout() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *int { - if v == nil { - return nil - } - return v.FailoverTimeout - }).(pulumi.IntPtrOutput) +type SkeClusterExtensionsDns struct { + // Flag to enable/disable DNS extensions + Enabled bool `pulumi:"enabled"` + // Specify a list of domain filters for externalDNS (e.g., `foo.runs.onstackit.cloud`) + Zones []string `pulumi:"zones"` } -// Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. -func (o RedisInstanceParametersPtrOutput) Graphite() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *string { - if v == nil { - return nil - } - return v.Graphite - }).(pulumi.StringPtrOutput) +// SkeClusterExtensionsDnsInput is an input type that accepts SkeClusterExtensionsDnsArgs and SkeClusterExtensionsDnsOutput values. +// You can construct a concrete instance of `SkeClusterExtensionsDnsInput` via: +// +// SkeClusterExtensionsDnsArgs{...} +type SkeClusterExtensionsDnsInput interface { + pulumi.Input + + ToSkeClusterExtensionsDnsOutput() SkeClusterExtensionsDnsOutput + ToSkeClusterExtensionsDnsOutputWithContext(context.Context) SkeClusterExtensionsDnsOutput } -// The lazy eviction enablement (yes or no). -func (o RedisInstanceParametersPtrOutput) LazyfreeLazyEviction() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *string { - if v == nil { - return nil - } - return v.LazyfreeLazyEviction - }).(pulumi.StringPtrOutput) +type SkeClusterExtensionsDnsArgs struct { + // Flag to enable/disable DNS extensions + Enabled pulumi.BoolInput `pulumi:"enabled"` + // Specify a list of domain filters for externalDNS (e.g., `foo.runs.onstackit.cloud`) + Zones pulumi.StringArrayInput `pulumi:"zones"` } -// The lazy expire enablement (yes or no). -func (o RedisInstanceParametersPtrOutput) LazyfreeLazyExpire() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *string { - if v == nil { - return nil - } - return v.LazyfreeLazyExpire - }).(pulumi.StringPtrOutput) +func (SkeClusterExtensionsDnsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterExtensionsDns)(nil)).Elem() } -// The Lua time limit. -func (o RedisInstanceParametersPtrOutput) LuaTimeLimit() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *int { - if v == nil { - return nil - } - return v.LuaTimeLimit - }).(pulumi.IntPtrOutput) +func (i SkeClusterExtensionsDnsArgs) ToSkeClusterExtensionsDnsOutput() SkeClusterExtensionsDnsOutput { + return i.ToSkeClusterExtensionsDnsOutputWithContext(context.Background()) } -// The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. -func (o RedisInstanceParametersPtrOutput) MaxDiskThreshold() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *int { - if v == nil { - return nil - } - return v.MaxDiskThreshold - }).(pulumi.IntPtrOutput) +func (i SkeClusterExtensionsDnsArgs) ToSkeClusterExtensionsDnsOutputWithContext(ctx context.Context) SkeClusterExtensionsDnsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsDnsOutput) } -// The maximum number of clients. -func (o RedisInstanceParametersPtrOutput) Maxclients() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *int { - if v == nil { - return nil - } - return v.Maxclients - }).(pulumi.IntPtrOutput) +func (i SkeClusterExtensionsDnsArgs) ToSkeClusterExtensionsDnsPtrOutput() SkeClusterExtensionsDnsPtrOutput { + return i.ToSkeClusterExtensionsDnsPtrOutputWithContext(context.Background()) } -// The policy to handle the maximum memory (volatile-lru, noeviction, etc). -func (o RedisInstanceParametersPtrOutput) MaxmemoryPolicy() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *string { - if v == nil { - return nil - } - return v.MaxmemoryPolicy - }).(pulumi.StringPtrOutput) +func (i SkeClusterExtensionsDnsArgs) ToSkeClusterExtensionsDnsPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsDnsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsDnsOutput).ToSkeClusterExtensionsDnsPtrOutputWithContext(ctx) } -// The maximum memory samples. -func (o RedisInstanceParametersPtrOutput) MaxmemorySamples() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *int { - if v == nil { - return nil - } - return v.MaxmemorySamples - }).(pulumi.IntPtrOutput) +// SkeClusterExtensionsDnsPtrInput is an input type that accepts SkeClusterExtensionsDnsArgs, SkeClusterExtensionsDnsPtr and SkeClusterExtensionsDnsPtrOutput values. +// You can construct a concrete instance of `SkeClusterExtensionsDnsPtrInput` via: +// +// SkeClusterExtensionsDnsArgs{...} +// +// or: +// +// nil +type SkeClusterExtensionsDnsPtrInput interface { + pulumi.Input + + ToSkeClusterExtensionsDnsPtrOutput() SkeClusterExtensionsDnsPtrOutput + ToSkeClusterExtensionsDnsPtrOutputWithContext(context.Context) SkeClusterExtensionsDnsPtrOutput +} + +type skeClusterExtensionsDnsPtrType SkeClusterExtensionsDnsArgs + +func SkeClusterExtensionsDnsPtr(v *SkeClusterExtensionsDnsArgs) SkeClusterExtensionsDnsPtrInput { + return (*skeClusterExtensionsDnsPtrType)(v) +} + +func (*skeClusterExtensionsDnsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SkeClusterExtensionsDns)(nil)).Elem() +} + +func (i *skeClusterExtensionsDnsPtrType) ToSkeClusterExtensionsDnsPtrOutput() SkeClusterExtensionsDnsPtrOutput { + return i.ToSkeClusterExtensionsDnsPtrOutputWithContext(context.Background()) +} + +func (i *skeClusterExtensionsDnsPtrType) ToSkeClusterExtensionsDnsPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsDnsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsDnsPtrOutput) +} + +type SkeClusterExtensionsDnsOutput struct{ *pulumi.OutputState } + +func (SkeClusterExtensionsDnsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterExtensionsDns)(nil)).Elem() } -// The frequency in seconds at which metrics are emitted. -func (o RedisInstanceParametersPtrOutput) MetricsFrequency() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *int { - if v == nil { - return nil - } - return v.MetricsFrequency - }).(pulumi.IntPtrOutput) +func (o SkeClusterExtensionsDnsOutput) ToSkeClusterExtensionsDnsOutput() SkeClusterExtensionsDnsOutput { + return o } -// The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key -func (o RedisInstanceParametersPtrOutput) MetricsPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *string { - if v == nil { - return nil - } - return v.MetricsPrefix - }).(pulumi.StringPtrOutput) +func (o SkeClusterExtensionsDnsOutput) ToSkeClusterExtensionsDnsOutputWithContext(ctx context.Context) SkeClusterExtensionsDnsOutput { + return o } -// The minimum replicas maximum lag. -func (o RedisInstanceParametersPtrOutput) MinReplicasMaxLag() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *int { - if v == nil { - return nil - } - return v.MinReplicasMaxLag - }).(pulumi.IntPtrOutput) +func (o SkeClusterExtensionsDnsOutput) ToSkeClusterExtensionsDnsPtrOutput() SkeClusterExtensionsDnsPtrOutput { + return o.ToSkeClusterExtensionsDnsPtrOutputWithContext(context.Background()) } -// The ID of the STACKIT monitoring instance. -func (o RedisInstanceParametersPtrOutput) MonitoringInstanceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *string { - if v == nil { - return nil - } - return v.MonitoringInstanceId - }).(pulumi.StringPtrOutput) +func (o SkeClusterExtensionsDnsOutput) ToSkeClusterExtensionsDnsPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsDnsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SkeClusterExtensionsDns) *SkeClusterExtensionsDns { + return &v + }).(SkeClusterExtensionsDnsPtrOutput) } -// The notify keyspace events. -func (o RedisInstanceParametersPtrOutput) NotifyKeyspaceEvents() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *string { - if v == nil { - return nil - } - return v.NotifyKeyspaceEvents - }).(pulumi.StringPtrOutput) +// Flag to enable/disable DNS extensions +func (o SkeClusterExtensionsDnsOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v SkeClusterExtensionsDns) bool { return v.Enabled }).(pulumi.BoolOutput) } -// Comma separated list of IP networks in CIDR notation which are allowed to access this instance. -func (o RedisInstanceParametersPtrOutput) SgwAcl() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *string { - if v == nil { - return nil - } - return v.SgwAcl - }).(pulumi.StringPtrOutput) +// Specify a list of domain filters for externalDNS (e.g., `foo.runs.onstackit.cloud`) +func (o SkeClusterExtensionsDnsOutput) Zones() pulumi.StringArrayOutput { + return o.ApplyT(func(v SkeClusterExtensionsDns) []string { return v.Zones }).(pulumi.StringArrayOutput) } -// The snapshot configuration. -func (o RedisInstanceParametersPtrOutput) Snapshot() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *string { - if v == nil { - return nil - } - return v.Snapshot - }).(pulumi.StringPtrOutput) +type SkeClusterExtensionsDnsPtrOutput struct{ *pulumi.OutputState } + +func (SkeClusterExtensionsDnsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SkeClusterExtensionsDns)(nil)).Elem() } -// List of syslog servers to send logs to. -func (o RedisInstanceParametersPtrOutput) Syslogs() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RedisInstanceParameters) []string { - if v == nil { - return nil - } - return v.Syslogs - }).(pulumi.StringArrayOutput) +func (o SkeClusterExtensionsDnsPtrOutput) ToSkeClusterExtensionsDnsPtrOutput() SkeClusterExtensionsDnsPtrOutput { + return o } -// List of TLS ciphers to use. -func (o RedisInstanceParametersPtrOutput) TlsCiphers() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RedisInstanceParameters) []string { - if v == nil { - return nil +func (o SkeClusterExtensionsDnsPtrOutput) ToSkeClusterExtensionsDnsPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsDnsPtrOutput { + return o +} + +func (o SkeClusterExtensionsDnsPtrOutput) Elem() SkeClusterExtensionsDnsOutput { + return o.ApplyT(func(v *SkeClusterExtensionsDns) SkeClusterExtensionsDns { + if v != nil { + return *v } - return v.TlsCiphers - }).(pulumi.StringArrayOutput) + var ret SkeClusterExtensionsDns + return ret + }).(SkeClusterExtensionsDnsOutput) } -// TLS cipher suites to use. -func (o RedisInstanceParametersPtrOutput) TlsCiphersuites() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *string { +// Flag to enable/disable DNS extensions +func (o SkeClusterExtensionsDnsPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *SkeClusterExtensionsDns) *bool { if v == nil { return nil } - return v.TlsCiphersuites - }).(pulumi.StringPtrOutput) + return &v.Enabled + }).(pulumi.BoolPtrOutput) } -// TLS protocol to use. -func (o RedisInstanceParametersPtrOutput) TlsProtocols() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RedisInstanceParameters) *string { +// Specify a list of domain filters for externalDNS (e.g., `foo.runs.onstackit.cloud`) +func (o SkeClusterExtensionsDnsPtrOutput) Zones() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SkeClusterExtensionsDns) []string { if v == nil { return nil } - return v.TlsProtocols - }).(pulumi.StringPtrOutput) + return v.Zones + }).(pulumi.StringArrayOutput) } -type RoutingTableRouteDestination struct { - // CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported during experimental stage. - Type string `pulumi:"type"` - // An CIDR string. - Value string `pulumi:"value"` +type SkeClusterExtensionsObservability struct { + // Flag to enable/disable Observability extensions. + Enabled bool `pulumi:"enabled"` + // Observability instance ID to choose which Observability instance is used. Required when enabled is set to `true`. + InstanceId *string `pulumi:"instanceId"` } -// RoutingTableRouteDestinationInput is an input type that accepts RoutingTableRouteDestinationArgs and RoutingTableRouteDestinationOutput values. -// You can construct a concrete instance of `RoutingTableRouteDestinationInput` via: +// SkeClusterExtensionsObservabilityInput is an input type that accepts SkeClusterExtensionsObservabilityArgs and SkeClusterExtensionsObservabilityOutput values. +// You can construct a concrete instance of `SkeClusterExtensionsObservabilityInput` via: // -// RoutingTableRouteDestinationArgs{...} -type RoutingTableRouteDestinationInput interface { +// SkeClusterExtensionsObservabilityArgs{...} +type SkeClusterExtensionsObservabilityInput interface { pulumi.Input - ToRoutingTableRouteDestinationOutput() RoutingTableRouteDestinationOutput - ToRoutingTableRouteDestinationOutputWithContext(context.Context) RoutingTableRouteDestinationOutput + ToSkeClusterExtensionsObservabilityOutput() SkeClusterExtensionsObservabilityOutput + ToSkeClusterExtensionsObservabilityOutputWithContext(context.Context) SkeClusterExtensionsObservabilityOutput } -type RoutingTableRouteDestinationArgs struct { - // CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported during experimental stage. - Type pulumi.StringInput `pulumi:"type"` - // An CIDR string. - Value pulumi.StringInput `pulumi:"value"` +type SkeClusterExtensionsObservabilityArgs struct { + // Flag to enable/disable Observability extensions. + Enabled pulumi.BoolInput `pulumi:"enabled"` + // Observability instance ID to choose which Observability instance is used. Required when enabled is set to `true`. + InstanceId pulumi.StringPtrInput `pulumi:"instanceId"` } -func (RoutingTableRouteDestinationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingTableRouteDestination)(nil)).Elem() +func (SkeClusterExtensionsObservabilityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterExtensionsObservability)(nil)).Elem() } -func (i RoutingTableRouteDestinationArgs) ToRoutingTableRouteDestinationOutput() RoutingTableRouteDestinationOutput { - return i.ToRoutingTableRouteDestinationOutputWithContext(context.Background()) +func (i SkeClusterExtensionsObservabilityArgs) ToSkeClusterExtensionsObservabilityOutput() SkeClusterExtensionsObservabilityOutput { + return i.ToSkeClusterExtensionsObservabilityOutputWithContext(context.Background()) } -func (i RoutingTableRouteDestinationArgs) ToRoutingTableRouteDestinationOutputWithContext(ctx context.Context) RoutingTableRouteDestinationOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingTableRouteDestinationOutput) +func (i SkeClusterExtensionsObservabilityArgs) ToSkeClusterExtensionsObservabilityOutputWithContext(ctx context.Context) SkeClusterExtensionsObservabilityOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsObservabilityOutput) } -func (i RoutingTableRouteDestinationArgs) ToRoutingTableRouteDestinationPtrOutput() RoutingTableRouteDestinationPtrOutput { - return i.ToRoutingTableRouteDestinationPtrOutputWithContext(context.Background()) +func (i SkeClusterExtensionsObservabilityArgs) ToSkeClusterExtensionsObservabilityPtrOutput() SkeClusterExtensionsObservabilityPtrOutput { + return i.ToSkeClusterExtensionsObservabilityPtrOutputWithContext(context.Background()) } -func (i RoutingTableRouteDestinationArgs) ToRoutingTableRouteDestinationPtrOutputWithContext(ctx context.Context) RoutingTableRouteDestinationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingTableRouteDestinationOutput).ToRoutingTableRouteDestinationPtrOutputWithContext(ctx) +func (i SkeClusterExtensionsObservabilityArgs) ToSkeClusterExtensionsObservabilityPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsObservabilityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsObservabilityOutput).ToSkeClusterExtensionsObservabilityPtrOutputWithContext(ctx) } -// RoutingTableRouteDestinationPtrInput is an input type that accepts RoutingTableRouteDestinationArgs, RoutingTableRouteDestinationPtr and RoutingTableRouteDestinationPtrOutput values. -// You can construct a concrete instance of `RoutingTableRouteDestinationPtrInput` via: +// SkeClusterExtensionsObservabilityPtrInput is an input type that accepts SkeClusterExtensionsObservabilityArgs, SkeClusterExtensionsObservabilityPtr and SkeClusterExtensionsObservabilityPtrOutput values. +// You can construct a concrete instance of `SkeClusterExtensionsObservabilityPtrInput` via: // -// RoutingTableRouteDestinationArgs{...} +// SkeClusterExtensionsObservabilityArgs{...} // // or: // // nil -type RoutingTableRouteDestinationPtrInput interface { +type SkeClusterExtensionsObservabilityPtrInput interface { pulumi.Input - ToRoutingTableRouteDestinationPtrOutput() RoutingTableRouteDestinationPtrOutput - ToRoutingTableRouteDestinationPtrOutputWithContext(context.Context) RoutingTableRouteDestinationPtrOutput + ToSkeClusterExtensionsObservabilityPtrOutput() SkeClusterExtensionsObservabilityPtrOutput + ToSkeClusterExtensionsObservabilityPtrOutputWithContext(context.Context) SkeClusterExtensionsObservabilityPtrOutput } -type routingTableRouteDestinationPtrType RoutingTableRouteDestinationArgs +type skeClusterExtensionsObservabilityPtrType SkeClusterExtensionsObservabilityArgs -func RoutingTableRouteDestinationPtr(v *RoutingTableRouteDestinationArgs) RoutingTableRouteDestinationPtrInput { - return (*routingTableRouteDestinationPtrType)(v) +func SkeClusterExtensionsObservabilityPtr(v *SkeClusterExtensionsObservabilityArgs) SkeClusterExtensionsObservabilityPtrInput { + return (*skeClusterExtensionsObservabilityPtrType)(v) } -func (*routingTableRouteDestinationPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RoutingTableRouteDestination)(nil)).Elem() +func (*skeClusterExtensionsObservabilityPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SkeClusterExtensionsObservability)(nil)).Elem() } -func (i *routingTableRouteDestinationPtrType) ToRoutingTableRouteDestinationPtrOutput() RoutingTableRouteDestinationPtrOutput { - return i.ToRoutingTableRouteDestinationPtrOutputWithContext(context.Background()) +func (i *skeClusterExtensionsObservabilityPtrType) ToSkeClusterExtensionsObservabilityPtrOutput() SkeClusterExtensionsObservabilityPtrOutput { + return i.ToSkeClusterExtensionsObservabilityPtrOutputWithContext(context.Background()) } -func (i *routingTableRouteDestinationPtrType) ToRoutingTableRouteDestinationPtrOutputWithContext(ctx context.Context) RoutingTableRouteDestinationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingTableRouteDestinationPtrOutput) +func (i *skeClusterExtensionsObservabilityPtrType) ToSkeClusterExtensionsObservabilityPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsObservabilityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsObservabilityPtrOutput) } -type RoutingTableRouteDestinationOutput struct{ *pulumi.OutputState } +type SkeClusterExtensionsObservabilityOutput struct{ *pulumi.OutputState } -func (RoutingTableRouteDestinationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingTableRouteDestination)(nil)).Elem() +func (SkeClusterExtensionsObservabilityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterExtensionsObservability)(nil)).Elem() } -func (o RoutingTableRouteDestinationOutput) ToRoutingTableRouteDestinationOutput() RoutingTableRouteDestinationOutput { +func (o SkeClusterExtensionsObservabilityOutput) ToSkeClusterExtensionsObservabilityOutput() SkeClusterExtensionsObservabilityOutput { return o } -func (o RoutingTableRouteDestinationOutput) ToRoutingTableRouteDestinationOutputWithContext(ctx context.Context) RoutingTableRouteDestinationOutput { +func (o SkeClusterExtensionsObservabilityOutput) ToSkeClusterExtensionsObservabilityOutputWithContext(ctx context.Context) SkeClusterExtensionsObservabilityOutput { return o } -func (o RoutingTableRouteDestinationOutput) ToRoutingTableRouteDestinationPtrOutput() RoutingTableRouteDestinationPtrOutput { - return o.ToRoutingTableRouteDestinationPtrOutputWithContext(context.Background()) +func (o SkeClusterExtensionsObservabilityOutput) ToSkeClusterExtensionsObservabilityPtrOutput() SkeClusterExtensionsObservabilityPtrOutput { + return o.ToSkeClusterExtensionsObservabilityPtrOutputWithContext(context.Background()) } -func (o RoutingTableRouteDestinationOutput) ToRoutingTableRouteDestinationPtrOutputWithContext(ctx context.Context) RoutingTableRouteDestinationPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RoutingTableRouteDestination) *RoutingTableRouteDestination { +func (o SkeClusterExtensionsObservabilityOutput) ToSkeClusterExtensionsObservabilityPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsObservabilityPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SkeClusterExtensionsObservability) *SkeClusterExtensionsObservability { return &v - }).(RoutingTableRouteDestinationPtrOutput) + }).(SkeClusterExtensionsObservabilityPtrOutput) } -// CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported during experimental stage. -func (o RoutingTableRouteDestinationOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v RoutingTableRouteDestination) string { return v.Type }).(pulumi.StringOutput) +// Flag to enable/disable Observability extensions. +func (o SkeClusterExtensionsObservabilityOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v SkeClusterExtensionsObservability) bool { return v.Enabled }).(pulumi.BoolOutput) } -// An CIDR string. -func (o RoutingTableRouteDestinationOutput) Value() pulumi.StringOutput { - return o.ApplyT(func(v RoutingTableRouteDestination) string { return v.Value }).(pulumi.StringOutput) +// Observability instance ID to choose which Observability instance is used. Required when enabled is set to `true`. +func (o SkeClusterExtensionsObservabilityOutput) InstanceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v SkeClusterExtensionsObservability) *string { return v.InstanceId }).(pulumi.StringPtrOutput) } -type RoutingTableRouteDestinationPtrOutput struct{ *pulumi.OutputState } +type SkeClusterExtensionsObservabilityPtrOutput struct{ *pulumi.OutputState } -func (RoutingTableRouteDestinationPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RoutingTableRouteDestination)(nil)).Elem() +func (SkeClusterExtensionsObservabilityPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SkeClusterExtensionsObservability)(nil)).Elem() } -func (o RoutingTableRouteDestinationPtrOutput) ToRoutingTableRouteDestinationPtrOutput() RoutingTableRouteDestinationPtrOutput { +func (o SkeClusterExtensionsObservabilityPtrOutput) ToSkeClusterExtensionsObservabilityPtrOutput() SkeClusterExtensionsObservabilityPtrOutput { return o } -func (o RoutingTableRouteDestinationPtrOutput) ToRoutingTableRouteDestinationPtrOutputWithContext(ctx context.Context) RoutingTableRouteDestinationPtrOutput { +func (o SkeClusterExtensionsObservabilityPtrOutput) ToSkeClusterExtensionsObservabilityPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsObservabilityPtrOutput { return o } -func (o RoutingTableRouteDestinationPtrOutput) Elem() RoutingTableRouteDestinationOutput { - return o.ApplyT(func(v *RoutingTableRouteDestination) RoutingTableRouteDestination { +func (o SkeClusterExtensionsObservabilityPtrOutput) Elem() SkeClusterExtensionsObservabilityOutput { + return o.ApplyT(func(v *SkeClusterExtensionsObservability) SkeClusterExtensionsObservability { if v != nil { return *v } - var ret RoutingTableRouteDestination + var ret SkeClusterExtensionsObservability return ret - }).(RoutingTableRouteDestinationOutput) + }).(SkeClusterExtensionsObservabilityOutput) } -// CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported during experimental stage. -func (o RoutingTableRouteDestinationPtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RoutingTableRouteDestination) *string { +// Flag to enable/disable Observability extensions. +func (o SkeClusterExtensionsObservabilityPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *SkeClusterExtensionsObservability) *bool { if v == nil { return nil } - return &v.Type - }).(pulumi.StringPtrOutput) + return &v.Enabled + }).(pulumi.BoolPtrOutput) } -// An CIDR string. -func (o RoutingTableRouteDestinationPtrOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RoutingTableRouteDestination) *string { +// Observability instance ID to choose which Observability instance is used. Required when enabled is set to `true`. +func (o SkeClusterExtensionsObservabilityPtrOutput) InstanceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SkeClusterExtensionsObservability) *string { if v == nil { return nil } - return &v.Value + return v.InstanceId }).(pulumi.StringPtrOutput) } -type RoutingTableRouteNextHop struct { - // Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. - Type string `pulumi:"type"` - // Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. - Value *string `pulumi:"value"` +type SkeClusterHibernation struct { + // End time of hibernation in crontab syntax. E.g. `0 8 * * *` for waking up the cluster at 8am. + End string `pulumi:"end"` + // Start time of cluster hibernation in crontab syntax. E.g. `0 18 * * *` for starting everyday at 6pm. + Start string `pulumi:"start"` + // Timezone name corresponding to a file in the IANA Time Zone database. i.e. `Europe/Berlin`. + Timezone *string `pulumi:"timezone"` } -// RoutingTableRouteNextHopInput is an input type that accepts RoutingTableRouteNextHopArgs and RoutingTableRouteNextHopOutput values. -// You can construct a concrete instance of `RoutingTableRouteNextHopInput` via: +// SkeClusterHibernationInput is an input type that accepts SkeClusterHibernationArgs and SkeClusterHibernationOutput values. +// You can construct a concrete instance of `SkeClusterHibernationInput` via: // -// RoutingTableRouteNextHopArgs{...} -type RoutingTableRouteNextHopInput interface { +// SkeClusterHibernationArgs{...} +type SkeClusterHibernationInput interface { pulumi.Input - ToRoutingTableRouteNextHopOutput() RoutingTableRouteNextHopOutput - ToRoutingTableRouteNextHopOutputWithContext(context.Context) RoutingTableRouteNextHopOutput -} - -type RoutingTableRouteNextHopArgs struct { - // Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. - Type pulumi.StringInput `pulumi:"type"` - // Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. - Value pulumi.StringPtrInput `pulumi:"value"` -} - -func (RoutingTableRouteNextHopArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingTableRouteNextHop)(nil)).Elem() + ToSkeClusterHibernationOutput() SkeClusterHibernationOutput + ToSkeClusterHibernationOutputWithContext(context.Context) SkeClusterHibernationOutput } -func (i RoutingTableRouteNextHopArgs) ToRoutingTableRouteNextHopOutput() RoutingTableRouteNextHopOutput { - return i.ToRoutingTableRouteNextHopOutputWithContext(context.Background()) +type SkeClusterHibernationArgs struct { + // End time of hibernation in crontab syntax. E.g. `0 8 * * *` for waking up the cluster at 8am. + End pulumi.StringInput `pulumi:"end"` + // Start time of cluster hibernation in crontab syntax. E.g. `0 18 * * *` for starting everyday at 6pm. + Start pulumi.StringInput `pulumi:"start"` + // Timezone name corresponding to a file in the IANA Time Zone database. i.e. `Europe/Berlin`. + Timezone pulumi.StringPtrInput `pulumi:"timezone"` } -func (i RoutingTableRouteNextHopArgs) ToRoutingTableRouteNextHopOutputWithContext(ctx context.Context) RoutingTableRouteNextHopOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingTableRouteNextHopOutput) +func (SkeClusterHibernationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterHibernation)(nil)).Elem() } -func (i RoutingTableRouteNextHopArgs) ToRoutingTableRouteNextHopPtrOutput() RoutingTableRouteNextHopPtrOutput { - return i.ToRoutingTableRouteNextHopPtrOutputWithContext(context.Background()) +func (i SkeClusterHibernationArgs) ToSkeClusterHibernationOutput() SkeClusterHibernationOutput { + return i.ToSkeClusterHibernationOutputWithContext(context.Background()) } -func (i RoutingTableRouteNextHopArgs) ToRoutingTableRouteNextHopPtrOutputWithContext(ctx context.Context) RoutingTableRouteNextHopPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingTableRouteNextHopOutput).ToRoutingTableRouteNextHopPtrOutputWithContext(ctx) +func (i SkeClusterHibernationArgs) ToSkeClusterHibernationOutputWithContext(ctx context.Context) SkeClusterHibernationOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterHibernationOutput) } -// RoutingTableRouteNextHopPtrInput is an input type that accepts RoutingTableRouteNextHopArgs, RoutingTableRouteNextHopPtr and RoutingTableRouteNextHopPtrOutput values. -// You can construct a concrete instance of `RoutingTableRouteNextHopPtrInput` via: -// -// RoutingTableRouteNextHopArgs{...} -// -// or: +// SkeClusterHibernationArrayInput is an input type that accepts SkeClusterHibernationArray and SkeClusterHibernationArrayOutput values. +// You can construct a concrete instance of `SkeClusterHibernationArrayInput` via: // -// nil -type RoutingTableRouteNextHopPtrInput interface { +// SkeClusterHibernationArray{ SkeClusterHibernationArgs{...} } +type SkeClusterHibernationArrayInput interface { pulumi.Input - ToRoutingTableRouteNextHopPtrOutput() RoutingTableRouteNextHopPtrOutput - ToRoutingTableRouteNextHopPtrOutputWithContext(context.Context) RoutingTableRouteNextHopPtrOutput + ToSkeClusterHibernationArrayOutput() SkeClusterHibernationArrayOutput + ToSkeClusterHibernationArrayOutputWithContext(context.Context) SkeClusterHibernationArrayOutput } -type routingTableRouteNextHopPtrType RoutingTableRouteNextHopArgs - -func RoutingTableRouteNextHopPtr(v *RoutingTableRouteNextHopArgs) RoutingTableRouteNextHopPtrInput { - return (*routingTableRouteNextHopPtrType)(v) -} +type SkeClusterHibernationArray []SkeClusterHibernationInput -func (*routingTableRouteNextHopPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RoutingTableRouteNextHop)(nil)).Elem() +func (SkeClusterHibernationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SkeClusterHibernation)(nil)).Elem() } -func (i *routingTableRouteNextHopPtrType) ToRoutingTableRouteNextHopPtrOutput() RoutingTableRouteNextHopPtrOutput { - return i.ToRoutingTableRouteNextHopPtrOutputWithContext(context.Background()) +func (i SkeClusterHibernationArray) ToSkeClusterHibernationArrayOutput() SkeClusterHibernationArrayOutput { + return i.ToSkeClusterHibernationArrayOutputWithContext(context.Background()) } -func (i *routingTableRouteNextHopPtrType) ToRoutingTableRouteNextHopPtrOutputWithContext(ctx context.Context) RoutingTableRouteNextHopPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingTableRouteNextHopPtrOutput) +func (i SkeClusterHibernationArray) ToSkeClusterHibernationArrayOutputWithContext(ctx context.Context) SkeClusterHibernationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterHibernationArrayOutput) } -type RoutingTableRouteNextHopOutput struct{ *pulumi.OutputState } +type SkeClusterHibernationOutput struct{ *pulumi.OutputState } -func (RoutingTableRouteNextHopOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingTableRouteNextHop)(nil)).Elem() +func (SkeClusterHibernationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterHibernation)(nil)).Elem() } -func (o RoutingTableRouteNextHopOutput) ToRoutingTableRouteNextHopOutput() RoutingTableRouteNextHopOutput { +func (o SkeClusterHibernationOutput) ToSkeClusterHibernationOutput() SkeClusterHibernationOutput { return o } -func (o RoutingTableRouteNextHopOutput) ToRoutingTableRouteNextHopOutputWithContext(ctx context.Context) RoutingTableRouteNextHopOutput { +func (o SkeClusterHibernationOutput) ToSkeClusterHibernationOutputWithContext(ctx context.Context) SkeClusterHibernationOutput { return o } -func (o RoutingTableRouteNextHopOutput) ToRoutingTableRouteNextHopPtrOutput() RoutingTableRouteNextHopPtrOutput { - return o.ToRoutingTableRouteNextHopPtrOutputWithContext(context.Background()) -} - -func (o RoutingTableRouteNextHopOutput) ToRoutingTableRouteNextHopPtrOutputWithContext(ctx context.Context) RoutingTableRouteNextHopPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RoutingTableRouteNextHop) *RoutingTableRouteNextHop { - return &v - }).(RoutingTableRouteNextHopPtrOutput) +// End time of hibernation in crontab syntax. E.g. `0 8 * * *` for waking up the cluster at 8am. +func (o SkeClusterHibernationOutput) End() pulumi.StringOutput { + return o.ApplyT(func(v SkeClusterHibernation) string { return v.End }).(pulumi.StringOutput) } -// Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. -func (o RoutingTableRouteNextHopOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v RoutingTableRouteNextHop) string { return v.Type }).(pulumi.StringOutput) +// Start time of cluster hibernation in crontab syntax. E.g. `0 18 * * *` for starting everyday at 6pm. +func (o SkeClusterHibernationOutput) Start() pulumi.StringOutput { + return o.ApplyT(func(v SkeClusterHibernation) string { return v.Start }).(pulumi.StringOutput) } -// Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. -func (o RoutingTableRouteNextHopOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v RoutingTableRouteNextHop) *string { return v.Value }).(pulumi.StringPtrOutput) +// Timezone name corresponding to a file in the IANA Time Zone database. i.e. `Europe/Berlin`. +func (o SkeClusterHibernationOutput) Timezone() pulumi.StringPtrOutput { + return o.ApplyT(func(v SkeClusterHibernation) *string { return v.Timezone }).(pulumi.StringPtrOutput) } -type RoutingTableRouteNextHopPtrOutput struct{ *pulumi.OutputState } +type SkeClusterHibernationArrayOutput struct{ *pulumi.OutputState } -func (RoutingTableRouteNextHopPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RoutingTableRouteNextHop)(nil)).Elem() +func (SkeClusterHibernationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SkeClusterHibernation)(nil)).Elem() } -func (o RoutingTableRouteNextHopPtrOutput) ToRoutingTableRouteNextHopPtrOutput() RoutingTableRouteNextHopPtrOutput { +func (o SkeClusterHibernationArrayOutput) ToSkeClusterHibernationArrayOutput() SkeClusterHibernationArrayOutput { return o } -func (o RoutingTableRouteNextHopPtrOutput) ToRoutingTableRouteNextHopPtrOutputWithContext(ctx context.Context) RoutingTableRouteNextHopPtrOutput { +func (o SkeClusterHibernationArrayOutput) ToSkeClusterHibernationArrayOutputWithContext(ctx context.Context) SkeClusterHibernationArrayOutput { return o } -func (o RoutingTableRouteNextHopPtrOutput) Elem() RoutingTableRouteNextHopOutput { - return o.ApplyT(func(v *RoutingTableRouteNextHop) RoutingTableRouteNextHop { - if v != nil { - return *v - } - var ret RoutingTableRouteNextHop - return ret - }).(RoutingTableRouteNextHopOutput) -} - -// Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. -func (o RoutingTableRouteNextHopPtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RoutingTableRouteNextHop) *string { - if v == nil { - return nil - } - return &v.Type - }).(pulumi.StringPtrOutput) -} - -// Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. -func (o RoutingTableRouteNextHopPtrOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RoutingTableRouteNextHop) *string { - if v == nil { - return nil - } - return v.Value - }).(pulumi.StringPtrOutput) +func (o SkeClusterHibernationArrayOutput) Index(i pulumi.IntInput) SkeClusterHibernationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SkeClusterHibernation { + return vs[0].([]SkeClusterHibernation)[vs[1].(int)] + }).(SkeClusterHibernationOutput) } -type SecurityGroupRuleIcmpParameters struct { - // ICMP code. Can be set if the protocol is ICMP. - Code int `pulumi:"code"` - // ICMP type. Can be set if the protocol is ICMP. - Type int `pulumi:"type"` +type SkeClusterMaintenance struct { + // Flag to enable/disable auto-updates of the Kubernetes version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). + EnableKubernetesVersionUpdates *bool `pulumi:"enableKubernetesVersionUpdates"` + // Flag to enable/disable auto-updates of the OS image version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). + EnableMachineImageVersionUpdates *bool `pulumi:"enableMachineImageVersionUpdates"` + // Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. + End string `pulumi:"end"` + // Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. + Start string `pulumi:"start"` } -// SecurityGroupRuleIcmpParametersInput is an input type that accepts SecurityGroupRuleIcmpParametersArgs and SecurityGroupRuleIcmpParametersOutput values. -// You can construct a concrete instance of `SecurityGroupRuleIcmpParametersInput` via: +// SkeClusterMaintenanceInput is an input type that accepts SkeClusterMaintenanceArgs and SkeClusterMaintenanceOutput values. +// You can construct a concrete instance of `SkeClusterMaintenanceInput` via: // -// SecurityGroupRuleIcmpParametersArgs{...} -type SecurityGroupRuleIcmpParametersInput interface { +// SkeClusterMaintenanceArgs{...} +type SkeClusterMaintenanceInput interface { pulumi.Input - ToSecurityGroupRuleIcmpParametersOutput() SecurityGroupRuleIcmpParametersOutput - ToSecurityGroupRuleIcmpParametersOutputWithContext(context.Context) SecurityGroupRuleIcmpParametersOutput + ToSkeClusterMaintenanceOutput() SkeClusterMaintenanceOutput + ToSkeClusterMaintenanceOutputWithContext(context.Context) SkeClusterMaintenanceOutput } -type SecurityGroupRuleIcmpParametersArgs struct { - // ICMP code. Can be set if the protocol is ICMP. - Code pulumi.IntInput `pulumi:"code"` - // ICMP type. Can be set if the protocol is ICMP. - Type pulumi.IntInput `pulumi:"type"` +type SkeClusterMaintenanceArgs struct { + // Flag to enable/disable auto-updates of the Kubernetes version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). + EnableKubernetesVersionUpdates pulumi.BoolPtrInput `pulumi:"enableKubernetesVersionUpdates"` + // Flag to enable/disable auto-updates of the OS image version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). + EnableMachineImageVersionUpdates pulumi.BoolPtrInput `pulumi:"enableMachineImageVersionUpdates"` + // Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. + End pulumi.StringInput `pulumi:"end"` + // Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. + Start pulumi.StringInput `pulumi:"start"` } -func (SecurityGroupRuleIcmpParametersArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityGroupRuleIcmpParameters)(nil)).Elem() +func (SkeClusterMaintenanceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterMaintenance)(nil)).Elem() } -func (i SecurityGroupRuleIcmpParametersArgs) ToSecurityGroupRuleIcmpParametersOutput() SecurityGroupRuleIcmpParametersOutput { - return i.ToSecurityGroupRuleIcmpParametersOutputWithContext(context.Background()) +func (i SkeClusterMaintenanceArgs) ToSkeClusterMaintenanceOutput() SkeClusterMaintenanceOutput { + return i.ToSkeClusterMaintenanceOutputWithContext(context.Background()) } -func (i SecurityGroupRuleIcmpParametersArgs) ToSecurityGroupRuleIcmpParametersOutputWithContext(ctx context.Context) SecurityGroupRuleIcmpParametersOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRuleIcmpParametersOutput) +func (i SkeClusterMaintenanceArgs) ToSkeClusterMaintenanceOutputWithContext(ctx context.Context) SkeClusterMaintenanceOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterMaintenanceOutput) } -func (i SecurityGroupRuleIcmpParametersArgs) ToSecurityGroupRuleIcmpParametersPtrOutput() SecurityGroupRuleIcmpParametersPtrOutput { - return i.ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(context.Background()) +func (i SkeClusterMaintenanceArgs) ToSkeClusterMaintenancePtrOutput() SkeClusterMaintenancePtrOutput { + return i.ToSkeClusterMaintenancePtrOutputWithContext(context.Background()) } -func (i SecurityGroupRuleIcmpParametersArgs) ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(ctx context.Context) SecurityGroupRuleIcmpParametersPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRuleIcmpParametersOutput).ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(ctx) +func (i SkeClusterMaintenanceArgs) ToSkeClusterMaintenancePtrOutputWithContext(ctx context.Context) SkeClusterMaintenancePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterMaintenanceOutput).ToSkeClusterMaintenancePtrOutputWithContext(ctx) } -// SecurityGroupRuleIcmpParametersPtrInput is an input type that accepts SecurityGroupRuleIcmpParametersArgs, SecurityGroupRuleIcmpParametersPtr and SecurityGroupRuleIcmpParametersPtrOutput values. -// You can construct a concrete instance of `SecurityGroupRuleIcmpParametersPtrInput` via: +// SkeClusterMaintenancePtrInput is an input type that accepts SkeClusterMaintenanceArgs, SkeClusterMaintenancePtr and SkeClusterMaintenancePtrOutput values. +// You can construct a concrete instance of `SkeClusterMaintenancePtrInput` via: // -// SecurityGroupRuleIcmpParametersArgs{...} +// SkeClusterMaintenanceArgs{...} // // or: // // nil -type SecurityGroupRuleIcmpParametersPtrInput interface { +type SkeClusterMaintenancePtrInput interface { pulumi.Input - ToSecurityGroupRuleIcmpParametersPtrOutput() SecurityGroupRuleIcmpParametersPtrOutput - ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(context.Context) SecurityGroupRuleIcmpParametersPtrOutput + ToSkeClusterMaintenancePtrOutput() SkeClusterMaintenancePtrOutput + ToSkeClusterMaintenancePtrOutputWithContext(context.Context) SkeClusterMaintenancePtrOutput } -type securityGroupRuleIcmpParametersPtrType SecurityGroupRuleIcmpParametersArgs +type skeClusterMaintenancePtrType SkeClusterMaintenanceArgs -func SecurityGroupRuleIcmpParametersPtr(v *SecurityGroupRuleIcmpParametersArgs) SecurityGroupRuleIcmpParametersPtrInput { - return (*securityGroupRuleIcmpParametersPtrType)(v) +func SkeClusterMaintenancePtr(v *SkeClusterMaintenanceArgs) SkeClusterMaintenancePtrInput { + return (*skeClusterMaintenancePtrType)(v) } -func (*securityGroupRuleIcmpParametersPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityGroupRuleIcmpParameters)(nil)).Elem() +func (*skeClusterMaintenancePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SkeClusterMaintenance)(nil)).Elem() } -func (i *securityGroupRuleIcmpParametersPtrType) ToSecurityGroupRuleIcmpParametersPtrOutput() SecurityGroupRuleIcmpParametersPtrOutput { - return i.ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(context.Background()) +func (i *skeClusterMaintenancePtrType) ToSkeClusterMaintenancePtrOutput() SkeClusterMaintenancePtrOutput { + return i.ToSkeClusterMaintenancePtrOutputWithContext(context.Background()) } -func (i *securityGroupRuleIcmpParametersPtrType) ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(ctx context.Context) SecurityGroupRuleIcmpParametersPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRuleIcmpParametersPtrOutput) +func (i *skeClusterMaintenancePtrType) ToSkeClusterMaintenancePtrOutputWithContext(ctx context.Context) SkeClusterMaintenancePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterMaintenancePtrOutput) } -type SecurityGroupRuleIcmpParametersOutput struct{ *pulumi.OutputState } +type SkeClusterMaintenanceOutput struct{ *pulumi.OutputState } -func (SecurityGroupRuleIcmpParametersOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityGroupRuleIcmpParameters)(nil)).Elem() +func (SkeClusterMaintenanceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterMaintenance)(nil)).Elem() } -func (o SecurityGroupRuleIcmpParametersOutput) ToSecurityGroupRuleIcmpParametersOutput() SecurityGroupRuleIcmpParametersOutput { +func (o SkeClusterMaintenanceOutput) ToSkeClusterMaintenanceOutput() SkeClusterMaintenanceOutput { return o } -func (o SecurityGroupRuleIcmpParametersOutput) ToSecurityGroupRuleIcmpParametersOutputWithContext(ctx context.Context) SecurityGroupRuleIcmpParametersOutput { +func (o SkeClusterMaintenanceOutput) ToSkeClusterMaintenanceOutputWithContext(ctx context.Context) SkeClusterMaintenanceOutput { return o } -func (o SecurityGroupRuleIcmpParametersOutput) ToSecurityGroupRuleIcmpParametersPtrOutput() SecurityGroupRuleIcmpParametersPtrOutput { - return o.ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(context.Background()) +func (o SkeClusterMaintenanceOutput) ToSkeClusterMaintenancePtrOutput() SkeClusterMaintenancePtrOutput { + return o.ToSkeClusterMaintenancePtrOutputWithContext(context.Background()) } -func (o SecurityGroupRuleIcmpParametersOutput) ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(ctx context.Context) SecurityGroupRuleIcmpParametersPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityGroupRuleIcmpParameters) *SecurityGroupRuleIcmpParameters { +func (o SkeClusterMaintenanceOutput) ToSkeClusterMaintenancePtrOutputWithContext(ctx context.Context) SkeClusterMaintenancePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SkeClusterMaintenance) *SkeClusterMaintenance { return &v - }).(SecurityGroupRuleIcmpParametersPtrOutput) + }).(SkeClusterMaintenancePtrOutput) } -// ICMP code. Can be set if the protocol is ICMP. -func (o SecurityGroupRuleIcmpParametersOutput) Code() pulumi.IntOutput { - return o.ApplyT(func(v SecurityGroupRuleIcmpParameters) int { return v.Code }).(pulumi.IntOutput) +// Flag to enable/disable auto-updates of the Kubernetes version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). +func (o SkeClusterMaintenanceOutput) EnableKubernetesVersionUpdates() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SkeClusterMaintenance) *bool { return v.EnableKubernetesVersionUpdates }).(pulumi.BoolPtrOutput) } -// ICMP type. Can be set if the protocol is ICMP. -func (o SecurityGroupRuleIcmpParametersOutput) Type() pulumi.IntOutput { - return o.ApplyT(func(v SecurityGroupRuleIcmpParameters) int { return v.Type }).(pulumi.IntOutput) +// Flag to enable/disable auto-updates of the OS image version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). +func (o SkeClusterMaintenanceOutput) EnableMachineImageVersionUpdates() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SkeClusterMaintenance) *bool { return v.EnableMachineImageVersionUpdates }).(pulumi.BoolPtrOutput) } -type SecurityGroupRuleIcmpParametersPtrOutput struct{ *pulumi.OutputState } +// Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. +func (o SkeClusterMaintenanceOutput) End() pulumi.StringOutput { + return o.ApplyT(func(v SkeClusterMaintenance) string { return v.End }).(pulumi.StringOutput) +} -func (SecurityGroupRuleIcmpParametersPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityGroupRuleIcmpParameters)(nil)).Elem() +// Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. +func (o SkeClusterMaintenanceOutput) Start() pulumi.StringOutput { + return o.ApplyT(func(v SkeClusterMaintenance) string { return v.Start }).(pulumi.StringOutput) } -func (o SecurityGroupRuleIcmpParametersPtrOutput) ToSecurityGroupRuleIcmpParametersPtrOutput() SecurityGroupRuleIcmpParametersPtrOutput { +type SkeClusterMaintenancePtrOutput struct{ *pulumi.OutputState } + +func (SkeClusterMaintenancePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SkeClusterMaintenance)(nil)).Elem() +} + +func (o SkeClusterMaintenancePtrOutput) ToSkeClusterMaintenancePtrOutput() SkeClusterMaintenancePtrOutput { return o } -func (o SecurityGroupRuleIcmpParametersPtrOutput) ToSecurityGroupRuleIcmpParametersPtrOutputWithContext(ctx context.Context) SecurityGroupRuleIcmpParametersPtrOutput { +func (o SkeClusterMaintenancePtrOutput) ToSkeClusterMaintenancePtrOutputWithContext(ctx context.Context) SkeClusterMaintenancePtrOutput { return o } -func (o SecurityGroupRuleIcmpParametersPtrOutput) Elem() SecurityGroupRuleIcmpParametersOutput { - return o.ApplyT(func(v *SecurityGroupRuleIcmpParameters) SecurityGroupRuleIcmpParameters { +func (o SkeClusterMaintenancePtrOutput) Elem() SkeClusterMaintenanceOutput { + return o.ApplyT(func(v *SkeClusterMaintenance) SkeClusterMaintenance { if v != nil { return *v } - var ret SecurityGroupRuleIcmpParameters + var ret SkeClusterMaintenance return ret - }).(SecurityGroupRuleIcmpParametersOutput) + }).(SkeClusterMaintenanceOutput) } -// ICMP code. Can be set if the protocol is ICMP. -func (o SecurityGroupRuleIcmpParametersPtrOutput) Code() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityGroupRuleIcmpParameters) *int { +// Flag to enable/disable auto-updates of the Kubernetes version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). +func (o SkeClusterMaintenancePtrOutput) EnableKubernetesVersionUpdates() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *SkeClusterMaintenance) *bool { if v == nil { return nil } - return &v.Code - }).(pulumi.IntPtrOutput) + return v.EnableKubernetesVersionUpdates + }).(pulumi.BoolPtrOutput) } -// ICMP type. Can be set if the protocol is ICMP. -func (o SecurityGroupRuleIcmpParametersPtrOutput) Type() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityGroupRuleIcmpParameters) *int { +// Flag to enable/disable auto-updates of the OS image version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). +func (o SkeClusterMaintenancePtrOutput) EnableMachineImageVersionUpdates() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *SkeClusterMaintenance) *bool { if v == nil { return nil } - return &v.Type - }).(pulumi.IntPtrOutput) + return v.EnableMachineImageVersionUpdates + }).(pulumi.BoolPtrOutput) } -type SecurityGroupRulePortRange struct { - // The maximum port number. Should be greater or equal to the minimum. - Max int `pulumi:"max"` - // The minimum port number. Should be less or equal to the maximum. - Min int `pulumi:"min"` +// Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. +func (o SkeClusterMaintenancePtrOutput) End() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SkeClusterMaintenance) *string { + if v == nil { + return nil + } + return &v.End + }).(pulumi.StringPtrOutput) } -// SecurityGroupRulePortRangeInput is an input type that accepts SecurityGroupRulePortRangeArgs and SecurityGroupRulePortRangeOutput values. -// You can construct a concrete instance of `SecurityGroupRulePortRangeInput` via: +// Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. +func (o SkeClusterMaintenancePtrOutput) Start() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SkeClusterMaintenance) *string { + if v == nil { + return nil + } + return &v.Start + }).(pulumi.StringPtrOutput) +} + +type SkeClusterNetwork struct { + // ID of the STACKIT Network Area (SNA) network into which the cluster will be deployed. + Id *string `pulumi:"id"` +} + +// SkeClusterNetworkInput is an input type that accepts SkeClusterNetworkArgs and SkeClusterNetworkOutput values. +// You can construct a concrete instance of `SkeClusterNetworkInput` via: // -// SecurityGroupRulePortRangeArgs{...} -type SecurityGroupRulePortRangeInput interface { +// SkeClusterNetworkArgs{...} +type SkeClusterNetworkInput interface { pulumi.Input - ToSecurityGroupRulePortRangeOutput() SecurityGroupRulePortRangeOutput - ToSecurityGroupRulePortRangeOutputWithContext(context.Context) SecurityGroupRulePortRangeOutput + ToSkeClusterNetworkOutput() SkeClusterNetworkOutput + ToSkeClusterNetworkOutputWithContext(context.Context) SkeClusterNetworkOutput } -type SecurityGroupRulePortRangeArgs struct { - // The maximum port number. Should be greater or equal to the minimum. - Max pulumi.IntInput `pulumi:"max"` - // The minimum port number. Should be less or equal to the maximum. - Min pulumi.IntInput `pulumi:"min"` +type SkeClusterNetworkArgs struct { + // ID of the STACKIT Network Area (SNA) network into which the cluster will be deployed. + Id pulumi.StringPtrInput `pulumi:"id"` } -func (SecurityGroupRulePortRangeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityGroupRulePortRange)(nil)).Elem() +func (SkeClusterNetworkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterNetwork)(nil)).Elem() } -func (i SecurityGroupRulePortRangeArgs) ToSecurityGroupRulePortRangeOutput() SecurityGroupRulePortRangeOutput { - return i.ToSecurityGroupRulePortRangeOutputWithContext(context.Background()) +func (i SkeClusterNetworkArgs) ToSkeClusterNetworkOutput() SkeClusterNetworkOutput { + return i.ToSkeClusterNetworkOutputWithContext(context.Background()) } -func (i SecurityGroupRulePortRangeArgs) ToSecurityGroupRulePortRangeOutputWithContext(ctx context.Context) SecurityGroupRulePortRangeOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRulePortRangeOutput) +func (i SkeClusterNetworkArgs) ToSkeClusterNetworkOutputWithContext(ctx context.Context) SkeClusterNetworkOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterNetworkOutput) } -func (i SecurityGroupRulePortRangeArgs) ToSecurityGroupRulePortRangePtrOutput() SecurityGroupRulePortRangePtrOutput { - return i.ToSecurityGroupRulePortRangePtrOutputWithContext(context.Background()) +func (i SkeClusterNetworkArgs) ToSkeClusterNetworkPtrOutput() SkeClusterNetworkPtrOutput { + return i.ToSkeClusterNetworkPtrOutputWithContext(context.Background()) } -func (i SecurityGroupRulePortRangeArgs) ToSecurityGroupRulePortRangePtrOutputWithContext(ctx context.Context) SecurityGroupRulePortRangePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRulePortRangeOutput).ToSecurityGroupRulePortRangePtrOutputWithContext(ctx) +func (i SkeClusterNetworkArgs) ToSkeClusterNetworkPtrOutputWithContext(ctx context.Context) SkeClusterNetworkPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterNetworkOutput).ToSkeClusterNetworkPtrOutputWithContext(ctx) } -// SecurityGroupRulePortRangePtrInput is an input type that accepts SecurityGroupRulePortRangeArgs, SecurityGroupRulePortRangePtr and SecurityGroupRulePortRangePtrOutput values. -// You can construct a concrete instance of `SecurityGroupRulePortRangePtrInput` via: +// SkeClusterNetworkPtrInput is an input type that accepts SkeClusterNetworkArgs, SkeClusterNetworkPtr and SkeClusterNetworkPtrOutput values. +// You can construct a concrete instance of `SkeClusterNetworkPtrInput` via: // -// SecurityGroupRulePortRangeArgs{...} +// SkeClusterNetworkArgs{...} // // or: // // nil -type SecurityGroupRulePortRangePtrInput interface { +type SkeClusterNetworkPtrInput interface { pulumi.Input - ToSecurityGroupRulePortRangePtrOutput() SecurityGroupRulePortRangePtrOutput - ToSecurityGroupRulePortRangePtrOutputWithContext(context.Context) SecurityGroupRulePortRangePtrOutput + ToSkeClusterNetworkPtrOutput() SkeClusterNetworkPtrOutput + ToSkeClusterNetworkPtrOutputWithContext(context.Context) SkeClusterNetworkPtrOutput } -type securityGroupRulePortRangePtrType SecurityGroupRulePortRangeArgs +type skeClusterNetworkPtrType SkeClusterNetworkArgs -func SecurityGroupRulePortRangePtr(v *SecurityGroupRulePortRangeArgs) SecurityGroupRulePortRangePtrInput { - return (*securityGroupRulePortRangePtrType)(v) +func SkeClusterNetworkPtr(v *SkeClusterNetworkArgs) SkeClusterNetworkPtrInput { + return (*skeClusterNetworkPtrType)(v) } -func (*securityGroupRulePortRangePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityGroupRulePortRange)(nil)).Elem() +func (*skeClusterNetworkPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SkeClusterNetwork)(nil)).Elem() } -func (i *securityGroupRulePortRangePtrType) ToSecurityGroupRulePortRangePtrOutput() SecurityGroupRulePortRangePtrOutput { - return i.ToSecurityGroupRulePortRangePtrOutputWithContext(context.Background()) +func (i *skeClusterNetworkPtrType) ToSkeClusterNetworkPtrOutput() SkeClusterNetworkPtrOutput { + return i.ToSkeClusterNetworkPtrOutputWithContext(context.Background()) } -func (i *securityGroupRulePortRangePtrType) ToSecurityGroupRulePortRangePtrOutputWithContext(ctx context.Context) SecurityGroupRulePortRangePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRulePortRangePtrOutput) +func (i *skeClusterNetworkPtrType) ToSkeClusterNetworkPtrOutputWithContext(ctx context.Context) SkeClusterNetworkPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterNetworkPtrOutput) } -type SecurityGroupRulePortRangeOutput struct{ *pulumi.OutputState } +type SkeClusterNetworkOutput struct{ *pulumi.OutputState } -func (SecurityGroupRulePortRangeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityGroupRulePortRange)(nil)).Elem() +func (SkeClusterNetworkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterNetwork)(nil)).Elem() } -func (o SecurityGroupRulePortRangeOutput) ToSecurityGroupRulePortRangeOutput() SecurityGroupRulePortRangeOutput { +func (o SkeClusterNetworkOutput) ToSkeClusterNetworkOutput() SkeClusterNetworkOutput { return o } -func (o SecurityGroupRulePortRangeOutput) ToSecurityGroupRulePortRangeOutputWithContext(ctx context.Context) SecurityGroupRulePortRangeOutput { +func (o SkeClusterNetworkOutput) ToSkeClusterNetworkOutputWithContext(ctx context.Context) SkeClusterNetworkOutput { return o } -func (o SecurityGroupRulePortRangeOutput) ToSecurityGroupRulePortRangePtrOutput() SecurityGroupRulePortRangePtrOutput { - return o.ToSecurityGroupRulePortRangePtrOutputWithContext(context.Background()) +func (o SkeClusterNetworkOutput) ToSkeClusterNetworkPtrOutput() SkeClusterNetworkPtrOutput { + return o.ToSkeClusterNetworkPtrOutputWithContext(context.Background()) } -func (o SecurityGroupRulePortRangeOutput) ToSecurityGroupRulePortRangePtrOutputWithContext(ctx context.Context) SecurityGroupRulePortRangePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityGroupRulePortRange) *SecurityGroupRulePortRange { +func (o SkeClusterNetworkOutput) ToSkeClusterNetworkPtrOutputWithContext(ctx context.Context) SkeClusterNetworkPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SkeClusterNetwork) *SkeClusterNetwork { return &v - }).(SecurityGroupRulePortRangePtrOutput) -} - -// The maximum port number. Should be greater or equal to the minimum. -func (o SecurityGroupRulePortRangeOutput) Max() pulumi.IntOutput { - return o.ApplyT(func(v SecurityGroupRulePortRange) int { return v.Max }).(pulumi.IntOutput) + }).(SkeClusterNetworkPtrOutput) } -// The minimum port number. Should be less or equal to the maximum. -func (o SecurityGroupRulePortRangeOutput) Min() pulumi.IntOutput { - return o.ApplyT(func(v SecurityGroupRulePortRange) int { return v.Min }).(pulumi.IntOutput) +// ID of the STACKIT Network Area (SNA) network into which the cluster will be deployed. +func (o SkeClusterNetworkOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v SkeClusterNetwork) *string { return v.Id }).(pulumi.StringPtrOutput) } -type SecurityGroupRulePortRangePtrOutput struct{ *pulumi.OutputState } +type SkeClusterNetworkPtrOutput struct{ *pulumi.OutputState } -func (SecurityGroupRulePortRangePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityGroupRulePortRange)(nil)).Elem() +func (SkeClusterNetworkPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SkeClusterNetwork)(nil)).Elem() } -func (o SecurityGroupRulePortRangePtrOutput) ToSecurityGroupRulePortRangePtrOutput() SecurityGroupRulePortRangePtrOutput { +func (o SkeClusterNetworkPtrOutput) ToSkeClusterNetworkPtrOutput() SkeClusterNetworkPtrOutput { return o } -func (o SecurityGroupRulePortRangePtrOutput) ToSecurityGroupRulePortRangePtrOutputWithContext(ctx context.Context) SecurityGroupRulePortRangePtrOutput { +func (o SkeClusterNetworkPtrOutput) ToSkeClusterNetworkPtrOutputWithContext(ctx context.Context) SkeClusterNetworkPtrOutput { return o } -func (o SecurityGroupRulePortRangePtrOutput) Elem() SecurityGroupRulePortRangeOutput { - return o.ApplyT(func(v *SecurityGroupRulePortRange) SecurityGroupRulePortRange { +func (o SkeClusterNetworkPtrOutput) Elem() SkeClusterNetworkOutput { + return o.ApplyT(func(v *SkeClusterNetwork) SkeClusterNetwork { if v != nil { return *v - } - var ret SecurityGroupRulePortRange - return ret - }).(SecurityGroupRulePortRangeOutput) -} - -// The maximum port number. Should be greater or equal to the minimum. -func (o SecurityGroupRulePortRangePtrOutput) Max() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityGroupRulePortRange) *int { - if v == nil { - return nil - } - return &v.Max - }).(pulumi.IntPtrOutput) + } + var ret SkeClusterNetwork + return ret + }).(SkeClusterNetworkOutput) } -// The minimum port number. Should be less or equal to the maximum. -func (o SecurityGroupRulePortRangePtrOutput) Min() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityGroupRulePortRange) *int { +// ID of the STACKIT Network Area (SNA) network into which the cluster will be deployed. +func (o SkeClusterNetworkPtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SkeClusterNetwork) *string { if v == nil { return nil } - return &v.Min - }).(pulumi.IntPtrOutput) + return v.Id + }).(pulumi.StringPtrOutput) } -type SecurityGroupRuleProtocol struct { - // The protocol name which the rule should match. Either `name` or `number` must be provided. Possible values are: `ah`, `dccp`, `egp`, `esp`, `gre`, `icmp`, `igmp`, `ipip`, `ipv6-encap`, `ipv6-frag`, `ipv6-icmp`, `ipv6-nonxt`, `ipv6-opts`, `ipv6-route`, `ospf`, `pgm`, `rsvp`, `sctp`, `tcp`, `udp`, `udplite`, `vrrp`. - Name *string `pulumi:"name"` - // The protocol number which the rule should match. Either `name` or `number` must be provided. - Number *int `pulumi:"number"` +type SkeClusterNodePool struct { + // Allow system components to run on this node pool. + AllowSystemComponents *bool `pulumi:"allowSystemComponents"` + // Specify a list of availability zones. E.g. `eu01-m` + AvailabilityZones []string `pulumi:"availabilityZones"` + // Specifies the container runtime. Defaults to `containerd` + Cri *string `pulumi:"cri"` + // Labels to add to each node. + Labels map[string]string `pulumi:"labels"` + // The machine type. + MachineType string `pulumi:"machineType"` + // 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 `maxSurge` and `maxUnavailable` fields cannot both be unset at the same time. + MaxSurge *int `pulumi:"maxSurge"` + // 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 `maxSurge` and `maxUnavailable` fields cannot both be unset at the same time. + MaxUnavailable *int `pulumi:"maxUnavailable"` + // Maximum number of nodes in the pool. + Maximum int `pulumi:"maximum"` + // Minimum number of nodes in the pool. + Minimum int `pulumi:"minimum"` + // Specifies the name of the node pool. + Name string `pulumi:"name"` + // The name of the OS image. Defaults to `flatcar`. + OsName *string `pulumi:"osName"` + // This field is deprecated, use `osVersionMin` to configure the version and `osVersionUsed` to get the currently used version instead. + // + // Deprecated: Use `osVersionMin` to configure the version and `osVersionUsed` to get the currently used version instead. Setting a specific OS image version will cause errors during minor OS upgrades due to forced updates. + OsVersion *string `pulumi:"osVersion"` + // 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 & 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 `osVersionUsed` field. + OsVersionMin *string `pulumi:"osVersionMin"` + // Full OS image version used. For example, if 3815.2 was set in `osVersionMin`, 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). + OsVersionUsed *string `pulumi:"osVersionUsed"` + // Specifies a taint list as defined below. + Taints []SkeClusterNodePoolTaint `pulumi:"taints"` + // The volume size in GB. Defaults to `20` + VolumeSize *int `pulumi:"volumeSize"` + // Specifies the volume type. Defaults to `storagePremiumPerf1`. + VolumeType *string `pulumi:"volumeType"` } -// SecurityGroupRuleProtocolInput is an input type that accepts SecurityGroupRuleProtocolArgs and SecurityGroupRuleProtocolOutput values. -// You can construct a concrete instance of `SecurityGroupRuleProtocolInput` via: +// SkeClusterNodePoolInput is an input type that accepts SkeClusterNodePoolArgs and SkeClusterNodePoolOutput values. +// You can construct a concrete instance of `SkeClusterNodePoolInput` via: // -// SecurityGroupRuleProtocolArgs{...} -type SecurityGroupRuleProtocolInput interface { +// SkeClusterNodePoolArgs{...} +type SkeClusterNodePoolInput interface { pulumi.Input - ToSecurityGroupRuleProtocolOutput() SecurityGroupRuleProtocolOutput - ToSecurityGroupRuleProtocolOutputWithContext(context.Context) SecurityGroupRuleProtocolOutput -} - -type SecurityGroupRuleProtocolArgs struct { - // The protocol name which the rule should match. Either `name` or `number` must be provided. Possible values are: `ah`, `dccp`, `egp`, `esp`, `gre`, `icmp`, `igmp`, `ipip`, `ipv6-encap`, `ipv6-frag`, `ipv6-icmp`, `ipv6-nonxt`, `ipv6-opts`, `ipv6-route`, `ospf`, `pgm`, `rsvp`, `sctp`, `tcp`, `udp`, `udplite`, `vrrp`. - Name pulumi.StringPtrInput `pulumi:"name"` - // The protocol number which the rule should match. Either `name` or `number` must be provided. - Number pulumi.IntPtrInput `pulumi:"number"` -} - -func (SecurityGroupRuleProtocolArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityGroupRuleProtocol)(nil)).Elem() + ToSkeClusterNodePoolOutput() SkeClusterNodePoolOutput + ToSkeClusterNodePoolOutputWithContext(context.Context) SkeClusterNodePoolOutput } -func (i SecurityGroupRuleProtocolArgs) ToSecurityGroupRuleProtocolOutput() SecurityGroupRuleProtocolOutput { - return i.ToSecurityGroupRuleProtocolOutputWithContext(context.Background()) +type SkeClusterNodePoolArgs struct { + // Allow system components to run on this node pool. + AllowSystemComponents pulumi.BoolPtrInput `pulumi:"allowSystemComponents"` + // Specify a list of availability zones. E.g. `eu01-m` + AvailabilityZones pulumi.StringArrayInput `pulumi:"availabilityZones"` + // Specifies the container runtime. Defaults to `containerd` + Cri pulumi.StringPtrInput `pulumi:"cri"` + // Labels to add to each node. + Labels pulumi.StringMapInput `pulumi:"labels"` + // The machine type. + MachineType pulumi.StringInput `pulumi:"machineType"` + // 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 `maxSurge` and `maxUnavailable` fields cannot both be unset at the same time. + MaxSurge pulumi.IntPtrInput `pulumi:"maxSurge"` + // 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 `maxSurge` and `maxUnavailable` fields cannot both be unset at the same time. + MaxUnavailable pulumi.IntPtrInput `pulumi:"maxUnavailable"` + // Maximum number of nodes in the pool. + Maximum pulumi.IntInput `pulumi:"maximum"` + // Minimum number of nodes in the pool. + Minimum pulumi.IntInput `pulumi:"minimum"` + // Specifies the name of the node pool. + Name pulumi.StringInput `pulumi:"name"` + // The name of the OS image. Defaults to `flatcar`. + OsName pulumi.StringPtrInput `pulumi:"osName"` + // This field is deprecated, use `osVersionMin` to configure the version and `osVersionUsed` to get the currently used version instead. + // + // Deprecated: Use `osVersionMin` to configure the version and `osVersionUsed` to get the currently used version instead. Setting a specific OS image version will cause errors during minor OS upgrades due to forced updates. + OsVersion pulumi.StringPtrInput `pulumi:"osVersion"` + // 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 & 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 `osVersionUsed` field. + OsVersionMin pulumi.StringPtrInput `pulumi:"osVersionMin"` + // Full OS image version used. For example, if 3815.2 was set in `osVersionMin`, 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). + OsVersionUsed pulumi.StringPtrInput `pulumi:"osVersionUsed"` + // Specifies a taint list as defined below. + Taints SkeClusterNodePoolTaintArrayInput `pulumi:"taints"` + // The volume size in GB. Defaults to `20` + VolumeSize pulumi.IntPtrInput `pulumi:"volumeSize"` + // Specifies the volume type. Defaults to `storagePremiumPerf1`. + VolumeType pulumi.StringPtrInput `pulumi:"volumeType"` } -func (i SecurityGroupRuleProtocolArgs) ToSecurityGroupRuleProtocolOutputWithContext(ctx context.Context) SecurityGroupRuleProtocolOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRuleProtocolOutput) +func (SkeClusterNodePoolArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterNodePool)(nil)).Elem() } -func (i SecurityGroupRuleProtocolArgs) ToSecurityGroupRuleProtocolPtrOutput() SecurityGroupRuleProtocolPtrOutput { - return i.ToSecurityGroupRuleProtocolPtrOutputWithContext(context.Background()) +func (i SkeClusterNodePoolArgs) ToSkeClusterNodePoolOutput() SkeClusterNodePoolOutput { + return i.ToSkeClusterNodePoolOutputWithContext(context.Background()) } -func (i SecurityGroupRuleProtocolArgs) ToSecurityGroupRuleProtocolPtrOutputWithContext(ctx context.Context) SecurityGroupRuleProtocolPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRuleProtocolOutput).ToSecurityGroupRuleProtocolPtrOutputWithContext(ctx) +func (i SkeClusterNodePoolArgs) ToSkeClusterNodePoolOutputWithContext(ctx context.Context) SkeClusterNodePoolOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterNodePoolOutput) } -// SecurityGroupRuleProtocolPtrInput is an input type that accepts SecurityGroupRuleProtocolArgs, SecurityGroupRuleProtocolPtr and SecurityGroupRuleProtocolPtrOutput values. -// You can construct a concrete instance of `SecurityGroupRuleProtocolPtrInput` via: -// -// SecurityGroupRuleProtocolArgs{...} -// -// or: +// SkeClusterNodePoolArrayInput is an input type that accepts SkeClusterNodePoolArray and SkeClusterNodePoolArrayOutput values. +// You can construct a concrete instance of `SkeClusterNodePoolArrayInput` via: // -// nil -type SecurityGroupRuleProtocolPtrInput interface { +// SkeClusterNodePoolArray{ SkeClusterNodePoolArgs{...} } +type SkeClusterNodePoolArrayInput interface { pulumi.Input - ToSecurityGroupRuleProtocolPtrOutput() SecurityGroupRuleProtocolPtrOutput - ToSecurityGroupRuleProtocolPtrOutputWithContext(context.Context) SecurityGroupRuleProtocolPtrOutput + ToSkeClusterNodePoolArrayOutput() SkeClusterNodePoolArrayOutput + ToSkeClusterNodePoolArrayOutputWithContext(context.Context) SkeClusterNodePoolArrayOutput } -type securityGroupRuleProtocolPtrType SecurityGroupRuleProtocolArgs - -func SecurityGroupRuleProtocolPtr(v *SecurityGroupRuleProtocolArgs) SecurityGroupRuleProtocolPtrInput { - return (*securityGroupRuleProtocolPtrType)(v) -} +type SkeClusterNodePoolArray []SkeClusterNodePoolInput -func (*securityGroupRuleProtocolPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityGroupRuleProtocol)(nil)).Elem() +func (SkeClusterNodePoolArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SkeClusterNodePool)(nil)).Elem() } -func (i *securityGroupRuleProtocolPtrType) ToSecurityGroupRuleProtocolPtrOutput() SecurityGroupRuleProtocolPtrOutput { - return i.ToSecurityGroupRuleProtocolPtrOutputWithContext(context.Background()) +func (i SkeClusterNodePoolArray) ToSkeClusterNodePoolArrayOutput() SkeClusterNodePoolArrayOutput { + return i.ToSkeClusterNodePoolArrayOutputWithContext(context.Background()) } -func (i *securityGroupRuleProtocolPtrType) ToSecurityGroupRuleProtocolPtrOutputWithContext(ctx context.Context) SecurityGroupRuleProtocolPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupRuleProtocolPtrOutput) +func (i SkeClusterNodePoolArray) ToSkeClusterNodePoolArrayOutputWithContext(ctx context.Context) SkeClusterNodePoolArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterNodePoolArrayOutput) } -type SecurityGroupRuleProtocolOutput struct{ *pulumi.OutputState } +type SkeClusterNodePoolOutput struct{ *pulumi.OutputState } -func (SecurityGroupRuleProtocolOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityGroupRuleProtocol)(nil)).Elem() +func (SkeClusterNodePoolOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterNodePool)(nil)).Elem() } -func (o SecurityGroupRuleProtocolOutput) ToSecurityGroupRuleProtocolOutput() SecurityGroupRuleProtocolOutput { +func (o SkeClusterNodePoolOutput) ToSkeClusterNodePoolOutput() SkeClusterNodePoolOutput { return o } -func (o SecurityGroupRuleProtocolOutput) ToSecurityGroupRuleProtocolOutputWithContext(ctx context.Context) SecurityGroupRuleProtocolOutput { +func (o SkeClusterNodePoolOutput) ToSkeClusterNodePoolOutputWithContext(ctx context.Context) SkeClusterNodePoolOutput { return o } -func (o SecurityGroupRuleProtocolOutput) ToSecurityGroupRuleProtocolPtrOutput() SecurityGroupRuleProtocolPtrOutput { - return o.ToSecurityGroupRuleProtocolPtrOutputWithContext(context.Background()) +// Allow system components to run on this node pool. +func (o SkeClusterNodePoolOutput) AllowSystemComponents() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SkeClusterNodePool) *bool { return v.AllowSystemComponents }).(pulumi.BoolPtrOutput) } -func (o SecurityGroupRuleProtocolOutput) ToSecurityGroupRuleProtocolPtrOutputWithContext(ctx context.Context) SecurityGroupRuleProtocolPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityGroupRuleProtocol) *SecurityGroupRuleProtocol { - return &v - }).(SecurityGroupRuleProtocolPtrOutput) +// Specify a list of availability zones. E.g. `eu01-m` +func (o SkeClusterNodePoolOutput) AvailabilityZones() pulumi.StringArrayOutput { + return o.ApplyT(func(v SkeClusterNodePool) []string { return v.AvailabilityZones }).(pulumi.StringArrayOutput) } -// The protocol name which the rule should match. Either `name` or `number` must be provided. Possible values are: `ah`, `dccp`, `egp`, `esp`, `gre`, `icmp`, `igmp`, `ipip`, `ipv6-encap`, `ipv6-frag`, `ipv6-icmp`, `ipv6-nonxt`, `ipv6-opts`, `ipv6-route`, `ospf`, `pgm`, `rsvp`, `sctp`, `tcp`, `udp`, `udplite`, `vrrp`. -func (o SecurityGroupRuleProtocolOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityGroupRuleProtocol) *string { return v.Name }).(pulumi.StringPtrOutput) +// Specifies the container runtime. Defaults to `containerd` +func (o SkeClusterNodePoolOutput) Cri() pulumi.StringPtrOutput { + return o.ApplyT(func(v SkeClusterNodePool) *string { return v.Cri }).(pulumi.StringPtrOutput) } -// The protocol number which the rule should match. Either `name` or `number` must be provided. -func (o SecurityGroupRuleProtocolOutput) Number() pulumi.IntPtrOutput { - return o.ApplyT(func(v SecurityGroupRuleProtocol) *int { return v.Number }).(pulumi.IntPtrOutput) +// Labels to add to each node. +func (o SkeClusterNodePoolOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v SkeClusterNodePool) map[string]string { return v.Labels }).(pulumi.StringMapOutput) } -type SecurityGroupRuleProtocolPtrOutput struct{ *pulumi.OutputState } +// The machine type. +func (o SkeClusterNodePoolOutput) MachineType() pulumi.StringOutput { + return o.ApplyT(func(v SkeClusterNodePool) string { return v.MachineType }).(pulumi.StringOutput) +} -func (SecurityGroupRuleProtocolPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityGroupRuleProtocol)(nil)).Elem() +// 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 `maxSurge` and `maxUnavailable` fields cannot both be unset at the same time. +func (o SkeClusterNodePoolOutput) MaxSurge() pulumi.IntPtrOutput { + return o.ApplyT(func(v SkeClusterNodePool) *int { return v.MaxSurge }).(pulumi.IntPtrOutput) } -func (o SecurityGroupRuleProtocolPtrOutput) ToSecurityGroupRuleProtocolPtrOutput() SecurityGroupRuleProtocolPtrOutput { - return o +// 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 `maxSurge` and `maxUnavailable` fields cannot both be unset at the same time. +func (o SkeClusterNodePoolOutput) MaxUnavailable() pulumi.IntPtrOutput { + return o.ApplyT(func(v SkeClusterNodePool) *int { return v.MaxUnavailable }).(pulumi.IntPtrOutput) } -func (o SecurityGroupRuleProtocolPtrOutput) ToSecurityGroupRuleProtocolPtrOutputWithContext(ctx context.Context) SecurityGroupRuleProtocolPtrOutput { - return o +// Maximum number of nodes in the pool. +func (o SkeClusterNodePoolOutput) Maximum() pulumi.IntOutput { + return o.ApplyT(func(v SkeClusterNodePool) int { return v.Maximum }).(pulumi.IntOutput) } -func (o SecurityGroupRuleProtocolPtrOutput) Elem() SecurityGroupRuleProtocolOutput { - return o.ApplyT(func(v *SecurityGroupRuleProtocol) SecurityGroupRuleProtocol { - if v != nil { - return *v - } - var ret SecurityGroupRuleProtocol - return ret - }).(SecurityGroupRuleProtocolOutput) +// Minimum number of nodes in the pool. +func (o SkeClusterNodePoolOutput) Minimum() pulumi.IntOutput { + return o.ApplyT(func(v SkeClusterNodePool) int { return v.Minimum }).(pulumi.IntOutput) } -// The protocol name which the rule should match. Either `name` or `number` must be provided. Possible values are: `ah`, `dccp`, `egp`, `esp`, `gre`, `icmp`, `igmp`, `ipip`, `ipv6-encap`, `ipv6-frag`, `ipv6-icmp`, `ipv6-nonxt`, `ipv6-opts`, `ipv6-route`, `ospf`, `pgm`, `rsvp`, `sctp`, `tcp`, `udp`, `udplite`, `vrrp`. -func (o SecurityGroupRuleProtocolPtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityGroupRuleProtocol) *string { - if v == nil { - return nil - } - return v.Name - }).(pulumi.StringPtrOutput) +// Specifies the name of the node pool. +func (o SkeClusterNodePoolOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v SkeClusterNodePool) string { return v.Name }).(pulumi.StringOutput) } -// The protocol number which the rule should match. Either `name` or `number` must be provided. -func (o SecurityGroupRuleProtocolPtrOutput) Number() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityGroupRuleProtocol) *int { - if v == nil { - return nil - } - return v.Number - }).(pulumi.IntPtrOutput) +// The name of the OS image. Defaults to `flatcar`. +func (o SkeClusterNodePoolOutput) OsName() pulumi.StringPtrOutput { + return o.ApplyT(func(v SkeClusterNodePool) *string { return v.OsName }).(pulumi.StringPtrOutput) +} + +// This field is deprecated, use `osVersionMin` to configure the version and `osVersionUsed` to get the currently used version instead. +// +// Deprecated: Use `osVersionMin` to configure the version and `osVersionUsed` to get the currently used version instead. Setting a specific OS image version will cause errors during minor OS upgrades due to forced updates. +func (o SkeClusterNodePoolOutput) OsVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v SkeClusterNodePool) *string { return v.OsVersion }).(pulumi.StringPtrOutput) } -type ServerBackupScheduleBackupProperties struct { - Name string `pulumi:"name"` - RetentionPeriod int `pulumi:"retentionPeriod"` - VolumeIds []string `pulumi:"volumeIds"` +// 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 & 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 `osVersionUsed` field. +func (o SkeClusterNodePoolOutput) OsVersionMin() pulumi.StringPtrOutput { + return o.ApplyT(func(v SkeClusterNodePool) *string { return v.OsVersionMin }).(pulumi.StringPtrOutput) } -// ServerBackupScheduleBackupPropertiesInput is an input type that accepts ServerBackupScheduleBackupPropertiesArgs and ServerBackupScheduleBackupPropertiesOutput values. -// You can construct a concrete instance of `ServerBackupScheduleBackupPropertiesInput` via: -// -// ServerBackupScheduleBackupPropertiesArgs{...} -type ServerBackupScheduleBackupPropertiesInput interface { - pulumi.Input +// Full OS image version used. For example, if 3815.2 was set in `osVersionMin`, 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). +func (o SkeClusterNodePoolOutput) OsVersionUsed() pulumi.StringPtrOutput { + return o.ApplyT(func(v SkeClusterNodePool) *string { return v.OsVersionUsed }).(pulumi.StringPtrOutput) +} - ToServerBackupScheduleBackupPropertiesOutput() ServerBackupScheduleBackupPropertiesOutput - ToServerBackupScheduleBackupPropertiesOutputWithContext(context.Context) ServerBackupScheduleBackupPropertiesOutput +// Specifies a taint list as defined below. +func (o SkeClusterNodePoolOutput) Taints() SkeClusterNodePoolTaintArrayOutput { + return o.ApplyT(func(v SkeClusterNodePool) []SkeClusterNodePoolTaint { return v.Taints }).(SkeClusterNodePoolTaintArrayOutput) } -type ServerBackupScheduleBackupPropertiesArgs struct { - Name pulumi.StringInput `pulumi:"name"` - RetentionPeriod pulumi.IntInput `pulumi:"retentionPeriod"` - VolumeIds pulumi.StringArrayInput `pulumi:"volumeIds"` +// The volume size in GB. Defaults to `20` +func (o SkeClusterNodePoolOutput) VolumeSize() pulumi.IntPtrOutput { + return o.ApplyT(func(v SkeClusterNodePool) *int { return v.VolumeSize }).(pulumi.IntPtrOutput) } -func (ServerBackupScheduleBackupPropertiesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ServerBackupScheduleBackupProperties)(nil)).Elem() +// Specifies the volume type. Defaults to `storagePremiumPerf1`. +func (o SkeClusterNodePoolOutput) VolumeType() pulumi.StringPtrOutput { + return o.ApplyT(func(v SkeClusterNodePool) *string { return v.VolumeType }).(pulumi.StringPtrOutput) } -func (i ServerBackupScheduleBackupPropertiesArgs) ToServerBackupScheduleBackupPropertiesOutput() ServerBackupScheduleBackupPropertiesOutput { - return i.ToServerBackupScheduleBackupPropertiesOutputWithContext(context.Background()) +type SkeClusterNodePoolArrayOutput struct{ *pulumi.OutputState } + +func (SkeClusterNodePoolArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SkeClusterNodePool)(nil)).Elem() } -func (i ServerBackupScheduleBackupPropertiesArgs) ToServerBackupScheduleBackupPropertiesOutputWithContext(ctx context.Context) ServerBackupScheduleBackupPropertiesOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServerBackupScheduleBackupPropertiesOutput) +func (o SkeClusterNodePoolArrayOutput) ToSkeClusterNodePoolArrayOutput() SkeClusterNodePoolArrayOutput { + return o } -func (i ServerBackupScheduleBackupPropertiesArgs) ToServerBackupScheduleBackupPropertiesPtrOutput() ServerBackupScheduleBackupPropertiesPtrOutput { - return i.ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(context.Background()) +func (o SkeClusterNodePoolArrayOutput) ToSkeClusterNodePoolArrayOutputWithContext(ctx context.Context) SkeClusterNodePoolArrayOutput { + return o } -func (i ServerBackupScheduleBackupPropertiesArgs) ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(ctx context.Context) ServerBackupScheduleBackupPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServerBackupScheduleBackupPropertiesOutput).ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(ctx) +func (o SkeClusterNodePoolArrayOutput) Index(i pulumi.IntInput) SkeClusterNodePoolOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SkeClusterNodePool { + return vs[0].([]SkeClusterNodePool)[vs[1].(int)] + }).(SkeClusterNodePoolOutput) } -// ServerBackupScheduleBackupPropertiesPtrInput is an input type that accepts ServerBackupScheduleBackupPropertiesArgs, ServerBackupScheduleBackupPropertiesPtr and ServerBackupScheduleBackupPropertiesPtrOutput values. -// You can construct a concrete instance of `ServerBackupScheduleBackupPropertiesPtrInput` via: -// -// ServerBackupScheduleBackupPropertiesArgs{...} -// -// or: +type SkeClusterNodePoolTaint struct { + // The taint effect. E.g `PreferNoSchedule`. + Effect string `pulumi:"effect"` + // Taint key to be applied to a node. + Key string `pulumi:"key"` + // Taint value corresponding to the taint key. + Value *string `pulumi:"value"` +} + +// SkeClusterNodePoolTaintInput is an input type that accepts SkeClusterNodePoolTaintArgs and SkeClusterNodePoolTaintOutput values. +// You can construct a concrete instance of `SkeClusterNodePoolTaintInput` via: // -// nil -type ServerBackupScheduleBackupPropertiesPtrInput interface { +// SkeClusterNodePoolTaintArgs{...} +type SkeClusterNodePoolTaintInput interface { pulumi.Input - ToServerBackupScheduleBackupPropertiesPtrOutput() ServerBackupScheduleBackupPropertiesPtrOutput - ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(context.Context) ServerBackupScheduleBackupPropertiesPtrOutput + ToSkeClusterNodePoolTaintOutput() SkeClusterNodePoolTaintOutput + ToSkeClusterNodePoolTaintOutputWithContext(context.Context) SkeClusterNodePoolTaintOutput } -type serverBackupScheduleBackupPropertiesPtrType ServerBackupScheduleBackupPropertiesArgs - -func ServerBackupScheduleBackupPropertiesPtr(v *ServerBackupScheduleBackupPropertiesArgs) ServerBackupScheduleBackupPropertiesPtrInput { - return (*serverBackupScheduleBackupPropertiesPtrType)(v) +type SkeClusterNodePoolTaintArgs struct { + // The taint effect. E.g `PreferNoSchedule`. + Effect pulumi.StringInput `pulumi:"effect"` + // Taint key to be applied to a node. + Key pulumi.StringInput `pulumi:"key"` + // Taint value corresponding to the taint key. + Value pulumi.StringPtrInput `pulumi:"value"` } -func (*serverBackupScheduleBackupPropertiesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ServerBackupScheduleBackupProperties)(nil)).Elem() +func (SkeClusterNodePoolTaintArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterNodePoolTaint)(nil)).Elem() } -func (i *serverBackupScheduleBackupPropertiesPtrType) ToServerBackupScheduleBackupPropertiesPtrOutput() ServerBackupScheduleBackupPropertiesPtrOutput { - return i.ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(context.Background()) +func (i SkeClusterNodePoolTaintArgs) ToSkeClusterNodePoolTaintOutput() SkeClusterNodePoolTaintOutput { + return i.ToSkeClusterNodePoolTaintOutputWithContext(context.Background()) } -func (i *serverBackupScheduleBackupPropertiesPtrType) ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(ctx context.Context) ServerBackupScheduleBackupPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServerBackupScheduleBackupPropertiesPtrOutput) +func (i SkeClusterNodePoolTaintArgs) ToSkeClusterNodePoolTaintOutputWithContext(ctx context.Context) SkeClusterNodePoolTaintOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterNodePoolTaintOutput) } -type ServerBackupScheduleBackupPropertiesOutput struct{ *pulumi.OutputState } +// SkeClusterNodePoolTaintArrayInput is an input type that accepts SkeClusterNodePoolTaintArray and SkeClusterNodePoolTaintArrayOutput values. +// You can construct a concrete instance of `SkeClusterNodePoolTaintArrayInput` via: +// +// SkeClusterNodePoolTaintArray{ SkeClusterNodePoolTaintArgs{...} } +type SkeClusterNodePoolTaintArrayInput interface { + pulumi.Input -func (ServerBackupScheduleBackupPropertiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ServerBackupScheduleBackupProperties)(nil)).Elem() + ToSkeClusterNodePoolTaintArrayOutput() SkeClusterNodePoolTaintArrayOutput + ToSkeClusterNodePoolTaintArrayOutputWithContext(context.Context) SkeClusterNodePoolTaintArrayOutput } -func (o ServerBackupScheduleBackupPropertiesOutput) ToServerBackupScheduleBackupPropertiesOutput() ServerBackupScheduleBackupPropertiesOutput { - return o -} +type SkeClusterNodePoolTaintArray []SkeClusterNodePoolTaintInput -func (o ServerBackupScheduleBackupPropertiesOutput) ToServerBackupScheduleBackupPropertiesOutputWithContext(ctx context.Context) ServerBackupScheduleBackupPropertiesOutput { - return o +func (SkeClusterNodePoolTaintArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SkeClusterNodePoolTaint)(nil)).Elem() } -func (o ServerBackupScheduleBackupPropertiesOutput) ToServerBackupScheduleBackupPropertiesPtrOutput() ServerBackupScheduleBackupPropertiesPtrOutput { - return o.ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(context.Background()) +func (i SkeClusterNodePoolTaintArray) ToSkeClusterNodePoolTaintArrayOutput() SkeClusterNodePoolTaintArrayOutput { + return i.ToSkeClusterNodePoolTaintArrayOutputWithContext(context.Background()) } -func (o ServerBackupScheduleBackupPropertiesOutput) ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(ctx context.Context) ServerBackupScheduleBackupPropertiesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ServerBackupScheduleBackupProperties) *ServerBackupScheduleBackupProperties { - return &v - }).(ServerBackupScheduleBackupPropertiesPtrOutput) +func (i SkeClusterNodePoolTaintArray) ToSkeClusterNodePoolTaintArrayOutputWithContext(ctx context.Context) SkeClusterNodePoolTaintArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkeClusterNodePoolTaintArrayOutput) } -func (o ServerBackupScheduleBackupPropertiesOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v ServerBackupScheduleBackupProperties) string { return v.Name }).(pulumi.StringOutput) -} +type SkeClusterNodePoolTaintOutput struct{ *pulumi.OutputState } -func (o ServerBackupScheduleBackupPropertiesOutput) RetentionPeriod() pulumi.IntOutput { - return o.ApplyT(func(v ServerBackupScheduleBackupProperties) int { return v.RetentionPeriod }).(pulumi.IntOutput) +func (SkeClusterNodePoolTaintOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SkeClusterNodePoolTaint)(nil)).Elem() } -func (o ServerBackupScheduleBackupPropertiesOutput) VolumeIds() pulumi.StringArrayOutput { - return o.ApplyT(func(v ServerBackupScheduleBackupProperties) []string { return v.VolumeIds }).(pulumi.StringArrayOutput) +func (o SkeClusterNodePoolTaintOutput) ToSkeClusterNodePoolTaintOutput() SkeClusterNodePoolTaintOutput { + return o } -type ServerBackupScheduleBackupPropertiesPtrOutput struct{ *pulumi.OutputState } +func (o SkeClusterNodePoolTaintOutput) ToSkeClusterNodePoolTaintOutputWithContext(ctx context.Context) SkeClusterNodePoolTaintOutput { + return o +} -func (ServerBackupScheduleBackupPropertiesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ServerBackupScheduleBackupProperties)(nil)).Elem() +// The taint effect. E.g `PreferNoSchedule`. +func (o SkeClusterNodePoolTaintOutput) Effect() pulumi.StringOutput { + return o.ApplyT(func(v SkeClusterNodePoolTaint) string { return v.Effect }).(pulumi.StringOutput) } -func (o ServerBackupScheduleBackupPropertiesPtrOutput) ToServerBackupScheduleBackupPropertiesPtrOutput() ServerBackupScheduleBackupPropertiesPtrOutput { - return o +// Taint key to be applied to a node. +func (o SkeClusterNodePoolTaintOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v SkeClusterNodePoolTaint) string { return v.Key }).(pulumi.StringOutput) } -func (o ServerBackupScheduleBackupPropertiesPtrOutput) ToServerBackupScheduleBackupPropertiesPtrOutputWithContext(ctx context.Context) ServerBackupScheduleBackupPropertiesPtrOutput { - return o +// Taint value corresponding to the taint key. +func (o SkeClusterNodePoolTaintOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v SkeClusterNodePoolTaint) *string { return v.Value }).(pulumi.StringPtrOutput) } -func (o ServerBackupScheduleBackupPropertiesPtrOutput) Elem() ServerBackupScheduleBackupPropertiesOutput { - return o.ApplyT(func(v *ServerBackupScheduleBackupProperties) ServerBackupScheduleBackupProperties { - if v != nil { - return *v - } - var ret ServerBackupScheduleBackupProperties - return ret - }).(ServerBackupScheduleBackupPropertiesOutput) +type SkeClusterNodePoolTaintArrayOutput struct{ *pulumi.OutputState } + +func (SkeClusterNodePoolTaintArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SkeClusterNodePoolTaint)(nil)).Elem() } -func (o ServerBackupScheduleBackupPropertiesPtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ServerBackupScheduleBackupProperties) *string { - if v == nil { - return nil - } - return &v.Name - }).(pulumi.StringPtrOutput) +func (o SkeClusterNodePoolTaintArrayOutput) ToSkeClusterNodePoolTaintArrayOutput() SkeClusterNodePoolTaintArrayOutput { + return o } -func (o ServerBackupScheduleBackupPropertiesPtrOutput) RetentionPeriod() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ServerBackupScheduleBackupProperties) *int { - if v == nil { - return nil - } - return &v.RetentionPeriod - }).(pulumi.IntPtrOutput) +func (o SkeClusterNodePoolTaintArrayOutput) ToSkeClusterNodePoolTaintArrayOutputWithContext(ctx context.Context) SkeClusterNodePoolTaintArrayOutput { + return o } -func (o ServerBackupScheduleBackupPropertiesPtrOutput) VolumeIds() pulumi.StringArrayOutput { - return o.ApplyT(func(v *ServerBackupScheduleBackupProperties) []string { - if v == nil { - return nil - } - return v.VolumeIds - }).(pulumi.StringArrayOutput) +func (o SkeClusterNodePoolTaintArrayOutput) Index(i pulumi.IntInput) SkeClusterNodePoolTaintOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SkeClusterNodePoolTaint { + return vs[0].([]SkeClusterNodePoolTaint)[vs[1].(int)] + }).(SkeClusterNodePoolTaintOutput) } -type ServerBootVolume struct { - // Delete the volume during the termination of the server. Only allowed when `sourceType` is `image`. - DeleteOnTermination *bool `pulumi:"deleteOnTermination"` - // The ID of the boot volume - Id *string `pulumi:"id"` - // The performance class of the server. - PerformanceClass *string `pulumi:"performanceClass"` - // The size of the boot volume in GB. Must be provided when `sourceType` is `image`. - Size *int `pulumi:"size"` - // The ID of the source, either image ID or volume ID - SourceId string `pulumi:"sourceId"` - // The type of the source. Possible values are: `volume`, `image`. - SourceType string `pulumi:"sourceType"` +type SqlserverflexInstanceFlavor struct { + Cpu int `pulumi:"cpu"` + Description *string `pulumi:"description"` + Id *string `pulumi:"id"` + Ram int `pulumi:"ram"` } -// ServerBootVolumeInput is an input type that accepts ServerBootVolumeArgs and ServerBootVolumeOutput values. -// You can construct a concrete instance of `ServerBootVolumeInput` via: +// SqlserverflexInstanceFlavorInput is an input type that accepts SqlserverflexInstanceFlavorArgs and SqlserverflexInstanceFlavorOutput values. +// You can construct a concrete instance of `SqlserverflexInstanceFlavorInput` via: // -// ServerBootVolumeArgs{...} -type ServerBootVolumeInput interface { +// SqlserverflexInstanceFlavorArgs{...} +type SqlserverflexInstanceFlavorInput interface { pulumi.Input - ToServerBootVolumeOutput() ServerBootVolumeOutput - ToServerBootVolumeOutputWithContext(context.Context) ServerBootVolumeOutput + ToSqlserverflexInstanceFlavorOutput() SqlserverflexInstanceFlavorOutput + ToSqlserverflexInstanceFlavorOutputWithContext(context.Context) SqlserverflexInstanceFlavorOutput } -type ServerBootVolumeArgs struct { - // Delete the volume during the termination of the server. Only allowed when `sourceType` is `image`. - DeleteOnTermination pulumi.BoolPtrInput `pulumi:"deleteOnTermination"` - // The ID of the boot volume - Id pulumi.StringPtrInput `pulumi:"id"` - // The performance class of the server. - PerformanceClass pulumi.StringPtrInput `pulumi:"performanceClass"` - // The size of the boot volume in GB. Must be provided when `sourceType` is `image`. - Size pulumi.IntPtrInput `pulumi:"size"` - // The ID of the source, either image ID or volume ID - SourceId pulumi.StringInput `pulumi:"sourceId"` - // The type of the source. Possible values are: `volume`, `image`. - SourceType pulumi.StringInput `pulumi:"sourceType"` +type SqlserverflexInstanceFlavorArgs struct { + Cpu pulumi.IntInput `pulumi:"cpu"` + Description pulumi.StringPtrInput `pulumi:"description"` + Id pulumi.StringPtrInput `pulumi:"id"` + Ram pulumi.IntInput `pulumi:"ram"` } - -func (ServerBootVolumeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ServerBootVolume)(nil)).Elem() + +func (SqlserverflexInstanceFlavorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SqlserverflexInstanceFlavor)(nil)).Elem() } -func (i ServerBootVolumeArgs) ToServerBootVolumeOutput() ServerBootVolumeOutput { - return i.ToServerBootVolumeOutputWithContext(context.Background()) +func (i SqlserverflexInstanceFlavorArgs) ToSqlserverflexInstanceFlavorOutput() SqlserverflexInstanceFlavorOutput { + return i.ToSqlserverflexInstanceFlavorOutputWithContext(context.Background()) } -func (i ServerBootVolumeArgs) ToServerBootVolumeOutputWithContext(ctx context.Context) ServerBootVolumeOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServerBootVolumeOutput) +func (i SqlserverflexInstanceFlavorArgs) ToSqlserverflexInstanceFlavorOutputWithContext(ctx context.Context) SqlserverflexInstanceFlavorOutput { + return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceFlavorOutput) } -func (i ServerBootVolumeArgs) ToServerBootVolumePtrOutput() ServerBootVolumePtrOutput { - return i.ToServerBootVolumePtrOutputWithContext(context.Background()) +func (i SqlserverflexInstanceFlavorArgs) ToSqlserverflexInstanceFlavorPtrOutput() SqlserverflexInstanceFlavorPtrOutput { + return i.ToSqlserverflexInstanceFlavorPtrOutputWithContext(context.Background()) } -func (i ServerBootVolumeArgs) ToServerBootVolumePtrOutputWithContext(ctx context.Context) ServerBootVolumePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServerBootVolumeOutput).ToServerBootVolumePtrOutputWithContext(ctx) +func (i SqlserverflexInstanceFlavorArgs) ToSqlserverflexInstanceFlavorPtrOutputWithContext(ctx context.Context) SqlserverflexInstanceFlavorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceFlavorOutput).ToSqlserverflexInstanceFlavorPtrOutputWithContext(ctx) } -// ServerBootVolumePtrInput is an input type that accepts ServerBootVolumeArgs, ServerBootVolumePtr and ServerBootVolumePtrOutput values. -// You can construct a concrete instance of `ServerBootVolumePtrInput` via: +// SqlserverflexInstanceFlavorPtrInput is an input type that accepts SqlserverflexInstanceFlavorArgs, SqlserverflexInstanceFlavorPtr and SqlserverflexInstanceFlavorPtrOutput values. +// You can construct a concrete instance of `SqlserverflexInstanceFlavorPtrInput` via: // -// ServerBootVolumeArgs{...} +// SqlserverflexInstanceFlavorArgs{...} // // or: // // nil -type ServerBootVolumePtrInput interface { +type SqlserverflexInstanceFlavorPtrInput interface { pulumi.Input - ToServerBootVolumePtrOutput() ServerBootVolumePtrOutput - ToServerBootVolumePtrOutputWithContext(context.Context) ServerBootVolumePtrOutput + ToSqlserverflexInstanceFlavorPtrOutput() SqlserverflexInstanceFlavorPtrOutput + ToSqlserverflexInstanceFlavorPtrOutputWithContext(context.Context) SqlserverflexInstanceFlavorPtrOutput } -type serverBootVolumePtrType ServerBootVolumeArgs +type sqlserverflexInstanceFlavorPtrType SqlserverflexInstanceFlavorArgs -func ServerBootVolumePtr(v *ServerBootVolumeArgs) ServerBootVolumePtrInput { - return (*serverBootVolumePtrType)(v) +func SqlserverflexInstanceFlavorPtr(v *SqlserverflexInstanceFlavorArgs) SqlserverflexInstanceFlavorPtrInput { + return (*sqlserverflexInstanceFlavorPtrType)(v) } -func (*serverBootVolumePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ServerBootVolume)(nil)).Elem() +func (*sqlserverflexInstanceFlavorPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SqlserverflexInstanceFlavor)(nil)).Elem() } -func (i *serverBootVolumePtrType) ToServerBootVolumePtrOutput() ServerBootVolumePtrOutput { - return i.ToServerBootVolumePtrOutputWithContext(context.Background()) +func (i *sqlserverflexInstanceFlavorPtrType) ToSqlserverflexInstanceFlavorPtrOutput() SqlserverflexInstanceFlavorPtrOutput { + return i.ToSqlserverflexInstanceFlavorPtrOutputWithContext(context.Background()) } -func (i *serverBootVolumePtrType) ToServerBootVolumePtrOutputWithContext(ctx context.Context) ServerBootVolumePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServerBootVolumePtrOutput) +func (i *sqlserverflexInstanceFlavorPtrType) ToSqlserverflexInstanceFlavorPtrOutputWithContext(ctx context.Context) SqlserverflexInstanceFlavorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceFlavorPtrOutput) } -type ServerBootVolumeOutput struct{ *pulumi.OutputState } +type SqlserverflexInstanceFlavorOutput struct{ *pulumi.OutputState } -func (ServerBootVolumeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ServerBootVolume)(nil)).Elem() +func (SqlserverflexInstanceFlavorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SqlserverflexInstanceFlavor)(nil)).Elem() } -func (o ServerBootVolumeOutput) ToServerBootVolumeOutput() ServerBootVolumeOutput { +func (o SqlserverflexInstanceFlavorOutput) ToSqlserverflexInstanceFlavorOutput() SqlserverflexInstanceFlavorOutput { return o } -func (o ServerBootVolumeOutput) ToServerBootVolumeOutputWithContext(ctx context.Context) ServerBootVolumeOutput { +func (o SqlserverflexInstanceFlavorOutput) ToSqlserverflexInstanceFlavorOutputWithContext(ctx context.Context) SqlserverflexInstanceFlavorOutput { return o } -func (o ServerBootVolumeOutput) ToServerBootVolumePtrOutput() ServerBootVolumePtrOutput { - return o.ToServerBootVolumePtrOutputWithContext(context.Background()) +func (o SqlserverflexInstanceFlavorOutput) ToSqlserverflexInstanceFlavorPtrOutput() SqlserverflexInstanceFlavorPtrOutput { + return o.ToSqlserverflexInstanceFlavorPtrOutputWithContext(context.Background()) } -func (o ServerBootVolumeOutput) ToServerBootVolumePtrOutputWithContext(ctx context.Context) ServerBootVolumePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ServerBootVolume) *ServerBootVolume { +func (o SqlserverflexInstanceFlavorOutput) ToSqlserverflexInstanceFlavorPtrOutputWithContext(ctx context.Context) SqlserverflexInstanceFlavorPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SqlserverflexInstanceFlavor) *SqlserverflexInstanceFlavor { return &v - }).(ServerBootVolumePtrOutput) -} - -// Delete the volume during the termination of the server. Only allowed when `sourceType` is `image`. -func (o ServerBootVolumeOutput) DeleteOnTermination() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ServerBootVolume) *bool { return v.DeleteOnTermination }).(pulumi.BoolPtrOutput) -} - -// The ID of the boot volume -func (o ServerBootVolumeOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServerBootVolume) *string { return v.Id }).(pulumi.StringPtrOutput) + }).(SqlserverflexInstanceFlavorPtrOutput) } -// The performance class of the server. -func (o ServerBootVolumeOutput) PerformanceClass() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServerBootVolume) *string { return v.PerformanceClass }).(pulumi.StringPtrOutput) +func (o SqlserverflexInstanceFlavorOutput) Cpu() pulumi.IntOutput { + return o.ApplyT(func(v SqlserverflexInstanceFlavor) int { return v.Cpu }).(pulumi.IntOutput) } -// The size of the boot volume in GB. Must be provided when `sourceType` is `image`. -func (o ServerBootVolumeOutput) Size() pulumi.IntPtrOutput { - return o.ApplyT(func(v ServerBootVolume) *int { return v.Size }).(pulumi.IntPtrOutput) +func (o SqlserverflexInstanceFlavorOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v SqlserverflexInstanceFlavor) *string { return v.Description }).(pulumi.StringPtrOutput) } -// The ID of the source, either image ID or volume ID -func (o ServerBootVolumeOutput) SourceId() pulumi.StringOutput { - return o.ApplyT(func(v ServerBootVolume) string { return v.SourceId }).(pulumi.StringOutput) +func (o SqlserverflexInstanceFlavorOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v SqlserverflexInstanceFlavor) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The type of the source. Possible values are: `volume`, `image`. -func (o ServerBootVolumeOutput) SourceType() pulumi.StringOutput { - return o.ApplyT(func(v ServerBootVolume) string { return v.SourceType }).(pulumi.StringOutput) +func (o SqlserverflexInstanceFlavorOutput) Ram() pulumi.IntOutput { + return o.ApplyT(func(v SqlserverflexInstanceFlavor) int { return v.Ram }).(pulumi.IntOutput) } -type ServerBootVolumePtrOutput struct{ *pulumi.OutputState } +type SqlserverflexInstanceFlavorPtrOutput struct{ *pulumi.OutputState } -func (ServerBootVolumePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ServerBootVolume)(nil)).Elem() +func (SqlserverflexInstanceFlavorPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SqlserverflexInstanceFlavor)(nil)).Elem() } -func (o ServerBootVolumePtrOutput) ToServerBootVolumePtrOutput() ServerBootVolumePtrOutput { +func (o SqlserverflexInstanceFlavorPtrOutput) ToSqlserverflexInstanceFlavorPtrOutput() SqlserverflexInstanceFlavorPtrOutput { return o } -func (o ServerBootVolumePtrOutput) ToServerBootVolumePtrOutputWithContext(ctx context.Context) ServerBootVolumePtrOutput { +func (o SqlserverflexInstanceFlavorPtrOutput) ToSqlserverflexInstanceFlavorPtrOutputWithContext(ctx context.Context) SqlserverflexInstanceFlavorPtrOutput { return o } -func (o ServerBootVolumePtrOutput) Elem() ServerBootVolumeOutput { - return o.ApplyT(func(v *ServerBootVolume) ServerBootVolume { +func (o SqlserverflexInstanceFlavorPtrOutput) Elem() SqlserverflexInstanceFlavorOutput { + return o.ApplyT(func(v *SqlserverflexInstanceFlavor) SqlserverflexInstanceFlavor { if v != nil { return *v } - var ret ServerBootVolume + var ret SqlserverflexInstanceFlavor return ret - }).(ServerBootVolumeOutput) + }).(SqlserverflexInstanceFlavorOutput) } -// Delete the volume during the termination of the server. Only allowed when `sourceType` is `image`. -func (o ServerBootVolumePtrOutput) DeleteOnTermination() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ServerBootVolume) *bool { +func (o SqlserverflexInstanceFlavorPtrOutput) Cpu() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SqlserverflexInstanceFlavor) *int { if v == nil { return nil } - return v.DeleteOnTermination - }).(pulumi.BoolPtrOutput) + return &v.Cpu + }).(pulumi.IntPtrOutput) } -// The ID of the boot volume -func (o ServerBootVolumePtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ServerBootVolume) *string { +func (o SqlserverflexInstanceFlavorPtrOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SqlserverflexInstanceFlavor) *string { if v == nil { return nil } - return v.Id + return v.Description }).(pulumi.StringPtrOutput) } -// The performance class of the server. -func (o ServerBootVolumePtrOutput) PerformanceClass() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ServerBootVolume) *string { +func (o SqlserverflexInstanceFlavorPtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SqlserverflexInstanceFlavor) *string { if v == nil { return nil } - return v.PerformanceClass + return v.Id }).(pulumi.StringPtrOutput) } -// The size of the boot volume in GB. Must be provided when `sourceType` is `image`. -func (o ServerBootVolumePtrOutput) Size() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ServerBootVolume) *int { +func (o SqlserverflexInstanceFlavorPtrOutput) Ram() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SqlserverflexInstanceFlavor) *int { if v == nil { return nil } - return v.Size + return &v.Ram }).(pulumi.IntPtrOutput) } -// The ID of the source, either image ID or volume ID -func (o ServerBootVolumePtrOutput) SourceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ServerBootVolume) *string { - if v == nil { - return nil - } - return &v.SourceId - }).(pulumi.StringPtrOutput) +type SqlserverflexInstanceOptions struct { + Edition *string `pulumi:"edition"` + RetentionDays *int `pulumi:"retentionDays"` } -// The type of the source. Possible values are: `volume`, `image`. -func (o ServerBootVolumePtrOutput) SourceType() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ServerBootVolume) *string { - if v == nil { - return nil - } - return &v.SourceType - }).(pulumi.StringPtrOutput) -} +// SqlserverflexInstanceOptionsInput is an input type that accepts SqlserverflexInstanceOptionsArgs and SqlserverflexInstanceOptionsOutput values. +// You can construct a concrete instance of `SqlserverflexInstanceOptionsInput` via: +// +// SqlserverflexInstanceOptionsArgs{...} +type SqlserverflexInstanceOptionsInput interface { + pulumi.Input -type SfsExportPolicyRule struct { - // Description of the Rule - Description *string `pulumi:"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). - IpAcls []string `pulumi:"ipAcls"` - // 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 - Order int `pulumi:"order"` - // Flag to indicate if client IPs matching this rule can only mount the share in read only mode - ReadOnly *bool `pulumi:"readOnly"` - // Flag to honor set UUID - SetUuid *bool `pulumi:"setUuid"` - // Flag to indicate if client IPs matching this rule have root access on the Share - SuperUser *bool `pulumi:"superUser"` + ToSqlserverflexInstanceOptionsOutput() SqlserverflexInstanceOptionsOutput + ToSqlserverflexInstanceOptionsOutputWithContext(context.Context) SqlserverflexInstanceOptionsOutput } -// SfsExportPolicyRuleInput is an input type that accepts SfsExportPolicyRuleArgs and SfsExportPolicyRuleOutput values. -// You can construct a concrete instance of `SfsExportPolicyRuleInput` via: -// -// SfsExportPolicyRuleArgs{...} -type SfsExportPolicyRuleInput interface { - pulumi.Input +type SqlserverflexInstanceOptionsArgs struct { + Edition pulumi.StringPtrInput `pulumi:"edition"` + RetentionDays pulumi.IntPtrInput `pulumi:"retentionDays"` +} - ToSfsExportPolicyRuleOutput() SfsExportPolicyRuleOutput - ToSfsExportPolicyRuleOutputWithContext(context.Context) SfsExportPolicyRuleOutput +func (SqlserverflexInstanceOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SqlserverflexInstanceOptions)(nil)).Elem() } -type SfsExportPolicyRuleArgs struct { - // Description of the Rule - Description pulumi.StringPtrInput `pulumi:"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). - IpAcls pulumi.StringArrayInput `pulumi:"ipAcls"` - // 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 - Order pulumi.IntInput `pulumi:"order"` - // Flag to indicate if client IPs matching this rule can only mount the share in read only mode - ReadOnly pulumi.BoolPtrInput `pulumi:"readOnly"` - // Flag to honor set UUID - SetUuid pulumi.BoolPtrInput `pulumi:"setUuid"` - // Flag to indicate if client IPs matching this rule have root access on the Share - SuperUser pulumi.BoolPtrInput `pulumi:"superUser"` +func (i SqlserverflexInstanceOptionsArgs) ToSqlserverflexInstanceOptionsOutput() SqlserverflexInstanceOptionsOutput { + return i.ToSqlserverflexInstanceOptionsOutputWithContext(context.Background()) } -func (SfsExportPolicyRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SfsExportPolicyRule)(nil)).Elem() +func (i SqlserverflexInstanceOptionsArgs) ToSqlserverflexInstanceOptionsOutputWithContext(ctx context.Context) SqlserverflexInstanceOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceOptionsOutput) } -func (i SfsExportPolicyRuleArgs) ToSfsExportPolicyRuleOutput() SfsExportPolicyRuleOutput { - return i.ToSfsExportPolicyRuleOutputWithContext(context.Background()) +func (i SqlserverflexInstanceOptionsArgs) ToSqlserverflexInstanceOptionsPtrOutput() SqlserverflexInstanceOptionsPtrOutput { + return i.ToSqlserverflexInstanceOptionsPtrOutputWithContext(context.Background()) } -func (i SfsExportPolicyRuleArgs) ToSfsExportPolicyRuleOutputWithContext(ctx context.Context) SfsExportPolicyRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(SfsExportPolicyRuleOutput) +func (i SqlserverflexInstanceOptionsArgs) ToSqlserverflexInstanceOptionsPtrOutputWithContext(ctx context.Context) SqlserverflexInstanceOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceOptionsOutput).ToSqlserverflexInstanceOptionsPtrOutputWithContext(ctx) } -// SfsExportPolicyRuleArrayInput is an input type that accepts SfsExportPolicyRuleArray and SfsExportPolicyRuleArrayOutput values. -// You can construct a concrete instance of `SfsExportPolicyRuleArrayInput` via: +// SqlserverflexInstanceOptionsPtrInput is an input type that accepts SqlserverflexInstanceOptionsArgs, SqlserverflexInstanceOptionsPtr and SqlserverflexInstanceOptionsPtrOutput values. +// You can construct a concrete instance of `SqlserverflexInstanceOptionsPtrInput` via: // -// SfsExportPolicyRuleArray{ SfsExportPolicyRuleArgs{...} } -type SfsExportPolicyRuleArrayInput interface { +// SqlserverflexInstanceOptionsArgs{...} +// +// or: +// +// nil +type SqlserverflexInstanceOptionsPtrInput interface { pulumi.Input - ToSfsExportPolicyRuleArrayOutput() SfsExportPolicyRuleArrayOutput - ToSfsExportPolicyRuleArrayOutputWithContext(context.Context) SfsExportPolicyRuleArrayOutput + ToSqlserverflexInstanceOptionsPtrOutput() SqlserverflexInstanceOptionsPtrOutput + ToSqlserverflexInstanceOptionsPtrOutputWithContext(context.Context) SqlserverflexInstanceOptionsPtrOutput } -type SfsExportPolicyRuleArray []SfsExportPolicyRuleInput +type sqlserverflexInstanceOptionsPtrType SqlserverflexInstanceOptionsArgs -func (SfsExportPolicyRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SfsExportPolicyRule)(nil)).Elem() +func SqlserverflexInstanceOptionsPtr(v *SqlserverflexInstanceOptionsArgs) SqlserverflexInstanceOptionsPtrInput { + return (*sqlserverflexInstanceOptionsPtrType)(v) } -func (i SfsExportPolicyRuleArray) ToSfsExportPolicyRuleArrayOutput() SfsExportPolicyRuleArrayOutput { - return i.ToSfsExportPolicyRuleArrayOutputWithContext(context.Background()) +func (*sqlserverflexInstanceOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SqlserverflexInstanceOptions)(nil)).Elem() +} + +func (i *sqlserverflexInstanceOptionsPtrType) ToSqlserverflexInstanceOptionsPtrOutput() SqlserverflexInstanceOptionsPtrOutput { + return i.ToSqlserverflexInstanceOptionsPtrOutputWithContext(context.Background()) } -func (i SfsExportPolicyRuleArray) ToSfsExportPolicyRuleArrayOutputWithContext(ctx context.Context) SfsExportPolicyRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SfsExportPolicyRuleArrayOutput) +func (i *sqlserverflexInstanceOptionsPtrType) ToSqlserverflexInstanceOptionsPtrOutputWithContext(ctx context.Context) SqlserverflexInstanceOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceOptionsPtrOutput) } -type SfsExportPolicyRuleOutput struct{ *pulumi.OutputState } +type SqlserverflexInstanceOptionsOutput struct{ *pulumi.OutputState } -func (SfsExportPolicyRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SfsExportPolicyRule)(nil)).Elem() +func (SqlserverflexInstanceOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SqlserverflexInstanceOptions)(nil)).Elem() } -func (o SfsExportPolicyRuleOutput) ToSfsExportPolicyRuleOutput() SfsExportPolicyRuleOutput { +func (o SqlserverflexInstanceOptionsOutput) ToSqlserverflexInstanceOptionsOutput() SqlserverflexInstanceOptionsOutput { return o } -func (o SfsExportPolicyRuleOutput) ToSfsExportPolicyRuleOutputWithContext(ctx context.Context) SfsExportPolicyRuleOutput { +func (o SqlserverflexInstanceOptionsOutput) ToSqlserverflexInstanceOptionsOutputWithContext(ctx context.Context) SqlserverflexInstanceOptionsOutput { return o } -// Description of the Rule -func (o SfsExportPolicyRuleOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v SfsExportPolicyRule) *string { return v.Description }).(pulumi.StringPtrOutput) +func (o SqlserverflexInstanceOptionsOutput) ToSqlserverflexInstanceOptionsPtrOutput() SqlserverflexInstanceOptionsPtrOutput { + return o.ToSqlserverflexInstanceOptionsPtrOutputWithContext(context.Background()) } -// 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). -func (o SfsExportPolicyRuleOutput) IpAcls() pulumi.StringArrayOutput { - return o.ApplyT(func(v SfsExportPolicyRule) []string { return v.IpAcls }).(pulumi.StringArrayOutput) +func (o SqlserverflexInstanceOptionsOutput) ToSqlserverflexInstanceOptionsPtrOutputWithContext(ctx context.Context) SqlserverflexInstanceOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SqlserverflexInstanceOptions) *SqlserverflexInstanceOptions { + return &v + }).(SqlserverflexInstanceOptionsPtrOutput) } -// 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 -func (o SfsExportPolicyRuleOutput) Order() pulumi.IntOutput { - return o.ApplyT(func(v SfsExportPolicyRule) int { return v.Order }).(pulumi.IntOutput) +func (o SqlserverflexInstanceOptionsOutput) Edition() pulumi.StringPtrOutput { + return o.ApplyT(func(v SqlserverflexInstanceOptions) *string { return v.Edition }).(pulumi.StringPtrOutput) } -// Flag to indicate if client IPs matching this rule can only mount the share in read only mode -func (o SfsExportPolicyRuleOutput) ReadOnly() pulumi.BoolPtrOutput { - return o.ApplyT(func(v SfsExportPolicyRule) *bool { return v.ReadOnly }).(pulumi.BoolPtrOutput) +func (o SqlserverflexInstanceOptionsOutput) RetentionDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v SqlserverflexInstanceOptions) *int { return v.RetentionDays }).(pulumi.IntPtrOutput) } -// Flag to honor set UUID -func (o SfsExportPolicyRuleOutput) SetUuid() pulumi.BoolPtrOutput { - return o.ApplyT(func(v SfsExportPolicyRule) *bool { return v.SetUuid }).(pulumi.BoolPtrOutput) -} +type SqlserverflexInstanceOptionsPtrOutput struct{ *pulumi.OutputState } -// Flag to indicate if client IPs matching this rule have root access on the Share -func (o SfsExportPolicyRuleOutput) SuperUser() pulumi.BoolPtrOutput { - return o.ApplyT(func(v SfsExportPolicyRule) *bool { return v.SuperUser }).(pulumi.BoolPtrOutput) +func (SqlserverflexInstanceOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SqlserverflexInstanceOptions)(nil)).Elem() } -type SfsExportPolicyRuleArrayOutput struct{ *pulumi.OutputState } - -func (SfsExportPolicyRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SfsExportPolicyRule)(nil)).Elem() +func (o SqlserverflexInstanceOptionsPtrOutput) ToSqlserverflexInstanceOptionsPtrOutput() SqlserverflexInstanceOptionsPtrOutput { + return o } -func (o SfsExportPolicyRuleArrayOutput) ToSfsExportPolicyRuleArrayOutput() SfsExportPolicyRuleArrayOutput { +func (o SqlserverflexInstanceOptionsPtrOutput) ToSqlserverflexInstanceOptionsPtrOutputWithContext(ctx context.Context) SqlserverflexInstanceOptionsPtrOutput { return o } -func (o SfsExportPolicyRuleArrayOutput) ToSfsExportPolicyRuleArrayOutputWithContext(ctx context.Context) SfsExportPolicyRuleArrayOutput { - return o +func (o SqlserverflexInstanceOptionsPtrOutput) Elem() SqlserverflexInstanceOptionsOutput { + return o.ApplyT(func(v *SqlserverflexInstanceOptions) SqlserverflexInstanceOptions { + if v != nil { + return *v + } + var ret SqlserverflexInstanceOptions + return ret + }).(SqlserverflexInstanceOptionsOutput) } -func (o SfsExportPolicyRuleArrayOutput) Index(i pulumi.IntInput) SfsExportPolicyRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SfsExportPolicyRule { - return vs[0].([]SfsExportPolicyRule)[vs[1].(int)] - }).(SfsExportPolicyRuleOutput) +func (o SqlserverflexInstanceOptionsPtrOutput) Edition() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SqlserverflexInstanceOptions) *string { + if v == nil { + return nil + } + return v.Edition + }).(pulumi.StringPtrOutput) } -type SkeClusterExtensions struct { - // Cluster access control configuration. - Acl *SkeClusterExtensionsAcl `pulumi:"acl"` - // A single argus block as defined below. This field is deprecated and will be removed 06 January 2026. - // - // Deprecated: Use observability instead. - Argus *SkeClusterExtensionsArgus `pulumi:"argus"` - // DNS extension configuration - Dns *SkeClusterExtensionsDns `pulumi:"dns"` - // A single observability block as defined below. - Observability *SkeClusterExtensionsObservability `pulumi:"observability"` +func (o SqlserverflexInstanceOptionsPtrOutput) RetentionDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SqlserverflexInstanceOptions) *int { + if v == nil { + return nil + } + return v.RetentionDays + }).(pulumi.IntPtrOutput) } -// SkeClusterExtensionsInput is an input type that accepts SkeClusterExtensionsArgs and SkeClusterExtensionsOutput values. -// You can construct a concrete instance of `SkeClusterExtensionsInput` via: +type SqlserverflexInstanceStorage struct { + Class *string `pulumi:"class"` + Size *int `pulumi:"size"` +} + +// SqlserverflexInstanceStorageInput is an input type that accepts SqlserverflexInstanceStorageArgs and SqlserverflexInstanceStorageOutput values. +// You can construct a concrete instance of `SqlserverflexInstanceStorageInput` via: // -// SkeClusterExtensionsArgs{...} -type SkeClusterExtensionsInput interface { +// SqlserverflexInstanceStorageArgs{...} +type SqlserverflexInstanceStorageInput interface { pulumi.Input - ToSkeClusterExtensionsOutput() SkeClusterExtensionsOutput - ToSkeClusterExtensionsOutputWithContext(context.Context) SkeClusterExtensionsOutput + ToSqlserverflexInstanceStorageOutput() SqlserverflexInstanceStorageOutput + ToSqlserverflexInstanceStorageOutputWithContext(context.Context) SqlserverflexInstanceStorageOutput } -type SkeClusterExtensionsArgs struct { - // Cluster access control configuration. - Acl SkeClusterExtensionsAclPtrInput `pulumi:"acl"` - // A single argus block as defined below. This field is deprecated and will be removed 06 January 2026. - // - // Deprecated: Use observability instead. - Argus SkeClusterExtensionsArgusPtrInput `pulumi:"argus"` - // DNS extension configuration - Dns SkeClusterExtensionsDnsPtrInput `pulumi:"dns"` - // A single observability block as defined below. - Observability SkeClusterExtensionsObservabilityPtrInput `pulumi:"observability"` +type SqlserverflexInstanceStorageArgs struct { + Class pulumi.StringPtrInput `pulumi:"class"` + Size pulumi.IntPtrInput `pulumi:"size"` } -func (SkeClusterExtensionsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterExtensions)(nil)).Elem() +func (SqlserverflexInstanceStorageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SqlserverflexInstanceStorage)(nil)).Elem() } -func (i SkeClusterExtensionsArgs) ToSkeClusterExtensionsOutput() SkeClusterExtensionsOutput { - return i.ToSkeClusterExtensionsOutputWithContext(context.Background()) +func (i SqlserverflexInstanceStorageArgs) ToSqlserverflexInstanceStorageOutput() SqlserverflexInstanceStorageOutput { + return i.ToSqlserverflexInstanceStorageOutputWithContext(context.Background()) } -func (i SkeClusterExtensionsArgs) ToSkeClusterExtensionsOutputWithContext(ctx context.Context) SkeClusterExtensionsOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsOutput) +func (i SqlserverflexInstanceStorageArgs) ToSqlserverflexInstanceStorageOutputWithContext(ctx context.Context) SqlserverflexInstanceStorageOutput { + return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceStorageOutput) } -func (i SkeClusterExtensionsArgs) ToSkeClusterExtensionsPtrOutput() SkeClusterExtensionsPtrOutput { - return i.ToSkeClusterExtensionsPtrOutputWithContext(context.Background()) +func (i SqlserverflexInstanceStorageArgs) ToSqlserverflexInstanceStoragePtrOutput() SqlserverflexInstanceStoragePtrOutput { + return i.ToSqlserverflexInstanceStoragePtrOutputWithContext(context.Background()) } -func (i SkeClusterExtensionsArgs) ToSkeClusterExtensionsPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsOutput).ToSkeClusterExtensionsPtrOutputWithContext(ctx) +func (i SqlserverflexInstanceStorageArgs) ToSqlserverflexInstanceStoragePtrOutputWithContext(ctx context.Context) SqlserverflexInstanceStoragePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceStorageOutput).ToSqlserverflexInstanceStoragePtrOutputWithContext(ctx) } -// SkeClusterExtensionsPtrInput is an input type that accepts SkeClusterExtensionsArgs, SkeClusterExtensionsPtr and SkeClusterExtensionsPtrOutput values. -// You can construct a concrete instance of `SkeClusterExtensionsPtrInput` via: +// SqlserverflexInstanceStoragePtrInput is an input type that accepts SqlserverflexInstanceStorageArgs, SqlserverflexInstanceStoragePtr and SqlserverflexInstanceStoragePtrOutput values. +// You can construct a concrete instance of `SqlserverflexInstanceStoragePtrInput` via: // -// SkeClusterExtensionsArgs{...} +// SqlserverflexInstanceStorageArgs{...} // // or: // // nil -type SkeClusterExtensionsPtrInput interface { +type SqlserverflexInstanceStoragePtrInput interface { pulumi.Input - ToSkeClusterExtensionsPtrOutput() SkeClusterExtensionsPtrOutput - ToSkeClusterExtensionsPtrOutputWithContext(context.Context) SkeClusterExtensionsPtrOutput + ToSqlserverflexInstanceStoragePtrOutput() SqlserverflexInstanceStoragePtrOutput + ToSqlserverflexInstanceStoragePtrOutputWithContext(context.Context) SqlserverflexInstanceStoragePtrOutput } -type skeClusterExtensionsPtrType SkeClusterExtensionsArgs +type sqlserverflexInstanceStoragePtrType SqlserverflexInstanceStorageArgs -func SkeClusterExtensionsPtr(v *SkeClusterExtensionsArgs) SkeClusterExtensionsPtrInput { - return (*skeClusterExtensionsPtrType)(v) +func SqlserverflexInstanceStoragePtr(v *SqlserverflexInstanceStorageArgs) SqlserverflexInstanceStoragePtrInput { + return (*sqlserverflexInstanceStoragePtrType)(v) } -func (*skeClusterExtensionsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SkeClusterExtensions)(nil)).Elem() +func (*sqlserverflexInstanceStoragePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SqlserverflexInstanceStorage)(nil)).Elem() } -func (i *skeClusterExtensionsPtrType) ToSkeClusterExtensionsPtrOutput() SkeClusterExtensionsPtrOutput { - return i.ToSkeClusterExtensionsPtrOutputWithContext(context.Background()) +func (i *sqlserverflexInstanceStoragePtrType) ToSqlserverflexInstanceStoragePtrOutput() SqlserverflexInstanceStoragePtrOutput { + return i.ToSqlserverflexInstanceStoragePtrOutputWithContext(context.Background()) } -func (i *skeClusterExtensionsPtrType) ToSkeClusterExtensionsPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsPtrOutput) +func (i *sqlserverflexInstanceStoragePtrType) ToSqlserverflexInstanceStoragePtrOutputWithContext(ctx context.Context) SqlserverflexInstanceStoragePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceStoragePtrOutput) } -type SkeClusterExtensionsOutput struct{ *pulumi.OutputState } +type SqlserverflexInstanceStorageOutput struct{ *pulumi.OutputState } -func (SkeClusterExtensionsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterExtensions)(nil)).Elem() +func (SqlserverflexInstanceStorageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SqlserverflexInstanceStorage)(nil)).Elem() } -func (o SkeClusterExtensionsOutput) ToSkeClusterExtensionsOutput() SkeClusterExtensionsOutput { +func (o SqlserverflexInstanceStorageOutput) ToSqlserverflexInstanceStorageOutput() SqlserverflexInstanceStorageOutput { return o } -func (o SkeClusterExtensionsOutput) ToSkeClusterExtensionsOutputWithContext(ctx context.Context) SkeClusterExtensionsOutput { +func (o SqlserverflexInstanceStorageOutput) ToSqlserverflexInstanceStorageOutputWithContext(ctx context.Context) SqlserverflexInstanceStorageOutput { return o } -func (o SkeClusterExtensionsOutput) ToSkeClusterExtensionsPtrOutput() SkeClusterExtensionsPtrOutput { - return o.ToSkeClusterExtensionsPtrOutputWithContext(context.Background()) +func (o SqlserverflexInstanceStorageOutput) ToSqlserverflexInstanceStoragePtrOutput() SqlserverflexInstanceStoragePtrOutput { + return o.ToSqlserverflexInstanceStoragePtrOutputWithContext(context.Background()) } -func (o SkeClusterExtensionsOutput) ToSkeClusterExtensionsPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SkeClusterExtensions) *SkeClusterExtensions { +func (o SqlserverflexInstanceStorageOutput) ToSqlserverflexInstanceStoragePtrOutputWithContext(ctx context.Context) SqlserverflexInstanceStoragePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SqlserverflexInstanceStorage) *SqlserverflexInstanceStorage { return &v - }).(SkeClusterExtensionsPtrOutput) -} - -// Cluster access control configuration. -func (o SkeClusterExtensionsOutput) Acl() SkeClusterExtensionsAclPtrOutput { - return o.ApplyT(func(v SkeClusterExtensions) *SkeClusterExtensionsAcl { return v.Acl }).(SkeClusterExtensionsAclPtrOutput) -} - -// A single argus block as defined below. This field is deprecated and will be removed 06 January 2026. -// -// Deprecated: Use observability instead. -func (o SkeClusterExtensionsOutput) Argus() SkeClusterExtensionsArgusPtrOutput { - return o.ApplyT(func(v SkeClusterExtensions) *SkeClusterExtensionsArgus { return v.Argus }).(SkeClusterExtensionsArgusPtrOutput) + }).(SqlserverflexInstanceStoragePtrOutput) } -// DNS extension configuration -func (o SkeClusterExtensionsOutput) Dns() SkeClusterExtensionsDnsPtrOutput { - return o.ApplyT(func(v SkeClusterExtensions) *SkeClusterExtensionsDns { return v.Dns }).(SkeClusterExtensionsDnsPtrOutput) +func (o SqlserverflexInstanceStorageOutput) Class() pulumi.StringPtrOutput { + return o.ApplyT(func(v SqlserverflexInstanceStorage) *string { return v.Class }).(pulumi.StringPtrOutput) } -// A single observability block as defined below. -func (o SkeClusterExtensionsOutput) Observability() SkeClusterExtensionsObservabilityPtrOutput { - return o.ApplyT(func(v SkeClusterExtensions) *SkeClusterExtensionsObservability { return v.Observability }).(SkeClusterExtensionsObservabilityPtrOutput) +func (o SqlserverflexInstanceStorageOutput) Size() pulumi.IntPtrOutput { + return o.ApplyT(func(v SqlserverflexInstanceStorage) *int { return v.Size }).(pulumi.IntPtrOutput) } -type SkeClusterExtensionsPtrOutput struct{ *pulumi.OutputState } +type SqlserverflexInstanceStoragePtrOutput struct{ *pulumi.OutputState } -func (SkeClusterExtensionsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SkeClusterExtensions)(nil)).Elem() +func (SqlserverflexInstanceStoragePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SqlserverflexInstanceStorage)(nil)).Elem() } -func (o SkeClusterExtensionsPtrOutput) ToSkeClusterExtensionsPtrOutput() SkeClusterExtensionsPtrOutput { +func (o SqlserverflexInstanceStoragePtrOutput) ToSqlserverflexInstanceStoragePtrOutput() SqlserverflexInstanceStoragePtrOutput { return o } -func (o SkeClusterExtensionsPtrOutput) ToSkeClusterExtensionsPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsPtrOutput { +func (o SqlserverflexInstanceStoragePtrOutput) ToSqlserverflexInstanceStoragePtrOutputWithContext(ctx context.Context) SqlserverflexInstanceStoragePtrOutput { return o } -func (o SkeClusterExtensionsPtrOutput) Elem() SkeClusterExtensionsOutput { - return o.ApplyT(func(v *SkeClusterExtensions) SkeClusterExtensions { - if v != nil { - return *v - } - var ret SkeClusterExtensions - return ret - }).(SkeClusterExtensionsOutput) -} - -// Cluster access control configuration. -func (o SkeClusterExtensionsPtrOutput) Acl() SkeClusterExtensionsAclPtrOutput { - return o.ApplyT(func(v *SkeClusterExtensions) *SkeClusterExtensionsAcl { - if v == nil { - return nil - } - return v.Acl - }).(SkeClusterExtensionsAclPtrOutput) -} - -// A single argus block as defined below. This field is deprecated and will be removed 06 January 2026. -// -// Deprecated: Use observability instead. -func (o SkeClusterExtensionsPtrOutput) Argus() SkeClusterExtensionsArgusPtrOutput { - return o.ApplyT(func(v *SkeClusterExtensions) *SkeClusterExtensionsArgus { - if v == nil { - return nil +func (o SqlserverflexInstanceStoragePtrOutput) Elem() SqlserverflexInstanceStorageOutput { + return o.ApplyT(func(v *SqlserverflexInstanceStorage) SqlserverflexInstanceStorage { + if v != nil { + return *v } - return v.Argus - }).(SkeClusterExtensionsArgusPtrOutput) + var ret SqlserverflexInstanceStorage + return ret + }).(SqlserverflexInstanceStorageOutput) } -// DNS extension configuration -func (o SkeClusterExtensionsPtrOutput) Dns() SkeClusterExtensionsDnsPtrOutput { - return o.ApplyT(func(v *SkeClusterExtensions) *SkeClusterExtensionsDns { +func (o SqlserverflexInstanceStoragePtrOutput) Class() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SqlserverflexInstanceStorage) *string { if v == nil { return nil } - return v.Dns - }).(SkeClusterExtensionsDnsPtrOutput) + return v.Class + }).(pulumi.StringPtrOutput) } -// A single observability block as defined below. -func (o SkeClusterExtensionsPtrOutput) Observability() SkeClusterExtensionsObservabilityPtrOutput { - return o.ApplyT(func(v *SkeClusterExtensions) *SkeClusterExtensionsObservability { +func (o SqlserverflexInstanceStoragePtrOutput) Size() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SqlserverflexInstanceStorage) *int { if v == nil { return nil } - return v.Observability - }).(SkeClusterExtensionsObservabilityPtrOutput) + return v.Size + }).(pulumi.IntPtrOutput) } -type SkeClusterExtensionsAcl struct { - // Specify a list of CIDRs to whitelist. - AllowedCidrs []string `pulumi:"allowedCidrs"` - // Is ACL enabled? - Enabled bool `pulumi:"enabled"` +type VolumeEncryptionParameters struct { + // UUID of the key within the STACKIT-KMS to use for the encryption. + KekKeyId string `pulumi:"kekKeyId"` + // Version of the key within the STACKIT-KMS to use for the encryption. + KekKeyVersion int `pulumi:"kekKeyVersion"` + // UUID of the keyring where the key is located within the STACKTI-KMS. + KekKeyringId string `pulumi:"kekKeyringId"` + // 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. + KeyPayloadBase64 *string `pulumi:"keyPayloadBase64"` + // **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + // 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. + KeyPayloadBase64Wo *string `pulumi:"keyPayloadBase64Wo"` + // Used together with `keyPayloadBase64Wo` to trigger an re-create. Increment this value when an update to `keyPayloadBase64Wo` is required. + KeyPayloadBase64WoVersion *int `pulumi:"keyPayloadBase64WoVersion"` + // Service-Account linked to the Key within the STACKIT-KMS. + ServiceAccount string `pulumi:"serviceAccount"` } -// SkeClusterExtensionsAclInput is an input type that accepts SkeClusterExtensionsAclArgs and SkeClusterExtensionsAclOutput values. -// You can construct a concrete instance of `SkeClusterExtensionsAclInput` via: +// VolumeEncryptionParametersInput is an input type that accepts VolumeEncryptionParametersArgs and VolumeEncryptionParametersOutput values. +// You can construct a concrete instance of `VolumeEncryptionParametersInput` via: // -// SkeClusterExtensionsAclArgs{...} -type SkeClusterExtensionsAclInput interface { +// VolumeEncryptionParametersArgs{...} +type VolumeEncryptionParametersInput interface { pulumi.Input - ToSkeClusterExtensionsAclOutput() SkeClusterExtensionsAclOutput - ToSkeClusterExtensionsAclOutputWithContext(context.Context) SkeClusterExtensionsAclOutput + ToVolumeEncryptionParametersOutput() VolumeEncryptionParametersOutput + ToVolumeEncryptionParametersOutputWithContext(context.Context) VolumeEncryptionParametersOutput } -type SkeClusterExtensionsAclArgs struct { - // Specify a list of CIDRs to whitelist. - AllowedCidrs pulumi.StringArrayInput `pulumi:"allowedCidrs"` - // Is ACL enabled? - Enabled pulumi.BoolInput `pulumi:"enabled"` +type VolumeEncryptionParametersArgs struct { + // UUID of the key within the STACKIT-KMS to use for the encryption. + KekKeyId pulumi.StringInput `pulumi:"kekKeyId"` + // Version of the key within the STACKIT-KMS to use for the encryption. + KekKeyVersion pulumi.IntInput `pulumi:"kekKeyVersion"` + // UUID of the keyring where the key is located within the STACKTI-KMS. + KekKeyringId pulumi.StringInput `pulumi:"kekKeyringId"` + // 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. + KeyPayloadBase64 pulumi.StringPtrInput `pulumi:"keyPayloadBase64"` + // **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + // 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. + KeyPayloadBase64Wo pulumi.StringPtrInput `pulumi:"keyPayloadBase64Wo"` + // Used together with `keyPayloadBase64Wo` to trigger an re-create. Increment this value when an update to `keyPayloadBase64Wo` is required. + KeyPayloadBase64WoVersion pulumi.IntPtrInput `pulumi:"keyPayloadBase64WoVersion"` + // Service-Account linked to the Key within the STACKIT-KMS. + ServiceAccount pulumi.StringInput `pulumi:"serviceAccount"` } -func (SkeClusterExtensionsAclArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterExtensionsAcl)(nil)).Elem() +func (VolumeEncryptionParametersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VolumeEncryptionParameters)(nil)).Elem() } -func (i SkeClusterExtensionsAclArgs) ToSkeClusterExtensionsAclOutput() SkeClusterExtensionsAclOutput { - return i.ToSkeClusterExtensionsAclOutputWithContext(context.Background()) +func (i VolumeEncryptionParametersArgs) ToVolumeEncryptionParametersOutput() VolumeEncryptionParametersOutput { + return i.ToVolumeEncryptionParametersOutputWithContext(context.Background()) } -func (i SkeClusterExtensionsAclArgs) ToSkeClusterExtensionsAclOutputWithContext(ctx context.Context) SkeClusterExtensionsAclOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsAclOutput) +func (i VolumeEncryptionParametersArgs) ToVolumeEncryptionParametersOutputWithContext(ctx context.Context) VolumeEncryptionParametersOutput { + return pulumi.ToOutputWithContext(ctx, i).(VolumeEncryptionParametersOutput) } -func (i SkeClusterExtensionsAclArgs) ToSkeClusterExtensionsAclPtrOutput() SkeClusterExtensionsAclPtrOutput { - return i.ToSkeClusterExtensionsAclPtrOutputWithContext(context.Background()) +func (i VolumeEncryptionParametersArgs) ToVolumeEncryptionParametersPtrOutput() VolumeEncryptionParametersPtrOutput { + return i.ToVolumeEncryptionParametersPtrOutputWithContext(context.Background()) } -func (i SkeClusterExtensionsAclArgs) ToSkeClusterExtensionsAclPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsAclPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsAclOutput).ToSkeClusterExtensionsAclPtrOutputWithContext(ctx) +func (i VolumeEncryptionParametersArgs) ToVolumeEncryptionParametersPtrOutputWithContext(ctx context.Context) VolumeEncryptionParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VolumeEncryptionParametersOutput).ToVolumeEncryptionParametersPtrOutputWithContext(ctx) } -// SkeClusterExtensionsAclPtrInput is an input type that accepts SkeClusterExtensionsAclArgs, SkeClusterExtensionsAclPtr and SkeClusterExtensionsAclPtrOutput values. -// You can construct a concrete instance of `SkeClusterExtensionsAclPtrInput` via: +// VolumeEncryptionParametersPtrInput is an input type that accepts VolumeEncryptionParametersArgs, VolumeEncryptionParametersPtr and VolumeEncryptionParametersPtrOutput values. +// You can construct a concrete instance of `VolumeEncryptionParametersPtrInput` via: // -// SkeClusterExtensionsAclArgs{...} +// VolumeEncryptionParametersArgs{...} // // or: // // nil -type SkeClusterExtensionsAclPtrInput interface { +type VolumeEncryptionParametersPtrInput interface { pulumi.Input - ToSkeClusterExtensionsAclPtrOutput() SkeClusterExtensionsAclPtrOutput - ToSkeClusterExtensionsAclPtrOutputWithContext(context.Context) SkeClusterExtensionsAclPtrOutput + ToVolumeEncryptionParametersPtrOutput() VolumeEncryptionParametersPtrOutput + ToVolumeEncryptionParametersPtrOutputWithContext(context.Context) VolumeEncryptionParametersPtrOutput } -type skeClusterExtensionsAclPtrType SkeClusterExtensionsAclArgs +type volumeEncryptionParametersPtrType VolumeEncryptionParametersArgs -func SkeClusterExtensionsAclPtr(v *SkeClusterExtensionsAclArgs) SkeClusterExtensionsAclPtrInput { - return (*skeClusterExtensionsAclPtrType)(v) +func VolumeEncryptionParametersPtr(v *VolumeEncryptionParametersArgs) VolumeEncryptionParametersPtrInput { + return (*volumeEncryptionParametersPtrType)(v) } -func (*skeClusterExtensionsAclPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SkeClusterExtensionsAcl)(nil)).Elem() +func (*volumeEncryptionParametersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VolumeEncryptionParameters)(nil)).Elem() } -func (i *skeClusterExtensionsAclPtrType) ToSkeClusterExtensionsAclPtrOutput() SkeClusterExtensionsAclPtrOutput { - return i.ToSkeClusterExtensionsAclPtrOutputWithContext(context.Background()) +func (i *volumeEncryptionParametersPtrType) ToVolumeEncryptionParametersPtrOutput() VolumeEncryptionParametersPtrOutput { + return i.ToVolumeEncryptionParametersPtrOutputWithContext(context.Background()) } -func (i *skeClusterExtensionsAclPtrType) ToSkeClusterExtensionsAclPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsAclPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsAclPtrOutput) +func (i *volumeEncryptionParametersPtrType) ToVolumeEncryptionParametersPtrOutputWithContext(ctx context.Context) VolumeEncryptionParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VolumeEncryptionParametersPtrOutput) } -type SkeClusterExtensionsAclOutput struct{ *pulumi.OutputState } +type VolumeEncryptionParametersOutput struct{ *pulumi.OutputState } -func (SkeClusterExtensionsAclOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterExtensionsAcl)(nil)).Elem() +func (VolumeEncryptionParametersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VolumeEncryptionParameters)(nil)).Elem() } -func (o SkeClusterExtensionsAclOutput) ToSkeClusterExtensionsAclOutput() SkeClusterExtensionsAclOutput { +func (o VolumeEncryptionParametersOutput) ToVolumeEncryptionParametersOutput() VolumeEncryptionParametersOutput { return o } -func (o SkeClusterExtensionsAclOutput) ToSkeClusterExtensionsAclOutputWithContext(ctx context.Context) SkeClusterExtensionsAclOutput { +func (o VolumeEncryptionParametersOutput) ToVolumeEncryptionParametersOutputWithContext(ctx context.Context) VolumeEncryptionParametersOutput { return o } -func (o SkeClusterExtensionsAclOutput) ToSkeClusterExtensionsAclPtrOutput() SkeClusterExtensionsAclPtrOutput { - return o.ToSkeClusterExtensionsAclPtrOutputWithContext(context.Background()) +func (o VolumeEncryptionParametersOutput) ToVolumeEncryptionParametersPtrOutput() VolumeEncryptionParametersPtrOutput { + return o.ToVolumeEncryptionParametersPtrOutputWithContext(context.Background()) } -func (o SkeClusterExtensionsAclOutput) ToSkeClusterExtensionsAclPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsAclPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SkeClusterExtensionsAcl) *SkeClusterExtensionsAcl { +func (o VolumeEncryptionParametersOutput) ToVolumeEncryptionParametersPtrOutputWithContext(ctx context.Context) VolumeEncryptionParametersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v VolumeEncryptionParameters) *VolumeEncryptionParameters { return &v - }).(SkeClusterExtensionsAclPtrOutput) + }).(VolumeEncryptionParametersPtrOutput) } -// Specify a list of CIDRs to whitelist. -func (o SkeClusterExtensionsAclOutput) AllowedCidrs() pulumi.StringArrayOutput { - return o.ApplyT(func(v SkeClusterExtensionsAcl) []string { return v.AllowedCidrs }).(pulumi.StringArrayOutput) +// UUID of the key within the STACKIT-KMS to use for the encryption. +func (o VolumeEncryptionParametersOutput) KekKeyId() pulumi.StringOutput { + return o.ApplyT(func(v VolumeEncryptionParameters) string { return v.KekKeyId }).(pulumi.StringOutput) } -// Is ACL enabled? -func (o SkeClusterExtensionsAclOutput) Enabled() pulumi.BoolOutput { - return o.ApplyT(func(v SkeClusterExtensionsAcl) bool { return v.Enabled }).(pulumi.BoolOutput) +// Version of the key within the STACKIT-KMS to use for the encryption. +func (o VolumeEncryptionParametersOutput) KekKeyVersion() pulumi.IntOutput { + return o.ApplyT(func(v VolumeEncryptionParameters) int { return v.KekKeyVersion }).(pulumi.IntOutput) } -type SkeClusterExtensionsAclPtrOutput struct{ *pulumi.OutputState } +// UUID of the keyring where the key is located within the STACKTI-KMS. +func (o VolumeEncryptionParametersOutput) KekKeyringId() pulumi.StringOutput { + return o.ApplyT(func(v VolumeEncryptionParameters) string { return v.KekKeyringId }).(pulumi.StringOutput) +} -func (SkeClusterExtensionsAclPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SkeClusterExtensionsAcl)(nil)).Elem() +// 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. +func (o VolumeEncryptionParametersOutput) KeyPayloadBase64() pulumi.StringPtrOutput { + return o.ApplyT(func(v VolumeEncryptionParameters) *string { return v.KeyPayloadBase64 }).(pulumi.StringPtrOutput) } -func (o SkeClusterExtensionsAclPtrOutput) ToSkeClusterExtensionsAclPtrOutput() SkeClusterExtensionsAclPtrOutput { +// **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. +// 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. +func (o VolumeEncryptionParametersOutput) KeyPayloadBase64Wo() pulumi.StringPtrOutput { + return o.ApplyT(func(v VolumeEncryptionParameters) *string { return v.KeyPayloadBase64Wo }).(pulumi.StringPtrOutput) +} + +// Used together with `keyPayloadBase64Wo` to trigger an re-create. Increment this value when an update to `keyPayloadBase64Wo` is required. +func (o VolumeEncryptionParametersOutput) KeyPayloadBase64WoVersion() pulumi.IntPtrOutput { + return o.ApplyT(func(v VolumeEncryptionParameters) *int { return v.KeyPayloadBase64WoVersion }).(pulumi.IntPtrOutput) +} + +// Service-Account linked to the Key within the STACKIT-KMS. +func (o VolumeEncryptionParametersOutput) ServiceAccount() pulumi.StringOutput { + return o.ApplyT(func(v VolumeEncryptionParameters) string { return v.ServiceAccount }).(pulumi.StringOutput) +} + +type VolumeEncryptionParametersPtrOutput struct{ *pulumi.OutputState } + +func (VolumeEncryptionParametersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VolumeEncryptionParameters)(nil)).Elem() +} + +func (o VolumeEncryptionParametersPtrOutput) ToVolumeEncryptionParametersPtrOutput() VolumeEncryptionParametersPtrOutput { return o } -func (o SkeClusterExtensionsAclPtrOutput) ToSkeClusterExtensionsAclPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsAclPtrOutput { +func (o VolumeEncryptionParametersPtrOutput) ToVolumeEncryptionParametersPtrOutputWithContext(ctx context.Context) VolumeEncryptionParametersPtrOutput { return o } -func (o SkeClusterExtensionsAclPtrOutput) Elem() SkeClusterExtensionsAclOutput { - return o.ApplyT(func(v *SkeClusterExtensionsAcl) SkeClusterExtensionsAcl { +func (o VolumeEncryptionParametersPtrOutput) Elem() VolumeEncryptionParametersOutput { + return o.ApplyT(func(v *VolumeEncryptionParameters) VolumeEncryptionParameters { if v != nil { return *v } - var ret SkeClusterExtensionsAcl + var ret VolumeEncryptionParameters return ret - }).(SkeClusterExtensionsAclOutput) + }).(VolumeEncryptionParametersOutput) +} + +// UUID of the key within the STACKIT-KMS to use for the encryption. +func (o VolumeEncryptionParametersPtrOutput) KekKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VolumeEncryptionParameters) *string { + if v == nil { + return nil + } + return &v.KekKeyId + }).(pulumi.StringPtrOutput) +} + +// Version of the key within the STACKIT-KMS to use for the encryption. +func (o VolumeEncryptionParametersPtrOutput) KekKeyVersion() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VolumeEncryptionParameters) *int { + if v == nil { + return nil + } + return &v.KekKeyVersion + }).(pulumi.IntPtrOutput) +} + +// UUID of the keyring where the key is located within the STACKTI-KMS. +func (o VolumeEncryptionParametersPtrOutput) KekKeyringId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VolumeEncryptionParameters) *string { + if v == nil { + return nil + } + return &v.KekKeyringId + }).(pulumi.StringPtrOutput) +} + +// 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. +func (o VolumeEncryptionParametersPtrOutput) KeyPayloadBase64() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VolumeEncryptionParameters) *string { + if v == nil { + return nil + } + return v.KeyPayloadBase64 + }).(pulumi.StringPtrOutput) +} + +// **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. +// 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. +func (o VolumeEncryptionParametersPtrOutput) KeyPayloadBase64Wo() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VolumeEncryptionParameters) *string { + if v == nil { + return nil + } + return v.KeyPayloadBase64Wo + }).(pulumi.StringPtrOutput) } -// Specify a list of CIDRs to whitelist. -func (o SkeClusterExtensionsAclPtrOutput) AllowedCidrs() pulumi.StringArrayOutput { - return o.ApplyT(func(v *SkeClusterExtensionsAcl) []string { +// Used together with `keyPayloadBase64Wo` to trigger an re-create. Increment this value when an update to `keyPayloadBase64Wo` is required. +func (o VolumeEncryptionParametersPtrOutput) KeyPayloadBase64WoVersion() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VolumeEncryptionParameters) *int { if v == nil { return nil } - return v.AllowedCidrs - }).(pulumi.StringArrayOutput) + return v.KeyPayloadBase64WoVersion + }).(pulumi.IntPtrOutput) } -// Is ACL enabled? -func (o SkeClusterExtensionsAclPtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *SkeClusterExtensionsAcl) *bool { +// Service-Account linked to the Key within the STACKIT-KMS. +func (o VolumeEncryptionParametersPtrOutput) ServiceAccount() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VolumeEncryptionParameters) *string { if v == nil { return nil } - return &v.Enabled - }).(pulumi.BoolPtrOutput) + return &v.ServiceAccount + }).(pulumi.StringPtrOutput) } -type SkeClusterExtensionsArgus struct { - // Argus instance ID to choose which Argus instance is used. Required when enabled is set to `true`. - ArgusInstanceId *string `pulumi:"argusInstanceId"` - // Flag to enable/disable Argus extensions. - Enabled bool `pulumi:"enabled"` +type VolumeSource struct { + // The ID of the source, e.g. image ID + Id string `pulumi:"id"` + // The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. + Type string `pulumi:"type"` } -// SkeClusterExtensionsArgusInput is an input type that accepts SkeClusterExtensionsArgusArgs and SkeClusterExtensionsArgusOutput values. -// You can construct a concrete instance of `SkeClusterExtensionsArgusInput` via: +// VolumeSourceInput is an input type that accepts VolumeSourceArgs and VolumeSourceOutput values. +// You can construct a concrete instance of `VolumeSourceInput` via: // -// SkeClusterExtensionsArgusArgs{...} -type SkeClusterExtensionsArgusInput interface { +// VolumeSourceArgs{...} +type VolumeSourceInput interface { pulumi.Input - ToSkeClusterExtensionsArgusOutput() SkeClusterExtensionsArgusOutput - ToSkeClusterExtensionsArgusOutputWithContext(context.Context) SkeClusterExtensionsArgusOutput + ToVolumeSourceOutput() VolumeSourceOutput + ToVolumeSourceOutputWithContext(context.Context) VolumeSourceOutput } -type SkeClusterExtensionsArgusArgs struct { - // Argus instance ID to choose which Argus instance is used. Required when enabled is set to `true`. - ArgusInstanceId pulumi.StringPtrInput `pulumi:"argusInstanceId"` - // Flag to enable/disable Argus extensions. - Enabled pulumi.BoolInput `pulumi:"enabled"` +type VolumeSourceArgs struct { + // The ID of the source, e.g. image ID + Id pulumi.StringInput `pulumi:"id"` + // The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. + Type pulumi.StringInput `pulumi:"type"` } -func (SkeClusterExtensionsArgusArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterExtensionsArgus)(nil)).Elem() +func (VolumeSourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VolumeSource)(nil)).Elem() } -func (i SkeClusterExtensionsArgusArgs) ToSkeClusterExtensionsArgusOutput() SkeClusterExtensionsArgusOutput { - return i.ToSkeClusterExtensionsArgusOutputWithContext(context.Background()) +func (i VolumeSourceArgs) ToVolumeSourceOutput() VolumeSourceOutput { + return i.ToVolumeSourceOutputWithContext(context.Background()) } -func (i SkeClusterExtensionsArgusArgs) ToSkeClusterExtensionsArgusOutputWithContext(ctx context.Context) SkeClusterExtensionsArgusOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsArgusOutput) +func (i VolumeSourceArgs) ToVolumeSourceOutputWithContext(ctx context.Context) VolumeSourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(VolumeSourceOutput) } -func (i SkeClusterExtensionsArgusArgs) ToSkeClusterExtensionsArgusPtrOutput() SkeClusterExtensionsArgusPtrOutput { - return i.ToSkeClusterExtensionsArgusPtrOutputWithContext(context.Background()) +func (i VolumeSourceArgs) ToVolumeSourcePtrOutput() VolumeSourcePtrOutput { + return i.ToVolumeSourcePtrOutputWithContext(context.Background()) } -func (i SkeClusterExtensionsArgusArgs) ToSkeClusterExtensionsArgusPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsArgusPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsArgusOutput).ToSkeClusterExtensionsArgusPtrOutputWithContext(ctx) +func (i VolumeSourceArgs) ToVolumeSourcePtrOutputWithContext(ctx context.Context) VolumeSourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VolumeSourceOutput).ToVolumeSourcePtrOutputWithContext(ctx) } -// SkeClusterExtensionsArgusPtrInput is an input type that accepts SkeClusterExtensionsArgusArgs, SkeClusterExtensionsArgusPtr and SkeClusterExtensionsArgusPtrOutput values. -// You can construct a concrete instance of `SkeClusterExtensionsArgusPtrInput` via: +// VolumeSourcePtrInput is an input type that accepts VolumeSourceArgs, VolumeSourcePtr and VolumeSourcePtrOutput values. +// You can construct a concrete instance of `VolumeSourcePtrInput` via: // -// SkeClusterExtensionsArgusArgs{...} +// VolumeSourceArgs{...} // // or: // // nil -type SkeClusterExtensionsArgusPtrInput interface { +type VolumeSourcePtrInput interface { pulumi.Input - ToSkeClusterExtensionsArgusPtrOutput() SkeClusterExtensionsArgusPtrOutput - ToSkeClusterExtensionsArgusPtrOutputWithContext(context.Context) SkeClusterExtensionsArgusPtrOutput + ToVolumeSourcePtrOutput() VolumeSourcePtrOutput + ToVolumeSourcePtrOutputWithContext(context.Context) VolumeSourcePtrOutput } -type skeClusterExtensionsArgusPtrType SkeClusterExtensionsArgusArgs +type volumeSourcePtrType VolumeSourceArgs -func SkeClusterExtensionsArgusPtr(v *SkeClusterExtensionsArgusArgs) SkeClusterExtensionsArgusPtrInput { - return (*skeClusterExtensionsArgusPtrType)(v) +func VolumeSourcePtr(v *VolumeSourceArgs) VolumeSourcePtrInput { + return (*volumeSourcePtrType)(v) } -func (*skeClusterExtensionsArgusPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SkeClusterExtensionsArgus)(nil)).Elem() +func (*volumeSourcePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VolumeSource)(nil)).Elem() } -func (i *skeClusterExtensionsArgusPtrType) ToSkeClusterExtensionsArgusPtrOutput() SkeClusterExtensionsArgusPtrOutput { - return i.ToSkeClusterExtensionsArgusPtrOutputWithContext(context.Background()) +func (i *volumeSourcePtrType) ToVolumeSourcePtrOutput() VolumeSourcePtrOutput { + return i.ToVolumeSourcePtrOutputWithContext(context.Background()) } -func (i *skeClusterExtensionsArgusPtrType) ToSkeClusterExtensionsArgusPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsArgusPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsArgusPtrOutput) +func (i *volumeSourcePtrType) ToVolumeSourcePtrOutputWithContext(ctx context.Context) VolumeSourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VolumeSourcePtrOutput) } -type SkeClusterExtensionsArgusOutput struct{ *pulumi.OutputState } +type VolumeSourceOutput struct{ *pulumi.OutputState } -func (SkeClusterExtensionsArgusOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterExtensionsArgus)(nil)).Elem() +func (VolumeSourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VolumeSource)(nil)).Elem() } -func (o SkeClusterExtensionsArgusOutput) ToSkeClusterExtensionsArgusOutput() SkeClusterExtensionsArgusOutput { +func (o VolumeSourceOutput) ToVolumeSourceOutput() VolumeSourceOutput { return o } -func (o SkeClusterExtensionsArgusOutput) ToSkeClusterExtensionsArgusOutputWithContext(ctx context.Context) SkeClusterExtensionsArgusOutput { +func (o VolumeSourceOutput) ToVolumeSourceOutputWithContext(ctx context.Context) VolumeSourceOutput { return o } -func (o SkeClusterExtensionsArgusOutput) ToSkeClusterExtensionsArgusPtrOutput() SkeClusterExtensionsArgusPtrOutput { - return o.ToSkeClusterExtensionsArgusPtrOutputWithContext(context.Background()) +func (o VolumeSourceOutput) ToVolumeSourcePtrOutput() VolumeSourcePtrOutput { + return o.ToVolumeSourcePtrOutputWithContext(context.Background()) } -func (o SkeClusterExtensionsArgusOutput) ToSkeClusterExtensionsArgusPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsArgusPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SkeClusterExtensionsArgus) *SkeClusterExtensionsArgus { +func (o VolumeSourceOutput) ToVolumeSourcePtrOutputWithContext(ctx context.Context) VolumeSourcePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v VolumeSource) *VolumeSource { return &v - }).(SkeClusterExtensionsArgusPtrOutput) + }).(VolumeSourcePtrOutput) } -// Argus instance ID to choose which Argus instance is used. Required when enabled is set to `true`. -func (o SkeClusterExtensionsArgusOutput) ArgusInstanceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v SkeClusterExtensionsArgus) *string { return v.ArgusInstanceId }).(pulumi.StringPtrOutput) +// The ID of the source, e.g. image ID +func (o VolumeSourceOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v VolumeSource) string { return v.Id }).(pulumi.StringOutput) } -// Flag to enable/disable Argus extensions. -func (o SkeClusterExtensionsArgusOutput) Enabled() pulumi.BoolOutput { - return o.ApplyT(func(v SkeClusterExtensionsArgus) bool { return v.Enabled }).(pulumi.BoolOutput) +// The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. +func (o VolumeSourceOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v VolumeSource) string { return v.Type }).(pulumi.StringOutput) } -type SkeClusterExtensionsArgusPtrOutput struct{ *pulumi.OutputState } +type VolumeSourcePtrOutput struct{ *pulumi.OutputState } -func (SkeClusterExtensionsArgusPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SkeClusterExtensionsArgus)(nil)).Elem() +func (VolumeSourcePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VolumeSource)(nil)).Elem() } -func (o SkeClusterExtensionsArgusPtrOutput) ToSkeClusterExtensionsArgusPtrOutput() SkeClusterExtensionsArgusPtrOutput { +func (o VolumeSourcePtrOutput) ToVolumeSourcePtrOutput() VolumeSourcePtrOutput { return o } -func (o SkeClusterExtensionsArgusPtrOutput) ToSkeClusterExtensionsArgusPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsArgusPtrOutput { +func (o VolumeSourcePtrOutput) ToVolumeSourcePtrOutputWithContext(ctx context.Context) VolumeSourcePtrOutput { return o } -func (o SkeClusterExtensionsArgusPtrOutput) Elem() SkeClusterExtensionsArgusOutput { - return o.ApplyT(func(v *SkeClusterExtensionsArgus) SkeClusterExtensionsArgus { +func (o VolumeSourcePtrOutput) Elem() VolumeSourceOutput { + return o.ApplyT(func(v *VolumeSource) VolumeSource { if v != nil { return *v } - var ret SkeClusterExtensionsArgus + var ret VolumeSource return ret - }).(SkeClusterExtensionsArgusOutput) + }).(VolumeSourceOutput) } -// Argus instance ID to choose which Argus instance is used. Required when enabled is set to `true`. -func (o SkeClusterExtensionsArgusPtrOutput) ArgusInstanceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SkeClusterExtensionsArgus) *string { +// The ID of the source, e.g. image ID +func (o VolumeSourcePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VolumeSource) *string { if v == nil { return nil } - return v.ArgusInstanceId + return &v.Id }).(pulumi.StringPtrOutput) } -// Flag to enable/disable Argus extensions. -func (o SkeClusterExtensionsArgusPtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *SkeClusterExtensionsArgus) *bool { +// The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. +func (o VolumeSourcePtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VolumeSource) *string { if v == nil { return nil } - return &v.Enabled - }).(pulumi.BoolPtrOutput) + return &v.Type + }).(pulumi.StringPtrOutput) } -type SkeClusterExtensionsDns struct { - // Flag to enable/disable DNS extensions - Enabled bool `pulumi:"enabled"` - // Specify a list of domain filters for externalDNS (e.g., `foo.runs.onstackit.cloud`) - Zones []string `pulumi:"zones"` +type GetApplicationLoadBalancerError struct { + // 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. + Description string `pulumi:"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`. + Type string `pulumi:"type"` } -// SkeClusterExtensionsDnsInput is an input type that accepts SkeClusterExtensionsDnsArgs and SkeClusterExtensionsDnsOutput values. -// You can construct a concrete instance of `SkeClusterExtensionsDnsInput` via: +// GetApplicationLoadBalancerErrorInput is an input type that accepts GetApplicationLoadBalancerErrorArgs and GetApplicationLoadBalancerErrorOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerErrorInput` via: // -// SkeClusterExtensionsDnsArgs{...} -type SkeClusterExtensionsDnsInput interface { +// GetApplicationLoadBalancerErrorArgs{...} +type GetApplicationLoadBalancerErrorInput interface { pulumi.Input - ToSkeClusterExtensionsDnsOutput() SkeClusterExtensionsDnsOutput - ToSkeClusterExtensionsDnsOutputWithContext(context.Context) SkeClusterExtensionsDnsOutput -} - -type SkeClusterExtensionsDnsArgs struct { - // Flag to enable/disable DNS extensions - Enabled pulumi.BoolInput `pulumi:"enabled"` - // Specify a list of domain filters for externalDNS (e.g., `foo.runs.onstackit.cloud`) - Zones pulumi.StringArrayInput `pulumi:"zones"` -} - -func (SkeClusterExtensionsDnsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterExtensionsDns)(nil)).Elem() + ToGetApplicationLoadBalancerErrorOutput() GetApplicationLoadBalancerErrorOutput + ToGetApplicationLoadBalancerErrorOutputWithContext(context.Context) GetApplicationLoadBalancerErrorOutput } -func (i SkeClusterExtensionsDnsArgs) ToSkeClusterExtensionsDnsOutput() SkeClusterExtensionsDnsOutput { - return i.ToSkeClusterExtensionsDnsOutputWithContext(context.Background()) +type GetApplicationLoadBalancerErrorArgs struct { + // 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. + Description pulumi.StringInput `pulumi:"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`. + Type pulumi.StringInput `pulumi:"type"` } -func (i SkeClusterExtensionsDnsArgs) ToSkeClusterExtensionsDnsOutputWithContext(ctx context.Context) SkeClusterExtensionsDnsOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsDnsOutput) +func (GetApplicationLoadBalancerErrorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerError)(nil)).Elem() } -func (i SkeClusterExtensionsDnsArgs) ToSkeClusterExtensionsDnsPtrOutput() SkeClusterExtensionsDnsPtrOutput { - return i.ToSkeClusterExtensionsDnsPtrOutputWithContext(context.Background()) +func (i GetApplicationLoadBalancerErrorArgs) ToGetApplicationLoadBalancerErrorOutput() GetApplicationLoadBalancerErrorOutput { + return i.ToGetApplicationLoadBalancerErrorOutputWithContext(context.Background()) } -func (i SkeClusterExtensionsDnsArgs) ToSkeClusterExtensionsDnsPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsDnsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsDnsOutput).ToSkeClusterExtensionsDnsPtrOutputWithContext(ctx) +func (i GetApplicationLoadBalancerErrorArgs) ToGetApplicationLoadBalancerErrorOutputWithContext(ctx context.Context) GetApplicationLoadBalancerErrorOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerErrorOutput) } -// SkeClusterExtensionsDnsPtrInput is an input type that accepts SkeClusterExtensionsDnsArgs, SkeClusterExtensionsDnsPtr and SkeClusterExtensionsDnsPtrOutput values. -// You can construct a concrete instance of `SkeClusterExtensionsDnsPtrInput` via: +// GetApplicationLoadBalancerErrorArrayInput is an input type that accepts GetApplicationLoadBalancerErrorArray and GetApplicationLoadBalancerErrorArrayOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerErrorArrayInput` via: // -// SkeClusterExtensionsDnsArgs{...} -// -// or: -// -// nil -type SkeClusterExtensionsDnsPtrInput interface { +// GetApplicationLoadBalancerErrorArray{ GetApplicationLoadBalancerErrorArgs{...} } +type GetApplicationLoadBalancerErrorArrayInput interface { pulumi.Input - ToSkeClusterExtensionsDnsPtrOutput() SkeClusterExtensionsDnsPtrOutput - ToSkeClusterExtensionsDnsPtrOutputWithContext(context.Context) SkeClusterExtensionsDnsPtrOutput -} - -type skeClusterExtensionsDnsPtrType SkeClusterExtensionsDnsArgs - -func SkeClusterExtensionsDnsPtr(v *SkeClusterExtensionsDnsArgs) SkeClusterExtensionsDnsPtrInput { - return (*skeClusterExtensionsDnsPtrType)(v) -} - -func (*skeClusterExtensionsDnsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SkeClusterExtensionsDns)(nil)).Elem() -} - -func (i *skeClusterExtensionsDnsPtrType) ToSkeClusterExtensionsDnsPtrOutput() SkeClusterExtensionsDnsPtrOutput { - return i.ToSkeClusterExtensionsDnsPtrOutputWithContext(context.Background()) -} - -func (i *skeClusterExtensionsDnsPtrType) ToSkeClusterExtensionsDnsPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsDnsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsDnsPtrOutput) -} - -type SkeClusterExtensionsDnsOutput struct{ *pulumi.OutputState } - -func (SkeClusterExtensionsDnsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterExtensionsDns)(nil)).Elem() + ToGetApplicationLoadBalancerErrorArrayOutput() GetApplicationLoadBalancerErrorArrayOutput + ToGetApplicationLoadBalancerErrorArrayOutputWithContext(context.Context) GetApplicationLoadBalancerErrorArrayOutput } -func (o SkeClusterExtensionsDnsOutput) ToSkeClusterExtensionsDnsOutput() SkeClusterExtensionsDnsOutput { - return o -} - -func (o SkeClusterExtensionsDnsOutput) ToSkeClusterExtensionsDnsOutputWithContext(ctx context.Context) SkeClusterExtensionsDnsOutput { - return o -} - -func (o SkeClusterExtensionsDnsOutput) ToSkeClusterExtensionsDnsPtrOutput() SkeClusterExtensionsDnsPtrOutput { - return o.ToSkeClusterExtensionsDnsPtrOutputWithContext(context.Background()) -} - -func (o SkeClusterExtensionsDnsOutput) ToSkeClusterExtensionsDnsPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsDnsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SkeClusterExtensionsDns) *SkeClusterExtensionsDns { - return &v - }).(SkeClusterExtensionsDnsPtrOutput) +type GetApplicationLoadBalancerErrorArray []GetApplicationLoadBalancerErrorInput + +func (GetApplicationLoadBalancerErrorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerError)(nil)).Elem() } -// Flag to enable/disable DNS extensions -func (o SkeClusterExtensionsDnsOutput) Enabled() pulumi.BoolOutput { - return o.ApplyT(func(v SkeClusterExtensionsDns) bool { return v.Enabled }).(pulumi.BoolOutput) +func (i GetApplicationLoadBalancerErrorArray) ToGetApplicationLoadBalancerErrorArrayOutput() GetApplicationLoadBalancerErrorArrayOutput { + return i.ToGetApplicationLoadBalancerErrorArrayOutputWithContext(context.Background()) } -// Specify a list of domain filters for externalDNS (e.g., `foo.runs.onstackit.cloud`) -func (o SkeClusterExtensionsDnsOutput) Zones() pulumi.StringArrayOutput { - return o.ApplyT(func(v SkeClusterExtensionsDns) []string { return v.Zones }).(pulumi.StringArrayOutput) +func (i GetApplicationLoadBalancerErrorArray) ToGetApplicationLoadBalancerErrorArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerErrorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerErrorArrayOutput) } -type SkeClusterExtensionsDnsPtrOutput struct{ *pulumi.OutputState } +type GetApplicationLoadBalancerErrorOutput struct{ *pulumi.OutputState } -func (SkeClusterExtensionsDnsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SkeClusterExtensionsDns)(nil)).Elem() +func (GetApplicationLoadBalancerErrorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerError)(nil)).Elem() } -func (o SkeClusterExtensionsDnsPtrOutput) ToSkeClusterExtensionsDnsPtrOutput() SkeClusterExtensionsDnsPtrOutput { +func (o GetApplicationLoadBalancerErrorOutput) ToGetApplicationLoadBalancerErrorOutput() GetApplicationLoadBalancerErrorOutput { return o } -func (o SkeClusterExtensionsDnsPtrOutput) ToSkeClusterExtensionsDnsPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsDnsPtrOutput { +func (o GetApplicationLoadBalancerErrorOutput) ToGetApplicationLoadBalancerErrorOutputWithContext(ctx context.Context) GetApplicationLoadBalancerErrorOutput { return o } -func (o SkeClusterExtensionsDnsPtrOutput) Elem() SkeClusterExtensionsDnsOutput { - return o.ApplyT(func(v *SkeClusterExtensionsDns) SkeClusterExtensionsDns { - if v != nil { - return *v - } - var ret SkeClusterExtensionsDns - return ret - }).(SkeClusterExtensionsDnsOutput) +// 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. +func (o GetApplicationLoadBalancerErrorOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerError) string { return v.Description }).(pulumi.StringOutput) } -// Flag to enable/disable DNS extensions -func (o SkeClusterExtensionsDnsPtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *SkeClusterExtensionsDns) *bool { - if v == nil { - return nil - } - return &v.Enabled - }).(pulumi.BoolPtrOutput) +// 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`. +func (o GetApplicationLoadBalancerErrorOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerError) string { return v.Type }).(pulumi.StringOutput) } -// Specify a list of domain filters for externalDNS (e.g., `foo.runs.onstackit.cloud`) -func (o SkeClusterExtensionsDnsPtrOutput) Zones() pulumi.StringArrayOutput { - return o.ApplyT(func(v *SkeClusterExtensionsDns) []string { - if v == nil { - return nil - } - return v.Zones - }).(pulumi.StringArrayOutput) +type GetApplicationLoadBalancerErrorArrayOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerErrorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerError)(nil)).Elem() } -type SkeClusterExtensionsObservability struct { - // Flag to enable/disable Observability extensions. - Enabled bool `pulumi:"enabled"` - // Observability instance ID to choose which Observability instance is used. Required when enabled is set to `true`. - InstanceId *string `pulumi:"instanceId"` +func (o GetApplicationLoadBalancerErrorArrayOutput) ToGetApplicationLoadBalancerErrorArrayOutput() GetApplicationLoadBalancerErrorArrayOutput { + return o } -// SkeClusterExtensionsObservabilityInput is an input type that accepts SkeClusterExtensionsObservabilityArgs and SkeClusterExtensionsObservabilityOutput values. -// You can construct a concrete instance of `SkeClusterExtensionsObservabilityInput` via: -// -// SkeClusterExtensionsObservabilityArgs{...} -type SkeClusterExtensionsObservabilityInput interface { - pulumi.Input +func (o GetApplicationLoadBalancerErrorArrayOutput) ToGetApplicationLoadBalancerErrorArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerErrorArrayOutput { + return o +} - ToSkeClusterExtensionsObservabilityOutput() SkeClusterExtensionsObservabilityOutput - ToSkeClusterExtensionsObservabilityOutputWithContext(context.Context) SkeClusterExtensionsObservabilityOutput +func (o GetApplicationLoadBalancerErrorArrayOutput) Index(i pulumi.IntInput) GetApplicationLoadBalancerErrorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetApplicationLoadBalancerError { + return vs[0].([]GetApplicationLoadBalancerError)[vs[1].(int)] + }).(GetApplicationLoadBalancerErrorOutput) } -type SkeClusterExtensionsObservabilityArgs struct { - // Flag to enable/disable Observability extensions. - Enabled pulumi.BoolInput `pulumi:"enabled"` - // Observability instance ID to choose which Observability instance is used. Required when enabled is set to `true`. - InstanceId pulumi.StringPtrInput `pulumi:"instanceId"` +type GetApplicationLoadBalancerListener struct { + // Configuration for HTTP traffic. + Http GetApplicationLoadBalancerListenerHttp `pulumi:"http"` + // Configuration for handling HTTPS traffic on this listener. + Https GetApplicationLoadBalancerListenerHttps `pulumi:"https"` + // Unique name for the listener + Name string `pulumi:"name"` + // Port number on which the listener receives incoming traffic. + Port int `pulumi:"port"` + // Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. + Protocol string `pulumi:"protocol"` + // Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. + WafConfigName string `pulumi:"wafConfigName"` } -func (SkeClusterExtensionsObservabilityArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterExtensionsObservability)(nil)).Elem() +// GetApplicationLoadBalancerListenerInput is an input type that accepts GetApplicationLoadBalancerListenerArgs and GetApplicationLoadBalancerListenerOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerListenerInput` via: +// +// GetApplicationLoadBalancerListenerArgs{...} +type GetApplicationLoadBalancerListenerInput interface { + pulumi.Input + + ToGetApplicationLoadBalancerListenerOutput() GetApplicationLoadBalancerListenerOutput + ToGetApplicationLoadBalancerListenerOutputWithContext(context.Context) GetApplicationLoadBalancerListenerOutput } -func (i SkeClusterExtensionsObservabilityArgs) ToSkeClusterExtensionsObservabilityOutput() SkeClusterExtensionsObservabilityOutput { - return i.ToSkeClusterExtensionsObservabilityOutputWithContext(context.Background()) +type GetApplicationLoadBalancerListenerArgs struct { + // Configuration for HTTP traffic. + Http GetApplicationLoadBalancerListenerHttpInput `pulumi:"http"` + // Configuration for handling HTTPS traffic on this listener. + Https GetApplicationLoadBalancerListenerHttpsInput `pulumi:"https"` + // Unique name for the listener + Name pulumi.StringInput `pulumi:"name"` + // Port number on which the listener receives incoming traffic. + Port pulumi.IntInput `pulumi:"port"` + // Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. + Protocol pulumi.StringInput `pulumi:"protocol"` + // Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. + WafConfigName pulumi.StringInput `pulumi:"wafConfigName"` } -func (i SkeClusterExtensionsObservabilityArgs) ToSkeClusterExtensionsObservabilityOutputWithContext(ctx context.Context) SkeClusterExtensionsObservabilityOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsObservabilityOutput) +func (GetApplicationLoadBalancerListenerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListener)(nil)).Elem() } -func (i SkeClusterExtensionsObservabilityArgs) ToSkeClusterExtensionsObservabilityPtrOutput() SkeClusterExtensionsObservabilityPtrOutput { - return i.ToSkeClusterExtensionsObservabilityPtrOutputWithContext(context.Background()) +func (i GetApplicationLoadBalancerListenerArgs) ToGetApplicationLoadBalancerListenerOutput() GetApplicationLoadBalancerListenerOutput { + return i.ToGetApplicationLoadBalancerListenerOutputWithContext(context.Background()) } -func (i SkeClusterExtensionsObservabilityArgs) ToSkeClusterExtensionsObservabilityPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsObservabilityPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsObservabilityOutput).ToSkeClusterExtensionsObservabilityPtrOutputWithContext(ctx) +func (i GetApplicationLoadBalancerListenerArgs) ToGetApplicationLoadBalancerListenerOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerListenerOutput) } -// SkeClusterExtensionsObservabilityPtrInput is an input type that accepts SkeClusterExtensionsObservabilityArgs, SkeClusterExtensionsObservabilityPtr and SkeClusterExtensionsObservabilityPtrOutput values. -// You can construct a concrete instance of `SkeClusterExtensionsObservabilityPtrInput` via: -// -// SkeClusterExtensionsObservabilityArgs{...} -// -// or: +// GetApplicationLoadBalancerListenerArrayInput is an input type that accepts GetApplicationLoadBalancerListenerArray and GetApplicationLoadBalancerListenerArrayOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerListenerArrayInput` via: // -// nil -type SkeClusterExtensionsObservabilityPtrInput interface { +// GetApplicationLoadBalancerListenerArray{ GetApplicationLoadBalancerListenerArgs{...} } +type GetApplicationLoadBalancerListenerArrayInput interface { pulumi.Input - ToSkeClusterExtensionsObservabilityPtrOutput() SkeClusterExtensionsObservabilityPtrOutput - ToSkeClusterExtensionsObservabilityPtrOutputWithContext(context.Context) SkeClusterExtensionsObservabilityPtrOutput + ToGetApplicationLoadBalancerListenerArrayOutput() GetApplicationLoadBalancerListenerArrayOutput + ToGetApplicationLoadBalancerListenerArrayOutputWithContext(context.Context) GetApplicationLoadBalancerListenerArrayOutput } -type skeClusterExtensionsObservabilityPtrType SkeClusterExtensionsObservabilityArgs - -func SkeClusterExtensionsObservabilityPtr(v *SkeClusterExtensionsObservabilityArgs) SkeClusterExtensionsObservabilityPtrInput { - return (*skeClusterExtensionsObservabilityPtrType)(v) -} +type GetApplicationLoadBalancerListenerArray []GetApplicationLoadBalancerListenerInput -func (*skeClusterExtensionsObservabilityPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SkeClusterExtensionsObservability)(nil)).Elem() +func (GetApplicationLoadBalancerListenerArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerListener)(nil)).Elem() } -func (i *skeClusterExtensionsObservabilityPtrType) ToSkeClusterExtensionsObservabilityPtrOutput() SkeClusterExtensionsObservabilityPtrOutput { - return i.ToSkeClusterExtensionsObservabilityPtrOutputWithContext(context.Background()) +func (i GetApplicationLoadBalancerListenerArray) ToGetApplicationLoadBalancerListenerArrayOutput() GetApplicationLoadBalancerListenerArrayOutput { + return i.ToGetApplicationLoadBalancerListenerArrayOutputWithContext(context.Background()) } -func (i *skeClusterExtensionsObservabilityPtrType) ToSkeClusterExtensionsObservabilityPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsObservabilityPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterExtensionsObservabilityPtrOutput) +func (i GetApplicationLoadBalancerListenerArray) ToGetApplicationLoadBalancerListenerArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerListenerArrayOutput) } -type SkeClusterExtensionsObservabilityOutput struct{ *pulumi.OutputState } +type GetApplicationLoadBalancerListenerOutput struct{ *pulumi.OutputState } -func (SkeClusterExtensionsObservabilityOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterExtensionsObservability)(nil)).Elem() +func (GetApplicationLoadBalancerListenerOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListener)(nil)).Elem() } -func (o SkeClusterExtensionsObservabilityOutput) ToSkeClusterExtensionsObservabilityOutput() SkeClusterExtensionsObservabilityOutput { +func (o GetApplicationLoadBalancerListenerOutput) ToGetApplicationLoadBalancerListenerOutput() GetApplicationLoadBalancerListenerOutput { return o } -func (o SkeClusterExtensionsObservabilityOutput) ToSkeClusterExtensionsObservabilityOutputWithContext(ctx context.Context) SkeClusterExtensionsObservabilityOutput { +func (o GetApplicationLoadBalancerListenerOutput) ToGetApplicationLoadBalancerListenerOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerOutput { return o } -func (o SkeClusterExtensionsObservabilityOutput) ToSkeClusterExtensionsObservabilityPtrOutput() SkeClusterExtensionsObservabilityPtrOutput { - return o.ToSkeClusterExtensionsObservabilityPtrOutputWithContext(context.Background()) +// Configuration for HTTP traffic. +func (o GetApplicationLoadBalancerListenerOutput) Http() GetApplicationLoadBalancerListenerHttpOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListener) GetApplicationLoadBalancerListenerHttp { return v.Http }).(GetApplicationLoadBalancerListenerHttpOutput) } -func (o SkeClusterExtensionsObservabilityOutput) ToSkeClusterExtensionsObservabilityPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsObservabilityPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SkeClusterExtensionsObservability) *SkeClusterExtensionsObservability { - return &v - }).(SkeClusterExtensionsObservabilityPtrOutput) +// Configuration for handling HTTPS traffic on this listener. +func (o GetApplicationLoadBalancerListenerOutput) Https() GetApplicationLoadBalancerListenerHttpsOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListener) GetApplicationLoadBalancerListenerHttps { return v.Https }).(GetApplicationLoadBalancerListenerHttpsOutput) } -// Flag to enable/disable Observability extensions. -func (o SkeClusterExtensionsObservabilityOutput) Enabled() pulumi.BoolOutput { - return o.ApplyT(func(v SkeClusterExtensionsObservability) bool { return v.Enabled }).(pulumi.BoolOutput) +// Unique name for the listener +func (o GetApplicationLoadBalancerListenerOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListener) string { return v.Name }).(pulumi.StringOutput) } -// Observability instance ID to choose which Observability instance is used. Required when enabled is set to `true`. -func (o SkeClusterExtensionsObservabilityOutput) InstanceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v SkeClusterExtensionsObservability) *string { return v.InstanceId }).(pulumi.StringPtrOutput) +// Port number on which the listener receives incoming traffic. +func (o GetApplicationLoadBalancerListenerOutput) Port() pulumi.IntOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListener) int { return v.Port }).(pulumi.IntOutput) } -type SkeClusterExtensionsObservabilityPtrOutput struct{ *pulumi.OutputState } - -func (SkeClusterExtensionsObservabilityPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SkeClusterExtensionsObservability)(nil)).Elem() +// Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. +func (o GetApplicationLoadBalancerListenerOutput) Protocol() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListener) string { return v.Protocol }).(pulumi.StringOutput) } -func (o SkeClusterExtensionsObservabilityPtrOutput) ToSkeClusterExtensionsObservabilityPtrOutput() SkeClusterExtensionsObservabilityPtrOutput { - return o +// Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. +func (o GetApplicationLoadBalancerListenerOutput) WafConfigName() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListener) string { return v.WafConfigName }).(pulumi.StringOutput) } -func (o SkeClusterExtensionsObservabilityPtrOutput) ToSkeClusterExtensionsObservabilityPtrOutputWithContext(ctx context.Context) SkeClusterExtensionsObservabilityPtrOutput { - return o +type GetApplicationLoadBalancerListenerArrayOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerListenerArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerListener)(nil)).Elem() } -func (o SkeClusterExtensionsObservabilityPtrOutput) Elem() SkeClusterExtensionsObservabilityOutput { - return o.ApplyT(func(v *SkeClusterExtensionsObservability) SkeClusterExtensionsObservability { - if v != nil { - return *v - } - var ret SkeClusterExtensionsObservability - return ret - }).(SkeClusterExtensionsObservabilityOutput) +func (o GetApplicationLoadBalancerListenerArrayOutput) ToGetApplicationLoadBalancerListenerArrayOutput() GetApplicationLoadBalancerListenerArrayOutput { + return o } -// Flag to enable/disable Observability extensions. -func (o SkeClusterExtensionsObservabilityPtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *SkeClusterExtensionsObservability) *bool { - if v == nil { - return nil - } - return &v.Enabled - }).(pulumi.BoolPtrOutput) +func (o GetApplicationLoadBalancerListenerArrayOutput) ToGetApplicationLoadBalancerListenerArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerArrayOutput { + return o } -// Observability instance ID to choose which Observability instance is used. Required when enabled is set to `true`. -func (o SkeClusterExtensionsObservabilityPtrOutput) InstanceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SkeClusterExtensionsObservability) *string { - if v == nil { - return nil - } - return v.InstanceId - }).(pulumi.StringPtrOutput) +func (o GetApplicationLoadBalancerListenerArrayOutput) Index(i pulumi.IntInput) GetApplicationLoadBalancerListenerOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetApplicationLoadBalancerListener { + return vs[0].([]GetApplicationLoadBalancerListener)[vs[1].(int)] + }).(GetApplicationLoadBalancerListenerOutput) } -type SkeClusterHibernation struct { - // End time of hibernation in crontab syntax. E.g. `0 8 * * *` for waking up the cluster at 8am. - End string `pulumi:"end"` - // Start time of cluster hibernation in crontab syntax. E.g. `0 18 * * *` for starting everyday at 6pm. - Start string `pulumi:"start"` - // Timezone name corresponding to a file in the IANA Time Zone database. i.e. `Europe/Berlin`. - Timezone *string `pulumi:"timezone"` +type GetApplicationLoadBalancerListenerHttp struct { + // Defines routing rules grouped by hostname. + Hosts []GetApplicationLoadBalancerListenerHttpHost `pulumi:"hosts"` } -// SkeClusterHibernationInput is an input type that accepts SkeClusterHibernationArgs and SkeClusterHibernationOutput values. -// You can construct a concrete instance of `SkeClusterHibernationInput` via: +// GetApplicationLoadBalancerListenerHttpInput is an input type that accepts GetApplicationLoadBalancerListenerHttpArgs and GetApplicationLoadBalancerListenerHttpOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerListenerHttpInput` via: // -// SkeClusterHibernationArgs{...} -type SkeClusterHibernationInput interface { +// GetApplicationLoadBalancerListenerHttpArgs{...} +type GetApplicationLoadBalancerListenerHttpInput interface { pulumi.Input - ToSkeClusterHibernationOutput() SkeClusterHibernationOutput - ToSkeClusterHibernationOutputWithContext(context.Context) SkeClusterHibernationOutput + ToGetApplicationLoadBalancerListenerHttpOutput() GetApplicationLoadBalancerListenerHttpOutput + ToGetApplicationLoadBalancerListenerHttpOutputWithContext(context.Context) GetApplicationLoadBalancerListenerHttpOutput } -type SkeClusterHibernationArgs struct { - // End time of hibernation in crontab syntax. E.g. `0 8 * * *` for waking up the cluster at 8am. - End pulumi.StringInput `pulumi:"end"` - // Start time of cluster hibernation in crontab syntax. E.g. `0 18 * * *` for starting everyday at 6pm. - Start pulumi.StringInput `pulumi:"start"` - // Timezone name corresponding to a file in the IANA Time Zone database. i.e. `Europe/Berlin`. - Timezone pulumi.StringPtrInput `pulumi:"timezone"` +type GetApplicationLoadBalancerListenerHttpArgs struct { + // Defines routing rules grouped by hostname. + Hosts GetApplicationLoadBalancerListenerHttpHostArrayInput `pulumi:"hosts"` } -func (SkeClusterHibernationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterHibernation)(nil)).Elem() +func (GetApplicationLoadBalancerListenerHttpArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttp)(nil)).Elem() } -func (i SkeClusterHibernationArgs) ToSkeClusterHibernationOutput() SkeClusterHibernationOutput { - return i.ToSkeClusterHibernationOutputWithContext(context.Background()) +func (i GetApplicationLoadBalancerListenerHttpArgs) ToGetApplicationLoadBalancerListenerHttpOutput() GetApplicationLoadBalancerListenerHttpOutput { + return i.ToGetApplicationLoadBalancerListenerHttpOutputWithContext(context.Background()) } -func (i SkeClusterHibernationArgs) ToSkeClusterHibernationOutputWithContext(ctx context.Context) SkeClusterHibernationOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterHibernationOutput) +func (i GetApplicationLoadBalancerListenerHttpArgs) ToGetApplicationLoadBalancerListenerHttpOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerListenerHttpOutput) } -// SkeClusterHibernationArrayInput is an input type that accepts SkeClusterHibernationArray and SkeClusterHibernationArrayOutput values. -// You can construct a concrete instance of `SkeClusterHibernationArrayInput` via: -// -// SkeClusterHibernationArray{ SkeClusterHibernationArgs{...} } -type SkeClusterHibernationArrayInput interface { - pulumi.Input +type GetApplicationLoadBalancerListenerHttpOutput struct{ *pulumi.OutputState } - ToSkeClusterHibernationArrayOutput() SkeClusterHibernationArrayOutput - ToSkeClusterHibernationArrayOutputWithContext(context.Context) SkeClusterHibernationArrayOutput +func (GetApplicationLoadBalancerListenerHttpOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttp)(nil)).Elem() } -type SkeClusterHibernationArray []SkeClusterHibernationInput +func (o GetApplicationLoadBalancerListenerHttpOutput) ToGetApplicationLoadBalancerListenerHttpOutput() GetApplicationLoadBalancerListenerHttpOutput { + return o +} -func (SkeClusterHibernationArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SkeClusterHibernation)(nil)).Elem() +func (o GetApplicationLoadBalancerListenerHttpOutput) ToGetApplicationLoadBalancerListenerHttpOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpOutput { + return o } -func (i SkeClusterHibernationArray) ToSkeClusterHibernationArrayOutput() SkeClusterHibernationArrayOutput { - return i.ToSkeClusterHibernationArrayOutputWithContext(context.Background()) +// Defines routing rules grouped by hostname. +func (o GetApplicationLoadBalancerListenerHttpOutput) Hosts() GetApplicationLoadBalancerListenerHttpHostArrayOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttp) []GetApplicationLoadBalancerListenerHttpHost { + return v.Hosts + }).(GetApplicationLoadBalancerListenerHttpHostArrayOutput) } -func (i SkeClusterHibernationArray) ToSkeClusterHibernationArrayOutputWithContext(ctx context.Context) SkeClusterHibernationArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterHibernationArrayOutput) +type GetApplicationLoadBalancerListenerHttpHost struct { + // Hostname to match. Supports wildcards (e.g. *.example.com). + Host string `pulumi:"host"` + // Routing rules under the specified host, matched by path prefix. + Rules []GetApplicationLoadBalancerListenerHttpHostRule `pulumi:"rules"` } -type SkeClusterHibernationOutput struct{ *pulumi.OutputState } +// GetApplicationLoadBalancerListenerHttpHostInput is an input type that accepts GetApplicationLoadBalancerListenerHttpHostArgs and GetApplicationLoadBalancerListenerHttpHostOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerListenerHttpHostInput` via: +// +// GetApplicationLoadBalancerListenerHttpHostArgs{...} +type GetApplicationLoadBalancerListenerHttpHostInput interface { + pulumi.Input -func (SkeClusterHibernationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterHibernation)(nil)).Elem() + ToGetApplicationLoadBalancerListenerHttpHostOutput() GetApplicationLoadBalancerListenerHttpHostOutput + ToGetApplicationLoadBalancerListenerHttpHostOutputWithContext(context.Context) GetApplicationLoadBalancerListenerHttpHostOutput } -func (o SkeClusterHibernationOutput) ToSkeClusterHibernationOutput() SkeClusterHibernationOutput { - return o +type GetApplicationLoadBalancerListenerHttpHostArgs struct { + // Hostname to match. Supports wildcards (e.g. *.example.com). + Host pulumi.StringInput `pulumi:"host"` + // Routing rules under the specified host, matched by path prefix. + Rules GetApplicationLoadBalancerListenerHttpHostRuleArrayInput `pulumi:"rules"` } -func (o SkeClusterHibernationOutput) ToSkeClusterHibernationOutputWithContext(ctx context.Context) SkeClusterHibernationOutput { - return o +func (GetApplicationLoadBalancerListenerHttpHostArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHost)(nil)).Elem() } -// End time of hibernation in crontab syntax. E.g. `0 8 * * *` for waking up the cluster at 8am. -func (o SkeClusterHibernationOutput) End() pulumi.StringOutput { - return o.ApplyT(func(v SkeClusterHibernation) string { return v.End }).(pulumi.StringOutput) +func (i GetApplicationLoadBalancerListenerHttpHostArgs) ToGetApplicationLoadBalancerListenerHttpHostOutput() GetApplicationLoadBalancerListenerHttpHostOutput { + return i.ToGetApplicationLoadBalancerListenerHttpHostOutputWithContext(context.Background()) } -// Start time of cluster hibernation in crontab syntax. E.g. `0 18 * * *` for starting everyday at 6pm. -func (o SkeClusterHibernationOutput) Start() pulumi.StringOutput { - return o.ApplyT(func(v SkeClusterHibernation) string { return v.Start }).(pulumi.StringOutput) +func (i GetApplicationLoadBalancerListenerHttpHostArgs) ToGetApplicationLoadBalancerListenerHttpHostOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerListenerHttpHostOutput) } -// Timezone name corresponding to a file in the IANA Time Zone database. i.e. `Europe/Berlin`. -func (o SkeClusterHibernationOutput) Timezone() pulumi.StringPtrOutput { - return o.ApplyT(func(v SkeClusterHibernation) *string { return v.Timezone }).(pulumi.StringPtrOutput) +// GetApplicationLoadBalancerListenerHttpHostArrayInput is an input type that accepts GetApplicationLoadBalancerListenerHttpHostArray and GetApplicationLoadBalancerListenerHttpHostArrayOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerListenerHttpHostArrayInput` via: +// +// GetApplicationLoadBalancerListenerHttpHostArray{ GetApplicationLoadBalancerListenerHttpHostArgs{...} } +type GetApplicationLoadBalancerListenerHttpHostArrayInput interface { + pulumi.Input + + ToGetApplicationLoadBalancerListenerHttpHostArrayOutput() GetApplicationLoadBalancerListenerHttpHostArrayOutput + ToGetApplicationLoadBalancerListenerHttpHostArrayOutputWithContext(context.Context) GetApplicationLoadBalancerListenerHttpHostArrayOutput } -type SkeClusterHibernationArrayOutput struct{ *pulumi.OutputState } +type GetApplicationLoadBalancerListenerHttpHostArray []GetApplicationLoadBalancerListenerHttpHostInput -func (SkeClusterHibernationArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SkeClusterHibernation)(nil)).Elem() +func (GetApplicationLoadBalancerListenerHttpHostArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerListenerHttpHost)(nil)).Elem() } -func (o SkeClusterHibernationArrayOutput) ToSkeClusterHibernationArrayOutput() SkeClusterHibernationArrayOutput { - return o +func (i GetApplicationLoadBalancerListenerHttpHostArray) ToGetApplicationLoadBalancerListenerHttpHostArrayOutput() GetApplicationLoadBalancerListenerHttpHostArrayOutput { + return i.ToGetApplicationLoadBalancerListenerHttpHostArrayOutputWithContext(context.Background()) } -func (o SkeClusterHibernationArrayOutput) ToSkeClusterHibernationArrayOutputWithContext(ctx context.Context) SkeClusterHibernationArrayOutput { - return o +func (i GetApplicationLoadBalancerListenerHttpHostArray) ToGetApplicationLoadBalancerListenerHttpHostArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerListenerHttpHostArrayOutput) } -func (o SkeClusterHibernationArrayOutput) Index(i pulumi.IntInput) SkeClusterHibernationOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SkeClusterHibernation { - return vs[0].([]SkeClusterHibernation)[vs[1].(int)] - }).(SkeClusterHibernationOutput) +type GetApplicationLoadBalancerListenerHttpHostOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerListenerHttpHostOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHost)(nil)).Elem() } -type SkeClusterMaintenance struct { - // Flag to enable/disable auto-updates of the Kubernetes version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). - EnableKubernetesVersionUpdates *bool `pulumi:"enableKubernetesVersionUpdates"` - // Flag to enable/disable auto-updates of the OS image version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). - EnableMachineImageVersionUpdates *bool `pulumi:"enableMachineImageVersionUpdates"` - // Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. - End string `pulumi:"end"` - // Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. - Start string `pulumi:"start"` +func (o GetApplicationLoadBalancerListenerHttpHostOutput) ToGetApplicationLoadBalancerListenerHttpHostOutput() GetApplicationLoadBalancerListenerHttpHostOutput { + return o } -// SkeClusterMaintenanceInput is an input type that accepts SkeClusterMaintenanceArgs and SkeClusterMaintenanceOutput values. -// You can construct a concrete instance of `SkeClusterMaintenanceInput` via: -// -// SkeClusterMaintenanceArgs{...} -type SkeClusterMaintenanceInput interface { - pulumi.Input +func (o GetApplicationLoadBalancerListenerHttpHostOutput) ToGetApplicationLoadBalancerListenerHttpHostOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostOutput { + return o +} - ToSkeClusterMaintenanceOutput() SkeClusterMaintenanceOutput - ToSkeClusterMaintenanceOutputWithContext(context.Context) SkeClusterMaintenanceOutput +// Hostname to match. Supports wildcards (e.g. *.example.com). +func (o GetApplicationLoadBalancerListenerHttpHostOutput) Host() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttpHost) string { return v.Host }).(pulumi.StringOutput) } -type SkeClusterMaintenanceArgs struct { - // Flag to enable/disable auto-updates of the Kubernetes version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). - EnableKubernetesVersionUpdates pulumi.BoolPtrInput `pulumi:"enableKubernetesVersionUpdates"` - // Flag to enable/disable auto-updates of the OS image version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). - EnableMachineImageVersionUpdates pulumi.BoolPtrInput `pulumi:"enableMachineImageVersionUpdates"` - // Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. - End pulumi.StringInput `pulumi:"end"` - // Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. - Start pulumi.StringInput `pulumi:"start"` +// Routing rules under the specified host, matched by path prefix. +func (o GetApplicationLoadBalancerListenerHttpHostOutput) Rules() GetApplicationLoadBalancerListenerHttpHostRuleArrayOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttpHost) []GetApplicationLoadBalancerListenerHttpHostRule { + return v.Rules + }).(GetApplicationLoadBalancerListenerHttpHostRuleArrayOutput) } -func (SkeClusterMaintenanceArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterMaintenance)(nil)).Elem() +type GetApplicationLoadBalancerListenerHttpHostArrayOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerListenerHttpHostArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerListenerHttpHost)(nil)).Elem() } -func (i SkeClusterMaintenanceArgs) ToSkeClusterMaintenanceOutput() SkeClusterMaintenanceOutput { - return i.ToSkeClusterMaintenanceOutputWithContext(context.Background()) +func (o GetApplicationLoadBalancerListenerHttpHostArrayOutput) ToGetApplicationLoadBalancerListenerHttpHostArrayOutput() GetApplicationLoadBalancerListenerHttpHostArrayOutput { + return o } -func (i SkeClusterMaintenanceArgs) ToSkeClusterMaintenanceOutputWithContext(ctx context.Context) SkeClusterMaintenanceOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterMaintenanceOutput) +func (o GetApplicationLoadBalancerListenerHttpHostArrayOutput) ToGetApplicationLoadBalancerListenerHttpHostArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostArrayOutput { + return o } -func (i SkeClusterMaintenanceArgs) ToSkeClusterMaintenancePtrOutput() SkeClusterMaintenancePtrOutput { - return i.ToSkeClusterMaintenancePtrOutputWithContext(context.Background()) +func (o GetApplicationLoadBalancerListenerHttpHostArrayOutput) Index(i pulumi.IntInput) GetApplicationLoadBalancerListenerHttpHostOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetApplicationLoadBalancerListenerHttpHost { + return vs[0].([]GetApplicationLoadBalancerListenerHttpHost)[vs[1].(int)] + }).(GetApplicationLoadBalancerListenerHttpHostOutput) } -func (i SkeClusterMaintenanceArgs) ToSkeClusterMaintenancePtrOutputWithContext(ctx context.Context) SkeClusterMaintenancePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterMaintenanceOutput).ToSkeClusterMaintenancePtrOutputWithContext(ctx) +type GetApplicationLoadBalancerListenerHttpHostRule struct { + // Routing persistence via cookies. + CookiePersistence GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistence `pulumi:"cookiePersistence"` + // Headers for the rule. + Headers []GetApplicationLoadBalancerListenerHttpHostRuleHeader `pulumi:"headers"` + // Routing via path. + Path GetApplicationLoadBalancerListenerHttpHostRulePath `pulumi:"path"` + // Query parameters for the rule. + QueryParameters []GetApplicationLoadBalancerListenerHttpHostRuleQueryParameter `pulumi:"queryParameters"` + // Reference target pool by target pool name. + TargetPool string `pulumi:"targetPool"` + // 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. + WebSocket bool `pulumi:"webSocket"` } -// SkeClusterMaintenancePtrInput is an input type that accepts SkeClusterMaintenanceArgs, SkeClusterMaintenancePtr and SkeClusterMaintenancePtrOutput values. -// You can construct a concrete instance of `SkeClusterMaintenancePtrInput` via: -// -// SkeClusterMaintenanceArgs{...} -// -// or: +// GetApplicationLoadBalancerListenerHttpHostRuleInput is an input type that accepts GetApplicationLoadBalancerListenerHttpHostRuleArgs and GetApplicationLoadBalancerListenerHttpHostRuleOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerListenerHttpHostRuleInput` via: // -// nil -type SkeClusterMaintenancePtrInput interface { +// GetApplicationLoadBalancerListenerHttpHostRuleArgs{...} +type GetApplicationLoadBalancerListenerHttpHostRuleInput interface { pulumi.Input - ToSkeClusterMaintenancePtrOutput() SkeClusterMaintenancePtrOutput - ToSkeClusterMaintenancePtrOutputWithContext(context.Context) SkeClusterMaintenancePtrOutput + ToGetApplicationLoadBalancerListenerHttpHostRuleOutput() GetApplicationLoadBalancerListenerHttpHostRuleOutput + ToGetApplicationLoadBalancerListenerHttpHostRuleOutputWithContext(context.Context) GetApplicationLoadBalancerListenerHttpHostRuleOutput } -type skeClusterMaintenancePtrType SkeClusterMaintenanceArgs +type GetApplicationLoadBalancerListenerHttpHostRuleArgs struct { + // Routing persistence via cookies. + CookiePersistence GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceInput `pulumi:"cookiePersistence"` + // Headers for the rule. + Headers GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayInput `pulumi:"headers"` + // Routing via path. + Path GetApplicationLoadBalancerListenerHttpHostRulePathInput `pulumi:"path"` + // Query parameters for the rule. + QueryParameters GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayInput `pulumi:"queryParameters"` + // Reference target pool by target pool name. + TargetPool pulumi.StringInput `pulumi:"targetPool"` + // 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. + WebSocket pulumi.BoolInput `pulumi:"webSocket"` +} -func SkeClusterMaintenancePtr(v *SkeClusterMaintenanceArgs) SkeClusterMaintenancePtrInput { - return (*skeClusterMaintenancePtrType)(v) +func (GetApplicationLoadBalancerListenerHttpHostRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRule)(nil)).Elem() } -func (*skeClusterMaintenancePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SkeClusterMaintenance)(nil)).Elem() +func (i GetApplicationLoadBalancerListenerHttpHostRuleArgs) ToGetApplicationLoadBalancerListenerHttpHostRuleOutput() GetApplicationLoadBalancerListenerHttpHostRuleOutput { + return i.ToGetApplicationLoadBalancerListenerHttpHostRuleOutputWithContext(context.Background()) } -func (i *skeClusterMaintenancePtrType) ToSkeClusterMaintenancePtrOutput() SkeClusterMaintenancePtrOutput { - return i.ToSkeClusterMaintenancePtrOutputWithContext(context.Background()) +func (i GetApplicationLoadBalancerListenerHttpHostRuleArgs) ToGetApplicationLoadBalancerListenerHttpHostRuleOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerListenerHttpHostRuleOutput) } -func (i *skeClusterMaintenancePtrType) ToSkeClusterMaintenancePtrOutputWithContext(ctx context.Context) SkeClusterMaintenancePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterMaintenancePtrOutput) +// GetApplicationLoadBalancerListenerHttpHostRuleArrayInput is an input type that accepts GetApplicationLoadBalancerListenerHttpHostRuleArray and GetApplicationLoadBalancerListenerHttpHostRuleArrayOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerListenerHttpHostRuleArrayInput` via: +// +// GetApplicationLoadBalancerListenerHttpHostRuleArray{ GetApplicationLoadBalancerListenerHttpHostRuleArgs{...} } +type GetApplicationLoadBalancerListenerHttpHostRuleArrayInput interface { + pulumi.Input + + ToGetApplicationLoadBalancerListenerHttpHostRuleArrayOutput() GetApplicationLoadBalancerListenerHttpHostRuleArrayOutput + ToGetApplicationLoadBalancerListenerHttpHostRuleArrayOutputWithContext(context.Context) GetApplicationLoadBalancerListenerHttpHostRuleArrayOutput } -type SkeClusterMaintenanceOutput struct{ *pulumi.OutputState } +type GetApplicationLoadBalancerListenerHttpHostRuleArray []GetApplicationLoadBalancerListenerHttpHostRuleInput -func (SkeClusterMaintenanceOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterMaintenance)(nil)).Elem() +func (GetApplicationLoadBalancerListenerHttpHostRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerListenerHttpHostRule)(nil)).Elem() } -func (o SkeClusterMaintenanceOutput) ToSkeClusterMaintenanceOutput() SkeClusterMaintenanceOutput { +func (i GetApplicationLoadBalancerListenerHttpHostRuleArray) ToGetApplicationLoadBalancerListenerHttpHostRuleArrayOutput() GetApplicationLoadBalancerListenerHttpHostRuleArrayOutput { + return i.ToGetApplicationLoadBalancerListenerHttpHostRuleArrayOutputWithContext(context.Background()) +} + +func (i GetApplicationLoadBalancerListenerHttpHostRuleArray) ToGetApplicationLoadBalancerListenerHttpHostRuleArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerListenerHttpHostRuleArrayOutput) +} + +type GetApplicationLoadBalancerListenerHttpHostRuleOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerListenerHttpHostRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRule)(nil)).Elem() +} + +func (o GetApplicationLoadBalancerListenerHttpHostRuleOutput) ToGetApplicationLoadBalancerListenerHttpHostRuleOutput() GetApplicationLoadBalancerListenerHttpHostRuleOutput { return o } -func (o SkeClusterMaintenanceOutput) ToSkeClusterMaintenanceOutputWithContext(ctx context.Context) SkeClusterMaintenanceOutput { +func (o GetApplicationLoadBalancerListenerHttpHostRuleOutput) ToGetApplicationLoadBalancerListenerHttpHostRuleOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostRuleOutput { return o } -func (o SkeClusterMaintenanceOutput) ToSkeClusterMaintenancePtrOutput() SkeClusterMaintenancePtrOutput { - return o.ToSkeClusterMaintenancePtrOutputWithContext(context.Background()) +// Routing persistence via cookies. +func (o GetApplicationLoadBalancerListenerHttpHostRuleOutput) CookiePersistence() GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttpHostRule) GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistence { + return v.CookiePersistence + }).(GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput) } -func (o SkeClusterMaintenanceOutput) ToSkeClusterMaintenancePtrOutputWithContext(ctx context.Context) SkeClusterMaintenancePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SkeClusterMaintenance) *SkeClusterMaintenance { - return &v - }).(SkeClusterMaintenancePtrOutput) +// Headers for the rule. +func (o GetApplicationLoadBalancerListenerHttpHostRuleOutput) Headers() GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttpHostRule) []GetApplicationLoadBalancerListenerHttpHostRuleHeader { + return v.Headers + }).(GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput) } -// Flag to enable/disable auto-updates of the Kubernetes version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). -func (o SkeClusterMaintenanceOutput) EnableKubernetesVersionUpdates() pulumi.BoolPtrOutput { - return o.ApplyT(func(v SkeClusterMaintenance) *bool { return v.EnableKubernetesVersionUpdates }).(pulumi.BoolPtrOutput) +// Routing via path. +func (o GetApplicationLoadBalancerListenerHttpHostRuleOutput) Path() GetApplicationLoadBalancerListenerHttpHostRulePathOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttpHostRule) GetApplicationLoadBalancerListenerHttpHostRulePath { + return v.Path + }).(GetApplicationLoadBalancerListenerHttpHostRulePathOutput) } -// Flag to enable/disable auto-updates of the OS image version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). -func (o SkeClusterMaintenanceOutput) EnableMachineImageVersionUpdates() pulumi.BoolPtrOutput { - return o.ApplyT(func(v SkeClusterMaintenance) *bool { return v.EnableMachineImageVersionUpdates }).(pulumi.BoolPtrOutput) +// Query parameters for the rule. +func (o GetApplicationLoadBalancerListenerHttpHostRuleOutput) QueryParameters() GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttpHostRule) []GetApplicationLoadBalancerListenerHttpHostRuleQueryParameter { + return v.QueryParameters + }).(GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput) } -// Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. -func (o SkeClusterMaintenanceOutput) End() pulumi.StringOutput { - return o.ApplyT(func(v SkeClusterMaintenance) string { return v.End }).(pulumi.StringOutput) +// Reference target pool by target pool name. +func (o GetApplicationLoadBalancerListenerHttpHostRuleOutput) TargetPool() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttpHostRule) string { return v.TargetPool }).(pulumi.StringOutput) } -// Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. -func (o SkeClusterMaintenanceOutput) Start() pulumi.StringOutput { - return o.ApplyT(func(v SkeClusterMaintenance) string { return v.Start }).(pulumi.StringOutput) +// 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. +func (o GetApplicationLoadBalancerListenerHttpHostRuleOutput) WebSocket() pulumi.BoolOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttpHostRule) bool { return v.WebSocket }).(pulumi.BoolOutput) } -type SkeClusterMaintenancePtrOutput struct{ *pulumi.OutputState } +type GetApplicationLoadBalancerListenerHttpHostRuleArrayOutput struct{ *pulumi.OutputState } -func (SkeClusterMaintenancePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SkeClusterMaintenance)(nil)).Elem() +func (GetApplicationLoadBalancerListenerHttpHostRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerListenerHttpHostRule)(nil)).Elem() } -func (o SkeClusterMaintenancePtrOutput) ToSkeClusterMaintenancePtrOutput() SkeClusterMaintenancePtrOutput { +func (o GetApplicationLoadBalancerListenerHttpHostRuleArrayOutput) ToGetApplicationLoadBalancerListenerHttpHostRuleArrayOutput() GetApplicationLoadBalancerListenerHttpHostRuleArrayOutput { return o } -func (o SkeClusterMaintenancePtrOutput) ToSkeClusterMaintenancePtrOutputWithContext(ctx context.Context) SkeClusterMaintenancePtrOutput { +func (o GetApplicationLoadBalancerListenerHttpHostRuleArrayOutput) ToGetApplicationLoadBalancerListenerHttpHostRuleArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostRuleArrayOutput { return o } -func (o SkeClusterMaintenancePtrOutput) Elem() SkeClusterMaintenanceOutput { - return o.ApplyT(func(v *SkeClusterMaintenance) SkeClusterMaintenance { - if v != nil { - return *v - } - var ret SkeClusterMaintenance - return ret - }).(SkeClusterMaintenanceOutput) +func (o GetApplicationLoadBalancerListenerHttpHostRuleArrayOutput) Index(i pulumi.IntInput) GetApplicationLoadBalancerListenerHttpHostRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetApplicationLoadBalancerListenerHttpHostRule { + return vs[0].([]GetApplicationLoadBalancerListenerHttpHostRule)[vs[1].(int)] + }).(GetApplicationLoadBalancerListenerHttpHostRuleOutput) } -// Flag to enable/disable auto-updates of the Kubernetes version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). -func (o SkeClusterMaintenancePtrOutput) EnableKubernetesVersionUpdates() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *SkeClusterMaintenance) *bool { - if v == nil { - return nil - } - return v.EnableKubernetesVersionUpdates - }).(pulumi.BoolPtrOutput) +type GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistence struct { + // The name of the cookie to use. + Name string `pulumi:"name"` + // 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. + Ttl string `pulumi:"ttl"` } -// Flag to enable/disable auto-updates of the OS image version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). -func (o SkeClusterMaintenancePtrOutput) EnableMachineImageVersionUpdates() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *SkeClusterMaintenance) *bool { - if v == nil { - return nil - } - return v.EnableMachineImageVersionUpdates - }).(pulumi.BoolPtrOutput) -} +// GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceInput is an input type that accepts GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs and GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceInput` via: +// +// GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs{...} +type GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceInput interface { + pulumi.Input -// Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. -func (o SkeClusterMaintenancePtrOutput) End() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SkeClusterMaintenance) *string { - if v == nil { - return nil - } - return &v.End - }).(pulumi.StringPtrOutput) + ToGetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput() GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput + ToGetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutputWithContext(context.Context) GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput } -// Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. -func (o SkeClusterMaintenancePtrOutput) Start() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SkeClusterMaintenance) *string { - if v == nil { - return nil - } - return &v.Start - }).(pulumi.StringPtrOutput) +type GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs struct { + // The name of the cookie to use. + Name pulumi.StringInput `pulumi:"name"` + // 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. + Ttl pulumi.StringInput `pulumi:"ttl"` } -type SkeClusterNetwork struct { - // ID of the STACKIT Network Area (SNA) network into which the cluster will be deployed. - Id *string `pulumi:"id"` +func (GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistence)(nil)).Elem() } -// SkeClusterNetworkInput is an input type that accepts SkeClusterNetworkArgs and SkeClusterNetworkOutput values. -// You can construct a concrete instance of `SkeClusterNetworkInput` via: -// -// SkeClusterNetworkArgs{...} -type SkeClusterNetworkInput interface { - pulumi.Input +func (i GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs) ToGetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput() GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput { + return i.ToGetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutputWithContext(context.Background()) +} - ToSkeClusterNetworkOutput() SkeClusterNetworkOutput - ToSkeClusterNetworkOutputWithContext(context.Context) SkeClusterNetworkOutput +func (i GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs) ToGetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput) } -type SkeClusterNetworkArgs struct { - // ID of the STACKIT Network Area (SNA) network into which the cluster will be deployed. - Id pulumi.StringPtrInput `pulumi:"id"` +type GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistence)(nil)).Elem() } -func (SkeClusterNetworkArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterNetwork)(nil)).Elem() +func (o GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput) ToGetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput() GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput { + return o } -func (i SkeClusterNetworkArgs) ToSkeClusterNetworkOutput() SkeClusterNetworkOutput { - return i.ToSkeClusterNetworkOutputWithContext(context.Background()) +func (o GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput) ToGetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput { + return o } -func (i SkeClusterNetworkArgs) ToSkeClusterNetworkOutputWithContext(ctx context.Context) SkeClusterNetworkOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterNetworkOutput) +// The name of the cookie to use. +func (o GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistence) string { return v.Name }).(pulumi.StringOutput) } -func (i SkeClusterNetworkArgs) ToSkeClusterNetworkPtrOutput() SkeClusterNetworkPtrOutput { - return i.ToSkeClusterNetworkPtrOutputWithContext(context.Background()) +// 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. +func (o GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput) Ttl() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistence) string { return v.Ttl }).(pulumi.StringOutput) } -func (i SkeClusterNetworkArgs) ToSkeClusterNetworkPtrOutputWithContext(ctx context.Context) SkeClusterNetworkPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterNetworkOutput).ToSkeClusterNetworkPtrOutputWithContext(ctx) +type GetApplicationLoadBalancerListenerHttpHostRuleHeader struct { + // Exact match for the header value. + ExactMatch string `pulumi:"exactMatch"` + // Header name. + Name string `pulumi:"name"` } -// SkeClusterNetworkPtrInput is an input type that accepts SkeClusterNetworkArgs, SkeClusterNetworkPtr and SkeClusterNetworkPtrOutput values. -// You can construct a concrete instance of `SkeClusterNetworkPtrInput` via: +// GetApplicationLoadBalancerListenerHttpHostRuleHeaderInput is an input type that accepts GetApplicationLoadBalancerListenerHttpHostRuleHeaderArgs and GetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerListenerHttpHostRuleHeaderInput` via: // -// SkeClusterNetworkArgs{...} -// -// or: -// -// nil -type SkeClusterNetworkPtrInput interface { +// GetApplicationLoadBalancerListenerHttpHostRuleHeaderArgs{...} +type GetApplicationLoadBalancerListenerHttpHostRuleHeaderInput interface { pulumi.Input - ToSkeClusterNetworkPtrOutput() SkeClusterNetworkPtrOutput - ToSkeClusterNetworkPtrOutputWithContext(context.Context) SkeClusterNetworkPtrOutput + ToGetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput() GetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput + ToGetApplicationLoadBalancerListenerHttpHostRuleHeaderOutputWithContext(context.Context) GetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput } -type skeClusterNetworkPtrType SkeClusterNetworkArgs +type GetApplicationLoadBalancerListenerHttpHostRuleHeaderArgs struct { + // Exact match for the header value. + ExactMatch pulumi.StringInput `pulumi:"exactMatch"` + // Header name. + Name pulumi.StringInput `pulumi:"name"` +} -func SkeClusterNetworkPtr(v *SkeClusterNetworkArgs) SkeClusterNetworkPtrInput { - return (*skeClusterNetworkPtrType)(v) +func (GetApplicationLoadBalancerListenerHttpHostRuleHeaderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRuleHeader)(nil)).Elem() } -func (*skeClusterNetworkPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SkeClusterNetwork)(nil)).Elem() +func (i GetApplicationLoadBalancerListenerHttpHostRuleHeaderArgs) ToGetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput() GetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput { + return i.ToGetApplicationLoadBalancerListenerHttpHostRuleHeaderOutputWithContext(context.Background()) } -func (i *skeClusterNetworkPtrType) ToSkeClusterNetworkPtrOutput() SkeClusterNetworkPtrOutput { - return i.ToSkeClusterNetworkPtrOutputWithContext(context.Background()) +func (i GetApplicationLoadBalancerListenerHttpHostRuleHeaderArgs) ToGetApplicationLoadBalancerListenerHttpHostRuleHeaderOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput) } -func (i *skeClusterNetworkPtrType) ToSkeClusterNetworkPtrOutputWithContext(ctx context.Context) SkeClusterNetworkPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterNetworkPtrOutput) +// GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayInput is an input type that accepts GetApplicationLoadBalancerListenerHttpHostRuleHeaderArray and GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayInput` via: +// +// GetApplicationLoadBalancerListenerHttpHostRuleHeaderArray{ GetApplicationLoadBalancerListenerHttpHostRuleHeaderArgs{...} } +type GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayInput interface { + pulumi.Input + + ToGetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput() GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput + ToGetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutputWithContext(context.Context) GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput } -type SkeClusterNetworkOutput struct{ *pulumi.OutputState } +type GetApplicationLoadBalancerListenerHttpHostRuleHeaderArray []GetApplicationLoadBalancerListenerHttpHostRuleHeaderInput -func (SkeClusterNetworkOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterNetwork)(nil)).Elem() +func (GetApplicationLoadBalancerListenerHttpHostRuleHeaderArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerListenerHttpHostRuleHeader)(nil)).Elem() } -func (o SkeClusterNetworkOutput) ToSkeClusterNetworkOutput() SkeClusterNetworkOutput { - return o +func (i GetApplicationLoadBalancerListenerHttpHostRuleHeaderArray) ToGetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput() GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput { + return i.ToGetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutputWithContext(context.Background()) } -func (o SkeClusterNetworkOutput) ToSkeClusterNetworkOutputWithContext(ctx context.Context) SkeClusterNetworkOutput { - return o +func (i GetApplicationLoadBalancerListenerHttpHostRuleHeaderArray) ToGetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput) } -func (o SkeClusterNetworkOutput) ToSkeClusterNetworkPtrOutput() SkeClusterNetworkPtrOutput { - return o.ToSkeClusterNetworkPtrOutputWithContext(context.Background()) +type GetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRuleHeader)(nil)).Elem() } -func (o SkeClusterNetworkOutput) ToSkeClusterNetworkPtrOutputWithContext(ctx context.Context) SkeClusterNetworkPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SkeClusterNetwork) *SkeClusterNetwork { - return &v - }).(SkeClusterNetworkPtrOutput) +func (o GetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput) ToGetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput() GetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput { + return o } -// ID of the STACKIT Network Area (SNA) network into which the cluster will be deployed. -func (o SkeClusterNetworkOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v SkeClusterNetwork) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o GetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput) ToGetApplicationLoadBalancerListenerHttpHostRuleHeaderOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput { + return o } -type SkeClusterNetworkPtrOutput struct{ *pulumi.OutputState } +// Exact match for the header value. +func (o GetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput) ExactMatch() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttpHostRuleHeader) string { return v.ExactMatch }).(pulumi.StringOutput) +} -func (SkeClusterNetworkPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SkeClusterNetwork)(nil)).Elem() +// Header name. +func (o GetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttpHostRuleHeader) string { return v.Name }).(pulumi.StringOutput) } -func (o SkeClusterNetworkPtrOutput) ToSkeClusterNetworkPtrOutput() SkeClusterNetworkPtrOutput { - return o +type GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerListenerHttpHostRuleHeader)(nil)).Elem() } -func (o SkeClusterNetworkPtrOutput) ToSkeClusterNetworkPtrOutputWithContext(ctx context.Context) SkeClusterNetworkPtrOutput { +func (o GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput) ToGetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput() GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput { return o } -func (o SkeClusterNetworkPtrOutput) Elem() SkeClusterNetworkOutput { - return o.ApplyT(func(v *SkeClusterNetwork) SkeClusterNetwork { - if v != nil { - return *v - } - var ret SkeClusterNetwork - return ret - }).(SkeClusterNetworkOutput) +func (o GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput) ToGetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput { + return o } -// ID of the STACKIT Network Area (SNA) network into which the cluster will be deployed. -func (o SkeClusterNetworkPtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SkeClusterNetwork) *string { - if v == nil { - return nil - } - return v.Id - }).(pulumi.StringPtrOutput) +func (o GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput) Index(i pulumi.IntInput) GetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetApplicationLoadBalancerListenerHttpHostRuleHeader { + return vs[0].([]GetApplicationLoadBalancerListenerHttpHostRuleHeader)[vs[1].(int)] + }).(GetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput) } -type SkeClusterNodePool struct { - // Allow system components to run on this node pool. - AllowSystemComponents *bool `pulumi:"allowSystemComponents"` - // Specify a list of availability zones. E.g. `eu01-m` - AvailabilityZones []string `pulumi:"availabilityZones"` - // Specifies the container runtime. Defaults to `containerd` - Cri *string `pulumi:"cri"` - // Labels to add to each node. - Labels map[string]string `pulumi:"labels"` - // The machine type. - MachineType string `pulumi:"machineType"` - // 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 `maxSurge` and `maxUnavailable` fields cannot both be unset at the same time. - MaxSurge *int `pulumi:"maxSurge"` - // 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 `maxSurge` and `maxUnavailable` fields cannot both be unset at the same time. - MaxUnavailable *int `pulumi:"maxUnavailable"` - // Maximum number of nodes in the pool. - Maximum int `pulumi:"maximum"` - // Minimum number of nodes in the pool. - Minimum int `pulumi:"minimum"` - // Specifies the name of the node pool. - Name string `pulumi:"name"` - // The name of the OS image. Defaults to `flatcar`. - OsName *string `pulumi:"osName"` - // This field is deprecated, use `osVersionMin` to configure the version and `osVersionUsed` to get the currently used version instead. - // - // Deprecated: Use `osVersionMin` to configure the version and `osVersionUsed` to get the currently used version instead. Setting a specific OS image version will cause errors during minor OS upgrades due to forced updates. - OsVersion *string `pulumi:"osVersion"` - // 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 & 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 `osVersionUsed` field. - OsVersionMin *string `pulumi:"osVersionMin"` - // Full OS image version used. For example, if 3815.2 was set in `osVersionMin`, 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). - OsVersionUsed *string `pulumi:"osVersionUsed"` - // Specifies a taint list as defined below. - Taints []SkeClusterNodePoolTaint `pulumi:"taints"` - // The volume size in GB. Defaults to `20` - VolumeSize *int `pulumi:"volumeSize"` - // Specifies the volume type. Defaults to `storagePremiumPerf1`. - VolumeType *string `pulumi:"volumeType"` +type GetApplicationLoadBalancerListenerHttpHostRulePath struct { + // 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'. + ExactMatch string `pulumi:"exactMatch"` + // Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. + Prefix string `pulumi:"prefix"` } -// SkeClusterNodePoolInput is an input type that accepts SkeClusterNodePoolArgs and SkeClusterNodePoolOutput values. -// You can construct a concrete instance of `SkeClusterNodePoolInput` via: +// GetApplicationLoadBalancerListenerHttpHostRulePathInput is an input type that accepts GetApplicationLoadBalancerListenerHttpHostRulePathArgs and GetApplicationLoadBalancerListenerHttpHostRulePathOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerListenerHttpHostRulePathInput` via: // -// SkeClusterNodePoolArgs{...} -type SkeClusterNodePoolInput interface { +// GetApplicationLoadBalancerListenerHttpHostRulePathArgs{...} +type GetApplicationLoadBalancerListenerHttpHostRulePathInput interface { pulumi.Input - ToSkeClusterNodePoolOutput() SkeClusterNodePoolOutput - ToSkeClusterNodePoolOutputWithContext(context.Context) SkeClusterNodePoolOutput + ToGetApplicationLoadBalancerListenerHttpHostRulePathOutput() GetApplicationLoadBalancerListenerHttpHostRulePathOutput + ToGetApplicationLoadBalancerListenerHttpHostRulePathOutputWithContext(context.Context) GetApplicationLoadBalancerListenerHttpHostRulePathOutput } -type SkeClusterNodePoolArgs struct { - // Allow system components to run on this node pool. - AllowSystemComponents pulumi.BoolPtrInput `pulumi:"allowSystemComponents"` - // Specify a list of availability zones. E.g. `eu01-m` - AvailabilityZones pulumi.StringArrayInput `pulumi:"availabilityZones"` - // Specifies the container runtime. Defaults to `containerd` - Cri pulumi.StringPtrInput `pulumi:"cri"` - // Labels to add to each node. - Labels pulumi.StringMapInput `pulumi:"labels"` - // The machine type. - MachineType pulumi.StringInput `pulumi:"machineType"` - // 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 `maxSurge` and `maxUnavailable` fields cannot both be unset at the same time. - MaxSurge pulumi.IntPtrInput `pulumi:"maxSurge"` - // 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 `maxSurge` and `maxUnavailable` fields cannot both be unset at the same time. - MaxUnavailable pulumi.IntPtrInput `pulumi:"maxUnavailable"` - // Maximum number of nodes in the pool. - Maximum pulumi.IntInput `pulumi:"maximum"` - // Minimum number of nodes in the pool. - Minimum pulumi.IntInput `pulumi:"minimum"` - // Specifies the name of the node pool. - Name pulumi.StringInput `pulumi:"name"` - // The name of the OS image. Defaults to `flatcar`. - OsName pulumi.StringPtrInput `pulumi:"osName"` - // This field is deprecated, use `osVersionMin` to configure the version and `osVersionUsed` to get the currently used version instead. - // - // Deprecated: Use `osVersionMin` to configure the version and `osVersionUsed` to get the currently used version instead. Setting a specific OS image version will cause errors during minor OS upgrades due to forced updates. - OsVersion pulumi.StringPtrInput `pulumi:"osVersion"` - // 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 & 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 `osVersionUsed` field. - OsVersionMin pulumi.StringPtrInput `pulumi:"osVersionMin"` - // Full OS image version used. For example, if 3815.2 was set in `osVersionMin`, 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). - OsVersionUsed pulumi.StringPtrInput `pulumi:"osVersionUsed"` - // Specifies a taint list as defined below. - Taints SkeClusterNodePoolTaintArrayInput `pulumi:"taints"` - // The volume size in GB. Defaults to `20` - VolumeSize pulumi.IntPtrInput `pulumi:"volumeSize"` - // Specifies the volume type. Defaults to `storagePremiumPerf1`. - VolumeType pulumi.StringPtrInput `pulumi:"volumeType"` +type GetApplicationLoadBalancerListenerHttpHostRulePathArgs struct { + // 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'. + ExactMatch pulumi.StringInput `pulumi:"exactMatch"` + // Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. + Prefix pulumi.StringInput `pulumi:"prefix"` } -func (SkeClusterNodePoolArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterNodePool)(nil)).Elem() +func (GetApplicationLoadBalancerListenerHttpHostRulePathArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRulePath)(nil)).Elem() } -func (i SkeClusterNodePoolArgs) ToSkeClusterNodePoolOutput() SkeClusterNodePoolOutput { - return i.ToSkeClusterNodePoolOutputWithContext(context.Background()) +func (i GetApplicationLoadBalancerListenerHttpHostRulePathArgs) ToGetApplicationLoadBalancerListenerHttpHostRulePathOutput() GetApplicationLoadBalancerListenerHttpHostRulePathOutput { + return i.ToGetApplicationLoadBalancerListenerHttpHostRulePathOutputWithContext(context.Background()) } -func (i SkeClusterNodePoolArgs) ToSkeClusterNodePoolOutputWithContext(ctx context.Context) SkeClusterNodePoolOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterNodePoolOutput) +func (i GetApplicationLoadBalancerListenerHttpHostRulePathArgs) ToGetApplicationLoadBalancerListenerHttpHostRulePathOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostRulePathOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerListenerHttpHostRulePathOutput) } -// SkeClusterNodePoolArrayInput is an input type that accepts SkeClusterNodePoolArray and SkeClusterNodePoolArrayOutput values. -// You can construct a concrete instance of `SkeClusterNodePoolArrayInput` via: +type GetApplicationLoadBalancerListenerHttpHostRulePathOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerListenerHttpHostRulePathOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRulePath)(nil)).Elem() +} + +func (o GetApplicationLoadBalancerListenerHttpHostRulePathOutput) ToGetApplicationLoadBalancerListenerHttpHostRulePathOutput() GetApplicationLoadBalancerListenerHttpHostRulePathOutput { + return o +} + +func (o GetApplicationLoadBalancerListenerHttpHostRulePathOutput) ToGetApplicationLoadBalancerListenerHttpHostRulePathOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostRulePathOutput { + return o +} + +// 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'. +func (o GetApplicationLoadBalancerListenerHttpHostRulePathOutput) ExactMatch() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttpHostRulePath) string { return v.ExactMatch }).(pulumi.StringOutput) +} + +// Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. +func (o GetApplicationLoadBalancerListenerHttpHostRulePathOutput) Prefix() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttpHostRulePath) string { return v.Prefix }).(pulumi.StringOutput) +} + +type GetApplicationLoadBalancerListenerHttpHostRuleQueryParameter struct { + // Exact match for the query parameters value. + ExactMatch string `pulumi:"exactMatch"` + // Query parameter name. + Name string `pulumi:"name"` +} + +// GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterInput is an input type that accepts GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs and GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterInput` via: // -// SkeClusterNodePoolArray{ SkeClusterNodePoolArgs{...} } -type SkeClusterNodePoolArrayInput interface { +// GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs{...} +type GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterInput interface { pulumi.Input - ToSkeClusterNodePoolArrayOutput() SkeClusterNodePoolArrayOutput - ToSkeClusterNodePoolArrayOutputWithContext(context.Context) SkeClusterNodePoolArrayOutput + ToGetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput() GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput + ToGetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutputWithContext(context.Context) GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput } -type SkeClusterNodePoolArray []SkeClusterNodePoolInput +type GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs struct { + // Exact match for the query parameters value. + ExactMatch pulumi.StringInput `pulumi:"exactMatch"` + // Query parameter name. + Name pulumi.StringInput `pulumi:"name"` +} -func (SkeClusterNodePoolArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SkeClusterNodePool)(nil)).Elem() +func (GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRuleQueryParameter)(nil)).Elem() } -func (i SkeClusterNodePoolArray) ToSkeClusterNodePoolArrayOutput() SkeClusterNodePoolArrayOutput { - return i.ToSkeClusterNodePoolArrayOutputWithContext(context.Background()) +func (i GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs) ToGetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput() GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput { + return i.ToGetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutputWithContext(context.Background()) } -func (i SkeClusterNodePoolArray) ToSkeClusterNodePoolArrayOutputWithContext(ctx context.Context) SkeClusterNodePoolArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterNodePoolArrayOutput) +func (i GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs) ToGetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput) } -type SkeClusterNodePoolOutput struct{ *pulumi.OutputState } +// GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayInput is an input type that accepts GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArray and GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayInput` via: +// +// GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArray{ GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs{...} } +type GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayInput interface { + pulumi.Input -func (SkeClusterNodePoolOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterNodePool)(nil)).Elem() + ToGetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput() GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput + ToGetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutputWithContext(context.Context) GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput } -func (o SkeClusterNodePoolOutput) ToSkeClusterNodePoolOutput() SkeClusterNodePoolOutput { - return o +type GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArray []GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterInput + +func (GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerListenerHttpHostRuleQueryParameter)(nil)).Elem() } -func (o SkeClusterNodePoolOutput) ToSkeClusterNodePoolOutputWithContext(ctx context.Context) SkeClusterNodePoolOutput { - return o +func (i GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArray) ToGetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput() GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput { + return i.ToGetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutputWithContext(context.Background()) } -// Allow system components to run on this node pool. -func (o SkeClusterNodePoolOutput) AllowSystemComponents() pulumi.BoolPtrOutput { - return o.ApplyT(func(v SkeClusterNodePool) *bool { return v.AllowSystemComponents }).(pulumi.BoolPtrOutput) +func (i GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArray) ToGetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput) } -// Specify a list of availability zones. E.g. `eu01-m` -func (o SkeClusterNodePoolOutput) AvailabilityZones() pulumi.StringArrayOutput { - return o.ApplyT(func(v SkeClusterNodePool) []string { return v.AvailabilityZones }).(pulumi.StringArrayOutput) +type GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRuleQueryParameter)(nil)).Elem() } -// Specifies the container runtime. Defaults to `containerd` -func (o SkeClusterNodePoolOutput) Cri() pulumi.StringPtrOutput { - return o.ApplyT(func(v SkeClusterNodePool) *string { return v.Cri }).(pulumi.StringPtrOutput) +func (o GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput) ToGetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput() GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput { + return o } -// Labels to add to each node. -func (o SkeClusterNodePoolOutput) Labels() pulumi.StringMapOutput { - return o.ApplyT(func(v SkeClusterNodePool) map[string]string { return v.Labels }).(pulumi.StringMapOutput) +func (o GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput) ToGetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput { + return o } -// The machine type. -func (o SkeClusterNodePoolOutput) MachineType() pulumi.StringOutput { - return o.ApplyT(func(v SkeClusterNodePool) string { return v.MachineType }).(pulumi.StringOutput) +// Exact match for the query parameters value. +func (o GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput) ExactMatch() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttpHostRuleQueryParameter) string { return v.ExactMatch }).(pulumi.StringOutput) } -// 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 `maxSurge` and `maxUnavailable` fields cannot both be unset at the same time. -func (o SkeClusterNodePoolOutput) MaxSurge() pulumi.IntPtrOutput { - return o.ApplyT(func(v SkeClusterNodePool) *int { return v.MaxSurge }).(pulumi.IntPtrOutput) +// Query parameter name. +func (o GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttpHostRuleQueryParameter) string { return v.Name }).(pulumi.StringOutput) } -// 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 `maxSurge` and `maxUnavailable` fields cannot both be unset at the same time. -func (o SkeClusterNodePoolOutput) MaxUnavailable() pulumi.IntPtrOutput { - return o.ApplyT(func(v SkeClusterNodePool) *int { return v.MaxUnavailable }).(pulumi.IntPtrOutput) +type GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerListenerHttpHostRuleQueryParameter)(nil)).Elem() } -// Maximum number of nodes in the pool. -func (o SkeClusterNodePoolOutput) Maximum() pulumi.IntOutput { - return o.ApplyT(func(v SkeClusterNodePool) int { return v.Maximum }).(pulumi.IntOutput) +func (o GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput) ToGetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput() GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput { + return o } -// Minimum number of nodes in the pool. -func (o SkeClusterNodePoolOutput) Minimum() pulumi.IntOutput { - return o.ApplyT(func(v SkeClusterNodePool) int { return v.Minimum }).(pulumi.IntOutput) +func (o GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput) ToGetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput { + return o } -// Specifies the name of the node pool. -func (o SkeClusterNodePoolOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v SkeClusterNodePool) string { return v.Name }).(pulumi.StringOutput) +func (o GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput) Index(i pulumi.IntInput) GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetApplicationLoadBalancerListenerHttpHostRuleQueryParameter { + return vs[0].([]GetApplicationLoadBalancerListenerHttpHostRuleQueryParameter)[vs[1].(int)] + }).(GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput) } -// The name of the OS image. Defaults to `flatcar`. -func (o SkeClusterNodePoolOutput) OsName() pulumi.StringPtrOutput { - return o.ApplyT(func(v SkeClusterNodePool) *string { return v.OsName }).(pulumi.StringPtrOutput) +type GetApplicationLoadBalancerListenerHttps struct { + // TLS termination certificate configuration. + CertificateConfig GetApplicationLoadBalancerListenerHttpsCertificateConfig `pulumi:"certificateConfig"` } -// This field is deprecated, use `osVersionMin` to configure the version and `osVersionUsed` to get the currently used version instead. +// GetApplicationLoadBalancerListenerHttpsInput is an input type that accepts GetApplicationLoadBalancerListenerHttpsArgs and GetApplicationLoadBalancerListenerHttpsOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerListenerHttpsInput` via: // -// Deprecated: Use `osVersionMin` to configure the version and `osVersionUsed` to get the currently used version instead. Setting a specific OS image version will cause errors during minor OS upgrades due to forced updates. -func (o SkeClusterNodePoolOutput) OsVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v SkeClusterNodePool) *string { return v.OsVersion }).(pulumi.StringPtrOutput) -} +// GetApplicationLoadBalancerListenerHttpsArgs{...} +type GetApplicationLoadBalancerListenerHttpsInput interface { + pulumi.Input -// 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 & 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 `osVersionUsed` field. -func (o SkeClusterNodePoolOutput) OsVersionMin() pulumi.StringPtrOutput { - return o.ApplyT(func(v SkeClusterNodePool) *string { return v.OsVersionMin }).(pulumi.StringPtrOutput) + ToGetApplicationLoadBalancerListenerHttpsOutput() GetApplicationLoadBalancerListenerHttpsOutput + ToGetApplicationLoadBalancerListenerHttpsOutputWithContext(context.Context) GetApplicationLoadBalancerListenerHttpsOutput } -// Full OS image version used. For example, if 3815.2 was set in `osVersionMin`, 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). -func (o SkeClusterNodePoolOutput) OsVersionUsed() pulumi.StringPtrOutput { - return o.ApplyT(func(v SkeClusterNodePool) *string { return v.OsVersionUsed }).(pulumi.StringPtrOutput) +type GetApplicationLoadBalancerListenerHttpsArgs struct { + // TLS termination certificate configuration. + CertificateConfig GetApplicationLoadBalancerListenerHttpsCertificateConfigInput `pulumi:"certificateConfig"` } -// Specifies a taint list as defined below. -func (o SkeClusterNodePoolOutput) Taints() SkeClusterNodePoolTaintArrayOutput { - return o.ApplyT(func(v SkeClusterNodePool) []SkeClusterNodePoolTaint { return v.Taints }).(SkeClusterNodePoolTaintArrayOutput) +func (GetApplicationLoadBalancerListenerHttpsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttps)(nil)).Elem() } -// The volume size in GB. Defaults to `20` -func (o SkeClusterNodePoolOutput) VolumeSize() pulumi.IntPtrOutput { - return o.ApplyT(func(v SkeClusterNodePool) *int { return v.VolumeSize }).(pulumi.IntPtrOutput) +func (i GetApplicationLoadBalancerListenerHttpsArgs) ToGetApplicationLoadBalancerListenerHttpsOutput() GetApplicationLoadBalancerListenerHttpsOutput { + return i.ToGetApplicationLoadBalancerListenerHttpsOutputWithContext(context.Background()) } -// Specifies the volume type. Defaults to `storagePremiumPerf1`. -func (o SkeClusterNodePoolOutput) VolumeType() pulumi.StringPtrOutput { - return o.ApplyT(func(v SkeClusterNodePool) *string { return v.VolumeType }).(pulumi.StringPtrOutput) +func (i GetApplicationLoadBalancerListenerHttpsArgs) ToGetApplicationLoadBalancerListenerHttpsOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerListenerHttpsOutput) } -type SkeClusterNodePoolArrayOutput struct{ *pulumi.OutputState } +type GetApplicationLoadBalancerListenerHttpsOutput struct{ *pulumi.OutputState } -func (SkeClusterNodePoolArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SkeClusterNodePool)(nil)).Elem() +func (GetApplicationLoadBalancerListenerHttpsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttps)(nil)).Elem() } -func (o SkeClusterNodePoolArrayOutput) ToSkeClusterNodePoolArrayOutput() SkeClusterNodePoolArrayOutput { +func (o GetApplicationLoadBalancerListenerHttpsOutput) ToGetApplicationLoadBalancerListenerHttpsOutput() GetApplicationLoadBalancerListenerHttpsOutput { return o } -func (o SkeClusterNodePoolArrayOutput) ToSkeClusterNodePoolArrayOutputWithContext(ctx context.Context) SkeClusterNodePoolArrayOutput { +func (o GetApplicationLoadBalancerListenerHttpsOutput) ToGetApplicationLoadBalancerListenerHttpsOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpsOutput { return o } -func (o SkeClusterNodePoolArrayOutput) Index(i pulumi.IntInput) SkeClusterNodePoolOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SkeClusterNodePool { - return vs[0].([]SkeClusterNodePool)[vs[1].(int)] - }).(SkeClusterNodePoolOutput) +// TLS termination certificate configuration. +func (o GetApplicationLoadBalancerListenerHttpsOutput) CertificateConfig() GetApplicationLoadBalancerListenerHttpsCertificateConfigOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttps) GetApplicationLoadBalancerListenerHttpsCertificateConfig { + return v.CertificateConfig + }).(GetApplicationLoadBalancerListenerHttpsCertificateConfigOutput) } -type SkeClusterNodePoolTaint struct { - // The taint effect. E.g `PreferNoSchedule`. - Effect string `pulumi:"effect"` - // Taint key to be applied to a node. - Key string `pulumi:"key"` - // Taint value corresponding to the taint key. - Value *string `pulumi:"value"` +type GetApplicationLoadBalancerListenerHttpsCertificateConfig struct { + // Certificate IDs for TLS termination. + CertificateIds []string `pulumi:"certificateIds"` } -// SkeClusterNodePoolTaintInput is an input type that accepts SkeClusterNodePoolTaintArgs and SkeClusterNodePoolTaintOutput values. -// You can construct a concrete instance of `SkeClusterNodePoolTaintInput` via: +// GetApplicationLoadBalancerListenerHttpsCertificateConfigInput is an input type that accepts GetApplicationLoadBalancerListenerHttpsCertificateConfigArgs and GetApplicationLoadBalancerListenerHttpsCertificateConfigOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerListenerHttpsCertificateConfigInput` via: // -// SkeClusterNodePoolTaintArgs{...} -type SkeClusterNodePoolTaintInput interface { +// GetApplicationLoadBalancerListenerHttpsCertificateConfigArgs{...} +type GetApplicationLoadBalancerListenerHttpsCertificateConfigInput interface { pulumi.Input - ToSkeClusterNodePoolTaintOutput() SkeClusterNodePoolTaintOutput - ToSkeClusterNodePoolTaintOutputWithContext(context.Context) SkeClusterNodePoolTaintOutput + ToGetApplicationLoadBalancerListenerHttpsCertificateConfigOutput() GetApplicationLoadBalancerListenerHttpsCertificateConfigOutput + ToGetApplicationLoadBalancerListenerHttpsCertificateConfigOutputWithContext(context.Context) GetApplicationLoadBalancerListenerHttpsCertificateConfigOutput } -type SkeClusterNodePoolTaintArgs struct { - // The taint effect. E.g `PreferNoSchedule`. - Effect pulumi.StringInput `pulumi:"effect"` - // Taint key to be applied to a node. - Key pulumi.StringInput `pulumi:"key"` - // Taint value corresponding to the taint key. - Value pulumi.StringPtrInput `pulumi:"value"` +type GetApplicationLoadBalancerListenerHttpsCertificateConfigArgs struct { + // Certificate IDs for TLS termination. + CertificateIds pulumi.StringArrayInput `pulumi:"certificateIds"` } -func (SkeClusterNodePoolTaintArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterNodePoolTaint)(nil)).Elem() +func (GetApplicationLoadBalancerListenerHttpsCertificateConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpsCertificateConfig)(nil)).Elem() } -func (i SkeClusterNodePoolTaintArgs) ToSkeClusterNodePoolTaintOutput() SkeClusterNodePoolTaintOutput { - return i.ToSkeClusterNodePoolTaintOutputWithContext(context.Background()) +func (i GetApplicationLoadBalancerListenerHttpsCertificateConfigArgs) ToGetApplicationLoadBalancerListenerHttpsCertificateConfigOutput() GetApplicationLoadBalancerListenerHttpsCertificateConfigOutput { + return i.ToGetApplicationLoadBalancerListenerHttpsCertificateConfigOutputWithContext(context.Background()) } -func (i SkeClusterNodePoolTaintArgs) ToSkeClusterNodePoolTaintOutputWithContext(ctx context.Context) SkeClusterNodePoolTaintOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterNodePoolTaintOutput) +func (i GetApplicationLoadBalancerListenerHttpsCertificateConfigArgs) ToGetApplicationLoadBalancerListenerHttpsCertificateConfigOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpsCertificateConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerListenerHttpsCertificateConfigOutput) } -// SkeClusterNodePoolTaintArrayInput is an input type that accepts SkeClusterNodePoolTaintArray and SkeClusterNodePoolTaintArrayOutput values. -// You can construct a concrete instance of `SkeClusterNodePoolTaintArrayInput` via: +type GetApplicationLoadBalancerListenerHttpsCertificateConfigOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerListenerHttpsCertificateConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpsCertificateConfig)(nil)).Elem() +} + +func (o GetApplicationLoadBalancerListenerHttpsCertificateConfigOutput) ToGetApplicationLoadBalancerListenerHttpsCertificateConfigOutput() GetApplicationLoadBalancerListenerHttpsCertificateConfigOutput { + return o +} + +func (o GetApplicationLoadBalancerListenerHttpsCertificateConfigOutput) ToGetApplicationLoadBalancerListenerHttpsCertificateConfigOutputWithContext(ctx context.Context) GetApplicationLoadBalancerListenerHttpsCertificateConfigOutput { + return o +} + +// Certificate IDs for TLS termination. +func (o GetApplicationLoadBalancerListenerHttpsCertificateConfigOutput) CertificateIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerListenerHttpsCertificateConfig) []string { return v.CertificateIds }).(pulumi.StringArrayOutput) +} + +type GetApplicationLoadBalancerLoadBalancerSecurityGroup struct { + // ID of the security Group + Id string `pulumi:"id"` + // Name of the security Group + Name string `pulumi:"name"` +} + +// GetApplicationLoadBalancerLoadBalancerSecurityGroupInput is an input type that accepts GetApplicationLoadBalancerLoadBalancerSecurityGroupArgs and GetApplicationLoadBalancerLoadBalancerSecurityGroupOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerLoadBalancerSecurityGroupInput` via: // -// SkeClusterNodePoolTaintArray{ SkeClusterNodePoolTaintArgs{...} } -type SkeClusterNodePoolTaintArrayInput interface { +// GetApplicationLoadBalancerLoadBalancerSecurityGroupArgs{...} +type GetApplicationLoadBalancerLoadBalancerSecurityGroupInput interface { pulumi.Input - ToSkeClusterNodePoolTaintArrayOutput() SkeClusterNodePoolTaintArrayOutput - ToSkeClusterNodePoolTaintArrayOutputWithContext(context.Context) SkeClusterNodePoolTaintArrayOutput + ToGetApplicationLoadBalancerLoadBalancerSecurityGroupOutput() GetApplicationLoadBalancerLoadBalancerSecurityGroupOutput + ToGetApplicationLoadBalancerLoadBalancerSecurityGroupOutputWithContext(context.Context) GetApplicationLoadBalancerLoadBalancerSecurityGroupOutput } -type SkeClusterNodePoolTaintArray []SkeClusterNodePoolTaintInput +type GetApplicationLoadBalancerLoadBalancerSecurityGroupArgs struct { + // ID of the security Group + Id pulumi.StringInput `pulumi:"id"` + // Name of the security Group + Name pulumi.StringInput `pulumi:"name"` +} -func (SkeClusterNodePoolTaintArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SkeClusterNodePoolTaint)(nil)).Elem() +func (GetApplicationLoadBalancerLoadBalancerSecurityGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerLoadBalancerSecurityGroup)(nil)).Elem() } -func (i SkeClusterNodePoolTaintArray) ToSkeClusterNodePoolTaintArrayOutput() SkeClusterNodePoolTaintArrayOutput { - return i.ToSkeClusterNodePoolTaintArrayOutputWithContext(context.Background()) +func (i GetApplicationLoadBalancerLoadBalancerSecurityGroupArgs) ToGetApplicationLoadBalancerLoadBalancerSecurityGroupOutput() GetApplicationLoadBalancerLoadBalancerSecurityGroupOutput { + return i.ToGetApplicationLoadBalancerLoadBalancerSecurityGroupOutputWithContext(context.Background()) } -func (i SkeClusterNodePoolTaintArray) ToSkeClusterNodePoolTaintArrayOutputWithContext(ctx context.Context) SkeClusterNodePoolTaintArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkeClusterNodePoolTaintArrayOutput) +func (i GetApplicationLoadBalancerLoadBalancerSecurityGroupArgs) ToGetApplicationLoadBalancerLoadBalancerSecurityGroupOutputWithContext(ctx context.Context) GetApplicationLoadBalancerLoadBalancerSecurityGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerLoadBalancerSecurityGroupOutput) } -type SkeClusterNodePoolTaintOutput struct{ *pulumi.OutputState } +type GetApplicationLoadBalancerLoadBalancerSecurityGroupOutput struct{ *pulumi.OutputState } -func (SkeClusterNodePoolTaintOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SkeClusterNodePoolTaint)(nil)).Elem() +func (GetApplicationLoadBalancerLoadBalancerSecurityGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerLoadBalancerSecurityGroup)(nil)).Elem() } -func (o SkeClusterNodePoolTaintOutput) ToSkeClusterNodePoolTaintOutput() SkeClusterNodePoolTaintOutput { +func (o GetApplicationLoadBalancerLoadBalancerSecurityGroupOutput) ToGetApplicationLoadBalancerLoadBalancerSecurityGroupOutput() GetApplicationLoadBalancerLoadBalancerSecurityGroupOutput { return o } -func (o SkeClusterNodePoolTaintOutput) ToSkeClusterNodePoolTaintOutputWithContext(ctx context.Context) SkeClusterNodePoolTaintOutput { +func (o GetApplicationLoadBalancerLoadBalancerSecurityGroupOutput) ToGetApplicationLoadBalancerLoadBalancerSecurityGroupOutputWithContext(ctx context.Context) GetApplicationLoadBalancerLoadBalancerSecurityGroupOutput { return o } -// The taint effect. E.g `PreferNoSchedule`. -func (o SkeClusterNodePoolTaintOutput) Effect() pulumi.StringOutput { - return o.ApplyT(func(v SkeClusterNodePoolTaint) string { return v.Effect }).(pulumi.StringOutput) +// ID of the security Group +func (o GetApplicationLoadBalancerLoadBalancerSecurityGroupOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerLoadBalancerSecurityGroup) string { return v.Id }).(pulumi.StringOutput) } -// Taint key to be applied to a node. -func (o SkeClusterNodePoolTaintOutput) Key() pulumi.StringOutput { - return o.ApplyT(func(v SkeClusterNodePoolTaint) string { return v.Key }).(pulumi.StringOutput) +// Name of the security Group +func (o GetApplicationLoadBalancerLoadBalancerSecurityGroupOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerLoadBalancerSecurityGroup) string { return v.Name }).(pulumi.StringOutput) } -// Taint value corresponding to the taint key. -func (o SkeClusterNodePoolTaintOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v SkeClusterNodePoolTaint) *string { return v.Value }).(pulumi.StringPtrOutput) +type GetApplicationLoadBalancerNetwork struct { + // STACKIT network ID the Application Load Balancer and/or targets are in. + NetworkId string `pulumi:"networkId"` + // 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`. + Role string `pulumi:"role"` +} + +// GetApplicationLoadBalancerNetworkInput is an input type that accepts GetApplicationLoadBalancerNetworkArgs and GetApplicationLoadBalancerNetworkOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerNetworkInput` via: +// +// GetApplicationLoadBalancerNetworkArgs{...} +type GetApplicationLoadBalancerNetworkInput interface { + pulumi.Input + + ToGetApplicationLoadBalancerNetworkOutput() GetApplicationLoadBalancerNetworkOutput + ToGetApplicationLoadBalancerNetworkOutputWithContext(context.Context) GetApplicationLoadBalancerNetworkOutput +} + +type GetApplicationLoadBalancerNetworkArgs struct { + // STACKIT network ID the Application Load Balancer and/or targets are in. + NetworkId pulumi.StringInput `pulumi:"networkId"` + // 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`. + Role pulumi.StringInput `pulumi:"role"` +} + +func (GetApplicationLoadBalancerNetworkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerNetwork)(nil)).Elem() +} + +func (i GetApplicationLoadBalancerNetworkArgs) ToGetApplicationLoadBalancerNetworkOutput() GetApplicationLoadBalancerNetworkOutput { + return i.ToGetApplicationLoadBalancerNetworkOutputWithContext(context.Background()) +} + +func (i GetApplicationLoadBalancerNetworkArgs) ToGetApplicationLoadBalancerNetworkOutputWithContext(ctx context.Context) GetApplicationLoadBalancerNetworkOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerNetworkOutput) +} + +// GetApplicationLoadBalancerNetworkArrayInput is an input type that accepts GetApplicationLoadBalancerNetworkArray and GetApplicationLoadBalancerNetworkArrayOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerNetworkArrayInput` via: +// +// GetApplicationLoadBalancerNetworkArray{ GetApplicationLoadBalancerNetworkArgs{...} } +type GetApplicationLoadBalancerNetworkArrayInput interface { + pulumi.Input + + ToGetApplicationLoadBalancerNetworkArrayOutput() GetApplicationLoadBalancerNetworkArrayOutput + ToGetApplicationLoadBalancerNetworkArrayOutputWithContext(context.Context) GetApplicationLoadBalancerNetworkArrayOutput +} + +type GetApplicationLoadBalancerNetworkArray []GetApplicationLoadBalancerNetworkInput + +func (GetApplicationLoadBalancerNetworkArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerNetwork)(nil)).Elem() } -type SkeClusterNodePoolTaintArrayOutput struct{ *pulumi.OutputState } +func (i GetApplicationLoadBalancerNetworkArray) ToGetApplicationLoadBalancerNetworkArrayOutput() GetApplicationLoadBalancerNetworkArrayOutput { + return i.ToGetApplicationLoadBalancerNetworkArrayOutputWithContext(context.Background()) +} -func (SkeClusterNodePoolTaintArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SkeClusterNodePoolTaint)(nil)).Elem() +func (i GetApplicationLoadBalancerNetworkArray) ToGetApplicationLoadBalancerNetworkArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerNetworkArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerNetworkArrayOutput) } -func (o SkeClusterNodePoolTaintArrayOutput) ToSkeClusterNodePoolTaintArrayOutput() SkeClusterNodePoolTaintArrayOutput { - return o +type GetApplicationLoadBalancerNetworkOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerNetworkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerNetwork)(nil)).Elem() } -func (o SkeClusterNodePoolTaintArrayOutput) ToSkeClusterNodePoolTaintArrayOutputWithContext(ctx context.Context) SkeClusterNodePoolTaintArrayOutput { +func (o GetApplicationLoadBalancerNetworkOutput) ToGetApplicationLoadBalancerNetworkOutput() GetApplicationLoadBalancerNetworkOutput { return o } -func (o SkeClusterNodePoolTaintArrayOutput) Index(i pulumi.IntInput) SkeClusterNodePoolTaintOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SkeClusterNodePoolTaint { - return vs[0].([]SkeClusterNodePoolTaint)[vs[1].(int)] - }).(SkeClusterNodePoolTaintOutput) +func (o GetApplicationLoadBalancerNetworkOutput) ToGetApplicationLoadBalancerNetworkOutputWithContext(ctx context.Context) GetApplicationLoadBalancerNetworkOutput { + return o } -type SqlserverflexInstanceFlavor struct { - Cpu int `pulumi:"cpu"` - Description *string `pulumi:"description"` - Id *string `pulumi:"id"` - Ram int `pulumi:"ram"` +// STACKIT network ID the Application Load Balancer and/or targets are in. +func (o GetApplicationLoadBalancerNetworkOutput) NetworkId() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerNetwork) string { return v.NetworkId }).(pulumi.StringOutput) } -// SqlserverflexInstanceFlavorInput is an input type that accepts SqlserverflexInstanceFlavorArgs and SqlserverflexInstanceFlavorOutput values. -// You can construct a concrete instance of `SqlserverflexInstanceFlavorInput` via: -// -// SqlserverflexInstanceFlavorArgs{...} -type SqlserverflexInstanceFlavorInput interface { - pulumi.Input - - ToSqlserverflexInstanceFlavorOutput() SqlserverflexInstanceFlavorOutput - ToSqlserverflexInstanceFlavorOutputWithContext(context.Context) SqlserverflexInstanceFlavorOutput +// 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`. +func (o GetApplicationLoadBalancerNetworkOutput) Role() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerNetwork) string { return v.Role }).(pulumi.StringOutput) } -type SqlserverflexInstanceFlavorArgs struct { - Cpu pulumi.IntInput `pulumi:"cpu"` - Description pulumi.StringPtrInput `pulumi:"description"` - Id pulumi.StringPtrInput `pulumi:"id"` - Ram pulumi.IntInput `pulumi:"ram"` -} +type GetApplicationLoadBalancerNetworkArrayOutput struct{ *pulumi.OutputState } -func (SqlserverflexInstanceFlavorArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SqlserverflexInstanceFlavor)(nil)).Elem() +func (GetApplicationLoadBalancerNetworkArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerNetwork)(nil)).Elem() } -func (i SqlserverflexInstanceFlavorArgs) ToSqlserverflexInstanceFlavorOutput() SqlserverflexInstanceFlavorOutput { - return i.ToSqlserverflexInstanceFlavorOutputWithContext(context.Background()) +func (o GetApplicationLoadBalancerNetworkArrayOutput) ToGetApplicationLoadBalancerNetworkArrayOutput() GetApplicationLoadBalancerNetworkArrayOutput { + return o } -func (i SqlserverflexInstanceFlavorArgs) ToSqlserverflexInstanceFlavorOutputWithContext(ctx context.Context) SqlserverflexInstanceFlavorOutput { - return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceFlavorOutput) +func (o GetApplicationLoadBalancerNetworkArrayOutput) ToGetApplicationLoadBalancerNetworkArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerNetworkArrayOutput { + return o } -func (i SqlserverflexInstanceFlavorArgs) ToSqlserverflexInstanceFlavorPtrOutput() SqlserverflexInstanceFlavorPtrOutput { - return i.ToSqlserverflexInstanceFlavorPtrOutputWithContext(context.Background()) +func (o GetApplicationLoadBalancerNetworkArrayOutput) Index(i pulumi.IntInput) GetApplicationLoadBalancerNetworkOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetApplicationLoadBalancerNetwork { + return vs[0].([]GetApplicationLoadBalancerNetwork)[vs[1].(int)] + }).(GetApplicationLoadBalancerNetworkOutput) } -func (i SqlserverflexInstanceFlavorArgs) ToSqlserverflexInstanceFlavorPtrOutputWithContext(ctx context.Context) SqlserverflexInstanceFlavorPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceFlavorOutput).ToSqlserverflexInstanceFlavorPtrOutputWithContext(ctx) +type GetApplicationLoadBalancerOptions struct { + // Use this option to limit the IP ranges that can use the Application Load Balancer. + AccessControl GetApplicationLoadBalancerOptionsAccessControl `pulumi:"accessControl"` + // 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. + EphemeralAddress bool `pulumi:"ephemeralAddress"` + // We offer Load Balancer observability via STACKIT Observability or external solutions. + Observability GetApplicationLoadBalancerOptionsObservability `pulumi:"observability"` + // Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. + PrivateNetworkOnly bool `pulumi:"privateNetworkOnly"` } -// SqlserverflexInstanceFlavorPtrInput is an input type that accepts SqlserverflexInstanceFlavorArgs, SqlserverflexInstanceFlavorPtr and SqlserverflexInstanceFlavorPtrOutput values. -// You can construct a concrete instance of `SqlserverflexInstanceFlavorPtrInput` via: +// GetApplicationLoadBalancerOptionsInput is an input type that accepts GetApplicationLoadBalancerOptionsArgs and GetApplicationLoadBalancerOptionsOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerOptionsInput` via: // -// SqlserverflexInstanceFlavorArgs{...} -// -// or: -// -// nil -type SqlserverflexInstanceFlavorPtrInput interface { +// GetApplicationLoadBalancerOptionsArgs{...} +type GetApplicationLoadBalancerOptionsInput interface { pulumi.Input - ToSqlserverflexInstanceFlavorPtrOutput() SqlserverflexInstanceFlavorPtrOutput - ToSqlserverflexInstanceFlavorPtrOutputWithContext(context.Context) SqlserverflexInstanceFlavorPtrOutput + ToGetApplicationLoadBalancerOptionsOutput() GetApplicationLoadBalancerOptionsOutput + ToGetApplicationLoadBalancerOptionsOutputWithContext(context.Context) GetApplicationLoadBalancerOptionsOutput } -type sqlserverflexInstanceFlavorPtrType SqlserverflexInstanceFlavorArgs - -func SqlserverflexInstanceFlavorPtr(v *SqlserverflexInstanceFlavorArgs) SqlserverflexInstanceFlavorPtrInput { - return (*sqlserverflexInstanceFlavorPtrType)(v) +type GetApplicationLoadBalancerOptionsArgs struct { + // Use this option to limit the IP ranges that can use the Application Load Balancer. + AccessControl GetApplicationLoadBalancerOptionsAccessControlInput `pulumi:"accessControl"` + // 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. + EphemeralAddress pulumi.BoolInput `pulumi:"ephemeralAddress"` + // We offer Load Balancer observability via STACKIT Observability or external solutions. + Observability GetApplicationLoadBalancerOptionsObservabilityInput `pulumi:"observability"` + // Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. + PrivateNetworkOnly pulumi.BoolInput `pulumi:"privateNetworkOnly"` } -func (*sqlserverflexInstanceFlavorPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SqlserverflexInstanceFlavor)(nil)).Elem() +func (GetApplicationLoadBalancerOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerOptions)(nil)).Elem() } -func (i *sqlserverflexInstanceFlavorPtrType) ToSqlserverflexInstanceFlavorPtrOutput() SqlserverflexInstanceFlavorPtrOutput { - return i.ToSqlserverflexInstanceFlavorPtrOutputWithContext(context.Background()) +func (i GetApplicationLoadBalancerOptionsArgs) ToGetApplicationLoadBalancerOptionsOutput() GetApplicationLoadBalancerOptionsOutput { + return i.ToGetApplicationLoadBalancerOptionsOutputWithContext(context.Background()) } -func (i *sqlserverflexInstanceFlavorPtrType) ToSqlserverflexInstanceFlavorPtrOutputWithContext(ctx context.Context) SqlserverflexInstanceFlavorPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceFlavorPtrOutput) +func (i GetApplicationLoadBalancerOptionsArgs) ToGetApplicationLoadBalancerOptionsOutputWithContext(ctx context.Context) GetApplicationLoadBalancerOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerOptionsOutput) } -type SqlserverflexInstanceFlavorOutput struct{ *pulumi.OutputState } +type GetApplicationLoadBalancerOptionsOutput struct{ *pulumi.OutputState } -func (SqlserverflexInstanceFlavorOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SqlserverflexInstanceFlavor)(nil)).Elem() +func (GetApplicationLoadBalancerOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerOptions)(nil)).Elem() } -func (o SqlserverflexInstanceFlavorOutput) ToSqlserverflexInstanceFlavorOutput() SqlserverflexInstanceFlavorOutput { +func (o GetApplicationLoadBalancerOptionsOutput) ToGetApplicationLoadBalancerOptionsOutput() GetApplicationLoadBalancerOptionsOutput { return o } -func (o SqlserverflexInstanceFlavorOutput) ToSqlserverflexInstanceFlavorOutputWithContext(ctx context.Context) SqlserverflexInstanceFlavorOutput { +func (o GetApplicationLoadBalancerOptionsOutput) ToGetApplicationLoadBalancerOptionsOutputWithContext(ctx context.Context) GetApplicationLoadBalancerOptionsOutput { return o } -func (o SqlserverflexInstanceFlavorOutput) ToSqlserverflexInstanceFlavorPtrOutput() SqlserverflexInstanceFlavorPtrOutput { - return o.ToSqlserverflexInstanceFlavorPtrOutputWithContext(context.Background()) +// Use this option to limit the IP ranges that can use the Application Load Balancer. +func (o GetApplicationLoadBalancerOptionsOutput) AccessControl() GetApplicationLoadBalancerOptionsAccessControlOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerOptions) GetApplicationLoadBalancerOptionsAccessControl { + return v.AccessControl + }).(GetApplicationLoadBalancerOptionsAccessControlOutput) } -func (o SqlserverflexInstanceFlavorOutput) ToSqlserverflexInstanceFlavorPtrOutputWithContext(ctx context.Context) SqlserverflexInstanceFlavorPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SqlserverflexInstanceFlavor) *SqlserverflexInstanceFlavor { - return &v - }).(SqlserverflexInstanceFlavorPtrOutput) +// 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. +func (o GetApplicationLoadBalancerOptionsOutput) EphemeralAddress() pulumi.BoolOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerOptions) bool { return v.EphemeralAddress }).(pulumi.BoolOutput) } -func (o SqlserverflexInstanceFlavorOutput) Cpu() pulumi.IntOutput { - return o.ApplyT(func(v SqlserverflexInstanceFlavor) int { return v.Cpu }).(pulumi.IntOutput) +// We offer Load Balancer observability via STACKIT Observability or external solutions. +func (o GetApplicationLoadBalancerOptionsOutput) Observability() GetApplicationLoadBalancerOptionsObservabilityOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerOptions) GetApplicationLoadBalancerOptionsObservability { + return v.Observability + }).(GetApplicationLoadBalancerOptionsObservabilityOutput) } -func (o SqlserverflexInstanceFlavorOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v SqlserverflexInstanceFlavor) *string { return v.Description }).(pulumi.StringPtrOutput) +// Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. +func (o GetApplicationLoadBalancerOptionsOutput) PrivateNetworkOnly() pulumi.BoolOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerOptions) bool { return v.PrivateNetworkOnly }).(pulumi.BoolOutput) } -func (o SqlserverflexInstanceFlavorOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v SqlserverflexInstanceFlavor) *string { return v.Id }).(pulumi.StringPtrOutput) +type GetApplicationLoadBalancerOptionsAccessControl struct { + // Application Load Balancer is accessible only from an IP address in this range. + AllowedSourceRanges []string `pulumi:"allowedSourceRanges"` } -func (o SqlserverflexInstanceFlavorOutput) Ram() pulumi.IntOutput { - return o.ApplyT(func(v SqlserverflexInstanceFlavor) int { return v.Ram }).(pulumi.IntOutput) -} +// GetApplicationLoadBalancerOptionsAccessControlInput is an input type that accepts GetApplicationLoadBalancerOptionsAccessControlArgs and GetApplicationLoadBalancerOptionsAccessControlOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerOptionsAccessControlInput` via: +// +// GetApplicationLoadBalancerOptionsAccessControlArgs{...} +type GetApplicationLoadBalancerOptionsAccessControlInput interface { + pulumi.Input -type SqlserverflexInstanceFlavorPtrOutput struct{ *pulumi.OutputState } + ToGetApplicationLoadBalancerOptionsAccessControlOutput() GetApplicationLoadBalancerOptionsAccessControlOutput + ToGetApplicationLoadBalancerOptionsAccessControlOutputWithContext(context.Context) GetApplicationLoadBalancerOptionsAccessControlOutput +} -func (SqlserverflexInstanceFlavorPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SqlserverflexInstanceFlavor)(nil)).Elem() +type GetApplicationLoadBalancerOptionsAccessControlArgs struct { + // Application Load Balancer is accessible only from an IP address in this range. + AllowedSourceRanges pulumi.StringArrayInput `pulumi:"allowedSourceRanges"` } -func (o SqlserverflexInstanceFlavorPtrOutput) ToSqlserverflexInstanceFlavorPtrOutput() SqlserverflexInstanceFlavorPtrOutput { - return o +func (GetApplicationLoadBalancerOptionsAccessControlArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerOptionsAccessControl)(nil)).Elem() } -func (o SqlserverflexInstanceFlavorPtrOutput) ToSqlserverflexInstanceFlavorPtrOutputWithContext(ctx context.Context) SqlserverflexInstanceFlavorPtrOutput { - return o +func (i GetApplicationLoadBalancerOptionsAccessControlArgs) ToGetApplicationLoadBalancerOptionsAccessControlOutput() GetApplicationLoadBalancerOptionsAccessControlOutput { + return i.ToGetApplicationLoadBalancerOptionsAccessControlOutputWithContext(context.Background()) } -func (o SqlserverflexInstanceFlavorPtrOutput) Elem() SqlserverflexInstanceFlavorOutput { - return o.ApplyT(func(v *SqlserverflexInstanceFlavor) SqlserverflexInstanceFlavor { - if v != nil { - return *v - } - var ret SqlserverflexInstanceFlavor - return ret - }).(SqlserverflexInstanceFlavorOutput) +func (i GetApplicationLoadBalancerOptionsAccessControlArgs) ToGetApplicationLoadBalancerOptionsAccessControlOutputWithContext(ctx context.Context) GetApplicationLoadBalancerOptionsAccessControlOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerOptionsAccessControlOutput) } -func (o SqlserverflexInstanceFlavorPtrOutput) Cpu() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SqlserverflexInstanceFlavor) *int { - if v == nil { - return nil - } - return &v.Cpu - }).(pulumi.IntPtrOutput) +type GetApplicationLoadBalancerOptionsAccessControlOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerOptionsAccessControlOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerOptionsAccessControl)(nil)).Elem() } -func (o SqlserverflexInstanceFlavorPtrOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SqlserverflexInstanceFlavor) *string { - if v == nil { - return nil - } - return v.Description - }).(pulumi.StringPtrOutput) +func (o GetApplicationLoadBalancerOptionsAccessControlOutput) ToGetApplicationLoadBalancerOptionsAccessControlOutput() GetApplicationLoadBalancerOptionsAccessControlOutput { + return o } -func (o SqlserverflexInstanceFlavorPtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SqlserverflexInstanceFlavor) *string { - if v == nil { - return nil - } - return v.Id - }).(pulumi.StringPtrOutput) +func (o GetApplicationLoadBalancerOptionsAccessControlOutput) ToGetApplicationLoadBalancerOptionsAccessControlOutputWithContext(ctx context.Context) GetApplicationLoadBalancerOptionsAccessControlOutput { + return o } -func (o SqlserverflexInstanceFlavorPtrOutput) Ram() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SqlserverflexInstanceFlavor) *int { - if v == nil { - return nil - } - return &v.Ram - }).(pulumi.IntPtrOutput) +// Application Load Balancer is accessible only from an IP address in this range. +func (o GetApplicationLoadBalancerOptionsAccessControlOutput) AllowedSourceRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerOptionsAccessControl) []string { return v.AllowedSourceRanges }).(pulumi.StringArrayOutput) } -type SqlserverflexInstanceOptions struct { - Edition *string `pulumi:"edition"` - RetentionDays *int `pulumi:"retentionDays"` +type GetApplicationLoadBalancerOptionsObservability struct { + // Observability logs configuration. + Logs GetApplicationLoadBalancerOptionsObservabilityLogs `pulumi:"logs"` + // Observability metrics configuration. + Metrics GetApplicationLoadBalancerOptionsObservabilityMetrics `pulumi:"metrics"` } -// SqlserverflexInstanceOptionsInput is an input type that accepts SqlserverflexInstanceOptionsArgs and SqlserverflexInstanceOptionsOutput values. -// You can construct a concrete instance of `SqlserverflexInstanceOptionsInput` via: +// GetApplicationLoadBalancerOptionsObservabilityInput is an input type that accepts GetApplicationLoadBalancerOptionsObservabilityArgs and GetApplicationLoadBalancerOptionsObservabilityOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerOptionsObservabilityInput` via: // -// SqlserverflexInstanceOptionsArgs{...} -type SqlserverflexInstanceOptionsInput interface { +// GetApplicationLoadBalancerOptionsObservabilityArgs{...} +type GetApplicationLoadBalancerOptionsObservabilityInput interface { pulumi.Input - ToSqlserverflexInstanceOptionsOutput() SqlserverflexInstanceOptionsOutput - ToSqlserverflexInstanceOptionsOutputWithContext(context.Context) SqlserverflexInstanceOptionsOutput + ToGetApplicationLoadBalancerOptionsObservabilityOutput() GetApplicationLoadBalancerOptionsObservabilityOutput + ToGetApplicationLoadBalancerOptionsObservabilityOutputWithContext(context.Context) GetApplicationLoadBalancerOptionsObservabilityOutput } -type SqlserverflexInstanceOptionsArgs struct { - Edition pulumi.StringPtrInput `pulumi:"edition"` - RetentionDays pulumi.IntPtrInput `pulumi:"retentionDays"` +type GetApplicationLoadBalancerOptionsObservabilityArgs struct { + // Observability logs configuration. + Logs GetApplicationLoadBalancerOptionsObservabilityLogsInput `pulumi:"logs"` + // Observability metrics configuration. + Metrics GetApplicationLoadBalancerOptionsObservabilityMetricsInput `pulumi:"metrics"` } -func (SqlserverflexInstanceOptionsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SqlserverflexInstanceOptions)(nil)).Elem() +func (GetApplicationLoadBalancerOptionsObservabilityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerOptionsObservability)(nil)).Elem() } -func (i SqlserverflexInstanceOptionsArgs) ToSqlserverflexInstanceOptionsOutput() SqlserverflexInstanceOptionsOutput { - return i.ToSqlserverflexInstanceOptionsOutputWithContext(context.Background()) +func (i GetApplicationLoadBalancerOptionsObservabilityArgs) ToGetApplicationLoadBalancerOptionsObservabilityOutput() GetApplicationLoadBalancerOptionsObservabilityOutput { + return i.ToGetApplicationLoadBalancerOptionsObservabilityOutputWithContext(context.Background()) } -func (i SqlserverflexInstanceOptionsArgs) ToSqlserverflexInstanceOptionsOutputWithContext(ctx context.Context) SqlserverflexInstanceOptionsOutput { - return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceOptionsOutput) +func (i GetApplicationLoadBalancerOptionsObservabilityArgs) ToGetApplicationLoadBalancerOptionsObservabilityOutputWithContext(ctx context.Context) GetApplicationLoadBalancerOptionsObservabilityOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerOptionsObservabilityOutput) } -func (i SqlserverflexInstanceOptionsArgs) ToSqlserverflexInstanceOptionsPtrOutput() SqlserverflexInstanceOptionsPtrOutput { - return i.ToSqlserverflexInstanceOptionsPtrOutputWithContext(context.Background()) +type GetApplicationLoadBalancerOptionsObservabilityOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerOptionsObservabilityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerOptionsObservability)(nil)).Elem() } -func (i SqlserverflexInstanceOptionsArgs) ToSqlserverflexInstanceOptionsPtrOutputWithContext(ctx context.Context) SqlserverflexInstanceOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceOptionsOutput).ToSqlserverflexInstanceOptionsPtrOutputWithContext(ctx) +func (o GetApplicationLoadBalancerOptionsObservabilityOutput) ToGetApplicationLoadBalancerOptionsObservabilityOutput() GetApplicationLoadBalancerOptionsObservabilityOutput { + return o } -// SqlserverflexInstanceOptionsPtrInput is an input type that accepts SqlserverflexInstanceOptionsArgs, SqlserverflexInstanceOptionsPtr and SqlserverflexInstanceOptionsPtrOutput values. -// You can construct a concrete instance of `SqlserverflexInstanceOptionsPtrInput` via: -// -// SqlserverflexInstanceOptionsArgs{...} -// -// or: -// -// nil -type SqlserverflexInstanceOptionsPtrInput interface { - pulumi.Input +func (o GetApplicationLoadBalancerOptionsObservabilityOutput) ToGetApplicationLoadBalancerOptionsObservabilityOutputWithContext(ctx context.Context) GetApplicationLoadBalancerOptionsObservabilityOutput { + return o +} - ToSqlserverflexInstanceOptionsPtrOutput() SqlserverflexInstanceOptionsPtrOutput - ToSqlserverflexInstanceOptionsPtrOutputWithContext(context.Context) SqlserverflexInstanceOptionsPtrOutput +// Observability logs configuration. +func (o GetApplicationLoadBalancerOptionsObservabilityOutput) Logs() GetApplicationLoadBalancerOptionsObservabilityLogsOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerOptionsObservability) GetApplicationLoadBalancerOptionsObservabilityLogs { + return v.Logs + }).(GetApplicationLoadBalancerOptionsObservabilityLogsOutput) } -type sqlserverflexInstanceOptionsPtrType SqlserverflexInstanceOptionsArgs +// Observability metrics configuration. +func (o GetApplicationLoadBalancerOptionsObservabilityOutput) Metrics() GetApplicationLoadBalancerOptionsObservabilityMetricsOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerOptionsObservability) GetApplicationLoadBalancerOptionsObservabilityMetrics { + return v.Metrics + }).(GetApplicationLoadBalancerOptionsObservabilityMetricsOutput) +} -func SqlserverflexInstanceOptionsPtr(v *SqlserverflexInstanceOptionsArgs) SqlserverflexInstanceOptionsPtrInput { - return (*sqlserverflexInstanceOptionsPtrType)(v) +type GetApplicationLoadBalancerOptionsObservabilityLogs struct { + // 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. + CredentialsRef string `pulumi:"credentialsRef"` + // 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. + PushUrl string `pulumi:"pushUrl"` } -func (*sqlserverflexInstanceOptionsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SqlserverflexInstanceOptions)(nil)).Elem() +// GetApplicationLoadBalancerOptionsObservabilityLogsInput is an input type that accepts GetApplicationLoadBalancerOptionsObservabilityLogsArgs and GetApplicationLoadBalancerOptionsObservabilityLogsOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerOptionsObservabilityLogsInput` via: +// +// GetApplicationLoadBalancerOptionsObservabilityLogsArgs{...} +type GetApplicationLoadBalancerOptionsObservabilityLogsInput interface { + pulumi.Input + + ToGetApplicationLoadBalancerOptionsObservabilityLogsOutput() GetApplicationLoadBalancerOptionsObservabilityLogsOutput + ToGetApplicationLoadBalancerOptionsObservabilityLogsOutputWithContext(context.Context) GetApplicationLoadBalancerOptionsObservabilityLogsOutput } -func (i *sqlserverflexInstanceOptionsPtrType) ToSqlserverflexInstanceOptionsPtrOutput() SqlserverflexInstanceOptionsPtrOutput { - return i.ToSqlserverflexInstanceOptionsPtrOutputWithContext(context.Background()) +type GetApplicationLoadBalancerOptionsObservabilityLogsArgs struct { + // 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. + CredentialsRef pulumi.StringInput `pulumi:"credentialsRef"` + // 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. + PushUrl pulumi.StringInput `pulumi:"pushUrl"` } -func (i *sqlserverflexInstanceOptionsPtrType) ToSqlserverflexInstanceOptionsPtrOutputWithContext(ctx context.Context) SqlserverflexInstanceOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceOptionsPtrOutput) +func (GetApplicationLoadBalancerOptionsObservabilityLogsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerOptionsObservabilityLogs)(nil)).Elem() } -type SqlserverflexInstanceOptionsOutput struct{ *pulumi.OutputState } +func (i GetApplicationLoadBalancerOptionsObservabilityLogsArgs) ToGetApplicationLoadBalancerOptionsObservabilityLogsOutput() GetApplicationLoadBalancerOptionsObservabilityLogsOutput { + return i.ToGetApplicationLoadBalancerOptionsObservabilityLogsOutputWithContext(context.Background()) +} -func (SqlserverflexInstanceOptionsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SqlserverflexInstanceOptions)(nil)).Elem() +func (i GetApplicationLoadBalancerOptionsObservabilityLogsArgs) ToGetApplicationLoadBalancerOptionsObservabilityLogsOutputWithContext(ctx context.Context) GetApplicationLoadBalancerOptionsObservabilityLogsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerOptionsObservabilityLogsOutput) } -func (o SqlserverflexInstanceOptionsOutput) ToSqlserverflexInstanceOptionsOutput() SqlserverflexInstanceOptionsOutput { - return o +type GetApplicationLoadBalancerOptionsObservabilityLogsOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerOptionsObservabilityLogsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerOptionsObservabilityLogs)(nil)).Elem() } -func (o SqlserverflexInstanceOptionsOutput) ToSqlserverflexInstanceOptionsOutputWithContext(ctx context.Context) SqlserverflexInstanceOptionsOutput { +func (o GetApplicationLoadBalancerOptionsObservabilityLogsOutput) ToGetApplicationLoadBalancerOptionsObservabilityLogsOutput() GetApplicationLoadBalancerOptionsObservabilityLogsOutput { return o } -func (o SqlserverflexInstanceOptionsOutput) ToSqlserverflexInstanceOptionsPtrOutput() SqlserverflexInstanceOptionsPtrOutput { - return o.ToSqlserverflexInstanceOptionsPtrOutputWithContext(context.Background()) +func (o GetApplicationLoadBalancerOptionsObservabilityLogsOutput) ToGetApplicationLoadBalancerOptionsObservabilityLogsOutputWithContext(ctx context.Context) GetApplicationLoadBalancerOptionsObservabilityLogsOutput { + return o } -func (o SqlserverflexInstanceOptionsOutput) ToSqlserverflexInstanceOptionsPtrOutputWithContext(ctx context.Context) SqlserverflexInstanceOptionsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SqlserverflexInstanceOptions) *SqlserverflexInstanceOptions { - return &v - }).(SqlserverflexInstanceOptionsPtrOutput) +// 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. +func (o GetApplicationLoadBalancerOptionsObservabilityLogsOutput) CredentialsRef() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerOptionsObservabilityLogs) string { return v.CredentialsRef }).(pulumi.StringOutput) } -func (o SqlserverflexInstanceOptionsOutput) Edition() pulumi.StringPtrOutput { - return o.ApplyT(func(v SqlserverflexInstanceOptions) *string { return v.Edition }).(pulumi.StringPtrOutput) +// 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. +func (o GetApplicationLoadBalancerOptionsObservabilityLogsOutput) PushUrl() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerOptionsObservabilityLogs) string { return v.PushUrl }).(pulumi.StringOutput) } -func (o SqlserverflexInstanceOptionsOutput) RetentionDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v SqlserverflexInstanceOptions) *int { return v.RetentionDays }).(pulumi.IntPtrOutput) +type GetApplicationLoadBalancerOptionsObservabilityMetrics struct { + // 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. + CredentialsRef string `pulumi:"credentialsRef"` + // 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. + PushUrl string `pulumi:"pushUrl"` } -type SqlserverflexInstanceOptionsPtrOutput struct{ *pulumi.OutputState } +// GetApplicationLoadBalancerOptionsObservabilityMetricsInput is an input type that accepts GetApplicationLoadBalancerOptionsObservabilityMetricsArgs and GetApplicationLoadBalancerOptionsObservabilityMetricsOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerOptionsObservabilityMetricsInput` via: +// +// GetApplicationLoadBalancerOptionsObservabilityMetricsArgs{...} +type GetApplicationLoadBalancerOptionsObservabilityMetricsInput interface { + pulumi.Input -func (SqlserverflexInstanceOptionsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SqlserverflexInstanceOptions)(nil)).Elem() + ToGetApplicationLoadBalancerOptionsObservabilityMetricsOutput() GetApplicationLoadBalancerOptionsObservabilityMetricsOutput + ToGetApplicationLoadBalancerOptionsObservabilityMetricsOutputWithContext(context.Context) GetApplicationLoadBalancerOptionsObservabilityMetricsOutput } -func (o SqlserverflexInstanceOptionsPtrOutput) ToSqlserverflexInstanceOptionsPtrOutput() SqlserverflexInstanceOptionsPtrOutput { - return o +type GetApplicationLoadBalancerOptionsObservabilityMetricsArgs struct { + // 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. + CredentialsRef pulumi.StringInput `pulumi:"credentialsRef"` + // 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. + PushUrl pulumi.StringInput `pulumi:"pushUrl"` } -func (o SqlserverflexInstanceOptionsPtrOutput) ToSqlserverflexInstanceOptionsPtrOutputWithContext(ctx context.Context) SqlserverflexInstanceOptionsPtrOutput { - return o +func (GetApplicationLoadBalancerOptionsObservabilityMetricsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerOptionsObservabilityMetrics)(nil)).Elem() } -func (o SqlserverflexInstanceOptionsPtrOutput) Elem() SqlserverflexInstanceOptionsOutput { - return o.ApplyT(func(v *SqlserverflexInstanceOptions) SqlserverflexInstanceOptions { - if v != nil { - return *v - } - var ret SqlserverflexInstanceOptions - return ret - }).(SqlserverflexInstanceOptionsOutput) +func (i GetApplicationLoadBalancerOptionsObservabilityMetricsArgs) ToGetApplicationLoadBalancerOptionsObservabilityMetricsOutput() GetApplicationLoadBalancerOptionsObservabilityMetricsOutput { + return i.ToGetApplicationLoadBalancerOptionsObservabilityMetricsOutputWithContext(context.Background()) } -func (o SqlserverflexInstanceOptionsPtrOutput) Edition() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SqlserverflexInstanceOptions) *string { - if v == nil { - return nil - } - return v.Edition - }).(pulumi.StringPtrOutput) +func (i GetApplicationLoadBalancerOptionsObservabilityMetricsArgs) ToGetApplicationLoadBalancerOptionsObservabilityMetricsOutputWithContext(ctx context.Context) GetApplicationLoadBalancerOptionsObservabilityMetricsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerOptionsObservabilityMetricsOutput) } -func (o SqlserverflexInstanceOptionsPtrOutput) RetentionDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SqlserverflexInstanceOptions) *int { - if v == nil { - return nil - } - return v.RetentionDays - }).(pulumi.IntPtrOutput) +type GetApplicationLoadBalancerOptionsObservabilityMetricsOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerOptionsObservabilityMetricsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerOptionsObservabilityMetrics)(nil)).Elem() +} + +func (o GetApplicationLoadBalancerOptionsObservabilityMetricsOutput) ToGetApplicationLoadBalancerOptionsObservabilityMetricsOutput() GetApplicationLoadBalancerOptionsObservabilityMetricsOutput { + return o } -type SqlserverflexInstanceStorage struct { - Class *string `pulumi:"class"` - Size *int `pulumi:"size"` +func (o GetApplicationLoadBalancerOptionsObservabilityMetricsOutput) ToGetApplicationLoadBalancerOptionsObservabilityMetricsOutputWithContext(ctx context.Context) GetApplicationLoadBalancerOptionsObservabilityMetricsOutput { + return o } -// SqlserverflexInstanceStorageInput is an input type that accepts SqlserverflexInstanceStorageArgs and SqlserverflexInstanceStorageOutput values. -// You can construct a concrete instance of `SqlserverflexInstanceStorageInput` via: -// -// SqlserverflexInstanceStorageArgs{...} -type SqlserverflexInstanceStorageInput interface { - pulumi.Input +// 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. +func (o GetApplicationLoadBalancerOptionsObservabilityMetricsOutput) CredentialsRef() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerOptionsObservabilityMetrics) string { return v.CredentialsRef }).(pulumi.StringOutput) +} - ToSqlserverflexInstanceStorageOutput() SqlserverflexInstanceStorageOutput - ToSqlserverflexInstanceStorageOutputWithContext(context.Context) SqlserverflexInstanceStorageOutput +// 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. +func (o GetApplicationLoadBalancerOptionsObservabilityMetricsOutput) PushUrl() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerOptionsObservabilityMetrics) string { return v.PushUrl }).(pulumi.StringOutput) } -type SqlserverflexInstanceStorageArgs struct { - Class pulumi.StringPtrInput `pulumi:"class"` - Size pulumi.IntPtrInput `pulumi:"size"` +type GetApplicationLoadBalancerTargetPool struct { + ActiveHealthCheck GetApplicationLoadBalancerTargetPoolActiveHealthCheck `pulumi:"activeHealthCheck"` + // Target pool name. + Name string `pulumi:"name"` + // The number identifying the port where each target listens for traffic. + TargetPort int `pulumi:"targetPort"` + // List of all targets which will be used in the pool. Limited to 250. + Targets []GetApplicationLoadBalancerTargetPoolTarget `pulumi:"targets"` + // Configuration for TLS bridging. + TlsConfig GetApplicationLoadBalancerTargetPoolTlsConfig `pulumi:"tlsConfig"` } -func (SqlserverflexInstanceStorageArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SqlserverflexInstanceStorage)(nil)).Elem() +// GetApplicationLoadBalancerTargetPoolInput is an input type that accepts GetApplicationLoadBalancerTargetPoolArgs and GetApplicationLoadBalancerTargetPoolOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerTargetPoolInput` via: +// +// GetApplicationLoadBalancerTargetPoolArgs{...} +type GetApplicationLoadBalancerTargetPoolInput interface { + pulumi.Input + + ToGetApplicationLoadBalancerTargetPoolOutput() GetApplicationLoadBalancerTargetPoolOutput + ToGetApplicationLoadBalancerTargetPoolOutputWithContext(context.Context) GetApplicationLoadBalancerTargetPoolOutput } -func (i SqlserverflexInstanceStorageArgs) ToSqlserverflexInstanceStorageOutput() SqlserverflexInstanceStorageOutput { - return i.ToSqlserverflexInstanceStorageOutputWithContext(context.Background()) +type GetApplicationLoadBalancerTargetPoolArgs struct { + ActiveHealthCheck GetApplicationLoadBalancerTargetPoolActiveHealthCheckInput `pulumi:"activeHealthCheck"` + // Target pool name. + Name pulumi.StringInput `pulumi:"name"` + // The number identifying the port where each target listens for traffic. + TargetPort pulumi.IntInput `pulumi:"targetPort"` + // List of all targets which will be used in the pool. Limited to 250. + Targets GetApplicationLoadBalancerTargetPoolTargetArrayInput `pulumi:"targets"` + // Configuration for TLS bridging. + TlsConfig GetApplicationLoadBalancerTargetPoolTlsConfigInput `pulumi:"tlsConfig"` } -func (i SqlserverflexInstanceStorageArgs) ToSqlserverflexInstanceStorageOutputWithContext(ctx context.Context) SqlserverflexInstanceStorageOutput { - return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceStorageOutput) +func (GetApplicationLoadBalancerTargetPoolArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerTargetPool)(nil)).Elem() } -func (i SqlserverflexInstanceStorageArgs) ToSqlserverflexInstanceStoragePtrOutput() SqlserverflexInstanceStoragePtrOutput { - return i.ToSqlserverflexInstanceStoragePtrOutputWithContext(context.Background()) +func (i GetApplicationLoadBalancerTargetPoolArgs) ToGetApplicationLoadBalancerTargetPoolOutput() GetApplicationLoadBalancerTargetPoolOutput { + return i.ToGetApplicationLoadBalancerTargetPoolOutputWithContext(context.Background()) } -func (i SqlserverflexInstanceStorageArgs) ToSqlserverflexInstanceStoragePtrOutputWithContext(ctx context.Context) SqlserverflexInstanceStoragePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceStorageOutput).ToSqlserverflexInstanceStoragePtrOutputWithContext(ctx) +func (i GetApplicationLoadBalancerTargetPoolArgs) ToGetApplicationLoadBalancerTargetPoolOutputWithContext(ctx context.Context) GetApplicationLoadBalancerTargetPoolOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerTargetPoolOutput) } -// SqlserverflexInstanceStoragePtrInput is an input type that accepts SqlserverflexInstanceStorageArgs, SqlserverflexInstanceStoragePtr and SqlserverflexInstanceStoragePtrOutput values. -// You can construct a concrete instance of `SqlserverflexInstanceStoragePtrInput` via: -// -// SqlserverflexInstanceStorageArgs{...} -// -// or: +// GetApplicationLoadBalancerTargetPoolArrayInput is an input type that accepts GetApplicationLoadBalancerTargetPoolArray and GetApplicationLoadBalancerTargetPoolArrayOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerTargetPoolArrayInput` via: // -// nil -type SqlserverflexInstanceStoragePtrInput interface { +// GetApplicationLoadBalancerTargetPoolArray{ GetApplicationLoadBalancerTargetPoolArgs{...} } +type GetApplicationLoadBalancerTargetPoolArrayInput interface { pulumi.Input - ToSqlserverflexInstanceStoragePtrOutput() SqlserverflexInstanceStoragePtrOutput - ToSqlserverflexInstanceStoragePtrOutputWithContext(context.Context) SqlserverflexInstanceStoragePtrOutput + ToGetApplicationLoadBalancerTargetPoolArrayOutput() GetApplicationLoadBalancerTargetPoolArrayOutput + ToGetApplicationLoadBalancerTargetPoolArrayOutputWithContext(context.Context) GetApplicationLoadBalancerTargetPoolArrayOutput } -type sqlserverflexInstanceStoragePtrType SqlserverflexInstanceStorageArgs - -func SqlserverflexInstanceStoragePtr(v *SqlserverflexInstanceStorageArgs) SqlserverflexInstanceStoragePtrInput { - return (*sqlserverflexInstanceStoragePtrType)(v) -} +type GetApplicationLoadBalancerTargetPoolArray []GetApplicationLoadBalancerTargetPoolInput -func (*sqlserverflexInstanceStoragePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SqlserverflexInstanceStorage)(nil)).Elem() +func (GetApplicationLoadBalancerTargetPoolArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerTargetPool)(nil)).Elem() } -func (i *sqlserverflexInstanceStoragePtrType) ToSqlserverflexInstanceStoragePtrOutput() SqlserverflexInstanceStoragePtrOutput { - return i.ToSqlserverflexInstanceStoragePtrOutputWithContext(context.Background()) +func (i GetApplicationLoadBalancerTargetPoolArray) ToGetApplicationLoadBalancerTargetPoolArrayOutput() GetApplicationLoadBalancerTargetPoolArrayOutput { + return i.ToGetApplicationLoadBalancerTargetPoolArrayOutputWithContext(context.Background()) } -func (i *sqlserverflexInstanceStoragePtrType) ToSqlserverflexInstanceStoragePtrOutputWithContext(ctx context.Context) SqlserverflexInstanceStoragePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SqlserverflexInstanceStoragePtrOutput) +func (i GetApplicationLoadBalancerTargetPoolArray) ToGetApplicationLoadBalancerTargetPoolArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerTargetPoolArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerTargetPoolArrayOutput) } -type SqlserverflexInstanceStorageOutput struct{ *pulumi.OutputState } +type GetApplicationLoadBalancerTargetPoolOutput struct{ *pulumi.OutputState } -func (SqlserverflexInstanceStorageOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SqlserverflexInstanceStorage)(nil)).Elem() +func (GetApplicationLoadBalancerTargetPoolOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerTargetPool)(nil)).Elem() } -func (o SqlserverflexInstanceStorageOutput) ToSqlserverflexInstanceStorageOutput() SqlserverflexInstanceStorageOutput { +func (o GetApplicationLoadBalancerTargetPoolOutput) ToGetApplicationLoadBalancerTargetPoolOutput() GetApplicationLoadBalancerTargetPoolOutput { return o } -func (o SqlserverflexInstanceStorageOutput) ToSqlserverflexInstanceStorageOutputWithContext(ctx context.Context) SqlserverflexInstanceStorageOutput { +func (o GetApplicationLoadBalancerTargetPoolOutput) ToGetApplicationLoadBalancerTargetPoolOutputWithContext(ctx context.Context) GetApplicationLoadBalancerTargetPoolOutput { return o } -func (o SqlserverflexInstanceStorageOutput) ToSqlserverflexInstanceStoragePtrOutput() SqlserverflexInstanceStoragePtrOutput { - return o.ToSqlserverflexInstanceStoragePtrOutputWithContext(context.Background()) +func (o GetApplicationLoadBalancerTargetPoolOutput) ActiveHealthCheck() GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPool) GetApplicationLoadBalancerTargetPoolActiveHealthCheck { + return v.ActiveHealthCheck + }).(GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) } -func (o SqlserverflexInstanceStorageOutput) ToSqlserverflexInstanceStoragePtrOutputWithContext(ctx context.Context) SqlserverflexInstanceStoragePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SqlserverflexInstanceStorage) *SqlserverflexInstanceStorage { - return &v - }).(SqlserverflexInstanceStoragePtrOutput) +// Target pool name. +func (o GetApplicationLoadBalancerTargetPoolOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPool) string { return v.Name }).(pulumi.StringOutput) } -func (o SqlserverflexInstanceStorageOutput) Class() pulumi.StringPtrOutput { - return o.ApplyT(func(v SqlserverflexInstanceStorage) *string { return v.Class }).(pulumi.StringPtrOutput) +// The number identifying the port where each target listens for traffic. +func (o GetApplicationLoadBalancerTargetPoolOutput) TargetPort() pulumi.IntOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPool) int { return v.TargetPort }).(pulumi.IntOutput) } -func (o SqlserverflexInstanceStorageOutput) Size() pulumi.IntPtrOutput { - return o.ApplyT(func(v SqlserverflexInstanceStorage) *int { return v.Size }).(pulumi.IntPtrOutput) +// List of all targets which will be used in the pool. Limited to 250. +func (o GetApplicationLoadBalancerTargetPoolOutput) Targets() GetApplicationLoadBalancerTargetPoolTargetArrayOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPool) []GetApplicationLoadBalancerTargetPoolTarget { + return v.Targets + }).(GetApplicationLoadBalancerTargetPoolTargetArrayOutput) } -type SqlserverflexInstanceStoragePtrOutput struct{ *pulumi.OutputState } +// Configuration for TLS bridging. +func (o GetApplicationLoadBalancerTargetPoolOutput) TlsConfig() GetApplicationLoadBalancerTargetPoolTlsConfigOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPool) GetApplicationLoadBalancerTargetPoolTlsConfig { + return v.TlsConfig + }).(GetApplicationLoadBalancerTargetPoolTlsConfigOutput) +} -func (SqlserverflexInstanceStoragePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SqlserverflexInstanceStorage)(nil)).Elem() +type GetApplicationLoadBalancerTargetPoolArrayOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerTargetPoolArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerTargetPool)(nil)).Elem() } -func (o SqlserverflexInstanceStoragePtrOutput) ToSqlserverflexInstanceStoragePtrOutput() SqlserverflexInstanceStoragePtrOutput { +func (o GetApplicationLoadBalancerTargetPoolArrayOutput) ToGetApplicationLoadBalancerTargetPoolArrayOutput() GetApplicationLoadBalancerTargetPoolArrayOutput { return o } -func (o SqlserverflexInstanceStoragePtrOutput) ToSqlserverflexInstanceStoragePtrOutputWithContext(ctx context.Context) SqlserverflexInstanceStoragePtrOutput { +func (o GetApplicationLoadBalancerTargetPoolArrayOutput) ToGetApplicationLoadBalancerTargetPoolArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerTargetPoolArrayOutput { return o } -func (o SqlserverflexInstanceStoragePtrOutput) Elem() SqlserverflexInstanceStorageOutput { - return o.ApplyT(func(v *SqlserverflexInstanceStorage) SqlserverflexInstanceStorage { - if v != nil { - return *v - } - var ret SqlserverflexInstanceStorage - return ret - }).(SqlserverflexInstanceStorageOutput) +func (o GetApplicationLoadBalancerTargetPoolArrayOutput) Index(i pulumi.IntInput) GetApplicationLoadBalancerTargetPoolOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetApplicationLoadBalancerTargetPool { + return vs[0].([]GetApplicationLoadBalancerTargetPool)[vs[1].(int)] + }).(GetApplicationLoadBalancerTargetPoolOutput) } -func (o SqlserverflexInstanceStoragePtrOutput) Class() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SqlserverflexInstanceStorage) *string { - if v == nil { - return nil - } - return v.Class - }).(pulumi.StringPtrOutput) +type GetApplicationLoadBalancerTargetPoolActiveHealthCheck struct { + // Healthy threshold of the health checking. + HealthyThreshold int `pulumi:"healthyThreshold"` + // Options for the HTTP health checking. + HttpHealthChecks GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks `pulumi:"httpHealthChecks"` + // Interval duration of health checking in seconds. + Interval string `pulumi:"interval"` + // Interval duration threshold of the health checking in seconds. + IntervalJitter string `pulumi:"intervalJitter"` + // Active health checking timeout duration in seconds. + Timeout string `pulumi:"timeout"` + // Unhealthy threshold of the health checking. + UnhealthyThreshold int `pulumi:"unhealthyThreshold"` } -func (o SqlserverflexInstanceStoragePtrOutput) Size() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SqlserverflexInstanceStorage) *int { - if v == nil { - return nil - } - return v.Size - }).(pulumi.IntPtrOutput) +// GetApplicationLoadBalancerTargetPoolActiveHealthCheckInput is an input type that accepts GetApplicationLoadBalancerTargetPoolActiveHealthCheckArgs and GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerTargetPoolActiveHealthCheckInput` via: +// +// GetApplicationLoadBalancerTargetPoolActiveHealthCheckArgs{...} +type GetApplicationLoadBalancerTargetPoolActiveHealthCheckInput interface { + pulumi.Input + + ToGetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput() GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput + ToGetApplicationLoadBalancerTargetPoolActiveHealthCheckOutputWithContext(context.Context) GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput } -type VolumeEncryptionParameters struct { - // UUID of the key within the STACKIT-KMS to use for the encryption. - KekKeyId string `pulumi:"kekKeyId"` - // Version of the key within the STACKIT-KMS to use for the encryption. - KekKeyVersion int `pulumi:"kekKeyVersion"` - // UUID of the keyring where the key is located within the STACKTI-KMS. - KekKeyringId string `pulumi:"kekKeyringId"` - // 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. - KeyPayloadBase64 *string `pulumi:"keyPayloadBase64"` - // **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. - // 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. - KeyPayloadBase64Wo *string `pulumi:"keyPayloadBase64Wo"` - // Used together with `keyPayloadBase64Wo` to trigger an re-create. Increment this value when an update to `keyPayloadBase64Wo` is required. - KeyPayloadBase64WoVersion *int `pulumi:"keyPayloadBase64WoVersion"` - // Service-Account linked to the Key within the STACKIT-KMS. - ServiceAccount string `pulumi:"serviceAccount"` +type GetApplicationLoadBalancerTargetPoolActiveHealthCheckArgs struct { + // Healthy threshold of the health checking. + HealthyThreshold pulumi.IntInput `pulumi:"healthyThreshold"` + // Options for the HTTP health checking. + HttpHealthChecks GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksInput `pulumi:"httpHealthChecks"` + // Interval duration of health checking in seconds. + Interval pulumi.StringInput `pulumi:"interval"` + // Interval duration threshold of the health checking in seconds. + IntervalJitter pulumi.StringInput `pulumi:"intervalJitter"` + // Active health checking timeout duration in seconds. + Timeout pulumi.StringInput `pulumi:"timeout"` + // Unhealthy threshold of the health checking. + UnhealthyThreshold pulumi.IntInput `pulumi:"unhealthyThreshold"` } -// VolumeEncryptionParametersInput is an input type that accepts VolumeEncryptionParametersArgs and VolumeEncryptionParametersOutput values. -// You can construct a concrete instance of `VolumeEncryptionParametersInput` via: -// -// VolumeEncryptionParametersArgs{...} -type VolumeEncryptionParametersInput interface { - pulumi.Input +func (GetApplicationLoadBalancerTargetPoolActiveHealthCheckArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerTargetPoolActiveHealthCheck)(nil)).Elem() +} - ToVolumeEncryptionParametersOutput() VolumeEncryptionParametersOutput - ToVolumeEncryptionParametersOutputWithContext(context.Context) VolumeEncryptionParametersOutput +func (i GetApplicationLoadBalancerTargetPoolActiveHealthCheckArgs) ToGetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput() GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput { + return i.ToGetApplicationLoadBalancerTargetPoolActiveHealthCheckOutputWithContext(context.Background()) } -type VolumeEncryptionParametersArgs struct { - // UUID of the key within the STACKIT-KMS to use for the encryption. - KekKeyId pulumi.StringInput `pulumi:"kekKeyId"` - // Version of the key within the STACKIT-KMS to use for the encryption. - KekKeyVersion pulumi.IntInput `pulumi:"kekKeyVersion"` - // UUID of the keyring where the key is located within the STACKTI-KMS. - KekKeyringId pulumi.StringInput `pulumi:"kekKeyringId"` - // 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. - KeyPayloadBase64 pulumi.StringPtrInput `pulumi:"keyPayloadBase64"` - // **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. - // 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. - KeyPayloadBase64Wo pulumi.StringPtrInput `pulumi:"keyPayloadBase64Wo"` - // Used together with `keyPayloadBase64Wo` to trigger an re-create. Increment this value when an update to `keyPayloadBase64Wo` is required. - KeyPayloadBase64WoVersion pulumi.IntPtrInput `pulumi:"keyPayloadBase64WoVersion"` - // Service-Account linked to the Key within the STACKIT-KMS. - ServiceAccount pulumi.StringInput `pulumi:"serviceAccount"` +func (i GetApplicationLoadBalancerTargetPoolActiveHealthCheckArgs) ToGetApplicationLoadBalancerTargetPoolActiveHealthCheckOutputWithContext(ctx context.Context) GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) } -func (VolumeEncryptionParametersArgs) ElementType() reflect.Type { - return reflect.TypeOf((*VolumeEncryptionParameters)(nil)).Elem() +type GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput struct{ *pulumi.OutputState } + +func (GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerTargetPoolActiveHealthCheck)(nil)).Elem() } -func (i VolumeEncryptionParametersArgs) ToVolumeEncryptionParametersOutput() VolumeEncryptionParametersOutput { - return i.ToVolumeEncryptionParametersOutputWithContext(context.Background()) +func (o GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) ToGetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput() GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput { + return o } -func (i VolumeEncryptionParametersArgs) ToVolumeEncryptionParametersOutputWithContext(ctx context.Context) VolumeEncryptionParametersOutput { - return pulumi.ToOutputWithContext(ctx, i).(VolumeEncryptionParametersOutput) +func (o GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) ToGetApplicationLoadBalancerTargetPoolActiveHealthCheckOutputWithContext(ctx context.Context) GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput { + return o } -func (i VolumeEncryptionParametersArgs) ToVolumeEncryptionParametersPtrOutput() VolumeEncryptionParametersPtrOutput { - return i.ToVolumeEncryptionParametersPtrOutputWithContext(context.Background()) +// Healthy threshold of the health checking. +func (o GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) HealthyThreshold() pulumi.IntOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPoolActiveHealthCheck) int { return v.HealthyThreshold }).(pulumi.IntOutput) } -func (i VolumeEncryptionParametersArgs) ToVolumeEncryptionParametersPtrOutputWithContext(ctx context.Context) VolumeEncryptionParametersPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(VolumeEncryptionParametersOutput).ToVolumeEncryptionParametersPtrOutputWithContext(ctx) +// Options for the HTTP health checking. +func (o GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) HttpHealthChecks() GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPoolActiveHealthCheck) GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks { + return v.HttpHealthChecks + }).(GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput) } -// VolumeEncryptionParametersPtrInput is an input type that accepts VolumeEncryptionParametersArgs, VolumeEncryptionParametersPtr and VolumeEncryptionParametersPtrOutput values. -// You can construct a concrete instance of `VolumeEncryptionParametersPtrInput` via: -// -// VolumeEncryptionParametersArgs{...} -// -// or: +// Interval duration of health checking in seconds. +func (o GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) Interval() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPoolActiveHealthCheck) string { return v.Interval }).(pulumi.StringOutput) +} + +// Interval duration threshold of the health checking in seconds. +func (o GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) IntervalJitter() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPoolActiveHealthCheck) string { return v.IntervalJitter }).(pulumi.StringOutput) +} + +// Active health checking timeout duration in seconds. +func (o GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) Timeout() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPoolActiveHealthCheck) string { return v.Timeout }).(pulumi.StringOutput) +} + +// Unhealthy threshold of the health checking. +func (o GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput) UnhealthyThreshold() pulumi.IntOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPoolActiveHealthCheck) int { return v.UnhealthyThreshold }).(pulumi.IntOutput) +} + +type GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks struct { + // List of HTTP status codes that indicate a healthy response. + OkStatuses []string `pulumi:"okStatuses"` + // Path to send the health check request to. + Path string `pulumi:"path"` +} + +// GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksInput is an input type that accepts GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs and GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksInput` via: // -// nil -type VolumeEncryptionParametersPtrInput interface { +// GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs{...} +type GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksInput interface { pulumi.Input - ToVolumeEncryptionParametersPtrOutput() VolumeEncryptionParametersPtrOutput - ToVolumeEncryptionParametersPtrOutputWithContext(context.Context) VolumeEncryptionParametersPtrOutput + ToGetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput() GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput + ToGetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutputWithContext(context.Context) GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput } -type volumeEncryptionParametersPtrType VolumeEncryptionParametersArgs - -func VolumeEncryptionParametersPtr(v *VolumeEncryptionParametersArgs) VolumeEncryptionParametersPtrInput { - return (*volumeEncryptionParametersPtrType)(v) +type GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs struct { + // List of HTTP status codes that indicate a healthy response. + OkStatuses pulumi.StringArrayInput `pulumi:"okStatuses"` + // Path to send the health check request to. + Path pulumi.StringInput `pulumi:"path"` } -func (*volumeEncryptionParametersPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**VolumeEncryptionParameters)(nil)).Elem() +func (GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks)(nil)).Elem() } -func (i *volumeEncryptionParametersPtrType) ToVolumeEncryptionParametersPtrOutput() VolumeEncryptionParametersPtrOutput { - return i.ToVolumeEncryptionParametersPtrOutputWithContext(context.Background()) +func (i GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs) ToGetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput() GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput { + return i.ToGetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutputWithContext(context.Background()) } -func (i *volumeEncryptionParametersPtrType) ToVolumeEncryptionParametersPtrOutputWithContext(ctx context.Context) VolumeEncryptionParametersPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(VolumeEncryptionParametersPtrOutput) +func (i GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs) ToGetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutputWithContext(ctx context.Context) GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput) } -type VolumeEncryptionParametersOutput struct{ *pulumi.OutputState } +type GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput struct{ *pulumi.OutputState } -func (VolumeEncryptionParametersOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VolumeEncryptionParameters)(nil)).Elem() +func (GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks)(nil)).Elem() } -func (o VolumeEncryptionParametersOutput) ToVolumeEncryptionParametersOutput() VolumeEncryptionParametersOutput { +func (o GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput) ToGetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput() GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput { return o } -func (o VolumeEncryptionParametersOutput) ToVolumeEncryptionParametersOutputWithContext(ctx context.Context) VolumeEncryptionParametersOutput { +func (o GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput) ToGetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutputWithContext(ctx context.Context) GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput { return o } -func (o VolumeEncryptionParametersOutput) ToVolumeEncryptionParametersPtrOutput() VolumeEncryptionParametersPtrOutput { - return o.ToVolumeEncryptionParametersPtrOutputWithContext(context.Background()) +// List of HTTP status codes that indicate a healthy response. +func (o GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput) OkStatuses() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks) []string { + return v.OkStatuses + }).(pulumi.StringArrayOutput) } -func (o VolumeEncryptionParametersOutput) ToVolumeEncryptionParametersPtrOutputWithContext(ctx context.Context) VolumeEncryptionParametersPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v VolumeEncryptionParameters) *VolumeEncryptionParameters { - return &v - }).(VolumeEncryptionParametersPtrOutput) +// Path to send the health check request to. +func (o GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks) string { return v.Path }).(pulumi.StringOutput) } -// UUID of the key within the STACKIT-KMS to use for the encryption. -func (o VolumeEncryptionParametersOutput) KekKeyId() pulumi.StringOutput { - return o.ApplyT(func(v VolumeEncryptionParameters) string { return v.KekKeyId }).(pulumi.StringOutput) +type GetApplicationLoadBalancerTargetPoolTarget struct { + // Target display name + DisplayName string `pulumi:"displayName"` + // Private target IP, which must by unique within a target pool. + Ip string `pulumi:"ip"` } -// Version of the key within the STACKIT-KMS to use for the encryption. -func (o VolumeEncryptionParametersOutput) KekKeyVersion() pulumi.IntOutput { - return o.ApplyT(func(v VolumeEncryptionParameters) int { return v.KekKeyVersion }).(pulumi.IntOutput) +// GetApplicationLoadBalancerTargetPoolTargetInput is an input type that accepts GetApplicationLoadBalancerTargetPoolTargetArgs and GetApplicationLoadBalancerTargetPoolTargetOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerTargetPoolTargetInput` via: +// +// GetApplicationLoadBalancerTargetPoolTargetArgs{...} +type GetApplicationLoadBalancerTargetPoolTargetInput interface { + pulumi.Input + + ToGetApplicationLoadBalancerTargetPoolTargetOutput() GetApplicationLoadBalancerTargetPoolTargetOutput + ToGetApplicationLoadBalancerTargetPoolTargetOutputWithContext(context.Context) GetApplicationLoadBalancerTargetPoolTargetOutput } -// UUID of the keyring where the key is located within the STACKTI-KMS. -func (o VolumeEncryptionParametersOutput) KekKeyringId() pulumi.StringOutput { - return o.ApplyT(func(v VolumeEncryptionParameters) string { return v.KekKeyringId }).(pulumi.StringOutput) +type GetApplicationLoadBalancerTargetPoolTargetArgs struct { + // Target display name + DisplayName pulumi.StringInput `pulumi:"displayName"` + // Private target IP, which must by unique within a target pool. + Ip pulumi.StringInput `pulumi:"ip"` } -// 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. -func (o VolumeEncryptionParametersOutput) KeyPayloadBase64() pulumi.StringPtrOutput { - return o.ApplyT(func(v VolumeEncryptionParameters) *string { return v.KeyPayloadBase64 }).(pulumi.StringPtrOutput) +func (GetApplicationLoadBalancerTargetPoolTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerTargetPoolTarget)(nil)).Elem() +} + +func (i GetApplicationLoadBalancerTargetPoolTargetArgs) ToGetApplicationLoadBalancerTargetPoolTargetOutput() GetApplicationLoadBalancerTargetPoolTargetOutput { + return i.ToGetApplicationLoadBalancerTargetPoolTargetOutputWithContext(context.Background()) +} + +func (i GetApplicationLoadBalancerTargetPoolTargetArgs) ToGetApplicationLoadBalancerTargetPoolTargetOutputWithContext(ctx context.Context) GetApplicationLoadBalancerTargetPoolTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerTargetPoolTargetOutput) +} + +// GetApplicationLoadBalancerTargetPoolTargetArrayInput is an input type that accepts GetApplicationLoadBalancerTargetPoolTargetArray and GetApplicationLoadBalancerTargetPoolTargetArrayOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerTargetPoolTargetArrayInput` via: +// +// GetApplicationLoadBalancerTargetPoolTargetArray{ GetApplicationLoadBalancerTargetPoolTargetArgs{...} } +type GetApplicationLoadBalancerTargetPoolTargetArrayInput interface { + pulumi.Input + + ToGetApplicationLoadBalancerTargetPoolTargetArrayOutput() GetApplicationLoadBalancerTargetPoolTargetArrayOutput + ToGetApplicationLoadBalancerTargetPoolTargetArrayOutputWithContext(context.Context) GetApplicationLoadBalancerTargetPoolTargetArrayOutput } -// **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. -// 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. -func (o VolumeEncryptionParametersOutput) KeyPayloadBase64Wo() pulumi.StringPtrOutput { - return o.ApplyT(func(v VolumeEncryptionParameters) *string { return v.KeyPayloadBase64Wo }).(pulumi.StringPtrOutput) +type GetApplicationLoadBalancerTargetPoolTargetArray []GetApplicationLoadBalancerTargetPoolTargetInput + +func (GetApplicationLoadBalancerTargetPoolTargetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerTargetPoolTarget)(nil)).Elem() } -// Used together with `keyPayloadBase64Wo` to trigger an re-create. Increment this value when an update to `keyPayloadBase64Wo` is required. -func (o VolumeEncryptionParametersOutput) KeyPayloadBase64WoVersion() pulumi.IntPtrOutput { - return o.ApplyT(func(v VolumeEncryptionParameters) *int { return v.KeyPayloadBase64WoVersion }).(pulumi.IntPtrOutput) +func (i GetApplicationLoadBalancerTargetPoolTargetArray) ToGetApplicationLoadBalancerTargetPoolTargetArrayOutput() GetApplicationLoadBalancerTargetPoolTargetArrayOutput { + return i.ToGetApplicationLoadBalancerTargetPoolTargetArrayOutputWithContext(context.Background()) } -// Service-Account linked to the Key within the STACKIT-KMS. -func (o VolumeEncryptionParametersOutput) ServiceAccount() pulumi.StringOutput { - return o.ApplyT(func(v VolumeEncryptionParameters) string { return v.ServiceAccount }).(pulumi.StringOutput) +func (i GetApplicationLoadBalancerTargetPoolTargetArray) ToGetApplicationLoadBalancerTargetPoolTargetArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerTargetPoolTargetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerTargetPoolTargetArrayOutput) } -type VolumeEncryptionParametersPtrOutput struct{ *pulumi.OutputState } +type GetApplicationLoadBalancerTargetPoolTargetOutput struct{ *pulumi.OutputState } -func (VolumeEncryptionParametersPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**VolumeEncryptionParameters)(nil)).Elem() +func (GetApplicationLoadBalancerTargetPoolTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerTargetPoolTarget)(nil)).Elem() } -func (o VolumeEncryptionParametersPtrOutput) ToVolumeEncryptionParametersPtrOutput() VolumeEncryptionParametersPtrOutput { +func (o GetApplicationLoadBalancerTargetPoolTargetOutput) ToGetApplicationLoadBalancerTargetPoolTargetOutput() GetApplicationLoadBalancerTargetPoolTargetOutput { return o } -func (o VolumeEncryptionParametersPtrOutput) ToVolumeEncryptionParametersPtrOutputWithContext(ctx context.Context) VolumeEncryptionParametersPtrOutput { +func (o GetApplicationLoadBalancerTargetPoolTargetOutput) ToGetApplicationLoadBalancerTargetPoolTargetOutputWithContext(ctx context.Context) GetApplicationLoadBalancerTargetPoolTargetOutput { return o } -func (o VolumeEncryptionParametersPtrOutput) Elem() VolumeEncryptionParametersOutput { - return o.ApplyT(func(v *VolumeEncryptionParameters) VolumeEncryptionParameters { - if v != nil { - return *v - } - var ret VolumeEncryptionParameters - return ret - }).(VolumeEncryptionParametersOutput) -} - -// UUID of the key within the STACKIT-KMS to use for the encryption. -func (o VolumeEncryptionParametersPtrOutput) KekKeyId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VolumeEncryptionParameters) *string { - if v == nil { - return nil - } - return &v.KekKeyId - }).(pulumi.StringPtrOutput) +// Target display name +func (o GetApplicationLoadBalancerTargetPoolTargetOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPoolTarget) string { return v.DisplayName }).(pulumi.StringOutput) } -// Version of the key within the STACKIT-KMS to use for the encryption. -func (o VolumeEncryptionParametersPtrOutput) KekKeyVersion() pulumi.IntPtrOutput { - return o.ApplyT(func(v *VolumeEncryptionParameters) *int { - if v == nil { - return nil - } - return &v.KekKeyVersion - }).(pulumi.IntPtrOutput) +// Private target IP, which must by unique within a target pool. +func (o GetApplicationLoadBalancerTargetPoolTargetOutput) Ip() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPoolTarget) string { return v.Ip }).(pulumi.StringOutput) } -// UUID of the keyring where the key is located within the STACKTI-KMS. -func (o VolumeEncryptionParametersPtrOutput) KekKeyringId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VolumeEncryptionParameters) *string { - if v == nil { - return nil - } - return &v.KekKeyringId - }).(pulumi.StringPtrOutput) -} +type GetApplicationLoadBalancerTargetPoolTargetArrayOutput struct{ *pulumi.OutputState } -// 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. -func (o VolumeEncryptionParametersPtrOutput) KeyPayloadBase64() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VolumeEncryptionParameters) *string { - if v == nil { - return nil - } - return v.KeyPayloadBase64 - }).(pulumi.StringPtrOutput) +func (GetApplicationLoadBalancerTargetPoolTargetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetApplicationLoadBalancerTargetPoolTarget)(nil)).Elem() } -// **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. -// 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. -func (o VolumeEncryptionParametersPtrOutput) KeyPayloadBase64Wo() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VolumeEncryptionParameters) *string { - if v == nil { - return nil - } - return v.KeyPayloadBase64Wo - }).(pulumi.StringPtrOutput) +func (o GetApplicationLoadBalancerTargetPoolTargetArrayOutput) ToGetApplicationLoadBalancerTargetPoolTargetArrayOutput() GetApplicationLoadBalancerTargetPoolTargetArrayOutput { + return o } -// Used together with `keyPayloadBase64Wo` to trigger an re-create. Increment this value when an update to `keyPayloadBase64Wo` is required. -func (o VolumeEncryptionParametersPtrOutput) KeyPayloadBase64WoVersion() pulumi.IntPtrOutput { - return o.ApplyT(func(v *VolumeEncryptionParameters) *int { - if v == nil { - return nil - } - return v.KeyPayloadBase64WoVersion - }).(pulumi.IntPtrOutput) +func (o GetApplicationLoadBalancerTargetPoolTargetArrayOutput) ToGetApplicationLoadBalancerTargetPoolTargetArrayOutputWithContext(ctx context.Context) GetApplicationLoadBalancerTargetPoolTargetArrayOutput { + return o } -// Service-Account linked to the Key within the STACKIT-KMS. -func (o VolumeEncryptionParametersPtrOutput) ServiceAccount() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VolumeEncryptionParameters) *string { - if v == nil { - return nil - } - return &v.ServiceAccount - }).(pulumi.StringPtrOutput) +func (o GetApplicationLoadBalancerTargetPoolTargetArrayOutput) Index(i pulumi.IntInput) GetApplicationLoadBalancerTargetPoolTargetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetApplicationLoadBalancerTargetPoolTarget { + return vs[0].([]GetApplicationLoadBalancerTargetPoolTarget)[vs[1].(int)] + }).(GetApplicationLoadBalancerTargetPoolTargetOutput) } -type VolumeSource struct { - // The ID of the source, e.g. image ID - Id string `pulumi:"id"` - // The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. - Type string `pulumi:"type"` +type GetApplicationLoadBalancerTargetPoolTlsConfig struct { + // 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. + CustomCa string `pulumi:"customCa"` + // 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. + Enabled bool `pulumi:"enabled"` + // 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! + SkipCertificateValidation bool `pulumi:"skipCertificateValidation"` } -// VolumeSourceInput is an input type that accepts VolumeSourceArgs and VolumeSourceOutput values. -// You can construct a concrete instance of `VolumeSourceInput` via: +// GetApplicationLoadBalancerTargetPoolTlsConfigInput is an input type that accepts GetApplicationLoadBalancerTargetPoolTlsConfigArgs and GetApplicationLoadBalancerTargetPoolTlsConfigOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerTargetPoolTlsConfigInput` via: // -// VolumeSourceArgs{...} -type VolumeSourceInput interface { +// GetApplicationLoadBalancerTargetPoolTlsConfigArgs{...} +type GetApplicationLoadBalancerTargetPoolTlsConfigInput interface { pulumi.Input - ToVolumeSourceOutput() VolumeSourceOutput - ToVolumeSourceOutputWithContext(context.Context) VolumeSourceOutput + ToGetApplicationLoadBalancerTargetPoolTlsConfigOutput() GetApplicationLoadBalancerTargetPoolTlsConfigOutput + ToGetApplicationLoadBalancerTargetPoolTlsConfigOutputWithContext(context.Context) GetApplicationLoadBalancerTargetPoolTlsConfigOutput } -type VolumeSourceArgs struct { - // The ID of the source, e.g. image ID - Id pulumi.StringInput `pulumi:"id"` - // The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. - Type pulumi.StringInput `pulumi:"type"` +type GetApplicationLoadBalancerTargetPoolTlsConfigArgs struct { + // 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. + CustomCa pulumi.StringInput `pulumi:"customCa"` + // 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. + Enabled pulumi.BoolInput `pulumi:"enabled"` + // 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! + SkipCertificateValidation pulumi.BoolInput `pulumi:"skipCertificateValidation"` } -func (VolumeSourceArgs) ElementType() reflect.Type { - return reflect.TypeOf((*VolumeSource)(nil)).Elem() +func (GetApplicationLoadBalancerTargetPoolTlsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerTargetPoolTlsConfig)(nil)).Elem() } -func (i VolumeSourceArgs) ToVolumeSourceOutput() VolumeSourceOutput { - return i.ToVolumeSourceOutputWithContext(context.Background()) +func (i GetApplicationLoadBalancerTargetPoolTlsConfigArgs) ToGetApplicationLoadBalancerTargetPoolTlsConfigOutput() GetApplicationLoadBalancerTargetPoolTlsConfigOutput { + return i.ToGetApplicationLoadBalancerTargetPoolTlsConfigOutputWithContext(context.Background()) } -func (i VolumeSourceArgs) ToVolumeSourceOutputWithContext(ctx context.Context) VolumeSourceOutput { - return pulumi.ToOutputWithContext(ctx, i).(VolumeSourceOutput) +func (i GetApplicationLoadBalancerTargetPoolTlsConfigArgs) ToGetApplicationLoadBalancerTargetPoolTlsConfigOutputWithContext(ctx context.Context) GetApplicationLoadBalancerTargetPoolTlsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerTargetPoolTlsConfigOutput) } -func (i VolumeSourceArgs) ToVolumeSourcePtrOutput() VolumeSourcePtrOutput { - return i.ToVolumeSourcePtrOutputWithContext(context.Background()) -} +type GetApplicationLoadBalancerTargetPoolTlsConfigOutput struct{ *pulumi.OutputState } -func (i VolumeSourceArgs) ToVolumeSourcePtrOutputWithContext(ctx context.Context) VolumeSourcePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(VolumeSourceOutput).ToVolumeSourcePtrOutputWithContext(ctx) +func (GetApplicationLoadBalancerTargetPoolTlsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerTargetPoolTlsConfig)(nil)).Elem() } -// VolumeSourcePtrInput is an input type that accepts VolumeSourceArgs, VolumeSourcePtr and VolumeSourcePtrOutput values. -// You can construct a concrete instance of `VolumeSourcePtrInput` via: -// -// VolumeSourceArgs{...} -// -// or: -// -// nil -type VolumeSourcePtrInput interface { - pulumi.Input - - ToVolumeSourcePtrOutput() VolumeSourcePtrOutput - ToVolumeSourcePtrOutputWithContext(context.Context) VolumeSourcePtrOutput +func (o GetApplicationLoadBalancerTargetPoolTlsConfigOutput) ToGetApplicationLoadBalancerTargetPoolTlsConfigOutput() GetApplicationLoadBalancerTargetPoolTlsConfigOutput { + return o } -type volumeSourcePtrType VolumeSourceArgs - -func VolumeSourcePtr(v *VolumeSourceArgs) VolumeSourcePtrInput { - return (*volumeSourcePtrType)(v) +func (o GetApplicationLoadBalancerTargetPoolTlsConfigOutput) ToGetApplicationLoadBalancerTargetPoolTlsConfigOutputWithContext(ctx context.Context) GetApplicationLoadBalancerTargetPoolTlsConfigOutput { + return o } -func (*volumeSourcePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**VolumeSource)(nil)).Elem() +// 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. +func (o GetApplicationLoadBalancerTargetPoolTlsConfigOutput) CustomCa() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPoolTlsConfig) string { return v.CustomCa }).(pulumi.StringOutput) } -func (i *volumeSourcePtrType) ToVolumeSourcePtrOutput() VolumeSourcePtrOutput { - return i.ToVolumeSourcePtrOutputWithContext(context.Background()) +// 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. +func (o GetApplicationLoadBalancerTargetPoolTlsConfigOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPoolTlsConfig) bool { return v.Enabled }).(pulumi.BoolOutput) } -func (i *volumeSourcePtrType) ToVolumeSourcePtrOutputWithContext(ctx context.Context) VolumeSourcePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(VolumeSourcePtrOutput) +// 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! +func (o GetApplicationLoadBalancerTargetPoolTlsConfigOutput) SkipCertificateValidation() pulumi.BoolOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetPoolTlsConfig) bool { return v.SkipCertificateValidation }).(pulumi.BoolOutput) } -type VolumeSourceOutput struct{ *pulumi.OutputState } - -func (VolumeSourceOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VolumeSource)(nil)).Elem() +type GetApplicationLoadBalancerTargetSecurityGroup struct { + // ID of the security Group + Id string `pulumi:"id"` + // Name of the security Group + Name string `pulumi:"name"` } -func (o VolumeSourceOutput) ToVolumeSourceOutput() VolumeSourceOutput { - return o -} +// GetApplicationLoadBalancerTargetSecurityGroupInput is an input type that accepts GetApplicationLoadBalancerTargetSecurityGroupArgs and GetApplicationLoadBalancerTargetSecurityGroupOutput values. +// You can construct a concrete instance of `GetApplicationLoadBalancerTargetSecurityGroupInput` via: +// +// GetApplicationLoadBalancerTargetSecurityGroupArgs{...} +type GetApplicationLoadBalancerTargetSecurityGroupInput interface { + pulumi.Input -func (o VolumeSourceOutput) ToVolumeSourceOutputWithContext(ctx context.Context) VolumeSourceOutput { - return o + ToGetApplicationLoadBalancerTargetSecurityGroupOutput() GetApplicationLoadBalancerTargetSecurityGroupOutput + ToGetApplicationLoadBalancerTargetSecurityGroupOutputWithContext(context.Context) GetApplicationLoadBalancerTargetSecurityGroupOutput } -func (o VolumeSourceOutput) ToVolumeSourcePtrOutput() VolumeSourcePtrOutput { - return o.ToVolumeSourcePtrOutputWithContext(context.Background()) +type GetApplicationLoadBalancerTargetSecurityGroupArgs struct { + // ID of the security Group + Id pulumi.StringInput `pulumi:"id"` + // Name of the security Group + Name pulumi.StringInput `pulumi:"name"` } -func (o VolumeSourceOutput) ToVolumeSourcePtrOutputWithContext(ctx context.Context) VolumeSourcePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v VolumeSource) *VolumeSource { - return &v - }).(VolumeSourcePtrOutput) +func (GetApplicationLoadBalancerTargetSecurityGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerTargetSecurityGroup)(nil)).Elem() } -// The ID of the source, e.g. image ID -func (o VolumeSourceOutput) Id() pulumi.StringOutput { - return o.ApplyT(func(v VolumeSource) string { return v.Id }).(pulumi.StringOutput) +func (i GetApplicationLoadBalancerTargetSecurityGroupArgs) ToGetApplicationLoadBalancerTargetSecurityGroupOutput() GetApplicationLoadBalancerTargetSecurityGroupOutput { + return i.ToGetApplicationLoadBalancerTargetSecurityGroupOutputWithContext(context.Background()) } -// The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. -func (o VolumeSourceOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v VolumeSource) string { return v.Type }).(pulumi.StringOutput) +func (i GetApplicationLoadBalancerTargetSecurityGroupArgs) ToGetApplicationLoadBalancerTargetSecurityGroupOutputWithContext(ctx context.Context) GetApplicationLoadBalancerTargetSecurityGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetApplicationLoadBalancerTargetSecurityGroupOutput) } -type VolumeSourcePtrOutput struct{ *pulumi.OutputState } +type GetApplicationLoadBalancerTargetSecurityGroupOutput struct{ *pulumi.OutputState } -func (VolumeSourcePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**VolumeSource)(nil)).Elem() +func (GetApplicationLoadBalancerTargetSecurityGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetApplicationLoadBalancerTargetSecurityGroup)(nil)).Elem() } -func (o VolumeSourcePtrOutput) ToVolumeSourcePtrOutput() VolumeSourcePtrOutput { +func (o GetApplicationLoadBalancerTargetSecurityGroupOutput) ToGetApplicationLoadBalancerTargetSecurityGroupOutput() GetApplicationLoadBalancerTargetSecurityGroupOutput { return o } -func (o VolumeSourcePtrOutput) ToVolumeSourcePtrOutputWithContext(ctx context.Context) VolumeSourcePtrOutput { +func (o GetApplicationLoadBalancerTargetSecurityGroupOutput) ToGetApplicationLoadBalancerTargetSecurityGroupOutputWithContext(ctx context.Context) GetApplicationLoadBalancerTargetSecurityGroupOutput { return o } -func (o VolumeSourcePtrOutput) Elem() VolumeSourceOutput { - return o.ApplyT(func(v *VolumeSource) VolumeSource { - if v != nil { - return *v - } - var ret VolumeSource - return ret - }).(VolumeSourceOutput) -} - -// The ID of the source, e.g. image ID -func (o VolumeSourcePtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VolumeSource) *string { - if v == nil { - return nil - } - return &v.Id - }).(pulumi.StringPtrOutput) +// ID of the security Group +func (o GetApplicationLoadBalancerTargetSecurityGroupOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetSecurityGroup) string { return v.Id }).(pulumi.StringOutput) } -// The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. -func (o VolumeSourcePtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VolumeSource) *string { - if v == nil { - return nil - } - return &v.Type - }).(pulumi.StringPtrOutput) +// Name of the security Group +func (o GetApplicationLoadBalancerTargetSecurityGroupOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetApplicationLoadBalancerTargetSecurityGroup) string { return v.Name }).(pulumi.StringOutput) } type GetCdnCustomDomainCertificate struct { @@ -20090,6 +25504,121 @@ func (o GetServerUpdateSchedulesItemArrayOutput) Index(i pulumi.IntInput) GetSer }).(GetServerUpdateSchedulesItemOutput) } +type GetServiceAccountsItem struct { + // Email of the service account. + Email string `pulumi:"email"` + // Name of the service account. + Name string `pulumi:"name"` + // The internal UUID of the service account. + ServiceAccountId string `pulumi:"serviceAccountId"` +} + +// GetServiceAccountsItemInput is an input type that accepts GetServiceAccountsItemArgs and GetServiceAccountsItemOutput values. +// You can construct a concrete instance of `GetServiceAccountsItemInput` via: +// +// GetServiceAccountsItemArgs{...} +type GetServiceAccountsItemInput interface { + pulumi.Input + + ToGetServiceAccountsItemOutput() GetServiceAccountsItemOutput + ToGetServiceAccountsItemOutputWithContext(context.Context) GetServiceAccountsItemOutput +} + +type GetServiceAccountsItemArgs struct { + // Email of the service account. + Email pulumi.StringInput `pulumi:"email"` + // Name of the service account. + Name pulumi.StringInput `pulumi:"name"` + // The internal UUID of the service account. + ServiceAccountId pulumi.StringInput `pulumi:"serviceAccountId"` +} + +func (GetServiceAccountsItemArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetServiceAccountsItem)(nil)).Elem() +} + +func (i GetServiceAccountsItemArgs) ToGetServiceAccountsItemOutput() GetServiceAccountsItemOutput { + return i.ToGetServiceAccountsItemOutputWithContext(context.Background()) +} + +func (i GetServiceAccountsItemArgs) ToGetServiceAccountsItemOutputWithContext(ctx context.Context) GetServiceAccountsItemOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServiceAccountsItemOutput) +} + +// GetServiceAccountsItemArrayInput is an input type that accepts GetServiceAccountsItemArray and GetServiceAccountsItemArrayOutput values. +// You can construct a concrete instance of `GetServiceAccountsItemArrayInput` via: +// +// GetServiceAccountsItemArray{ GetServiceAccountsItemArgs{...} } +type GetServiceAccountsItemArrayInput interface { + pulumi.Input + + ToGetServiceAccountsItemArrayOutput() GetServiceAccountsItemArrayOutput + ToGetServiceAccountsItemArrayOutputWithContext(context.Context) GetServiceAccountsItemArrayOutput +} + +type GetServiceAccountsItemArray []GetServiceAccountsItemInput + +func (GetServiceAccountsItemArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetServiceAccountsItem)(nil)).Elem() +} + +func (i GetServiceAccountsItemArray) ToGetServiceAccountsItemArrayOutput() GetServiceAccountsItemArrayOutput { + return i.ToGetServiceAccountsItemArrayOutputWithContext(context.Background()) +} + +func (i GetServiceAccountsItemArray) ToGetServiceAccountsItemArrayOutputWithContext(ctx context.Context) GetServiceAccountsItemArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetServiceAccountsItemArrayOutput) +} + +type GetServiceAccountsItemOutput struct{ *pulumi.OutputState } + +func (GetServiceAccountsItemOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetServiceAccountsItem)(nil)).Elem() +} + +func (o GetServiceAccountsItemOutput) ToGetServiceAccountsItemOutput() GetServiceAccountsItemOutput { + return o +} + +func (o GetServiceAccountsItemOutput) ToGetServiceAccountsItemOutputWithContext(ctx context.Context) GetServiceAccountsItemOutput { + return o +} + +// Email of the service account. +func (o GetServiceAccountsItemOutput) Email() pulumi.StringOutput { + return o.ApplyT(func(v GetServiceAccountsItem) string { return v.Email }).(pulumi.StringOutput) +} + +// Name of the service account. +func (o GetServiceAccountsItemOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetServiceAccountsItem) string { return v.Name }).(pulumi.StringOutput) +} + +// The internal UUID of the service account. +func (o GetServiceAccountsItemOutput) ServiceAccountId() pulumi.StringOutput { + return o.ApplyT(func(v GetServiceAccountsItem) string { return v.ServiceAccountId }).(pulumi.StringOutput) +} + +type GetServiceAccountsItemArrayOutput struct{ *pulumi.OutputState } + +func (GetServiceAccountsItemArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetServiceAccountsItem)(nil)).Elem() +} + +func (o GetServiceAccountsItemArrayOutput) ToGetServiceAccountsItemArrayOutput() GetServiceAccountsItemArrayOutput { + return o +} + +func (o GetServiceAccountsItemArrayOutput) ToGetServiceAccountsItemArrayOutputWithContext(ctx context.Context) GetServiceAccountsItemArrayOutput { + return o +} + +func (o GetServiceAccountsItemArrayOutput) Index(i pulumi.IntInput) GetServiceAccountsItemOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetServiceAccountsItem { + return vs[0].([]GetServiceAccountsItem)[vs[1].(int)] + }).(GetServiceAccountsItemOutput) +} + type GetSfsExportPolicyRule struct { // Description of the Rule Description *string `pulumi:"description"` @@ -21900,6 +27429,53 @@ func (o GetVolumeSourceOutput) Type() pulumi.StringOutput { } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerErrorInput)(nil)).Elem(), ApplicationLoadBalancerErrorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerErrorArrayInput)(nil)).Elem(), ApplicationLoadBalancerErrorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerInput)(nil)).Elem(), ApplicationLoadBalancerListenerArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerArrayInput)(nil)).Elem(), ApplicationLoadBalancerListenerArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerHttpInput)(nil)).Elem(), ApplicationLoadBalancerListenerHttpArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostInput)(nil)).Elem(), ApplicationLoadBalancerListenerHttpHostArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostArrayInput)(nil)).Elem(), ApplicationLoadBalancerListenerHttpHostArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRuleInput)(nil)).Elem(), ApplicationLoadBalancerListenerHttpHostRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRuleArrayInput)(nil)).Elem(), ApplicationLoadBalancerListenerHttpHostRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceInput)(nil)).Elem(), ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrInput)(nil)).Elem(), ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRuleHeaderInput)(nil)).Elem(), ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayInput)(nil)).Elem(), ApplicationLoadBalancerListenerHttpHostRuleHeaderArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRulePathInput)(nil)).Elem(), ApplicationLoadBalancerListenerHttpHostRulePathArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRulePathPtrInput)(nil)).Elem(), ApplicationLoadBalancerListenerHttpHostRulePathArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRuleQueryParameterInput)(nil)).Elem(), ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayInput)(nil)).Elem(), ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerHttpsInput)(nil)).Elem(), ApplicationLoadBalancerListenerHttpsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerHttpsPtrInput)(nil)).Elem(), ApplicationLoadBalancerListenerHttpsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerHttpsCertificateConfigInput)(nil)).Elem(), ApplicationLoadBalancerListenerHttpsCertificateConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerListenerHttpsCertificateConfigPtrInput)(nil)).Elem(), ApplicationLoadBalancerListenerHttpsCertificateConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerLoadBalancerSecurityGroupInput)(nil)).Elem(), ApplicationLoadBalancerLoadBalancerSecurityGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerLoadBalancerSecurityGroupPtrInput)(nil)).Elem(), ApplicationLoadBalancerLoadBalancerSecurityGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerNetworkInput)(nil)).Elem(), ApplicationLoadBalancerNetworkArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerNetworkArrayInput)(nil)).Elem(), ApplicationLoadBalancerNetworkArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerOptionsInput)(nil)).Elem(), ApplicationLoadBalancerOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerOptionsPtrInput)(nil)).Elem(), ApplicationLoadBalancerOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerOptionsAccessControlInput)(nil)).Elem(), ApplicationLoadBalancerOptionsAccessControlArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerOptionsAccessControlPtrInput)(nil)).Elem(), ApplicationLoadBalancerOptionsAccessControlArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerOptionsObservabilityInput)(nil)).Elem(), ApplicationLoadBalancerOptionsObservabilityArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerOptionsObservabilityPtrInput)(nil)).Elem(), ApplicationLoadBalancerOptionsObservabilityArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerOptionsObservabilityLogsInput)(nil)).Elem(), ApplicationLoadBalancerOptionsObservabilityLogsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerOptionsObservabilityLogsPtrInput)(nil)).Elem(), ApplicationLoadBalancerOptionsObservabilityLogsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerOptionsObservabilityMetricsInput)(nil)).Elem(), ApplicationLoadBalancerOptionsObservabilityMetricsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerOptionsObservabilityMetricsPtrInput)(nil)).Elem(), ApplicationLoadBalancerOptionsObservabilityMetricsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerTargetPoolInput)(nil)).Elem(), ApplicationLoadBalancerTargetPoolArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerTargetPoolArrayInput)(nil)).Elem(), ApplicationLoadBalancerTargetPoolArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerTargetPoolActiveHealthCheckInput)(nil)).Elem(), ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrInput)(nil)).Elem(), ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksInput)(nil)).Elem(), ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrInput)(nil)).Elem(), ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerTargetPoolTargetInput)(nil)).Elem(), ApplicationLoadBalancerTargetPoolTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerTargetPoolTargetArrayInput)(nil)).Elem(), ApplicationLoadBalancerTargetPoolTargetArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerTargetPoolTlsConfigInput)(nil)).Elem(), ApplicationLoadBalancerTargetPoolTlsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerTargetPoolTlsConfigPtrInput)(nil)).Elem(), ApplicationLoadBalancerTargetPoolTlsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerTargetSecurityGroupInput)(nil)).Elem(), ApplicationLoadBalancerTargetSecurityGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationLoadBalancerTargetSecurityGroupPtrInput)(nil)).Elem(), ApplicationLoadBalancerTargetSecurityGroupArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CdnCustomDomainCertificateInput)(nil)).Elem(), CdnCustomDomainCertificateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CdnCustomDomainCertificatePtrInput)(nil)).Elem(), CdnCustomDomainCertificateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionConfigInput)(nil)).Elem(), CdnDistributionConfigArgs{}) @@ -22044,6 +27620,39 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*VolumeEncryptionParametersPtrInput)(nil)).Elem(), VolumeEncryptionParametersArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*VolumeSourceInput)(nil)).Elem(), VolumeSourceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*VolumeSourcePtrInput)(nil)).Elem(), VolumeSourceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerErrorInput)(nil)).Elem(), GetApplicationLoadBalancerErrorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerErrorArrayInput)(nil)).Elem(), GetApplicationLoadBalancerErrorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerListenerInput)(nil)).Elem(), GetApplicationLoadBalancerListenerArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerListenerArrayInput)(nil)).Elem(), GetApplicationLoadBalancerListenerArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpInput)(nil)).Elem(), GetApplicationLoadBalancerListenerHttpArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostInput)(nil)).Elem(), GetApplicationLoadBalancerListenerHttpHostArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostArrayInput)(nil)).Elem(), GetApplicationLoadBalancerListenerHttpHostArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRuleInput)(nil)).Elem(), GetApplicationLoadBalancerListenerHttpHostRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRuleArrayInput)(nil)).Elem(), GetApplicationLoadBalancerListenerHttpHostRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceInput)(nil)).Elem(), GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRuleHeaderInput)(nil)).Elem(), GetApplicationLoadBalancerListenerHttpHostRuleHeaderArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayInput)(nil)).Elem(), GetApplicationLoadBalancerListenerHttpHostRuleHeaderArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRulePathInput)(nil)).Elem(), GetApplicationLoadBalancerListenerHttpHostRulePathArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterInput)(nil)).Elem(), GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayInput)(nil)).Elem(), GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpsInput)(nil)).Elem(), GetApplicationLoadBalancerListenerHttpsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerListenerHttpsCertificateConfigInput)(nil)).Elem(), GetApplicationLoadBalancerListenerHttpsCertificateConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerLoadBalancerSecurityGroupInput)(nil)).Elem(), GetApplicationLoadBalancerLoadBalancerSecurityGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerNetworkInput)(nil)).Elem(), GetApplicationLoadBalancerNetworkArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerNetworkArrayInput)(nil)).Elem(), GetApplicationLoadBalancerNetworkArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerOptionsInput)(nil)).Elem(), GetApplicationLoadBalancerOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerOptionsAccessControlInput)(nil)).Elem(), GetApplicationLoadBalancerOptionsAccessControlArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerOptionsObservabilityInput)(nil)).Elem(), GetApplicationLoadBalancerOptionsObservabilityArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerOptionsObservabilityLogsInput)(nil)).Elem(), GetApplicationLoadBalancerOptionsObservabilityLogsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerOptionsObservabilityMetricsInput)(nil)).Elem(), GetApplicationLoadBalancerOptionsObservabilityMetricsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerTargetPoolInput)(nil)).Elem(), GetApplicationLoadBalancerTargetPoolArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerTargetPoolArrayInput)(nil)).Elem(), GetApplicationLoadBalancerTargetPoolArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerTargetPoolActiveHealthCheckInput)(nil)).Elem(), GetApplicationLoadBalancerTargetPoolActiveHealthCheckArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksInput)(nil)).Elem(), GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerTargetPoolTargetInput)(nil)).Elem(), GetApplicationLoadBalancerTargetPoolTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerTargetPoolTargetArrayInput)(nil)).Elem(), GetApplicationLoadBalancerTargetPoolTargetArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerTargetPoolTlsConfigInput)(nil)).Elem(), GetApplicationLoadBalancerTargetPoolTlsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetApplicationLoadBalancerTargetSecurityGroupInput)(nil)).Elem(), GetApplicationLoadBalancerTargetSecurityGroupArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetCdnCustomDomainCertificateInput)(nil)).Elem(), GetCdnCustomDomainCertificateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetCdnCustomDomainCertificatePtrInput)(nil)).Elem(), GetCdnCustomDomainCertificateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetCdnDistributionConfigInput)(nil)).Elem(), GetCdnDistributionConfigArgs{}) @@ -22138,6 +27747,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetServerBootVolumeInput)(nil)).Elem(), GetServerBootVolumeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetServerUpdateSchedulesItemInput)(nil)).Elem(), GetServerUpdateSchedulesItemArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetServerUpdateSchedulesItemArrayInput)(nil)).Elem(), GetServerUpdateSchedulesItemArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServiceAccountsItemInput)(nil)).Elem(), GetServiceAccountsItemArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetServiceAccountsItemArrayInput)(nil)).Elem(), GetServiceAccountsItemArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetSfsExportPolicyRuleInput)(nil)).Elem(), GetSfsExportPolicyRuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetSfsExportPolicyRuleArrayInput)(nil)).Elem(), GetSfsExportPolicyRuleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetSfsResourcePoolSnapshotSnapshotInput)(nil)).Elem(), GetSfsResourcePoolSnapshotSnapshotArgs{}) @@ -22165,6 +27776,53 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetSqlserverflexInstanceOptionsInput)(nil)).Elem(), GetSqlserverflexInstanceOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetSqlserverflexInstanceStorageInput)(nil)).Elem(), GetSqlserverflexInstanceStorageArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetVolumeSourceInput)(nil)).Elem(), GetVolumeSourceArgs{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerErrorOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerErrorArrayOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerArrayOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerHttpOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerHttpHostOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerHttpHostArrayOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerHttpHostRuleOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerHttpHostRuleArrayOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerHttpHostRuleCookiePersistencePtrOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerHttpHostRuleHeaderOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerHttpHostRulePathOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerHttpHostRulePathPtrOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerHttpsOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerHttpsPtrOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerHttpsCertificateConfigOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerListenerHttpsCertificateConfigPtrOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerLoadBalancerSecurityGroupOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerLoadBalancerSecurityGroupPtrOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerNetworkOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerNetworkArrayOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerOptionsOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerOptionsPtrOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerOptionsAccessControlOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerOptionsAccessControlPtrOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerOptionsObservabilityOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerOptionsObservabilityPtrOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerOptionsObservabilityLogsOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerOptionsObservabilityLogsPtrOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerOptionsObservabilityMetricsOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerOptionsObservabilityMetricsPtrOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerTargetPoolOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerTargetPoolArrayOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerTargetPoolActiveHealthCheckOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerTargetPoolActiveHealthCheckPtrOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksPtrOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerTargetPoolTargetOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerTargetPoolTargetArrayOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerTargetPoolTlsConfigOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerTargetPoolTlsConfigPtrOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerTargetSecurityGroupOutput{}) + pulumi.RegisterOutputType(ApplicationLoadBalancerTargetSecurityGroupPtrOutput{}) pulumi.RegisterOutputType(CdnCustomDomainCertificateOutput{}) pulumi.RegisterOutputType(CdnCustomDomainCertificatePtrOutput{}) pulumi.RegisterOutputType(CdnDistributionConfigOutput{}) @@ -22309,6 +27967,39 @@ func init() { pulumi.RegisterOutputType(VolumeEncryptionParametersPtrOutput{}) pulumi.RegisterOutputType(VolumeSourceOutput{}) pulumi.RegisterOutputType(VolumeSourcePtrOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerErrorOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerErrorArrayOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerListenerOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerListenerArrayOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerListenerHttpOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerListenerHttpHostOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerListenerHttpHostArrayOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerListenerHttpHostRuleOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerListenerHttpHostRuleArrayOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerListenerHttpHostRuleHeaderOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerListenerHttpHostRuleHeaderArrayOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerListenerHttpHostRulePathOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArrayOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerListenerHttpsOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerListenerHttpsCertificateConfigOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerLoadBalancerSecurityGroupOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerNetworkOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerNetworkArrayOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerOptionsOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerOptionsAccessControlOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerOptionsObservabilityOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerOptionsObservabilityLogsOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerOptionsObservabilityMetricsOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerTargetPoolOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerTargetPoolArrayOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerTargetPoolActiveHealthCheckOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerTargetPoolTargetOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerTargetPoolTargetArrayOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerTargetPoolTlsConfigOutput{}) + pulumi.RegisterOutputType(GetApplicationLoadBalancerTargetSecurityGroupOutput{}) pulumi.RegisterOutputType(GetCdnCustomDomainCertificateOutput{}) pulumi.RegisterOutputType(GetCdnCustomDomainCertificatePtrOutput{}) pulumi.RegisterOutputType(GetCdnDistributionConfigOutput{}) @@ -22403,6 +28094,8 @@ func init() { pulumi.RegisterOutputType(GetServerBootVolumeOutput{}) pulumi.RegisterOutputType(GetServerUpdateSchedulesItemOutput{}) pulumi.RegisterOutputType(GetServerUpdateSchedulesItemArrayOutput{}) + pulumi.RegisterOutputType(GetServiceAccountsItemOutput{}) + pulumi.RegisterOutputType(GetServiceAccountsItemArrayOutput{}) pulumi.RegisterOutputType(GetSfsExportPolicyRuleOutput{}) pulumi.RegisterOutputType(GetSfsExportPolicyRuleArrayOutput{}) pulumi.RegisterOutputType(GetSfsResourcePoolSnapshotSnapshotOutput{}) diff --git a/sdk/go/stackit/serverBackupSchedule.go b/sdk/go/stackit/serverBackupSchedule.go index c81d492..c1130b8 100644 --- a/sdk/go/stackit/serverBackupSchedule.go +++ b/sdk/go/stackit/serverBackupSchedule.go @@ -14,8 +14,6 @@ import ( // Server backup schedule resource schema. Must have a `region` specified in the provider configuration. // -// > 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. -// // ## Example Usage type ServerBackupSchedule struct { pulumi.CustomResourceState diff --git a/sdk/go/stackit/serverUpdateSchedule.go b/sdk/go/stackit/serverUpdateSchedule.go index 18b5c71..234ac08 100644 --- a/sdk/go/stackit/serverUpdateSchedule.go +++ b/sdk/go/stackit/serverUpdateSchedule.go @@ -14,8 +14,6 @@ import ( // Server update schedule resource schema. Must have a `region` specified in the provider configuration. // -// > 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. -// // ## Example Usage type ServerUpdateSchedule struct { pulumi.CustomResourceState diff --git a/sdk/go/stackit/serviceAccount.go b/sdk/go/stackit/serviceAccount.go index f514827..647c1a2 100644 --- a/sdk/go/stackit/serviceAccount.go +++ b/sdk/go/stackit/serviceAccount.go @@ -24,6 +24,8 @@ type ServiceAccount struct { Name pulumi.StringOutput `pulumi:"name"` // STACKIT project ID to which the service account is associated. ProjectId pulumi.StringOutput `pulumi:"projectId"` + // The internal UUID of the service account. + ServiceAccountId pulumi.StringOutput `pulumi:"serviceAccountId"` } // NewServiceAccount registers a new resource with the given unique name, arguments, and options. @@ -65,6 +67,8 @@ type serviceAccountState struct { Name *string `pulumi:"name"` // STACKIT project ID to which the service account is associated. ProjectId *string `pulumi:"projectId"` + // The internal UUID of the service account. + ServiceAccountId *string `pulumi:"serviceAccountId"` } type ServiceAccountState struct { @@ -74,6 +78,8 @@ type ServiceAccountState struct { Name pulumi.StringPtrInput // STACKIT project ID to which the service account is associated. ProjectId pulumi.StringPtrInput + // The internal UUID of the service account. + ServiceAccountId pulumi.StringPtrInput } func (ServiceAccountState) ElementType() reflect.Type { @@ -197,6 +203,11 @@ func (o ServiceAccountOutput) ProjectId() pulumi.StringOutput { return o.ApplyT(func(v *ServiceAccount) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput) } +// The internal UUID of the service account. +func (o ServiceAccountOutput) ServiceAccountId() pulumi.StringOutput { + return o.ApplyT(func(v *ServiceAccount) pulumi.StringOutput { return v.ServiceAccountId }).(pulumi.StringOutput) +} + type ServiceAccountArrayOutput struct{ *pulumi.OutputState } func (ServiceAccountArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/stackit/serviceAccountAccessToken.go b/sdk/go/stackit/serviceAccountAccessToken.go deleted file mode 100644 index 60a5c6d..0000000 --- a/sdk/go/stackit/serviceAccountAccessToken.go +++ /dev/null @@ -1,332 +0,0 @@ -// Code generated by pulumi-language-go DO NOT EDIT. -// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** - -package stackit - -import ( - "context" - "reflect" - - "errors" - "github.com/pulumi/pulumi/sdk/v3/go/pulumi" - "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" -) - -// Service account access token schema. -// -// !> 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. -// -// ## Example Usage -// -// ### Automatically rotate access tokens -type ServiceAccountAccessToken struct { - pulumi.CustomResourceState - - // Identifier for the access token linked to the service account. - AccessTokenId pulumi.StringOutput `pulumi:"accessTokenId"` - // Indicate whether the token is currently active or inactive - Active pulumi.BoolOutput `pulumi:"active"` - // Timestamp indicating when the access token was created. - CreatedAt pulumi.StringOutput `pulumi:"createdAt"` - // STACKIT project ID associated with the service account token. - ProjectId pulumi.StringOutput `pulumi:"projectId"` - // 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. - RotateWhenChanged pulumi.StringMapOutput `pulumi:"rotateWhenChanged"` - // Email address linked to the service account. - ServiceAccountEmail pulumi.StringOutput `pulumi:"serviceAccountEmail"` - // JWT access token for API authentication. Prefixed by 'Bearer' and should be stored securely as it is irretrievable once lost. - Token pulumi.StringOutput `pulumi:"token"` - // Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - TtlDays pulumi.IntOutput `pulumi:"ttlDays"` - // Estimated expiration timestamp of the access token. For precise validity, check the JWT details. - ValidUntil pulumi.StringOutput `pulumi:"validUntil"` -} - -// NewServiceAccountAccessToken registers a new resource with the given unique name, arguments, and options. -func NewServiceAccountAccessToken(ctx *pulumi.Context, - name string, args *ServiceAccountAccessTokenArgs, opts ...pulumi.ResourceOption) (*ServiceAccountAccessToken, error) { - if args == nil { - return nil, errors.New("missing one or more required arguments") - } - - if args.ProjectId == nil { - return nil, errors.New("invalid value for required argument 'ProjectId'") - } - if args.ServiceAccountEmail == nil { - return nil, errors.New("invalid value for required argument 'ServiceAccountEmail'") - } - secrets := pulumi.AdditionalSecretOutputs([]string{ - "token", - }) - opts = append(opts, secrets) - opts = internal.PkgResourceDefaultOpts(opts) - var resource ServiceAccountAccessToken - err := ctx.RegisterResource("stackit:index/serviceAccountAccessToken:ServiceAccountAccessToken", name, args, &resource, opts...) - if err != nil { - return nil, err - } - return &resource, nil -} - -// GetServiceAccountAccessToken gets an existing ServiceAccountAccessToken resource's state with the given name, ID, and optional -// state properties that are used to uniquely qualify the lookup (nil if not required). -func GetServiceAccountAccessToken(ctx *pulumi.Context, - name string, id pulumi.IDInput, state *ServiceAccountAccessTokenState, opts ...pulumi.ResourceOption) (*ServiceAccountAccessToken, error) { - var resource ServiceAccountAccessToken - err := ctx.ReadResource("stackit:index/serviceAccountAccessToken:ServiceAccountAccessToken", name, id, state, &resource, opts...) - if err != nil { - return nil, err - } - return &resource, nil -} - -// Input properties used for looking up and filtering ServiceAccountAccessToken resources. -type serviceAccountAccessTokenState struct { - // Identifier for the access token linked to the service account. - AccessTokenId *string `pulumi:"accessTokenId"` - // Indicate whether the token is currently active or inactive - Active *bool `pulumi:"active"` - // Timestamp indicating when the access token was created. - CreatedAt *string `pulumi:"createdAt"` - // STACKIT project ID associated with the service account token. - ProjectId *string `pulumi:"projectId"` - // 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. - RotateWhenChanged map[string]string `pulumi:"rotateWhenChanged"` - // Email address linked to the service account. - ServiceAccountEmail *string `pulumi:"serviceAccountEmail"` - // JWT access token for API authentication. Prefixed by 'Bearer' and should be stored securely as it is irretrievable once lost. - Token *string `pulumi:"token"` - // Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - TtlDays *int `pulumi:"ttlDays"` - // Estimated expiration timestamp of the access token. For precise validity, check the JWT details. - ValidUntil *string `pulumi:"validUntil"` -} - -type ServiceAccountAccessTokenState struct { - // Identifier for the access token linked to the service account. - AccessTokenId pulumi.StringPtrInput - // Indicate whether the token is currently active or inactive - Active pulumi.BoolPtrInput - // Timestamp indicating when the access token was created. - CreatedAt pulumi.StringPtrInput - // STACKIT project ID associated with the service account token. - ProjectId pulumi.StringPtrInput - // 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. - RotateWhenChanged pulumi.StringMapInput - // Email address linked to the service account. - ServiceAccountEmail pulumi.StringPtrInput - // JWT access token for API authentication. Prefixed by 'Bearer' and should be stored securely as it is irretrievable once lost. - Token pulumi.StringPtrInput - // Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - TtlDays pulumi.IntPtrInput - // Estimated expiration timestamp of the access token. For precise validity, check the JWT details. - ValidUntil pulumi.StringPtrInput -} - -func (ServiceAccountAccessTokenState) ElementType() reflect.Type { - return reflect.TypeOf((*serviceAccountAccessTokenState)(nil)).Elem() -} - -type serviceAccountAccessTokenArgs struct { - // STACKIT project ID associated with the service account token. - ProjectId string `pulumi:"projectId"` - // 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. - RotateWhenChanged map[string]string `pulumi:"rotateWhenChanged"` - // Email address linked to the service account. - ServiceAccountEmail string `pulumi:"serviceAccountEmail"` - // Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - TtlDays *int `pulumi:"ttlDays"` -} - -// The set of arguments for constructing a ServiceAccountAccessToken resource. -type ServiceAccountAccessTokenArgs struct { - // STACKIT project ID associated with the service account token. - ProjectId pulumi.StringInput - // 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. - RotateWhenChanged pulumi.StringMapInput - // Email address linked to the service account. - ServiceAccountEmail pulumi.StringInput - // Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - TtlDays pulumi.IntPtrInput -} - -func (ServiceAccountAccessTokenArgs) ElementType() reflect.Type { - return reflect.TypeOf((*serviceAccountAccessTokenArgs)(nil)).Elem() -} - -type ServiceAccountAccessTokenInput interface { - pulumi.Input - - ToServiceAccountAccessTokenOutput() ServiceAccountAccessTokenOutput - ToServiceAccountAccessTokenOutputWithContext(ctx context.Context) ServiceAccountAccessTokenOutput -} - -func (*ServiceAccountAccessToken) ElementType() reflect.Type { - return reflect.TypeOf((**ServiceAccountAccessToken)(nil)).Elem() -} - -func (i *ServiceAccountAccessToken) ToServiceAccountAccessTokenOutput() ServiceAccountAccessTokenOutput { - return i.ToServiceAccountAccessTokenOutputWithContext(context.Background()) -} - -func (i *ServiceAccountAccessToken) ToServiceAccountAccessTokenOutputWithContext(ctx context.Context) ServiceAccountAccessTokenOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServiceAccountAccessTokenOutput) -} - -// ServiceAccountAccessTokenArrayInput is an input type that accepts ServiceAccountAccessTokenArray and ServiceAccountAccessTokenArrayOutput values. -// You can construct a concrete instance of `ServiceAccountAccessTokenArrayInput` via: -// -// ServiceAccountAccessTokenArray{ ServiceAccountAccessTokenArgs{...} } -type ServiceAccountAccessTokenArrayInput interface { - pulumi.Input - - ToServiceAccountAccessTokenArrayOutput() ServiceAccountAccessTokenArrayOutput - ToServiceAccountAccessTokenArrayOutputWithContext(context.Context) ServiceAccountAccessTokenArrayOutput -} - -type ServiceAccountAccessTokenArray []ServiceAccountAccessTokenInput - -func (ServiceAccountAccessTokenArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]*ServiceAccountAccessToken)(nil)).Elem() -} - -func (i ServiceAccountAccessTokenArray) ToServiceAccountAccessTokenArrayOutput() ServiceAccountAccessTokenArrayOutput { - return i.ToServiceAccountAccessTokenArrayOutputWithContext(context.Background()) -} - -func (i ServiceAccountAccessTokenArray) ToServiceAccountAccessTokenArrayOutputWithContext(ctx context.Context) ServiceAccountAccessTokenArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServiceAccountAccessTokenArrayOutput) -} - -// ServiceAccountAccessTokenMapInput is an input type that accepts ServiceAccountAccessTokenMap and ServiceAccountAccessTokenMapOutput values. -// You can construct a concrete instance of `ServiceAccountAccessTokenMapInput` via: -// -// ServiceAccountAccessTokenMap{ "key": ServiceAccountAccessTokenArgs{...} } -type ServiceAccountAccessTokenMapInput interface { - pulumi.Input - - ToServiceAccountAccessTokenMapOutput() ServiceAccountAccessTokenMapOutput - ToServiceAccountAccessTokenMapOutputWithContext(context.Context) ServiceAccountAccessTokenMapOutput -} - -type ServiceAccountAccessTokenMap map[string]ServiceAccountAccessTokenInput - -func (ServiceAccountAccessTokenMap) ElementType() reflect.Type { - return reflect.TypeOf((*map[string]*ServiceAccountAccessToken)(nil)).Elem() -} - -func (i ServiceAccountAccessTokenMap) ToServiceAccountAccessTokenMapOutput() ServiceAccountAccessTokenMapOutput { - return i.ToServiceAccountAccessTokenMapOutputWithContext(context.Background()) -} - -func (i ServiceAccountAccessTokenMap) ToServiceAccountAccessTokenMapOutputWithContext(ctx context.Context) ServiceAccountAccessTokenMapOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServiceAccountAccessTokenMapOutput) -} - -type ServiceAccountAccessTokenOutput struct{ *pulumi.OutputState } - -func (ServiceAccountAccessTokenOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ServiceAccountAccessToken)(nil)).Elem() -} - -func (o ServiceAccountAccessTokenOutput) ToServiceAccountAccessTokenOutput() ServiceAccountAccessTokenOutput { - return o -} - -func (o ServiceAccountAccessTokenOutput) ToServiceAccountAccessTokenOutputWithContext(ctx context.Context) ServiceAccountAccessTokenOutput { - return o -} - -// Identifier for the access token linked to the service account. -func (o ServiceAccountAccessTokenOutput) AccessTokenId() pulumi.StringOutput { - return o.ApplyT(func(v *ServiceAccountAccessToken) pulumi.StringOutput { return v.AccessTokenId }).(pulumi.StringOutput) -} - -// Indicate whether the token is currently active or inactive -func (o ServiceAccountAccessTokenOutput) Active() pulumi.BoolOutput { - return o.ApplyT(func(v *ServiceAccountAccessToken) pulumi.BoolOutput { return v.Active }).(pulumi.BoolOutput) -} - -// Timestamp indicating when the access token was created. -func (o ServiceAccountAccessTokenOutput) CreatedAt() pulumi.StringOutput { - return o.ApplyT(func(v *ServiceAccountAccessToken) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) -} - -// STACKIT project ID associated with the service account token. -func (o ServiceAccountAccessTokenOutput) ProjectId() pulumi.StringOutput { - return o.ApplyT(func(v *ServiceAccountAccessToken) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput) -} - -// 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. -func (o ServiceAccountAccessTokenOutput) RotateWhenChanged() pulumi.StringMapOutput { - return o.ApplyT(func(v *ServiceAccountAccessToken) pulumi.StringMapOutput { return v.RotateWhenChanged }).(pulumi.StringMapOutput) -} - -// Email address linked to the service account. -func (o ServiceAccountAccessTokenOutput) ServiceAccountEmail() pulumi.StringOutput { - return o.ApplyT(func(v *ServiceAccountAccessToken) pulumi.StringOutput { return v.ServiceAccountEmail }).(pulumi.StringOutput) -} - -// JWT access token for API authentication. Prefixed by 'Bearer' and should be stored securely as it is irretrievable once lost. -func (o ServiceAccountAccessTokenOutput) Token() pulumi.StringOutput { - return o.ApplyT(func(v *ServiceAccountAccessToken) pulumi.StringOutput { return v.Token }).(pulumi.StringOutput) -} - -// Specifies the token's validity duration in days. If unspecified, defaults to 90 days. -func (o ServiceAccountAccessTokenOutput) TtlDays() pulumi.IntOutput { - return o.ApplyT(func(v *ServiceAccountAccessToken) pulumi.IntOutput { return v.TtlDays }).(pulumi.IntOutput) -} - -// Estimated expiration timestamp of the access token. For precise validity, check the JWT details. -func (o ServiceAccountAccessTokenOutput) ValidUntil() pulumi.StringOutput { - return o.ApplyT(func(v *ServiceAccountAccessToken) pulumi.StringOutput { return v.ValidUntil }).(pulumi.StringOutput) -} - -type ServiceAccountAccessTokenArrayOutput struct{ *pulumi.OutputState } - -func (ServiceAccountAccessTokenArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]*ServiceAccountAccessToken)(nil)).Elem() -} - -func (o ServiceAccountAccessTokenArrayOutput) ToServiceAccountAccessTokenArrayOutput() ServiceAccountAccessTokenArrayOutput { - return o -} - -func (o ServiceAccountAccessTokenArrayOutput) ToServiceAccountAccessTokenArrayOutputWithContext(ctx context.Context) ServiceAccountAccessTokenArrayOutput { - return o -} - -func (o ServiceAccountAccessTokenArrayOutput) Index(i pulumi.IntInput) ServiceAccountAccessTokenOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ServiceAccountAccessToken { - return vs[0].([]*ServiceAccountAccessToken)[vs[1].(int)] - }).(ServiceAccountAccessTokenOutput) -} - -type ServiceAccountAccessTokenMapOutput struct{ *pulumi.OutputState } - -func (ServiceAccountAccessTokenMapOutput) ElementType() reflect.Type { - return reflect.TypeOf((*map[string]*ServiceAccountAccessToken)(nil)).Elem() -} - -func (o ServiceAccountAccessTokenMapOutput) ToServiceAccountAccessTokenMapOutput() ServiceAccountAccessTokenMapOutput { - return o -} - -func (o ServiceAccountAccessTokenMapOutput) ToServiceAccountAccessTokenMapOutputWithContext(ctx context.Context) ServiceAccountAccessTokenMapOutput { - return o -} - -func (o ServiceAccountAccessTokenMapOutput) MapIndex(k pulumi.StringInput) ServiceAccountAccessTokenOutput { - return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ServiceAccountAccessToken { - return vs[0].(map[string]*ServiceAccountAccessToken)[vs[1].(string)] - }).(ServiceAccountAccessTokenOutput) -} - -func init() { - pulumi.RegisterInputType(reflect.TypeOf((*ServiceAccountAccessTokenInput)(nil)).Elem(), &ServiceAccountAccessToken{}) - pulumi.RegisterInputType(reflect.TypeOf((*ServiceAccountAccessTokenArrayInput)(nil)).Elem(), ServiceAccountAccessTokenArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*ServiceAccountAccessTokenMapInput)(nil)).Elem(), ServiceAccountAccessTokenMap{}) - pulumi.RegisterOutputType(ServiceAccountAccessTokenOutput{}) - pulumi.RegisterOutputType(ServiceAccountAccessTokenArrayOutput{}) - pulumi.RegisterOutputType(ServiceAccountAccessTokenMapOutput{}) -} diff --git a/sdk/nodejs/applicationLoadBalancer.ts b/sdk/nodejs/applicationLoadBalancer.ts new file mode 100644 index 0000000..92d9ad2 --- /dev/null +++ b/sdk/nodejs/applicationLoadBalancer.ts @@ -0,0 +1,289 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +/** + * ## 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 + */ +export class ApplicationLoadBalancer extends pulumi.CustomResource { + /** + * Get an existing ApplicationLoadBalancer resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ApplicationLoadBalancerState, opts?: pulumi.CustomResourceOptions): ApplicationLoadBalancer { + return new ApplicationLoadBalancer(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'stackit:index/applicationLoadBalancer:ApplicationLoadBalancer'; + + /** + * Returns true if the given object is an instance of ApplicationLoadBalancer. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ApplicationLoadBalancer { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ApplicationLoadBalancer.__pulumiType; + } + + /** + * 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. + */ + declare public readonly disableTargetSecurityGroupAssignment: pulumi.Output; + /** + * Reports all errors a Application Load Balancer has. + */ + declare public /*out*/ readonly errors: pulumi.Output; + /** + * The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + */ + declare public readonly externalAddress: pulumi.Output; + /** + * Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + */ + declare public readonly labels: pulumi.Output<{[key: string]: string} | undefined>; + /** + * List of all listeners which will accept traffic. Limited to 20. + */ + declare public readonly listeners: pulumi.Output; + /** + * Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + */ + declare public /*out*/ readonly loadBalancerSecurityGroup: pulumi.Output; + /** + * Application Load balancer name. + */ + declare public readonly name: pulumi.Output; + /** + * List of networks that listeners and targets reside in. + */ + declare public readonly networks: pulumi.Output; + /** + * Defines any optional functionality you want to have enabled on your Application Load Balancer. + */ + declare public readonly options: pulumi.Output; + /** + * 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 + */ + declare public readonly planId: pulumi.Output; + declare public /*out*/ readonly privateAddress: pulumi.Output; + /** + * STACKIT project ID to which the Application Load Balancer is associated. + */ + declare public readonly projectId: pulumi.Output; + /** + * The resource region (e.g. eu01). If not defined, the provider region is used. + */ + declare public readonly region: pulumi.Output; + /** + * List of all target pools which will be used in the Application Load Balancer. Limited to 20. + */ + declare public readonly targetPools: pulumi.Output; + /** + * Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + */ + declare public /*out*/ readonly targetSecurityGroup: pulumi.Output; + /** + * Application Load Balancer resource version. Used for concurrency safe updates. + */ + declare public /*out*/ readonly version: pulumi.Output; + + /** + * Create a ApplicationLoadBalancer resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ApplicationLoadBalancerArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ApplicationLoadBalancerArgs | ApplicationLoadBalancerState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ApplicationLoadBalancerState | undefined; + resourceInputs["disableTargetSecurityGroupAssignment"] = state?.disableTargetSecurityGroupAssignment; + resourceInputs["errors"] = state?.errors; + resourceInputs["externalAddress"] = state?.externalAddress; + resourceInputs["labels"] = state?.labels; + resourceInputs["listeners"] = state?.listeners; + resourceInputs["loadBalancerSecurityGroup"] = state?.loadBalancerSecurityGroup; + resourceInputs["name"] = state?.name; + resourceInputs["networks"] = state?.networks; + resourceInputs["options"] = state?.options; + resourceInputs["planId"] = state?.planId; + resourceInputs["privateAddress"] = state?.privateAddress; + resourceInputs["projectId"] = state?.projectId; + resourceInputs["region"] = state?.region; + resourceInputs["targetPools"] = state?.targetPools; + resourceInputs["targetSecurityGroup"] = state?.targetSecurityGroup; + resourceInputs["version"] = state?.version; + } else { + const args = argsOrState as ApplicationLoadBalancerArgs | undefined; + if (args?.listeners === undefined && !opts.urn) { + throw new Error("Missing required property 'listeners'"); + } + if (args?.networks === undefined && !opts.urn) { + throw new Error("Missing required property 'networks'"); + } + if (args?.planId === undefined && !opts.urn) { + throw new Error("Missing required property 'planId'"); + } + if (args?.projectId === undefined && !opts.urn) { + throw new Error("Missing required property 'projectId'"); + } + if (args?.targetPools === undefined && !opts.urn) { + throw new Error("Missing required property 'targetPools'"); + } + resourceInputs["disableTargetSecurityGroupAssignment"] = args?.disableTargetSecurityGroupAssignment; + resourceInputs["externalAddress"] = args?.externalAddress; + resourceInputs["labels"] = args?.labels; + resourceInputs["listeners"] = args?.listeners; + resourceInputs["name"] = args?.name; + resourceInputs["networks"] = args?.networks; + resourceInputs["options"] = args?.options; + resourceInputs["planId"] = args?.planId; + resourceInputs["projectId"] = args?.projectId; + resourceInputs["region"] = args?.region; + resourceInputs["targetPools"] = args?.targetPools; + resourceInputs["errors"] = undefined /*out*/; + resourceInputs["loadBalancerSecurityGroup"] = undefined /*out*/; + resourceInputs["privateAddress"] = undefined /*out*/; + resourceInputs["targetSecurityGroup"] = undefined /*out*/; + resourceInputs["version"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ApplicationLoadBalancer.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ApplicationLoadBalancer resources. + */ +export interface ApplicationLoadBalancerState { + /** + * 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. + */ + disableTargetSecurityGroupAssignment?: pulumi.Input; + /** + * Reports all errors a Application Load Balancer has. + */ + errors?: pulumi.Input[]>; + /** + * The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + */ + externalAddress?: pulumi.Input; + /** + * Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + */ + labels?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * List of all listeners which will accept traffic. Limited to 20. + */ + listeners?: pulumi.Input[]>; + /** + * Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + */ + loadBalancerSecurityGroup?: pulumi.Input; + /** + * Application Load balancer name. + */ + name?: pulumi.Input; + /** + * List of networks that listeners and targets reside in. + */ + networks?: pulumi.Input[]>; + /** + * Defines any optional functionality you want to have enabled on your Application Load Balancer. + */ + options?: pulumi.Input; + /** + * 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 + */ + planId?: pulumi.Input; + privateAddress?: pulumi.Input; + /** + * STACKIT project ID to which the Application Load Balancer is associated. + */ + projectId?: pulumi.Input; + /** + * The resource region (e.g. eu01). If not defined, the provider region is used. + */ + region?: pulumi.Input; + /** + * List of all target pools which will be used in the Application Load Balancer. Limited to 20. + */ + targetPools?: pulumi.Input[]>; + /** + * Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + */ + targetSecurityGroup?: pulumi.Input; + /** + * Application Load Balancer resource version. Used for concurrency safe updates. + */ + version?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ApplicationLoadBalancer resource. + */ +export interface ApplicationLoadBalancerArgs { + /** + * 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. + */ + disableTargetSecurityGroupAssignment?: pulumi.Input; + /** + * The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + */ + externalAddress?: pulumi.Input; + /** + * Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + */ + labels?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * List of all listeners which will accept traffic. Limited to 20. + */ + listeners: pulumi.Input[]>; + /** + * Application Load balancer name. + */ + name?: pulumi.Input; + /** + * List of networks that listeners and targets reside in. + */ + networks: pulumi.Input[]>; + /** + * Defines any optional functionality you want to have enabled on your Application Load Balancer. + */ + options?: pulumi.Input; + /** + * 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 + */ + planId: pulumi.Input; + /** + * STACKIT project ID to which the Application Load Balancer is associated. + */ + projectId: pulumi.Input; + /** + * The resource region (e.g. eu01). If not defined, the provider region is used. + */ + region?: pulumi.Input; + /** + * List of all target pools which will be used in the Application Load Balancer. Limited to 20. + */ + targetPools: pulumi.Input[]>; +} diff --git a/sdk/nodejs/config/vars.ts b/sdk/nodejs/config/vars.ts index b2aa83e..11af47c 100644 --- a/sdk/nodejs/config/vars.ts +++ b/sdk/nodejs/config/vars.ts @@ -7,6 +7,17 @@ import * as utilities from "../utilities"; declare var exports: any; const __config = new pulumi.Config("stackit"); +/** + * Custom endpoint for the Application Load Balancer service + */ +export declare const albCustomEndpoint: string | undefined; +Object.defineProperty(exports, "albCustomEndpoint", { + get() { + return __config.get("albCustomEndpoint"); + }, + enumerable: true, +}); + /** * Custom endpoint for the Membership service */ diff --git a/sdk/nodejs/getApplicationLoadBalancer.ts b/sdk/nodejs/getApplicationLoadBalancer.ts new file mode 100644 index 0000000..61b9d0a --- /dev/null +++ b/sdk/nodejs/getApplicationLoadBalancer.ts @@ -0,0 +1,131 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +/** + * Application Load Balancer data source schema. Must have a region specified in the provider configuration. + * + * ## Example Usage + */ +export function getApplicationLoadBalancer(args: GetApplicationLoadBalancerArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("stackit:index/getApplicationLoadBalancer:getApplicationLoadBalancer", { + "name": args.name, + "projectId": args.projectId, + }, opts); +} + +/** + * A collection of arguments for invoking getApplicationLoadBalancer. + */ +export interface GetApplicationLoadBalancerArgs { + /** + * Application Load balancer name. + */ + name: string; + /** + * STACKIT project ID to which the Application Load Balancer is associated. + */ + projectId: string; +} + +/** + * A collection of values returned by getApplicationLoadBalancer. + */ +export interface 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. + */ + readonly disableTargetSecurityGroupAssignment: boolean; + /** + * Reports all errors a Application Load Balancer has. + */ + readonly errors: outputs.GetApplicationLoadBalancerError[]; + /** + * The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + */ + readonly externalAddress: string; + /** + * Terraform's internal resource ID. It is structured as `projectId`,`region`,`name`. + */ + readonly id: string; + /** + * Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + */ + readonly labels: {[key: string]: string}; + /** + * List of all listeners which will accept traffic. Limited to 20. + */ + readonly listeners: outputs.GetApplicationLoadBalancerListener[]; + /** + * Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + */ + readonly loadBalancerSecurityGroup: outputs.GetApplicationLoadBalancerLoadBalancerSecurityGroup; + /** + * Application Load balancer name. + */ + readonly name: string; + /** + * List of networks that listeners and targets reside in. + */ + readonly networks: outputs.GetApplicationLoadBalancerNetwork[]; + /** + * Defines any optional functionality you want to have enabled on your Application Load Balancer. + */ + readonly options: outputs.GetApplicationLoadBalancerOptions; + /** + * Service Plan configures the size of the Application Load Balancer. + */ + readonly planId: string; + readonly privateAddress: string; + /** + * STACKIT project ID to which the Application Load Balancer is associated. + */ + readonly projectId: string; + /** + * The resource region. If not defined, the provider region is used. + */ + readonly region: string; + /** + * List of all target pools which will be used in the Application Load Balancer. Limited to 20. + */ + readonly targetPools: outputs.GetApplicationLoadBalancerTargetPool[]; + /** + * Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + */ + readonly targetSecurityGroup: outputs.GetApplicationLoadBalancerTargetSecurityGroup; + /** + * Application Load Balancer resource version. Used for concurrency safe updates. + */ + readonly version: string; +} +/** + * Application Load Balancer data source schema. Must have a region specified in the provider configuration. + * + * ## Example Usage + */ +export function getApplicationLoadBalancerOutput(args: GetApplicationLoadBalancerOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("stackit:index/getApplicationLoadBalancer:getApplicationLoadBalancer", { + "name": args.name, + "projectId": args.projectId, + }, opts); +} + +/** + * A collection of arguments for invoking getApplicationLoadBalancer. + */ +export interface GetApplicationLoadBalancerOutputArgs { + /** + * Application Load balancer name. + */ + name: pulumi.Input; + /** + * STACKIT project ID to which the Application Load Balancer is associated. + */ + projectId: pulumi.Input; +} diff --git a/sdk/nodejs/getServerBackupSchedule.ts b/sdk/nodejs/getServerBackupSchedule.ts index bb2528f..8b064bd 100644 --- a/sdk/nodejs/getServerBackupSchedule.ts +++ b/sdk/nodejs/getServerBackupSchedule.ts @@ -9,8 +9,6 @@ import * as utilities from "./utilities"; /** * 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 */ export function getServerBackupSchedule(args: GetServerBackupScheduleArgs, opts?: pulumi.InvokeOptions): Promise { @@ -89,8 +87,6 @@ export interface GetServerBackupScheduleResult { /** * 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 */ export function getServerBackupScheduleOutput(args: GetServerBackupScheduleOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { diff --git a/sdk/nodejs/getServerBackupSchedules.ts b/sdk/nodejs/getServerBackupSchedules.ts index af56ecb..4083ed2 100644 --- a/sdk/nodejs/getServerBackupSchedules.ts +++ b/sdk/nodejs/getServerBackupSchedules.ts @@ -9,8 +9,6 @@ import * as utilities from "./utilities"; /** * 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 */ export function getServerBackupSchedules(args: GetServerBackupSchedulesArgs, opts?: pulumi.InvokeOptions): Promise { @@ -65,8 +63,6 @@ export interface GetServerBackupSchedulesResult { /** * 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 */ export function getServerBackupSchedulesOutput(args: GetServerBackupSchedulesOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { diff --git a/sdk/nodejs/getServerUpdateSchedule.ts b/sdk/nodejs/getServerUpdateSchedule.ts index 7099adb..efe3317 100644 --- a/sdk/nodejs/getServerUpdateSchedule.ts +++ b/sdk/nodejs/getServerUpdateSchedule.ts @@ -7,8 +7,6 @@ import * as utilities from "./utilities"; /** * 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 */ export function getServerUpdateSchedule(args: GetServerUpdateScheduleArgs, opts?: pulumi.InvokeOptions): Promise { @@ -87,8 +85,6 @@ export interface GetServerUpdateScheduleResult { /** * 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 */ export function getServerUpdateScheduleOutput(args: GetServerUpdateScheduleOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { diff --git a/sdk/nodejs/getServerUpdateSchedules.ts b/sdk/nodejs/getServerUpdateSchedules.ts index fdce7e3..822fc37 100644 --- a/sdk/nodejs/getServerUpdateSchedules.ts +++ b/sdk/nodejs/getServerUpdateSchedules.ts @@ -9,8 +9,6 @@ import * as utilities from "./utilities"; /** * 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 */ export function getServerUpdateSchedules(args: GetServerUpdateSchedulesArgs, opts?: pulumi.InvokeOptions): Promise { @@ -65,8 +63,6 @@ export interface GetServerUpdateSchedulesResult { /** * 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 */ export function getServerUpdateSchedulesOutput(args: GetServerUpdateSchedulesOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { diff --git a/sdk/nodejs/getServiceAccount.ts b/sdk/nodejs/getServiceAccount.ts index 203ce3e..c861769 100644 --- a/sdk/nodejs/getServiceAccount.ts +++ b/sdk/nodejs/getServiceAccount.ts @@ -51,6 +51,10 @@ export interface GetServiceAccountResult { * STACKIT project ID to which the service account is associated. */ readonly projectId: string; + /** + * The internal UUID of the service account. + */ + readonly serviceAccountId: string; } /** * Service account data source schema. diff --git a/sdk/nodejs/getServiceAccounts.ts b/sdk/nodejs/getServiceAccounts.ts new file mode 100644 index 0000000..025e9ab --- /dev/null +++ b/sdk/nodejs/getServiceAccounts.ts @@ -0,0 +1,110 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +/** + * Service accounts plural data source schema. Returns a list of all service accounts in a project, optionally filtered. + * + * ## Example Usage + */ +export function getServiceAccounts(args: GetServiceAccountsArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("stackit:index/getServiceAccounts:getServiceAccounts", { + "emailRegex": args.emailRegex, + "emailSuffix": args.emailSuffix, + "projectId": args.projectId, + "sortAscending": args.sortAscending, + }, opts); +} + +/** + * A collection of arguments for invoking getServiceAccounts. + */ +export interface GetServiceAccountsArgs { + /** + * Optional regular expression to filter service accounts by email. + */ + emailRegex?: string; + /** + * Optional suffix to filter service accounts by email (e.g.,`@sa.stackit.cloud`, `@ske.sa.stackit.cloud`). + */ + emailSuffix?: string; + /** + * STACKIT project ID. + */ + projectId: string; + /** + * If set to `true`, service accounts are sorted in ascending lexicographical order by email. Defaults to `false` (descending). + */ + sortAscending?: boolean; +} + +/** + * A collection of values returned by getServiceAccounts. + */ +export interface GetServiceAccountsResult { + /** + * Optional regular expression to filter service accounts by email. + */ + readonly emailRegex?: string; + /** + * Optional suffix to filter service accounts by email (e.g.,`@sa.stackit.cloud`, `@ske.sa.stackit.cloud`). + */ + readonly emailSuffix?: string; + /** + * Terraform's internal resource ID, structured as "`projectId`". + */ + readonly id: string; + /** + * The list of service accounts matching the provided filters. + */ + readonly items: outputs.GetServiceAccountsItem[]; + /** + * STACKIT project ID. + */ + readonly projectId: string; + /** + * If set to `true`, service accounts are sorted in ascending lexicographical order by email. Defaults to `false` (descending). + */ + readonly sortAscending?: boolean; +} +/** + * Service accounts plural data source schema. Returns a list of all service accounts in a project, optionally filtered. + * + * ## Example Usage + */ +export function getServiceAccountsOutput(args: GetServiceAccountsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("stackit:index/getServiceAccounts:getServiceAccounts", { + "emailRegex": args.emailRegex, + "emailSuffix": args.emailSuffix, + "projectId": args.projectId, + "sortAscending": args.sortAscending, + }, opts); +} + +/** + * A collection of arguments for invoking getServiceAccounts. + */ +export interface GetServiceAccountsOutputArgs { + /** + * Optional regular expression to filter service accounts by email. + */ + emailRegex?: pulumi.Input; + /** + * Optional suffix to filter service accounts by email (e.g.,`@sa.stackit.cloud`, `@ske.sa.stackit.cloud`). + */ + emailSuffix?: pulumi.Input; + /** + * STACKIT project ID. + */ + projectId: pulumi.Input; + /** + * If set to `true`, service accounts are sorted in ascending lexicographical order by email. Defaults to `false` (descending). + */ + sortAscending?: pulumi.Input; +} diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index 052eb5b..a19d0c8 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -10,6 +10,11 @@ export type AffinityGroup = import("./affinityGroup").AffinityGroup; export const AffinityGroup: typeof import("./affinityGroup").AffinityGroup = null as any; utilities.lazyLoad(exports, ["AffinityGroup"], () => require("./affinityGroup")); +export { ApplicationLoadBalancerArgs, ApplicationLoadBalancerState } from "./applicationLoadBalancer"; +export type ApplicationLoadBalancer = import("./applicationLoadBalancer").ApplicationLoadBalancer; +export const ApplicationLoadBalancer: typeof import("./applicationLoadBalancer").ApplicationLoadBalancer = null as any; +utilities.lazyLoad(exports, ["ApplicationLoadBalancer"], () => require("./applicationLoadBalancer")); + export { AuthorizationFolderRoleAssignmentArgs, AuthorizationFolderRoleAssignmentState } from "./authorizationFolderRoleAssignment"; export type AuthorizationFolderRoleAssignment = import("./authorizationFolderRoleAssignment").AuthorizationFolderRoleAssignment; export const AuthorizationFolderRoleAssignment: typeof import("./authorizationFolderRoleAssignment").AuthorizationFolderRoleAssignment = null as any; @@ -70,6 +75,11 @@ export const getAffinityGroup: typeof import("./getAffinityGroup").getAffinityGr export const getAffinityGroupOutput: typeof import("./getAffinityGroup").getAffinityGroupOutput = null as any; utilities.lazyLoad(exports, ["getAffinityGroup","getAffinityGroupOutput"], () => require("./getAffinityGroup")); +export { GetApplicationLoadBalancerArgs, GetApplicationLoadBalancerResult, GetApplicationLoadBalancerOutputArgs } from "./getApplicationLoadBalancer"; +export const getApplicationLoadBalancer: typeof import("./getApplicationLoadBalancer").getApplicationLoadBalancer = null as any; +export const getApplicationLoadBalancerOutput: typeof import("./getApplicationLoadBalancer").getApplicationLoadBalancerOutput = null as any; +utilities.lazyLoad(exports, ["getApplicationLoadBalancer","getApplicationLoadBalancerOutput"], () => require("./getApplicationLoadBalancer")); + export { GetAuthorizationProjectCustomRoleArgs, GetAuthorizationProjectCustomRoleResult, GetAuthorizationProjectCustomRoleOutputArgs } from "./getAuthorizationProjectCustomRole"; export const getAuthorizationProjectCustomRole: typeof import("./getAuthorizationProjectCustomRole").getAuthorizationProjectCustomRole = null as any; export const getAuthorizationProjectCustomRoleOutput: typeof import("./getAuthorizationProjectCustomRole").getAuthorizationProjectCustomRoleOutput = null as any; @@ -405,6 +415,11 @@ export const getServiceAccount: typeof import("./getServiceAccount").getServiceA export const getServiceAccountOutput: typeof import("./getServiceAccount").getServiceAccountOutput = null as any; utilities.lazyLoad(exports, ["getServiceAccount","getServiceAccountOutput"], () => require("./getServiceAccount")); +export { GetServiceAccountsArgs, GetServiceAccountsResult, GetServiceAccountsOutputArgs } from "./getServiceAccounts"; +export const getServiceAccounts: typeof import("./getServiceAccounts").getServiceAccounts = null as any; +export const getServiceAccountsOutput: typeof import("./getServiceAccounts").getServiceAccountsOutput = null as any; +utilities.lazyLoad(exports, ["getServiceAccounts","getServiceAccountsOutput"], () => require("./getServiceAccounts")); + export { GetSfsExportPolicyArgs, GetSfsExportPolicyResult, GetSfsExportPolicyOutputArgs } from "./getSfsExportPolicy"; export const getSfsExportPolicy: typeof import("./getSfsExportPolicy").getSfsExportPolicy = null as any; export const getSfsExportPolicyOutput: typeof import("./getSfsExportPolicy").getSfsExportPolicyOutput = null as any; @@ -748,11 +763,6 @@ export type ServiceAccount = import("./serviceAccount").ServiceAccount; export const ServiceAccount: typeof import("./serviceAccount").ServiceAccount = null as any; utilities.lazyLoad(exports, ["ServiceAccount"], () => require("./serviceAccount")); -export { ServiceAccountAccessTokenArgs, ServiceAccountAccessTokenState } from "./serviceAccountAccessToken"; -export type ServiceAccountAccessToken = import("./serviceAccountAccessToken").ServiceAccountAccessToken; -export const ServiceAccountAccessToken: typeof import("./serviceAccountAccessToken").ServiceAccountAccessToken = null as any; -utilities.lazyLoad(exports, ["ServiceAccountAccessToken"], () => require("./serviceAccountAccessToken")); - export { ServiceAccountKeyArgs, ServiceAccountKeyState } from "./serviceAccountKey"; export type ServiceAccountKey = import("./serviceAccountKey").ServiceAccountKey; export const ServiceAccountKey: typeof import("./serviceAccountKey").ServiceAccountKey = null as any; @@ -814,6 +824,8 @@ const _module = { switch (type) { case "stackit:index/affinityGroup:AffinityGroup": return new AffinityGroup(name, undefined, { urn }) + case "stackit:index/applicationLoadBalancer:ApplicationLoadBalancer": + return new ApplicationLoadBalancer(name, undefined, { urn }) case "stackit:index/authorizationFolderRoleAssignment:AuthorizationFolderRoleAssignment": return new AuthorizationFolderRoleAssignment(name, undefined, { urn }) case "stackit:index/authorizationOrganizationRoleAssignment:AuthorizationOrganizationRoleAssignment": @@ -952,8 +964,6 @@ const _module = { return new ServerVolumeAttach(name, undefined, { urn }) case "stackit:index/serviceAccount:ServiceAccount": return new ServiceAccount(name, undefined, { urn }) - case "stackit:index/serviceAccountAccessToken:ServiceAccountAccessToken": - return new ServiceAccountAccessToken(name, undefined, { urn }) case "stackit:index/serviceAccountKey:ServiceAccountKey": return new ServiceAccountKey(name, undefined, { urn }) case "stackit:index/sfsExportPolicy:SfsExportPolicy": @@ -978,6 +988,7 @@ const _module = { }, }; pulumi.runtime.registerResourceModule("stackit", "index/affinityGroup", _module) +pulumi.runtime.registerResourceModule("stackit", "index/applicationLoadBalancer", _module) pulumi.runtime.registerResourceModule("stackit", "index/authorizationFolderRoleAssignment", _module) pulumi.runtime.registerResourceModule("stackit", "index/authorizationOrganizationRoleAssignment", _module) pulumi.runtime.registerResourceModule("stackit", "index/authorizationProjectCustomRole", _module) @@ -1047,7 +1058,6 @@ pulumi.runtime.registerResourceModule("stackit", "index/serverServiceAccountAtta pulumi.runtime.registerResourceModule("stackit", "index/serverUpdateSchedule", _module) pulumi.runtime.registerResourceModule("stackit", "index/serverVolumeAttach", _module) pulumi.runtime.registerResourceModule("stackit", "index/serviceAccount", _module) -pulumi.runtime.registerResourceModule("stackit", "index/serviceAccountAccessToken", _module) pulumi.runtime.registerResourceModule("stackit", "index/serviceAccountKey", _module) pulumi.runtime.registerResourceModule("stackit", "index/sfsExportPolicy", _module) pulumi.runtime.registerResourceModule("stackit", "index/sfsResourcePool", _module) diff --git a/sdk/nodejs/provider.ts b/sdk/nodejs/provider.ts index 8abef2d..1997fd8 100644 --- a/sdk/nodejs/provider.ts +++ b/sdk/nodejs/provider.ts @@ -25,6 +25,10 @@ export class Provider extends pulumi.ProviderResource { return obj['__pulumiType'] === "pulumi:providers:" + Provider.__pulumiType; } + /** + * Custom endpoint for the Application Load Balancer service + */ + declare public readonly albCustomEndpoint: pulumi.Output; /** * Custom endpoint for the Membership service */ @@ -213,6 +217,7 @@ export class Provider extends pulumi.ProviderResource { let resourceInputs: pulumi.Inputs = {}; opts = opts || {}; { + resourceInputs["albCustomEndpoint"] = args?.albCustomEndpoint; resourceInputs["authorizationCustomEndpoint"] = args?.authorizationCustomEndpoint; resourceInputs["cdnCustomEndpoint"] = args?.cdnCustomEndpoint; resourceInputs["credentialsPath"] = args?.credentialsPath; @@ -278,6 +283,10 @@ export class Provider extends pulumi.ProviderResource { * The set of arguments for constructing a Provider resource. */ export interface ProviderArgs { + /** + * Custom endpoint for the Application Load Balancer service + */ + albCustomEndpoint?: pulumi.Input; /** * Custom endpoint for the Membership service */ diff --git a/sdk/nodejs/serverBackupSchedule.ts b/sdk/nodejs/serverBackupSchedule.ts index eef46e2..9158934 100644 --- a/sdk/nodejs/serverBackupSchedule.ts +++ b/sdk/nodejs/serverBackupSchedule.ts @@ -9,8 +9,6 @@ import * as utilities from "./utilities"; /** * Server backup schedule resource schema. Must have a `region` specified in the provider configuration. * - * > 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. - * * ## Example Usage */ export class ServerBackupSchedule extends pulumi.CustomResource { diff --git a/sdk/nodejs/serverUpdateSchedule.ts b/sdk/nodejs/serverUpdateSchedule.ts index a6dc040..f949e22 100644 --- a/sdk/nodejs/serverUpdateSchedule.ts +++ b/sdk/nodejs/serverUpdateSchedule.ts @@ -7,8 +7,6 @@ import * as utilities from "./utilities"; /** * Server update schedule resource schema. Must have a `region` specified in the provider configuration. * - * > 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. - * * ## Example Usage */ export class ServerUpdateSchedule extends pulumi.CustomResource { diff --git a/sdk/nodejs/serviceAccount.ts b/sdk/nodejs/serviceAccount.ts index c872da0..75dd3ef 100644 --- a/sdk/nodejs/serviceAccount.ts +++ b/sdk/nodejs/serviceAccount.ts @@ -49,6 +49,10 @@ export class ServiceAccount extends pulumi.CustomResource { * STACKIT project ID to which the service account is associated. */ declare public readonly projectId: pulumi.Output; + /** + * The internal UUID of the service account. + */ + declare public /*out*/ readonly serviceAccountId: pulumi.Output; /** * Create a ServiceAccount resource with the given unique name, arguments, and options. @@ -66,6 +70,7 @@ export class ServiceAccount extends pulumi.CustomResource { resourceInputs["email"] = state?.email; resourceInputs["name"] = state?.name; resourceInputs["projectId"] = state?.projectId; + resourceInputs["serviceAccountId"] = state?.serviceAccountId; } else { const args = argsOrState as ServiceAccountArgs | undefined; if (args?.projectId === undefined && !opts.urn) { @@ -74,6 +79,7 @@ export class ServiceAccount extends pulumi.CustomResource { resourceInputs["name"] = args?.name; resourceInputs["projectId"] = args?.projectId; resourceInputs["email"] = undefined /*out*/; + resourceInputs["serviceAccountId"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(ServiceAccount.__pulumiType, name, resourceInputs, opts); @@ -96,6 +102,10 @@ export interface ServiceAccountState { * STACKIT project ID to which the service account is associated. */ projectId?: pulumi.Input; + /** + * The internal UUID of the service account. + */ + serviceAccountId?: pulumi.Input; } /** diff --git a/sdk/nodejs/serviceAccountAccessToken.ts b/sdk/nodejs/serviceAccountAccessToken.ts deleted file mode 100644 index 9d20ce8..0000000 --- a/sdk/nodejs/serviceAccountAccessToken.ts +++ /dev/null @@ -1,190 +0,0 @@ -// *** WARNING: this file was generated by pulumi-language-nodejs. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -import * as pulumi from "@pulumi/pulumi"; -import * as utilities from "./utilities"; - -/** - * Service account access token schema. - * - * !> 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. - * - * ## Example Usage - * - * ### Automatically rotate access tokens - */ -export class ServiceAccountAccessToken extends pulumi.CustomResource { - /** - * Get an existing ServiceAccountAccessToken resource's state with the given name, ID, and optional extra - * properties used to qualify the lookup. - * - * @param name The _unique_ name of the resulting resource. - * @param id The _unique_ provider ID of the resource to lookup. - * @param state Any extra arguments used during the lookup. - * @param opts Optional settings to control the behavior of the CustomResource. - */ - public static get(name: string, id: pulumi.Input, state?: ServiceAccountAccessTokenState, opts?: pulumi.CustomResourceOptions): ServiceAccountAccessToken { - return new ServiceAccountAccessToken(name, state, { ...opts, id: id }); - } - - /** @internal */ - public static readonly __pulumiType = 'stackit:index/serviceAccountAccessToken:ServiceAccountAccessToken'; - - /** - * Returns true if the given object is an instance of ServiceAccountAccessToken. This is designed to work even - * when multiple copies of the Pulumi SDK have been loaded into the same process. - */ - public static isInstance(obj: any): obj is ServiceAccountAccessToken { - if (obj === undefined || obj === null) { - return false; - } - return obj['__pulumiType'] === ServiceAccountAccessToken.__pulumiType; - } - - /** - * Identifier for the access token linked to the service account. - */ - declare public /*out*/ readonly accessTokenId: pulumi.Output; - /** - * Indicate whether the token is currently active or inactive - */ - declare public /*out*/ readonly active: pulumi.Output; - /** - * Timestamp indicating when the access token was created. - */ - declare public /*out*/ readonly createdAt: pulumi.Output; - /** - * STACKIT project ID associated with the service account token. - */ - declare public readonly projectId: pulumi.Output; - /** - * 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. - */ - declare public readonly rotateWhenChanged: pulumi.Output<{[key: string]: string} | undefined>; - /** - * Email address linked to the service account. - */ - declare public readonly serviceAccountEmail: pulumi.Output; - /** - * JWT access token for API authentication. Prefixed by 'Bearer' and should be stored securely as it is irretrievable once lost. - */ - declare public /*out*/ readonly token: pulumi.Output; - /** - * Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - */ - declare public readonly ttlDays: pulumi.Output; - /** - * Estimated expiration timestamp of the access token. For precise validity, check the JWT details. - */ - declare public /*out*/ readonly validUntil: pulumi.Output; - - /** - * Create a ServiceAccountAccessToken resource with the given unique name, arguments, and options. - * - * @param name The _unique_ name of the resource. - * @param args The arguments to use to populate this resource's properties. - * @param opts A bag of options that control this resource's behavior. - */ - constructor(name: string, args: ServiceAccountAccessTokenArgs, opts?: pulumi.CustomResourceOptions) - constructor(name: string, argsOrState?: ServiceAccountAccessTokenArgs | ServiceAccountAccessTokenState, opts?: pulumi.CustomResourceOptions) { - let resourceInputs: pulumi.Inputs = {}; - opts = opts || {}; - if (opts.id) { - const state = argsOrState as ServiceAccountAccessTokenState | undefined; - resourceInputs["accessTokenId"] = state?.accessTokenId; - resourceInputs["active"] = state?.active; - resourceInputs["createdAt"] = state?.createdAt; - resourceInputs["projectId"] = state?.projectId; - resourceInputs["rotateWhenChanged"] = state?.rotateWhenChanged; - resourceInputs["serviceAccountEmail"] = state?.serviceAccountEmail; - resourceInputs["token"] = state?.token; - resourceInputs["ttlDays"] = state?.ttlDays; - resourceInputs["validUntil"] = state?.validUntil; - } else { - const args = argsOrState as ServiceAccountAccessTokenArgs | undefined; - if (args?.projectId === undefined && !opts.urn) { - throw new Error("Missing required property 'projectId'"); - } - if (args?.serviceAccountEmail === undefined && !opts.urn) { - throw new Error("Missing required property 'serviceAccountEmail'"); - } - resourceInputs["projectId"] = args?.projectId; - resourceInputs["rotateWhenChanged"] = args?.rotateWhenChanged; - resourceInputs["serviceAccountEmail"] = args?.serviceAccountEmail; - resourceInputs["ttlDays"] = args?.ttlDays; - resourceInputs["accessTokenId"] = undefined /*out*/; - resourceInputs["active"] = undefined /*out*/; - resourceInputs["createdAt"] = undefined /*out*/; - resourceInputs["token"] = undefined /*out*/; - resourceInputs["validUntil"] = undefined /*out*/; - } - opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const secretOpts = { additionalSecretOutputs: ["token"] }; - opts = pulumi.mergeOptions(opts, secretOpts); - super(ServiceAccountAccessToken.__pulumiType, name, resourceInputs, opts); - } -} - -/** - * Input properties used for looking up and filtering ServiceAccountAccessToken resources. - */ -export interface ServiceAccountAccessTokenState { - /** - * Identifier for the access token linked to the service account. - */ - accessTokenId?: pulumi.Input; - /** - * Indicate whether the token is currently active or inactive - */ - active?: pulumi.Input; - /** - * Timestamp indicating when the access token was created. - */ - createdAt?: pulumi.Input; - /** - * STACKIT project ID associated with the service account token. - */ - projectId?: pulumi.Input; - /** - * 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. - */ - rotateWhenChanged?: pulumi.Input<{[key: string]: pulumi.Input}>; - /** - * Email address linked to the service account. - */ - serviceAccountEmail?: pulumi.Input; - /** - * JWT access token for API authentication. Prefixed by 'Bearer' and should be stored securely as it is irretrievable once lost. - */ - token?: pulumi.Input; - /** - * Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - */ - ttlDays?: pulumi.Input; - /** - * Estimated expiration timestamp of the access token. For precise validity, check the JWT details. - */ - validUntil?: pulumi.Input; -} - -/** - * The set of arguments for constructing a ServiceAccountAccessToken resource. - */ -export interface ServiceAccountAccessTokenArgs { - /** - * STACKIT project ID associated with the service account token. - */ - projectId: pulumi.Input; - /** - * 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. - */ - rotateWhenChanged?: pulumi.Input<{[key: string]: pulumi.Input}>; - /** - * Email address linked to the service account. - */ - serviceAccountEmail: pulumi.Input; - /** - * Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - */ - ttlDays?: pulumi.Input; -} diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 6017b61..e9ff7a3 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -14,6 +14,7 @@ }, "files": [ "affinityGroup.ts", + "applicationLoadBalancer.ts", "authorizationFolderRoleAssignment.ts", "authorizationOrganizationRoleAssignment.ts", "authorizationProjectCustomRole.ts", @@ -28,6 +29,7 @@ "edgecloudKubeconfig.ts", "edgecloudToken.ts", "getAffinityGroup.ts", + "getApplicationLoadBalancer.ts", "getAuthorizationProjectCustomRole.ts", "getCdnCustomDomain.ts", "getCdnDistribution.ts", @@ -95,6 +97,7 @@ "getServerUpdateSchedule.ts", "getServerUpdateSchedules.ts", "getServiceAccount.ts", + "getServiceAccounts.ts", "getSfsExportPolicy.ts", "getSfsResourcePool.ts", "getSfsResourcePoolSnapshot.ts", @@ -165,7 +168,6 @@ "serverUpdateSchedule.ts", "serverVolumeAttach.ts", "serviceAccount.ts", - "serviceAccountAccessToken.ts", "serviceAccountKey.ts", "sfsExportPolicy.ts", "sfsResourcePool.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index ebb92c7..59ecd89 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -5,6 +5,323 @@ import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; +export interface ApplicationLoadBalancerError { + /** + * 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. + */ + description?: pulumi.Input; + /** + * 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`. + */ + type?: pulumi.Input; +} + +export interface ApplicationLoadBalancerListener { + /** + * Configuration for HTTP traffic. + */ + http: pulumi.Input; + /** + * Configuration for handling HTTPS traffic on this listener. + */ + https?: pulumi.Input; + /** + * Unique name for the listener + */ + name: pulumi.Input; + /** + * Port number on which the listener receives incoming traffic. + */ + port: pulumi.Input; + /** + * Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. + */ + protocol: pulumi.Input; + /** + * Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. + */ + wafConfigName?: pulumi.Input; +} + +export interface ApplicationLoadBalancerListenerHttp { + /** + * Defines routing rules grouped by hostname. + */ + hosts: pulumi.Input[]>; +} + +export interface ApplicationLoadBalancerListenerHttpHost { + /** + * Hostname to match. Supports wildcards (e.g. *.example.com). + */ + host: pulumi.Input; + /** + * Routing rules under the specified host, matched by path prefix. + */ + rules: pulumi.Input[]>; +} + +export interface ApplicationLoadBalancerListenerHttpHostRule { + /** + * Routing persistence via cookies. + */ + cookiePersistence?: pulumi.Input; + /** + * Headers for the rule. + */ + headers?: pulumi.Input[]>; + /** + * Routing via path. + */ + path?: pulumi.Input; + /** + * Query parameters for the rule. + */ + queryParameters?: pulumi.Input[]>; + /** + * Reference target pool by target pool name. + */ + targetPool: pulumi.Input; + /** + * 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. + */ + webSocket?: pulumi.Input; +} + +export interface ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence { + /** + * The name of the cookie to use. + */ + name: pulumi.Input; + /** + * 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. + */ + ttl: pulumi.Input; +} + +export interface ApplicationLoadBalancerListenerHttpHostRuleHeader { + /** + * Exact match for the header value. + */ + exactMatch?: pulumi.Input; + /** + * Header name. + */ + name: pulumi.Input; +} + +export interface ApplicationLoadBalancerListenerHttpHostRulePath { + /** + * 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'. + */ + exactMatch?: pulumi.Input; + /** + * Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. + */ + prefix?: pulumi.Input; +} + +export interface ApplicationLoadBalancerListenerHttpHostRuleQueryParameter { + /** + * Exact match for the query parameters value. + */ + exactMatch?: pulumi.Input; + /** + * Query parameter name. + */ + name: pulumi.Input; +} + +export interface ApplicationLoadBalancerListenerHttps { + /** + * TLS termination certificate configuration. + */ + certificateConfig: pulumi.Input; +} + +export interface ApplicationLoadBalancerListenerHttpsCertificateConfig { + /** + * Certificate IDs for TLS termination. + */ + certificateIds: pulumi.Input[]>; +} + +export interface ApplicationLoadBalancerLoadBalancerSecurityGroup { + /** + * ID of the security Group + */ + id?: pulumi.Input; + /** + * Name of the security Group + */ + name?: pulumi.Input; +} + +export interface ApplicationLoadBalancerNetwork { + /** + * STACKIT network ID the Application Load Balancer and/or targets are in. + */ + networkId: pulumi.Input; + /** + * 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`. + */ + role: pulumi.Input; +} + +export interface ApplicationLoadBalancerOptions { + /** + * Use this option to limit the IP ranges that can use the Application Load Balancer. + */ + accessControl?: pulumi.Input; + /** + * 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. + */ + ephemeralAddress?: pulumi.Input; + /** + * We offer Load Balancer observability via STACKIT Observability or external solutions. + */ + observability?: pulumi.Input; + /** + * Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. + */ + privateNetworkOnly?: pulumi.Input; +} + +export interface ApplicationLoadBalancerOptionsAccessControl { + /** + * Application Load Balancer is accessible only from an IP address in this range. + */ + allowedSourceRanges: pulumi.Input[]>; +} + +export interface ApplicationLoadBalancerOptionsObservability { + /** + * Observability logs configuration. + */ + logs?: pulumi.Input; + /** + * Observability metrics configuration. + */ + metrics?: pulumi.Input; +} + +export interface ApplicationLoadBalancerOptionsObservabilityLogs { + /** + * 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. + */ + credentialsRef: pulumi.Input; + /** + * 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. + */ + pushUrl: pulumi.Input; +} + +export interface ApplicationLoadBalancerOptionsObservabilityMetrics { + /** + * 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. + */ + credentialsRef: pulumi.Input; + /** + * 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. + */ + pushUrl: pulumi.Input; +} + +export interface ApplicationLoadBalancerTargetPool { + activeHealthCheck?: pulumi.Input; + /** + * Target pool name. + */ + name: pulumi.Input; + /** + * The number identifying the port where each target listens for traffic. + */ + targetPort: pulumi.Input; + /** + * List of all targets which will be used in the pool. Limited to 250. + */ + targets: pulumi.Input[]>; + /** + * Configuration for TLS bridging. + */ + tlsConfig?: pulumi.Input; +} + +export interface ApplicationLoadBalancerTargetPoolActiveHealthCheck { + /** + * Healthy threshold of the health checking. + */ + healthyThreshold: pulumi.Input; + /** + * Options for the HTTP health checking. + */ + httpHealthChecks?: pulumi.Input; + /** + * Interval duration of health checking in seconds. + */ + interval: pulumi.Input; + /** + * Interval duration threshold of the health checking in seconds. + */ + intervalJitter: pulumi.Input; + /** + * Active health checking timeout duration in seconds. + */ + timeout: pulumi.Input; + /** + * Unhealthy threshold of the health checking. + */ + unhealthyThreshold: pulumi.Input; +} + +export interface ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks { + /** + * List of HTTP status codes that indicate a healthy response. + */ + okStatuses: pulumi.Input[]>; + /** + * Path to send the health check request to. + */ + path: pulumi.Input; +} + +export interface ApplicationLoadBalancerTargetPoolTarget { + /** + * Target display name + */ + displayName?: pulumi.Input; + /** + * Private target IP, which must by unique within a target pool. + */ + ip: pulumi.Input; +} + +export interface ApplicationLoadBalancerTargetPoolTlsConfig { + /** + * 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. + */ + customCa?: pulumi.Input; + /** + * 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. + */ + enabled?: pulumi.Input; + /** + * 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! + */ + skipCertificateValidation?: pulumi.Input; +} + +export interface ApplicationLoadBalancerTargetSecurityGroup { + /** + * ID of the security Group + */ + id?: pulumi.Input; + /** + * Name of the security Group + */ + name?: pulumi.Input; +} + export interface CdnCustomDomainCertificate { /** * The PEM-encoded TLS certificate. Required for custom certificates. diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index a2fd172..a57064a 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -5,6 +5,323 @@ import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; +export interface ApplicationLoadBalancerError { + /** + * 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. + */ + description: string; + /** + * 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`. + */ + type: string; +} + +export interface ApplicationLoadBalancerListener { + /** + * Configuration for HTTP traffic. + */ + http: outputs.ApplicationLoadBalancerListenerHttp; + /** + * Configuration for handling HTTPS traffic on this listener. + */ + https?: outputs.ApplicationLoadBalancerListenerHttps; + /** + * Unique name for the listener + */ + name: string; + /** + * Port number on which the listener receives incoming traffic. + */ + port: number; + /** + * Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. + */ + protocol: string; + /** + * Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. + */ + wafConfigName?: string; +} + +export interface ApplicationLoadBalancerListenerHttp { + /** + * Defines routing rules grouped by hostname. + */ + hosts: outputs.ApplicationLoadBalancerListenerHttpHost[]; +} + +export interface ApplicationLoadBalancerListenerHttpHost { + /** + * Hostname to match. Supports wildcards (e.g. *.example.com). + */ + host: string; + /** + * Routing rules under the specified host, matched by path prefix. + */ + rules: outputs.ApplicationLoadBalancerListenerHttpHostRule[]; +} + +export interface ApplicationLoadBalancerListenerHttpHostRule { + /** + * Routing persistence via cookies. + */ + cookiePersistence?: outputs.ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence; + /** + * Headers for the rule. + */ + headers?: outputs.ApplicationLoadBalancerListenerHttpHostRuleHeader[]; + /** + * Routing via path. + */ + path?: outputs.ApplicationLoadBalancerListenerHttpHostRulePath; + /** + * Query parameters for the rule. + */ + queryParameters?: outputs.ApplicationLoadBalancerListenerHttpHostRuleQueryParameter[]; + /** + * Reference target pool by target pool name. + */ + targetPool: string; + /** + * 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. + */ + webSocket: boolean; +} + +export interface ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence { + /** + * The name of the cookie to use. + */ + name: string; + /** + * 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. + */ + ttl: string; +} + +export interface ApplicationLoadBalancerListenerHttpHostRuleHeader { + /** + * Exact match for the header value. + */ + exactMatch?: string; + /** + * Header name. + */ + name: string; +} + +export interface ApplicationLoadBalancerListenerHttpHostRulePath { + /** + * 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'. + */ + exactMatch?: string; + /** + * Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. + */ + prefix?: string; +} + +export interface ApplicationLoadBalancerListenerHttpHostRuleQueryParameter { + /** + * Exact match for the query parameters value. + */ + exactMatch?: string; + /** + * Query parameter name. + */ + name: string; +} + +export interface ApplicationLoadBalancerListenerHttps { + /** + * TLS termination certificate configuration. + */ + certificateConfig: outputs.ApplicationLoadBalancerListenerHttpsCertificateConfig; +} + +export interface ApplicationLoadBalancerListenerHttpsCertificateConfig { + /** + * Certificate IDs for TLS termination. + */ + certificateIds: string[]; +} + +export interface ApplicationLoadBalancerLoadBalancerSecurityGroup { + /** + * ID of the security Group + */ + id: string; + /** + * Name of the security Group + */ + name: string; +} + +export interface ApplicationLoadBalancerNetwork { + /** + * STACKIT network ID the Application Load Balancer and/or targets are in. + */ + networkId: string; + /** + * 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`. + */ + role: string; +} + +export interface ApplicationLoadBalancerOptions { + /** + * Use this option to limit the IP ranges that can use the Application Load Balancer. + */ + accessControl?: outputs.ApplicationLoadBalancerOptionsAccessControl; + /** + * 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. + */ + ephemeralAddress: boolean; + /** + * We offer Load Balancer observability via STACKIT Observability or external solutions. + */ + observability?: outputs.ApplicationLoadBalancerOptionsObservability; + /** + * Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. + */ + privateNetworkOnly: boolean; +} + +export interface ApplicationLoadBalancerOptionsAccessControl { + /** + * Application Load Balancer is accessible only from an IP address in this range. + */ + allowedSourceRanges: string[]; +} + +export interface ApplicationLoadBalancerOptionsObservability { + /** + * Observability logs configuration. + */ + logs?: outputs.ApplicationLoadBalancerOptionsObservabilityLogs; + /** + * Observability metrics configuration. + */ + metrics?: outputs.ApplicationLoadBalancerOptionsObservabilityMetrics; +} + +export interface ApplicationLoadBalancerOptionsObservabilityLogs { + /** + * 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. + */ + credentialsRef: string; + /** + * 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. + */ + pushUrl: string; +} + +export interface ApplicationLoadBalancerOptionsObservabilityMetrics { + /** + * 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. + */ + credentialsRef: string; + /** + * 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. + */ + pushUrl: string; +} + +export interface ApplicationLoadBalancerTargetPool { + activeHealthCheck?: outputs.ApplicationLoadBalancerTargetPoolActiveHealthCheck; + /** + * Target pool name. + */ + name: string; + /** + * The number identifying the port where each target listens for traffic. + */ + targetPort: number; + /** + * List of all targets which will be used in the pool. Limited to 250. + */ + targets: outputs.ApplicationLoadBalancerTargetPoolTarget[]; + /** + * Configuration for TLS bridging. + */ + tlsConfig?: outputs.ApplicationLoadBalancerTargetPoolTlsConfig; +} + +export interface ApplicationLoadBalancerTargetPoolActiveHealthCheck { + /** + * Healthy threshold of the health checking. + */ + healthyThreshold: number; + /** + * Options for the HTTP health checking. + */ + httpHealthChecks?: outputs.ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks; + /** + * Interval duration of health checking in seconds. + */ + interval: string; + /** + * Interval duration threshold of the health checking in seconds. + */ + intervalJitter: string; + /** + * Active health checking timeout duration in seconds. + */ + timeout: string; + /** + * Unhealthy threshold of the health checking. + */ + unhealthyThreshold: number; +} + +export interface ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks { + /** + * List of HTTP status codes that indicate a healthy response. + */ + okStatuses: string[]; + /** + * Path to send the health check request to. + */ + path: string; +} + +export interface ApplicationLoadBalancerTargetPoolTarget { + /** + * Target display name + */ + displayName?: string; + /** + * Private target IP, which must by unique within a target pool. + */ + ip: string; +} + +export interface ApplicationLoadBalancerTargetPoolTlsConfig { + /** + * 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. + */ + customCa?: string; + /** + * 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. + */ + enabled: boolean; + /** + * 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! + */ + skipCertificateValidation: boolean; +} + +export interface ApplicationLoadBalancerTargetSecurityGroup { + /** + * ID of the security Group + */ + id: string; + /** + * Name of the security Group + */ + name: string; +} + export interface CdnCustomDomainCertificate { /** * The PEM-encoded TLS certificate. Required for custom certificates. @@ -104,6 +421,323 @@ export interface CdnDistributionDomain { type: string; } +export interface GetApplicationLoadBalancerError { + /** + * 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. + */ + description: string; + /** + * 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`. + */ + type: string; +} + +export interface GetApplicationLoadBalancerListener { + /** + * Configuration for HTTP traffic. + */ + http: outputs.GetApplicationLoadBalancerListenerHttp; + /** + * Configuration for handling HTTPS traffic on this listener. + */ + https: outputs.GetApplicationLoadBalancerListenerHttps; + /** + * Unique name for the listener + */ + name: string; + /** + * Port number on which the listener receives incoming traffic. + */ + port: number; + /** + * Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. + */ + protocol: string; + /** + * Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. + */ + wafConfigName: string; +} + +export interface GetApplicationLoadBalancerListenerHttp { + /** + * Defines routing rules grouped by hostname. + */ + hosts: outputs.GetApplicationLoadBalancerListenerHttpHost[]; +} + +export interface GetApplicationLoadBalancerListenerHttpHost { + /** + * Hostname to match. Supports wildcards (e.g. *.example.com). + */ + host: string; + /** + * Routing rules under the specified host, matched by path prefix. + */ + rules: outputs.GetApplicationLoadBalancerListenerHttpHostRule[]; +} + +export interface GetApplicationLoadBalancerListenerHttpHostRule { + /** + * Routing persistence via cookies. + */ + cookiePersistence: outputs.GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistence; + /** + * Headers for the rule. + */ + headers: outputs.GetApplicationLoadBalancerListenerHttpHostRuleHeader[]; + /** + * Routing via path. + */ + path: outputs.GetApplicationLoadBalancerListenerHttpHostRulePath; + /** + * Query parameters for the rule. + */ + queryParameters: outputs.GetApplicationLoadBalancerListenerHttpHostRuleQueryParameter[]; + /** + * Reference target pool by target pool name. + */ + targetPool: string; + /** + * 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. + */ + webSocket: boolean; +} + +export interface GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistence { + /** + * The name of the cookie to use. + */ + name: string; + /** + * 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. + */ + ttl: string; +} + +export interface GetApplicationLoadBalancerListenerHttpHostRuleHeader { + /** + * Exact match for the header value. + */ + exactMatch: string; + /** + * Header name. + */ + name: string; +} + +export interface GetApplicationLoadBalancerListenerHttpHostRulePath { + /** + * 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'. + */ + exactMatch: string; + /** + * Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. + */ + prefix: string; +} + +export interface GetApplicationLoadBalancerListenerHttpHostRuleQueryParameter { + /** + * Exact match for the query parameters value. + */ + exactMatch: string; + /** + * Query parameter name. + */ + name: string; +} + +export interface GetApplicationLoadBalancerListenerHttps { + /** + * TLS termination certificate configuration. + */ + certificateConfig: outputs.GetApplicationLoadBalancerListenerHttpsCertificateConfig; +} + +export interface GetApplicationLoadBalancerListenerHttpsCertificateConfig { + /** + * Certificate IDs for TLS termination. + */ + certificateIds: string[]; +} + +export interface GetApplicationLoadBalancerLoadBalancerSecurityGroup { + /** + * ID of the security Group + */ + id: string; + /** + * Name of the security Group + */ + name: string; +} + +export interface GetApplicationLoadBalancerNetwork { + /** + * STACKIT network ID the Application Load Balancer and/or targets are in. + */ + networkId: string; + /** + * 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`. + */ + role: string; +} + +export interface GetApplicationLoadBalancerOptions { + /** + * Use this option to limit the IP ranges that can use the Application Load Balancer. + */ + accessControl: outputs.GetApplicationLoadBalancerOptionsAccessControl; + /** + * 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. + */ + ephemeralAddress: boolean; + /** + * We offer Load Balancer observability via STACKIT Observability or external solutions. + */ + observability: outputs.GetApplicationLoadBalancerOptionsObservability; + /** + * Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. + */ + privateNetworkOnly: boolean; +} + +export interface GetApplicationLoadBalancerOptionsAccessControl { + /** + * Application Load Balancer is accessible only from an IP address in this range. + */ + allowedSourceRanges: string[]; +} + +export interface GetApplicationLoadBalancerOptionsObservability { + /** + * Observability logs configuration. + */ + logs: outputs.GetApplicationLoadBalancerOptionsObservabilityLogs; + /** + * Observability metrics configuration. + */ + metrics: outputs.GetApplicationLoadBalancerOptionsObservabilityMetrics; +} + +export interface GetApplicationLoadBalancerOptionsObservabilityLogs { + /** + * 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. + */ + credentialsRef: string; + /** + * 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. + */ + pushUrl: string; +} + +export interface GetApplicationLoadBalancerOptionsObservabilityMetrics { + /** + * 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. + */ + credentialsRef: string; + /** + * 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. + */ + pushUrl: string; +} + +export interface GetApplicationLoadBalancerTargetPool { + activeHealthCheck: outputs.GetApplicationLoadBalancerTargetPoolActiveHealthCheck; + /** + * Target pool name. + */ + name: string; + /** + * The number identifying the port where each target listens for traffic. + */ + targetPort: number; + /** + * List of all targets which will be used in the pool. Limited to 250. + */ + targets: outputs.GetApplicationLoadBalancerTargetPoolTarget[]; + /** + * Configuration for TLS bridging. + */ + tlsConfig: outputs.GetApplicationLoadBalancerTargetPoolTlsConfig; +} + +export interface GetApplicationLoadBalancerTargetPoolActiveHealthCheck { + /** + * Healthy threshold of the health checking. + */ + healthyThreshold: number; + /** + * Options for the HTTP health checking. + */ + httpHealthChecks: outputs.GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks; + /** + * Interval duration of health checking in seconds. + */ + interval: string; + /** + * Interval duration threshold of the health checking in seconds. + */ + intervalJitter: string; + /** + * Active health checking timeout duration in seconds. + */ + timeout: string; + /** + * Unhealthy threshold of the health checking. + */ + unhealthyThreshold: number; +} + +export interface GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks { + /** + * List of HTTP status codes that indicate a healthy response. + */ + okStatuses: string[]; + /** + * Path to send the health check request to. + */ + path: string; +} + +export interface GetApplicationLoadBalancerTargetPoolTarget { + /** + * Target display name + */ + displayName: string; + /** + * Private target IP, which must by unique within a target pool. + */ + ip: string; +} + +export interface GetApplicationLoadBalancerTargetPoolTlsConfig { + /** + * 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. + */ + customCa: string; + /** + * 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. + */ + enabled: boolean; + /** + * 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! + */ + skipCertificateValidation: boolean; +} + +export interface GetApplicationLoadBalancerTargetSecurityGroup { + /** + * ID of the security Group + */ + id: string; + /** + * Name of the security Group + */ + name: string; +} + export interface GetCdnCustomDomainCertificate { /** * A version identifier for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. @@ -1477,6 +2111,21 @@ export interface GetServerUpdateSchedulesItem { updateScheduleId: number; } +export interface GetServiceAccountsItem { + /** + * Email of the service account. + */ + email: string; + /** + * Name of the service account. + */ + name: string; + /** + * The internal UUID of the service account. + */ + serviceAccountId: string; +} + export interface GetSfsExportPolicyRule { /** * Description of the Rule diff --git a/sdk/python/pulumi_stackit/__init__.py b/sdk/python/pulumi_stackit/__init__.py index 2ee2f63..b0b1f0a 100644 --- a/sdk/python/pulumi_stackit/__init__.py +++ b/sdk/python/pulumi_stackit/__init__.py @@ -7,6 +7,7 @@ import typing # Export this package's modules as members: from .affinity_group import * +from .application_load_balancer import * from .authorization_folder_role_assignment import * from .authorization_organization_role_assignment import * from .authorization_project_custom_role import * @@ -19,6 +20,7 @@ from .edgecloud_kubeconfig import * from .edgecloud_token import * from .get_affinity_group import * +from .get_application_load_balancer import * from .get_authorization_project_custom_role import * from .get_cdn_custom_domain import * from .get_cdn_distribution import * @@ -86,6 +88,7 @@ from .get_server_update_schedule import * from .get_server_update_schedules import * from .get_service_account import * +from .get_service_accounts import * from .get_sfs_export_policy import * from .get_sfs_resource_pool import * from .get_sfs_resource_pool_snapshot import * @@ -155,7 +158,6 @@ from .server_update_schedule import * from .server_volume_attach import * from .service_account import * -from .service_account_access_token import * from .service_account_key import * from .sfs_export_policy import * from .sfs_resource_pool import * @@ -186,6 +188,14 @@ "stackit:index/affinityGroup:AffinityGroup": "AffinityGroup" } }, + { + "pkg": "stackit", + "mod": "index/applicationLoadBalancer", + "fqn": "pulumi_stackit", + "classes": { + "stackit:index/applicationLoadBalancer:ApplicationLoadBalancer": "ApplicationLoadBalancer" + } + }, { "pkg": "stackit", "mod": "index/authorizationFolderRoleAssignment", @@ -738,14 +748,6 @@ "stackit:index/serviceAccount:ServiceAccount": "ServiceAccount" } }, - { - "pkg": "stackit", - "mod": "index/serviceAccountAccessToken", - "fqn": "pulumi_stackit", - "classes": { - "stackit:index/serviceAccountAccessToken:ServiceAccountAccessToken": "ServiceAccountAccessToken" - } - }, { "pkg": "stackit", "mod": "index/serviceAccountKey", diff --git a/sdk/python/pulumi_stackit/_inputs.py b/sdk/python/pulumi_stackit/_inputs.py index b4bdbaf..9f2e1dc 100644 --- a/sdk/python/pulumi_stackit/_inputs.py +++ b/sdk/python/pulumi_stackit/_inputs.py @@ -15,6 +15,54 @@ from . import _utilities __all__ = [ + 'ApplicationLoadBalancerErrorArgs', + 'ApplicationLoadBalancerErrorArgsDict', + 'ApplicationLoadBalancerListenerArgs', + 'ApplicationLoadBalancerListenerArgsDict', + 'ApplicationLoadBalancerListenerHttpArgs', + 'ApplicationLoadBalancerListenerHttpArgsDict', + 'ApplicationLoadBalancerListenerHttpHostArgs', + 'ApplicationLoadBalancerListenerHttpHostArgsDict', + 'ApplicationLoadBalancerListenerHttpHostRuleArgs', + 'ApplicationLoadBalancerListenerHttpHostRuleArgsDict', + 'ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs', + 'ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgsDict', + 'ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs', + 'ApplicationLoadBalancerListenerHttpHostRuleHeaderArgsDict', + 'ApplicationLoadBalancerListenerHttpHostRulePathArgs', + 'ApplicationLoadBalancerListenerHttpHostRulePathArgsDict', + 'ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs', + 'ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgsDict', + 'ApplicationLoadBalancerListenerHttpsArgs', + 'ApplicationLoadBalancerListenerHttpsArgsDict', + 'ApplicationLoadBalancerListenerHttpsCertificateConfigArgs', + 'ApplicationLoadBalancerListenerHttpsCertificateConfigArgsDict', + 'ApplicationLoadBalancerLoadBalancerSecurityGroupArgs', + 'ApplicationLoadBalancerLoadBalancerSecurityGroupArgsDict', + 'ApplicationLoadBalancerNetworkArgs', + 'ApplicationLoadBalancerNetworkArgsDict', + 'ApplicationLoadBalancerOptionsArgs', + 'ApplicationLoadBalancerOptionsArgsDict', + 'ApplicationLoadBalancerOptionsAccessControlArgs', + 'ApplicationLoadBalancerOptionsAccessControlArgsDict', + 'ApplicationLoadBalancerOptionsObservabilityArgs', + 'ApplicationLoadBalancerOptionsObservabilityArgsDict', + 'ApplicationLoadBalancerOptionsObservabilityLogsArgs', + 'ApplicationLoadBalancerOptionsObservabilityLogsArgsDict', + 'ApplicationLoadBalancerOptionsObservabilityMetricsArgs', + 'ApplicationLoadBalancerOptionsObservabilityMetricsArgsDict', + 'ApplicationLoadBalancerTargetPoolArgs', + 'ApplicationLoadBalancerTargetPoolArgsDict', + 'ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs', + 'ApplicationLoadBalancerTargetPoolActiveHealthCheckArgsDict', + 'ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs', + 'ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgsDict', + 'ApplicationLoadBalancerTargetPoolTargetArgs', + 'ApplicationLoadBalancerTargetPoolTargetArgsDict', + 'ApplicationLoadBalancerTargetPoolTlsConfigArgs', + 'ApplicationLoadBalancerTargetPoolTlsConfigArgsDict', + 'ApplicationLoadBalancerTargetSecurityGroupArgs', + 'ApplicationLoadBalancerTargetSecurityGroupArgsDict', 'CdnCustomDomainCertificateArgs', 'CdnCustomDomainCertificateArgsDict', 'CdnDistributionConfigArgs', @@ -165,6 +213,1423 @@ 'GetImageV2FilterArgsDict', ] +class ApplicationLoadBalancerErrorArgsDict(TypedDict): + description: NotRequired[pulumi.Input[_builtins.str]] + """ + 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. + """ + type: NotRequired[pulumi.Input[_builtins.str]] + """ + 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`. + """ + +@pulumi.input_type +class ApplicationLoadBalancerErrorArgs: + def __init__(__self__, *, + description: Optional[pulumi.Input[_builtins.str]] = None, + type: Optional[pulumi.Input[_builtins.str]] = None): + """ + :param pulumi.Input[_builtins.str] 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. + :param pulumi.Input[_builtins.str] type: 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`. + """ + if description is not None: + pulumi.set(__self__, "description", description) + if type is not None: + pulumi.set(__self__, "type", type) + + @_builtins.property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + 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. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "description", value) + + @_builtins.property + @pulumi.getter + def type(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + 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`. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "type", value) + + +class ApplicationLoadBalancerListenerArgsDict(TypedDict): + http: pulumi.Input['ApplicationLoadBalancerListenerHttpArgsDict'] + """ + Configuration for HTTP traffic. + """ + name: pulumi.Input[_builtins.str] + """ + Unique name for the listener + """ + port: pulumi.Input[_builtins.int] + """ + Port number on which the listener receives incoming traffic. + """ + protocol: pulumi.Input[_builtins.str] + """ + Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. + """ + https: NotRequired[pulumi.Input['ApplicationLoadBalancerListenerHttpsArgsDict']] + """ + Configuration for handling HTTPS traffic on this listener. + """ + waf_config_name: NotRequired[pulumi.Input[_builtins.str]] + """ + Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. + """ + +@pulumi.input_type +class ApplicationLoadBalancerListenerArgs: + def __init__(__self__, *, + http: pulumi.Input['ApplicationLoadBalancerListenerHttpArgs'], + name: pulumi.Input[_builtins.str], + port: pulumi.Input[_builtins.int], + protocol: pulumi.Input[_builtins.str], + https: Optional[pulumi.Input['ApplicationLoadBalancerListenerHttpsArgs']] = None, + waf_config_name: Optional[pulumi.Input[_builtins.str]] = None): + """ + :param pulumi.Input['ApplicationLoadBalancerListenerHttpArgs'] http: Configuration for HTTP traffic. + :param pulumi.Input[_builtins.str] name: Unique name for the listener + :param pulumi.Input[_builtins.int] port: Port number on which the listener receives incoming traffic. + :param pulumi.Input[_builtins.str] protocol: Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. + :param pulumi.Input['ApplicationLoadBalancerListenerHttpsArgs'] https: Configuration for handling HTTPS traffic on this listener. + :param pulumi.Input[_builtins.str] waf_config_name: Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. + """ + pulumi.set(__self__, "http", http) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "port", port) + pulumi.set(__self__, "protocol", protocol) + if https is not None: + pulumi.set(__self__, "https", https) + if waf_config_name is not None: + pulumi.set(__self__, "waf_config_name", waf_config_name) + + @_builtins.property + @pulumi.getter + def http(self) -> pulumi.Input['ApplicationLoadBalancerListenerHttpArgs']: + """ + Configuration for HTTP traffic. + """ + return pulumi.get(self, "http") + + @http.setter + def http(self, value: pulumi.Input['ApplicationLoadBalancerListenerHttpArgs']): + pulumi.set(self, "http", value) + + @_builtins.property + @pulumi.getter + def name(self) -> pulumi.Input[_builtins.str]: + """ + Unique name for the listener + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "name", value) + + @_builtins.property + @pulumi.getter + def port(self) -> pulumi.Input[_builtins.int]: + """ + Port number on which the listener receives incoming traffic. + """ + return pulumi.get(self, "port") + + @port.setter + def port(self, value: pulumi.Input[_builtins.int]): + pulumi.set(self, "port", value) + + @_builtins.property + @pulumi.getter + def protocol(self) -> pulumi.Input[_builtins.str]: + """ + Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. + """ + return pulumi.get(self, "protocol") + + @protocol.setter + def protocol(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "protocol", value) + + @_builtins.property + @pulumi.getter + def https(self) -> Optional[pulumi.Input['ApplicationLoadBalancerListenerHttpsArgs']]: + """ + Configuration for handling HTTPS traffic on this listener. + """ + return pulumi.get(self, "https") + + @https.setter + def https(self, value: Optional[pulumi.Input['ApplicationLoadBalancerListenerHttpsArgs']]): + pulumi.set(self, "https", value) + + @_builtins.property + @pulumi.getter(name="wafConfigName") + def waf_config_name(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. + """ + return pulumi.get(self, "waf_config_name") + + @waf_config_name.setter + def waf_config_name(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "waf_config_name", value) + + +class ApplicationLoadBalancerListenerHttpArgsDict(TypedDict): + hosts: pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostArgsDict']]] + """ + Defines routing rules grouped by hostname. + """ + +@pulumi.input_type +class ApplicationLoadBalancerListenerHttpArgs: + def __init__(__self__, *, + hosts: pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostArgs']]]): + """ + :param pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostArgs']]] hosts: Defines routing rules grouped by hostname. + """ + pulumi.set(__self__, "hosts", hosts) + + @_builtins.property + @pulumi.getter + def hosts(self) -> pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostArgs']]]: + """ + Defines routing rules grouped by hostname. + """ + return pulumi.get(self, "hosts") + + @hosts.setter + def hosts(self, value: pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostArgs']]]): + pulumi.set(self, "hosts", value) + + +class ApplicationLoadBalancerListenerHttpHostArgsDict(TypedDict): + host: pulumi.Input[_builtins.str] + """ + Hostname to match. Supports wildcards (e.g. *.example.com). + """ + rules: pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleArgsDict']]] + """ + Routing rules under the specified host, matched by path prefix. + """ + +@pulumi.input_type +class ApplicationLoadBalancerListenerHttpHostArgs: + def __init__(__self__, *, + host: pulumi.Input[_builtins.str], + rules: pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleArgs']]]): + """ + :param pulumi.Input[_builtins.str] host: Hostname to match. Supports wildcards (e.g. *.example.com). + :param pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleArgs']]] rules: Routing rules under the specified host, matched by path prefix. + """ + pulumi.set(__self__, "host", host) + pulumi.set(__self__, "rules", rules) + + @_builtins.property + @pulumi.getter + def host(self) -> pulumi.Input[_builtins.str]: + """ + Hostname to match. Supports wildcards (e.g. *.example.com). + """ + return pulumi.get(self, "host") + + @host.setter + def host(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "host", value) + + @_builtins.property + @pulumi.getter + def rules(self) -> pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleArgs']]]: + """ + Routing rules under the specified host, matched by path prefix. + """ + return pulumi.get(self, "rules") + + @rules.setter + def rules(self, value: pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleArgs']]]): + pulumi.set(self, "rules", value) + + +class ApplicationLoadBalancerListenerHttpHostRuleArgsDict(TypedDict): + target_pool: pulumi.Input[_builtins.str] + """ + Reference target pool by target pool name. + """ + cookie_persistence: NotRequired[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgsDict']] + """ + Routing persistence via cookies. + """ + headers: NotRequired[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleHeaderArgsDict']]]] + """ + Headers for the rule. + """ + path: NotRequired[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRulePathArgsDict']] + """ + Routing via path. + """ + query_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgsDict']]]] + """ + Query parameters for the rule. + """ + web_socket: NotRequired[pulumi.Input[_builtins.bool]] + """ + 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. + """ + +@pulumi.input_type +class ApplicationLoadBalancerListenerHttpHostRuleArgs: + def __init__(__self__, *, + target_pool: pulumi.Input[_builtins.str], + cookie_persistence: Optional[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs']]]] = None, + path: Optional[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRulePathArgs']] = None, + query_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs']]]] = None, + web_socket: Optional[pulumi.Input[_builtins.bool]] = None): + """ + :param pulumi.Input[_builtins.str] target_pool: Reference target pool by target pool name. + :param pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs'] cookie_persistence: Routing persistence via cookies. + :param pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs']]] headers: Headers for the rule. + :param pulumi.Input['ApplicationLoadBalancerListenerHttpHostRulePathArgs'] path: Routing via path. + :param pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs']]] query_parameters: Query parameters for the rule. + :param pulumi.Input[_builtins.bool] web_socket: 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. + """ + pulumi.set(__self__, "target_pool", target_pool) + if cookie_persistence is not None: + pulumi.set(__self__, "cookie_persistence", cookie_persistence) + if headers is not None: + pulumi.set(__self__, "headers", headers) + if path is not None: + pulumi.set(__self__, "path", path) + if query_parameters is not None: + pulumi.set(__self__, "query_parameters", query_parameters) + if web_socket is not None: + pulumi.set(__self__, "web_socket", web_socket) + + @_builtins.property + @pulumi.getter(name="targetPool") + def target_pool(self) -> pulumi.Input[_builtins.str]: + """ + Reference target pool by target pool name. + """ + return pulumi.get(self, "target_pool") + + @target_pool.setter + def target_pool(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "target_pool", value) + + @_builtins.property + @pulumi.getter(name="cookiePersistence") + def cookie_persistence(self) -> Optional[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs']]: + """ + Routing persistence via cookies. + """ + return pulumi.get(self, "cookie_persistence") + + @cookie_persistence.setter + def cookie_persistence(self, value: Optional[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs']]): + pulumi.set(self, "cookie_persistence", value) + + @_builtins.property + @pulumi.getter + def headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs']]]]: + """ + Headers for the rule. + """ + return pulumi.get(self, "headers") + + @headers.setter + def headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs']]]]): + pulumi.set(self, "headers", value) + + @_builtins.property + @pulumi.getter + def path(self) -> Optional[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRulePathArgs']]: + """ + Routing via path. + """ + return pulumi.get(self, "path") + + @path.setter + def path(self, value: Optional[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRulePathArgs']]): + pulumi.set(self, "path", value) + + @_builtins.property + @pulumi.getter(name="queryParameters") + def query_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs']]]]: + """ + Query parameters for the rule. + """ + return pulumi.get(self, "query_parameters") + + @query_parameters.setter + def query_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs']]]]): + pulumi.set(self, "query_parameters", value) + + @_builtins.property + @pulumi.getter(name="webSocket") + def web_socket(self) -> Optional[pulumi.Input[_builtins.bool]]: + """ + 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. + """ + return pulumi.get(self, "web_socket") + + @web_socket.setter + def web_socket(self, value: Optional[pulumi.Input[_builtins.bool]]): + pulumi.set(self, "web_socket", value) + + +class ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgsDict(TypedDict): + name: pulumi.Input[_builtins.str] + """ + The name of the cookie to use. + """ + ttl: pulumi.Input[_builtins.str] + """ + 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. + """ + +@pulumi.input_type +class ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs: + def __init__(__self__, *, + name: pulumi.Input[_builtins.str], + ttl: pulumi.Input[_builtins.str]): + """ + :param pulumi.Input[_builtins.str] name: The name of the cookie to use. + :param pulumi.Input[_builtins.str] ttl: 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. + """ + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "ttl", ttl) + + @_builtins.property + @pulumi.getter + def name(self) -> pulumi.Input[_builtins.str]: + """ + The name of the cookie to use. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "name", value) + + @_builtins.property + @pulumi.getter + def ttl(self) -> pulumi.Input[_builtins.str]: + """ + 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. + """ + return pulumi.get(self, "ttl") + + @ttl.setter + def ttl(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "ttl", value) + + +class ApplicationLoadBalancerListenerHttpHostRuleHeaderArgsDict(TypedDict): + name: pulumi.Input[_builtins.str] + """ + Header name. + """ + exact_match: NotRequired[pulumi.Input[_builtins.str]] + """ + Exact match for the header value. + """ + +@pulumi.input_type +class ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs: + def __init__(__self__, *, + name: pulumi.Input[_builtins.str], + exact_match: Optional[pulumi.Input[_builtins.str]] = None): + """ + :param pulumi.Input[_builtins.str] name: Header name. + :param pulumi.Input[_builtins.str] exact_match: Exact match for the header value. + """ + pulumi.set(__self__, "name", name) + if exact_match is not None: + pulumi.set(__self__, "exact_match", exact_match) + + @_builtins.property + @pulumi.getter + def name(self) -> pulumi.Input[_builtins.str]: + """ + Header name. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "name", value) + + @_builtins.property + @pulumi.getter(name="exactMatch") + def exact_match(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Exact match for the header value. + """ + return pulumi.get(self, "exact_match") + + @exact_match.setter + def exact_match(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "exact_match", value) + + +class ApplicationLoadBalancerListenerHttpHostRulePathArgsDict(TypedDict): + exact_match: NotRequired[pulumi.Input[_builtins.str]] + """ + 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'. + """ + prefix: NotRequired[pulumi.Input[_builtins.str]] + """ + Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. + """ + +@pulumi.input_type +class ApplicationLoadBalancerListenerHttpHostRulePathArgs: + def __init__(__self__, *, + exact_match: Optional[pulumi.Input[_builtins.str]] = None, + prefix: Optional[pulumi.Input[_builtins.str]] = None): + """ + :param pulumi.Input[_builtins.str] exact_match: 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'. + :param pulumi.Input[_builtins.str] prefix: Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. + """ + if exact_match is not None: + pulumi.set(__self__, "exact_match", exact_match) + if prefix is not None: + pulumi.set(__self__, "prefix", prefix) + + @_builtins.property + @pulumi.getter(name="exactMatch") + def exact_match(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + 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'. + """ + return pulumi.get(self, "exact_match") + + @exact_match.setter + def exact_match(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "exact_match", value) + + @_builtins.property + @pulumi.getter + def prefix(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. + """ + return pulumi.get(self, "prefix") + + @prefix.setter + def prefix(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "prefix", value) + + +class ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgsDict(TypedDict): + name: pulumi.Input[_builtins.str] + """ + Query parameter name. + """ + exact_match: NotRequired[pulumi.Input[_builtins.str]] + """ + Exact match for the query parameters value. + """ + +@pulumi.input_type +class ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs: + def __init__(__self__, *, + name: pulumi.Input[_builtins.str], + exact_match: Optional[pulumi.Input[_builtins.str]] = None): + """ + :param pulumi.Input[_builtins.str] name: Query parameter name. + :param pulumi.Input[_builtins.str] exact_match: Exact match for the query parameters value. + """ + pulumi.set(__self__, "name", name) + if exact_match is not None: + pulumi.set(__self__, "exact_match", exact_match) + + @_builtins.property + @pulumi.getter + def name(self) -> pulumi.Input[_builtins.str]: + """ + Query parameter name. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "name", value) + + @_builtins.property + @pulumi.getter(name="exactMatch") + def exact_match(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Exact match for the query parameters value. + """ + return pulumi.get(self, "exact_match") + + @exact_match.setter + def exact_match(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "exact_match", value) + + +class ApplicationLoadBalancerListenerHttpsArgsDict(TypedDict): + certificate_config: pulumi.Input['ApplicationLoadBalancerListenerHttpsCertificateConfigArgsDict'] + """ + TLS termination certificate configuration. + """ + +@pulumi.input_type +class ApplicationLoadBalancerListenerHttpsArgs: + def __init__(__self__, *, + certificate_config: pulumi.Input['ApplicationLoadBalancerListenerHttpsCertificateConfigArgs']): + """ + :param pulumi.Input['ApplicationLoadBalancerListenerHttpsCertificateConfigArgs'] certificate_config: TLS termination certificate configuration. + """ + pulumi.set(__self__, "certificate_config", certificate_config) + + @_builtins.property + @pulumi.getter(name="certificateConfig") + def certificate_config(self) -> pulumi.Input['ApplicationLoadBalancerListenerHttpsCertificateConfigArgs']: + """ + TLS termination certificate configuration. + """ + return pulumi.get(self, "certificate_config") + + @certificate_config.setter + def certificate_config(self, value: pulumi.Input['ApplicationLoadBalancerListenerHttpsCertificateConfigArgs']): + pulumi.set(self, "certificate_config", value) + + +class ApplicationLoadBalancerListenerHttpsCertificateConfigArgsDict(TypedDict): + certificate_ids: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] + """ + Certificate IDs for TLS termination. + """ + +@pulumi.input_type +class ApplicationLoadBalancerListenerHttpsCertificateConfigArgs: + def __init__(__self__, *, + certificate_ids: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]): + """ + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] certificate_ids: Certificate IDs for TLS termination. + """ + pulumi.set(__self__, "certificate_ids", certificate_ids) + + @_builtins.property + @pulumi.getter(name="certificateIds") + def certificate_ids(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]: + """ + Certificate IDs for TLS termination. + """ + return pulumi.get(self, "certificate_ids") + + @certificate_ids.setter + def certificate_ids(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]): + pulumi.set(self, "certificate_ids", value) + + +class ApplicationLoadBalancerLoadBalancerSecurityGroupArgsDict(TypedDict): + id: NotRequired[pulumi.Input[_builtins.str]] + """ + ID of the security Group + """ + name: NotRequired[pulumi.Input[_builtins.str]] + """ + Name of the security Group + """ + +@pulumi.input_type +class ApplicationLoadBalancerLoadBalancerSecurityGroupArgs: + def __init__(__self__, *, + id: Optional[pulumi.Input[_builtins.str]] = None, + name: Optional[pulumi.Input[_builtins.str]] = None): + """ + :param pulumi.Input[_builtins.str] id: ID of the security Group + :param pulumi.Input[_builtins.str] name: Name of the security Group + """ + if id is not None: + pulumi.set(__self__, "id", id) + if name is not None: + pulumi.set(__self__, "name", name) + + @_builtins.property + @pulumi.getter + def id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + ID of the security Group + """ + return pulumi.get(self, "id") + + @id.setter + def id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "id", value) + + @_builtins.property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Name of the security Group + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "name", value) + + +class ApplicationLoadBalancerNetworkArgsDict(TypedDict): + network_id: pulumi.Input[_builtins.str] + """ + STACKIT network ID the Application Load Balancer and/or targets are in. + """ + role: pulumi.Input[_builtins.str] + """ + 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`. + """ + +@pulumi.input_type +class ApplicationLoadBalancerNetworkArgs: + def __init__(__self__, *, + network_id: pulumi.Input[_builtins.str], + role: pulumi.Input[_builtins.str]): + """ + :param pulumi.Input[_builtins.str] network_id: STACKIT network ID the Application Load Balancer and/or targets are in. + :param pulumi.Input[_builtins.str] role: 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`. + """ + pulumi.set(__self__, "network_id", network_id) + pulumi.set(__self__, "role", role) + + @_builtins.property + @pulumi.getter(name="networkId") + def network_id(self) -> pulumi.Input[_builtins.str]: + """ + STACKIT network ID the Application Load Balancer and/or targets are in. + """ + return pulumi.get(self, "network_id") + + @network_id.setter + def network_id(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "network_id", value) + + @_builtins.property + @pulumi.getter + def role(self) -> pulumi.Input[_builtins.str]: + """ + 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`. + """ + return pulumi.get(self, "role") + + @role.setter + def role(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "role", value) + + +class ApplicationLoadBalancerOptionsArgsDict(TypedDict): + access_control: NotRequired[pulumi.Input['ApplicationLoadBalancerOptionsAccessControlArgsDict']] + """ + Use this option to limit the IP ranges that can use the Application Load Balancer. + """ + ephemeral_address: NotRequired[pulumi.Input[_builtins.bool]] + """ + 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. + """ + observability: NotRequired[pulumi.Input['ApplicationLoadBalancerOptionsObservabilityArgsDict']] + """ + We offer Load Balancer observability via STACKIT Observability or external solutions. + """ + private_network_only: NotRequired[pulumi.Input[_builtins.bool]] + """ + Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. + """ + +@pulumi.input_type +class ApplicationLoadBalancerOptionsArgs: + def __init__(__self__, *, + access_control: Optional[pulumi.Input['ApplicationLoadBalancerOptionsAccessControlArgs']] = None, + ephemeral_address: Optional[pulumi.Input[_builtins.bool]] = None, + observability: Optional[pulumi.Input['ApplicationLoadBalancerOptionsObservabilityArgs']] = None, + private_network_only: Optional[pulumi.Input[_builtins.bool]] = None): + """ + :param pulumi.Input['ApplicationLoadBalancerOptionsAccessControlArgs'] access_control: Use this option to limit the IP ranges that can use the Application Load Balancer. + :param pulumi.Input[_builtins.bool] ephemeral_address: 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. + :param pulumi.Input['ApplicationLoadBalancerOptionsObservabilityArgs'] observability: We offer Load Balancer observability via STACKIT Observability or external solutions. + :param pulumi.Input[_builtins.bool] private_network_only: Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. + """ + if access_control is not None: + pulumi.set(__self__, "access_control", access_control) + if ephemeral_address is not None: + pulumi.set(__self__, "ephemeral_address", ephemeral_address) + if observability is not None: + pulumi.set(__self__, "observability", observability) + if private_network_only is not None: + pulumi.set(__self__, "private_network_only", private_network_only) + + @_builtins.property + @pulumi.getter(name="accessControl") + def access_control(self) -> Optional[pulumi.Input['ApplicationLoadBalancerOptionsAccessControlArgs']]: + """ + Use this option to limit the IP ranges that can use the Application Load Balancer. + """ + return pulumi.get(self, "access_control") + + @access_control.setter + def access_control(self, value: Optional[pulumi.Input['ApplicationLoadBalancerOptionsAccessControlArgs']]): + pulumi.set(self, "access_control", value) + + @_builtins.property + @pulumi.getter(name="ephemeralAddress") + def ephemeral_address(self) -> Optional[pulumi.Input[_builtins.bool]]: + """ + 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. + """ + return pulumi.get(self, "ephemeral_address") + + @ephemeral_address.setter + def ephemeral_address(self, value: Optional[pulumi.Input[_builtins.bool]]): + pulumi.set(self, "ephemeral_address", value) + + @_builtins.property + @pulumi.getter + def observability(self) -> Optional[pulumi.Input['ApplicationLoadBalancerOptionsObservabilityArgs']]: + """ + We offer Load Balancer observability via STACKIT Observability or external solutions. + """ + return pulumi.get(self, "observability") + + @observability.setter + def observability(self, value: Optional[pulumi.Input['ApplicationLoadBalancerOptionsObservabilityArgs']]): + pulumi.set(self, "observability", value) + + @_builtins.property + @pulumi.getter(name="privateNetworkOnly") + def private_network_only(self) -> Optional[pulumi.Input[_builtins.bool]]: + """ + Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. + """ + return pulumi.get(self, "private_network_only") + + @private_network_only.setter + def private_network_only(self, value: Optional[pulumi.Input[_builtins.bool]]): + pulumi.set(self, "private_network_only", value) + + +class ApplicationLoadBalancerOptionsAccessControlArgsDict(TypedDict): + allowed_source_ranges: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] + """ + Application Load Balancer is accessible only from an IP address in this range. + """ + +@pulumi.input_type +class ApplicationLoadBalancerOptionsAccessControlArgs: + def __init__(__self__, *, + allowed_source_ranges: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]): + """ + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] allowed_source_ranges: Application Load Balancer is accessible only from an IP address in this range. + """ + pulumi.set(__self__, "allowed_source_ranges", allowed_source_ranges) + + @_builtins.property + @pulumi.getter(name="allowedSourceRanges") + def allowed_source_ranges(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]: + """ + Application Load Balancer is accessible only from an IP address in this range. + """ + return pulumi.get(self, "allowed_source_ranges") + + @allowed_source_ranges.setter + def allowed_source_ranges(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]): + pulumi.set(self, "allowed_source_ranges", value) + + +class ApplicationLoadBalancerOptionsObservabilityArgsDict(TypedDict): + logs: NotRequired[pulumi.Input['ApplicationLoadBalancerOptionsObservabilityLogsArgsDict']] + """ + Observability logs configuration. + """ + metrics: NotRequired[pulumi.Input['ApplicationLoadBalancerOptionsObservabilityMetricsArgsDict']] + """ + Observability metrics configuration. + """ + +@pulumi.input_type +class ApplicationLoadBalancerOptionsObservabilityArgs: + def __init__(__self__, *, + logs: Optional[pulumi.Input['ApplicationLoadBalancerOptionsObservabilityLogsArgs']] = None, + metrics: Optional[pulumi.Input['ApplicationLoadBalancerOptionsObservabilityMetricsArgs']] = None): + """ + :param pulumi.Input['ApplicationLoadBalancerOptionsObservabilityLogsArgs'] logs: Observability logs configuration. + :param pulumi.Input['ApplicationLoadBalancerOptionsObservabilityMetricsArgs'] metrics: Observability metrics configuration. + """ + if logs is not None: + pulumi.set(__self__, "logs", logs) + if metrics is not None: + pulumi.set(__self__, "metrics", metrics) + + @_builtins.property + @pulumi.getter + def logs(self) -> Optional[pulumi.Input['ApplicationLoadBalancerOptionsObservabilityLogsArgs']]: + """ + Observability logs configuration. + """ + return pulumi.get(self, "logs") + + @logs.setter + def logs(self, value: Optional[pulumi.Input['ApplicationLoadBalancerOptionsObservabilityLogsArgs']]): + pulumi.set(self, "logs", value) + + @_builtins.property + @pulumi.getter + def metrics(self) -> Optional[pulumi.Input['ApplicationLoadBalancerOptionsObservabilityMetricsArgs']]: + """ + Observability metrics configuration. + """ + return pulumi.get(self, "metrics") + + @metrics.setter + def metrics(self, value: Optional[pulumi.Input['ApplicationLoadBalancerOptionsObservabilityMetricsArgs']]): + pulumi.set(self, "metrics", value) + + +class ApplicationLoadBalancerOptionsObservabilityLogsArgsDict(TypedDict): + credentials_ref: pulumi.Input[_builtins.str] + """ + 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. + """ + push_url: pulumi.Input[_builtins.str] + """ + 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. + """ + +@pulumi.input_type +class ApplicationLoadBalancerOptionsObservabilityLogsArgs: + def __init__(__self__, *, + credentials_ref: pulumi.Input[_builtins.str], + push_url: pulumi.Input[_builtins.str]): + """ + :param pulumi.Input[_builtins.str] credentials_ref: 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. + :param pulumi.Input[_builtins.str] push_url: 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. + """ + pulumi.set(__self__, "credentials_ref", credentials_ref) + pulumi.set(__self__, "push_url", push_url) + + @_builtins.property + @pulumi.getter(name="credentialsRef") + def credentials_ref(self) -> pulumi.Input[_builtins.str]: + """ + 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. + """ + return pulumi.get(self, "credentials_ref") + + @credentials_ref.setter + def credentials_ref(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "credentials_ref", value) + + @_builtins.property + @pulumi.getter(name="pushUrl") + def push_url(self) -> pulumi.Input[_builtins.str]: + """ + 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. + """ + return pulumi.get(self, "push_url") + + @push_url.setter + def push_url(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "push_url", value) + + +class ApplicationLoadBalancerOptionsObservabilityMetricsArgsDict(TypedDict): + credentials_ref: pulumi.Input[_builtins.str] + """ + 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. + """ + push_url: pulumi.Input[_builtins.str] + """ + 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. + """ + +@pulumi.input_type +class ApplicationLoadBalancerOptionsObservabilityMetricsArgs: + def __init__(__self__, *, + credentials_ref: pulumi.Input[_builtins.str], + push_url: pulumi.Input[_builtins.str]): + """ + :param pulumi.Input[_builtins.str] credentials_ref: 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. + :param pulumi.Input[_builtins.str] push_url: 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. + """ + pulumi.set(__self__, "credentials_ref", credentials_ref) + pulumi.set(__self__, "push_url", push_url) + + @_builtins.property + @pulumi.getter(name="credentialsRef") + def credentials_ref(self) -> pulumi.Input[_builtins.str]: + """ + 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. + """ + return pulumi.get(self, "credentials_ref") + + @credentials_ref.setter + def credentials_ref(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "credentials_ref", value) + + @_builtins.property + @pulumi.getter(name="pushUrl") + def push_url(self) -> pulumi.Input[_builtins.str]: + """ + 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. + """ + return pulumi.get(self, "push_url") + + @push_url.setter + def push_url(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "push_url", value) + + +class ApplicationLoadBalancerTargetPoolArgsDict(TypedDict): + name: pulumi.Input[_builtins.str] + """ + Target pool name. + """ + target_port: pulumi.Input[_builtins.int] + """ + The number identifying the port where each target listens for traffic. + """ + targets: pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerTargetPoolTargetArgsDict']]] + """ + List of all targets which will be used in the pool. Limited to 250. + """ + active_health_check: NotRequired[pulumi.Input['ApplicationLoadBalancerTargetPoolActiveHealthCheckArgsDict']] + tls_config: NotRequired[pulumi.Input['ApplicationLoadBalancerTargetPoolTlsConfigArgsDict']] + """ + Configuration for TLS bridging. + """ + +@pulumi.input_type +class ApplicationLoadBalancerTargetPoolArgs: + def __init__(__self__, *, + name: pulumi.Input[_builtins.str], + target_port: pulumi.Input[_builtins.int], + targets: pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerTargetPoolTargetArgs']]], + active_health_check: Optional[pulumi.Input['ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs']] = None, + tls_config: Optional[pulumi.Input['ApplicationLoadBalancerTargetPoolTlsConfigArgs']] = None): + """ + :param pulumi.Input[_builtins.str] name: Target pool name. + :param pulumi.Input[_builtins.int] target_port: The number identifying the port where each target listens for traffic. + :param pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerTargetPoolTargetArgs']]] targets: List of all targets which will be used in the pool. Limited to 250. + :param pulumi.Input['ApplicationLoadBalancerTargetPoolTlsConfigArgs'] tls_config: Configuration for TLS bridging. + """ + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "target_port", target_port) + pulumi.set(__self__, "targets", targets) + if active_health_check is not None: + pulumi.set(__self__, "active_health_check", active_health_check) + if tls_config is not None: + pulumi.set(__self__, "tls_config", tls_config) + + @_builtins.property + @pulumi.getter + def name(self) -> pulumi.Input[_builtins.str]: + """ + Target pool name. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "name", value) + + @_builtins.property + @pulumi.getter(name="targetPort") + def target_port(self) -> pulumi.Input[_builtins.int]: + """ + The number identifying the port where each target listens for traffic. + """ + return pulumi.get(self, "target_port") + + @target_port.setter + def target_port(self, value: pulumi.Input[_builtins.int]): + pulumi.set(self, "target_port", value) + + @_builtins.property + @pulumi.getter + def targets(self) -> pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerTargetPoolTargetArgs']]]: + """ + List of all targets which will be used in the pool. Limited to 250. + """ + return pulumi.get(self, "targets") + + @targets.setter + def targets(self, value: pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerTargetPoolTargetArgs']]]): + pulumi.set(self, "targets", value) + + @_builtins.property + @pulumi.getter(name="activeHealthCheck") + def active_health_check(self) -> Optional[pulumi.Input['ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs']]: + return pulumi.get(self, "active_health_check") + + @active_health_check.setter + def active_health_check(self, value: Optional[pulumi.Input['ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs']]): + pulumi.set(self, "active_health_check", value) + + @_builtins.property + @pulumi.getter(name="tlsConfig") + def tls_config(self) -> Optional[pulumi.Input['ApplicationLoadBalancerTargetPoolTlsConfigArgs']]: + """ + Configuration for TLS bridging. + """ + return pulumi.get(self, "tls_config") + + @tls_config.setter + def tls_config(self, value: Optional[pulumi.Input['ApplicationLoadBalancerTargetPoolTlsConfigArgs']]): + pulumi.set(self, "tls_config", value) + + +class ApplicationLoadBalancerTargetPoolActiveHealthCheckArgsDict(TypedDict): + healthy_threshold: pulumi.Input[_builtins.int] + """ + Healthy threshold of the health checking. + """ + interval: pulumi.Input[_builtins.str] + """ + Interval duration of health checking in seconds. + """ + interval_jitter: pulumi.Input[_builtins.str] + """ + Interval duration threshold of the health checking in seconds. + """ + timeout: pulumi.Input[_builtins.str] + """ + Active health checking timeout duration in seconds. + """ + unhealthy_threshold: pulumi.Input[_builtins.int] + """ + Unhealthy threshold of the health checking. + """ + http_health_checks: NotRequired[pulumi.Input['ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgsDict']] + """ + Options for the HTTP health checking. + """ + +@pulumi.input_type +class ApplicationLoadBalancerTargetPoolActiveHealthCheckArgs: + def __init__(__self__, *, + healthy_threshold: pulumi.Input[_builtins.int], + interval: pulumi.Input[_builtins.str], + interval_jitter: pulumi.Input[_builtins.str], + timeout: pulumi.Input[_builtins.str], + unhealthy_threshold: pulumi.Input[_builtins.int], + http_health_checks: Optional[pulumi.Input['ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs']] = None): + """ + :param pulumi.Input[_builtins.int] healthy_threshold: Healthy threshold of the health checking. + :param pulumi.Input[_builtins.str] interval: Interval duration of health checking in seconds. + :param pulumi.Input[_builtins.str] interval_jitter: Interval duration threshold of the health checking in seconds. + :param pulumi.Input[_builtins.str] timeout: Active health checking timeout duration in seconds. + :param pulumi.Input[_builtins.int] unhealthy_threshold: Unhealthy threshold of the health checking. + :param pulumi.Input['ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs'] http_health_checks: Options for the HTTP health checking. + """ + pulumi.set(__self__, "healthy_threshold", healthy_threshold) + pulumi.set(__self__, "interval", interval) + pulumi.set(__self__, "interval_jitter", interval_jitter) + pulumi.set(__self__, "timeout", timeout) + pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + if http_health_checks is not None: + pulumi.set(__self__, "http_health_checks", http_health_checks) + + @_builtins.property + @pulumi.getter(name="healthyThreshold") + def healthy_threshold(self) -> pulumi.Input[_builtins.int]: + """ + Healthy threshold of the health checking. + """ + return pulumi.get(self, "healthy_threshold") + + @healthy_threshold.setter + def healthy_threshold(self, value: pulumi.Input[_builtins.int]): + pulumi.set(self, "healthy_threshold", value) + + @_builtins.property + @pulumi.getter + def interval(self) -> pulumi.Input[_builtins.str]: + """ + Interval duration of health checking in seconds. + """ + return pulumi.get(self, "interval") + + @interval.setter + def interval(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "interval", value) + + @_builtins.property + @pulumi.getter(name="intervalJitter") + def interval_jitter(self) -> pulumi.Input[_builtins.str]: + """ + Interval duration threshold of the health checking in seconds. + """ + return pulumi.get(self, "interval_jitter") + + @interval_jitter.setter + def interval_jitter(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "interval_jitter", value) + + @_builtins.property + @pulumi.getter + def timeout(self) -> pulumi.Input[_builtins.str]: + """ + Active health checking timeout duration in seconds. + """ + return pulumi.get(self, "timeout") + + @timeout.setter + def timeout(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "timeout", value) + + @_builtins.property + @pulumi.getter(name="unhealthyThreshold") + def unhealthy_threshold(self) -> pulumi.Input[_builtins.int]: + """ + Unhealthy threshold of the health checking. + """ + return pulumi.get(self, "unhealthy_threshold") + + @unhealthy_threshold.setter + def unhealthy_threshold(self, value: pulumi.Input[_builtins.int]): + pulumi.set(self, "unhealthy_threshold", value) + + @_builtins.property + @pulumi.getter(name="httpHealthChecks") + def http_health_checks(self) -> Optional[pulumi.Input['ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs']]: + """ + Options for the HTTP health checking. + """ + return pulumi.get(self, "http_health_checks") + + @http_health_checks.setter + def http_health_checks(self, value: Optional[pulumi.Input['ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs']]): + pulumi.set(self, "http_health_checks", value) + + +class ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgsDict(TypedDict): + ok_statuses: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] + """ + List of HTTP status codes that indicate a healthy response. + """ + path: pulumi.Input[_builtins.str] + """ + Path to send the health check request to. + """ + +@pulumi.input_type +class ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs: + def __init__(__self__, *, + ok_statuses: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]], + path: pulumi.Input[_builtins.str]): + """ + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ok_statuses: List of HTTP status codes that indicate a healthy response. + :param pulumi.Input[_builtins.str] path: Path to send the health check request to. + """ + pulumi.set(__self__, "ok_statuses", ok_statuses) + pulumi.set(__self__, "path", path) + + @_builtins.property + @pulumi.getter(name="okStatuses") + def ok_statuses(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]: + """ + List of HTTP status codes that indicate a healthy response. + """ + return pulumi.get(self, "ok_statuses") + + @ok_statuses.setter + def ok_statuses(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]): + pulumi.set(self, "ok_statuses", value) + + @_builtins.property + @pulumi.getter + def path(self) -> pulumi.Input[_builtins.str]: + """ + Path to send the health check request to. + """ + return pulumi.get(self, "path") + + @path.setter + def path(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "path", value) + + +class ApplicationLoadBalancerTargetPoolTargetArgsDict(TypedDict): + ip: pulumi.Input[_builtins.str] + """ + Private target IP, which must by unique within a target pool. + """ + display_name: NotRequired[pulumi.Input[_builtins.str]] + """ + Target display name + """ + +@pulumi.input_type +class ApplicationLoadBalancerTargetPoolTargetArgs: + def __init__(__self__, *, + ip: pulumi.Input[_builtins.str], + display_name: Optional[pulumi.Input[_builtins.str]] = None): + """ + :param pulumi.Input[_builtins.str] ip: Private target IP, which must by unique within a target pool. + :param pulumi.Input[_builtins.str] display_name: Target display name + """ + pulumi.set(__self__, "ip", ip) + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + + @_builtins.property + @pulumi.getter + def ip(self) -> pulumi.Input[_builtins.str]: + """ + Private target IP, which must by unique within a target pool. + """ + return pulumi.get(self, "ip") + + @ip.setter + def ip(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "ip", value) + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Target display name + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "display_name", value) + + +class ApplicationLoadBalancerTargetPoolTlsConfigArgsDict(TypedDict): + custom_ca: NotRequired[pulumi.Input[_builtins.str]] + """ + 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. + """ + enabled: NotRequired[pulumi.Input[_builtins.bool]] + """ + 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. + """ + skip_certificate_validation: NotRequired[pulumi.Input[_builtins.bool]] + """ + 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! + """ + +@pulumi.input_type +class ApplicationLoadBalancerTargetPoolTlsConfigArgs: + def __init__(__self__, *, + custom_ca: Optional[pulumi.Input[_builtins.str]] = None, + enabled: Optional[pulumi.Input[_builtins.bool]] = None, + skip_certificate_validation: Optional[pulumi.Input[_builtins.bool]] = None): + """ + :param pulumi.Input[_builtins.str] custom_ca: 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. + :param pulumi.Input[_builtins.bool] enabled: 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. + :param pulumi.Input[_builtins.bool] skip_certificate_validation: 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! + """ + if custom_ca is not None: + pulumi.set(__self__, "custom_ca", custom_ca) + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if skip_certificate_validation is not None: + pulumi.set(__self__, "skip_certificate_validation", skip_certificate_validation) + + @_builtins.property + @pulumi.getter(name="customCa") + def custom_ca(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + 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. + """ + return pulumi.get(self, "custom_ca") + + @custom_ca.setter + def custom_ca(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "custom_ca", value) + + @_builtins.property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[_builtins.bool]]: + """ + 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. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[_builtins.bool]]): + pulumi.set(self, "enabled", value) + + @_builtins.property + @pulumi.getter(name="skipCertificateValidation") + def skip_certificate_validation(self) -> Optional[pulumi.Input[_builtins.bool]]: + """ + 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! + """ + return pulumi.get(self, "skip_certificate_validation") + + @skip_certificate_validation.setter + def skip_certificate_validation(self, value: Optional[pulumi.Input[_builtins.bool]]): + pulumi.set(self, "skip_certificate_validation", value) + + +class ApplicationLoadBalancerTargetSecurityGroupArgsDict(TypedDict): + id: NotRequired[pulumi.Input[_builtins.str]] + """ + ID of the security Group + """ + name: NotRequired[pulumi.Input[_builtins.str]] + """ + Name of the security Group + """ + +@pulumi.input_type +class ApplicationLoadBalancerTargetSecurityGroupArgs: + def __init__(__self__, *, + id: Optional[pulumi.Input[_builtins.str]] = None, + name: Optional[pulumi.Input[_builtins.str]] = None): + """ + :param pulumi.Input[_builtins.str] id: ID of the security Group + :param pulumi.Input[_builtins.str] name: Name of the security Group + """ + if id is not None: + pulumi.set(__self__, "id", id) + if name is not None: + pulumi.set(__self__, "name", name) + + @_builtins.property + @pulumi.getter + def id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + ID of the security Group + """ + return pulumi.get(self, "id") + + @id.setter + def id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "id", value) + + @_builtins.property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Name of the security Group + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "name", value) + + class CdnCustomDomainCertificateArgsDict(TypedDict): certificate: NotRequired[pulumi.Input[_builtins.str]] """ diff --git a/sdk/python/pulumi_stackit/application_load_balancer.py b/sdk/python/pulumi_stackit/application_load_balancer.py new file mode 100644 index 0000000..38e389d --- /dev/null +++ b/sdk/python/pulumi_stackit/application_load_balancer.py @@ -0,0 +1,772 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['ApplicationLoadBalancerArgs', 'ApplicationLoadBalancer'] + +@pulumi.input_type +class ApplicationLoadBalancerArgs: + def __init__(__self__, *, + listeners: pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerArgs']]], + networks: pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerNetworkArgs']]], + plan_id: pulumi.Input[_builtins.str], + project_id: pulumi.Input[_builtins.str], + target_pools: pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerTargetPoolArgs']]], + disable_target_security_group_assignment: Optional[pulumi.Input[_builtins.bool]] = None, + external_address: Optional[pulumi.Input[_builtins.str]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None, + name: Optional[pulumi.Input[_builtins.str]] = None, + options: Optional[pulumi.Input['ApplicationLoadBalancerOptionsArgs']] = None, + region: Optional[pulumi.Input[_builtins.str]] = None): + """ + The set of arguments for constructing a ApplicationLoadBalancer resource. + + :param pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerArgs']]] listeners: List of all listeners which will accept traffic. Limited to 20. + :param pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerNetworkArgs']]] networks: List of networks that listeners and targets reside in. + :param pulumi.Input[_builtins.str] plan_id: 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 + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the Application Load Balancer is associated. + :param pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerTargetPoolArgs']]] target_pools: List of all target pools which will be used in the Application Load Balancer. Limited to 20. + :param pulumi.Input[_builtins.bool] disable_target_security_group_assignment: 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. + :param pulumi.Input[_builtins.str] external_address: The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + :param pulumi.Input[_builtins.str] name: Application Load balancer name. + :param pulumi.Input['ApplicationLoadBalancerOptionsArgs'] options: Defines any optional functionality you want to have enabled on your Application Load Balancer. + :param pulumi.Input[_builtins.str] region: The resource region (e.g. eu01). If not defined, the provider region is used. + """ + pulumi.set(__self__, "listeners", listeners) + pulumi.set(__self__, "networks", networks) + pulumi.set(__self__, "plan_id", plan_id) + pulumi.set(__self__, "project_id", project_id) + pulumi.set(__self__, "target_pools", target_pools) + if disable_target_security_group_assignment is not None: + pulumi.set(__self__, "disable_target_security_group_assignment", disable_target_security_group_assignment) + if external_address is not None: + pulumi.set(__self__, "external_address", external_address) + if labels is not None: + pulumi.set(__self__, "labels", labels) + if name is not None: + pulumi.set(__self__, "name", name) + if options is not None: + pulumi.set(__self__, "options", options) + if region is not None: + pulumi.set(__self__, "region", region) + + @_builtins.property + @pulumi.getter + def listeners(self) -> pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerArgs']]]: + """ + List of all listeners which will accept traffic. Limited to 20. + """ + return pulumi.get(self, "listeners") + + @listeners.setter + def listeners(self, value: pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerArgs']]]): + pulumi.set(self, "listeners", value) + + @_builtins.property + @pulumi.getter + def networks(self) -> pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerNetworkArgs']]]: + """ + List of networks that listeners and targets reside in. + """ + return pulumi.get(self, "networks") + + @networks.setter + def networks(self, value: pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerNetworkArgs']]]): + pulumi.set(self, "networks", value) + + @_builtins.property + @pulumi.getter(name="planId") + def plan_id(self) -> pulumi.Input[_builtins.str]: + """ + 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 + """ + return pulumi.get(self, "plan_id") + + @plan_id.setter + def plan_id(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "plan_id", value) + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Input[_builtins.str]: + """ + STACKIT project ID to which the Application Load Balancer is associated. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "project_id", value) + + @_builtins.property + @pulumi.getter(name="targetPools") + def target_pools(self) -> pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerTargetPoolArgs']]]: + """ + List of all target pools which will be used in the Application Load Balancer. Limited to 20. + """ + return pulumi.get(self, "target_pools") + + @target_pools.setter + def target_pools(self, value: pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerTargetPoolArgs']]]): + pulumi.set(self, "target_pools", value) + + @_builtins.property + @pulumi.getter(name="disableTargetSecurityGroupAssignment") + def disable_target_security_group_assignment(self) -> Optional[pulumi.Input[_builtins.bool]]: + """ + 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. + """ + return pulumi.get(self, "disable_target_security_group_assignment") + + @disable_target_security_group_assignment.setter + def disable_target_security_group_assignment(self, value: Optional[pulumi.Input[_builtins.bool]]): + pulumi.set(self, "disable_target_security_group_assignment", value) + + @_builtins.property + @pulumi.getter(name="externalAddress") + def external_address(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + """ + return pulumi.get(self, "external_address") + + @external_address.setter + def external_address(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "external_address", value) + + @_builtins.property + @pulumi.getter + def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]: + """ + Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + """ + return pulumi.get(self, "labels") + + @labels.setter + def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]): + pulumi.set(self, "labels", value) + + @_builtins.property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Application Load balancer name. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "name", value) + + @_builtins.property + @pulumi.getter + def options(self) -> Optional[pulumi.Input['ApplicationLoadBalancerOptionsArgs']]: + """ + Defines any optional functionality you want to have enabled on your Application Load Balancer. + """ + return pulumi.get(self, "options") + + @options.setter + def options(self, value: Optional[pulumi.Input['ApplicationLoadBalancerOptionsArgs']]): + pulumi.set(self, "options", value) + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The resource region (e.g. eu01). If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "region", value) + + +@pulumi.input_type +class _ApplicationLoadBalancerState: + def __init__(__self__, *, + disable_target_security_group_assignment: Optional[pulumi.Input[_builtins.bool]] = None, + errors: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerErrorArgs']]]] = None, + external_address: Optional[pulumi.Input[_builtins.str]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None, + listeners: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerArgs']]]] = None, + load_balancer_security_group: Optional[pulumi.Input['ApplicationLoadBalancerLoadBalancerSecurityGroupArgs']] = None, + name: Optional[pulumi.Input[_builtins.str]] = None, + networks: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerNetworkArgs']]]] = None, + options: Optional[pulumi.Input['ApplicationLoadBalancerOptionsArgs']] = None, + plan_id: Optional[pulumi.Input[_builtins.str]] = None, + private_address: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + target_pools: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerTargetPoolArgs']]]] = None, + target_security_group: Optional[pulumi.Input['ApplicationLoadBalancerTargetSecurityGroupArgs']] = None, + version: Optional[pulumi.Input[_builtins.str]] = None): + """ + Input properties used for looking up and filtering ApplicationLoadBalancer resources. + + :param pulumi.Input[_builtins.bool] disable_target_security_group_assignment: 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. + :param pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerErrorArgs']]] errors: Reports all errors a Application Load Balancer has. + :param pulumi.Input[_builtins.str] external_address: The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + :param pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerArgs']]] listeners: List of all listeners which will accept traffic. Limited to 20. + :param pulumi.Input['ApplicationLoadBalancerLoadBalancerSecurityGroupArgs'] load_balancer_security_group: Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + :param pulumi.Input[_builtins.str] name: Application Load balancer name. + :param pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerNetworkArgs']]] networks: List of networks that listeners and targets reside in. + :param pulumi.Input['ApplicationLoadBalancerOptionsArgs'] options: Defines any optional functionality you want to have enabled on your Application Load Balancer. + :param pulumi.Input[_builtins.str] plan_id: 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 + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the Application Load Balancer is associated. + :param pulumi.Input[_builtins.str] region: The resource region (e.g. eu01). If not defined, the provider region is used. + :param pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerTargetPoolArgs']]] target_pools: List of all target pools which will be used in the Application Load Balancer. Limited to 20. + :param pulumi.Input['ApplicationLoadBalancerTargetSecurityGroupArgs'] target_security_group: Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + :param pulumi.Input[_builtins.str] version: Application Load Balancer resource version. Used for concurrency safe updates. + """ + if disable_target_security_group_assignment is not None: + pulumi.set(__self__, "disable_target_security_group_assignment", disable_target_security_group_assignment) + if errors is not None: + pulumi.set(__self__, "errors", errors) + if external_address is not None: + pulumi.set(__self__, "external_address", external_address) + if labels is not None: + pulumi.set(__self__, "labels", labels) + if listeners is not None: + pulumi.set(__self__, "listeners", listeners) + if load_balancer_security_group is not None: + pulumi.set(__self__, "load_balancer_security_group", load_balancer_security_group) + if name is not None: + pulumi.set(__self__, "name", name) + if networks is not None: + pulumi.set(__self__, "networks", networks) + if options is not None: + pulumi.set(__self__, "options", options) + if plan_id is not None: + pulumi.set(__self__, "plan_id", plan_id) + if private_address is not None: + pulumi.set(__self__, "private_address", private_address) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + if region is not None: + pulumi.set(__self__, "region", region) + if target_pools is not None: + pulumi.set(__self__, "target_pools", target_pools) + if target_security_group is not None: + pulumi.set(__self__, "target_security_group", target_security_group) + if version is not None: + pulumi.set(__self__, "version", version) + + @_builtins.property + @pulumi.getter(name="disableTargetSecurityGroupAssignment") + def disable_target_security_group_assignment(self) -> Optional[pulumi.Input[_builtins.bool]]: + """ + 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. + """ + return pulumi.get(self, "disable_target_security_group_assignment") + + @disable_target_security_group_assignment.setter + def disable_target_security_group_assignment(self, value: Optional[pulumi.Input[_builtins.bool]]): + pulumi.set(self, "disable_target_security_group_assignment", value) + + @_builtins.property + @pulumi.getter + def errors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerErrorArgs']]]]: + """ + Reports all errors a Application Load Balancer has. + """ + return pulumi.get(self, "errors") + + @errors.setter + def errors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerErrorArgs']]]]): + pulumi.set(self, "errors", value) + + @_builtins.property + @pulumi.getter(name="externalAddress") + def external_address(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + """ + return pulumi.get(self, "external_address") + + @external_address.setter + def external_address(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "external_address", value) + + @_builtins.property + @pulumi.getter + def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]: + """ + Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + """ + return pulumi.get(self, "labels") + + @labels.setter + def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]): + pulumi.set(self, "labels", value) + + @_builtins.property + @pulumi.getter + def listeners(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerArgs']]]]: + """ + List of all listeners which will accept traffic. Limited to 20. + """ + return pulumi.get(self, "listeners") + + @listeners.setter + def listeners(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerListenerArgs']]]]): + pulumi.set(self, "listeners", value) + + @_builtins.property + @pulumi.getter(name="loadBalancerSecurityGroup") + def load_balancer_security_group(self) -> Optional[pulumi.Input['ApplicationLoadBalancerLoadBalancerSecurityGroupArgs']]: + """ + Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + """ + return pulumi.get(self, "load_balancer_security_group") + + @load_balancer_security_group.setter + def load_balancer_security_group(self, value: Optional[pulumi.Input['ApplicationLoadBalancerLoadBalancerSecurityGroupArgs']]): + pulumi.set(self, "load_balancer_security_group", value) + + @_builtins.property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Application Load balancer name. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "name", value) + + @_builtins.property + @pulumi.getter + def networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerNetworkArgs']]]]: + """ + List of networks that listeners and targets reside in. + """ + return pulumi.get(self, "networks") + + @networks.setter + def networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerNetworkArgs']]]]): + pulumi.set(self, "networks", value) + + @_builtins.property + @pulumi.getter + def options(self) -> Optional[pulumi.Input['ApplicationLoadBalancerOptionsArgs']]: + """ + Defines any optional functionality you want to have enabled on your Application Load Balancer. + """ + return pulumi.get(self, "options") + + @options.setter + def options(self, value: Optional[pulumi.Input['ApplicationLoadBalancerOptionsArgs']]): + pulumi.set(self, "options", value) + + @_builtins.property + @pulumi.getter(name="planId") + def plan_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + 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 + """ + return pulumi.get(self, "plan_id") + + @plan_id.setter + def plan_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "plan_id", value) + + @_builtins.property + @pulumi.getter(name="privateAddress") + def private_address(self) -> Optional[pulumi.Input[_builtins.str]]: + return pulumi.get(self, "private_address") + + @private_address.setter + def private_address(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "private_address", value) + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + STACKIT project ID to which the Application Load Balancer is associated. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "project_id", value) + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The resource region (e.g. eu01). If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "region", value) + + @_builtins.property + @pulumi.getter(name="targetPools") + def target_pools(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerTargetPoolArgs']]]]: + """ + List of all target pools which will be used in the Application Load Balancer. Limited to 20. + """ + return pulumi.get(self, "target_pools") + + @target_pools.setter + def target_pools(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationLoadBalancerTargetPoolArgs']]]]): + pulumi.set(self, "target_pools", value) + + @_builtins.property + @pulumi.getter(name="targetSecurityGroup") + def target_security_group(self) -> Optional[pulumi.Input['ApplicationLoadBalancerTargetSecurityGroupArgs']]: + """ + Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + """ + return pulumi.get(self, "target_security_group") + + @target_security_group.setter + def target_security_group(self, value: Optional[pulumi.Input['ApplicationLoadBalancerTargetSecurityGroupArgs']]): + pulumi.set(self, "target_security_group", value) + + @_builtins.property + @pulumi.getter + def version(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Application Load Balancer resource version. Used for concurrency safe updates. + """ + return pulumi.get(self, "version") + + @version.setter + def version(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "version", value) + + +@pulumi.type_token("stackit:index/applicationLoadBalancer:ApplicationLoadBalancer") +class ApplicationLoadBalancer(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + disable_target_security_group_assignment: Optional[pulumi.Input[_builtins.bool]] = None, + external_address: Optional[pulumi.Input[_builtins.str]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None, + listeners: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApplicationLoadBalancerListenerArgs', 'ApplicationLoadBalancerListenerArgsDict']]]]] = None, + name: Optional[pulumi.Input[_builtins.str]] = None, + networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApplicationLoadBalancerNetworkArgs', 'ApplicationLoadBalancerNetworkArgsDict']]]]] = None, + options: Optional[pulumi.Input[Union['ApplicationLoadBalancerOptionsArgs', 'ApplicationLoadBalancerOptionsArgsDict']]] = None, + plan_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + target_pools: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApplicationLoadBalancerTargetPoolArgs', 'ApplicationLoadBalancerTargetPoolArgsDict']]]]] = None, + __props__=None): + """ + ## 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 + + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.bool] disable_target_security_group_assignment: 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. + :param pulumi.Input[_builtins.str] external_address: The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + :param pulumi.Input[Sequence[pulumi.Input[Union['ApplicationLoadBalancerListenerArgs', 'ApplicationLoadBalancerListenerArgsDict']]]] listeners: List of all listeners which will accept traffic. Limited to 20. + :param pulumi.Input[_builtins.str] name: Application Load balancer name. + :param pulumi.Input[Sequence[pulumi.Input[Union['ApplicationLoadBalancerNetworkArgs', 'ApplicationLoadBalancerNetworkArgsDict']]]] networks: List of networks that listeners and targets reside in. + :param pulumi.Input[Union['ApplicationLoadBalancerOptionsArgs', 'ApplicationLoadBalancerOptionsArgsDict']] options: Defines any optional functionality you want to have enabled on your Application Load Balancer. + :param pulumi.Input[_builtins.str] plan_id: 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 + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the Application Load Balancer is associated. + :param pulumi.Input[_builtins.str] region: The resource region (e.g. eu01). If not defined, the provider region is used. + :param pulumi.Input[Sequence[pulumi.Input[Union['ApplicationLoadBalancerTargetPoolArgs', 'ApplicationLoadBalancerTargetPoolArgsDict']]]] target_pools: List of all target pools which will be used in the Application Load Balancer. Limited to 20. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ApplicationLoadBalancerArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## 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 + + + :param str resource_name: The name of the resource. + :param ApplicationLoadBalancerArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ApplicationLoadBalancerArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + disable_target_security_group_assignment: Optional[pulumi.Input[_builtins.bool]] = None, + external_address: Optional[pulumi.Input[_builtins.str]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None, + listeners: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApplicationLoadBalancerListenerArgs', 'ApplicationLoadBalancerListenerArgsDict']]]]] = None, + name: Optional[pulumi.Input[_builtins.str]] = None, + networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApplicationLoadBalancerNetworkArgs', 'ApplicationLoadBalancerNetworkArgsDict']]]]] = None, + options: Optional[pulumi.Input[Union['ApplicationLoadBalancerOptionsArgs', 'ApplicationLoadBalancerOptionsArgsDict']]] = None, + plan_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + target_pools: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApplicationLoadBalancerTargetPoolArgs', 'ApplicationLoadBalancerTargetPoolArgsDict']]]]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ApplicationLoadBalancerArgs.__new__(ApplicationLoadBalancerArgs) + + __props__.__dict__["disable_target_security_group_assignment"] = disable_target_security_group_assignment + __props__.__dict__["external_address"] = external_address + __props__.__dict__["labels"] = labels + if listeners is None and not opts.urn: + raise TypeError("Missing required property 'listeners'") + __props__.__dict__["listeners"] = listeners + __props__.__dict__["name"] = name + if networks is None and not opts.urn: + raise TypeError("Missing required property 'networks'") + __props__.__dict__["networks"] = networks + __props__.__dict__["options"] = options + if plan_id is None and not opts.urn: + raise TypeError("Missing required property 'plan_id'") + __props__.__dict__["plan_id"] = plan_id + if project_id is None and not opts.urn: + raise TypeError("Missing required property 'project_id'") + __props__.__dict__["project_id"] = project_id + __props__.__dict__["region"] = region + if target_pools is None and not opts.urn: + raise TypeError("Missing required property 'target_pools'") + __props__.__dict__["target_pools"] = target_pools + __props__.__dict__["errors"] = None + __props__.__dict__["load_balancer_security_group"] = None + __props__.__dict__["private_address"] = None + __props__.__dict__["target_security_group"] = None + __props__.__dict__["version"] = None + super(ApplicationLoadBalancer, __self__).__init__( + 'stackit:index/applicationLoadBalancer:ApplicationLoadBalancer', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + disable_target_security_group_assignment: Optional[pulumi.Input[_builtins.bool]] = None, + errors: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApplicationLoadBalancerErrorArgs', 'ApplicationLoadBalancerErrorArgsDict']]]]] = None, + external_address: Optional[pulumi.Input[_builtins.str]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None, + listeners: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApplicationLoadBalancerListenerArgs', 'ApplicationLoadBalancerListenerArgsDict']]]]] = None, + load_balancer_security_group: Optional[pulumi.Input[Union['ApplicationLoadBalancerLoadBalancerSecurityGroupArgs', 'ApplicationLoadBalancerLoadBalancerSecurityGroupArgsDict']]] = None, + name: Optional[pulumi.Input[_builtins.str]] = None, + networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApplicationLoadBalancerNetworkArgs', 'ApplicationLoadBalancerNetworkArgsDict']]]]] = None, + options: Optional[pulumi.Input[Union['ApplicationLoadBalancerOptionsArgs', 'ApplicationLoadBalancerOptionsArgsDict']]] = None, + plan_id: Optional[pulumi.Input[_builtins.str]] = None, + private_address: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + target_pools: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApplicationLoadBalancerTargetPoolArgs', 'ApplicationLoadBalancerTargetPoolArgsDict']]]]] = None, + target_security_group: Optional[pulumi.Input[Union['ApplicationLoadBalancerTargetSecurityGroupArgs', 'ApplicationLoadBalancerTargetSecurityGroupArgsDict']]] = None, + version: Optional[pulumi.Input[_builtins.str]] = None) -> 'ApplicationLoadBalancer': + """ + Get an existing ApplicationLoadBalancer resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.bool] disable_target_security_group_assignment: 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. + :param pulumi.Input[Sequence[pulumi.Input[Union['ApplicationLoadBalancerErrorArgs', 'ApplicationLoadBalancerErrorArgsDict']]]] errors: Reports all errors a Application Load Balancer has. + :param pulumi.Input[_builtins.str] external_address: The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + :param pulumi.Input[Sequence[pulumi.Input[Union['ApplicationLoadBalancerListenerArgs', 'ApplicationLoadBalancerListenerArgsDict']]]] listeners: List of all listeners which will accept traffic. Limited to 20. + :param pulumi.Input[Union['ApplicationLoadBalancerLoadBalancerSecurityGroupArgs', 'ApplicationLoadBalancerLoadBalancerSecurityGroupArgsDict']] load_balancer_security_group: Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + :param pulumi.Input[_builtins.str] name: Application Load balancer name. + :param pulumi.Input[Sequence[pulumi.Input[Union['ApplicationLoadBalancerNetworkArgs', 'ApplicationLoadBalancerNetworkArgsDict']]]] networks: List of networks that listeners and targets reside in. + :param pulumi.Input[Union['ApplicationLoadBalancerOptionsArgs', 'ApplicationLoadBalancerOptionsArgsDict']] options: Defines any optional functionality you want to have enabled on your Application Load Balancer. + :param pulumi.Input[_builtins.str] plan_id: 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 + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the Application Load Balancer is associated. + :param pulumi.Input[_builtins.str] region: The resource region (e.g. eu01). If not defined, the provider region is used. + :param pulumi.Input[Sequence[pulumi.Input[Union['ApplicationLoadBalancerTargetPoolArgs', 'ApplicationLoadBalancerTargetPoolArgsDict']]]] target_pools: List of all target pools which will be used in the Application Load Balancer. Limited to 20. + :param pulumi.Input[Union['ApplicationLoadBalancerTargetSecurityGroupArgs', 'ApplicationLoadBalancerTargetSecurityGroupArgsDict']] target_security_group: Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + :param pulumi.Input[_builtins.str] version: Application Load Balancer resource version. Used for concurrency safe updates. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ApplicationLoadBalancerState.__new__(_ApplicationLoadBalancerState) + + __props__.__dict__["disable_target_security_group_assignment"] = disable_target_security_group_assignment + __props__.__dict__["errors"] = errors + __props__.__dict__["external_address"] = external_address + __props__.__dict__["labels"] = labels + __props__.__dict__["listeners"] = listeners + __props__.__dict__["load_balancer_security_group"] = load_balancer_security_group + __props__.__dict__["name"] = name + __props__.__dict__["networks"] = networks + __props__.__dict__["options"] = options + __props__.__dict__["plan_id"] = plan_id + __props__.__dict__["private_address"] = private_address + __props__.__dict__["project_id"] = project_id + __props__.__dict__["region"] = region + __props__.__dict__["target_pools"] = target_pools + __props__.__dict__["target_security_group"] = target_security_group + __props__.__dict__["version"] = version + return ApplicationLoadBalancer(resource_name, opts=opts, __props__=__props__) + + @_builtins.property + @pulumi.getter(name="disableTargetSecurityGroupAssignment") + def disable_target_security_group_assignment(self) -> pulumi.Output[_builtins.bool]: + """ + 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. + """ + return pulumi.get(self, "disable_target_security_group_assignment") + + @_builtins.property + @pulumi.getter + def errors(self) -> pulumi.Output[Sequence['outputs.ApplicationLoadBalancerError']]: + """ + Reports all errors a Application Load Balancer has. + """ + return pulumi.get(self, "errors") + + @_builtins.property + @pulumi.getter(name="externalAddress") + def external_address(self) -> pulumi.Output[_builtins.str]: + """ + The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + """ + return pulumi.get(self, "external_address") + + @_builtins.property + @pulumi.getter + def labels(self) -> pulumi.Output[Optional[Mapping[str, _builtins.str]]]: + """ + Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + """ + return pulumi.get(self, "labels") + + @_builtins.property + @pulumi.getter + def listeners(self) -> pulumi.Output[Sequence['outputs.ApplicationLoadBalancerListener']]: + """ + List of all listeners which will accept traffic. Limited to 20. + """ + return pulumi.get(self, "listeners") + + @_builtins.property + @pulumi.getter(name="loadBalancerSecurityGroup") + def load_balancer_security_group(self) -> pulumi.Output['outputs.ApplicationLoadBalancerLoadBalancerSecurityGroup']: + """ + Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + """ + return pulumi.get(self, "load_balancer_security_group") + + @_builtins.property + @pulumi.getter + def name(self) -> pulumi.Output[_builtins.str]: + """ + Application Load balancer name. + """ + return pulumi.get(self, "name") + + @_builtins.property + @pulumi.getter + def networks(self) -> pulumi.Output[Sequence['outputs.ApplicationLoadBalancerNetwork']]: + """ + List of networks that listeners and targets reside in. + """ + return pulumi.get(self, "networks") + + @_builtins.property + @pulumi.getter + def options(self) -> pulumi.Output[Optional['outputs.ApplicationLoadBalancerOptions']]: + """ + Defines any optional functionality you want to have enabled on your Application Load Balancer. + """ + return pulumi.get(self, "options") + + @_builtins.property + @pulumi.getter(name="planId") + def plan_id(self) -> pulumi.Output[_builtins.str]: + """ + 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 + """ + return pulumi.get(self, "plan_id") + + @_builtins.property + @pulumi.getter(name="privateAddress") + def private_address(self) -> pulumi.Output[_builtins.str]: + return pulumi.get(self, "private_address") + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Output[_builtins.str]: + """ + STACKIT project ID to which the Application Load Balancer is associated. + """ + return pulumi.get(self, "project_id") + + @_builtins.property + @pulumi.getter + def region(self) -> pulumi.Output[_builtins.str]: + """ + The resource region (e.g. eu01). If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @_builtins.property + @pulumi.getter(name="targetPools") + def target_pools(self) -> pulumi.Output[Sequence['outputs.ApplicationLoadBalancerTargetPool']]: + """ + List of all target pools which will be used in the Application Load Balancer. Limited to 20. + """ + return pulumi.get(self, "target_pools") + + @_builtins.property + @pulumi.getter(name="targetSecurityGroup") + def target_security_group(self) -> pulumi.Output['outputs.ApplicationLoadBalancerTargetSecurityGroup']: + """ + Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + """ + return pulumi.get(self, "target_security_group") + + @_builtins.property + @pulumi.getter + def version(self) -> pulumi.Output[_builtins.str]: + """ + Application Load Balancer resource version. Used for concurrency safe updates. + """ + return pulumi.get(self, "version") + diff --git a/sdk/python/pulumi_stackit/config/__init__.pyi b/sdk/python/pulumi_stackit/config/__init__.pyi index af9e1fd..8c55666 100644 --- a/sdk/python/pulumi_stackit/config/__init__.pyi +++ b/sdk/python/pulumi_stackit/config/__init__.pyi @@ -14,6 +14,11 @@ else: from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities +albCustomEndpoint: Optional[str] +""" +Custom endpoint for the Application Load Balancer service +""" + authorizationCustomEndpoint: Optional[str] """ Custom endpoint for the Membership service diff --git a/sdk/python/pulumi_stackit/config/vars.py b/sdk/python/pulumi_stackit/config/vars.py index 11888a2..793e1b8 100644 --- a/sdk/python/pulumi_stackit/config/vars.py +++ b/sdk/python/pulumi_stackit/config/vars.py @@ -20,6 +20,13 @@ class _ExportableConfig(types.ModuleType): + @_builtins.property + def alb_custom_endpoint(self) -> Optional[str]: + """ + Custom endpoint for the Application Load Balancer service + """ + return __config__.get('albCustomEndpoint') + @_builtins.property def authorization_custom_endpoint(self) -> Optional[str]: """ diff --git a/sdk/python/pulumi_stackit/get_application_load_balancer.py b/sdk/python/pulumi_stackit/get_application_load_balancer.py new file mode 100644 index 0000000..f1e7252 --- /dev/null +++ b/sdk/python/pulumi_stackit/get_application_load_balancer.py @@ -0,0 +1,312 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities +from . import outputs + +__all__ = [ + 'GetApplicationLoadBalancerResult', + 'AwaitableGetApplicationLoadBalancerResult', + 'get_application_load_balancer', + 'get_application_load_balancer_output', +] + +@pulumi.output_type +class GetApplicationLoadBalancerResult: + """ + A collection of values returned by getApplicationLoadBalancer. + """ + def __init__(__self__, disable_target_security_group_assignment=None, errors=None, external_address=None, id=None, labels=None, listeners=None, load_balancer_security_group=None, name=None, networks=None, options=None, plan_id=None, private_address=None, project_id=None, region=None, target_pools=None, target_security_group=None, version=None): + if disable_target_security_group_assignment and not isinstance(disable_target_security_group_assignment, bool): + raise TypeError("Expected argument 'disable_target_security_group_assignment' to be a bool") + pulumi.set(__self__, "disable_target_security_group_assignment", disable_target_security_group_assignment) + if errors and not isinstance(errors, list): + raise TypeError("Expected argument 'errors' to be a list") + pulumi.set(__self__, "errors", errors) + if external_address and not isinstance(external_address, str): + raise TypeError("Expected argument 'external_address' to be a str") + pulumi.set(__self__, "external_address", external_address) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if labels and not isinstance(labels, dict): + raise TypeError("Expected argument 'labels' to be a dict") + pulumi.set(__self__, "labels", labels) + if listeners and not isinstance(listeners, list): + raise TypeError("Expected argument 'listeners' to be a list") + pulumi.set(__self__, "listeners", listeners) + if load_balancer_security_group and not isinstance(load_balancer_security_group, dict): + raise TypeError("Expected argument 'load_balancer_security_group' to be a dict") + pulumi.set(__self__, "load_balancer_security_group", load_balancer_security_group) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if networks and not isinstance(networks, list): + raise TypeError("Expected argument 'networks' to be a list") + pulumi.set(__self__, "networks", networks) + if options and not isinstance(options, dict): + raise TypeError("Expected argument 'options' to be a dict") + pulumi.set(__self__, "options", options) + if plan_id and not isinstance(plan_id, str): + raise TypeError("Expected argument 'plan_id' to be a str") + pulumi.set(__self__, "plan_id", plan_id) + if private_address and not isinstance(private_address, str): + raise TypeError("Expected argument 'private_address' to be a str") + pulumi.set(__self__, "private_address", private_address) + if project_id and not isinstance(project_id, str): + raise TypeError("Expected argument 'project_id' to be a str") + pulumi.set(__self__, "project_id", project_id) + if region and not isinstance(region, str): + raise TypeError("Expected argument 'region' to be a str") + pulumi.set(__self__, "region", region) + if target_pools and not isinstance(target_pools, list): + raise TypeError("Expected argument 'target_pools' to be a list") + pulumi.set(__self__, "target_pools", target_pools) + if target_security_group and not isinstance(target_security_group, dict): + raise TypeError("Expected argument 'target_security_group' to be a dict") + pulumi.set(__self__, "target_security_group", target_security_group) + if version and not isinstance(version, str): + raise TypeError("Expected argument 'version' to be a str") + pulumi.set(__self__, "version", version) + + @_builtins.property + @pulumi.getter(name="disableTargetSecurityGroupAssignment") + def disable_target_security_group_assignment(self) -> _builtins.bool: + """ + 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. + """ + return pulumi.get(self, "disable_target_security_group_assignment") + + @_builtins.property + @pulumi.getter + def errors(self) -> Sequence['outputs.GetApplicationLoadBalancerErrorResult']: + """ + Reports all errors a Application Load Balancer has. + """ + return pulumi.get(self, "errors") + + @_builtins.property + @pulumi.getter(name="externalAddress") + def external_address(self) -> _builtins.str: + """ + The external IP address where this Application Load Balancer is exposed. Not changeable after creation. + """ + return pulumi.get(self, "external_address") + + @_builtins.property + @pulumi.getter + def id(self) -> _builtins.str: + """ + Terraform's internal resource ID. It is structured as `project_id`,`region`,`name`. + """ + return pulumi.get(self, "id") + + @_builtins.property + @pulumi.getter + def labels(self) -> Mapping[str, _builtins.str]: + """ + Labels represent user-defined metadata as key-value pairs. Label count cannot exceed 64 per ALB. + """ + return pulumi.get(self, "labels") + + @_builtins.property + @pulumi.getter + def listeners(self) -> Sequence['outputs.GetApplicationLoadBalancerListenerResult']: + """ + List of all listeners which will accept traffic. Limited to 20. + """ + return pulumi.get(self, "listeners") + + @_builtins.property + @pulumi.getter(name="loadBalancerSecurityGroup") + def load_balancer_security_group(self) -> 'outputs.GetApplicationLoadBalancerLoadBalancerSecurityGroupResult': + """ + Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + """ + return pulumi.get(self, "load_balancer_security_group") + + @_builtins.property + @pulumi.getter + def name(self) -> _builtins.str: + """ + Application Load balancer name. + """ + return pulumi.get(self, "name") + + @_builtins.property + @pulumi.getter + def networks(self) -> Sequence['outputs.GetApplicationLoadBalancerNetworkResult']: + """ + List of networks that listeners and targets reside in. + """ + return pulumi.get(self, "networks") + + @_builtins.property + @pulumi.getter + def options(self) -> 'outputs.GetApplicationLoadBalancerOptionsResult': + """ + Defines any optional functionality you want to have enabled on your Application Load Balancer. + """ + return pulumi.get(self, "options") + + @_builtins.property + @pulumi.getter(name="planId") + def plan_id(self) -> _builtins.str: + """ + Service Plan configures the size of the Application Load Balancer. + """ + return pulumi.get(self, "plan_id") + + @_builtins.property + @pulumi.getter(name="privateAddress") + def private_address(self) -> _builtins.str: + return pulumi.get(self, "private_address") + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> _builtins.str: + """ + STACKIT project ID to which the Application Load Balancer is associated. + """ + return pulumi.get(self, "project_id") + + @_builtins.property + @pulumi.getter + def region(self) -> _builtins.str: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @_builtins.property + @pulumi.getter(name="targetPools") + def target_pools(self) -> Sequence['outputs.GetApplicationLoadBalancerTargetPoolResult']: + """ + List of all target pools which will be used in the Application Load Balancer. Limited to 20. + """ + return pulumi.get(self, "target_pools") + + @_builtins.property + @pulumi.getter(name="targetSecurityGroup") + def target_security_group(self) -> 'outputs.GetApplicationLoadBalancerTargetSecurityGroupResult': + """ + Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. + """ + return pulumi.get(self, "target_security_group") + + @_builtins.property + @pulumi.getter + def version(self) -> _builtins.str: + """ + Application Load Balancer resource version. Used for concurrency safe updates. + """ + return pulumi.get(self, "version") + + +class AwaitableGetApplicationLoadBalancerResult(GetApplicationLoadBalancerResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetApplicationLoadBalancerResult( + disable_target_security_group_assignment=self.disable_target_security_group_assignment, + errors=self.errors, + external_address=self.external_address, + id=self.id, + labels=self.labels, + listeners=self.listeners, + load_balancer_security_group=self.load_balancer_security_group, + name=self.name, + networks=self.networks, + options=self.options, + plan_id=self.plan_id, + private_address=self.private_address, + project_id=self.project_id, + region=self.region, + target_pools=self.target_pools, + target_security_group=self.target_security_group, + version=self.version) + + +def get_application_load_balancer(name: Optional[_builtins.str] = None, + project_id: Optional[_builtins.str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetApplicationLoadBalancerResult: + """ + Application Load Balancer data source schema. Must have a region specified in the provider configuration. + + ## Example Usage + + + :param _builtins.str name: Application Load balancer name. + :param _builtins.str project_id: STACKIT project ID to which the Application Load Balancer is associated. + """ + __args__ = dict() + __args__['name'] = name + __args__['projectId'] = project_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('stackit:index/getApplicationLoadBalancer:getApplicationLoadBalancer', __args__, opts=opts, typ=GetApplicationLoadBalancerResult).value + + return AwaitableGetApplicationLoadBalancerResult( + disable_target_security_group_assignment=pulumi.get(__ret__, 'disable_target_security_group_assignment'), + errors=pulumi.get(__ret__, 'errors'), + external_address=pulumi.get(__ret__, 'external_address'), + id=pulumi.get(__ret__, 'id'), + labels=pulumi.get(__ret__, 'labels'), + listeners=pulumi.get(__ret__, 'listeners'), + load_balancer_security_group=pulumi.get(__ret__, 'load_balancer_security_group'), + name=pulumi.get(__ret__, 'name'), + networks=pulumi.get(__ret__, 'networks'), + options=pulumi.get(__ret__, 'options'), + plan_id=pulumi.get(__ret__, 'plan_id'), + private_address=pulumi.get(__ret__, 'private_address'), + project_id=pulumi.get(__ret__, 'project_id'), + region=pulumi.get(__ret__, 'region'), + target_pools=pulumi.get(__ret__, 'target_pools'), + target_security_group=pulumi.get(__ret__, 'target_security_group'), + version=pulumi.get(__ret__, 'version')) +def get_application_load_balancer_output(name: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetApplicationLoadBalancerResult]: + """ + Application Load Balancer data source schema. Must have a region specified in the provider configuration. + + ## Example Usage + + + :param _builtins.str name: Application Load balancer name. + :param _builtins.str project_id: STACKIT project ID to which the Application Load Balancer is associated. + """ + __args__ = dict() + __args__['name'] = name + __args__['projectId'] = project_id + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('stackit:index/getApplicationLoadBalancer:getApplicationLoadBalancer', __args__, opts=opts, typ=GetApplicationLoadBalancerResult) + return __ret__.apply(lambda __response__: GetApplicationLoadBalancerResult( + disable_target_security_group_assignment=pulumi.get(__response__, 'disable_target_security_group_assignment'), + errors=pulumi.get(__response__, 'errors'), + external_address=pulumi.get(__response__, 'external_address'), + id=pulumi.get(__response__, 'id'), + labels=pulumi.get(__response__, 'labels'), + listeners=pulumi.get(__response__, 'listeners'), + load_balancer_security_group=pulumi.get(__response__, 'load_balancer_security_group'), + name=pulumi.get(__response__, 'name'), + networks=pulumi.get(__response__, 'networks'), + options=pulumi.get(__response__, 'options'), + plan_id=pulumi.get(__response__, 'plan_id'), + private_address=pulumi.get(__response__, 'private_address'), + project_id=pulumi.get(__response__, 'project_id'), + region=pulumi.get(__response__, 'region'), + target_pools=pulumi.get(__response__, 'target_pools'), + target_security_group=pulumi.get(__response__, 'target_security_group'), + version=pulumi.get(__response__, 'version'))) diff --git a/sdk/python/pulumi_stackit/get_server_backup_schedule.py b/sdk/python/pulumi_stackit/get_server_backup_schedule.py index e062c9f..4ad5077 100644 --- a/sdk/python/pulumi_stackit/get_server_backup_schedule.py +++ b/sdk/python/pulumi_stackit/get_server_backup_schedule.py @@ -154,8 +154,6 @@ def get_server_backup_schedule(backup_schedule_id: Optional[_builtins.int] = Non """ 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 @@ -190,8 +188,6 @@ def get_server_backup_schedule_output(backup_schedule_id: Optional[pulumi.Input[ """ 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 diff --git a/sdk/python/pulumi_stackit/get_server_backup_schedules.py b/sdk/python/pulumi_stackit/get_server_backup_schedules.py index cadc472..72dd9aa 100644 --- a/sdk/python/pulumi_stackit/get_server_backup_schedules.py +++ b/sdk/python/pulumi_stackit/get_server_backup_schedules.py @@ -102,8 +102,6 @@ def get_server_backup_schedules(project_id: Optional[_builtins.str] = None, """ 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 @@ -131,8 +129,6 @@ def get_server_backup_schedules_output(project_id: Optional[pulumi.Input[_builti """ 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 diff --git a/sdk/python/pulumi_stackit/get_server_update_schedule.py b/sdk/python/pulumi_stackit/get_server_update_schedule.py index 171fa82..9892c26 100644 --- a/sdk/python/pulumi_stackit/get_server_update_schedule.py +++ b/sdk/python/pulumi_stackit/get_server_update_schedule.py @@ -153,8 +153,6 @@ def get_server_update_schedule(project_id: Optional[_builtins.str] = None, """ 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 @@ -189,8 +187,6 @@ def get_server_update_schedule_output(project_id: Optional[pulumi.Input[_builtin """ 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 diff --git a/sdk/python/pulumi_stackit/get_server_update_schedules.py b/sdk/python/pulumi_stackit/get_server_update_schedules.py index 45a28da..1d0a579 100644 --- a/sdk/python/pulumi_stackit/get_server_update_schedules.py +++ b/sdk/python/pulumi_stackit/get_server_update_schedules.py @@ -102,8 +102,6 @@ def get_server_update_schedules(project_id: Optional[_builtins.str] = None, """ 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 @@ -131,8 +129,6 @@ def get_server_update_schedules_output(project_id: Optional[pulumi.Input[_builti """ 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 diff --git a/sdk/python/pulumi_stackit/get_service_account.py b/sdk/python/pulumi_stackit/get_service_account.py index 925de46..0e371ec 100644 --- a/sdk/python/pulumi_stackit/get_service_account.py +++ b/sdk/python/pulumi_stackit/get_service_account.py @@ -26,7 +26,7 @@ class GetServiceAccountResult: """ A collection of values returned by getServiceAccount. """ - def __init__(__self__, email=None, id=None, name=None, project_id=None): + def __init__(__self__, email=None, id=None, name=None, project_id=None, service_account_id=None): if email and not isinstance(email, str): raise TypeError("Expected argument 'email' to be a str") pulumi.set(__self__, "email", email) @@ -39,6 +39,9 @@ def __init__(__self__, email=None, id=None, name=None, project_id=None): if project_id and not isinstance(project_id, str): raise TypeError("Expected argument 'project_id' to be a str") pulumi.set(__self__, "project_id", project_id) + if service_account_id and not isinstance(service_account_id, str): + raise TypeError("Expected argument 'service_account_id' to be a str") + pulumi.set(__self__, "service_account_id", service_account_id) @_builtins.property @pulumi.getter @@ -72,6 +75,14 @@ def project_id(self) -> _builtins.str: """ return pulumi.get(self, "project_id") + @_builtins.property + @pulumi.getter(name="serviceAccountId") + def service_account_id(self) -> _builtins.str: + """ + The internal UUID of the service account. + """ + return pulumi.get(self, "service_account_id") + class AwaitableGetServiceAccountResult(GetServiceAccountResult): # pylint: disable=using-constant-test @@ -82,7 +93,8 @@ def __await__(self): email=self.email, id=self.id, name=self.name, - project_id=self.project_id) + project_id=self.project_id, + service_account_id=self.service_account_id) def get_service_account(email: Optional[_builtins.str] = None, @@ -107,7 +119,8 @@ def get_service_account(email: Optional[_builtins.str] = None, email=pulumi.get(__ret__, 'email'), id=pulumi.get(__ret__, 'id'), name=pulumi.get(__ret__, 'name'), - project_id=pulumi.get(__ret__, 'project_id')) + project_id=pulumi.get(__ret__, 'project_id'), + service_account_id=pulumi.get(__ret__, 'service_account_id')) def get_service_account_output(email: Optional[pulumi.Input[_builtins.str]] = None, project_id: Optional[pulumi.Input[_builtins.str]] = None, opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetServiceAccountResult]: @@ -129,4 +142,5 @@ def get_service_account_output(email: Optional[pulumi.Input[_builtins.str]] = No email=pulumi.get(__response__, 'email'), id=pulumi.get(__response__, 'id'), name=pulumi.get(__response__, 'name'), - project_id=pulumi.get(__response__, 'project_id'))) + project_id=pulumi.get(__response__, 'project_id'), + service_account_id=pulumi.get(__response__, 'service_account_id'))) diff --git a/sdk/python/pulumi_stackit/get_service_accounts.py b/sdk/python/pulumi_stackit/get_service_accounts.py new file mode 100644 index 0000000..4e77d8e --- /dev/null +++ b/sdk/python/pulumi_stackit/get_service_accounts.py @@ -0,0 +1,173 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities +from . import outputs + +__all__ = [ + 'GetServiceAccountsResult', + 'AwaitableGetServiceAccountsResult', + 'get_service_accounts', + 'get_service_accounts_output', +] + +@pulumi.output_type +class GetServiceAccountsResult: + """ + A collection of values returned by getServiceAccounts. + """ + def __init__(__self__, email_regex=None, email_suffix=None, id=None, items=None, project_id=None, sort_ascending=None): + if email_regex and not isinstance(email_regex, str): + raise TypeError("Expected argument 'email_regex' to be a str") + pulumi.set(__self__, "email_regex", email_regex) + if email_suffix and not isinstance(email_suffix, str): + raise TypeError("Expected argument 'email_suffix' to be a str") + pulumi.set(__self__, "email_suffix", email_suffix) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if items and not isinstance(items, list): + raise TypeError("Expected argument 'items' to be a list") + pulumi.set(__self__, "items", items) + if project_id and not isinstance(project_id, str): + raise TypeError("Expected argument 'project_id' to be a str") + pulumi.set(__self__, "project_id", project_id) + if sort_ascending and not isinstance(sort_ascending, bool): + raise TypeError("Expected argument 'sort_ascending' to be a bool") + pulumi.set(__self__, "sort_ascending", sort_ascending) + + @_builtins.property + @pulumi.getter(name="emailRegex") + def email_regex(self) -> Optional[_builtins.str]: + """ + Optional regular expression to filter service accounts by email. + """ + return pulumi.get(self, "email_regex") + + @_builtins.property + @pulumi.getter(name="emailSuffix") + def email_suffix(self) -> Optional[_builtins.str]: + """ + Optional suffix to filter service accounts by email (e.g.,`@sa.stackit.cloud`, `@ske.sa.stackit.cloud`). + """ + return pulumi.get(self, "email_suffix") + + @_builtins.property + @pulumi.getter + def id(self) -> _builtins.str: + """ + Terraform's internal resource ID, structured as "`project_id`". + """ + return pulumi.get(self, "id") + + @_builtins.property + @pulumi.getter + def items(self) -> Sequence['outputs.GetServiceAccountsItemResult']: + """ + The list of service accounts matching the provided filters. + """ + return pulumi.get(self, "items") + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> _builtins.str: + """ + STACKIT project ID. + """ + return pulumi.get(self, "project_id") + + @_builtins.property + @pulumi.getter(name="sortAscending") + def sort_ascending(self) -> Optional[_builtins.bool]: + """ + If set to `true`, service accounts are sorted in ascending lexicographical order by email. Defaults to `false` (descending). + """ + return pulumi.get(self, "sort_ascending") + + +class AwaitableGetServiceAccountsResult(GetServiceAccountsResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetServiceAccountsResult( + email_regex=self.email_regex, + email_suffix=self.email_suffix, + id=self.id, + items=self.items, + project_id=self.project_id, + sort_ascending=self.sort_ascending) + + +def get_service_accounts(email_regex: Optional[_builtins.str] = None, + email_suffix: Optional[_builtins.str] = None, + project_id: Optional[_builtins.str] = None, + sort_ascending: Optional[_builtins.bool] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetServiceAccountsResult: + """ + Service accounts plural data source schema. Returns a list of all service accounts in a project, optionally filtered. + + ## Example Usage + + + :param _builtins.str email_regex: Optional regular expression to filter service accounts by email. + :param _builtins.str email_suffix: Optional suffix to filter service accounts by email (e.g.,`@sa.stackit.cloud`, `@ske.sa.stackit.cloud`). + :param _builtins.str project_id: STACKIT project ID. + :param _builtins.bool sort_ascending: If set to `true`, service accounts are sorted in ascending lexicographical order by email. Defaults to `false` (descending). + """ + __args__ = dict() + __args__['emailRegex'] = email_regex + __args__['emailSuffix'] = email_suffix + __args__['projectId'] = project_id + __args__['sortAscending'] = sort_ascending + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('stackit:index/getServiceAccounts:getServiceAccounts', __args__, opts=opts, typ=GetServiceAccountsResult).value + + return AwaitableGetServiceAccountsResult( + email_regex=pulumi.get(__ret__, 'email_regex'), + email_suffix=pulumi.get(__ret__, 'email_suffix'), + id=pulumi.get(__ret__, 'id'), + items=pulumi.get(__ret__, 'items'), + project_id=pulumi.get(__ret__, 'project_id'), + sort_ascending=pulumi.get(__ret__, 'sort_ascending')) +def get_service_accounts_output(email_regex: Optional[pulumi.Input[Optional[_builtins.str]]] = None, + email_suffix: Optional[pulumi.Input[Optional[_builtins.str]]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + sort_ascending: Optional[pulumi.Input[Optional[_builtins.bool]]] = None, + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetServiceAccountsResult]: + """ + Service accounts plural data source schema. Returns a list of all service accounts in a project, optionally filtered. + + ## Example Usage + + + :param _builtins.str email_regex: Optional regular expression to filter service accounts by email. + :param _builtins.str email_suffix: Optional suffix to filter service accounts by email (e.g.,`@sa.stackit.cloud`, `@ske.sa.stackit.cloud`). + :param _builtins.str project_id: STACKIT project ID. + :param _builtins.bool sort_ascending: If set to `true`, service accounts are sorted in ascending lexicographical order by email. Defaults to `false` (descending). + """ + __args__ = dict() + __args__['emailRegex'] = email_regex + __args__['emailSuffix'] = email_suffix + __args__['projectId'] = project_id + __args__['sortAscending'] = sort_ascending + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('stackit:index/getServiceAccounts:getServiceAccounts', __args__, opts=opts, typ=GetServiceAccountsResult) + return __ret__.apply(lambda __response__: GetServiceAccountsResult( + email_regex=pulumi.get(__response__, 'email_regex'), + email_suffix=pulumi.get(__response__, 'email_suffix'), + id=pulumi.get(__response__, 'id'), + items=pulumi.get(__response__, 'items'), + project_id=pulumi.get(__response__, 'project_id'), + sort_ascending=pulumi.get(__response__, 'sort_ascending'))) diff --git a/sdk/python/pulumi_stackit/outputs.py b/sdk/python/pulumi_stackit/outputs.py index b36fdf6..6e256d8 100644 --- a/sdk/python/pulumi_stackit/outputs.py +++ b/sdk/python/pulumi_stackit/outputs.py @@ -16,6 +16,30 @@ from . import outputs __all__ = [ + 'ApplicationLoadBalancerError', + 'ApplicationLoadBalancerListener', + 'ApplicationLoadBalancerListenerHttp', + 'ApplicationLoadBalancerListenerHttpHost', + 'ApplicationLoadBalancerListenerHttpHostRule', + 'ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence', + 'ApplicationLoadBalancerListenerHttpHostRuleHeader', + 'ApplicationLoadBalancerListenerHttpHostRulePath', + 'ApplicationLoadBalancerListenerHttpHostRuleQueryParameter', + 'ApplicationLoadBalancerListenerHttps', + 'ApplicationLoadBalancerListenerHttpsCertificateConfig', + 'ApplicationLoadBalancerLoadBalancerSecurityGroup', + 'ApplicationLoadBalancerNetwork', + 'ApplicationLoadBalancerOptions', + 'ApplicationLoadBalancerOptionsAccessControl', + 'ApplicationLoadBalancerOptionsObservability', + 'ApplicationLoadBalancerOptionsObservabilityLogs', + 'ApplicationLoadBalancerOptionsObservabilityMetrics', + 'ApplicationLoadBalancerTargetPool', + 'ApplicationLoadBalancerTargetPoolActiveHealthCheck', + 'ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks', + 'ApplicationLoadBalancerTargetPoolTarget', + 'ApplicationLoadBalancerTargetPoolTlsConfig', + 'ApplicationLoadBalancerTargetSecurityGroup', 'CdnCustomDomainCertificate', 'CdnDistributionConfig', 'CdnDistributionConfigBackend', @@ -88,6 +112,30 @@ 'SqlserverflexInstanceStorage', 'VolumeEncryptionParameters', 'VolumeSource', + 'GetApplicationLoadBalancerErrorResult', + 'GetApplicationLoadBalancerListenerResult', + 'GetApplicationLoadBalancerListenerHttpResult', + 'GetApplicationLoadBalancerListenerHttpHostResult', + 'GetApplicationLoadBalancerListenerHttpHostRuleResult', + 'GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceResult', + 'GetApplicationLoadBalancerListenerHttpHostRuleHeaderResult', + 'GetApplicationLoadBalancerListenerHttpHostRulePathResult', + 'GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterResult', + 'GetApplicationLoadBalancerListenerHttpsResult', + 'GetApplicationLoadBalancerListenerHttpsCertificateConfigResult', + 'GetApplicationLoadBalancerLoadBalancerSecurityGroupResult', + 'GetApplicationLoadBalancerNetworkResult', + 'GetApplicationLoadBalancerOptionsResult', + 'GetApplicationLoadBalancerOptionsAccessControlResult', + 'GetApplicationLoadBalancerOptionsObservabilityResult', + 'GetApplicationLoadBalancerOptionsObservabilityLogsResult', + 'GetApplicationLoadBalancerOptionsObservabilityMetricsResult', + 'GetApplicationLoadBalancerTargetPoolResult', + 'GetApplicationLoadBalancerTargetPoolActiveHealthCheckResult', + 'GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksResult', + 'GetApplicationLoadBalancerTargetPoolTargetResult', + 'GetApplicationLoadBalancerTargetPoolTlsConfigResult', + 'GetApplicationLoadBalancerTargetSecurityGroupResult', 'GetCdnCustomDomainCertificateResult', 'GetCdnDistributionConfigResult', 'GetCdnDistributionConfigBackendResult', @@ -156,6 +204,7 @@ 'GetServerBackupSchedulesItemBackupPropertiesResult', 'GetServerBootVolumeResult', 'GetServerUpdateSchedulesItemResult', + 'GetServiceAccountsItemResult', 'GetSfsExportPolicyRuleResult', 'GetSfsResourcePoolSnapshotSnapshotResult', 'GetSkeClusterExtensionsResult', @@ -178,2121 +227,4214 @@ ] @pulumi.output_type -class CdnCustomDomainCertificate(dict): +class ApplicationLoadBalancerError(dict): + def __init__(__self__, *, + description: Optional[_builtins.str] = None, + type: Optional[_builtins.str] = None): + """ + :param _builtins.str 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. + :param _builtins.str type: 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`. + """ + if description is not None: + pulumi.set(__self__, "description", description) + if type is not None: + pulumi.set(__self__, "type", type) + + @_builtins.property + @pulumi.getter + def description(self) -> Optional[_builtins.str]: + """ + 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. + """ + return pulumi.get(self, "description") + + @_builtins.property + @pulumi.getter + def type(self) -> Optional[_builtins.str]: + """ + 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`. + """ + return pulumi.get(self, "type") + + +@pulumi.output_type +class ApplicationLoadBalancerListener(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "privateKey": - suggest = "private_key" + if key == "wafConfigName": + suggest = "waf_config_name" if suggest: - pulumi.log.warn(f"Key '{key}' not found in CdnCustomDomainCertificate. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ApplicationLoadBalancerListener. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - CdnCustomDomainCertificate.__key_warning(key) + ApplicationLoadBalancerListener.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - CdnCustomDomainCertificate.__key_warning(key) + ApplicationLoadBalancerListener.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - certificate: Optional[_builtins.str] = None, - private_key: Optional[_builtins.str] = None, - version: Optional[_builtins.int] = None): + http: 'outputs.ApplicationLoadBalancerListenerHttp', + name: _builtins.str, + port: _builtins.int, + protocol: _builtins.str, + https: Optional['outputs.ApplicationLoadBalancerListenerHttps'] = None, + waf_config_name: Optional[_builtins.str] = None): """ - :param _builtins.str certificate: The PEM-encoded TLS certificate. Required for custom certificates. - :param _builtins.str private_key: The PEM-encoded private key for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. - :param _builtins.int version: A version identifier for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. + :param 'ApplicationLoadBalancerListenerHttpArgs' http: Configuration for HTTP traffic. + :param _builtins.str name: Unique name for the listener + :param _builtins.int port: Port number on which the listener receives incoming traffic. + :param _builtins.str protocol: Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. + :param 'ApplicationLoadBalancerListenerHttpsArgs' https: Configuration for handling HTTPS traffic on this listener. + :param _builtins.str waf_config_name: Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. """ - if certificate is not None: - pulumi.set(__self__, "certificate", certificate) - if private_key is not None: - pulumi.set(__self__, "private_key", private_key) - if version is not None: - pulumi.set(__self__, "version", version) + pulumi.set(__self__, "http", http) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "port", port) + pulumi.set(__self__, "protocol", protocol) + if https is not None: + pulumi.set(__self__, "https", https) + if waf_config_name is not None: + pulumi.set(__self__, "waf_config_name", waf_config_name) @_builtins.property @pulumi.getter - def certificate(self) -> Optional[_builtins.str]: + def http(self) -> 'outputs.ApplicationLoadBalancerListenerHttp': """ - The PEM-encoded TLS certificate. Required for custom certificates. + Configuration for HTTP traffic. """ - return pulumi.get(self, "certificate") + return pulumi.get(self, "http") @_builtins.property - @pulumi.getter(name="privateKey") - def private_key(self) -> Optional[_builtins.str]: + @pulumi.getter + def name(self) -> _builtins.str: """ - The PEM-encoded private key for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. + Unique name for the listener """ - return pulumi.get(self, "private_key") + return pulumi.get(self, "name") @_builtins.property @pulumi.getter - def version(self) -> Optional[_builtins.int]: + def port(self) -> _builtins.int: """ - A version identifier for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. + Port number on which the listener receives incoming traffic. """ - return pulumi.get(self, "version") - + return pulumi.get(self, "port") -@pulumi.output_type -class CdnDistributionConfig(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "blockedCountries": - suggest = "blocked_countries" + @_builtins.property + @pulumi.getter + def protocol(self) -> _builtins.str: + """ + Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. + """ + return pulumi.get(self, "protocol") - if suggest: - pulumi.log.warn(f"Key '{key}' not found in CdnDistributionConfig. Access the value via the '{suggest}' property getter instead.") + @_builtins.property + @pulumi.getter + def https(self) -> Optional['outputs.ApplicationLoadBalancerListenerHttps']: + """ + Configuration for handling HTTPS traffic on this listener. + """ + return pulumi.get(self, "https") - def __getitem__(self, key: str) -> Any: - CdnDistributionConfig.__key_warning(key) - return super().__getitem__(key) + @_builtins.property + @pulumi.getter(name="wafConfigName") + def waf_config_name(self) -> Optional[_builtins.str]: + """ + Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. + """ + return pulumi.get(self, "waf_config_name") - def get(self, key: str, default = None) -> Any: - CdnDistributionConfig.__key_warning(key) - return super().get(key, default) +@pulumi.output_type +class ApplicationLoadBalancerListenerHttp(dict): def __init__(__self__, *, - backend: 'outputs.CdnDistributionConfigBackend', - regions: Sequence[_builtins.str], - blocked_countries: Optional[Sequence[_builtins.str]] = None, - optimizer: Optional['outputs.CdnDistributionConfigOptimizer'] = None): + hosts: Sequence['outputs.ApplicationLoadBalancerListenerHttpHost']): """ - :param 'CdnDistributionConfigBackendArgs' backend: The configured backend for the distribution - :param Sequence[_builtins.str] regions: The configured regions where content will be hosted - :param Sequence[_builtins.str] blocked_countries: The configured countries where distribution of content is blocked - :param 'CdnDistributionConfigOptimizerArgs' optimizer: 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. + :param Sequence['ApplicationLoadBalancerListenerHttpHostArgs'] hosts: Defines routing rules grouped by hostname. """ - pulumi.set(__self__, "backend", backend) - pulumi.set(__self__, "regions", regions) - if blocked_countries is not None: - pulumi.set(__self__, "blocked_countries", blocked_countries) - if optimizer is not None: - pulumi.set(__self__, "optimizer", optimizer) + pulumi.set(__self__, "hosts", hosts) @_builtins.property @pulumi.getter - def backend(self) -> 'outputs.CdnDistributionConfigBackend': + def hosts(self) -> Sequence['outputs.ApplicationLoadBalancerListenerHttpHost']: """ - The configured backend for the distribution + Defines routing rules grouped by hostname. """ - return pulumi.get(self, "backend") + return pulumi.get(self, "hosts") - @_builtins.property - @pulumi.getter - def regions(self) -> Sequence[_builtins.str]: + +@pulumi.output_type +class ApplicationLoadBalancerListenerHttpHost(dict): + def __init__(__self__, *, + host: _builtins.str, + rules: Sequence['outputs.ApplicationLoadBalancerListenerHttpHostRule']): """ - The configured regions where content will be hosted + :param _builtins.str host: Hostname to match. Supports wildcards (e.g. *.example.com). + :param Sequence['ApplicationLoadBalancerListenerHttpHostRuleArgs'] rules: Routing rules under the specified host, matched by path prefix. """ - return pulumi.get(self, "regions") + pulumi.set(__self__, "host", host) + pulumi.set(__self__, "rules", rules) @_builtins.property - @pulumi.getter(name="blockedCountries") - def blocked_countries(self) -> Optional[Sequence[_builtins.str]]: + @pulumi.getter + def host(self) -> _builtins.str: """ - The configured countries where distribution of content is blocked + Hostname to match. Supports wildcards (e.g. *.example.com). """ - return pulumi.get(self, "blocked_countries") + return pulumi.get(self, "host") @_builtins.property @pulumi.getter - def optimizer(self) -> Optional['outputs.CdnDistributionConfigOptimizer']: + def rules(self) -> Sequence['outputs.ApplicationLoadBalancerListenerHttpHostRule']: """ - 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. + Routing rules under the specified host, matched by path prefix. """ - return pulumi.get(self, "optimizer") + return pulumi.get(self, "rules") @pulumi.output_type -class CdnDistributionConfigBackend(dict): +class ApplicationLoadBalancerListenerHttpHostRule(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "bucketUrl": - suggest = "bucket_url" - elif key == "originRequestHeaders": - suggest = "origin_request_headers" - elif key == "originUrl": - suggest = "origin_url" + if key == "targetPool": + suggest = "target_pool" + elif key == "cookiePersistence": + suggest = "cookie_persistence" + elif key == "queryParameters": + suggest = "query_parameters" + elif key == "webSocket": + suggest = "web_socket" if suggest: - pulumi.log.warn(f"Key '{key}' not found in CdnDistributionConfigBackend. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ApplicationLoadBalancerListenerHttpHostRule. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - CdnDistributionConfigBackend.__key_warning(key) + ApplicationLoadBalancerListenerHttpHostRule.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - CdnDistributionConfigBackend.__key_warning(key) + ApplicationLoadBalancerListenerHttpHostRule.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - type: _builtins.str, - bucket_url: Optional[_builtins.str] = None, - credentials: Optional['outputs.CdnDistributionConfigBackendCredentials'] = None, - geofencing: Optional[Mapping[str, Sequence[_builtins.str]]] = None, - origin_request_headers: Optional[Mapping[str, _builtins.str]] = None, - origin_url: Optional[_builtins.str] = None, - region: Optional[_builtins.str] = None): + target_pool: _builtins.str, + cookie_persistence: Optional['outputs.ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence'] = None, + headers: Optional[Sequence['outputs.ApplicationLoadBalancerListenerHttpHostRuleHeader']] = None, + path: Optional['outputs.ApplicationLoadBalancerListenerHttpHostRulePath'] = None, + query_parameters: Optional[Sequence['outputs.ApplicationLoadBalancerListenerHttpHostRuleQueryParameter']] = None, + web_socket: Optional[_builtins.bool] = None): """ - :param _builtins.str type: The configured backend type. Possible values are: `http`, `bucket`. - :param _builtins.str bucket_url: The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. - :param 'CdnDistributionConfigBackendCredentialsArgs' credentials: The credentials for the bucket. Required if type is 'bucket'. - :param Mapping[str, Sequence[_builtins.str]] geofencing: The configured type http to configure countries where content is allowed. A map of URLs to a list of countries - :param Mapping[str, _builtins.str] origin_request_headers: The configured type http origin request headers for the backend - :param _builtins.str origin_url: The configured backend type http for the distribution - :param _builtins.str region: The region where the bucket is hosted. Required if type is 'bucket'. + :param _builtins.str target_pool: Reference target pool by target pool name. + :param 'ApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs' cookie_persistence: Routing persistence via cookies. + :param Sequence['ApplicationLoadBalancerListenerHttpHostRuleHeaderArgs'] headers: Headers for the rule. + :param 'ApplicationLoadBalancerListenerHttpHostRulePathArgs' path: Routing via path. + :param Sequence['ApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs'] query_parameters: Query parameters for the rule. + :param _builtins.bool web_socket: 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. """ - pulumi.set(__self__, "type", type) - if bucket_url is not None: - pulumi.set(__self__, "bucket_url", bucket_url) - if credentials is not None: - pulumi.set(__self__, "credentials", credentials) - if geofencing is not None: - pulumi.set(__self__, "geofencing", geofencing) - if origin_request_headers is not None: - pulumi.set(__self__, "origin_request_headers", origin_request_headers) - if origin_url is not None: - pulumi.set(__self__, "origin_url", origin_url) - if region is not None: - pulumi.set(__self__, "region", region) + pulumi.set(__self__, "target_pool", target_pool) + if cookie_persistence is not None: + pulumi.set(__self__, "cookie_persistence", cookie_persistence) + if headers is not None: + pulumi.set(__self__, "headers", headers) + if path is not None: + pulumi.set(__self__, "path", path) + if query_parameters is not None: + pulumi.set(__self__, "query_parameters", query_parameters) + if web_socket is not None: + pulumi.set(__self__, "web_socket", web_socket) @_builtins.property - @pulumi.getter - def type(self) -> _builtins.str: + @pulumi.getter(name="targetPool") + def target_pool(self) -> _builtins.str: """ - The configured backend type. Possible values are: `http`, `bucket`. + Reference target pool by target pool name. """ - return pulumi.get(self, "type") + return pulumi.get(self, "target_pool") @_builtins.property - @pulumi.getter(name="bucketUrl") - def bucket_url(self) -> Optional[_builtins.str]: + @pulumi.getter(name="cookiePersistence") + def cookie_persistence(self) -> Optional['outputs.ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence']: """ - The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + Routing persistence via cookies. """ - return pulumi.get(self, "bucket_url") + return pulumi.get(self, "cookie_persistence") @_builtins.property @pulumi.getter - def credentials(self) -> Optional['outputs.CdnDistributionConfigBackendCredentials']: + def headers(self) -> Optional[Sequence['outputs.ApplicationLoadBalancerListenerHttpHostRuleHeader']]: """ - The credentials for the bucket. Required if type is 'bucket'. + Headers for the rule. """ - return pulumi.get(self, "credentials") + return pulumi.get(self, "headers") @_builtins.property @pulumi.getter - def geofencing(self) -> Optional[Mapping[str, Sequence[_builtins.str]]]: + def path(self) -> Optional['outputs.ApplicationLoadBalancerListenerHttpHostRulePath']: """ - The configured type http to configure countries where content is allowed. A map of URLs to a list of countries + Routing via path. """ - return pulumi.get(self, "geofencing") + return pulumi.get(self, "path") @_builtins.property - @pulumi.getter(name="originRequestHeaders") - def origin_request_headers(self) -> Optional[Mapping[str, _builtins.str]]: + @pulumi.getter(name="queryParameters") + def query_parameters(self) -> Optional[Sequence['outputs.ApplicationLoadBalancerListenerHttpHostRuleQueryParameter']]: """ - The configured type http origin request headers for the backend + Query parameters for the rule. """ - return pulumi.get(self, "origin_request_headers") + return pulumi.get(self, "query_parameters") @_builtins.property - @pulumi.getter(name="originUrl") - def origin_url(self) -> Optional[_builtins.str]: + @pulumi.getter(name="webSocket") + def web_socket(self) -> Optional[_builtins.bool]: """ - The configured backend type http for the distribution + 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. """ - return pulumi.get(self, "origin_url") + return pulumi.get(self, "web_socket") + + +@pulumi.output_type +class ApplicationLoadBalancerListenerHttpHostRuleCookiePersistence(dict): + def __init__(__self__, *, + name: _builtins.str, + ttl: _builtins.str): + """ + :param _builtins.str name: The name of the cookie to use. + :param _builtins.str ttl: 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. + """ + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "ttl", ttl) @_builtins.property @pulumi.getter - def region(self) -> Optional[_builtins.str]: + def name(self) -> _builtins.str: """ - The region where the bucket is hosted. Required if type is 'bucket'. + The name of the cookie to use. """ - return pulumi.get(self, "region") + return pulumi.get(self, "name") + + @_builtins.property + @pulumi.getter + def ttl(self) -> _builtins.str: + """ + 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. + """ + return pulumi.get(self, "ttl") @pulumi.output_type -class CdnDistributionConfigBackendCredentials(dict): +class ApplicationLoadBalancerListenerHttpHostRuleHeader(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "accessKeyId": - suggest = "access_key_id" - elif key == "secretAccessKey": - suggest = "secret_access_key" + if key == "exactMatch": + suggest = "exact_match" if suggest: - pulumi.log.warn(f"Key '{key}' not found in CdnDistributionConfigBackendCredentials. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ApplicationLoadBalancerListenerHttpHostRuleHeader. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - CdnDistributionConfigBackendCredentials.__key_warning(key) + ApplicationLoadBalancerListenerHttpHostRuleHeader.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - CdnDistributionConfigBackendCredentials.__key_warning(key) + ApplicationLoadBalancerListenerHttpHostRuleHeader.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - access_key_id: _builtins.str, - secret_access_key: _builtins.str): + name: _builtins.str, + exact_match: Optional[_builtins.str] = None): """ - :param _builtins.str access_key_id: The access key for the bucket. Required if type is 'bucket'. - :param _builtins.str secret_access_key: The access key for the bucket. Required if type is 'bucket'. + :param _builtins.str name: Header name. + :param _builtins.str exact_match: Exact match for the header value. """ - pulumi.set(__self__, "access_key_id", access_key_id) - pulumi.set(__self__, "secret_access_key", secret_access_key) + pulumi.set(__self__, "name", name) + if exact_match is not None: + pulumi.set(__self__, "exact_match", exact_match) @_builtins.property - @pulumi.getter(name="accessKeyId") - def access_key_id(self) -> _builtins.str: + @pulumi.getter + def name(self) -> _builtins.str: """ - The access key for the bucket. Required if type is 'bucket'. + Header name. """ - return pulumi.get(self, "access_key_id") + return pulumi.get(self, "name") @_builtins.property - @pulumi.getter(name="secretAccessKey") - def secret_access_key(self) -> _builtins.str: + @pulumi.getter(name="exactMatch") + def exact_match(self) -> Optional[_builtins.str]: """ - The access key for the bucket. Required if type is 'bucket'. + Exact match for the header value. """ - return pulumi.get(self, "secret_access_key") + return pulumi.get(self, "exact_match") @pulumi.output_type -class CdnDistributionConfigOptimizer(dict): - def __init__(__self__, *, - enabled: Optional[_builtins.bool] = None): - if enabled is not None: - pulumi.set(__self__, "enabled", enabled) +class ApplicationLoadBalancerListenerHttpHostRulePath(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "exactMatch": + suggest = "exact_match" - @_builtins.property - @pulumi.getter - def enabled(self) -> Optional[_builtins.bool]: - return pulumi.get(self, "enabled") + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApplicationLoadBalancerListenerHttpHostRulePath. Access the value via the '{suggest}' property getter instead.") + def __getitem__(self, key: str) -> Any: + ApplicationLoadBalancerListenerHttpHostRulePath.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ApplicationLoadBalancerListenerHttpHostRulePath.__key_warning(key) + return super().get(key, default) -@pulumi.output_type -class CdnDistributionDomain(dict): def __init__(__self__, *, - errors: Optional[Sequence[_builtins.str]] = None, - name: Optional[_builtins.str] = None, - status: Optional[_builtins.str] = None, - type: Optional[_builtins.str] = None): + exact_match: Optional[_builtins.str] = None, + prefix: Optional[_builtins.str] = None): """ - :param Sequence[_builtins.str] errors: List of domain errors - :param _builtins.str name: The name of the domain - :param _builtins.str status: The status of the domain - :param _builtins.str type: 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 + :param _builtins.str exact_match: 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'. + :param _builtins.str prefix: Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. """ - if errors is not None: - pulumi.set(__self__, "errors", errors) - if name is not None: - pulumi.set(__self__, "name", name) - if status is not None: - pulumi.set(__self__, "status", status) - if type is not None: - pulumi.set(__self__, "type", type) + if exact_match is not None: + pulumi.set(__self__, "exact_match", exact_match) + if prefix is not None: + pulumi.set(__self__, "prefix", prefix) @_builtins.property - @pulumi.getter - def errors(self) -> Optional[Sequence[_builtins.str]]: + @pulumi.getter(name="exactMatch") + def exact_match(self) -> Optional[_builtins.str]: """ - List of domain errors + 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'. """ - return pulumi.get(self, "errors") + return pulumi.get(self, "exact_match") @_builtins.property @pulumi.getter - def name(self) -> Optional[_builtins.str]: + def prefix(self) -> Optional[_builtins.str]: """ - The name of the domain + Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. """ - return pulumi.get(self, "name") + return pulumi.get(self, "prefix") - @_builtins.property - @pulumi.getter - def status(self) -> Optional[_builtins.str]: - """ - The status of the domain - """ - return pulumi.get(self, "status") - @_builtins.property - @pulumi.getter - def type(self) -> Optional[_builtins.str]: - """ - 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 - """ - return pulumi.get(self, "type") +@pulumi.output_type +class ApplicationLoadBalancerListenerHttpHostRuleQueryParameter(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "exactMatch": + suggest = "exact_match" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApplicationLoadBalancerListenerHttpHostRuleQueryParameter. Access the value via the '{suggest}' property getter instead.") + def __getitem__(self, key: str) -> Any: + ApplicationLoadBalancerListenerHttpHostRuleQueryParameter.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ApplicationLoadBalancerListenerHttpHostRuleQueryParameter.__key_warning(key) + return super().get(key, default) -@pulumi.output_type -class ImageChecksum(dict): def __init__(__self__, *, - algorithm: Optional[_builtins.str] = None, - digest: Optional[_builtins.str] = None): + name: _builtins.str, + exact_match: Optional[_builtins.str] = None): """ - :param _builtins.str algorithm: Algorithm for the checksum of the image data. - :param _builtins.str digest: Hexdigest of the checksum of the image data. + :param _builtins.str name: Query parameter name. + :param _builtins.str exact_match: Exact match for the query parameters value. """ - if algorithm is not None: - pulumi.set(__self__, "algorithm", algorithm) - if digest is not None: - pulumi.set(__self__, "digest", digest) + pulumi.set(__self__, "name", name) + if exact_match is not None: + pulumi.set(__self__, "exact_match", exact_match) @_builtins.property @pulumi.getter - def algorithm(self) -> Optional[_builtins.str]: + def name(self) -> _builtins.str: """ - Algorithm for the checksum of the image data. + Query parameter name. """ - return pulumi.get(self, "algorithm") + return pulumi.get(self, "name") @_builtins.property - @pulumi.getter - def digest(self) -> Optional[_builtins.str]: + @pulumi.getter(name="exactMatch") + def exact_match(self) -> Optional[_builtins.str]: """ - Hexdigest of the checksum of the image data. + Exact match for the query parameters value. """ - return pulumi.get(self, "digest") + return pulumi.get(self, "exact_match") @pulumi.output_type -class ImageConfig(dict): +class ApplicationLoadBalancerListenerHttps(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "bootMenu": - suggest = "boot_menu" - elif key == "cdromBus": - suggest = "cdrom_bus" - elif key == "diskBus": - suggest = "disk_bus" - elif key == "nicModel": - suggest = "nic_model" - elif key == "operatingSystem": - suggest = "operating_system" - elif key == "operatingSystemDistro": - suggest = "operating_system_distro" - elif key == "operatingSystemVersion": - suggest = "operating_system_version" - elif key == "rescueBus": - suggest = "rescue_bus" - elif key == "rescueDevice": - suggest = "rescue_device" - elif key == "secureBoot": - suggest = "secure_boot" - elif key == "videoModel": - suggest = "video_model" - elif key == "virtioScsi": - suggest = "virtio_scsi" + if key == "certificateConfig": + suggest = "certificate_config" if suggest: - pulumi.log.warn(f"Key '{key}' not found in ImageConfig. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ApplicationLoadBalancerListenerHttps. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - ImageConfig.__key_warning(key) + ApplicationLoadBalancerListenerHttps.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - ImageConfig.__key_warning(key) + ApplicationLoadBalancerListenerHttps.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - boot_menu: Optional[_builtins.bool] = None, - cdrom_bus: Optional[_builtins.str] = None, - disk_bus: Optional[_builtins.str] = None, - nic_model: Optional[_builtins.str] = None, - operating_system: Optional[_builtins.str] = None, - operating_system_distro: Optional[_builtins.str] = None, - operating_system_version: Optional[_builtins.str] = None, - rescue_bus: Optional[_builtins.str] = None, - rescue_device: Optional[_builtins.str] = None, - secure_boot: Optional[_builtins.bool] = None, - uefi: Optional[_builtins.bool] = None, - video_model: Optional[_builtins.str] = None, - virtio_scsi: Optional[_builtins.bool] = None): + certificate_config: 'outputs.ApplicationLoadBalancerListenerHttpsCertificateConfig'): """ - :param _builtins.bool boot_menu: Enables the BIOS bootmenu. - :param _builtins.str cdrom_bus: Sets CDROM bus controller type. - :param _builtins.str disk_bus: Sets Disk bus controller type. - :param _builtins.str nic_model: Sets virtual network interface model. - :param _builtins.str operating_system: Enables operating system specific optimizations. - :param _builtins.str operating_system_distro: Operating system distribution. - :param _builtins.str operating_system_version: Version of the operating system. - :param _builtins.str rescue_bus: Sets the device bus when the image is used as a rescue image. - :param _builtins.str rescue_device: Sets the device when the image is used as a rescue image. - :param _builtins.bool secure_boot: Enables Secure Boot. - :param _builtins.bool uefi: Enables UEFI boot. - :param _builtins.str video_model: Sets Graphic device model. - :param _builtins.bool virtio_scsi: Enables the use of VirtIO SCSI to provide block device access. By default instances use VirtIO Block. + :param 'ApplicationLoadBalancerListenerHttpsCertificateConfigArgs' certificate_config: TLS termination certificate configuration. """ - if boot_menu is not None: - pulumi.set(__self__, "boot_menu", boot_menu) - if cdrom_bus is not None: - pulumi.set(__self__, "cdrom_bus", cdrom_bus) - if disk_bus is not None: - pulumi.set(__self__, "disk_bus", disk_bus) - if nic_model is not None: - pulumi.set(__self__, "nic_model", nic_model) - if operating_system is not None: - pulumi.set(__self__, "operating_system", operating_system) - if operating_system_distro is not None: - pulumi.set(__self__, "operating_system_distro", operating_system_distro) - if operating_system_version is not None: - pulumi.set(__self__, "operating_system_version", operating_system_version) - if rescue_bus is not None: - pulumi.set(__self__, "rescue_bus", rescue_bus) - if rescue_device is not None: - pulumi.set(__self__, "rescue_device", rescue_device) - if secure_boot is not None: - pulumi.set(__self__, "secure_boot", secure_boot) - if uefi is not None: - pulumi.set(__self__, "uefi", uefi) - if video_model is not None: - pulumi.set(__self__, "video_model", video_model) - if virtio_scsi is not None: - pulumi.set(__self__, "virtio_scsi", virtio_scsi) + pulumi.set(__self__, "certificate_config", certificate_config) @_builtins.property - @pulumi.getter(name="bootMenu") - def boot_menu(self) -> Optional[_builtins.bool]: + @pulumi.getter(name="certificateConfig") + def certificate_config(self) -> 'outputs.ApplicationLoadBalancerListenerHttpsCertificateConfig': """ - Enables the BIOS bootmenu. + TLS termination certificate configuration. """ - return pulumi.get(self, "boot_menu") + return pulumi.get(self, "certificate_config") - @_builtins.property - @pulumi.getter(name="cdromBus") - def cdrom_bus(self) -> Optional[_builtins.str]: - """ - Sets CDROM bus controller type. - """ - return pulumi.get(self, "cdrom_bus") - @_builtins.property - @pulumi.getter(name="diskBus") - def disk_bus(self) -> Optional[_builtins.str]: - """ - Sets Disk bus controller type. - """ - return pulumi.get(self, "disk_bus") +@pulumi.output_type +class ApplicationLoadBalancerListenerHttpsCertificateConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "certificateIds": + suggest = "certificate_ids" - @_builtins.property - @pulumi.getter(name="nicModel") - def nic_model(self) -> Optional[_builtins.str]: - """ - Sets virtual network interface model. - """ - return pulumi.get(self, "nic_model") + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApplicationLoadBalancerListenerHttpsCertificateConfig. Access the value via the '{suggest}' property getter instead.") - @_builtins.property - @pulumi.getter(name="operatingSystem") - def operating_system(self) -> Optional[_builtins.str]: - """ - Enables operating system specific optimizations. - """ - return pulumi.get(self, "operating_system") + def __getitem__(self, key: str) -> Any: + ApplicationLoadBalancerListenerHttpsCertificateConfig.__key_warning(key) + return super().__getitem__(key) - @_builtins.property - @pulumi.getter(name="operatingSystemDistro") - def operating_system_distro(self) -> Optional[_builtins.str]: - """ - Operating system distribution. - """ - return pulumi.get(self, "operating_system_distro") + def get(self, key: str, default = None) -> Any: + ApplicationLoadBalancerListenerHttpsCertificateConfig.__key_warning(key) + return super().get(key, default) - @_builtins.property - @pulumi.getter(name="operatingSystemVersion") - def operating_system_version(self) -> Optional[_builtins.str]: + def __init__(__self__, *, + certificate_ids: Sequence[_builtins.str]): """ - Version of the operating system. + :param Sequence[_builtins.str] certificate_ids: Certificate IDs for TLS termination. """ - return pulumi.get(self, "operating_system_version") + pulumi.set(__self__, "certificate_ids", certificate_ids) @_builtins.property - @pulumi.getter(name="rescueBus") - def rescue_bus(self) -> Optional[_builtins.str]: + @pulumi.getter(name="certificateIds") + def certificate_ids(self) -> Sequence[_builtins.str]: """ - Sets the device bus when the image is used as a rescue image. + Certificate IDs for TLS termination. """ - return pulumi.get(self, "rescue_bus") + return pulumi.get(self, "certificate_ids") - @_builtins.property - @pulumi.getter(name="rescueDevice") - def rescue_device(self) -> Optional[_builtins.str]: - """ - Sets the device when the image is used as a rescue image. - """ - return pulumi.get(self, "rescue_device") - @_builtins.property - @pulumi.getter(name="secureBoot") - def secure_boot(self) -> Optional[_builtins.bool]: +@pulumi.output_type +class ApplicationLoadBalancerLoadBalancerSecurityGroup(dict): + def __init__(__self__, *, + id: Optional[_builtins.str] = None, + name: Optional[_builtins.str] = None): """ - Enables Secure Boot. + :param _builtins.str id: ID of the security Group + :param _builtins.str name: Name of the security Group """ - return pulumi.get(self, "secure_boot") + if id is not None: + pulumi.set(__self__, "id", id) + if name is not None: + pulumi.set(__self__, "name", name) @_builtins.property @pulumi.getter - def uefi(self) -> Optional[_builtins.bool]: - """ - Enables UEFI boot. - """ - return pulumi.get(self, "uefi") - - @_builtins.property - @pulumi.getter(name="videoModel") - def video_model(self) -> Optional[_builtins.str]: + def id(self) -> Optional[_builtins.str]: """ - Sets Graphic device model. + ID of the security Group """ - return pulumi.get(self, "video_model") + return pulumi.get(self, "id") @_builtins.property - @pulumi.getter(name="virtioScsi") - def virtio_scsi(self) -> Optional[_builtins.bool]: + @pulumi.getter + def name(self) -> Optional[_builtins.str]: """ - Enables the use of VirtIO SCSI to provide block device access. By default instances use VirtIO Block. + Name of the security Group """ - return pulumi.get(self, "virtio_scsi") + return pulumi.get(self, "name") @pulumi.output_type -class LoadbalancerListener(dict): +class ApplicationLoadBalancerNetwork(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "targetPool": - suggest = "target_pool" - elif key == "displayName": - suggest = "display_name" - elif key == "serverNameIndicators": - suggest = "server_name_indicators" + if key == "networkId": + suggest = "network_id" if suggest: - pulumi.log.warn(f"Key '{key}' not found in LoadbalancerListener. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ApplicationLoadBalancerNetwork. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - LoadbalancerListener.__key_warning(key) + ApplicationLoadBalancerNetwork.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - LoadbalancerListener.__key_warning(key) + ApplicationLoadBalancerNetwork.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - port: _builtins.int, - protocol: _builtins.str, - target_pool: _builtins.str, - display_name: Optional[_builtins.str] = None, - server_name_indicators: Optional[Sequence['outputs.LoadbalancerListenerServerNameIndicator']] = None, - tcp: Optional['outputs.LoadbalancerListenerTcp'] = None, - udp: Optional['outputs.LoadbalancerListenerUdp'] = None): + network_id: _builtins.str, + role: _builtins.str): """ - :param _builtins.int port: Port number where we listen for traffic. - :param _builtins.str protocol: 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`. - :param _builtins.str target_pool: Reference target pool by target pool name. - :param Sequence['LoadbalancerListenerServerNameIndicatorArgs'] server_name_indicators: A list of domain names to match in order to pass TLS traffic to the target pool in the current listener - :param 'LoadbalancerListenerTcpArgs' tcp: Options that are specific to the TCP protocol. - :param 'LoadbalancerListenerUdpArgs' udp: Options that are specific to the UDP protocol. + :param _builtins.str network_id: STACKIT network ID the Application Load Balancer and/or targets are in. + :param _builtins.str role: 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`. """ - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "target_pool", target_pool) - if display_name is not None: - pulumi.set(__self__, "display_name", display_name) - if server_name_indicators is not None: - pulumi.set(__self__, "server_name_indicators", server_name_indicators) - if tcp is not None: - pulumi.set(__self__, "tcp", tcp) - if udp is not None: - pulumi.set(__self__, "udp", udp) + pulumi.set(__self__, "network_id", network_id) + pulumi.set(__self__, "role", role) @_builtins.property - @pulumi.getter - def port(self) -> _builtins.int: + @pulumi.getter(name="networkId") + def network_id(self) -> _builtins.str: """ - Port number where we listen for traffic. + STACKIT network ID the Application Load Balancer and/or targets are in. """ - return pulumi.get(self, "port") + return pulumi.get(self, "network_id") @_builtins.property @pulumi.getter - def protocol(self) -> _builtins.str: + def role(self) -> _builtins.str: """ - 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`. + 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`. """ - return pulumi.get(self, "protocol") + return pulumi.get(self, "role") - @_builtins.property - @pulumi.getter(name="targetPool") - def target_pool(self) -> _builtins.str: - """ - Reference target pool by target pool name. - """ - return pulumi.get(self, "target_pool") - @_builtins.property - @pulumi.getter(name="displayName") - def display_name(self) -> Optional[_builtins.str]: - return pulumi.get(self, "display_name") +@pulumi.output_type +class ApplicationLoadBalancerOptions(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "accessControl": + suggest = "access_control" + elif key == "ephemeralAddress": + suggest = "ephemeral_address" + elif key == "privateNetworkOnly": + suggest = "private_network_only" - @_builtins.property - @pulumi.getter(name="serverNameIndicators") - def server_name_indicators(self) -> Optional[Sequence['outputs.LoadbalancerListenerServerNameIndicator']]: + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApplicationLoadBalancerOptions. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ApplicationLoadBalancerOptions.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ApplicationLoadBalancerOptions.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + access_control: Optional['outputs.ApplicationLoadBalancerOptionsAccessControl'] = None, + ephemeral_address: Optional[_builtins.bool] = None, + observability: Optional['outputs.ApplicationLoadBalancerOptionsObservability'] = None, + private_network_only: Optional[_builtins.bool] = None): """ - A list of domain names to match in order to pass TLS traffic to the target pool in the current listener + :param 'ApplicationLoadBalancerOptionsAccessControlArgs' access_control: Use this option to limit the IP ranges that can use the Application Load Balancer. + :param _builtins.bool ephemeral_address: 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. + :param 'ApplicationLoadBalancerOptionsObservabilityArgs' observability: We offer Load Balancer observability via STACKIT Observability or external solutions. + :param _builtins.bool private_network_only: Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. """ - return pulumi.get(self, "server_name_indicators") + if access_control is not None: + pulumi.set(__self__, "access_control", access_control) + if ephemeral_address is not None: + pulumi.set(__self__, "ephemeral_address", ephemeral_address) + if observability is not None: + pulumi.set(__self__, "observability", observability) + if private_network_only is not None: + pulumi.set(__self__, "private_network_only", private_network_only) @_builtins.property - @pulumi.getter - def tcp(self) -> Optional['outputs.LoadbalancerListenerTcp']: + @pulumi.getter(name="accessControl") + def access_control(self) -> Optional['outputs.ApplicationLoadBalancerOptionsAccessControl']: """ - Options that are specific to the TCP protocol. + Use this option to limit the IP ranges that can use the Application Load Balancer. """ - return pulumi.get(self, "tcp") + return pulumi.get(self, "access_control") @_builtins.property - @pulumi.getter - def udp(self) -> Optional['outputs.LoadbalancerListenerUdp']: + @pulumi.getter(name="ephemeralAddress") + def ephemeral_address(self) -> Optional[_builtins.bool]: """ - Options that are specific to the UDP protocol. + 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. """ - return pulumi.get(self, "udp") + return pulumi.get(self, "ephemeral_address") - -@pulumi.output_type -class LoadbalancerListenerServerNameIndicator(dict): - def __init__(__self__, *, - name: Optional[_builtins.str] = None): + @_builtins.property + @pulumi.getter + def observability(self) -> Optional['outputs.ApplicationLoadBalancerOptionsObservability']: """ - :param _builtins.str name: A domain name to match in order to pass TLS traffic to the target pool in the current listener + We offer Load Balancer observability via STACKIT Observability or external solutions. """ - if name is not None: - pulumi.set(__self__, "name", name) + return pulumi.get(self, "observability") @_builtins.property - @pulumi.getter - def name(self) -> Optional[_builtins.str]: + @pulumi.getter(name="privateNetworkOnly") + def private_network_only(self) -> Optional[_builtins.bool]: """ - A domain name to match in order to pass TLS traffic to the target pool in the current listener + Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. """ - return pulumi.get(self, "name") + return pulumi.get(self, "private_network_only") @pulumi.output_type -class LoadbalancerListenerTcp(dict): +class ApplicationLoadBalancerOptionsAccessControl(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "idleTimeout": - suggest = "idle_timeout" + if key == "allowedSourceRanges": + suggest = "allowed_source_ranges" if suggest: - pulumi.log.warn(f"Key '{key}' not found in LoadbalancerListenerTcp. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ApplicationLoadBalancerOptionsAccessControl. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - LoadbalancerListenerTcp.__key_warning(key) + ApplicationLoadBalancerOptionsAccessControl.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - LoadbalancerListenerTcp.__key_warning(key) + ApplicationLoadBalancerOptionsAccessControl.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - idle_timeout: Optional[_builtins.str] = None): + allowed_source_ranges: Sequence[_builtins.str]): """ - :param _builtins.str idle_timeout: 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 + :param Sequence[_builtins.str] allowed_source_ranges: Application Load Balancer is accessible only from an IP address in this range. """ - if idle_timeout is not None: - pulumi.set(__self__, "idle_timeout", idle_timeout) + pulumi.set(__self__, "allowed_source_ranges", allowed_source_ranges) @_builtins.property - @pulumi.getter(name="idleTimeout") - def idle_timeout(self) -> Optional[_builtins.str]: + @pulumi.getter(name="allowedSourceRanges") + def allowed_source_ranges(self) -> Sequence[_builtins.str]: """ - 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 + Application Load Balancer is accessible only from an IP address in this range. """ - return pulumi.get(self, "idle_timeout") + return pulumi.get(self, "allowed_source_ranges") @pulumi.output_type -class LoadbalancerListenerUdp(dict): +class ApplicationLoadBalancerOptionsObservability(dict): + def __init__(__self__, *, + logs: Optional['outputs.ApplicationLoadBalancerOptionsObservabilityLogs'] = None, + metrics: Optional['outputs.ApplicationLoadBalancerOptionsObservabilityMetrics'] = None): + """ + :param 'ApplicationLoadBalancerOptionsObservabilityLogsArgs' logs: Observability logs configuration. + :param 'ApplicationLoadBalancerOptionsObservabilityMetricsArgs' metrics: Observability metrics configuration. + """ + if logs is not None: + pulumi.set(__self__, "logs", logs) + if metrics is not None: + pulumi.set(__self__, "metrics", metrics) + + @_builtins.property + @pulumi.getter + def logs(self) -> Optional['outputs.ApplicationLoadBalancerOptionsObservabilityLogs']: + """ + Observability logs configuration. + """ + return pulumi.get(self, "logs") + + @_builtins.property + @pulumi.getter + def metrics(self) -> Optional['outputs.ApplicationLoadBalancerOptionsObservabilityMetrics']: + """ + Observability metrics configuration. + """ + return pulumi.get(self, "metrics") + + +@pulumi.output_type +class ApplicationLoadBalancerOptionsObservabilityLogs(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "idleTimeout": - suggest = "idle_timeout" + if key == "credentialsRef": + suggest = "credentials_ref" + elif key == "pushUrl": + suggest = "push_url" if suggest: - pulumi.log.warn(f"Key '{key}' not found in LoadbalancerListenerUdp. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ApplicationLoadBalancerOptionsObservabilityLogs. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - LoadbalancerListenerUdp.__key_warning(key) + ApplicationLoadBalancerOptionsObservabilityLogs.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - LoadbalancerListenerUdp.__key_warning(key) + ApplicationLoadBalancerOptionsObservabilityLogs.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - idle_timeout: Optional[_builtins.str] = None): + credentials_ref: _builtins.str, + push_url: _builtins.str): """ - :param _builtins.str idle_timeout: 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 + :param _builtins.str credentials_ref: 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. + :param _builtins.str push_url: 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. """ - if idle_timeout is not None: - pulumi.set(__self__, "idle_timeout", idle_timeout) + pulumi.set(__self__, "credentials_ref", credentials_ref) + pulumi.set(__self__, "push_url", push_url) @_builtins.property - @pulumi.getter(name="idleTimeout") - def idle_timeout(self) -> Optional[_builtins.str]: + @pulumi.getter(name="credentialsRef") + def credentials_ref(self) -> _builtins.str: """ - 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 + 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. """ - return pulumi.get(self, "idle_timeout") + return pulumi.get(self, "credentials_ref") + + @_builtins.property + @pulumi.getter(name="pushUrl") + def push_url(self) -> _builtins.str: + """ + 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. + """ + return pulumi.get(self, "push_url") @pulumi.output_type -class LoadbalancerNetwork(dict): +class ApplicationLoadBalancerOptionsObservabilityMetrics(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "networkId": - suggest = "network_id" + if key == "credentialsRef": + suggest = "credentials_ref" + elif key == "pushUrl": + suggest = "push_url" if suggest: - pulumi.log.warn(f"Key '{key}' not found in LoadbalancerNetwork. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ApplicationLoadBalancerOptionsObservabilityMetrics. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - LoadbalancerNetwork.__key_warning(key) + ApplicationLoadBalancerOptionsObservabilityMetrics.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - LoadbalancerNetwork.__key_warning(key) + ApplicationLoadBalancerOptionsObservabilityMetrics.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - network_id: _builtins.str, - role: _builtins.str): + credentials_ref: _builtins.str, + push_url: _builtins.str): """ - :param _builtins.str network_id: Openstack network ID. - :param _builtins.str role: The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + :param _builtins.str credentials_ref: 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. + :param _builtins.str push_url: 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. """ - pulumi.set(__self__, "network_id", network_id) - pulumi.set(__self__, "role", role) + pulumi.set(__self__, "credentials_ref", credentials_ref) + pulumi.set(__self__, "push_url", push_url) @_builtins.property - @pulumi.getter(name="networkId") - def network_id(self) -> _builtins.str: + @pulumi.getter(name="credentialsRef") + def credentials_ref(self) -> _builtins.str: """ - Openstack network ID. + 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. """ - return pulumi.get(self, "network_id") + return pulumi.get(self, "credentials_ref") @_builtins.property - @pulumi.getter - def role(self) -> _builtins.str: + @pulumi.getter(name="pushUrl") + def push_url(self) -> _builtins.str: """ - The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + 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. """ - return pulumi.get(self, "role") + return pulumi.get(self, "push_url") @pulumi.output_type -class LoadbalancerOptions(dict): +class ApplicationLoadBalancerTargetPool(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "privateNetworkOnly": - suggest = "private_network_only" + if key == "targetPort": + suggest = "target_port" + elif key == "activeHealthCheck": + suggest = "active_health_check" + elif key == "tlsConfig": + suggest = "tls_config" if suggest: - pulumi.log.warn(f"Key '{key}' not found in LoadbalancerOptions. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ApplicationLoadBalancerTargetPool. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - LoadbalancerOptions.__key_warning(key) + ApplicationLoadBalancerTargetPool.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - LoadbalancerOptions.__key_warning(key) + ApplicationLoadBalancerTargetPool.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - acls: Optional[Sequence[_builtins.str]] = None, - observability: Optional['outputs.LoadbalancerOptionsObservability'] = None, - private_network_only: Optional[_builtins.bool] = None): + name: _builtins.str, + target_port: _builtins.int, + targets: Sequence['outputs.ApplicationLoadBalancerTargetPoolTarget'], + active_health_check: Optional['outputs.ApplicationLoadBalancerTargetPoolActiveHealthCheck'] = None, + tls_config: Optional['outputs.ApplicationLoadBalancerTargetPoolTlsConfig'] = None): """ - :param Sequence[_builtins.str] acls: Load Balancer is accessible only from an IP address in this range. - :param 'LoadbalancerOptionsObservabilityArgs' observability: We offer Load Balancer metrics observability via ARGUS or external solutions. Not changeable after creation. - :param _builtins.bool private_network_only: If true, Load Balancer is accessible only via a private network IP address. + :param _builtins.str name: Target pool name. + :param _builtins.int target_port: The number identifying the port where each target listens for traffic. + :param Sequence['ApplicationLoadBalancerTargetPoolTargetArgs'] targets: List of all targets which will be used in the pool. Limited to 250. + :param 'ApplicationLoadBalancerTargetPoolTlsConfigArgs' tls_config: Configuration for TLS bridging. """ - if acls is not None: - pulumi.set(__self__, "acls", acls) - if observability is not None: - pulumi.set(__self__, "observability", observability) - if private_network_only is not None: - pulumi.set(__self__, "private_network_only", private_network_only) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "target_port", target_port) + pulumi.set(__self__, "targets", targets) + if active_health_check is not None: + pulumi.set(__self__, "active_health_check", active_health_check) + if tls_config is not None: + pulumi.set(__self__, "tls_config", tls_config) @_builtins.property @pulumi.getter - def acls(self) -> Optional[Sequence[_builtins.str]]: + def name(self) -> _builtins.str: """ - Load Balancer is accessible only from an IP address in this range. + Target pool name. """ - return pulumi.get(self, "acls") + return pulumi.get(self, "name") @_builtins.property - @pulumi.getter - def observability(self) -> Optional['outputs.LoadbalancerOptionsObservability']: + @pulumi.getter(name="targetPort") + def target_port(self) -> _builtins.int: """ - We offer Load Balancer metrics observability via ARGUS or external solutions. Not changeable after creation. + The number identifying the port where each target listens for traffic. """ - return pulumi.get(self, "observability") + return pulumi.get(self, "target_port") @_builtins.property - @pulumi.getter(name="privateNetworkOnly") - def private_network_only(self) -> Optional[_builtins.bool]: + @pulumi.getter + def targets(self) -> Sequence['outputs.ApplicationLoadBalancerTargetPoolTarget']: """ - If true, Load Balancer is accessible only via a private network IP address. + List of all targets which will be used in the pool. Limited to 250. """ - return pulumi.get(self, "private_network_only") + return pulumi.get(self, "targets") + + @_builtins.property + @pulumi.getter(name="activeHealthCheck") + def active_health_check(self) -> Optional['outputs.ApplicationLoadBalancerTargetPoolActiveHealthCheck']: + return pulumi.get(self, "active_health_check") + + @_builtins.property + @pulumi.getter(name="tlsConfig") + def tls_config(self) -> Optional['outputs.ApplicationLoadBalancerTargetPoolTlsConfig']: + """ + Configuration for TLS bridging. + """ + return pulumi.get(self, "tls_config") @pulumi.output_type -class LoadbalancerOptionsObservability(dict): +class ApplicationLoadBalancerTargetPoolActiveHealthCheck(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "healthyThreshold": + suggest = "healthy_threshold" + elif key == "intervalJitter": + suggest = "interval_jitter" + elif key == "unhealthyThreshold": + suggest = "unhealthy_threshold" + elif key == "httpHealthChecks": + suggest = "http_health_checks" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApplicationLoadBalancerTargetPoolActiveHealthCheck. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ApplicationLoadBalancerTargetPoolActiveHealthCheck.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ApplicationLoadBalancerTargetPoolActiveHealthCheck.__key_warning(key) + return super().get(key, default) + def __init__(__self__, *, - logs: Optional['outputs.LoadbalancerOptionsObservabilityLogs'] = None, - metrics: Optional['outputs.LoadbalancerOptionsObservabilityMetrics'] = None): + healthy_threshold: _builtins.int, + interval: _builtins.str, + interval_jitter: _builtins.str, + timeout: _builtins.str, + unhealthy_threshold: _builtins.int, + http_health_checks: Optional['outputs.ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks'] = None): """ - :param 'LoadbalancerOptionsObservabilityLogsArgs' logs: Observability logs configuration. Not changeable after creation. - :param 'LoadbalancerOptionsObservabilityMetricsArgs' metrics: Observability metrics configuration. Not changeable after creation. + :param _builtins.int healthy_threshold: Healthy threshold of the health checking. + :param _builtins.str interval: Interval duration of health checking in seconds. + :param _builtins.str interval_jitter: Interval duration threshold of the health checking in seconds. + :param _builtins.str timeout: Active health checking timeout duration in seconds. + :param _builtins.int unhealthy_threshold: Unhealthy threshold of the health checking. + :param 'ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs' http_health_checks: Options for the HTTP health checking. """ - if logs is not None: - pulumi.set(__self__, "logs", logs) - if metrics is not None: - pulumi.set(__self__, "metrics", metrics) + pulumi.set(__self__, "healthy_threshold", healthy_threshold) + pulumi.set(__self__, "interval", interval) + pulumi.set(__self__, "interval_jitter", interval_jitter) + pulumi.set(__self__, "timeout", timeout) + pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + if http_health_checks is not None: + pulumi.set(__self__, "http_health_checks", http_health_checks) + + @_builtins.property + @pulumi.getter(name="healthyThreshold") + def healthy_threshold(self) -> _builtins.int: + """ + Healthy threshold of the health checking. + """ + return pulumi.get(self, "healthy_threshold") @_builtins.property @pulumi.getter - def logs(self) -> Optional['outputs.LoadbalancerOptionsObservabilityLogs']: + def interval(self) -> _builtins.str: """ - Observability logs configuration. Not changeable after creation. + Interval duration of health checking in seconds. """ - return pulumi.get(self, "logs") + return pulumi.get(self, "interval") + + @_builtins.property + @pulumi.getter(name="intervalJitter") + def interval_jitter(self) -> _builtins.str: + """ + Interval duration threshold of the health checking in seconds. + """ + return pulumi.get(self, "interval_jitter") @_builtins.property @pulumi.getter - def metrics(self) -> Optional['outputs.LoadbalancerOptionsObservabilityMetrics']: + def timeout(self) -> _builtins.str: """ - Observability metrics configuration. Not changeable after creation. + Active health checking timeout duration in seconds. """ - return pulumi.get(self, "metrics") + return pulumi.get(self, "timeout") + + @_builtins.property + @pulumi.getter(name="unhealthyThreshold") + def unhealthy_threshold(self) -> _builtins.int: + """ + Unhealthy threshold of the health checking. + """ + return pulumi.get(self, "unhealthy_threshold") + + @_builtins.property + @pulumi.getter(name="httpHealthChecks") + def http_health_checks(self) -> Optional['outputs.ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks']: + """ + Options for the HTTP health checking. + """ + return pulumi.get(self, "http_health_checks") @pulumi.output_type -class LoadbalancerOptionsObservabilityLogs(dict): +class ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "credentialsRef": - suggest = "credentials_ref" - elif key == "pushUrl": - suggest = "push_url" + if key == "okStatuses": + suggest = "ok_statuses" if suggest: - pulumi.log.warn(f"Key '{key}' not found in LoadbalancerOptionsObservabilityLogs. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - LoadbalancerOptionsObservabilityLogs.__key_warning(key) + ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - LoadbalancerOptionsObservabilityLogs.__key_warning(key) + ApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecks.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - credentials_ref: Optional[_builtins.str] = None, - push_url: Optional[_builtins.str] = None): + ok_statuses: Sequence[_builtins.str], + path: _builtins.str): """ - :param _builtins.str credentials_ref: Credentials reference for logs. Not changeable after creation. - :param _builtins.str push_url: Credentials reference for logs. Not changeable after creation. + :param Sequence[_builtins.str] ok_statuses: List of HTTP status codes that indicate a healthy response. + :param _builtins.str path: Path to send the health check request to. """ - if credentials_ref is not None: - pulumi.set(__self__, "credentials_ref", credentials_ref) - if push_url is not None: - pulumi.set(__self__, "push_url", push_url) + pulumi.set(__self__, "ok_statuses", ok_statuses) + pulumi.set(__self__, "path", path) @_builtins.property - @pulumi.getter(name="credentialsRef") - def credentials_ref(self) -> Optional[_builtins.str]: + @pulumi.getter(name="okStatuses") + def ok_statuses(self) -> Sequence[_builtins.str]: """ - Credentials reference for logs. Not changeable after creation. + List of HTTP status codes that indicate a healthy response. """ - return pulumi.get(self, "credentials_ref") + return pulumi.get(self, "ok_statuses") @_builtins.property - @pulumi.getter(name="pushUrl") - def push_url(self) -> Optional[_builtins.str]: + @pulumi.getter + def path(self) -> _builtins.str: """ - Credentials reference for logs. Not changeable after creation. + Path to send the health check request to. """ - return pulumi.get(self, "push_url") + return pulumi.get(self, "path") @pulumi.output_type -class LoadbalancerOptionsObservabilityMetrics(dict): +class ApplicationLoadBalancerTargetPoolTarget(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "credentialsRef": - suggest = "credentials_ref" - elif key == "pushUrl": - suggest = "push_url" + if key == "displayName": + suggest = "display_name" if suggest: - pulumi.log.warn(f"Key '{key}' not found in LoadbalancerOptionsObservabilityMetrics. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ApplicationLoadBalancerTargetPoolTarget. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - LoadbalancerOptionsObservabilityMetrics.__key_warning(key) + ApplicationLoadBalancerTargetPoolTarget.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - LoadbalancerOptionsObservabilityMetrics.__key_warning(key) + ApplicationLoadBalancerTargetPoolTarget.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - credentials_ref: Optional[_builtins.str] = None, - push_url: Optional[_builtins.str] = None): + ip: _builtins.str, + display_name: Optional[_builtins.str] = None): """ - :param _builtins.str credentials_ref: Credentials reference for metrics. Not changeable after creation. - :param _builtins.str push_url: Credentials reference for metrics. Not changeable after creation. + :param _builtins.str ip: Private target IP, which must by unique within a target pool. + :param _builtins.str display_name: Target display name """ - if credentials_ref is not None: - pulumi.set(__self__, "credentials_ref", credentials_ref) - if push_url is not None: - pulumi.set(__self__, "push_url", push_url) + pulumi.set(__self__, "ip", ip) + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) @_builtins.property - @pulumi.getter(name="credentialsRef") - def credentials_ref(self) -> Optional[_builtins.str]: + @pulumi.getter + def ip(self) -> _builtins.str: """ - Credentials reference for metrics. Not changeable after creation. + Private target IP, which must by unique within a target pool. """ - return pulumi.get(self, "credentials_ref") + return pulumi.get(self, "ip") @_builtins.property - @pulumi.getter(name="pushUrl") - def push_url(self) -> Optional[_builtins.str]: + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[_builtins.str]: """ - Credentials reference for metrics. Not changeable after creation. + Target display name """ - return pulumi.get(self, "push_url") + return pulumi.get(self, "display_name") @pulumi.output_type -class LoadbalancerTargetPool(dict): +class ApplicationLoadBalancerTargetPoolTlsConfig(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "targetPort": - suggest = "target_port" - elif key == "activeHealthCheck": - suggest = "active_health_check" - elif key == "sessionPersistence": - suggest = "session_persistence" + if key == "customCa": + suggest = "custom_ca" + elif key == "skipCertificateValidation": + suggest = "skip_certificate_validation" if suggest: - pulumi.log.warn(f"Key '{key}' not found in LoadbalancerTargetPool. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ApplicationLoadBalancerTargetPoolTlsConfig. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - LoadbalancerTargetPool.__key_warning(key) + ApplicationLoadBalancerTargetPoolTlsConfig.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - LoadbalancerTargetPool.__key_warning(key) + ApplicationLoadBalancerTargetPoolTlsConfig.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - name: _builtins.str, - target_port: _builtins.int, - targets: Sequence['outputs.LoadbalancerTargetPoolTarget'], - active_health_check: Optional['outputs.LoadbalancerTargetPoolActiveHealthCheck'] = None, - session_persistence: Optional['outputs.LoadbalancerTargetPoolSessionPersistence'] = None): + custom_ca: Optional[_builtins.str] = None, + enabled: Optional[_builtins.bool] = None, + skip_certificate_validation: Optional[_builtins.bool] = None): """ - :param _builtins.str name: Target pool name. - :param _builtins.int target_port: Identical port number where each target listens for traffic. - :param Sequence['LoadbalancerTargetPoolTargetArgs'] targets: List of all targets which will be used in the pool. Limited to 1000. - :param 'LoadbalancerTargetPoolSessionPersistenceArgs' session_persistence: Here you can setup various session persistence options, so far only "`use_source_ip_address`" is supported. + :param _builtins.str custom_ca: 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. + :param _builtins.bool enabled: 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. + :param _builtins.bool skip_certificate_validation: 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! """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "target_port", target_port) - pulumi.set(__self__, "targets", targets) - if active_health_check is not None: - pulumi.set(__self__, "active_health_check", active_health_check) - if session_persistence is not None: - pulumi.set(__self__, "session_persistence", session_persistence) + if custom_ca is not None: + pulumi.set(__self__, "custom_ca", custom_ca) + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if skip_certificate_validation is not None: + pulumi.set(__self__, "skip_certificate_validation", skip_certificate_validation) @_builtins.property - @pulumi.getter - def name(self) -> _builtins.str: + @pulumi.getter(name="customCa") + def custom_ca(self) -> Optional[_builtins.str]: """ - Target pool name. + 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. """ - return pulumi.get(self, "name") + return pulumi.get(self, "custom_ca") @_builtins.property - @pulumi.getter(name="targetPort") - def target_port(self) -> _builtins.int: + @pulumi.getter + def enabled(self) -> Optional[_builtins.bool]: """ - Identical port number where each target listens for traffic. + 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. """ - return pulumi.get(self, "target_port") + return pulumi.get(self, "enabled") @_builtins.property - @pulumi.getter - def targets(self) -> Sequence['outputs.LoadbalancerTargetPoolTarget']: + @pulumi.getter(name="skipCertificateValidation") + def skip_certificate_validation(self) -> Optional[_builtins.bool]: """ - List of all targets which will be used in the pool. Limited to 1000. + 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! """ - return pulumi.get(self, "targets") + return pulumi.get(self, "skip_certificate_validation") + + +@pulumi.output_type +class ApplicationLoadBalancerTargetSecurityGroup(dict): + def __init__(__self__, *, + id: Optional[_builtins.str] = None, + name: Optional[_builtins.str] = None): + """ + :param _builtins.str id: ID of the security Group + :param _builtins.str name: Name of the security Group + """ + if id is not None: + pulumi.set(__self__, "id", id) + if name is not None: + pulumi.set(__self__, "name", name) @_builtins.property - @pulumi.getter(name="activeHealthCheck") - def active_health_check(self) -> Optional['outputs.LoadbalancerTargetPoolActiveHealthCheck']: - return pulumi.get(self, "active_health_check") + @pulumi.getter + def id(self) -> Optional[_builtins.str]: + """ + ID of the security Group + """ + return pulumi.get(self, "id") @_builtins.property - @pulumi.getter(name="sessionPersistence") - def session_persistence(self) -> Optional['outputs.LoadbalancerTargetPoolSessionPersistence']: + @pulumi.getter + def name(self) -> Optional[_builtins.str]: """ - Here you can setup various session persistence options, so far only "`use_source_ip_address`" is supported. + Name of the security Group """ - return pulumi.get(self, "session_persistence") + return pulumi.get(self, "name") @pulumi.output_type -class LoadbalancerTargetPoolActiveHealthCheck(dict): +class CdnCustomDomainCertificate(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "healthyThreshold": - suggest = "healthy_threshold" - elif key == "intervalJitter": - suggest = "interval_jitter" - elif key == "unhealthyThreshold": - suggest = "unhealthy_threshold" + if key == "privateKey": + suggest = "private_key" if suggest: - pulumi.log.warn(f"Key '{key}' not found in LoadbalancerTargetPoolActiveHealthCheck. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in CdnCustomDomainCertificate. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - LoadbalancerTargetPoolActiveHealthCheck.__key_warning(key) + CdnCustomDomainCertificate.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - LoadbalancerTargetPoolActiveHealthCheck.__key_warning(key) + CdnCustomDomainCertificate.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - healthy_threshold: Optional[_builtins.int] = None, - interval: Optional[_builtins.str] = None, - interval_jitter: Optional[_builtins.str] = None, - timeout: Optional[_builtins.str] = None, - unhealthy_threshold: Optional[_builtins.int] = None): + certificate: Optional[_builtins.str] = None, + private_key: Optional[_builtins.str] = None, + version: Optional[_builtins.int] = None): """ - :param _builtins.int healthy_threshold: Healthy threshold of the health checking. - :param _builtins.str interval: Interval duration of health checking in seconds. - :param _builtins.str interval_jitter: Interval duration threshold of the health checking in seconds. - :param _builtins.str timeout: Active health checking timeout duration in seconds. - :param _builtins.int unhealthy_threshold: Unhealthy threshold of the health checking. + :param _builtins.str certificate: The PEM-encoded TLS certificate. Required for custom certificates. + :param _builtins.str private_key: The PEM-encoded private key for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. + :param _builtins.int version: A version identifier for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. """ - if healthy_threshold is not None: - pulumi.set(__self__, "healthy_threshold", healthy_threshold) - if interval is not None: - pulumi.set(__self__, "interval", interval) - if interval_jitter is not None: - pulumi.set(__self__, "interval_jitter", interval_jitter) - if timeout is not None: - pulumi.set(__self__, "timeout", timeout) - if unhealthy_threshold is not None: - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + if certificate is not None: + pulumi.set(__self__, "certificate", certificate) + if private_key is not None: + pulumi.set(__self__, "private_key", private_key) + if version is not None: + pulumi.set(__self__, "version", version) @_builtins.property - @pulumi.getter(name="healthyThreshold") - def healthy_threshold(self) -> Optional[_builtins.int]: + @pulumi.getter + def certificate(self) -> Optional[_builtins.str]: """ - Healthy threshold of the health checking. + The PEM-encoded TLS certificate. Required for custom certificates. """ - return pulumi.get(self, "healthy_threshold") + return pulumi.get(self, "certificate") + + @_builtins.property + @pulumi.getter(name="privateKey") + def private_key(self) -> Optional[_builtins.str]: + """ + The PEM-encoded private key for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. + """ + return pulumi.get(self, "private_key") @_builtins.property @pulumi.getter - def interval(self) -> Optional[_builtins.str]: + def version(self) -> Optional[_builtins.int]: """ - Interval duration of health checking in seconds. + A version identifier for the certificate. Required for custom certificates. The certificate will be updated if this field is changed. """ - return pulumi.get(self, "interval") + return pulumi.get(self, "version") + + +@pulumi.output_type +class CdnDistributionConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "blockedCountries": + suggest = "blocked_countries" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CdnDistributionConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CdnDistributionConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CdnDistributionConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + backend: 'outputs.CdnDistributionConfigBackend', + regions: Sequence[_builtins.str], + blocked_countries: Optional[Sequence[_builtins.str]] = None, + optimizer: Optional['outputs.CdnDistributionConfigOptimizer'] = None): + """ + :param 'CdnDistributionConfigBackendArgs' backend: The configured backend for the distribution + :param Sequence[_builtins.str] regions: The configured regions where content will be hosted + :param Sequence[_builtins.str] blocked_countries: The configured countries where distribution of content is blocked + :param 'CdnDistributionConfigOptimizerArgs' optimizer: 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. + """ + pulumi.set(__self__, "backend", backend) + pulumi.set(__self__, "regions", regions) + if blocked_countries is not None: + pulumi.set(__self__, "blocked_countries", blocked_countries) + if optimizer is not None: + pulumi.set(__self__, "optimizer", optimizer) @_builtins.property - @pulumi.getter(name="intervalJitter") - def interval_jitter(self) -> Optional[_builtins.str]: + @pulumi.getter + def backend(self) -> 'outputs.CdnDistributionConfigBackend': """ - Interval duration threshold of the health checking in seconds. + The configured backend for the distribution """ - return pulumi.get(self, "interval_jitter") + return pulumi.get(self, "backend") @_builtins.property @pulumi.getter - def timeout(self) -> Optional[_builtins.str]: + def regions(self) -> Sequence[_builtins.str]: """ - Active health checking timeout duration in seconds. + The configured regions where content will be hosted """ - return pulumi.get(self, "timeout") + return pulumi.get(self, "regions") @_builtins.property - @pulumi.getter(name="unhealthyThreshold") - def unhealthy_threshold(self) -> Optional[_builtins.int]: + @pulumi.getter(name="blockedCountries") + def blocked_countries(self) -> Optional[Sequence[_builtins.str]]: """ - Unhealthy threshold of the health checking. + The configured countries where distribution of content is blocked """ - return pulumi.get(self, "unhealthy_threshold") + return pulumi.get(self, "blocked_countries") + + @_builtins.property + @pulumi.getter + def optimizer(self) -> Optional['outputs.CdnDistributionConfigOptimizer']: + """ + 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. + """ + return pulumi.get(self, "optimizer") @pulumi.output_type -class LoadbalancerTargetPoolSessionPersistence(dict): +class CdnDistributionConfigBackend(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "useSourceIpAddress": - suggest = "use_source_ip_address" + if key == "bucketUrl": + suggest = "bucket_url" + elif key == "originRequestHeaders": + suggest = "origin_request_headers" + elif key == "originUrl": + suggest = "origin_url" if suggest: - pulumi.log.warn(f"Key '{key}' not found in LoadbalancerTargetPoolSessionPersistence. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in CdnDistributionConfigBackend. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - LoadbalancerTargetPoolSessionPersistence.__key_warning(key) + CdnDistributionConfigBackend.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - LoadbalancerTargetPoolSessionPersistence.__key_warning(key) + CdnDistributionConfigBackend.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - use_source_ip_address: Optional[_builtins.bool] = None): + type: _builtins.str, + bucket_url: Optional[_builtins.str] = None, + credentials: Optional['outputs.CdnDistributionConfigBackendCredentials'] = None, + geofencing: Optional[Mapping[str, Sequence[_builtins.str]]] = None, + origin_request_headers: Optional[Mapping[str, _builtins.str]] = None, + origin_url: Optional[_builtins.str] = None, + region: Optional[_builtins.str] = None): """ - :param _builtins.bool use_source_ip_address: 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. + :param _builtins.str type: The configured backend type. Possible values are: `http`, `bucket`. + :param _builtins.str bucket_url: The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + :param 'CdnDistributionConfigBackendCredentialsArgs' credentials: The credentials for the bucket. Required if type is 'bucket'. + :param Mapping[str, Sequence[_builtins.str]] geofencing: The configured type http to configure countries where content is allowed. A map of URLs to a list of countries + :param Mapping[str, _builtins.str] origin_request_headers: The configured type http origin request headers for the backend + :param _builtins.str origin_url: The configured backend type http for the distribution + :param _builtins.str region: The region where the bucket is hosted. Required if type is 'bucket'. """ - if use_source_ip_address is not None: - pulumi.set(__self__, "use_source_ip_address", use_source_ip_address) + pulumi.set(__self__, "type", type) + if bucket_url is not None: + pulumi.set(__self__, "bucket_url", bucket_url) + if credentials is not None: + pulumi.set(__self__, "credentials", credentials) + if geofencing is not None: + pulumi.set(__self__, "geofencing", geofencing) + if origin_request_headers is not None: + pulumi.set(__self__, "origin_request_headers", origin_request_headers) + if origin_url is not None: + pulumi.set(__self__, "origin_url", origin_url) + if region is not None: + pulumi.set(__self__, "region", region) @_builtins.property - @pulumi.getter(name="useSourceIpAddress") - def use_source_ip_address(self) -> Optional[_builtins.bool]: + @pulumi.getter + def type(self) -> _builtins.str: """ - 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. + The configured backend type. Possible values are: `http`, `bucket`. """ - return pulumi.get(self, "use_source_ip_address") + return pulumi.get(self, "type") + + @_builtins.property + @pulumi.getter(name="bucketUrl") + def bucket_url(self) -> Optional[_builtins.str]: + """ + The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + """ + return pulumi.get(self, "bucket_url") + + @_builtins.property + @pulumi.getter + def credentials(self) -> Optional['outputs.CdnDistributionConfigBackendCredentials']: + """ + The credentials for the bucket. Required if type is 'bucket'. + """ + return pulumi.get(self, "credentials") + + @_builtins.property + @pulumi.getter + def geofencing(self) -> Optional[Mapping[str, Sequence[_builtins.str]]]: + """ + The configured type http to configure countries where content is allowed. A map of URLs to a list of countries + """ + return pulumi.get(self, "geofencing") + + @_builtins.property + @pulumi.getter(name="originRequestHeaders") + def origin_request_headers(self) -> Optional[Mapping[str, _builtins.str]]: + """ + The configured type http origin request headers for the backend + """ + return pulumi.get(self, "origin_request_headers") + + @_builtins.property + @pulumi.getter(name="originUrl") + def origin_url(self) -> Optional[_builtins.str]: + """ + The configured backend type http for the distribution + """ + return pulumi.get(self, "origin_url") + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[_builtins.str]: + """ + The region where the bucket is hosted. Required if type is 'bucket'. + """ + return pulumi.get(self, "region") @pulumi.output_type -class LoadbalancerTargetPoolTarget(dict): +class CdnDistributionConfigBackendCredentials(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "displayName": - suggest = "display_name" + if key == "accessKeyId": + suggest = "access_key_id" + elif key == "secretAccessKey": + suggest = "secret_access_key" if suggest: - pulumi.log.warn(f"Key '{key}' not found in LoadbalancerTargetPoolTarget. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in CdnDistributionConfigBackendCredentials. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - LoadbalancerTargetPoolTarget.__key_warning(key) + CdnDistributionConfigBackendCredentials.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - LoadbalancerTargetPoolTarget.__key_warning(key) + CdnDistributionConfigBackendCredentials.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - display_name: _builtins.str, - ip: _builtins.str): + access_key_id: _builtins.str, + secret_access_key: _builtins.str): """ - :param _builtins.str display_name: Target display name - :param _builtins.str ip: Target IP + :param _builtins.str access_key_id: The access key for the bucket. Required if type is 'bucket'. + :param _builtins.str secret_access_key: The access key for the bucket. Required if type is 'bucket'. """ - pulumi.set(__self__, "display_name", display_name) - pulumi.set(__self__, "ip", ip) + pulumi.set(__self__, "access_key_id", access_key_id) + pulumi.set(__self__, "secret_access_key", secret_access_key) @_builtins.property - @pulumi.getter(name="displayName") - def display_name(self) -> _builtins.str: + @pulumi.getter(name="accessKeyId") + def access_key_id(self) -> _builtins.str: """ - Target display name + The access key for the bucket. Required if type is 'bucket'. """ - return pulumi.get(self, "display_name") + return pulumi.get(self, "access_key_id") @_builtins.property - @pulumi.getter - def ip(self) -> _builtins.str: + @pulumi.getter(name="secretAccessKey") + def secret_access_key(self) -> _builtins.str: """ - Target IP + The access key for the bucket. Required if type is 'bucket'. """ - return pulumi.get(self, "ip") + return pulumi.get(self, "secret_access_key") @pulumi.output_type -class LogmeInstanceParameters(dict): +class CdnDistributionConfigOptimizer(dict): + def __init__(__self__, *, + enabled: Optional[_builtins.bool] = None): + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + + @_builtins.property + @pulumi.getter + def enabled(self) -> Optional[_builtins.bool]: + return pulumi.get(self, "enabled") + + +@pulumi.output_type +class CdnDistributionDomain(dict): + def __init__(__self__, *, + errors: Optional[Sequence[_builtins.str]] = None, + name: Optional[_builtins.str] = None, + status: Optional[_builtins.str] = None, + type: Optional[_builtins.str] = None): + """ + :param Sequence[_builtins.str] errors: List of domain errors + :param _builtins.str name: The name of the domain + :param _builtins.str status: The status of the domain + :param _builtins.str type: 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 + """ + if errors is not None: + pulumi.set(__self__, "errors", errors) + if name is not None: + pulumi.set(__self__, "name", name) + if status is not None: + pulumi.set(__self__, "status", status) + if type is not None: + pulumi.set(__self__, "type", type) + + @_builtins.property + @pulumi.getter + def errors(self) -> Optional[Sequence[_builtins.str]]: + """ + List of domain errors + """ + return pulumi.get(self, "errors") + + @_builtins.property + @pulumi.getter + def name(self) -> Optional[_builtins.str]: + """ + The name of the domain + """ + return pulumi.get(self, "name") + + @_builtins.property + @pulumi.getter + def status(self) -> Optional[_builtins.str]: + """ + The status of the domain + """ + return pulumi.get(self, "status") + + @_builtins.property + @pulumi.getter + def type(self) -> Optional[_builtins.str]: + """ + 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 + """ + return pulumi.get(self, "type") + + +@pulumi.output_type +class ImageChecksum(dict): + def __init__(__self__, *, + algorithm: Optional[_builtins.str] = None, + digest: Optional[_builtins.str] = None): + """ + :param _builtins.str algorithm: Algorithm for the checksum of the image data. + :param _builtins.str digest: Hexdigest of the checksum of the image data. + """ + if algorithm is not None: + pulumi.set(__self__, "algorithm", algorithm) + if digest is not None: + pulumi.set(__self__, "digest", digest) + + @_builtins.property + @pulumi.getter + def algorithm(self) -> Optional[_builtins.str]: + """ + Algorithm for the checksum of the image data. + """ + return pulumi.get(self, "algorithm") + + @_builtins.property + @pulumi.getter + def digest(self) -> Optional[_builtins.str]: + """ + Hexdigest of the checksum of the image data. + """ + return pulumi.get(self, "digest") + + +@pulumi.output_type +class ImageConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "bootMenu": + suggest = "boot_menu" + elif key == "cdromBus": + suggest = "cdrom_bus" + elif key == "diskBus": + suggest = "disk_bus" + elif key == "nicModel": + suggest = "nic_model" + elif key == "operatingSystem": + suggest = "operating_system" + elif key == "operatingSystemDistro": + suggest = "operating_system_distro" + elif key == "operatingSystemVersion": + suggest = "operating_system_version" + elif key == "rescueBus": + suggest = "rescue_bus" + elif key == "rescueDevice": + suggest = "rescue_device" + elif key == "secureBoot": + suggest = "secure_boot" + elif key == "videoModel": + suggest = "video_model" + elif key == "virtioScsi": + suggest = "virtio_scsi" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ImageConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ImageConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ImageConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + boot_menu: Optional[_builtins.bool] = None, + cdrom_bus: Optional[_builtins.str] = None, + disk_bus: Optional[_builtins.str] = None, + nic_model: Optional[_builtins.str] = None, + operating_system: Optional[_builtins.str] = None, + operating_system_distro: Optional[_builtins.str] = None, + operating_system_version: Optional[_builtins.str] = None, + rescue_bus: Optional[_builtins.str] = None, + rescue_device: Optional[_builtins.str] = None, + secure_boot: Optional[_builtins.bool] = None, + uefi: Optional[_builtins.bool] = None, + video_model: Optional[_builtins.str] = None, + virtio_scsi: Optional[_builtins.bool] = None): + """ + :param _builtins.bool boot_menu: Enables the BIOS bootmenu. + :param _builtins.str cdrom_bus: Sets CDROM bus controller type. + :param _builtins.str disk_bus: Sets Disk bus controller type. + :param _builtins.str nic_model: Sets virtual network interface model. + :param _builtins.str operating_system: Enables operating system specific optimizations. + :param _builtins.str operating_system_distro: Operating system distribution. + :param _builtins.str operating_system_version: Version of the operating system. + :param _builtins.str rescue_bus: Sets the device bus when the image is used as a rescue image. + :param _builtins.str rescue_device: Sets the device when the image is used as a rescue image. + :param _builtins.bool secure_boot: Enables Secure Boot. + :param _builtins.bool uefi: Enables UEFI boot. + :param _builtins.str video_model: Sets Graphic device model. + :param _builtins.bool virtio_scsi: Enables the use of VirtIO SCSI to provide block device access. By default instances use VirtIO Block. + """ + if boot_menu is not None: + pulumi.set(__self__, "boot_menu", boot_menu) + if cdrom_bus is not None: + pulumi.set(__self__, "cdrom_bus", cdrom_bus) + if disk_bus is not None: + pulumi.set(__self__, "disk_bus", disk_bus) + if nic_model is not None: + pulumi.set(__self__, "nic_model", nic_model) + if operating_system is not None: + pulumi.set(__self__, "operating_system", operating_system) + if operating_system_distro is not None: + pulumi.set(__self__, "operating_system_distro", operating_system_distro) + if operating_system_version is not None: + pulumi.set(__self__, "operating_system_version", operating_system_version) + if rescue_bus is not None: + pulumi.set(__self__, "rescue_bus", rescue_bus) + if rescue_device is not None: + pulumi.set(__self__, "rescue_device", rescue_device) + if secure_boot is not None: + pulumi.set(__self__, "secure_boot", secure_boot) + if uefi is not None: + pulumi.set(__self__, "uefi", uefi) + if video_model is not None: + pulumi.set(__self__, "video_model", video_model) + if virtio_scsi is not None: + pulumi.set(__self__, "virtio_scsi", virtio_scsi) + + @_builtins.property + @pulumi.getter(name="bootMenu") + def boot_menu(self) -> Optional[_builtins.bool]: + """ + Enables the BIOS bootmenu. + """ + return pulumi.get(self, "boot_menu") + + @_builtins.property + @pulumi.getter(name="cdromBus") + def cdrom_bus(self) -> Optional[_builtins.str]: + """ + Sets CDROM bus controller type. + """ + return pulumi.get(self, "cdrom_bus") + + @_builtins.property + @pulumi.getter(name="diskBus") + def disk_bus(self) -> Optional[_builtins.str]: + """ + Sets Disk bus controller type. + """ + return pulumi.get(self, "disk_bus") + + @_builtins.property + @pulumi.getter(name="nicModel") + def nic_model(self) -> Optional[_builtins.str]: + """ + Sets virtual network interface model. + """ + return pulumi.get(self, "nic_model") + + @_builtins.property + @pulumi.getter(name="operatingSystem") + def operating_system(self) -> Optional[_builtins.str]: + """ + Enables operating system specific optimizations. + """ + return pulumi.get(self, "operating_system") + + @_builtins.property + @pulumi.getter(name="operatingSystemDistro") + def operating_system_distro(self) -> Optional[_builtins.str]: + """ + Operating system distribution. + """ + return pulumi.get(self, "operating_system_distro") + + @_builtins.property + @pulumi.getter(name="operatingSystemVersion") + def operating_system_version(self) -> Optional[_builtins.str]: + """ + Version of the operating system. + """ + return pulumi.get(self, "operating_system_version") + + @_builtins.property + @pulumi.getter(name="rescueBus") + def rescue_bus(self) -> Optional[_builtins.str]: + """ + Sets the device bus when the image is used as a rescue image. + """ + return pulumi.get(self, "rescue_bus") + + @_builtins.property + @pulumi.getter(name="rescueDevice") + def rescue_device(self) -> Optional[_builtins.str]: + """ + Sets the device when the image is used as a rescue image. + """ + return pulumi.get(self, "rescue_device") + + @_builtins.property + @pulumi.getter(name="secureBoot") + def secure_boot(self) -> Optional[_builtins.bool]: + """ + Enables Secure Boot. + """ + return pulumi.get(self, "secure_boot") + + @_builtins.property + @pulumi.getter + def uefi(self) -> Optional[_builtins.bool]: + """ + Enables UEFI boot. + """ + return pulumi.get(self, "uefi") + + @_builtins.property + @pulumi.getter(name="videoModel") + def video_model(self) -> Optional[_builtins.str]: + """ + Sets Graphic device model. + """ + return pulumi.get(self, "video_model") + + @_builtins.property + @pulumi.getter(name="virtioScsi") + def virtio_scsi(self) -> Optional[_builtins.bool]: + """ + Enables the use of VirtIO SCSI to provide block device access. By default instances use VirtIO Block. + """ + return pulumi.get(self, "virtio_scsi") + + +@pulumi.output_type +class LoadbalancerListener(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "targetPool": + suggest = "target_pool" + elif key == "displayName": + suggest = "display_name" + elif key == "serverNameIndicators": + suggest = "server_name_indicators" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LoadbalancerListener. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LoadbalancerListener.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LoadbalancerListener.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + port: _builtins.int, + protocol: _builtins.str, + target_pool: _builtins.str, + display_name: Optional[_builtins.str] = None, + server_name_indicators: Optional[Sequence['outputs.LoadbalancerListenerServerNameIndicator']] = None, + tcp: Optional['outputs.LoadbalancerListenerTcp'] = None, + udp: Optional['outputs.LoadbalancerListenerUdp'] = None): + """ + :param _builtins.int port: Port number where we listen for traffic. + :param _builtins.str protocol: 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`. + :param _builtins.str target_pool: Reference target pool by target pool name. + :param Sequence['LoadbalancerListenerServerNameIndicatorArgs'] server_name_indicators: A list of domain names to match in order to pass TLS traffic to the target pool in the current listener + :param 'LoadbalancerListenerTcpArgs' tcp: Options that are specific to the TCP protocol. + :param 'LoadbalancerListenerUdpArgs' udp: Options that are specific to the UDP protocol. + """ + pulumi.set(__self__, "port", port) + pulumi.set(__self__, "protocol", protocol) + pulumi.set(__self__, "target_pool", target_pool) + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + if server_name_indicators is not None: + pulumi.set(__self__, "server_name_indicators", server_name_indicators) + if tcp is not None: + pulumi.set(__self__, "tcp", tcp) + if udp is not None: + pulumi.set(__self__, "udp", udp) + + @_builtins.property + @pulumi.getter + def port(self) -> _builtins.int: + """ + Port number where we listen for traffic. + """ + return pulumi.get(self, "port") + + @_builtins.property + @pulumi.getter + def protocol(self) -> _builtins.str: + """ + 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`. + """ + return pulumi.get(self, "protocol") + + @_builtins.property + @pulumi.getter(name="targetPool") + def target_pool(self) -> _builtins.str: + """ + Reference target pool by target pool name. + """ + return pulumi.get(self, "target_pool") + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[_builtins.str]: + return pulumi.get(self, "display_name") + + @_builtins.property + @pulumi.getter(name="serverNameIndicators") + def server_name_indicators(self) -> Optional[Sequence['outputs.LoadbalancerListenerServerNameIndicator']]: + """ + A list of domain names to match in order to pass TLS traffic to the target pool in the current listener + """ + return pulumi.get(self, "server_name_indicators") + + @_builtins.property + @pulumi.getter + def tcp(self) -> Optional['outputs.LoadbalancerListenerTcp']: + """ + Options that are specific to the TCP protocol. + """ + return pulumi.get(self, "tcp") + + @_builtins.property + @pulumi.getter + def udp(self) -> Optional['outputs.LoadbalancerListenerUdp']: + """ + Options that are specific to the UDP protocol. + """ + return pulumi.get(self, "udp") + + +@pulumi.output_type +class LoadbalancerListenerServerNameIndicator(dict): + def __init__(__self__, *, + name: Optional[_builtins.str] = None): + """ + :param _builtins.str name: A domain name to match in order to pass TLS traffic to the target pool in the current listener + """ + if name is not None: + pulumi.set(__self__, "name", name) + + @_builtins.property + @pulumi.getter + def name(self) -> Optional[_builtins.str]: + """ + A domain name to match in order to pass TLS traffic to the target pool in the current listener + """ + return pulumi.get(self, "name") + + +@pulumi.output_type +class LoadbalancerListenerTcp(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleTimeout": + suggest = "idle_timeout" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LoadbalancerListenerTcp. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LoadbalancerListenerTcp.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LoadbalancerListenerTcp.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_timeout: Optional[_builtins.str] = None): + """ + :param _builtins.str idle_timeout: 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 + """ + if idle_timeout is not None: + pulumi.set(__self__, "idle_timeout", idle_timeout) + + @_builtins.property + @pulumi.getter(name="idleTimeout") + def idle_timeout(self) -> Optional[_builtins.str]: + """ + 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 + """ + return pulumi.get(self, "idle_timeout") + + +@pulumi.output_type +class LoadbalancerListenerUdp(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleTimeout": + suggest = "idle_timeout" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LoadbalancerListenerUdp. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LoadbalancerListenerUdp.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LoadbalancerListenerUdp.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_timeout: Optional[_builtins.str] = None): + """ + :param _builtins.str idle_timeout: 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 + """ + if idle_timeout is not None: + pulumi.set(__self__, "idle_timeout", idle_timeout) + + @_builtins.property + @pulumi.getter(name="idleTimeout") + def idle_timeout(self) -> Optional[_builtins.str]: + """ + 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 + """ + return pulumi.get(self, "idle_timeout") + + +@pulumi.output_type +class LoadbalancerNetwork(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "networkId": + suggest = "network_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LoadbalancerNetwork. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LoadbalancerNetwork.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LoadbalancerNetwork.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + network_id: _builtins.str, + role: _builtins.str): + """ + :param _builtins.str network_id: Openstack network ID. + :param _builtins.str role: The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + """ + pulumi.set(__self__, "network_id", network_id) + pulumi.set(__self__, "role", role) + + @_builtins.property + @pulumi.getter(name="networkId") + def network_id(self) -> _builtins.str: + """ + Openstack network ID. + """ + return pulumi.get(self, "network_id") + + @_builtins.property + @pulumi.getter + def role(self) -> _builtins.str: + """ + The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + """ + return pulumi.get(self, "role") + + +@pulumi.output_type +class LoadbalancerOptions(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "privateNetworkOnly": + suggest = "private_network_only" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LoadbalancerOptions. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LoadbalancerOptions.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LoadbalancerOptions.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + acls: Optional[Sequence[_builtins.str]] = None, + observability: Optional['outputs.LoadbalancerOptionsObservability'] = None, + private_network_only: Optional[_builtins.bool] = None): + """ + :param Sequence[_builtins.str] acls: Load Balancer is accessible only from an IP address in this range. + :param 'LoadbalancerOptionsObservabilityArgs' observability: We offer Load Balancer metrics observability via ARGUS or external solutions. Not changeable after creation. + :param _builtins.bool private_network_only: If true, Load Balancer is accessible only via a private network IP address. + """ + if acls is not None: + pulumi.set(__self__, "acls", acls) + if observability is not None: + pulumi.set(__self__, "observability", observability) + if private_network_only is not None: + pulumi.set(__self__, "private_network_only", private_network_only) + + @_builtins.property + @pulumi.getter + def acls(self) -> Optional[Sequence[_builtins.str]]: + """ + Load Balancer is accessible only from an IP address in this range. + """ + return pulumi.get(self, "acls") + + @_builtins.property + @pulumi.getter + def observability(self) -> Optional['outputs.LoadbalancerOptionsObservability']: + """ + We offer Load Balancer metrics observability via ARGUS or external solutions. Not changeable after creation. + """ + return pulumi.get(self, "observability") + + @_builtins.property + @pulumi.getter(name="privateNetworkOnly") + def private_network_only(self) -> Optional[_builtins.bool]: + """ + If true, Load Balancer is accessible only via a private network IP address. + """ + return pulumi.get(self, "private_network_only") + + +@pulumi.output_type +class LoadbalancerOptionsObservability(dict): + def __init__(__self__, *, + logs: Optional['outputs.LoadbalancerOptionsObservabilityLogs'] = None, + metrics: Optional['outputs.LoadbalancerOptionsObservabilityMetrics'] = None): + """ + :param 'LoadbalancerOptionsObservabilityLogsArgs' logs: Observability logs configuration. Not changeable after creation. + :param 'LoadbalancerOptionsObservabilityMetricsArgs' metrics: Observability metrics configuration. Not changeable after creation. + """ + if logs is not None: + pulumi.set(__self__, "logs", logs) + if metrics is not None: + pulumi.set(__self__, "metrics", metrics) + + @_builtins.property + @pulumi.getter + def logs(self) -> Optional['outputs.LoadbalancerOptionsObservabilityLogs']: + """ + Observability logs configuration. Not changeable after creation. + """ + return pulumi.get(self, "logs") + + @_builtins.property + @pulumi.getter + def metrics(self) -> Optional['outputs.LoadbalancerOptionsObservabilityMetrics']: + """ + Observability metrics configuration. Not changeable after creation. + """ + return pulumi.get(self, "metrics") + + +@pulumi.output_type +class LoadbalancerOptionsObservabilityLogs(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "credentialsRef": + suggest = "credentials_ref" + elif key == "pushUrl": + suggest = "push_url" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LoadbalancerOptionsObservabilityLogs. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LoadbalancerOptionsObservabilityLogs.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LoadbalancerOptionsObservabilityLogs.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + credentials_ref: Optional[_builtins.str] = None, + push_url: Optional[_builtins.str] = None): + """ + :param _builtins.str credentials_ref: Credentials reference for logs. Not changeable after creation. + :param _builtins.str push_url: Credentials reference for logs. Not changeable after creation. + """ + if credentials_ref is not None: + pulumi.set(__self__, "credentials_ref", credentials_ref) + if push_url is not None: + pulumi.set(__self__, "push_url", push_url) + + @_builtins.property + @pulumi.getter(name="credentialsRef") + def credentials_ref(self) -> Optional[_builtins.str]: + """ + Credentials reference for logs. Not changeable after creation. + """ + return pulumi.get(self, "credentials_ref") + + @_builtins.property + @pulumi.getter(name="pushUrl") + def push_url(self) -> Optional[_builtins.str]: + """ + Credentials reference for logs. Not changeable after creation. + """ + return pulumi.get(self, "push_url") + + +@pulumi.output_type +class LoadbalancerOptionsObservabilityMetrics(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "credentialsRef": + suggest = "credentials_ref" + elif key == "pushUrl": + suggest = "push_url" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LoadbalancerOptionsObservabilityMetrics. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LoadbalancerOptionsObservabilityMetrics.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LoadbalancerOptionsObservabilityMetrics.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + credentials_ref: Optional[_builtins.str] = None, + push_url: Optional[_builtins.str] = None): + """ + :param _builtins.str credentials_ref: Credentials reference for metrics. Not changeable after creation. + :param _builtins.str push_url: Credentials reference for metrics. Not changeable after creation. + """ + if credentials_ref is not None: + pulumi.set(__self__, "credentials_ref", credentials_ref) + if push_url is not None: + pulumi.set(__self__, "push_url", push_url) + + @_builtins.property + @pulumi.getter(name="credentialsRef") + def credentials_ref(self) -> Optional[_builtins.str]: + """ + Credentials reference for metrics. Not changeable after creation. + """ + return pulumi.get(self, "credentials_ref") + + @_builtins.property + @pulumi.getter(name="pushUrl") + def push_url(self) -> Optional[_builtins.str]: + """ + Credentials reference for metrics. Not changeable after creation. + """ + return pulumi.get(self, "push_url") + + +@pulumi.output_type +class LoadbalancerTargetPool(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "targetPort": + suggest = "target_port" + elif key == "activeHealthCheck": + suggest = "active_health_check" + elif key == "sessionPersistence": + suggest = "session_persistence" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LoadbalancerTargetPool. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LoadbalancerTargetPool.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LoadbalancerTargetPool.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + name: _builtins.str, + target_port: _builtins.int, + targets: Sequence['outputs.LoadbalancerTargetPoolTarget'], + active_health_check: Optional['outputs.LoadbalancerTargetPoolActiveHealthCheck'] = None, + session_persistence: Optional['outputs.LoadbalancerTargetPoolSessionPersistence'] = None): + """ + :param _builtins.str name: Target pool name. + :param _builtins.int target_port: Identical port number where each target listens for traffic. + :param Sequence['LoadbalancerTargetPoolTargetArgs'] targets: List of all targets which will be used in the pool. Limited to 1000. + :param 'LoadbalancerTargetPoolSessionPersistenceArgs' session_persistence: Here you can setup various session persistence options, so far only "`use_source_ip_address`" is supported. + """ + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "target_port", target_port) + pulumi.set(__self__, "targets", targets) + if active_health_check is not None: + pulumi.set(__self__, "active_health_check", active_health_check) + if session_persistence is not None: + pulumi.set(__self__, "session_persistence", session_persistence) + + @_builtins.property + @pulumi.getter + def name(self) -> _builtins.str: + """ + Target pool name. + """ + return pulumi.get(self, "name") + + @_builtins.property + @pulumi.getter(name="targetPort") + def target_port(self) -> _builtins.int: + """ + Identical port number where each target listens for traffic. + """ + return pulumi.get(self, "target_port") + + @_builtins.property + @pulumi.getter + def targets(self) -> Sequence['outputs.LoadbalancerTargetPoolTarget']: + """ + List of all targets which will be used in the pool. Limited to 1000. + """ + return pulumi.get(self, "targets") + + @_builtins.property + @pulumi.getter(name="activeHealthCheck") + def active_health_check(self) -> Optional['outputs.LoadbalancerTargetPoolActiveHealthCheck']: + return pulumi.get(self, "active_health_check") + + @_builtins.property + @pulumi.getter(name="sessionPersistence") + def session_persistence(self) -> Optional['outputs.LoadbalancerTargetPoolSessionPersistence']: + """ + Here you can setup various session persistence options, so far only "`use_source_ip_address`" is supported. + """ + return pulumi.get(self, "session_persistence") + + +@pulumi.output_type +class LoadbalancerTargetPoolActiveHealthCheck(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "healthyThreshold": + suggest = "healthy_threshold" + elif key == "intervalJitter": + suggest = "interval_jitter" + elif key == "unhealthyThreshold": + suggest = "unhealthy_threshold" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LoadbalancerTargetPoolActiveHealthCheck. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LoadbalancerTargetPoolActiveHealthCheck.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LoadbalancerTargetPoolActiveHealthCheck.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + healthy_threshold: Optional[_builtins.int] = None, + interval: Optional[_builtins.str] = None, + interval_jitter: Optional[_builtins.str] = None, + timeout: Optional[_builtins.str] = None, + unhealthy_threshold: Optional[_builtins.int] = None): + """ + :param _builtins.int healthy_threshold: Healthy threshold of the health checking. + :param _builtins.str interval: Interval duration of health checking in seconds. + :param _builtins.str interval_jitter: Interval duration threshold of the health checking in seconds. + :param _builtins.str timeout: Active health checking timeout duration in seconds. + :param _builtins.int unhealthy_threshold: Unhealthy threshold of the health checking. + """ + if healthy_threshold is not None: + pulumi.set(__self__, "healthy_threshold", healthy_threshold) + if interval is not None: + pulumi.set(__self__, "interval", interval) + if interval_jitter is not None: + pulumi.set(__self__, "interval_jitter", interval_jitter) + if timeout is not None: + pulumi.set(__self__, "timeout", timeout) + if unhealthy_threshold is not None: + pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + + @_builtins.property + @pulumi.getter(name="healthyThreshold") + def healthy_threshold(self) -> Optional[_builtins.int]: + """ + Healthy threshold of the health checking. + """ + return pulumi.get(self, "healthy_threshold") + + @_builtins.property + @pulumi.getter + def interval(self) -> Optional[_builtins.str]: + """ + Interval duration of health checking in seconds. + """ + return pulumi.get(self, "interval") + + @_builtins.property + @pulumi.getter(name="intervalJitter") + def interval_jitter(self) -> Optional[_builtins.str]: + """ + Interval duration threshold of the health checking in seconds. + """ + return pulumi.get(self, "interval_jitter") + + @_builtins.property + @pulumi.getter + def timeout(self) -> Optional[_builtins.str]: + """ + Active health checking timeout duration in seconds. + """ + return pulumi.get(self, "timeout") + + @_builtins.property + @pulumi.getter(name="unhealthyThreshold") + def unhealthy_threshold(self) -> Optional[_builtins.int]: + """ + Unhealthy threshold of the health checking. + """ + return pulumi.get(self, "unhealthy_threshold") + + +@pulumi.output_type +class LoadbalancerTargetPoolSessionPersistence(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "useSourceIpAddress": + suggest = "use_source_ip_address" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LoadbalancerTargetPoolSessionPersistence. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LoadbalancerTargetPoolSessionPersistence.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LoadbalancerTargetPoolSessionPersistence.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + use_source_ip_address: Optional[_builtins.bool] = None): + """ + :param _builtins.bool use_source_ip_address: 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. + """ + if use_source_ip_address is not None: + pulumi.set(__self__, "use_source_ip_address", use_source_ip_address) + + @_builtins.property + @pulumi.getter(name="useSourceIpAddress") + def use_source_ip_address(self) -> Optional[_builtins.bool]: + """ + 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. + """ + return pulumi.get(self, "use_source_ip_address") + + +@pulumi.output_type +class LoadbalancerTargetPoolTarget(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "displayName": + suggest = "display_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LoadbalancerTargetPoolTarget. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LoadbalancerTargetPoolTarget.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LoadbalancerTargetPoolTarget.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + display_name: _builtins.str, + ip: _builtins.str): + """ + :param _builtins.str display_name: Target display name + :param _builtins.str ip: Target IP + """ + pulumi.set(__self__, "display_name", display_name) + pulumi.set(__self__, "ip", ip) + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> _builtins.str: + """ + Target display name + """ + return pulumi.get(self, "display_name") + + @_builtins.property + @pulumi.getter + def ip(self) -> _builtins.str: + """ + Target IP + """ + return pulumi.get(self, "ip") + + +@pulumi.output_type +class LogmeInstanceParameters(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "enableMonitoring": + suggest = "enable_monitoring" + elif key == "fluentdTcp": + suggest = "fluentd_tcp" + elif key == "fluentdTls": + suggest = "fluentd_tls" + elif key == "fluentdTlsCiphers": + suggest = "fluentd_tls_ciphers" + elif key == "fluentdTlsMaxVersion": + suggest = "fluentd_tls_max_version" + elif key == "fluentdTlsMinVersion": + suggest = "fluentd_tls_min_version" + elif key == "fluentdTlsVersion": + suggest = "fluentd_tls_version" + elif key == "fluentdUdp": + suggest = "fluentd_udp" + elif key == "ismDeletionAfter": + suggest = "ism_deletion_after" + elif key == "ismJitter": + suggest = "ism_jitter" + elif key == "ismJobInterval": + suggest = "ism_job_interval" + elif key == "javaHeapspace": + suggest = "java_heapspace" + elif key == "javaMaxmetaspace": + suggest = "java_maxmetaspace" + elif key == "maxDiskThreshold": + suggest = "max_disk_threshold" + elif key == "metricsFrequency": + suggest = "metrics_frequency" + elif key == "metricsPrefix": + suggest = "metrics_prefix" + elif key == "monitoringInstanceId": + suggest = "monitoring_instance_id" + elif key == "opensearchTlsCiphers": + suggest = "opensearch_tls_ciphers" + elif key == "opensearchTlsProtocols": + suggest = "opensearch_tls_protocols" + elif key == "sgwAcl": + suggest = "sgw_acl" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LogmeInstanceParameters. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LogmeInstanceParameters.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LogmeInstanceParameters.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enable_monitoring: Optional[_builtins.bool] = None, + fluentd_tcp: Optional[_builtins.int] = None, + fluentd_tls: Optional[_builtins.int] = None, + fluentd_tls_ciphers: Optional[_builtins.str] = None, + fluentd_tls_max_version: Optional[_builtins.str] = None, + fluentd_tls_min_version: Optional[_builtins.str] = None, + fluentd_tls_version: Optional[_builtins.str] = None, + fluentd_udp: Optional[_builtins.int] = None, + graphite: Optional[_builtins.str] = None, + ism_deletion_after: Optional[_builtins.str] = None, + ism_jitter: Optional[_builtins.float] = None, + ism_job_interval: Optional[_builtins.int] = None, + java_heapspace: Optional[_builtins.int] = None, + java_maxmetaspace: Optional[_builtins.int] = None, + max_disk_threshold: Optional[_builtins.int] = None, + metrics_frequency: Optional[_builtins.int] = None, + metrics_prefix: Optional[_builtins.str] = None, + monitoring_instance_id: Optional[_builtins.str] = None, + opensearch_tls_ciphers: Optional[Sequence[_builtins.str]] = None, + opensearch_tls_protocols: Optional[Sequence[_builtins.str]] = None, + sgw_acl: Optional[_builtins.str] = None, + syslogs: Optional[Sequence[_builtins.str]] = None): + """ + :param _builtins.bool enable_monitoring: Enable monitoring. + :param _builtins.str graphite: If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). + :param _builtins.str ism_deletion_after: Combination of an integer and a timerange when an index will be considered "old" and can be deleted. Possible values for the timerange are `s`, `m`, `h` and `d`. + :param _builtins.int ism_job_interval: Jitter of the execution time. + :param _builtins.int java_heapspace: The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. + :param _builtins.int java_maxmetaspace: The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. + :param _builtins.int max_disk_threshold: The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + :param _builtins.int metrics_frequency: The frequency in seconds at which metrics are emitted (in seconds). + :param _builtins.str metrics_prefix: The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. + :param _builtins.str monitoring_instance_id: The ID of the STACKIT monitoring instance. + :param _builtins.str sgw_acl: Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + :param Sequence[_builtins.str] syslogs: List of syslog servers to send logs to. + """ + if enable_monitoring is not None: + pulumi.set(__self__, "enable_monitoring", enable_monitoring) + if fluentd_tcp is not None: + pulumi.set(__self__, "fluentd_tcp", fluentd_tcp) + if fluentd_tls is not None: + pulumi.set(__self__, "fluentd_tls", fluentd_tls) + if fluentd_tls_ciphers is not None: + pulumi.set(__self__, "fluentd_tls_ciphers", fluentd_tls_ciphers) + if fluentd_tls_max_version is not None: + pulumi.set(__self__, "fluentd_tls_max_version", fluentd_tls_max_version) + if fluentd_tls_min_version is not None: + pulumi.set(__self__, "fluentd_tls_min_version", fluentd_tls_min_version) + if fluentd_tls_version is not None: + pulumi.set(__self__, "fluentd_tls_version", fluentd_tls_version) + if fluentd_udp is not None: + pulumi.set(__self__, "fluentd_udp", fluentd_udp) + if graphite is not None: + pulumi.set(__self__, "graphite", graphite) + if ism_deletion_after is not None: + pulumi.set(__self__, "ism_deletion_after", ism_deletion_after) + if ism_jitter is not None: + pulumi.set(__self__, "ism_jitter", ism_jitter) + if ism_job_interval is not None: + pulumi.set(__self__, "ism_job_interval", ism_job_interval) + if java_heapspace is not None: + pulumi.set(__self__, "java_heapspace", java_heapspace) + if java_maxmetaspace is not None: + pulumi.set(__self__, "java_maxmetaspace", java_maxmetaspace) + if max_disk_threshold is not None: + pulumi.set(__self__, "max_disk_threshold", max_disk_threshold) + if metrics_frequency is not None: + pulumi.set(__self__, "metrics_frequency", metrics_frequency) + if metrics_prefix is not None: + pulumi.set(__self__, "metrics_prefix", metrics_prefix) + if monitoring_instance_id is not None: + pulumi.set(__self__, "monitoring_instance_id", monitoring_instance_id) + if opensearch_tls_ciphers is not None: + pulumi.set(__self__, "opensearch_tls_ciphers", opensearch_tls_ciphers) + if opensearch_tls_protocols is not None: + pulumi.set(__self__, "opensearch_tls_protocols", opensearch_tls_protocols) + if sgw_acl is not None: + pulumi.set(__self__, "sgw_acl", sgw_acl) + if syslogs is not None: + pulumi.set(__self__, "syslogs", syslogs) + + @_builtins.property + @pulumi.getter(name="enableMonitoring") + def enable_monitoring(self) -> Optional[_builtins.bool]: + """ + Enable monitoring. + """ + return pulumi.get(self, "enable_monitoring") + + @_builtins.property + @pulumi.getter(name="fluentdTcp") + def fluentd_tcp(self) -> Optional[_builtins.int]: + return pulumi.get(self, "fluentd_tcp") + + @_builtins.property + @pulumi.getter(name="fluentdTls") + def fluentd_tls(self) -> Optional[_builtins.int]: + return pulumi.get(self, "fluentd_tls") + + @_builtins.property + @pulumi.getter(name="fluentdTlsCiphers") + def fluentd_tls_ciphers(self) -> Optional[_builtins.str]: + return pulumi.get(self, "fluentd_tls_ciphers") + + @_builtins.property + @pulumi.getter(name="fluentdTlsMaxVersion") + def fluentd_tls_max_version(self) -> Optional[_builtins.str]: + return pulumi.get(self, "fluentd_tls_max_version") + + @_builtins.property + @pulumi.getter(name="fluentdTlsMinVersion") + def fluentd_tls_min_version(self) -> Optional[_builtins.str]: + return pulumi.get(self, "fluentd_tls_min_version") + + @_builtins.property + @pulumi.getter(name="fluentdTlsVersion") + def fluentd_tls_version(self) -> Optional[_builtins.str]: + return pulumi.get(self, "fluentd_tls_version") + + @_builtins.property + @pulumi.getter(name="fluentdUdp") + def fluentd_udp(self) -> Optional[_builtins.int]: + return pulumi.get(self, "fluentd_udp") + + @_builtins.property + @pulumi.getter + def graphite(self) -> Optional[_builtins.str]: + """ + If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). + """ + return pulumi.get(self, "graphite") + + @_builtins.property + @pulumi.getter(name="ismDeletionAfter") + def ism_deletion_after(self) -> Optional[_builtins.str]: + """ + Combination of an integer and a timerange when an index will be considered "old" and can be deleted. Possible values for the timerange are `s`, `m`, `h` and `d`. + """ + return pulumi.get(self, "ism_deletion_after") + + @_builtins.property + @pulumi.getter(name="ismJitter") + def ism_jitter(self) -> Optional[_builtins.float]: + return pulumi.get(self, "ism_jitter") + + @_builtins.property + @pulumi.getter(name="ismJobInterval") + def ism_job_interval(self) -> Optional[_builtins.int]: + """ + Jitter of the execution time. + """ + return pulumi.get(self, "ism_job_interval") + + @_builtins.property + @pulumi.getter(name="javaHeapspace") + def java_heapspace(self) -> Optional[_builtins.int]: + """ + The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. + """ + return pulumi.get(self, "java_heapspace") + + @_builtins.property + @pulumi.getter(name="javaMaxmetaspace") + def java_maxmetaspace(self) -> Optional[_builtins.int]: + """ + The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. + """ + return pulumi.get(self, "java_maxmetaspace") + + @_builtins.property + @pulumi.getter(name="maxDiskThreshold") + def max_disk_threshold(self) -> Optional[_builtins.int]: + """ + The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + """ + return pulumi.get(self, "max_disk_threshold") + + @_builtins.property + @pulumi.getter(name="metricsFrequency") + def metrics_frequency(self) -> Optional[_builtins.int]: + """ + The frequency in seconds at which metrics are emitted (in seconds). + """ + return pulumi.get(self, "metrics_frequency") + + @_builtins.property + @pulumi.getter(name="metricsPrefix") + def metrics_prefix(self) -> Optional[_builtins.str]: + """ + The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. + """ + return pulumi.get(self, "metrics_prefix") + + @_builtins.property + @pulumi.getter(name="monitoringInstanceId") + def monitoring_instance_id(self) -> Optional[_builtins.str]: + """ + The ID of the STACKIT monitoring instance. + """ + return pulumi.get(self, "monitoring_instance_id") + + @_builtins.property + @pulumi.getter(name="opensearchTlsCiphers") + def opensearch_tls_ciphers(self) -> Optional[Sequence[_builtins.str]]: + return pulumi.get(self, "opensearch_tls_ciphers") + + @_builtins.property + @pulumi.getter(name="opensearchTlsProtocols") + def opensearch_tls_protocols(self) -> Optional[Sequence[_builtins.str]]: + return pulumi.get(self, "opensearch_tls_protocols") + + @_builtins.property + @pulumi.getter(name="sgwAcl") + def sgw_acl(self) -> Optional[_builtins.str]: + """ + Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + """ + return pulumi.get(self, "sgw_acl") + + @_builtins.property + @pulumi.getter + def syslogs(self) -> Optional[Sequence[_builtins.str]]: + """ + List of syslog servers to send logs to. + """ + return pulumi.get(self, "syslogs") + + +@pulumi.output_type +class MariadbInstanceParameters(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "enableMonitoring": + suggest = "enable_monitoring" + elif key == "maxDiskThreshold": + suggest = "max_disk_threshold" + elif key == "metricsFrequency": + suggest = "metrics_frequency" + elif key == "metricsPrefix": + suggest = "metrics_prefix" + elif key == "monitoringInstanceId": + suggest = "monitoring_instance_id" + elif key == "sgwAcl": + suggest = "sgw_acl" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MariadbInstanceParameters. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MariadbInstanceParameters.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MariadbInstanceParameters.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enable_monitoring: Optional[_builtins.bool] = None, + graphite: Optional[_builtins.str] = None, + max_disk_threshold: Optional[_builtins.int] = None, + metrics_frequency: Optional[_builtins.int] = None, + metrics_prefix: Optional[_builtins.str] = None, + monitoring_instance_id: Optional[_builtins.str] = None, + sgw_acl: Optional[_builtins.str] = None, + syslogs: Optional[Sequence[_builtins.str]] = None): + """ + :param _builtins.bool enable_monitoring: Enable monitoring. + :param _builtins.str graphite: Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. + :param _builtins.int max_disk_threshold: The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + :param _builtins.int metrics_frequency: The frequency in seconds at which metrics are emitted. + :param _builtins.str metrics_prefix: The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key + :param _builtins.str monitoring_instance_id: The ID of the STACKIT monitoring instance. Monitoring instances with the plan "Observability-Monitoring-Starter" are not supported. + :param _builtins.str sgw_acl: Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + :param Sequence[_builtins.str] syslogs: List of syslog servers to send logs to. + """ + if enable_monitoring is not None: + pulumi.set(__self__, "enable_monitoring", enable_monitoring) + if graphite is not None: + pulumi.set(__self__, "graphite", graphite) + if max_disk_threshold is not None: + pulumi.set(__self__, "max_disk_threshold", max_disk_threshold) + if metrics_frequency is not None: + pulumi.set(__self__, "metrics_frequency", metrics_frequency) + if metrics_prefix is not None: + pulumi.set(__self__, "metrics_prefix", metrics_prefix) + if monitoring_instance_id is not None: + pulumi.set(__self__, "monitoring_instance_id", monitoring_instance_id) + if sgw_acl is not None: + pulumi.set(__self__, "sgw_acl", sgw_acl) + if syslogs is not None: + pulumi.set(__self__, "syslogs", syslogs) + + @_builtins.property + @pulumi.getter(name="enableMonitoring") + def enable_monitoring(self) -> Optional[_builtins.bool]: + """ + Enable monitoring. + """ + return pulumi.get(self, "enable_monitoring") + + @_builtins.property + @pulumi.getter + def graphite(self) -> Optional[_builtins.str]: + """ + Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. + """ + return pulumi.get(self, "graphite") + + @_builtins.property + @pulumi.getter(name="maxDiskThreshold") + def max_disk_threshold(self) -> Optional[_builtins.int]: + """ + The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + """ + return pulumi.get(self, "max_disk_threshold") + + @_builtins.property + @pulumi.getter(name="metricsFrequency") + def metrics_frequency(self) -> Optional[_builtins.int]: + """ + The frequency in seconds at which metrics are emitted. + """ + return pulumi.get(self, "metrics_frequency") + + @_builtins.property + @pulumi.getter(name="metricsPrefix") + def metrics_prefix(self) -> Optional[_builtins.str]: + """ + The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key + """ + return pulumi.get(self, "metrics_prefix") + + @_builtins.property + @pulumi.getter(name="monitoringInstanceId") + def monitoring_instance_id(self) -> Optional[_builtins.str]: + """ + The ID of the STACKIT monitoring instance. Monitoring instances with the plan "Observability-Monitoring-Starter" are not supported. + """ + return pulumi.get(self, "monitoring_instance_id") + + @_builtins.property + @pulumi.getter(name="sgwAcl") + def sgw_acl(self) -> Optional[_builtins.str]: + """ + Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + """ + return pulumi.get(self, "sgw_acl") + + @_builtins.property + @pulumi.getter + def syslogs(self) -> Optional[Sequence[_builtins.str]]: + """ + List of syslog servers to send logs to. + """ + return pulumi.get(self, "syslogs") + + +@pulumi.output_type +class MongodbflexInstanceFlavor(dict): + def __init__(__self__, *, + cpu: _builtins.int, + ram: _builtins.int, + description: Optional[_builtins.str] = None, + id: Optional[_builtins.str] = None): + pulumi.set(__self__, "cpu", cpu) + pulumi.set(__self__, "ram", ram) + if description is not None: + pulumi.set(__self__, "description", description) + if id is not None: + pulumi.set(__self__, "id", id) + + @_builtins.property + @pulumi.getter + def cpu(self) -> _builtins.int: + return pulumi.get(self, "cpu") + + @_builtins.property + @pulumi.getter + def ram(self) -> _builtins.int: + return pulumi.get(self, "ram") + + @_builtins.property + @pulumi.getter + def description(self) -> Optional[_builtins.str]: + return pulumi.get(self, "description") + + @_builtins.property + @pulumi.getter + def id(self) -> Optional[_builtins.str]: + return pulumi.get(self, "id") + + +@pulumi.output_type +class MongodbflexInstanceOptions(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "pointInTimeWindowHours": + suggest = "point_in_time_window_hours" + elif key == "dailySnapshotRetentionDays": + suggest = "daily_snapshot_retention_days" + elif key == "monthlySnapshotRetentionMonths": + suggest = "monthly_snapshot_retention_months" + elif key == "snapshotRetentionDays": + suggest = "snapshot_retention_days" + elif key == "weeklySnapshotRetentionWeeks": + suggest = "weekly_snapshot_retention_weeks" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MongodbflexInstanceOptions. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MongodbflexInstanceOptions.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MongodbflexInstanceOptions.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + point_in_time_window_hours: _builtins.int, + type: _builtins.str, + daily_snapshot_retention_days: Optional[_builtins.int] = None, + monthly_snapshot_retention_months: Optional[_builtins.int] = None, + snapshot_retention_days: Optional[_builtins.int] = None, + weekly_snapshot_retention_weeks: Optional[_builtins.int] = None): + """ + :param _builtins.int point_in_time_window_hours: The number of hours back in time the point-in-time recovery feature will be able to recover. + :param _builtins.str type: Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. + :param _builtins.int daily_snapshot_retention_days: The number of days that daily backups will be retained. + :param _builtins.int monthly_snapshot_retention_months: The number of months that monthly backups will be retained. + :param _builtins.int snapshot_retention_days: The number of days that continuous backups (controlled via the `backup_schedule`) will be retained. + :param _builtins.int weekly_snapshot_retention_weeks: The number of weeks that weekly backups will be retained. + """ + pulumi.set(__self__, "point_in_time_window_hours", point_in_time_window_hours) + pulumi.set(__self__, "type", type) + if daily_snapshot_retention_days is not None: + pulumi.set(__self__, "daily_snapshot_retention_days", daily_snapshot_retention_days) + if monthly_snapshot_retention_months is not None: + pulumi.set(__self__, "monthly_snapshot_retention_months", monthly_snapshot_retention_months) + if snapshot_retention_days is not None: + pulumi.set(__self__, "snapshot_retention_days", snapshot_retention_days) + if weekly_snapshot_retention_weeks is not None: + pulumi.set(__self__, "weekly_snapshot_retention_weeks", weekly_snapshot_retention_weeks) + + @_builtins.property + @pulumi.getter(name="pointInTimeWindowHours") + def point_in_time_window_hours(self) -> _builtins.int: + """ + The number of hours back in time the point-in-time recovery feature will be able to recover. + """ + return pulumi.get(self, "point_in_time_window_hours") + + @_builtins.property + @pulumi.getter + def type(self) -> _builtins.str: + """ + Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. + """ + return pulumi.get(self, "type") + + @_builtins.property + @pulumi.getter(name="dailySnapshotRetentionDays") + def daily_snapshot_retention_days(self) -> Optional[_builtins.int]: + """ + The number of days that daily backups will be retained. + """ + return pulumi.get(self, "daily_snapshot_retention_days") + + @_builtins.property + @pulumi.getter(name="monthlySnapshotRetentionMonths") + def monthly_snapshot_retention_months(self) -> Optional[_builtins.int]: + """ + The number of months that monthly backups will be retained. + """ + return pulumi.get(self, "monthly_snapshot_retention_months") + + @_builtins.property + @pulumi.getter(name="snapshotRetentionDays") + def snapshot_retention_days(self) -> Optional[_builtins.int]: + """ + The number of days that continuous backups (controlled via the `backup_schedule`) will be retained. + """ + return pulumi.get(self, "snapshot_retention_days") + + @_builtins.property + @pulumi.getter(name="weeklySnapshotRetentionWeeks") + def weekly_snapshot_retention_weeks(self) -> Optional[_builtins.int]: + """ + The number of weeks that weekly backups will be retained. + """ + return pulumi.get(self, "weekly_snapshot_retention_weeks") + + +@pulumi.output_type +class MongodbflexInstanceStorage(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "class": + suggest = "class_" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MongodbflexInstanceStorage. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MongodbflexInstanceStorage.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MongodbflexInstanceStorage.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + class_: _builtins.str, + size: _builtins.int): + pulumi.set(__self__, "class_", class_) + pulumi.set(__self__, "size", size) + + @_builtins.property + @pulumi.getter(name="class") + def class_(self) -> _builtins.str: + return pulumi.get(self, "class_") + + @_builtins.property + @pulumi.getter + def size(self) -> _builtins.int: + return pulumi.get(self, "size") + + +@pulumi.output_type +class NetworkAreaNetworkRange(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "networkRangeId": + suggest = "network_range_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in NetworkAreaNetworkRange. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + NetworkAreaNetworkRange.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + NetworkAreaNetworkRange.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + prefix: _builtins.str, + network_range_id: Optional[_builtins.str] = None): + """ + :param _builtins.str prefix: Classless Inter-Domain Routing (CIDR). + """ + pulumi.set(__self__, "prefix", prefix) + if network_range_id is not None: + pulumi.set(__self__, "network_range_id", network_range_id) + + @_builtins.property + @pulumi.getter + @_utilities.deprecated("""Deprecated because of the IaaS API v1 -> v2 migration. Will be removed in May 2026. Use the new `NetworkAreaRegion` resource instead.""") + def prefix(self) -> _builtins.str: + """ + Classless Inter-Domain Routing (CIDR). + """ + return pulumi.get(self, "prefix") + + @_builtins.property + @pulumi.getter(name="networkRangeId") + @_utilities.deprecated("""Deprecated because of the IaaS API v1 -> v2 migration. Will be removed in May 2026. Use the new `NetworkAreaRegion` resource instead.""") + def network_range_id(self) -> Optional[_builtins.str]: + return pulumi.get(self, "network_range_id") + + +@pulumi.output_type +class NetworkAreaRegionIpv4(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "networkRanges": + suggest = "network_ranges" + elif key == "transferNetwork": + suggest = "transfer_network" + elif key == "defaultNameservers": + suggest = "default_nameservers" + elif key == "defaultPrefixLength": + suggest = "default_prefix_length" + elif key == "maxPrefixLength": + suggest = "max_prefix_length" + elif key == "minPrefixLength": + suggest = "min_prefix_length" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in NetworkAreaRegionIpv4. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + NetworkAreaRegionIpv4.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + NetworkAreaRegionIpv4.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + network_ranges: Sequence['outputs.NetworkAreaRegionIpv4NetworkRange'], + transfer_network: _builtins.str, + default_nameservers: Optional[Sequence[_builtins.str]] = None, + default_prefix_length: Optional[_builtins.int] = None, + max_prefix_length: Optional[_builtins.int] = None, + min_prefix_length: Optional[_builtins.int] = None): + """ + :param Sequence['NetworkAreaRegionIpv4NetworkRangeArgs'] network_ranges: List of Network ranges. + :param _builtins.str transfer_network: IPv4 Classless Inter-Domain Routing (CIDR). + :param Sequence[_builtins.str] default_nameservers: List of DNS Servers/Nameservers. + :param _builtins.int default_prefix_length: The default prefix length for networks in the network area. + :param _builtins.int max_prefix_length: The maximal prefix length for networks in the network area. + :param _builtins.int min_prefix_length: The minimal prefix length for networks in the network area. + """ + pulumi.set(__self__, "network_ranges", network_ranges) + pulumi.set(__self__, "transfer_network", transfer_network) + if default_nameservers is not None: + pulumi.set(__self__, "default_nameservers", default_nameservers) + if default_prefix_length is not None: + pulumi.set(__self__, "default_prefix_length", default_prefix_length) + if max_prefix_length is not None: + pulumi.set(__self__, "max_prefix_length", max_prefix_length) + if min_prefix_length is not None: + pulumi.set(__self__, "min_prefix_length", min_prefix_length) + + @_builtins.property + @pulumi.getter(name="networkRanges") + def network_ranges(self) -> Sequence['outputs.NetworkAreaRegionIpv4NetworkRange']: + """ + List of Network ranges. + """ + return pulumi.get(self, "network_ranges") + + @_builtins.property + @pulumi.getter(name="transferNetwork") + def transfer_network(self) -> _builtins.str: + """ + IPv4 Classless Inter-Domain Routing (CIDR). + """ + return pulumi.get(self, "transfer_network") + + @_builtins.property + @pulumi.getter(name="defaultNameservers") + def default_nameservers(self) -> Optional[Sequence[_builtins.str]]: + """ + List of DNS Servers/Nameservers. + """ + return pulumi.get(self, "default_nameservers") + + @_builtins.property + @pulumi.getter(name="defaultPrefixLength") + def default_prefix_length(self) -> Optional[_builtins.int]: + """ + The default prefix length for networks in the network area. + """ + return pulumi.get(self, "default_prefix_length") + + @_builtins.property + @pulumi.getter(name="maxPrefixLength") + def max_prefix_length(self) -> Optional[_builtins.int]: + """ + The maximal prefix length for networks in the network area. + """ + return pulumi.get(self, "max_prefix_length") + + @_builtins.property + @pulumi.getter(name="minPrefixLength") + def min_prefix_length(self) -> Optional[_builtins.int]: + """ + The minimal prefix length for networks in the network area. + """ + return pulumi.get(self, "min_prefix_length") + + +@pulumi.output_type +class NetworkAreaRegionIpv4NetworkRange(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "enableMonitoring": - suggest = "enable_monitoring" - elif key == "fluentdTcp": - suggest = "fluentd_tcp" - elif key == "fluentdTls": - suggest = "fluentd_tls" - elif key == "fluentdTlsCiphers": - suggest = "fluentd_tls_ciphers" - elif key == "fluentdTlsMaxVersion": - suggest = "fluentd_tls_max_version" - elif key == "fluentdTlsMinVersion": - suggest = "fluentd_tls_min_version" - elif key == "fluentdTlsVersion": - suggest = "fluentd_tls_version" - elif key == "fluentdUdp": - suggest = "fluentd_udp" - elif key == "ismDeletionAfter": - suggest = "ism_deletion_after" - elif key == "ismJitter": - suggest = "ism_jitter" - elif key == "ismJobInterval": - suggest = "ism_job_interval" - elif key == "javaHeapspace": - suggest = "java_heapspace" - elif key == "javaMaxmetaspace": - suggest = "java_maxmetaspace" - elif key == "maxDiskThreshold": - suggest = "max_disk_threshold" - elif key == "metricsFrequency": - suggest = "metrics_frequency" - elif key == "metricsPrefix": - suggest = "metrics_prefix" - elif key == "monitoringInstanceId": - suggest = "monitoring_instance_id" - elif key == "opensearchTlsCiphers": - suggest = "opensearch_tls_ciphers" - elif key == "opensearchTlsProtocols": - suggest = "opensearch_tls_protocols" - elif key == "sgwAcl": - suggest = "sgw_acl" + if key == "networkRangeId": + suggest = "network_range_id" if suggest: - pulumi.log.warn(f"Key '{key}' not found in LogmeInstanceParameters. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in NetworkAreaRegionIpv4NetworkRange. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - LogmeInstanceParameters.__key_warning(key) + NetworkAreaRegionIpv4NetworkRange.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - LogmeInstanceParameters.__key_warning(key) + NetworkAreaRegionIpv4NetworkRange.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - enable_monitoring: Optional[_builtins.bool] = None, - fluentd_tcp: Optional[_builtins.int] = None, - fluentd_tls: Optional[_builtins.int] = None, - fluentd_tls_ciphers: Optional[_builtins.str] = None, - fluentd_tls_max_version: Optional[_builtins.str] = None, - fluentd_tls_min_version: Optional[_builtins.str] = None, - fluentd_tls_version: Optional[_builtins.str] = None, - fluentd_udp: Optional[_builtins.int] = None, - graphite: Optional[_builtins.str] = None, - ism_deletion_after: Optional[_builtins.str] = None, - ism_jitter: Optional[_builtins.float] = None, - ism_job_interval: Optional[_builtins.int] = None, - java_heapspace: Optional[_builtins.int] = None, - java_maxmetaspace: Optional[_builtins.int] = None, - max_disk_threshold: Optional[_builtins.int] = None, - metrics_frequency: Optional[_builtins.int] = None, - metrics_prefix: Optional[_builtins.str] = None, - monitoring_instance_id: Optional[_builtins.str] = None, - opensearch_tls_ciphers: Optional[Sequence[_builtins.str]] = None, - opensearch_tls_protocols: Optional[Sequence[_builtins.str]] = None, - sgw_acl: Optional[_builtins.str] = None, - syslogs: Optional[Sequence[_builtins.str]] = None): + prefix: _builtins.str, + network_range_id: Optional[_builtins.str] = None): """ - :param _builtins.bool enable_monitoring: Enable monitoring. - :param _builtins.str graphite: If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). - :param _builtins.str ism_deletion_after: Combination of an integer and a timerange when an index will be considered "old" and can be deleted. Possible values for the timerange are `s`, `m`, `h` and `d`. - :param _builtins.int ism_job_interval: Jitter of the execution time. - :param _builtins.int java_heapspace: The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. - :param _builtins.int java_maxmetaspace: The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. - :param _builtins.int max_disk_threshold: The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. - :param _builtins.int metrics_frequency: The frequency in seconds at which metrics are emitted (in seconds). - :param _builtins.str metrics_prefix: The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. - :param _builtins.str monitoring_instance_id: The ID of the STACKIT monitoring instance. - :param _builtins.str sgw_acl: Comma separated list of IP networks in CIDR notation which are allowed to access this instance. - :param Sequence[_builtins.str] syslogs: List of syslog servers to send logs to. + :param _builtins.str prefix: Classless Inter-Domain Routing (CIDR). """ - if enable_monitoring is not None: - pulumi.set(__self__, "enable_monitoring", enable_monitoring) - if fluentd_tcp is not None: - pulumi.set(__self__, "fluentd_tcp", fluentd_tcp) - if fluentd_tls is not None: - pulumi.set(__self__, "fluentd_tls", fluentd_tls) - if fluentd_tls_ciphers is not None: - pulumi.set(__self__, "fluentd_tls_ciphers", fluentd_tls_ciphers) - if fluentd_tls_max_version is not None: - pulumi.set(__self__, "fluentd_tls_max_version", fluentd_tls_max_version) - if fluentd_tls_min_version is not None: - pulumi.set(__self__, "fluentd_tls_min_version", fluentd_tls_min_version) - if fluentd_tls_version is not None: - pulumi.set(__self__, "fluentd_tls_version", fluentd_tls_version) - if fluentd_udp is not None: - pulumi.set(__self__, "fluentd_udp", fluentd_udp) - if graphite is not None: - pulumi.set(__self__, "graphite", graphite) - if ism_deletion_after is not None: - pulumi.set(__self__, "ism_deletion_after", ism_deletion_after) - if ism_jitter is not None: - pulumi.set(__self__, "ism_jitter", ism_jitter) - if ism_job_interval is not None: - pulumi.set(__self__, "ism_job_interval", ism_job_interval) - if java_heapspace is not None: - pulumi.set(__self__, "java_heapspace", java_heapspace) - if java_maxmetaspace is not None: - pulumi.set(__self__, "java_maxmetaspace", java_maxmetaspace) - if max_disk_threshold is not None: - pulumi.set(__self__, "max_disk_threshold", max_disk_threshold) - if metrics_frequency is not None: - pulumi.set(__self__, "metrics_frequency", metrics_frequency) - if metrics_prefix is not None: - pulumi.set(__self__, "metrics_prefix", metrics_prefix) - if monitoring_instance_id is not None: - pulumi.set(__self__, "monitoring_instance_id", monitoring_instance_id) - if opensearch_tls_ciphers is not None: - pulumi.set(__self__, "opensearch_tls_ciphers", opensearch_tls_ciphers) - if opensearch_tls_protocols is not None: - pulumi.set(__self__, "opensearch_tls_protocols", opensearch_tls_protocols) - if sgw_acl is not None: - pulumi.set(__self__, "sgw_acl", sgw_acl) - if syslogs is not None: - pulumi.set(__self__, "syslogs", syslogs) + pulumi.set(__self__, "prefix", prefix) + if network_range_id is not None: + pulumi.set(__self__, "network_range_id", network_range_id) @_builtins.property - @pulumi.getter(name="enableMonitoring") - def enable_monitoring(self) -> Optional[_builtins.bool]: + @pulumi.getter + def prefix(self) -> _builtins.str: """ - Enable monitoring. + Classless Inter-Domain Routing (CIDR). + """ + return pulumi.get(self, "prefix") + + @_builtins.property + @pulumi.getter(name="networkRangeId") + def network_range_id(self) -> Optional[_builtins.str]: + return pulumi.get(self, "network_range_id") + + +@pulumi.output_type +class NetworkAreaRouteDestination(dict): + def __init__(__self__, *, + type: _builtins.str, + value: _builtins.str): + """ + :param _builtins.str type: CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported currently. + :param _builtins.str value: An CIDR string. + """ + pulumi.set(__self__, "type", type) + pulumi.set(__self__, "value", value) + + @_builtins.property + @pulumi.getter + def type(self) -> _builtins.str: + """ + CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported currently. + """ + return pulumi.get(self, "type") + + @_builtins.property + @pulumi.getter + def value(self) -> _builtins.str: + """ + An CIDR string. + """ + return pulumi.get(self, "value") + + +@pulumi.output_type +class NetworkAreaRouteNextHop(dict): + def __init__(__self__, *, + type: _builtins.str, + value: Optional[_builtins.str] = None): + """ + :param _builtins.str type: Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `ipv4` supported currently. + :param _builtins.str value: Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported currently. + """ + pulumi.set(__self__, "type", type) + if value is not None: + pulumi.set(__self__, "value", value) + + @_builtins.property + @pulumi.getter + def type(self) -> _builtins.str: + """ + Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `ipv4` supported currently. + """ + return pulumi.get(self, "type") + + @_builtins.property + @pulumi.getter + def value(self) -> Optional[_builtins.str]: + """ + Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported currently. """ - return pulumi.get(self, "enable_monitoring") + return pulumi.get(self, "value") - @_builtins.property - @pulumi.getter(name="fluentdTcp") - def fluentd_tcp(self) -> Optional[_builtins.int]: - return pulumi.get(self, "fluentd_tcp") - @_builtins.property - @pulumi.getter(name="fluentdTls") - def fluentd_tls(self) -> Optional[_builtins.int]: - return pulumi.get(self, "fluentd_tls") +@pulumi.output_type +class ObservabilityAlertgroupRule(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "for": + suggest = "for_" - @_builtins.property - @pulumi.getter(name="fluentdTlsCiphers") - def fluentd_tls_ciphers(self) -> Optional[_builtins.str]: - return pulumi.get(self, "fluentd_tls_ciphers") + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ObservabilityAlertgroupRule. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ObservabilityAlertgroupRule.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ObservabilityAlertgroupRule.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + expression: _builtins.str, + alert: Optional[_builtins.str] = None, + annotations: Optional[Mapping[str, _builtins.str]] = None, + for_: Optional[_builtins.str] = None, + labels: Optional[Mapping[str, _builtins.str]] = None, + record: Optional[_builtins.str] = None): + """ + :param _builtins.str expression: The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. + :param _builtins.str alert: The name of the alert rule. Is the identifier and must be unique in the group. + :param Mapping[str, _builtins.str] annotations: A map of key:value. Annotations to add or overwrite for each alert + :param _builtins.str for_: 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 + :param Mapping[str, _builtins.str] labels: A map of key:value. Labels to add or overwrite for each alert + :param _builtins.str record: The name of the metric. It's the identifier and must be unique in the group. + """ + pulumi.set(__self__, "expression", expression) + if alert is not None: + pulumi.set(__self__, "alert", alert) + if annotations is not None: + pulumi.set(__self__, "annotations", annotations) + if for_ is not None: + pulumi.set(__self__, "for_", for_) + if labels is not None: + pulumi.set(__self__, "labels", labels) + if record is not None: + pulumi.set(__self__, "record", record) @_builtins.property - @pulumi.getter(name="fluentdTlsMaxVersion") - def fluentd_tls_max_version(self) -> Optional[_builtins.str]: - return pulumi.get(self, "fluentd_tls_max_version") + @pulumi.getter + def expression(self) -> _builtins.str: + """ + The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. + """ + return pulumi.get(self, "expression") @_builtins.property - @pulumi.getter(name="fluentdTlsMinVersion") - def fluentd_tls_min_version(self) -> Optional[_builtins.str]: - return pulumi.get(self, "fluentd_tls_min_version") + @pulumi.getter + def alert(self) -> Optional[_builtins.str]: + """ + The name of the alert rule. Is the identifier and must be unique in the group. + """ + return pulumi.get(self, "alert") @_builtins.property - @pulumi.getter(name="fluentdTlsVersion") - def fluentd_tls_version(self) -> Optional[_builtins.str]: - return pulumi.get(self, "fluentd_tls_version") + @pulumi.getter + def annotations(self) -> Optional[Mapping[str, _builtins.str]]: + """ + A map of key:value. Annotations to add or overwrite for each alert + """ + return pulumi.get(self, "annotations") @_builtins.property - @pulumi.getter(name="fluentdUdp") - def fluentd_udp(self) -> Optional[_builtins.int]: - return pulumi.get(self, "fluentd_udp") + @pulumi.getter(name="for") + def for_(self) -> Optional[_builtins.str]: + """ + 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 + """ + return pulumi.get(self, "for_") @_builtins.property @pulumi.getter - def graphite(self) -> Optional[_builtins.str]: + def labels(self) -> Optional[Mapping[str, _builtins.str]]: """ - If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). + A map of key:value. Labels to add or overwrite for each alert """ - return pulumi.get(self, "graphite") + return pulumi.get(self, "labels") @_builtins.property - @pulumi.getter(name="ismDeletionAfter") - def ism_deletion_after(self) -> Optional[_builtins.str]: + @pulumi.getter + def record(self) -> Optional[_builtins.str]: """ - Combination of an integer and a timerange when an index will be considered "old" and can be deleted. Possible values for the timerange are `s`, `m`, `h` and `d`. + The name of the metric. It's the identifier and must be unique in the group. """ - return pulumi.get(self, "ism_deletion_after") + return pulumi.get(self, "record") - @_builtins.property - @pulumi.getter(name="ismJitter") - def ism_jitter(self) -> Optional[_builtins.float]: - return pulumi.get(self, "ism_jitter") + +@pulumi.output_type +class ObservabilityInstanceAlertConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "global": + suggest = "global_" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ObservabilityInstanceAlertConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ObservabilityInstanceAlertConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ObservabilityInstanceAlertConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + receivers: Sequence['outputs.ObservabilityInstanceAlertConfigReceiver'], + route: 'outputs.ObservabilityInstanceAlertConfigRoute', + global_: Optional['outputs.ObservabilityInstanceAlertConfigGlobal'] = None): + """ + :param Sequence['ObservabilityInstanceAlertConfigReceiverArgs'] receivers: List of alert receivers. + :param 'ObservabilityInstanceAlertConfigRouteArgs' route: Route configuration for the alerts. + :param 'ObservabilityInstanceAlertConfigGlobalArgs' global_: 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. + """ + pulumi.set(__self__, "receivers", receivers) + pulumi.set(__self__, "route", route) + if global_ is not None: + pulumi.set(__self__, "global_", global_) @_builtins.property - @pulumi.getter(name="ismJobInterval") - def ism_job_interval(self) -> Optional[_builtins.int]: + @pulumi.getter + def receivers(self) -> Sequence['outputs.ObservabilityInstanceAlertConfigReceiver']: """ - Jitter of the execution time. + List of alert receivers. """ - return pulumi.get(self, "ism_job_interval") + return pulumi.get(self, "receivers") @_builtins.property - @pulumi.getter(name="javaHeapspace") - def java_heapspace(self) -> Optional[_builtins.int]: + @pulumi.getter + def route(self) -> 'outputs.ObservabilityInstanceAlertConfigRoute': """ - The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. + Route configuration for the alerts. """ - return pulumi.get(self, "java_heapspace") + return pulumi.get(self, "route") @_builtins.property - @pulumi.getter(name="javaMaxmetaspace") - def java_maxmetaspace(self) -> Optional[_builtins.int]: + @pulumi.getter(name="global") + def global_(self) -> Optional['outputs.ObservabilityInstanceAlertConfigGlobal']: """ - The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. + 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. """ - return pulumi.get(self, "java_maxmetaspace") + return pulumi.get(self, "global_") + + +@pulumi.output_type +class ObservabilityInstanceAlertConfigGlobal(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "opsgenieApiKey": + suggest = "opsgenie_api_key" + elif key == "opsgenieApiUrl": + suggest = "opsgenie_api_url" + elif key == "resolveTimeout": + suggest = "resolve_timeout" + elif key == "smtpAuthIdentity": + suggest = "smtp_auth_identity" + elif key == "smtpAuthPassword": + suggest = "smtp_auth_password" + elif key == "smtpAuthUsername": + suggest = "smtp_auth_username" + elif key == "smtpFrom": + suggest = "smtp_from" + elif key == "smtpSmartHost": + suggest = "smtp_smart_host" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ObservabilityInstanceAlertConfigGlobal. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ObservabilityInstanceAlertConfigGlobal.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ObservabilityInstanceAlertConfigGlobal.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + opsgenie_api_key: Optional[_builtins.str] = None, + opsgenie_api_url: Optional[_builtins.str] = None, + resolve_timeout: Optional[_builtins.str] = None, + smtp_auth_identity: Optional[_builtins.str] = None, + smtp_auth_password: Optional[_builtins.str] = None, + smtp_auth_username: Optional[_builtins.str] = None, + smtp_from: Optional[_builtins.str] = None, + smtp_smart_host: Optional[_builtins.str] = None): + """ + :param _builtins.str opsgenie_api_key: The API key for OpsGenie. + :param _builtins.str opsgenie_api_url: The host to send OpsGenie API requests to. Must be a valid URL + :param _builtins.str resolve_timeout: 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. + :param _builtins.str smtp_auth_identity: SMTP authentication information. Must be a valid email address + :param _builtins.str smtp_auth_password: SMTP Auth using LOGIN and PLAIN. + :param _builtins.str smtp_auth_username: SMTP Auth using CRAM-MD5, LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server. + :param _builtins.str smtp_from: The default SMTP From header field. Must be a valid email address + :param _builtins.str smtp_smart_host: 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). + """ + if opsgenie_api_key is not None: + pulumi.set(__self__, "opsgenie_api_key", opsgenie_api_key) + if opsgenie_api_url is not None: + pulumi.set(__self__, "opsgenie_api_url", opsgenie_api_url) + if resolve_timeout is not None: + pulumi.set(__self__, "resolve_timeout", resolve_timeout) + if smtp_auth_identity is not None: + pulumi.set(__self__, "smtp_auth_identity", smtp_auth_identity) + if smtp_auth_password is not None: + pulumi.set(__self__, "smtp_auth_password", smtp_auth_password) + if smtp_auth_username is not None: + pulumi.set(__self__, "smtp_auth_username", smtp_auth_username) + if smtp_from is not None: + pulumi.set(__self__, "smtp_from", smtp_from) + if smtp_smart_host is not None: + pulumi.set(__self__, "smtp_smart_host", smtp_smart_host) @_builtins.property - @pulumi.getter(name="maxDiskThreshold") - def max_disk_threshold(self) -> Optional[_builtins.int]: + @pulumi.getter(name="opsgenieApiKey") + def opsgenie_api_key(self) -> Optional[_builtins.str]: """ - The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + The API key for OpsGenie. """ - return pulumi.get(self, "max_disk_threshold") + return pulumi.get(self, "opsgenie_api_key") @_builtins.property - @pulumi.getter(name="metricsFrequency") - def metrics_frequency(self) -> Optional[_builtins.int]: + @pulumi.getter(name="opsgenieApiUrl") + def opsgenie_api_url(self) -> Optional[_builtins.str]: """ - The frequency in seconds at which metrics are emitted (in seconds). + The host to send OpsGenie API requests to. Must be a valid URL """ - return pulumi.get(self, "metrics_frequency") + return pulumi.get(self, "opsgenie_api_url") @_builtins.property - @pulumi.getter(name="metricsPrefix") - def metrics_prefix(self) -> Optional[_builtins.str]: + @pulumi.getter(name="resolveTimeout") + def resolve_timeout(self) -> Optional[_builtins.str]: """ - The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. + 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. """ - return pulumi.get(self, "metrics_prefix") + return pulumi.get(self, "resolve_timeout") @_builtins.property - @pulumi.getter(name="monitoringInstanceId") - def monitoring_instance_id(self) -> Optional[_builtins.str]: + @pulumi.getter(name="smtpAuthIdentity") + def smtp_auth_identity(self) -> Optional[_builtins.str]: """ - The ID of the STACKIT monitoring instance. + SMTP authentication information. Must be a valid email address """ - return pulumi.get(self, "monitoring_instance_id") + return pulumi.get(self, "smtp_auth_identity") @_builtins.property - @pulumi.getter(name="opensearchTlsCiphers") - def opensearch_tls_ciphers(self) -> Optional[Sequence[_builtins.str]]: - return pulumi.get(self, "opensearch_tls_ciphers") + @pulumi.getter(name="smtpAuthPassword") + def smtp_auth_password(self) -> Optional[_builtins.str]: + """ + SMTP Auth using LOGIN and PLAIN. + """ + return pulumi.get(self, "smtp_auth_password") @_builtins.property - @pulumi.getter(name="opensearchTlsProtocols") - def opensearch_tls_protocols(self) -> Optional[Sequence[_builtins.str]]: - return pulumi.get(self, "opensearch_tls_protocols") + @pulumi.getter(name="smtpAuthUsername") + def smtp_auth_username(self) -> Optional[_builtins.str]: + """ + SMTP Auth using CRAM-MD5, LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server. + """ + return pulumi.get(self, "smtp_auth_username") @_builtins.property - @pulumi.getter(name="sgwAcl") - def sgw_acl(self) -> Optional[_builtins.str]: + @pulumi.getter(name="smtpFrom") + def smtp_from(self) -> Optional[_builtins.str]: """ - Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + The default SMTP From header field. Must be a valid email address """ - return pulumi.get(self, "sgw_acl") + return pulumi.get(self, "smtp_from") @_builtins.property - @pulumi.getter - def syslogs(self) -> Optional[Sequence[_builtins.str]]: + @pulumi.getter(name="smtpSmartHost") + def smtp_smart_host(self) -> Optional[_builtins.str]: """ - List of syslog servers to send logs to. + 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). """ - return pulumi.get(self, "syslogs") + return pulumi.get(self, "smtp_smart_host") @pulumi.output_type -class MariadbInstanceParameters(dict): +class ObservabilityInstanceAlertConfigReceiver(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "enableMonitoring": - suggest = "enable_monitoring" - elif key == "maxDiskThreshold": - suggest = "max_disk_threshold" - elif key == "metricsFrequency": - suggest = "metrics_frequency" - elif key == "metricsPrefix": - suggest = "metrics_prefix" - elif key == "monitoringInstanceId": - suggest = "monitoring_instance_id" - elif key == "sgwAcl": - suggest = "sgw_acl" + if key == "emailConfigs": + suggest = "email_configs" + elif key == "opsgenieConfigs": + suggest = "opsgenie_configs" + elif key == "webhooksConfigs": + suggest = "webhooks_configs" if suggest: - pulumi.log.warn(f"Key '{key}' not found in MariadbInstanceParameters. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ObservabilityInstanceAlertConfigReceiver. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - MariadbInstanceParameters.__key_warning(key) + ObservabilityInstanceAlertConfigReceiver.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - MariadbInstanceParameters.__key_warning(key) + ObservabilityInstanceAlertConfigReceiver.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - enable_monitoring: Optional[_builtins.bool] = None, - graphite: Optional[_builtins.str] = None, - max_disk_threshold: Optional[_builtins.int] = None, - metrics_frequency: Optional[_builtins.int] = None, - metrics_prefix: Optional[_builtins.str] = None, - monitoring_instance_id: Optional[_builtins.str] = None, - sgw_acl: Optional[_builtins.str] = None, - syslogs: Optional[Sequence[_builtins.str]] = None): - """ - :param _builtins.bool enable_monitoring: Enable monitoring. - :param _builtins.str graphite: Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. - :param _builtins.int max_disk_threshold: The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. - :param _builtins.int metrics_frequency: The frequency in seconds at which metrics are emitted. - :param _builtins.str metrics_prefix: The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key - :param _builtins.str monitoring_instance_id: The ID of the STACKIT monitoring instance. Monitoring instances with the plan "Observability-Monitoring-Starter" are not supported. - :param _builtins.str sgw_acl: Comma separated list of IP networks in CIDR notation which are allowed to access this instance. - :param Sequence[_builtins.str] syslogs: List of syslog servers to send logs to. - """ - if enable_monitoring is not None: - pulumi.set(__self__, "enable_monitoring", enable_monitoring) - if graphite is not None: - pulumi.set(__self__, "graphite", graphite) - if max_disk_threshold is not None: - pulumi.set(__self__, "max_disk_threshold", max_disk_threshold) - if metrics_frequency is not None: - pulumi.set(__self__, "metrics_frequency", metrics_frequency) - if metrics_prefix is not None: - pulumi.set(__self__, "metrics_prefix", metrics_prefix) - if monitoring_instance_id is not None: - pulumi.set(__self__, "monitoring_instance_id", monitoring_instance_id) - if sgw_acl is not None: - pulumi.set(__self__, "sgw_acl", sgw_acl) - if syslogs is not None: - pulumi.set(__self__, "syslogs", syslogs) - - @_builtins.property - @pulumi.getter(name="enableMonitoring") - def enable_monitoring(self) -> Optional[_builtins.bool]: + name: _builtins.str, + email_configs: Optional[Sequence['outputs.ObservabilityInstanceAlertConfigReceiverEmailConfig']] = None, + opsgenie_configs: Optional[Sequence['outputs.ObservabilityInstanceAlertConfigReceiverOpsgenieConfig']] = None, + webhooks_configs: Optional[Sequence['outputs.ObservabilityInstanceAlertConfigReceiverWebhooksConfig']] = None): """ - Enable monitoring. + :param _builtins.str name: Name of the receiver. + :param Sequence['ObservabilityInstanceAlertConfigReceiverEmailConfigArgs'] email_configs: List of email configurations. + :param Sequence['ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArgs'] opsgenie_configs: List of OpsGenie configurations. + :param Sequence['ObservabilityInstanceAlertConfigReceiverWebhooksConfigArgs'] webhooks_configs: List of Webhooks configurations. """ - return pulumi.get(self, "enable_monitoring") + pulumi.set(__self__, "name", name) + if email_configs is not None: + pulumi.set(__self__, "email_configs", email_configs) + if opsgenie_configs is not None: + pulumi.set(__self__, "opsgenie_configs", opsgenie_configs) + if webhooks_configs is not None: + pulumi.set(__self__, "webhooks_configs", webhooks_configs) @_builtins.property @pulumi.getter - def graphite(self) -> Optional[_builtins.str]: + def name(self) -> _builtins.str: """ - Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. + Name of the receiver. """ - return pulumi.get(self, "graphite") + return pulumi.get(self, "name") @_builtins.property - @pulumi.getter(name="maxDiskThreshold") - def max_disk_threshold(self) -> Optional[_builtins.int]: + @pulumi.getter(name="emailConfigs") + def email_configs(self) -> Optional[Sequence['outputs.ObservabilityInstanceAlertConfigReceiverEmailConfig']]: """ - The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + List of email configurations. """ - return pulumi.get(self, "max_disk_threshold") + return pulumi.get(self, "email_configs") @_builtins.property - @pulumi.getter(name="metricsFrequency") - def metrics_frequency(self) -> Optional[_builtins.int]: + @pulumi.getter(name="opsgenieConfigs") + def opsgenie_configs(self) -> Optional[Sequence['outputs.ObservabilityInstanceAlertConfigReceiverOpsgenieConfig']]: """ - The frequency in seconds at which metrics are emitted. + List of OpsGenie configurations. """ - return pulumi.get(self, "metrics_frequency") + return pulumi.get(self, "opsgenie_configs") @_builtins.property - @pulumi.getter(name="metricsPrefix") - def metrics_prefix(self) -> Optional[_builtins.str]: + @pulumi.getter(name="webhooksConfigs") + def webhooks_configs(self) -> Optional[Sequence['outputs.ObservabilityInstanceAlertConfigReceiverWebhooksConfig']]: """ - The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key + List of Webhooks configurations. """ - return pulumi.get(self, "metrics_prefix") + return pulumi.get(self, "webhooks_configs") - @_builtins.property - @pulumi.getter(name="monitoringInstanceId") - def monitoring_instance_id(self) -> Optional[_builtins.str]: + +@pulumi.output_type +class ObservabilityInstanceAlertConfigReceiverEmailConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "authIdentity": + suggest = "auth_identity" + elif key == "authPassword": + suggest = "auth_password" + elif key == "authUsername": + suggest = "auth_username" + elif key == "from": + suggest = "from_" + elif key == "sendResolved": + suggest = "send_resolved" + elif key == "smartHost": + suggest = "smart_host" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ObservabilityInstanceAlertConfigReceiverEmailConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ObservabilityInstanceAlertConfigReceiverEmailConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ObservabilityInstanceAlertConfigReceiverEmailConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + auth_identity: Optional[_builtins.str] = None, + auth_password: Optional[_builtins.str] = None, + auth_username: Optional[_builtins.str] = None, + from_: Optional[_builtins.str] = None, + send_resolved: Optional[_builtins.bool] = None, + smart_host: Optional[_builtins.str] = None, + to: Optional[_builtins.str] = None): """ - The ID of the STACKIT monitoring instance. Monitoring instances with the plan "Observability-Monitoring-Starter" are not supported. + :param _builtins.str auth_identity: SMTP authentication information. Must be a valid email address + :param _builtins.str auth_password: SMTP authentication password. + :param _builtins.str auth_username: SMTP authentication username. + :param _builtins.str from_: The sender email address. Must be a valid email address + :param _builtins.bool send_resolved: Whether to notify about resolved alerts. + :param _builtins.str smart_host: The SMTP host through which emails are sent. + :param _builtins.str to: The email address to send notifications to. Must be a valid email address """ - return pulumi.get(self, "monitoring_instance_id") + if auth_identity is not None: + pulumi.set(__self__, "auth_identity", auth_identity) + if auth_password is not None: + pulumi.set(__self__, "auth_password", auth_password) + if auth_username is not None: + pulumi.set(__self__, "auth_username", auth_username) + if from_ is not None: + pulumi.set(__self__, "from_", from_) + if send_resolved is not None: + pulumi.set(__self__, "send_resolved", send_resolved) + if smart_host is not None: + pulumi.set(__self__, "smart_host", smart_host) + if to is not None: + pulumi.set(__self__, "to", to) @_builtins.property - @pulumi.getter(name="sgwAcl") - def sgw_acl(self) -> Optional[_builtins.str]: + @pulumi.getter(name="authIdentity") + def auth_identity(self) -> Optional[_builtins.str]: """ - Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + SMTP authentication information. Must be a valid email address """ - return pulumi.get(self, "sgw_acl") + return pulumi.get(self, "auth_identity") @_builtins.property - @pulumi.getter - def syslogs(self) -> Optional[Sequence[_builtins.str]]: + @pulumi.getter(name="authPassword") + def auth_password(self) -> Optional[_builtins.str]: """ - List of syslog servers to send logs to. + SMTP authentication password. """ - return pulumi.get(self, "syslogs") - - -@pulumi.output_type -class MongodbflexInstanceFlavor(dict): - def __init__(__self__, *, - cpu: _builtins.int, - ram: _builtins.int, - description: Optional[_builtins.str] = None, - id: Optional[_builtins.str] = None): - pulumi.set(__self__, "cpu", cpu) - pulumi.set(__self__, "ram", ram) - if description is not None: - pulumi.set(__self__, "description", description) - if id is not None: - pulumi.set(__self__, "id", id) + return pulumi.get(self, "auth_password") @_builtins.property - @pulumi.getter - def cpu(self) -> _builtins.int: - return pulumi.get(self, "cpu") + @pulumi.getter(name="authUsername") + def auth_username(self) -> Optional[_builtins.str]: + """ + SMTP authentication username. + """ + return pulumi.get(self, "auth_username") @_builtins.property - @pulumi.getter - def ram(self) -> _builtins.int: - return pulumi.get(self, "ram") + @pulumi.getter(name="from") + def from_(self) -> Optional[_builtins.str]: + """ + The sender email address. Must be a valid email address + """ + return pulumi.get(self, "from_") @_builtins.property - @pulumi.getter - def description(self) -> Optional[_builtins.str]: - return pulumi.get(self, "description") + @pulumi.getter(name="sendResolved") + def send_resolved(self) -> Optional[_builtins.bool]: + """ + Whether to notify about resolved alerts. + """ + return pulumi.get(self, "send_resolved") + + @_builtins.property + @pulumi.getter(name="smartHost") + def smart_host(self) -> Optional[_builtins.str]: + """ + The SMTP host through which emails are sent. + """ + return pulumi.get(self, "smart_host") @_builtins.property @pulumi.getter - def id(self) -> Optional[_builtins.str]: - return pulumi.get(self, "id") + def to(self) -> Optional[_builtins.str]: + """ + The email address to send notifications to. Must be a valid email address + """ + return pulumi.get(self, "to") @pulumi.output_type -class MongodbflexInstanceOptions(dict): +class ObservabilityInstanceAlertConfigReceiverOpsgenieConfig(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "pointInTimeWindowHours": - suggest = "point_in_time_window_hours" - elif key == "dailySnapshotRetentionDays": - suggest = "daily_snapshot_retention_days" - elif key == "monthlySnapshotRetentionMonths": - suggest = "monthly_snapshot_retention_months" - elif key == "snapshotRetentionDays": - suggest = "snapshot_retention_days" - elif key == "weeklySnapshotRetentionWeeks": - suggest = "weekly_snapshot_retention_weeks" + if key == "apiKey": + suggest = "api_key" + elif key == "apiUrl": + suggest = "api_url" + elif key == "sendResolved": + suggest = "send_resolved" if suggest: - pulumi.log.warn(f"Key '{key}' not found in MongodbflexInstanceOptions. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ObservabilityInstanceAlertConfigReceiverOpsgenieConfig. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - MongodbflexInstanceOptions.__key_warning(key) + ObservabilityInstanceAlertConfigReceiverOpsgenieConfig.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - MongodbflexInstanceOptions.__key_warning(key) + ObservabilityInstanceAlertConfigReceiverOpsgenieConfig.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - point_in_time_window_hours: _builtins.int, - type: _builtins.str, - daily_snapshot_retention_days: Optional[_builtins.int] = None, - monthly_snapshot_retention_months: Optional[_builtins.int] = None, - snapshot_retention_days: Optional[_builtins.int] = None, - weekly_snapshot_retention_weeks: Optional[_builtins.int] = None): - """ - :param _builtins.int point_in_time_window_hours: The number of hours back in time the point-in-time recovery feature will be able to recover. - :param _builtins.str type: Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. - :param _builtins.int daily_snapshot_retention_days: The number of days that daily backups will be retained. - :param _builtins.int monthly_snapshot_retention_months: The number of months that monthly backups will be retained. - :param _builtins.int snapshot_retention_days: The number of days that continuous backups (controlled via the `backup_schedule`) will be retained. - :param _builtins.int weekly_snapshot_retention_weeks: The number of weeks that weekly backups will be retained. - """ - pulumi.set(__self__, "point_in_time_window_hours", point_in_time_window_hours) - pulumi.set(__self__, "type", type) - if daily_snapshot_retention_days is not None: - pulumi.set(__self__, "daily_snapshot_retention_days", daily_snapshot_retention_days) - if monthly_snapshot_retention_months is not None: - pulumi.set(__self__, "monthly_snapshot_retention_months", monthly_snapshot_retention_months) - if snapshot_retention_days is not None: - pulumi.set(__self__, "snapshot_retention_days", snapshot_retention_days) - if weekly_snapshot_retention_weeks is not None: - pulumi.set(__self__, "weekly_snapshot_retention_weeks", weekly_snapshot_retention_weeks) - - @_builtins.property - @pulumi.getter(name="pointInTimeWindowHours") - def point_in_time_window_hours(self) -> _builtins.int: + api_key: Optional[_builtins.str] = None, + api_url: Optional[_builtins.str] = None, + priority: Optional[_builtins.str] = None, + send_resolved: Optional[_builtins.bool] = None, + tags: Optional[_builtins.str] = None): """ - The number of hours back in time the point-in-time recovery feature will be able to recover. + :param _builtins.str api_key: The API key for OpsGenie. + :param _builtins.str api_url: The host to send OpsGenie API requests to. Must be a valid URL + :param _builtins.str priority: Priority of the alert. Possible values are: `P1`, `P2`, `P3`, `P4`, `P5`. + :param _builtins.bool send_resolved: Whether to notify about resolved alerts. + :param _builtins.str tags: Comma separated list of tags attached to the notifications. """ - return pulumi.get(self, "point_in_time_window_hours") + if api_key is not None: + pulumi.set(__self__, "api_key", api_key) + if api_url is not None: + pulumi.set(__self__, "api_url", api_url) + if priority is not None: + pulumi.set(__self__, "priority", priority) + if send_resolved is not None: + pulumi.set(__self__, "send_resolved", send_resolved) + if tags is not None: + pulumi.set(__self__, "tags", tags) @_builtins.property - @pulumi.getter - def type(self) -> _builtins.str: + @pulumi.getter(name="apiKey") + def api_key(self) -> Optional[_builtins.str]: """ - Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. + The API key for OpsGenie. """ - return pulumi.get(self, "type") + return pulumi.get(self, "api_key") @_builtins.property - @pulumi.getter(name="dailySnapshotRetentionDays") - def daily_snapshot_retention_days(self) -> Optional[_builtins.int]: + @pulumi.getter(name="apiUrl") + def api_url(self) -> Optional[_builtins.str]: """ - The number of days that daily backups will be retained. + The host to send OpsGenie API requests to. Must be a valid URL """ - return pulumi.get(self, "daily_snapshot_retention_days") + return pulumi.get(self, "api_url") @_builtins.property - @pulumi.getter(name="monthlySnapshotRetentionMonths") - def monthly_snapshot_retention_months(self) -> Optional[_builtins.int]: + @pulumi.getter + def priority(self) -> Optional[_builtins.str]: """ - The number of months that monthly backups will be retained. + Priority of the alert. Possible values are: `P1`, `P2`, `P3`, `P4`, `P5`. """ - return pulumi.get(self, "monthly_snapshot_retention_months") + return pulumi.get(self, "priority") @_builtins.property - @pulumi.getter(name="snapshotRetentionDays") - def snapshot_retention_days(self) -> Optional[_builtins.int]: + @pulumi.getter(name="sendResolved") + def send_resolved(self) -> Optional[_builtins.bool]: """ - The number of days that continuous backups (controlled via the `backup_schedule`) will be retained. + Whether to notify about resolved alerts. """ - return pulumi.get(self, "snapshot_retention_days") + return pulumi.get(self, "send_resolved") @_builtins.property - @pulumi.getter(name="weeklySnapshotRetentionWeeks") - def weekly_snapshot_retention_weeks(self) -> Optional[_builtins.int]: + @pulumi.getter + def tags(self) -> Optional[_builtins.str]: """ - The number of weeks that weekly backups will be retained. + Comma separated list of tags attached to the notifications. """ - return pulumi.get(self, "weekly_snapshot_retention_weeks") + return pulumi.get(self, "tags") @pulumi.output_type -class MongodbflexInstanceStorage(dict): +class ObservabilityInstanceAlertConfigReceiverWebhooksConfig(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "class": - suggest = "class_" + if key == "googleChat": + suggest = "google_chat" + elif key == "msTeams": + suggest = "ms_teams" + elif key == "sendResolved": + suggest = "send_resolved" if suggest: - pulumi.log.warn(f"Key '{key}' not found in MongodbflexInstanceStorage. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ObservabilityInstanceAlertConfigReceiverWebhooksConfig. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - MongodbflexInstanceStorage.__key_warning(key) + ObservabilityInstanceAlertConfigReceiverWebhooksConfig.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - MongodbflexInstanceStorage.__key_warning(key) + ObservabilityInstanceAlertConfigReceiverWebhooksConfig.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - class_: _builtins.str, - size: _builtins.int): - pulumi.set(__self__, "class_", class_) - pulumi.set(__self__, "size", size) + google_chat: Optional[_builtins.bool] = None, + ms_teams: Optional[_builtins.bool] = None, + send_resolved: Optional[_builtins.bool] = None, + url: Optional[_builtins.str] = None): + """ + :param _builtins.bool google_chat: Google Chat webhooks require special handling, set this to true if the webhook is for Google Chat. + :param _builtins.bool ms_teams: Microsoft Teams webhooks require special handling, set this to true if the webhook is for Microsoft Teams. + :param _builtins.bool send_resolved: Whether to notify about resolved alerts. + :param _builtins.str url: The endpoint to send HTTP POST requests to. Must be a valid URL + """ + if google_chat is not None: + pulumi.set(__self__, "google_chat", google_chat) + if ms_teams is not None: + pulumi.set(__self__, "ms_teams", ms_teams) + if send_resolved is not None: + pulumi.set(__self__, "send_resolved", send_resolved) + if url is not None: + pulumi.set(__self__, "url", url) @_builtins.property - @pulumi.getter(name="class") - def class_(self) -> _builtins.str: - return pulumi.get(self, "class_") + @pulumi.getter(name="googleChat") + def google_chat(self) -> Optional[_builtins.bool]: + """ + Google Chat webhooks require special handling, set this to true if the webhook is for Google Chat. + """ + return pulumi.get(self, "google_chat") @_builtins.property - @pulumi.getter - def size(self) -> _builtins.int: - return pulumi.get(self, "size") - - -@pulumi.output_type -class NetworkAreaNetworkRange(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "networkRangeId": - suggest = "network_range_id" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in NetworkAreaNetworkRange. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - NetworkAreaNetworkRange.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - NetworkAreaNetworkRange.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - prefix: _builtins.str, - network_range_id: Optional[_builtins.str] = None): + @pulumi.getter(name="msTeams") + def ms_teams(self) -> Optional[_builtins.bool]: """ - :param _builtins.str prefix: Classless Inter-Domain Routing (CIDR). + Microsoft Teams webhooks require special handling, set this to true if the webhook is for Microsoft Teams. """ - pulumi.set(__self__, "prefix", prefix) - if network_range_id is not None: - pulumi.set(__self__, "network_range_id", network_range_id) + return pulumi.get(self, "ms_teams") @_builtins.property - @pulumi.getter - @_utilities.deprecated("""Deprecated because of the IaaS API v1 -> v2 migration. Will be removed in May 2026. Use the new `NetworkAreaRegion` resource instead.""") - def prefix(self) -> _builtins.str: + @pulumi.getter(name="sendResolved") + def send_resolved(self) -> Optional[_builtins.bool]: """ - Classless Inter-Domain Routing (CIDR). + Whether to notify about resolved alerts. """ - return pulumi.get(self, "prefix") + return pulumi.get(self, "send_resolved") @_builtins.property - @pulumi.getter(name="networkRangeId") - @_utilities.deprecated("""Deprecated because of the IaaS API v1 -> v2 migration. Will be removed in May 2026. Use the new `NetworkAreaRegion` resource instead.""") - def network_range_id(self) -> Optional[_builtins.str]: - return pulumi.get(self, "network_range_id") + @pulumi.getter + def url(self) -> Optional[_builtins.str]: + """ + The endpoint to send HTTP POST requests to. Must be a valid URL + """ + return pulumi.get(self, "url") @pulumi.output_type -class NetworkAreaRegionIpv4(dict): +class ObservabilityInstanceAlertConfigRoute(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "networkRanges": - suggest = "network_ranges" - elif key == "transferNetwork": - suggest = "transfer_network" - elif key == "defaultNameservers": - suggest = "default_nameservers" - elif key == "defaultPrefixLength": - suggest = "default_prefix_length" - elif key == "maxPrefixLength": - suggest = "max_prefix_length" - elif key == "minPrefixLength": - suggest = "min_prefix_length" + if key == "continue": + suggest = "continue_" + elif key == "groupBies": + suggest = "group_bies" + elif key == "groupInterval": + suggest = "group_interval" + elif key == "groupWait": + suggest = "group_wait" + elif key == "repeatInterval": + suggest = "repeat_interval" if suggest: - pulumi.log.warn(f"Key '{key}' not found in NetworkAreaRegionIpv4. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ObservabilityInstanceAlertConfigRoute. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - NetworkAreaRegionIpv4.__key_warning(key) + ObservabilityInstanceAlertConfigRoute.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - NetworkAreaRegionIpv4.__key_warning(key) + ObservabilityInstanceAlertConfigRoute.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - network_ranges: Sequence['outputs.NetworkAreaRegionIpv4NetworkRange'], - transfer_network: _builtins.str, - default_nameservers: Optional[Sequence[_builtins.str]] = None, - default_prefix_length: Optional[_builtins.int] = None, - max_prefix_length: Optional[_builtins.int] = None, - min_prefix_length: Optional[_builtins.int] = None): + receiver: _builtins.str, + continue_: Optional[_builtins.bool] = None, + group_bies: Optional[Sequence[_builtins.str]] = None, + group_interval: Optional[_builtins.str] = None, + group_wait: Optional[_builtins.str] = None, + repeat_interval: Optional[_builtins.str] = None, + routes: Optional[Sequence['outputs.ObservabilityInstanceAlertConfigRouteRoute']] = None): """ - :param Sequence['NetworkAreaRegionIpv4NetworkRangeArgs'] network_ranges: List of Network ranges. - :param _builtins.str transfer_network: IPv4 Classless Inter-Domain Routing (CIDR). - :param Sequence[_builtins.str] default_nameservers: List of DNS Servers/Nameservers. - :param _builtins.int default_prefix_length: The default prefix length for networks in the network area. - :param _builtins.int max_prefix_length: The maximal prefix length for networks in the network area. - :param _builtins.int min_prefix_length: The minimal prefix length for networks in the network area. + :param _builtins.str receiver: The name of the receiver to route the alerts to. + :param _builtins.bool continue_: Whether an alert should continue matching subsequent sibling nodes. + :param Sequence[_builtins.str] group_bies: 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. + :param _builtins.str group_interval: 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.) + :param _builtins.str group_wait: 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.) + :param _builtins.str repeat_interval: How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). + :param Sequence['ObservabilityInstanceAlertConfigRouteRouteArgs'] routes: List of child routes. """ - pulumi.set(__self__, "network_ranges", network_ranges) - pulumi.set(__self__, "transfer_network", transfer_network) - if default_nameservers is not None: - pulumi.set(__self__, "default_nameservers", default_nameservers) - if default_prefix_length is not None: - pulumi.set(__self__, "default_prefix_length", default_prefix_length) - if max_prefix_length is not None: - pulumi.set(__self__, "max_prefix_length", max_prefix_length) - if min_prefix_length is not None: - pulumi.set(__self__, "min_prefix_length", min_prefix_length) + pulumi.set(__self__, "receiver", receiver) + if continue_ is not None: + pulumi.set(__self__, "continue_", continue_) + if group_bies is not None: + pulumi.set(__self__, "group_bies", group_bies) + if group_interval is not None: + pulumi.set(__self__, "group_interval", group_interval) + if group_wait is not None: + pulumi.set(__self__, "group_wait", group_wait) + if repeat_interval is not None: + pulumi.set(__self__, "repeat_interval", repeat_interval) + if routes is not None: + pulumi.set(__self__, "routes", routes) @_builtins.property - @pulumi.getter(name="networkRanges") - def network_ranges(self) -> Sequence['outputs.NetworkAreaRegionIpv4NetworkRange']: + @pulumi.getter + def receiver(self) -> _builtins.str: """ - List of Network ranges. + The name of the receiver to route the alerts to. """ - return pulumi.get(self, "network_ranges") + return pulumi.get(self, "receiver") @_builtins.property - @pulumi.getter(name="transferNetwork") - def transfer_network(self) -> _builtins.str: + @pulumi.getter(name="continue") + def continue_(self) -> Optional[_builtins.bool]: """ - IPv4 Classless Inter-Domain Routing (CIDR). + Whether an alert should continue matching subsequent sibling nodes. """ - return pulumi.get(self, "transfer_network") + return pulumi.get(self, "continue_") @_builtins.property - @pulumi.getter(name="defaultNameservers") - def default_nameservers(self) -> Optional[Sequence[_builtins.str]]: + @pulumi.getter(name="groupBies") + def group_bies(self) -> Optional[Sequence[_builtins.str]]: """ - List of DNS Servers/Nameservers. + 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. """ - return pulumi.get(self, "default_nameservers") + return pulumi.get(self, "group_bies") @_builtins.property - @pulumi.getter(name="defaultPrefixLength") - def default_prefix_length(self) -> Optional[_builtins.int]: + @pulumi.getter(name="groupInterval") + def group_interval(self) -> Optional[_builtins.str]: """ - The default prefix length for networks in the network area. + 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.) """ - return pulumi.get(self, "default_prefix_length") + return pulumi.get(self, "group_interval") @_builtins.property - @pulumi.getter(name="maxPrefixLength") - def max_prefix_length(self) -> Optional[_builtins.int]: + @pulumi.getter(name="groupWait") + def group_wait(self) -> Optional[_builtins.str]: """ - The maximal prefix length for networks in the network area. + 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.) """ - return pulumi.get(self, "max_prefix_length") + return pulumi.get(self, "group_wait") @_builtins.property - @pulumi.getter(name="minPrefixLength") - def min_prefix_length(self) -> Optional[_builtins.int]: + @pulumi.getter(name="repeatInterval") + def repeat_interval(self) -> Optional[_builtins.str]: """ - The minimal prefix length for networks in the network area. + How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). """ - return pulumi.get(self, "min_prefix_length") + return pulumi.get(self, "repeat_interval") + + @_builtins.property + @pulumi.getter + def routes(self) -> Optional[Sequence['outputs.ObservabilityInstanceAlertConfigRouteRoute']]: + """ + List of child routes. + """ + return pulumi.get(self, "routes") @pulumi.output_type -class NetworkAreaRegionIpv4NetworkRange(dict): +class ObservabilityInstanceAlertConfigRouteRoute(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "networkRangeId": - suggest = "network_range_id" + if key == "continue": + suggest = "continue_" + elif key == "groupBies": + suggest = "group_bies" + elif key == "groupInterval": + suggest = "group_interval" + elif key == "groupWait": + suggest = "group_wait" + elif key == "matchRegex": + suggest = "match_regex" + elif key == "repeatInterval": + suggest = "repeat_interval" if suggest: - pulumi.log.warn(f"Key '{key}' not found in NetworkAreaRegionIpv4NetworkRange. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ObservabilityInstanceAlertConfigRouteRoute. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - NetworkAreaRegionIpv4NetworkRange.__key_warning(key) + ObservabilityInstanceAlertConfigRouteRoute.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - NetworkAreaRegionIpv4NetworkRange.__key_warning(key) + ObservabilityInstanceAlertConfigRouteRoute.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - prefix: _builtins.str, - network_range_id: Optional[_builtins.str] = None): + receiver: _builtins.str, + continue_: Optional[_builtins.bool] = None, + group_bies: Optional[Sequence[_builtins.str]] = None, + group_interval: Optional[_builtins.str] = None, + group_wait: Optional[_builtins.str] = None, + match: Optional[Mapping[str, _builtins.str]] = None, + match_regex: Optional[Mapping[str, _builtins.str]] = None, + matchers: Optional[Sequence[_builtins.str]] = None, + repeat_interval: Optional[_builtins.str] = None): """ - :param _builtins.str prefix: Classless Inter-Domain Routing (CIDR). + :param _builtins.str receiver: The name of the receiver to route the alerts to. + :param _builtins.bool continue_: Whether an alert should continue matching subsequent sibling nodes. + :param Sequence[_builtins.str] group_bies: 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. + :param _builtins.str group_interval: 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.) + :param _builtins.str group_wait: 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.) + :param Mapping[str, _builtins.str] match: 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 `matchers` in the `routes` instead + :param Mapping[str, _builtins.str] match_regex: 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 `matchers` in the `routes` instead + :param Sequence[_builtins.str] matchers: 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. + :param _builtins.str repeat_interval: How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). """ - pulumi.set(__self__, "prefix", prefix) - if network_range_id is not None: - pulumi.set(__self__, "network_range_id", network_range_id) + pulumi.set(__self__, "receiver", receiver) + if continue_ is not None: + pulumi.set(__self__, "continue_", continue_) + if group_bies is not None: + pulumi.set(__self__, "group_bies", group_bies) + if group_interval is not None: + pulumi.set(__self__, "group_interval", group_interval) + if group_wait is not None: + pulumi.set(__self__, "group_wait", group_wait) + if match is not None: + pulumi.set(__self__, "match", match) + if match_regex is not None: + pulumi.set(__self__, "match_regex", match_regex) + if matchers is not None: + pulumi.set(__self__, "matchers", matchers) + if repeat_interval is not None: + pulumi.set(__self__, "repeat_interval", repeat_interval) @_builtins.property @pulumi.getter - def prefix(self) -> _builtins.str: + def receiver(self) -> _builtins.str: """ - Classless Inter-Domain Routing (CIDR). + The name of the receiver to route the alerts to. """ - return pulumi.get(self, "prefix") + return pulumi.get(self, "receiver") @_builtins.property - @pulumi.getter(name="networkRangeId") - def network_range_id(self) -> Optional[_builtins.str]: - return pulumi.get(self, "network_range_id") - - -@pulumi.output_type -class NetworkAreaRouteDestination(dict): - def __init__(__self__, *, - type: _builtins.str, - value: _builtins.str): + @pulumi.getter(name="continue") + def continue_(self) -> Optional[_builtins.bool]: """ - :param _builtins.str type: CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported currently. - :param _builtins.str value: An CIDR string. + Whether an alert should continue matching subsequent sibling nodes. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + return pulumi.get(self, "continue_") @_builtins.property - @pulumi.getter - def type(self) -> _builtins.str: + @pulumi.getter(name="groupBies") + def group_bies(self) -> Optional[Sequence[_builtins.str]]: """ - CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported currently. + 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. """ - return pulumi.get(self, "type") + return pulumi.get(self, "group_bies") @_builtins.property - @pulumi.getter - def value(self) -> _builtins.str: + @pulumi.getter(name="groupInterval") + def group_interval(self) -> Optional[_builtins.str]: """ - An CIDR string. + 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.) """ - return pulumi.get(self, "value") + return pulumi.get(self, "group_interval") + @_builtins.property + @pulumi.getter(name="groupWait") + def group_wait(self) -> Optional[_builtins.str]: + """ + 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.) + """ + return pulumi.get(self, "group_wait") -@pulumi.output_type -class NetworkAreaRouteNextHop(dict): - def __init__(__self__, *, - type: _builtins.str, - value: Optional[_builtins.str] = None): + @_builtins.property + @pulumi.getter + @_utilities.deprecated("""Use `matchers` in the `routes` instead.""") + def match(self) -> Optional[Mapping[str, _builtins.str]]: + """ + 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 `matchers` in the `routes` instead """ - :param _builtins.str type: Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `ipv4` supported currently. - :param _builtins.str value: Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported currently. + return pulumi.get(self, "match") + + @_builtins.property + @pulumi.getter(name="matchRegex") + @_utilities.deprecated("""Use `matchers` in the `routes` instead.""") + def match_regex(self) -> Optional[Mapping[str, _builtins.str]]: """ - pulumi.set(__self__, "type", type) - if value is not None: - pulumi.set(__self__, "value", value) + 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 `matchers` in the `routes` instead + """ + return pulumi.get(self, "match_regex") @_builtins.property @pulumi.getter - def type(self) -> _builtins.str: + def matchers(self) -> Optional[Sequence[_builtins.str]]: """ - Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `ipv4` supported currently. + 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. """ - return pulumi.get(self, "type") + return pulumi.get(self, "matchers") @_builtins.property - @pulumi.getter - def value(self) -> Optional[_builtins.str]: + @pulumi.getter(name="repeatInterval") + def repeat_interval(self) -> Optional[_builtins.str]: """ - Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported currently. + How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). """ - return pulumi.get(self, "value") + return pulumi.get(self, "repeat_interval") @pulumi.output_type -class ObservabilityAlertgroupRule(dict): +class ObservabilityLogalertgroupRule(dict): @staticmethod def __key_warning(key: str): suggest = None @@ -2300,58 +4442,53 @@ def __key_warning(key: str): suggest = "for_" if suggest: - pulumi.log.warn(f"Key '{key}' not found in ObservabilityAlertgroupRule. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ObservabilityLogalertgroupRule. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - ObservabilityAlertgroupRule.__key_warning(key) + ObservabilityLogalertgroupRule.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - ObservabilityAlertgroupRule.__key_warning(key) + ObservabilityLogalertgroupRule.__key_warning(key) return super().get(key, default) def __init__(__self__, *, + alert: _builtins.str, expression: _builtins.str, - alert: Optional[_builtins.str] = None, annotations: Optional[Mapping[str, _builtins.str]] = None, for_: Optional[_builtins.str] = None, - labels: Optional[Mapping[str, _builtins.str]] = None, - record: Optional[_builtins.str] = None): + labels: Optional[Mapping[str, _builtins.str]] = None): """ - :param _builtins.str expression: The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. :param _builtins.str alert: The name of the alert rule. Is the identifier and must be unique in the group. + :param _builtins.str expression: The LogQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. :param Mapping[str, _builtins.str] annotations: A map of key:value. Annotations to add or overwrite for each alert :param _builtins.str for_: 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 :param Mapping[str, _builtins.str] labels: A map of key:value. Labels to add or overwrite for each alert - :param _builtins.str record: The name of the metric. It's the identifier and must be unique in the group. """ + pulumi.set(__self__, "alert", alert) pulumi.set(__self__, "expression", expression) - if alert is not None: - pulumi.set(__self__, "alert", alert) if annotations is not None: pulumi.set(__self__, "annotations", annotations) if for_ is not None: pulumi.set(__self__, "for_", for_) if labels is not None: pulumi.set(__self__, "labels", labels) - if record is not None: - pulumi.set(__self__, "record", record) @_builtins.property @pulumi.getter - def expression(self) -> _builtins.str: + def alert(self) -> _builtins.str: """ - The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. + The name of the alert rule. Is the identifier and must be unique in the group. """ - return pulumi.get(self, "expression") + return pulumi.get(self, "alert") @_builtins.property @pulumi.getter - def alert(self) -> Optional[_builtins.str]: + def expression(self) -> _builtins.str: """ - The name of the alert rule. Is the identifier and must be unique in the group. + The LogQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. """ - return pulumi.get(self, "alert") + return pulumi.get(self, "expression") @_builtins.property @pulumi.getter @@ -2377,3093 +4514,3042 @@ def labels(self) -> Optional[Mapping[str, _builtins.str]]: """ return pulumi.get(self, "labels") + +@pulumi.output_type +class ObservabilityScrapeconfigBasicAuth(dict): + def __init__(__self__, *, + password: _builtins.str, + username: _builtins.str): + """ + :param _builtins.str password: Specifies basic auth password. + :param _builtins.str username: Specifies basic auth username. + """ + pulumi.set(__self__, "password", password) + pulumi.set(__self__, "username", username) + @_builtins.property @pulumi.getter - def record(self) -> Optional[_builtins.str]: + def password(self) -> _builtins.str: """ - The name of the metric. It's the identifier and must be unique in the group. + Specifies basic auth password. """ - return pulumi.get(self, "record") + return pulumi.get(self, "password") + + @_builtins.property + @pulumi.getter + def username(self) -> _builtins.str: + """ + Specifies basic auth username. + """ + return pulumi.get(self, "username") @pulumi.output_type -class ObservabilityInstanceAlertConfig(dict): +class ObservabilityScrapeconfigSaml2(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "global": - suggest = "global_" + if key == "enableUrlParameters": + suggest = "enable_url_parameters" if suggest: - pulumi.log.warn(f"Key '{key}' not found in ObservabilityInstanceAlertConfig. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ObservabilityScrapeconfigSaml2. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - ObservabilityInstanceAlertConfig.__key_warning(key) + ObservabilityScrapeconfigSaml2.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - ObservabilityInstanceAlertConfig.__key_warning(key) + ObservabilityScrapeconfigSaml2.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - receivers: Sequence['outputs.ObservabilityInstanceAlertConfigReceiver'], - route: 'outputs.ObservabilityInstanceAlertConfigRoute', - global_: Optional['outputs.ObservabilityInstanceAlertConfigGlobal'] = None): + enable_url_parameters: Optional[_builtins.bool] = None): """ - :param Sequence['ObservabilityInstanceAlertConfigReceiverArgs'] receivers: List of alert receivers. - :param 'ObservabilityInstanceAlertConfigRouteArgs' route: Route configuration for the alerts. - :param 'ObservabilityInstanceAlertConfigGlobalArgs' global_: 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. + :param _builtins.bool enable_url_parameters: Specifies if URL parameters are enabled. Defaults to `true` """ - pulumi.set(__self__, "receivers", receivers) - pulumi.set(__self__, "route", route) - if global_ is not None: - pulumi.set(__self__, "global_", global_) + if enable_url_parameters is not None: + pulumi.set(__self__, "enable_url_parameters", enable_url_parameters) @_builtins.property - @pulumi.getter - def receivers(self) -> Sequence['outputs.ObservabilityInstanceAlertConfigReceiver']: + @pulumi.getter(name="enableUrlParameters") + def enable_url_parameters(self) -> Optional[_builtins.bool]: """ - List of alert receivers. + Specifies if URL parameters are enabled. Defaults to `true` """ - return pulumi.get(self, "receivers") + return pulumi.get(self, "enable_url_parameters") + + +@pulumi.output_type +class ObservabilityScrapeconfigTarget(dict): + def __init__(__self__, *, + urls: Sequence[_builtins.str], + labels: Optional[Mapping[str, _builtins.str]] = None): + """ + :param Sequence[_builtins.str] urls: Specifies target URLs. + :param Mapping[str, _builtins.str] labels: Specifies labels. + """ + pulumi.set(__self__, "urls", urls) + if labels is not None: + pulumi.set(__self__, "labels", labels) @_builtins.property @pulumi.getter - def route(self) -> 'outputs.ObservabilityInstanceAlertConfigRoute': + def urls(self) -> Sequence[_builtins.str]: """ - Route configuration for the alerts. + Specifies target URLs. """ - return pulumi.get(self, "route") + return pulumi.get(self, "urls") @_builtins.property - @pulumi.getter(name="global") - def global_(self) -> Optional['outputs.ObservabilityInstanceAlertConfigGlobal']: + @pulumi.getter + def labels(self) -> Optional[Mapping[str, _builtins.str]]: """ - 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. + Specifies labels. """ - return pulumi.get(self, "global_") + return pulumi.get(self, "labels") @pulumi.output_type -class ObservabilityInstanceAlertConfigGlobal(dict): +class OpensearchInstanceParameters(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "opsgenieApiKey": - suggest = "opsgenie_api_key" - elif key == "opsgenieApiUrl": - suggest = "opsgenie_api_url" - elif key == "resolveTimeout": - suggest = "resolve_timeout" - elif key == "smtpAuthIdentity": - suggest = "smtp_auth_identity" - elif key == "smtpAuthPassword": - suggest = "smtp_auth_password" - elif key == "smtpAuthUsername": - suggest = "smtp_auth_username" - elif key == "smtpFrom": - suggest = "smtp_from" - elif key == "smtpSmartHost": - suggest = "smtp_smart_host" + if key == "enableMonitoring": + suggest = "enable_monitoring" + elif key == "javaGarbageCollector": + suggest = "java_garbage_collector" + elif key == "javaHeapspace": + suggest = "java_heapspace" + elif key == "javaMaxmetaspace": + suggest = "java_maxmetaspace" + elif key == "maxDiskThreshold": + suggest = "max_disk_threshold" + elif key == "metricsFrequency": + suggest = "metrics_frequency" + elif key == "metricsPrefix": + suggest = "metrics_prefix" + elif key == "monitoringInstanceId": + suggest = "monitoring_instance_id" + elif key == "sgwAcl": + suggest = "sgw_acl" + elif key == "tlsCiphers": + suggest = "tls_ciphers" + elif key == "tlsProtocols": + suggest = "tls_protocols" if suggest: - pulumi.log.warn(f"Key '{key}' not found in ObservabilityInstanceAlertConfigGlobal. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in OpensearchInstanceParameters. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - ObservabilityInstanceAlertConfigGlobal.__key_warning(key) + OpensearchInstanceParameters.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - ObservabilityInstanceAlertConfigGlobal.__key_warning(key) + OpensearchInstanceParameters.__key_warning(key) return super().get(key, default) - def __init__(__self__, *, - opsgenie_api_key: Optional[_builtins.str] = None, - opsgenie_api_url: Optional[_builtins.str] = None, - resolve_timeout: Optional[_builtins.str] = None, - smtp_auth_identity: Optional[_builtins.str] = None, - smtp_auth_password: Optional[_builtins.str] = None, - smtp_auth_username: Optional[_builtins.str] = None, - smtp_from: Optional[_builtins.str] = None, - smtp_smart_host: Optional[_builtins.str] = None): + def __init__(__self__, *, + enable_monitoring: Optional[_builtins.bool] = None, + graphite: Optional[_builtins.str] = None, + java_garbage_collector: Optional[_builtins.str] = None, + java_heapspace: Optional[_builtins.int] = None, + java_maxmetaspace: Optional[_builtins.int] = None, + max_disk_threshold: Optional[_builtins.int] = None, + metrics_frequency: Optional[_builtins.int] = None, + metrics_prefix: Optional[_builtins.str] = None, + monitoring_instance_id: Optional[_builtins.str] = None, + plugins: Optional[Sequence[_builtins.str]] = None, + sgw_acl: Optional[_builtins.str] = None, + syslogs: Optional[Sequence[_builtins.str]] = None, + tls_ciphers: Optional[Sequence[_builtins.str]] = None, + tls_protocols: Optional[Sequence[_builtins.str]] = None): + """ + :param _builtins.bool enable_monitoring: Enable monitoring. + :param _builtins.str graphite: If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). + :param _builtins.str java_garbage_collector: The garbage collector to use for OpenSearch. + :param _builtins.int java_heapspace: The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. + :param _builtins.int java_maxmetaspace: The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. + :param _builtins.int max_disk_threshold: The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + :param _builtins.int metrics_frequency: The frequency in seconds at which metrics are emitted (in seconds). + :param _builtins.str metrics_prefix: The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. + :param _builtins.str monitoring_instance_id: The ID of the STACKIT monitoring instance. + :param Sequence[_builtins.str] plugins: 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. + :param _builtins.str sgw_acl: Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + :param Sequence[_builtins.str] syslogs: List of syslog servers to send logs to. + :param Sequence[_builtins.str] tls_ciphers: List of TLS ciphers to use. + :param Sequence[_builtins.str] tls_protocols: The TLS protocol to use. + """ + if enable_monitoring is not None: + pulumi.set(__self__, "enable_monitoring", enable_monitoring) + if graphite is not None: + pulumi.set(__self__, "graphite", graphite) + if java_garbage_collector is not None: + pulumi.set(__self__, "java_garbage_collector", java_garbage_collector) + if java_heapspace is not None: + pulumi.set(__self__, "java_heapspace", java_heapspace) + if java_maxmetaspace is not None: + pulumi.set(__self__, "java_maxmetaspace", java_maxmetaspace) + if max_disk_threshold is not None: + pulumi.set(__self__, "max_disk_threshold", max_disk_threshold) + if metrics_frequency is not None: + pulumi.set(__self__, "metrics_frequency", metrics_frequency) + if metrics_prefix is not None: + pulumi.set(__self__, "metrics_prefix", metrics_prefix) + if monitoring_instance_id is not None: + pulumi.set(__self__, "monitoring_instance_id", monitoring_instance_id) + if plugins is not None: + pulumi.set(__self__, "plugins", plugins) + if sgw_acl is not None: + pulumi.set(__self__, "sgw_acl", sgw_acl) + if syslogs is not None: + pulumi.set(__self__, "syslogs", syslogs) + if tls_ciphers is not None: + pulumi.set(__self__, "tls_ciphers", tls_ciphers) + if tls_protocols is not None: + pulumi.set(__self__, "tls_protocols", tls_protocols) + + @_builtins.property + @pulumi.getter(name="enableMonitoring") + def enable_monitoring(self) -> Optional[_builtins.bool]: """ - :param _builtins.str opsgenie_api_key: The API key for OpsGenie. - :param _builtins.str opsgenie_api_url: The host to send OpsGenie API requests to. Must be a valid URL - :param _builtins.str resolve_timeout: 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. - :param _builtins.str smtp_auth_identity: SMTP authentication information. Must be a valid email address - :param _builtins.str smtp_auth_password: SMTP Auth using LOGIN and PLAIN. - :param _builtins.str smtp_auth_username: SMTP Auth using CRAM-MD5, LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server. - :param _builtins.str smtp_from: The default SMTP From header field. Must be a valid email address - :param _builtins.str smtp_smart_host: 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). + Enable monitoring. """ - if opsgenie_api_key is not None: - pulumi.set(__self__, "opsgenie_api_key", opsgenie_api_key) - if opsgenie_api_url is not None: - pulumi.set(__self__, "opsgenie_api_url", opsgenie_api_url) - if resolve_timeout is not None: - pulumi.set(__self__, "resolve_timeout", resolve_timeout) - if smtp_auth_identity is not None: - pulumi.set(__self__, "smtp_auth_identity", smtp_auth_identity) - if smtp_auth_password is not None: - pulumi.set(__self__, "smtp_auth_password", smtp_auth_password) - if smtp_auth_username is not None: - pulumi.set(__self__, "smtp_auth_username", smtp_auth_username) - if smtp_from is not None: - pulumi.set(__self__, "smtp_from", smtp_from) - if smtp_smart_host is not None: - pulumi.set(__self__, "smtp_smart_host", smtp_smart_host) + return pulumi.get(self, "enable_monitoring") @_builtins.property - @pulumi.getter(name="opsgenieApiKey") - def opsgenie_api_key(self) -> Optional[_builtins.str]: + @pulumi.getter + def graphite(self) -> Optional[_builtins.str]: """ - The API key for OpsGenie. + If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). """ - return pulumi.get(self, "opsgenie_api_key") + return pulumi.get(self, "graphite") @_builtins.property - @pulumi.getter(name="opsgenieApiUrl") - def opsgenie_api_url(self) -> Optional[_builtins.str]: + @pulumi.getter(name="javaGarbageCollector") + def java_garbage_collector(self) -> Optional[_builtins.str]: """ - The host to send OpsGenie API requests to. Must be a valid URL + The garbage collector to use for OpenSearch. """ - return pulumi.get(self, "opsgenie_api_url") + return pulumi.get(self, "java_garbage_collector") @_builtins.property - @pulumi.getter(name="resolveTimeout") - def resolve_timeout(self) -> Optional[_builtins.str]: + @pulumi.getter(name="javaHeapspace") + def java_heapspace(self) -> Optional[_builtins.int]: """ - 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. + The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. """ - return pulumi.get(self, "resolve_timeout") + return pulumi.get(self, "java_heapspace") @_builtins.property - @pulumi.getter(name="smtpAuthIdentity") - def smtp_auth_identity(self) -> Optional[_builtins.str]: + @pulumi.getter(name="javaMaxmetaspace") + def java_maxmetaspace(self) -> Optional[_builtins.int]: """ - SMTP authentication information. Must be a valid email address + The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. """ - return pulumi.get(self, "smtp_auth_identity") + return pulumi.get(self, "java_maxmetaspace") @_builtins.property - @pulumi.getter(name="smtpAuthPassword") - def smtp_auth_password(self) -> Optional[_builtins.str]: + @pulumi.getter(name="maxDiskThreshold") + def max_disk_threshold(self) -> Optional[_builtins.int]: """ - SMTP Auth using LOGIN and PLAIN. + The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. """ - return pulumi.get(self, "smtp_auth_password") + return pulumi.get(self, "max_disk_threshold") @_builtins.property - @pulumi.getter(name="smtpAuthUsername") - def smtp_auth_username(self) -> Optional[_builtins.str]: + @pulumi.getter(name="metricsFrequency") + def metrics_frequency(self) -> Optional[_builtins.int]: """ - SMTP Auth using CRAM-MD5, LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server. + The frequency in seconds at which metrics are emitted (in seconds). """ - return pulumi.get(self, "smtp_auth_username") + return pulumi.get(self, "metrics_frequency") @_builtins.property - @pulumi.getter(name="smtpFrom") - def smtp_from(self) -> Optional[_builtins.str]: + @pulumi.getter(name="metricsPrefix") + def metrics_prefix(self) -> Optional[_builtins.str]: """ - The default SMTP From header field. Must be a valid email address + The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. """ - return pulumi.get(self, "smtp_from") + return pulumi.get(self, "metrics_prefix") @_builtins.property - @pulumi.getter(name="smtpSmartHost") - def smtp_smart_host(self) -> Optional[_builtins.str]: + @pulumi.getter(name="monitoringInstanceId") + def monitoring_instance_id(self) -> Optional[_builtins.str]: """ - 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). + The ID of the STACKIT monitoring instance. """ - return pulumi.get(self, "smtp_smart_host") - - -@pulumi.output_type -class ObservabilityInstanceAlertConfigReceiver(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "emailConfigs": - suggest = "email_configs" - elif key == "opsgenieConfigs": - suggest = "opsgenie_configs" - elif key == "webhooksConfigs": - suggest = "webhooks_configs" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ObservabilityInstanceAlertConfigReceiver. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ObservabilityInstanceAlertConfigReceiver.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ObservabilityInstanceAlertConfigReceiver.__key_warning(key) - return super().get(key, default) + return pulumi.get(self, "monitoring_instance_id") - def __init__(__self__, *, - name: _builtins.str, - email_configs: Optional[Sequence['outputs.ObservabilityInstanceAlertConfigReceiverEmailConfig']] = None, - opsgenie_configs: Optional[Sequence['outputs.ObservabilityInstanceAlertConfigReceiverOpsgenieConfig']] = None, - webhooks_configs: Optional[Sequence['outputs.ObservabilityInstanceAlertConfigReceiverWebhooksConfig']] = None): + @_builtins.property + @pulumi.getter + def plugins(self) -> Optional[Sequence[_builtins.str]]: """ - :param _builtins.str name: Name of the receiver. - :param Sequence['ObservabilityInstanceAlertConfigReceiverEmailConfigArgs'] email_configs: List of email configurations. - :param Sequence['ObservabilityInstanceAlertConfigReceiverOpsgenieConfigArgs'] opsgenie_configs: List of OpsGenie configurations. - :param Sequence['ObservabilityInstanceAlertConfigReceiverWebhooksConfigArgs'] webhooks_configs: List of Webhooks configurations. + 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. """ - pulumi.set(__self__, "name", name) - if email_configs is not None: - pulumi.set(__self__, "email_configs", email_configs) - if opsgenie_configs is not None: - pulumi.set(__self__, "opsgenie_configs", opsgenie_configs) - if webhooks_configs is not None: - pulumi.set(__self__, "webhooks_configs", webhooks_configs) + return pulumi.get(self, "plugins") @_builtins.property - @pulumi.getter - def name(self) -> _builtins.str: + @pulumi.getter(name="sgwAcl") + def sgw_acl(self) -> Optional[_builtins.str]: """ - Name of the receiver. + Comma separated list of IP networks in CIDR notation which are allowed to access this instance. """ - return pulumi.get(self, "name") + return pulumi.get(self, "sgw_acl") @_builtins.property - @pulumi.getter(name="emailConfigs") - def email_configs(self) -> Optional[Sequence['outputs.ObservabilityInstanceAlertConfigReceiverEmailConfig']]: + @pulumi.getter + def syslogs(self) -> Optional[Sequence[_builtins.str]]: """ - List of email configurations. + List of syslog servers to send logs to. """ - return pulumi.get(self, "email_configs") + return pulumi.get(self, "syslogs") @_builtins.property - @pulumi.getter(name="opsgenieConfigs") - def opsgenie_configs(self) -> Optional[Sequence['outputs.ObservabilityInstanceAlertConfigReceiverOpsgenieConfig']]: + @pulumi.getter(name="tlsCiphers") + def tls_ciphers(self) -> Optional[Sequence[_builtins.str]]: """ - List of OpsGenie configurations. + List of TLS ciphers to use. """ - return pulumi.get(self, "opsgenie_configs") + return pulumi.get(self, "tls_ciphers") @_builtins.property - @pulumi.getter(name="webhooksConfigs") - def webhooks_configs(self) -> Optional[Sequence['outputs.ObservabilityInstanceAlertConfigReceiverWebhooksConfig']]: + @pulumi.getter(name="tlsProtocols") + def tls_protocols(self) -> Optional[Sequence[_builtins.str]]: """ - List of Webhooks configurations. + The TLS protocol to use. """ - return pulumi.get(self, "webhooks_configs") + return pulumi.get(self, "tls_protocols") @pulumi.output_type -class ObservabilityInstanceAlertConfigReceiverEmailConfig(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "authIdentity": - suggest = "auth_identity" - elif key == "authPassword": - suggest = "auth_password" - elif key == "authUsername": - suggest = "auth_username" - elif key == "from": - suggest = "from_" - elif key == "sendResolved": - suggest = "send_resolved" - elif key == "smartHost": - suggest = "smart_host" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ObservabilityInstanceAlertConfigReceiverEmailConfig. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ObservabilityInstanceAlertConfigReceiverEmailConfig.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ObservabilityInstanceAlertConfigReceiverEmailConfig.__key_warning(key) - return super().get(key, default) - +class PostgresflexInstanceFlavor(dict): def __init__(__self__, *, - auth_identity: Optional[_builtins.str] = None, - auth_password: Optional[_builtins.str] = None, - auth_username: Optional[_builtins.str] = None, - from_: Optional[_builtins.str] = None, - send_resolved: Optional[_builtins.bool] = None, - smart_host: Optional[_builtins.str] = None, - to: Optional[_builtins.str] = None): - """ - :param _builtins.str auth_identity: SMTP authentication information. Must be a valid email address - :param _builtins.str auth_password: SMTP authentication password. - :param _builtins.str auth_username: SMTP authentication username. - :param _builtins.str from_: The sender email address. Must be a valid email address - :param _builtins.bool send_resolved: Whether to notify about resolved alerts. - :param _builtins.str smart_host: The SMTP host through which emails are sent. - :param _builtins.str to: The email address to send notifications to. Must be a valid email address - """ - if auth_identity is not None: - pulumi.set(__self__, "auth_identity", auth_identity) - if auth_password is not None: - pulumi.set(__self__, "auth_password", auth_password) - if auth_username is not None: - pulumi.set(__self__, "auth_username", auth_username) - if from_ is not None: - pulumi.set(__self__, "from_", from_) - if send_resolved is not None: - pulumi.set(__self__, "send_resolved", send_resolved) - if smart_host is not None: - pulumi.set(__self__, "smart_host", smart_host) - if to is not None: - pulumi.set(__self__, "to", to) - - @_builtins.property - @pulumi.getter(name="authIdentity") - def auth_identity(self) -> Optional[_builtins.str]: - """ - SMTP authentication information. Must be a valid email address - """ - return pulumi.get(self, "auth_identity") + cpu: _builtins.int, + ram: _builtins.int, + description: Optional[_builtins.str] = None, + id: Optional[_builtins.str] = None): + pulumi.set(__self__, "cpu", cpu) + pulumi.set(__self__, "ram", ram) + if description is not None: + pulumi.set(__self__, "description", description) + if id is not None: + pulumi.set(__self__, "id", id) @_builtins.property - @pulumi.getter(name="authPassword") - def auth_password(self) -> Optional[_builtins.str]: - """ - SMTP authentication password. - """ - return pulumi.get(self, "auth_password") + @pulumi.getter + def cpu(self) -> _builtins.int: + return pulumi.get(self, "cpu") @_builtins.property - @pulumi.getter(name="authUsername") - def auth_username(self) -> Optional[_builtins.str]: - """ - SMTP authentication username. - """ - return pulumi.get(self, "auth_username") + @pulumi.getter + def ram(self) -> _builtins.int: + return pulumi.get(self, "ram") @_builtins.property - @pulumi.getter(name="from") - def from_(self) -> Optional[_builtins.str]: - """ - The sender email address. Must be a valid email address - """ - return pulumi.get(self, "from_") + @pulumi.getter + def description(self) -> Optional[_builtins.str]: + return pulumi.get(self, "description") @_builtins.property - @pulumi.getter(name="sendResolved") - def send_resolved(self) -> Optional[_builtins.bool]: - """ - Whether to notify about resolved alerts. - """ - return pulumi.get(self, "send_resolved") + @pulumi.getter + def id(self) -> Optional[_builtins.str]: + return pulumi.get(self, "id") + + +@pulumi.output_type +class PostgresflexInstanceStorage(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "class": + suggest = "class_" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in PostgresflexInstanceStorage. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + PostgresflexInstanceStorage.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + PostgresflexInstanceStorage.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + class_: _builtins.str, + size: _builtins.int): + pulumi.set(__self__, "class_", class_) + pulumi.set(__self__, "size", size) @_builtins.property - @pulumi.getter(name="smartHost") - def smart_host(self) -> Optional[_builtins.str]: - """ - The SMTP host through which emails are sent. - """ - return pulumi.get(self, "smart_host") + @pulumi.getter(name="class") + def class_(self) -> _builtins.str: + return pulumi.get(self, "class_") @_builtins.property @pulumi.getter - def to(self) -> Optional[_builtins.str]: - """ - The email address to send notifications to. Must be a valid email address - """ - return pulumi.get(self, "to") + def size(self) -> _builtins.int: + return pulumi.get(self, "size") @pulumi.output_type -class ObservabilityInstanceAlertConfigReceiverOpsgenieConfig(dict): +class RabbitmqInstanceParameters(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "apiKey": - suggest = "api_key" - elif key == "apiUrl": - suggest = "api_url" - elif key == "sendResolved": - suggest = "send_resolved" + if key == "consumerTimeout": + suggest = "consumer_timeout" + elif key == "enableMonitoring": + suggest = "enable_monitoring" + elif key == "maxDiskThreshold": + suggest = "max_disk_threshold" + elif key == "metricsFrequency": + suggest = "metrics_frequency" + elif key == "metricsPrefix": + suggest = "metrics_prefix" + elif key == "monitoringInstanceId": + suggest = "monitoring_instance_id" + elif key == "sgwAcl": + suggest = "sgw_acl" + elif key == "tlsCiphers": + suggest = "tls_ciphers" + elif key == "tlsProtocols": + suggest = "tls_protocols" if suggest: - pulumi.log.warn(f"Key '{key}' not found in ObservabilityInstanceAlertConfigReceiverOpsgenieConfig. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in RabbitmqInstanceParameters. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - ObservabilityInstanceAlertConfigReceiverOpsgenieConfig.__key_warning(key) + RabbitmqInstanceParameters.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - ObservabilityInstanceAlertConfigReceiverOpsgenieConfig.__key_warning(key) + RabbitmqInstanceParameters.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - api_key: Optional[_builtins.str] = None, - api_url: Optional[_builtins.str] = None, - priority: Optional[_builtins.str] = None, - send_resolved: Optional[_builtins.bool] = None, - tags: Optional[_builtins.str] = None): + consumer_timeout: Optional[_builtins.int] = None, + enable_monitoring: Optional[_builtins.bool] = None, + graphite: Optional[_builtins.str] = None, + max_disk_threshold: Optional[_builtins.int] = None, + metrics_frequency: Optional[_builtins.int] = None, + metrics_prefix: Optional[_builtins.str] = None, + monitoring_instance_id: Optional[_builtins.str] = None, + plugins: Optional[Sequence[_builtins.str]] = None, + roles: Optional[Sequence[_builtins.str]] = None, + sgw_acl: Optional[_builtins.str] = None, + syslogs: Optional[Sequence[_builtins.str]] = None, + tls_ciphers: Optional[Sequence[_builtins.str]] = None, + tls_protocols: Optional[Sequence[_builtins.str]] = None): """ - :param _builtins.str api_key: The API key for OpsGenie. - :param _builtins.str api_url: The host to send OpsGenie API requests to. Must be a valid URL - :param _builtins.str priority: Priority of the alert. Possible values are: `P1`, `P2`, `P3`, `P4`, `P5`. - :param _builtins.bool send_resolved: Whether to notify about resolved alerts. - :param _builtins.str tags: Comma separated list of tags attached to the notifications. + :param _builtins.int consumer_timeout: The timeout in milliseconds for the consumer. + :param _builtins.bool enable_monitoring: Enable monitoring. + :param _builtins.str graphite: Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. + :param _builtins.int max_disk_threshold: The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + :param _builtins.int metrics_frequency: The frequency in seconds at which metrics are emitted. + :param _builtins.str metrics_prefix: The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key + :param _builtins.str monitoring_instance_id: The ID of the STACKIT monitoring instance. + :param Sequence[_builtins.str] plugins: List of plugins to install. Must be a supported plugin name. + :param Sequence[_builtins.str] roles: List of roles to assign to the instance. + :param _builtins.str sgw_acl: Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + :param Sequence[_builtins.str] syslogs: List of syslog servers to send logs to. + :param Sequence[_builtins.str] tls_ciphers: List of TLS ciphers to use. + :param Sequence[_builtins.str] tls_protocols: TLS protocol versions to use. """ - if api_key is not None: - pulumi.set(__self__, "api_key", api_key) - if api_url is not None: - pulumi.set(__self__, "api_url", api_url) - if priority is not None: - pulumi.set(__self__, "priority", priority) - if send_resolved is not None: - pulumi.set(__self__, "send_resolved", send_resolved) - if tags is not None: - pulumi.set(__self__, "tags", tags) + if consumer_timeout is not None: + pulumi.set(__self__, "consumer_timeout", consumer_timeout) + if enable_monitoring is not None: + pulumi.set(__self__, "enable_monitoring", enable_monitoring) + if graphite is not None: + pulumi.set(__self__, "graphite", graphite) + if max_disk_threshold is not None: + pulumi.set(__self__, "max_disk_threshold", max_disk_threshold) + if metrics_frequency is not None: + pulumi.set(__self__, "metrics_frequency", metrics_frequency) + if metrics_prefix is not None: + pulumi.set(__self__, "metrics_prefix", metrics_prefix) + if monitoring_instance_id is not None: + pulumi.set(__self__, "monitoring_instance_id", monitoring_instance_id) + if plugins is not None: + pulumi.set(__self__, "plugins", plugins) + if roles is not None: + pulumi.set(__self__, "roles", roles) + if sgw_acl is not None: + pulumi.set(__self__, "sgw_acl", sgw_acl) + if syslogs is not None: + pulumi.set(__self__, "syslogs", syslogs) + if tls_ciphers is not None: + pulumi.set(__self__, "tls_ciphers", tls_ciphers) + if tls_protocols is not None: + pulumi.set(__self__, "tls_protocols", tls_protocols) @_builtins.property - @pulumi.getter(name="apiKey") - def api_key(self) -> Optional[_builtins.str]: + @pulumi.getter(name="consumerTimeout") + def consumer_timeout(self) -> Optional[_builtins.int]: """ - The API key for OpsGenie. + The timeout in milliseconds for the consumer. """ - return pulumi.get(self, "api_key") + return pulumi.get(self, "consumer_timeout") @_builtins.property - @pulumi.getter(name="apiUrl") - def api_url(self) -> Optional[_builtins.str]: + @pulumi.getter(name="enableMonitoring") + def enable_monitoring(self) -> Optional[_builtins.bool]: """ - The host to send OpsGenie API requests to. Must be a valid URL + Enable monitoring. """ - return pulumi.get(self, "api_url") + return pulumi.get(self, "enable_monitoring") @_builtins.property @pulumi.getter - def priority(self) -> Optional[_builtins.str]: + def graphite(self) -> Optional[_builtins.str]: """ - Priority of the alert. Possible values are: `P1`, `P2`, `P3`, `P4`, `P5`. + Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. """ - return pulumi.get(self, "priority") + return pulumi.get(self, "graphite") @_builtins.property - @pulumi.getter(name="sendResolved") - def send_resolved(self) -> Optional[_builtins.bool]: + @pulumi.getter(name="maxDiskThreshold") + def max_disk_threshold(self) -> Optional[_builtins.int]: """ - Whether to notify about resolved alerts. + The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. """ - return pulumi.get(self, "send_resolved") + return pulumi.get(self, "max_disk_threshold") @_builtins.property - @pulumi.getter - def tags(self) -> Optional[_builtins.str]: + @pulumi.getter(name="metricsFrequency") + def metrics_frequency(self) -> Optional[_builtins.int]: """ - Comma separated list of tags attached to the notifications. + The frequency in seconds at which metrics are emitted. """ - return pulumi.get(self, "tags") - - -@pulumi.output_type -class ObservabilityInstanceAlertConfigReceiverWebhooksConfig(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "googleChat": - suggest = "google_chat" - elif key == "msTeams": - suggest = "ms_teams" - elif key == "sendResolved": - suggest = "send_resolved" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ObservabilityInstanceAlertConfigReceiverWebhooksConfig. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ObservabilityInstanceAlertConfigReceiverWebhooksConfig.__key_warning(key) - return super().__getitem__(key) + return pulumi.get(self, "metrics_frequency") - def get(self, key: str, default = None) -> Any: - ObservabilityInstanceAlertConfigReceiverWebhooksConfig.__key_warning(key) - return super().get(key, default) + @_builtins.property + @pulumi.getter(name="metricsPrefix") + def metrics_prefix(self) -> Optional[_builtins.str]: + """ + The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key + """ + return pulumi.get(self, "metrics_prefix") - def __init__(__self__, *, - google_chat: Optional[_builtins.bool] = None, - ms_teams: Optional[_builtins.bool] = None, - send_resolved: Optional[_builtins.bool] = None, - url: Optional[_builtins.str] = None): + @_builtins.property + @pulumi.getter(name="monitoringInstanceId") + def monitoring_instance_id(self) -> Optional[_builtins.str]: """ - :param _builtins.bool google_chat: Google Chat webhooks require special handling, set this to true if the webhook is for Google Chat. - :param _builtins.bool ms_teams: Microsoft Teams webhooks require special handling, set this to true if the webhook is for Microsoft Teams. - :param _builtins.bool send_resolved: Whether to notify about resolved alerts. - :param _builtins.str url: The endpoint to send HTTP POST requests to. Must be a valid URL + The ID of the STACKIT monitoring instance. """ - if google_chat is not None: - pulumi.set(__self__, "google_chat", google_chat) - if ms_teams is not None: - pulumi.set(__self__, "ms_teams", ms_teams) - if send_resolved is not None: - pulumi.set(__self__, "send_resolved", send_resolved) - if url is not None: - pulumi.set(__self__, "url", url) + return pulumi.get(self, "monitoring_instance_id") @_builtins.property - @pulumi.getter(name="googleChat") - def google_chat(self) -> Optional[_builtins.bool]: + @pulumi.getter + def plugins(self) -> Optional[Sequence[_builtins.str]]: """ - Google Chat webhooks require special handling, set this to true if the webhook is for Google Chat. + List of plugins to install. Must be a supported plugin name. """ - return pulumi.get(self, "google_chat") + return pulumi.get(self, "plugins") @_builtins.property - @pulumi.getter(name="msTeams") - def ms_teams(self) -> Optional[_builtins.bool]: + @pulumi.getter + def roles(self) -> Optional[Sequence[_builtins.str]]: """ - Microsoft Teams webhooks require special handling, set this to true if the webhook is for Microsoft Teams. + List of roles to assign to the instance. """ - return pulumi.get(self, "ms_teams") + return pulumi.get(self, "roles") @_builtins.property - @pulumi.getter(name="sendResolved") - def send_resolved(self) -> Optional[_builtins.bool]: + @pulumi.getter(name="sgwAcl") + def sgw_acl(self) -> Optional[_builtins.str]: """ - Whether to notify about resolved alerts. + Comma separated list of IP networks in CIDR notation which are allowed to access this instance. """ - return pulumi.get(self, "send_resolved") + return pulumi.get(self, "sgw_acl") @_builtins.property @pulumi.getter - def url(self) -> Optional[_builtins.str]: + def syslogs(self) -> Optional[Sequence[_builtins.str]]: """ - The endpoint to send HTTP POST requests to. Must be a valid URL + List of syslog servers to send logs to. """ - return pulumi.get(self, "url") + return pulumi.get(self, "syslogs") + + @_builtins.property + @pulumi.getter(name="tlsCiphers") + def tls_ciphers(self) -> Optional[Sequence[_builtins.str]]: + """ + List of TLS ciphers to use. + """ + return pulumi.get(self, "tls_ciphers") + + @_builtins.property + @pulumi.getter(name="tlsProtocols") + def tls_protocols(self) -> Optional[Sequence[_builtins.str]]: + """ + TLS protocol versions to use. + """ + return pulumi.get(self, "tls_protocols") @pulumi.output_type -class ObservabilityInstanceAlertConfigRoute(dict): +class RedisInstanceParameters(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "continue": - suggest = "continue_" - elif key == "groupBies": - suggest = "group_bies" - elif key == "groupInterval": - suggest = "group_interval" - elif key == "groupWait": - suggest = "group_wait" - elif key == "repeatInterval": - suggest = "repeat_interval" + if key == "downAfterMilliseconds": + suggest = "down_after_milliseconds" + elif key == "enableMonitoring": + suggest = "enable_monitoring" + elif key == "failoverTimeout": + suggest = "failover_timeout" + elif key == "lazyfreeLazyEviction": + suggest = "lazyfree_lazy_eviction" + elif key == "lazyfreeLazyExpire": + suggest = "lazyfree_lazy_expire" + elif key == "luaTimeLimit": + suggest = "lua_time_limit" + elif key == "maxDiskThreshold": + suggest = "max_disk_threshold" + elif key == "maxmemoryPolicy": + suggest = "maxmemory_policy" + elif key == "maxmemorySamples": + suggest = "maxmemory_samples" + elif key == "metricsFrequency": + suggest = "metrics_frequency" + elif key == "metricsPrefix": + suggest = "metrics_prefix" + elif key == "minReplicasMaxLag": + suggest = "min_replicas_max_lag" + elif key == "monitoringInstanceId": + suggest = "monitoring_instance_id" + elif key == "notifyKeyspaceEvents": + suggest = "notify_keyspace_events" + elif key == "sgwAcl": + suggest = "sgw_acl" + elif key == "tlsCiphers": + suggest = "tls_ciphers" + elif key == "tlsCiphersuites": + suggest = "tls_ciphersuites" + elif key == "tlsProtocols": + suggest = "tls_protocols" if suggest: - pulumi.log.warn(f"Key '{key}' not found in ObservabilityInstanceAlertConfigRoute. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in RedisInstanceParameters. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - ObservabilityInstanceAlertConfigRoute.__key_warning(key) + RedisInstanceParameters.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - ObservabilityInstanceAlertConfigRoute.__key_warning(key) + RedisInstanceParameters.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - receiver: _builtins.str, - continue_: Optional[_builtins.bool] = None, - group_bies: Optional[Sequence[_builtins.str]] = None, - group_interval: Optional[_builtins.str] = None, - group_wait: Optional[_builtins.str] = None, - repeat_interval: Optional[_builtins.str] = None, - routes: Optional[Sequence['outputs.ObservabilityInstanceAlertConfigRouteRoute']] = None): + down_after_milliseconds: Optional[_builtins.int] = None, + enable_monitoring: Optional[_builtins.bool] = None, + failover_timeout: Optional[_builtins.int] = None, + graphite: Optional[_builtins.str] = None, + lazyfree_lazy_eviction: Optional[_builtins.str] = None, + lazyfree_lazy_expire: Optional[_builtins.str] = None, + lua_time_limit: Optional[_builtins.int] = None, + max_disk_threshold: Optional[_builtins.int] = None, + maxclients: Optional[_builtins.int] = None, + maxmemory_policy: Optional[_builtins.str] = None, + maxmemory_samples: Optional[_builtins.int] = None, + metrics_frequency: Optional[_builtins.int] = None, + metrics_prefix: Optional[_builtins.str] = None, + min_replicas_max_lag: Optional[_builtins.int] = None, + monitoring_instance_id: Optional[_builtins.str] = None, + notify_keyspace_events: Optional[_builtins.str] = None, + sgw_acl: Optional[_builtins.str] = None, + snapshot: Optional[_builtins.str] = None, + syslogs: Optional[Sequence[_builtins.str]] = None, + tls_ciphers: Optional[Sequence[_builtins.str]] = None, + tls_ciphersuites: Optional[_builtins.str] = None, + tls_protocols: Optional[_builtins.str] = None): """ - :param _builtins.str receiver: The name of the receiver to route the alerts to. - :param _builtins.bool continue_: Whether an alert should continue matching subsequent sibling nodes. - :param Sequence[_builtins.str] group_bies: 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. - :param _builtins.str group_interval: 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.) - :param _builtins.str group_wait: 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.) - :param _builtins.str repeat_interval: How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). - :param Sequence['ObservabilityInstanceAlertConfigRouteRouteArgs'] routes: List of child routes. + :param _builtins.int down_after_milliseconds: The number of milliseconds after which the instance is considered down. + :param _builtins.bool enable_monitoring: Enable monitoring. + :param _builtins.int failover_timeout: The failover timeout in milliseconds. + :param _builtins.str graphite: Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. + :param _builtins.str lazyfree_lazy_eviction: The lazy eviction enablement (yes or no). + :param _builtins.str lazyfree_lazy_expire: The lazy expire enablement (yes or no). + :param _builtins.int lua_time_limit: The Lua time limit. + :param _builtins.int max_disk_threshold: The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + :param _builtins.int maxclients: The maximum number of clients. + :param _builtins.str maxmemory_policy: The policy to handle the maximum memory (volatile-lru, noeviction, etc). + :param _builtins.int maxmemory_samples: The maximum memory samples. + :param _builtins.int metrics_frequency: The frequency in seconds at which metrics are emitted. + :param _builtins.str metrics_prefix: The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key + :param _builtins.int min_replicas_max_lag: The minimum replicas maximum lag. + :param _builtins.str monitoring_instance_id: The ID of the STACKIT monitoring instance. + :param _builtins.str notify_keyspace_events: The notify keyspace events. + :param _builtins.str sgw_acl: Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + :param _builtins.str snapshot: The snapshot configuration. + :param Sequence[_builtins.str] syslogs: List of syslog servers to send logs to. + :param Sequence[_builtins.str] tls_ciphers: List of TLS ciphers to use. + :param _builtins.str tls_ciphersuites: TLS cipher suites to use. + :param _builtins.str tls_protocols: TLS protocol to use. """ - pulumi.set(__self__, "receiver", receiver) - if continue_ is not None: - pulumi.set(__self__, "continue_", continue_) - if group_bies is not None: - pulumi.set(__self__, "group_bies", group_bies) - if group_interval is not None: - pulumi.set(__self__, "group_interval", group_interval) - if group_wait is not None: - pulumi.set(__self__, "group_wait", group_wait) - if repeat_interval is not None: - pulumi.set(__self__, "repeat_interval", repeat_interval) - if routes is not None: - pulumi.set(__self__, "routes", routes) + if down_after_milliseconds is not None: + pulumi.set(__self__, "down_after_milliseconds", down_after_milliseconds) + if enable_monitoring is not None: + pulumi.set(__self__, "enable_monitoring", enable_monitoring) + if failover_timeout is not None: + pulumi.set(__self__, "failover_timeout", failover_timeout) + if graphite is not None: + pulumi.set(__self__, "graphite", graphite) + if lazyfree_lazy_eviction is not None: + pulumi.set(__self__, "lazyfree_lazy_eviction", lazyfree_lazy_eviction) + if lazyfree_lazy_expire is not None: + pulumi.set(__self__, "lazyfree_lazy_expire", lazyfree_lazy_expire) + if lua_time_limit is not None: + pulumi.set(__self__, "lua_time_limit", lua_time_limit) + if max_disk_threshold is not None: + pulumi.set(__self__, "max_disk_threshold", max_disk_threshold) + if maxclients is not None: + pulumi.set(__self__, "maxclients", maxclients) + if maxmemory_policy is not None: + pulumi.set(__self__, "maxmemory_policy", maxmemory_policy) + if maxmemory_samples is not None: + pulumi.set(__self__, "maxmemory_samples", maxmemory_samples) + if metrics_frequency is not None: + pulumi.set(__self__, "metrics_frequency", metrics_frequency) + if metrics_prefix is not None: + pulumi.set(__self__, "metrics_prefix", metrics_prefix) + if min_replicas_max_lag is not None: + pulumi.set(__self__, "min_replicas_max_lag", min_replicas_max_lag) + if monitoring_instance_id is not None: + pulumi.set(__self__, "monitoring_instance_id", monitoring_instance_id) + if notify_keyspace_events is not None: + pulumi.set(__self__, "notify_keyspace_events", notify_keyspace_events) + if sgw_acl is not None: + pulumi.set(__self__, "sgw_acl", sgw_acl) + if snapshot is not None: + pulumi.set(__self__, "snapshot", snapshot) + if syslogs is not None: + pulumi.set(__self__, "syslogs", syslogs) + if tls_ciphers is not None: + pulumi.set(__self__, "tls_ciphers", tls_ciphers) + if tls_ciphersuites is not None: + pulumi.set(__self__, "tls_ciphersuites", tls_ciphersuites) + if tls_protocols is not None: + pulumi.set(__self__, "tls_protocols", tls_protocols) + + @_builtins.property + @pulumi.getter(name="downAfterMilliseconds") + def down_after_milliseconds(self) -> Optional[_builtins.int]: + """ + The number of milliseconds after which the instance is considered down. + """ + return pulumi.get(self, "down_after_milliseconds") + + @_builtins.property + @pulumi.getter(name="enableMonitoring") + def enable_monitoring(self) -> Optional[_builtins.bool]: + """ + Enable monitoring. + """ + return pulumi.get(self, "enable_monitoring") + + @_builtins.property + @pulumi.getter(name="failoverTimeout") + def failover_timeout(self) -> Optional[_builtins.int]: + """ + The failover timeout in milliseconds. + """ + return pulumi.get(self, "failover_timeout") @_builtins.property @pulumi.getter - def receiver(self) -> _builtins.str: + def graphite(self) -> Optional[_builtins.str]: """ - The name of the receiver to route the alerts to. + Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. """ - return pulumi.get(self, "receiver") + return pulumi.get(self, "graphite") @_builtins.property - @pulumi.getter(name="continue") - def continue_(self) -> Optional[_builtins.bool]: + @pulumi.getter(name="lazyfreeLazyEviction") + def lazyfree_lazy_eviction(self) -> Optional[_builtins.str]: """ - Whether an alert should continue matching subsequent sibling nodes. + The lazy eviction enablement (yes or no). """ - return pulumi.get(self, "continue_") + return pulumi.get(self, "lazyfree_lazy_eviction") @_builtins.property - @pulumi.getter(name="groupBies") - def group_bies(self) -> Optional[Sequence[_builtins.str]]: + @pulumi.getter(name="lazyfreeLazyExpire") + def lazyfree_lazy_expire(self) -> Optional[_builtins.str]: """ - 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. + The lazy expire enablement (yes or no). """ - return pulumi.get(self, "group_bies") + return pulumi.get(self, "lazyfree_lazy_expire") @_builtins.property - @pulumi.getter(name="groupInterval") - def group_interval(self) -> Optional[_builtins.str]: + @pulumi.getter(name="luaTimeLimit") + def lua_time_limit(self) -> Optional[_builtins.int]: """ - 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.) + The Lua time limit. """ - return pulumi.get(self, "group_interval") + return pulumi.get(self, "lua_time_limit") @_builtins.property - @pulumi.getter(name="groupWait") - def group_wait(self) -> Optional[_builtins.str]: + @pulumi.getter(name="maxDiskThreshold") + def max_disk_threshold(self) -> Optional[_builtins.int]: """ - 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.) + The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. """ - return pulumi.get(self, "group_wait") + return pulumi.get(self, "max_disk_threshold") @_builtins.property - @pulumi.getter(name="repeatInterval") - def repeat_interval(self) -> Optional[_builtins.str]: + @pulumi.getter + def maxclients(self) -> Optional[_builtins.int]: """ - How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). + The maximum number of clients. """ - return pulumi.get(self, "repeat_interval") + return pulumi.get(self, "maxclients") @_builtins.property - @pulumi.getter - def routes(self) -> Optional[Sequence['outputs.ObservabilityInstanceAlertConfigRouteRoute']]: + @pulumi.getter(name="maxmemoryPolicy") + def maxmemory_policy(self) -> Optional[_builtins.str]: """ - List of child routes. + The policy to handle the maximum memory (volatile-lru, noeviction, etc). """ - return pulumi.get(self, "routes") - - -@pulumi.output_type -class ObservabilityInstanceAlertConfigRouteRoute(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "continue": - suggest = "continue_" - elif key == "groupBies": - suggest = "group_bies" - elif key == "groupInterval": - suggest = "group_interval" - elif key == "groupWait": - suggest = "group_wait" - elif key == "matchRegex": - suggest = "match_regex" - elif key == "repeatInterval": - suggest = "repeat_interval" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ObservabilityInstanceAlertConfigRouteRoute. Access the value via the '{suggest}' property getter instead.") + return pulumi.get(self, "maxmemory_policy") - def __getitem__(self, key: str) -> Any: - ObservabilityInstanceAlertConfigRouteRoute.__key_warning(key) - return super().__getitem__(key) + @_builtins.property + @pulumi.getter(name="maxmemorySamples") + def maxmemory_samples(self) -> Optional[_builtins.int]: + """ + The maximum memory samples. + """ + return pulumi.get(self, "maxmemory_samples") - def get(self, key: str, default = None) -> Any: - ObservabilityInstanceAlertConfigRouteRoute.__key_warning(key) - return super().get(key, default) + @_builtins.property + @pulumi.getter(name="metricsFrequency") + def metrics_frequency(self) -> Optional[_builtins.int]: + """ + The frequency in seconds at which metrics are emitted. + """ + return pulumi.get(self, "metrics_frequency") - def __init__(__self__, *, - receiver: _builtins.str, - continue_: Optional[_builtins.bool] = None, - group_bies: Optional[Sequence[_builtins.str]] = None, - group_interval: Optional[_builtins.str] = None, - group_wait: Optional[_builtins.str] = None, - match: Optional[Mapping[str, _builtins.str]] = None, - match_regex: Optional[Mapping[str, _builtins.str]] = None, - matchers: Optional[Sequence[_builtins.str]] = None, - repeat_interval: Optional[_builtins.str] = None): + @_builtins.property + @pulumi.getter(name="metricsPrefix") + def metrics_prefix(self) -> Optional[_builtins.str]: """ - :param _builtins.str receiver: The name of the receiver to route the alerts to. - :param _builtins.bool continue_: Whether an alert should continue matching subsequent sibling nodes. - :param Sequence[_builtins.str] group_bies: 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. - :param _builtins.str group_interval: 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.) - :param _builtins.str group_wait: 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.) - :param Mapping[str, _builtins.str] match: 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 `matchers` in the `routes` instead - :param Mapping[str, _builtins.str] match_regex: 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 `matchers` in the `routes` instead - :param Sequence[_builtins.str] matchers: 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. - :param _builtins.str repeat_interval: How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). + The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key """ - pulumi.set(__self__, "receiver", receiver) - if continue_ is not None: - pulumi.set(__self__, "continue_", continue_) - if group_bies is not None: - pulumi.set(__self__, "group_bies", group_bies) - if group_interval is not None: - pulumi.set(__self__, "group_interval", group_interval) - if group_wait is not None: - pulumi.set(__self__, "group_wait", group_wait) - if match is not None: - pulumi.set(__self__, "match", match) - if match_regex is not None: - pulumi.set(__self__, "match_regex", match_regex) - if matchers is not None: - pulumi.set(__self__, "matchers", matchers) - if repeat_interval is not None: - pulumi.set(__self__, "repeat_interval", repeat_interval) + return pulumi.get(self, "metrics_prefix") @_builtins.property - @pulumi.getter - def receiver(self) -> _builtins.str: + @pulumi.getter(name="minReplicasMaxLag") + def min_replicas_max_lag(self) -> Optional[_builtins.int]: """ - The name of the receiver to route the alerts to. + The minimum replicas maximum lag. """ - return pulumi.get(self, "receiver") + return pulumi.get(self, "min_replicas_max_lag") @_builtins.property - @pulumi.getter(name="continue") - def continue_(self) -> Optional[_builtins.bool]: + @pulumi.getter(name="monitoringInstanceId") + def monitoring_instance_id(self) -> Optional[_builtins.str]: """ - Whether an alert should continue matching subsequent sibling nodes. + The ID of the STACKIT monitoring instance. """ - return pulumi.get(self, "continue_") + return pulumi.get(self, "monitoring_instance_id") @_builtins.property - @pulumi.getter(name="groupBies") - def group_bies(self) -> Optional[Sequence[_builtins.str]]: + @pulumi.getter(name="notifyKeyspaceEvents") + def notify_keyspace_events(self) -> Optional[_builtins.str]: """ - 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. + The notify keyspace events. """ - return pulumi.get(self, "group_bies") + return pulumi.get(self, "notify_keyspace_events") @_builtins.property - @pulumi.getter(name="groupInterval") - def group_interval(self) -> Optional[_builtins.str]: + @pulumi.getter(name="sgwAcl") + def sgw_acl(self) -> Optional[_builtins.str]: """ - 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.) + Comma separated list of IP networks in CIDR notation which are allowed to access this instance. """ - return pulumi.get(self, "group_interval") + return pulumi.get(self, "sgw_acl") @_builtins.property - @pulumi.getter(name="groupWait") - def group_wait(self) -> Optional[_builtins.str]: + @pulumi.getter + def snapshot(self) -> Optional[_builtins.str]: """ - 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.) + The snapshot configuration. """ - return pulumi.get(self, "group_wait") + return pulumi.get(self, "snapshot") @_builtins.property @pulumi.getter - @_utilities.deprecated("""Use `matchers` in the `routes` instead.""") - def match(self) -> Optional[Mapping[str, _builtins.str]]: + def syslogs(self) -> Optional[Sequence[_builtins.str]]: """ - 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 `matchers` in the `routes` instead + List of syslog servers to send logs to. """ - return pulumi.get(self, "match") + return pulumi.get(self, "syslogs") @_builtins.property - @pulumi.getter(name="matchRegex") - @_utilities.deprecated("""Use `matchers` in the `routes` instead.""") - def match_regex(self) -> Optional[Mapping[str, _builtins.str]]: + @pulumi.getter(name="tlsCiphers") + def tls_ciphers(self) -> Optional[Sequence[_builtins.str]]: """ - 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 `matchers` in the `routes` instead + List of TLS ciphers to use. """ - return pulumi.get(self, "match_regex") + return pulumi.get(self, "tls_ciphers") @_builtins.property - @pulumi.getter - def matchers(self) -> Optional[Sequence[_builtins.str]]: + @pulumi.getter(name="tlsCiphersuites") + def tls_ciphersuites(self) -> Optional[_builtins.str]: """ - 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. + TLS cipher suites to use. """ - return pulumi.get(self, "matchers") + return pulumi.get(self, "tls_ciphersuites") @_builtins.property - @pulumi.getter(name="repeatInterval") - def repeat_interval(self) -> Optional[_builtins.str]: + @pulumi.getter(name="tlsProtocols") + def tls_protocols(self) -> Optional[_builtins.str]: """ - How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). + TLS protocol to use. """ - return pulumi.get(self, "repeat_interval") + return pulumi.get(self, "tls_protocols") @pulumi.output_type -class ObservabilityLogalertgroupRule(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "for": - suggest = "for_" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ObservabilityLogalertgroupRule. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ObservabilityLogalertgroupRule.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ObservabilityLogalertgroupRule.__key_warning(key) - return super().get(key, default) - +class RoutingTableRouteDestination(dict): def __init__(__self__, *, - alert: _builtins.str, - expression: _builtins.str, - annotations: Optional[Mapping[str, _builtins.str]] = None, - for_: Optional[_builtins.str] = None, - labels: Optional[Mapping[str, _builtins.str]] = None): + type: _builtins.str, + value: _builtins.str): """ - :param _builtins.str alert: The name of the alert rule. Is the identifier and must be unique in the group. - :param _builtins.str expression: The LogQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. - :param Mapping[str, _builtins.str] annotations: A map of key:value. Annotations to add or overwrite for each alert - :param _builtins.str for_: 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 - :param Mapping[str, _builtins.str] labels: A map of key:value. Labels to add or overwrite for each alert + :param _builtins.str type: CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported during experimental stage. + :param _builtins.str value: An CIDR string. """ - pulumi.set(__self__, "alert", alert) - pulumi.set(__self__, "expression", expression) - if annotations is not None: - pulumi.set(__self__, "annotations", annotations) - if for_ is not None: - pulumi.set(__self__, "for_", for_) - if labels is not None: - pulumi.set(__self__, "labels", labels) + pulumi.set(__self__, "type", type) + pulumi.set(__self__, "value", value) @_builtins.property @pulumi.getter - def alert(self) -> _builtins.str: + def type(self) -> _builtins.str: """ - The name of the alert rule. Is the identifier and must be unique in the group. + CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported during experimental stage. """ - return pulumi.get(self, "alert") + return pulumi.get(self, "type") @_builtins.property @pulumi.getter - def expression(self) -> _builtins.str: + def value(self) -> _builtins.str: """ - The LogQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. + An CIDR string. """ - return pulumi.get(self, "expression") + return pulumi.get(self, "value") - @_builtins.property - @pulumi.getter - def annotations(self) -> Optional[Mapping[str, _builtins.str]]: + +@pulumi.output_type +class RoutingTableRouteNextHop(dict): + def __init__(__self__, *, + type: _builtins.str, + value: Optional[_builtins.str] = None): """ - A map of key:value. Annotations to add or overwrite for each alert + :param _builtins.str type: Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. + :param _builtins.str value: Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. """ - return pulumi.get(self, "annotations") + pulumi.set(__self__, "type", type) + if value is not None: + pulumi.set(__self__, "value", value) @_builtins.property - @pulumi.getter(name="for") - def for_(self) -> Optional[_builtins.str]: + @pulumi.getter + def type(self) -> _builtins.str: """ - 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 + Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. """ - return pulumi.get(self, "for_") + return pulumi.get(self, "type") @_builtins.property @pulumi.getter - def labels(self) -> Optional[Mapping[str, _builtins.str]]: + def value(self) -> Optional[_builtins.str]: """ - A map of key:value. Labels to add or overwrite for each alert + Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. """ - return pulumi.get(self, "labels") + return pulumi.get(self, "value") @pulumi.output_type -class ObservabilityScrapeconfigBasicAuth(dict): +class SecurityGroupRuleIcmpParameters(dict): def __init__(__self__, *, - password: _builtins.str, - username: _builtins.str): + code: _builtins.int, + type: _builtins.int): """ - :param _builtins.str password: Specifies basic auth password. - :param _builtins.str username: Specifies basic auth username. + :param _builtins.int code: ICMP code. Can be set if the protocol is ICMP. + :param _builtins.int type: ICMP type. Can be set if the protocol is ICMP. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + pulumi.set(__self__, "code", code) + pulumi.set(__self__, "type", type) @_builtins.property @pulumi.getter - def password(self) -> _builtins.str: + def code(self) -> _builtins.int: """ - Specifies basic auth password. + ICMP code. Can be set if the protocol is ICMP. """ - return pulumi.get(self, "password") + return pulumi.get(self, "code") @_builtins.property @pulumi.getter - def username(self) -> _builtins.str: + def type(self) -> _builtins.int: """ - Specifies basic auth username. + ICMP type. Can be set if the protocol is ICMP. """ - return pulumi.get(self, "username") + return pulumi.get(self, "type") @pulumi.output_type -class ObservabilityScrapeconfigSaml2(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "enableUrlParameters": - suggest = "enable_url_parameters" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ObservabilityScrapeconfigSaml2. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ObservabilityScrapeconfigSaml2.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ObservabilityScrapeconfigSaml2.__key_warning(key) - return super().get(key, default) - +class SecurityGroupRulePortRange(dict): def __init__(__self__, *, - enable_url_parameters: Optional[_builtins.bool] = None): + max: _builtins.int, + min: _builtins.int): """ - :param _builtins.bool enable_url_parameters: Specifies if URL parameters are enabled. Defaults to `true` + :param _builtins.int max: The maximum port number. Should be greater or equal to the minimum. + :param _builtins.int min: The minimum port number. Should be less or equal to the maximum. """ - if enable_url_parameters is not None: - pulumi.set(__self__, "enable_url_parameters", enable_url_parameters) + pulumi.set(__self__, "max", max) + pulumi.set(__self__, "min", min) @_builtins.property - @pulumi.getter(name="enableUrlParameters") - def enable_url_parameters(self) -> Optional[_builtins.bool]: + @pulumi.getter + def max(self) -> _builtins.int: """ - Specifies if URL parameters are enabled. Defaults to `true` + The maximum port number. Should be greater or equal to the minimum. """ - return pulumi.get(self, "enable_url_parameters") + return pulumi.get(self, "max") + + @_builtins.property + @pulumi.getter + def min(self) -> _builtins.int: + """ + The minimum port number. Should be less or equal to the maximum. + """ + return pulumi.get(self, "min") @pulumi.output_type -class ObservabilityScrapeconfigTarget(dict): +class SecurityGroupRuleProtocol(dict): def __init__(__self__, *, - urls: Sequence[_builtins.str], - labels: Optional[Mapping[str, _builtins.str]] = None): + name: Optional[_builtins.str] = None, + number: Optional[_builtins.int] = None): """ - :param Sequence[_builtins.str] urls: Specifies target URLs. - :param Mapping[str, _builtins.str] labels: Specifies labels. + :param _builtins.str name: The protocol name which the rule should match. Either `name` or `number` must be provided. Possible values are: `ah`, `dccp`, `egp`, `esp`, `gre`, `icmp`, `igmp`, `ipip`, `ipv6-encap`, `ipv6-frag`, `ipv6-icmp`, `ipv6-nonxt`, `ipv6-opts`, `ipv6-route`, `ospf`, `pgm`, `rsvp`, `sctp`, `tcp`, `udp`, `udplite`, `vrrp`. + :param _builtins.int number: The protocol number which the rule should match. Either `name` or `number` must be provided. """ - pulumi.set(__self__, "urls", urls) - if labels is not None: - pulumi.set(__self__, "labels", labels) + if name is not None: + pulumi.set(__self__, "name", name) + if number is not None: + pulumi.set(__self__, "number", number) @_builtins.property @pulumi.getter - def urls(self) -> Sequence[_builtins.str]: + def name(self) -> Optional[_builtins.str]: """ - Specifies target URLs. + The protocol name which the rule should match. Either `name` or `number` must be provided. Possible values are: `ah`, `dccp`, `egp`, `esp`, `gre`, `icmp`, `igmp`, `ipip`, `ipv6-encap`, `ipv6-frag`, `ipv6-icmp`, `ipv6-nonxt`, `ipv6-opts`, `ipv6-route`, `ospf`, `pgm`, `rsvp`, `sctp`, `tcp`, `udp`, `udplite`, `vrrp`. """ - return pulumi.get(self, "urls") + return pulumi.get(self, "name") @_builtins.property @pulumi.getter - def labels(self) -> Optional[Mapping[str, _builtins.str]]: + def number(self) -> Optional[_builtins.int]: """ - Specifies labels. + The protocol number which the rule should match. Either `name` or `number` must be provided. """ - return pulumi.get(self, "labels") + return pulumi.get(self, "number") @pulumi.output_type -class OpensearchInstanceParameters(dict): +class ServerBackupScheduleBackupProperties(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "enableMonitoring": - suggest = "enable_monitoring" - elif key == "javaGarbageCollector": - suggest = "java_garbage_collector" - elif key == "javaHeapspace": - suggest = "java_heapspace" - elif key == "javaMaxmetaspace": - suggest = "java_maxmetaspace" - elif key == "maxDiskThreshold": - suggest = "max_disk_threshold" - elif key == "metricsFrequency": - suggest = "metrics_frequency" - elif key == "metricsPrefix": - suggest = "metrics_prefix" - elif key == "monitoringInstanceId": - suggest = "monitoring_instance_id" - elif key == "sgwAcl": - suggest = "sgw_acl" - elif key == "tlsCiphers": - suggest = "tls_ciphers" - elif key == "tlsProtocols": - suggest = "tls_protocols" + if key == "retentionPeriod": + suggest = "retention_period" + elif key == "volumeIds": + suggest = "volume_ids" if suggest: - pulumi.log.warn(f"Key '{key}' not found in OpensearchInstanceParameters. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in ServerBackupScheduleBackupProperties. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - OpensearchInstanceParameters.__key_warning(key) + ServerBackupScheduleBackupProperties.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - OpensearchInstanceParameters.__key_warning(key) + ServerBackupScheduleBackupProperties.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - enable_monitoring: Optional[_builtins.bool] = None, - graphite: Optional[_builtins.str] = None, - java_garbage_collector: Optional[_builtins.str] = None, - java_heapspace: Optional[_builtins.int] = None, - java_maxmetaspace: Optional[_builtins.int] = None, - max_disk_threshold: Optional[_builtins.int] = None, - metrics_frequency: Optional[_builtins.int] = None, - metrics_prefix: Optional[_builtins.str] = None, - monitoring_instance_id: Optional[_builtins.str] = None, - plugins: Optional[Sequence[_builtins.str]] = None, - sgw_acl: Optional[_builtins.str] = None, - syslogs: Optional[Sequence[_builtins.str]] = None, - tls_ciphers: Optional[Sequence[_builtins.str]] = None, - tls_protocols: Optional[Sequence[_builtins.str]] = None): - """ - :param _builtins.bool enable_monitoring: Enable monitoring. - :param _builtins.str graphite: If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). - :param _builtins.str java_garbage_collector: The garbage collector to use for OpenSearch. - :param _builtins.int java_heapspace: The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. - :param _builtins.int java_maxmetaspace: The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. - :param _builtins.int max_disk_threshold: The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. - :param _builtins.int metrics_frequency: The frequency in seconds at which metrics are emitted (in seconds). - :param _builtins.str metrics_prefix: The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. - :param _builtins.str monitoring_instance_id: The ID of the STACKIT monitoring instance. - :param Sequence[_builtins.str] plugins: 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. - :param _builtins.str sgw_acl: Comma separated list of IP networks in CIDR notation which are allowed to access this instance. - :param Sequence[_builtins.str] syslogs: List of syslog servers to send logs to. - :param Sequence[_builtins.str] tls_ciphers: List of TLS ciphers to use. - :param Sequence[_builtins.str] tls_protocols: The TLS protocol to use. - """ - if enable_monitoring is not None: - pulumi.set(__self__, "enable_monitoring", enable_monitoring) - if graphite is not None: - pulumi.set(__self__, "graphite", graphite) - if java_garbage_collector is not None: - pulumi.set(__self__, "java_garbage_collector", java_garbage_collector) - if java_heapspace is not None: - pulumi.set(__self__, "java_heapspace", java_heapspace) - if java_maxmetaspace is not None: - pulumi.set(__self__, "java_maxmetaspace", java_maxmetaspace) - if max_disk_threshold is not None: - pulumi.set(__self__, "max_disk_threshold", max_disk_threshold) - if metrics_frequency is not None: - pulumi.set(__self__, "metrics_frequency", metrics_frequency) - if metrics_prefix is not None: - pulumi.set(__self__, "metrics_prefix", metrics_prefix) - if monitoring_instance_id is not None: - pulumi.set(__self__, "monitoring_instance_id", monitoring_instance_id) - if plugins is not None: - pulumi.set(__self__, "plugins", plugins) - if sgw_acl is not None: - pulumi.set(__self__, "sgw_acl", sgw_acl) - if syslogs is not None: - pulumi.set(__self__, "syslogs", syslogs) - if tls_ciphers is not None: - pulumi.set(__self__, "tls_ciphers", tls_ciphers) - if tls_protocols is not None: - pulumi.set(__self__, "tls_protocols", tls_protocols) + name: _builtins.str, + retention_period: _builtins.int, + volume_ids: Optional[Sequence[_builtins.str]] = None): + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "retention_period", retention_period) + if volume_ids is not None: + pulumi.set(__self__, "volume_ids", volume_ids) + + @_builtins.property + @pulumi.getter + def name(self) -> _builtins.str: + return pulumi.get(self, "name") + + @_builtins.property + @pulumi.getter(name="retentionPeriod") + def retention_period(self) -> _builtins.int: + return pulumi.get(self, "retention_period") + + @_builtins.property + @pulumi.getter(name="volumeIds") + def volume_ids(self) -> Optional[Sequence[_builtins.str]]: + return pulumi.get(self, "volume_ids") + + +@pulumi.output_type +class ServerBootVolume(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "sourceId": + suggest = "source_id" + elif key == "sourceType": + suggest = "source_type" + elif key == "deleteOnTermination": + suggest = "delete_on_termination" + elif key == "performanceClass": + suggest = "performance_class" - @_builtins.property - @pulumi.getter(name="enableMonitoring") - def enable_monitoring(self) -> Optional[_builtins.bool]: + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ServerBootVolume. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ServerBootVolume.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ServerBootVolume.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + source_id: _builtins.str, + source_type: _builtins.str, + delete_on_termination: Optional[_builtins.bool] = None, + id: Optional[_builtins.str] = None, + performance_class: Optional[_builtins.str] = None, + size: Optional[_builtins.int] = None): """ - Enable monitoring. + :param _builtins.str source_id: The ID of the source, either image ID or volume ID + :param _builtins.str source_type: The type of the source. Possible values are: `volume`, `image`. + :param _builtins.bool delete_on_termination: Delete the volume during the termination of the server. Only allowed when `source_type` is `image`. + :param _builtins.str id: The ID of the boot volume + :param _builtins.str performance_class: The performance class of the server. + :param _builtins.int size: The size of the boot volume in GB. Must be provided when `source_type` is `image`. """ - return pulumi.get(self, "enable_monitoring") + pulumi.set(__self__, "source_id", source_id) + pulumi.set(__self__, "source_type", source_type) + if delete_on_termination is not None: + pulumi.set(__self__, "delete_on_termination", delete_on_termination) + if id is not None: + pulumi.set(__self__, "id", id) + if performance_class is not None: + pulumi.set(__self__, "performance_class", performance_class) + if size is not None: + pulumi.set(__self__, "size", size) @_builtins.property - @pulumi.getter - def graphite(self) -> Optional[_builtins.str]: + @pulumi.getter(name="sourceId") + def source_id(self) -> _builtins.str: """ - If set, monitoring with Graphite will be enabled. Expects the host and port where the Graphite metrics should be sent to (host:port). + The ID of the source, either image ID or volume ID """ - return pulumi.get(self, "graphite") + return pulumi.get(self, "source_id") @_builtins.property - @pulumi.getter(name="javaGarbageCollector") - def java_garbage_collector(self) -> Optional[_builtins.str]: + @pulumi.getter(name="sourceType") + def source_type(self) -> _builtins.str: """ - The garbage collector to use for OpenSearch. + The type of the source. Possible values are: `volume`, `image`. """ - return pulumi.get(self, "java_garbage_collector") + return pulumi.get(self, "source_type") @_builtins.property - @pulumi.getter(name="javaHeapspace") - def java_heapspace(self) -> Optional[_builtins.int]: + @pulumi.getter(name="deleteOnTermination") + def delete_on_termination(self) -> Optional[_builtins.bool]: """ - The amount of memory (in MB) allocated as heap by the JVM for OpenSearch. + Delete the volume during the termination of the server. Only allowed when `source_type` is `image`. """ - return pulumi.get(self, "java_heapspace") + return pulumi.get(self, "delete_on_termination") @_builtins.property - @pulumi.getter(name="javaMaxmetaspace") - def java_maxmetaspace(self) -> Optional[_builtins.int]: + @pulumi.getter + def id(self) -> Optional[_builtins.str]: """ - The amount of memory (in MB) used by the JVM to store metadata for OpenSearch. + The ID of the boot volume """ - return pulumi.get(self, "java_maxmetaspace") + return pulumi.get(self, "id") @_builtins.property - @pulumi.getter(name="maxDiskThreshold") - def max_disk_threshold(self) -> Optional[_builtins.int]: + @pulumi.getter(name="performanceClass") + def performance_class(self) -> Optional[_builtins.str]: """ - The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + The performance class of the server. """ - return pulumi.get(self, "max_disk_threshold") + return pulumi.get(self, "performance_class") @_builtins.property - @pulumi.getter(name="metricsFrequency") - def metrics_frequency(self) -> Optional[_builtins.int]: + @pulumi.getter + def size(self) -> Optional[_builtins.int]: """ - The frequency in seconds at which metrics are emitted (in seconds). + The size of the boot volume in GB. Must be provided when `source_type` is `image`. """ - return pulumi.get(self, "metrics_frequency") + return pulumi.get(self, "size") - @_builtins.property - @pulumi.getter(name="metricsPrefix") - def metrics_prefix(self) -> Optional[_builtins.str]: + +@pulumi.output_type +class SfsExportPolicyRule(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "ipAcls": + suggest = "ip_acls" + elif key == "readOnly": + suggest = "read_only" + elif key == "setUuid": + suggest = "set_uuid" + elif key == "superUser": + suggest = "super_user" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in SfsExportPolicyRule. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + SfsExportPolicyRule.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + SfsExportPolicyRule.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + ip_acls: Sequence[_builtins.str], + order: _builtins.int, + description: Optional[_builtins.str] = None, + read_only: Optional[_builtins.bool] = None, + set_uuid: Optional[_builtins.bool] = None, + super_user: Optional[_builtins.bool] = None): """ - The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key. + :param Sequence[_builtins.str] ip_acls: 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). + :param _builtins.int order: 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 + :param _builtins.str description: Description of the Rule + :param _builtins.bool read_only: Flag to indicate if client IPs matching this rule can only mount the share in read only mode + :param _builtins.bool set_uuid: Flag to honor set UUID + :param _builtins.bool super_user: Flag to indicate if client IPs matching this rule have root access on the Share """ - return pulumi.get(self, "metrics_prefix") + pulumi.set(__self__, "ip_acls", ip_acls) + pulumi.set(__self__, "order", order) + if description is not None: + pulumi.set(__self__, "description", description) + if read_only is not None: + pulumi.set(__self__, "read_only", read_only) + if set_uuid is not None: + pulumi.set(__self__, "set_uuid", set_uuid) + if super_user is not None: + pulumi.set(__self__, "super_user", super_user) @_builtins.property - @pulumi.getter(name="monitoringInstanceId") - def monitoring_instance_id(self) -> Optional[_builtins.str]: + @pulumi.getter(name="ipAcls") + def ip_acls(self) -> Sequence[_builtins.str]: """ - The ID of the STACKIT monitoring instance. + 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). """ - return pulumi.get(self, "monitoring_instance_id") + return pulumi.get(self, "ip_acls") @_builtins.property @pulumi.getter - def plugins(self) -> Optional[Sequence[_builtins.str]]: + def order(self) -> _builtins.int: """ - 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. + 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 """ - return pulumi.get(self, "plugins") + return pulumi.get(self, "order") @_builtins.property - @pulumi.getter(name="sgwAcl") - def sgw_acl(self) -> Optional[_builtins.str]: + @pulumi.getter + def description(self) -> Optional[_builtins.str]: """ - Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + Description of the Rule """ - return pulumi.get(self, "sgw_acl") + return pulumi.get(self, "description") @_builtins.property - @pulumi.getter - def syslogs(self) -> Optional[Sequence[_builtins.str]]: + @pulumi.getter(name="readOnly") + def read_only(self) -> Optional[_builtins.bool]: """ - List of syslog servers to send logs to. + Flag to indicate if client IPs matching this rule can only mount the share in read only mode """ - return pulumi.get(self, "syslogs") + return pulumi.get(self, "read_only") @_builtins.property - @pulumi.getter(name="tlsCiphers") - def tls_ciphers(self) -> Optional[Sequence[_builtins.str]]: + @pulumi.getter(name="setUuid") + def set_uuid(self) -> Optional[_builtins.bool]: """ - List of TLS ciphers to use. + Flag to honor set UUID """ - return pulumi.get(self, "tls_ciphers") + return pulumi.get(self, "set_uuid") @_builtins.property - @pulumi.getter(name="tlsProtocols") - def tls_protocols(self) -> Optional[Sequence[_builtins.str]]: + @pulumi.getter(name="superUser") + def super_user(self) -> Optional[_builtins.bool]: """ - The TLS protocol to use. + Flag to indicate if client IPs matching this rule have root access on the Share """ - return pulumi.get(self, "tls_protocols") + return pulumi.get(self, "super_user") @pulumi.output_type -class PostgresflexInstanceFlavor(dict): +class SkeClusterExtensions(dict): def __init__(__self__, *, - cpu: _builtins.int, - ram: _builtins.int, - description: Optional[_builtins.str] = None, - id: Optional[_builtins.str] = None): - pulumi.set(__self__, "cpu", cpu) - pulumi.set(__self__, "ram", ram) - if description is not None: - pulumi.set(__self__, "description", description) - if id is not None: - pulumi.set(__self__, "id", id) + acl: Optional['outputs.SkeClusterExtensionsAcl'] = None, + argus: Optional['outputs.SkeClusterExtensionsArgus'] = None, + dns: Optional['outputs.SkeClusterExtensionsDns'] = None, + observability: Optional['outputs.SkeClusterExtensionsObservability'] = None): + """ + :param 'SkeClusterExtensionsAclArgs' acl: Cluster access control configuration. + :param 'SkeClusterExtensionsArgusArgs' argus: A single argus block as defined below. This field is deprecated and will be removed 06 January 2026. + :param 'SkeClusterExtensionsDnsArgs' dns: DNS extension configuration + :param 'SkeClusterExtensionsObservabilityArgs' observability: A single observability block as defined below. + """ + if acl is not None: + pulumi.set(__self__, "acl", acl) + if argus is not None: + pulumi.set(__self__, "argus", argus) + if dns is not None: + pulumi.set(__self__, "dns", dns) + if observability is not None: + pulumi.set(__self__, "observability", observability) @_builtins.property @pulumi.getter - def cpu(self) -> _builtins.int: - return pulumi.get(self, "cpu") + def acl(self) -> Optional['outputs.SkeClusterExtensionsAcl']: + """ + Cluster access control configuration. + """ + return pulumi.get(self, "acl") @_builtins.property @pulumi.getter - def ram(self) -> _builtins.int: - return pulumi.get(self, "ram") + @_utilities.deprecated("""Use observability instead.""") + def argus(self) -> Optional['outputs.SkeClusterExtensionsArgus']: + """ + A single argus block as defined below. This field is deprecated and will be removed 06 January 2026. + """ + return pulumi.get(self, "argus") @_builtins.property @pulumi.getter - def description(self) -> Optional[_builtins.str]: - return pulumi.get(self, "description") + def dns(self) -> Optional['outputs.SkeClusterExtensionsDns']: + """ + DNS extension configuration + """ + return pulumi.get(self, "dns") @_builtins.property @pulumi.getter - def id(self) -> Optional[_builtins.str]: - return pulumi.get(self, "id") + def observability(self) -> Optional['outputs.SkeClusterExtensionsObservability']: + """ + A single observability block as defined below. + """ + return pulumi.get(self, "observability") @pulumi.output_type -class PostgresflexInstanceStorage(dict): +class SkeClusterExtensionsAcl(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "class": - suggest = "class_" + if key == "allowedCidrs": + suggest = "allowed_cidrs" if suggest: - pulumi.log.warn(f"Key '{key}' not found in PostgresflexInstanceStorage. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in SkeClusterExtensionsAcl. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - PostgresflexInstanceStorage.__key_warning(key) + SkeClusterExtensionsAcl.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - PostgresflexInstanceStorage.__key_warning(key) + SkeClusterExtensionsAcl.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - class_: _builtins.str, - size: _builtins.int): - pulumi.set(__self__, "class_", class_) - pulumi.set(__self__, "size", size) + allowed_cidrs: Sequence[_builtins.str], + enabled: _builtins.bool): + """ + :param Sequence[_builtins.str] allowed_cidrs: Specify a list of CIDRs to whitelist. + :param _builtins.bool enabled: Is ACL enabled? + """ + pulumi.set(__self__, "allowed_cidrs", allowed_cidrs) + pulumi.set(__self__, "enabled", enabled) @_builtins.property - @pulumi.getter(name="class") - def class_(self) -> _builtins.str: - return pulumi.get(self, "class_") + @pulumi.getter(name="allowedCidrs") + def allowed_cidrs(self) -> Sequence[_builtins.str]: + """ + Specify a list of CIDRs to whitelist. + """ + return pulumi.get(self, "allowed_cidrs") @_builtins.property @pulumi.getter - def size(self) -> _builtins.int: - return pulumi.get(self, "size") + def enabled(self) -> _builtins.bool: + """ + Is ACL enabled? + """ + return pulumi.get(self, "enabled") @pulumi.output_type -class RabbitmqInstanceParameters(dict): +class SkeClusterExtensionsArgus(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "consumerTimeout": - suggest = "consumer_timeout" - elif key == "enableMonitoring": - suggest = "enable_monitoring" - elif key == "maxDiskThreshold": - suggest = "max_disk_threshold" - elif key == "metricsFrequency": - suggest = "metrics_frequency" - elif key == "metricsPrefix": - suggest = "metrics_prefix" - elif key == "monitoringInstanceId": - suggest = "monitoring_instance_id" - elif key == "sgwAcl": - suggest = "sgw_acl" - elif key == "tlsCiphers": - suggest = "tls_ciphers" - elif key == "tlsProtocols": - suggest = "tls_protocols" + if key == "argusInstanceId": + suggest = "argus_instance_id" if suggest: - pulumi.log.warn(f"Key '{key}' not found in RabbitmqInstanceParameters. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in SkeClusterExtensionsArgus. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - RabbitmqInstanceParameters.__key_warning(key) + SkeClusterExtensionsArgus.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - RabbitmqInstanceParameters.__key_warning(key) + SkeClusterExtensionsArgus.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - consumer_timeout: Optional[_builtins.int] = None, - enable_monitoring: Optional[_builtins.bool] = None, - graphite: Optional[_builtins.str] = None, - max_disk_threshold: Optional[_builtins.int] = None, - metrics_frequency: Optional[_builtins.int] = None, - metrics_prefix: Optional[_builtins.str] = None, - monitoring_instance_id: Optional[_builtins.str] = None, - plugins: Optional[Sequence[_builtins.str]] = None, - roles: Optional[Sequence[_builtins.str]] = None, - sgw_acl: Optional[_builtins.str] = None, - syslogs: Optional[Sequence[_builtins.str]] = None, - tls_ciphers: Optional[Sequence[_builtins.str]] = None, - tls_protocols: Optional[Sequence[_builtins.str]] = None): + enabled: _builtins.bool, + argus_instance_id: Optional[_builtins.str] = None): """ - :param _builtins.int consumer_timeout: The timeout in milliseconds for the consumer. - :param _builtins.bool enable_monitoring: Enable monitoring. - :param _builtins.str graphite: Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. - :param _builtins.int max_disk_threshold: The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. - :param _builtins.int metrics_frequency: The frequency in seconds at which metrics are emitted. - :param _builtins.str metrics_prefix: The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key - :param _builtins.str monitoring_instance_id: The ID of the STACKIT monitoring instance. - :param Sequence[_builtins.str] plugins: List of plugins to install. Must be a supported plugin name. - :param Sequence[_builtins.str] roles: List of roles to assign to the instance. - :param _builtins.str sgw_acl: Comma separated list of IP networks in CIDR notation which are allowed to access this instance. - :param Sequence[_builtins.str] syslogs: List of syslog servers to send logs to. - :param Sequence[_builtins.str] tls_ciphers: List of TLS ciphers to use. - :param Sequence[_builtins.str] tls_protocols: TLS protocol versions to use. + :param _builtins.bool enabled: Flag to enable/disable Argus extensions. + :param _builtins.str argus_instance_id: Argus instance ID to choose which Argus instance is used. Required when enabled is set to `true`. """ - if consumer_timeout is not None: - pulumi.set(__self__, "consumer_timeout", consumer_timeout) - if enable_monitoring is not None: - pulumi.set(__self__, "enable_monitoring", enable_monitoring) - if graphite is not None: - pulumi.set(__self__, "graphite", graphite) - if max_disk_threshold is not None: - pulumi.set(__self__, "max_disk_threshold", max_disk_threshold) - if metrics_frequency is not None: - pulumi.set(__self__, "metrics_frequency", metrics_frequency) - if metrics_prefix is not None: - pulumi.set(__self__, "metrics_prefix", metrics_prefix) - if monitoring_instance_id is not None: - pulumi.set(__self__, "monitoring_instance_id", monitoring_instance_id) - if plugins is not None: - pulumi.set(__self__, "plugins", plugins) - if roles is not None: - pulumi.set(__self__, "roles", roles) - if sgw_acl is not None: - pulumi.set(__self__, "sgw_acl", sgw_acl) - if syslogs is not None: - pulumi.set(__self__, "syslogs", syslogs) - if tls_ciphers is not None: - pulumi.set(__self__, "tls_ciphers", tls_ciphers) - if tls_protocols is not None: - pulumi.set(__self__, "tls_protocols", tls_protocols) + pulumi.set(__self__, "enabled", enabled) + if argus_instance_id is not None: + pulumi.set(__self__, "argus_instance_id", argus_instance_id) @_builtins.property - @pulumi.getter(name="consumerTimeout") - def consumer_timeout(self) -> Optional[_builtins.int]: + @pulumi.getter + def enabled(self) -> _builtins.bool: """ - The timeout in milliseconds for the consumer. + Flag to enable/disable Argus extensions. """ - return pulumi.get(self, "consumer_timeout") + return pulumi.get(self, "enabled") @_builtins.property - @pulumi.getter(name="enableMonitoring") - def enable_monitoring(self) -> Optional[_builtins.bool]: + @pulumi.getter(name="argusInstanceId") + def argus_instance_id(self) -> Optional[_builtins.str]: """ - Enable monitoring. + Argus instance ID to choose which Argus instance is used. Required when enabled is set to `true`. """ - return pulumi.get(self, "enable_monitoring") + return pulumi.get(self, "argus_instance_id") - @_builtins.property - @pulumi.getter - def graphite(self) -> Optional[_builtins.str]: - """ - Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. - """ - return pulumi.get(self, "graphite") - @_builtins.property - @pulumi.getter(name="maxDiskThreshold") - def max_disk_threshold(self) -> Optional[_builtins.int]: +@pulumi.output_type +class SkeClusterExtensionsDns(dict): + def __init__(__self__, *, + enabled: _builtins.bool, + zones: Optional[Sequence[_builtins.str]] = None): """ - The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. + :param _builtins.bool enabled: Flag to enable/disable DNS extensions + :param Sequence[_builtins.str] zones: Specify a list of domain filters for externalDNS (e.g., `foo.runs.onstackit.cloud`) """ - return pulumi.get(self, "max_disk_threshold") + pulumi.set(__self__, "enabled", enabled) + if zones is not None: + pulumi.set(__self__, "zones", zones) @_builtins.property - @pulumi.getter(name="metricsFrequency") - def metrics_frequency(self) -> Optional[_builtins.int]: + @pulumi.getter + def enabled(self) -> _builtins.bool: """ - The frequency in seconds at which metrics are emitted. + Flag to enable/disable DNS extensions """ - return pulumi.get(self, "metrics_frequency") + return pulumi.get(self, "enabled") @_builtins.property - @pulumi.getter(name="metricsPrefix") - def metrics_prefix(self) -> Optional[_builtins.str]: + @pulumi.getter + def zones(self) -> Optional[Sequence[_builtins.str]]: """ - The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key + Specify a list of domain filters for externalDNS (e.g., `foo.runs.onstackit.cloud`) """ - return pulumi.get(self, "metrics_prefix") + return pulumi.get(self, "zones") - @_builtins.property - @pulumi.getter(name="monitoringInstanceId") - def monitoring_instance_id(self) -> Optional[_builtins.str]: + +@pulumi.output_type +class SkeClusterExtensionsObservability(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "instanceId": + suggest = "instance_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in SkeClusterExtensionsObservability. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + SkeClusterExtensionsObservability.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + SkeClusterExtensionsObservability.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enabled: _builtins.bool, + instance_id: Optional[_builtins.str] = None): """ - The ID of the STACKIT monitoring instance. + :param _builtins.bool enabled: Flag to enable/disable Observability extensions. + :param _builtins.str instance_id: Observability instance ID to choose which Observability instance is used. Required when enabled is set to `true`. """ - return pulumi.get(self, "monitoring_instance_id") + pulumi.set(__self__, "enabled", enabled) + if instance_id is not None: + pulumi.set(__self__, "instance_id", instance_id) @_builtins.property @pulumi.getter - def plugins(self) -> Optional[Sequence[_builtins.str]]: + def enabled(self) -> _builtins.bool: """ - List of plugins to install. Must be a supported plugin name. + Flag to enable/disable Observability extensions. """ - return pulumi.get(self, "plugins") + return pulumi.get(self, "enabled") @_builtins.property - @pulumi.getter - def roles(self) -> Optional[Sequence[_builtins.str]]: + @pulumi.getter(name="instanceId") + def instance_id(self) -> Optional[_builtins.str]: """ - List of roles to assign to the instance. + Observability instance ID to choose which Observability instance is used. Required when enabled is set to `true`. """ - return pulumi.get(self, "roles") + return pulumi.get(self, "instance_id") - @_builtins.property - @pulumi.getter(name="sgwAcl") - def sgw_acl(self) -> Optional[_builtins.str]: + +@pulumi.output_type +class SkeClusterHibernation(dict): + def __init__(__self__, *, + end: _builtins.str, + start: _builtins.str, + timezone: Optional[_builtins.str] = None): """ - Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + :param _builtins.str end: End time of hibernation in crontab syntax. E.g. `0 8 * * *` for waking up the cluster at 8am. + :param _builtins.str start: Start time of cluster hibernation in crontab syntax. E.g. `0 18 * * *` for starting everyday at 6pm. + :param _builtins.str timezone: Timezone name corresponding to a file in the IANA Time Zone database. i.e. `Europe/Berlin`. """ - return pulumi.get(self, "sgw_acl") + pulumi.set(__self__, "end", end) + pulumi.set(__self__, "start", start) + if timezone is not None: + pulumi.set(__self__, "timezone", timezone) @_builtins.property @pulumi.getter - def syslogs(self) -> Optional[Sequence[_builtins.str]]: + def end(self) -> _builtins.str: """ - List of syslog servers to send logs to. + End time of hibernation in crontab syntax. E.g. `0 8 * * *` for waking up the cluster at 8am. """ - return pulumi.get(self, "syslogs") + return pulumi.get(self, "end") @_builtins.property - @pulumi.getter(name="tlsCiphers") - def tls_ciphers(self) -> Optional[Sequence[_builtins.str]]: + @pulumi.getter + def start(self) -> _builtins.str: """ - List of TLS ciphers to use. + Start time of cluster hibernation in crontab syntax. E.g. `0 18 * * *` for starting everyday at 6pm. """ - return pulumi.get(self, "tls_ciphers") + return pulumi.get(self, "start") @_builtins.property - @pulumi.getter(name="tlsProtocols") - def tls_protocols(self) -> Optional[Sequence[_builtins.str]]: + @pulumi.getter + def timezone(self) -> Optional[_builtins.str]: """ - TLS protocol versions to use. + Timezone name corresponding to a file in the IANA Time Zone database. i.e. `Europe/Berlin`. """ - return pulumi.get(self, "tls_protocols") + return pulumi.get(self, "timezone") @pulumi.output_type -class RedisInstanceParameters(dict): +class SkeClusterMaintenance(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "downAfterMilliseconds": - suggest = "down_after_milliseconds" - elif key == "enableMonitoring": - suggest = "enable_monitoring" - elif key == "failoverTimeout": - suggest = "failover_timeout" - elif key == "lazyfreeLazyEviction": - suggest = "lazyfree_lazy_eviction" - elif key == "lazyfreeLazyExpire": - suggest = "lazyfree_lazy_expire" - elif key == "luaTimeLimit": - suggest = "lua_time_limit" - elif key == "maxDiskThreshold": - suggest = "max_disk_threshold" - elif key == "maxmemoryPolicy": - suggest = "maxmemory_policy" - elif key == "maxmemorySamples": - suggest = "maxmemory_samples" - elif key == "metricsFrequency": - suggest = "metrics_frequency" - elif key == "metricsPrefix": - suggest = "metrics_prefix" - elif key == "minReplicasMaxLag": - suggest = "min_replicas_max_lag" - elif key == "monitoringInstanceId": - suggest = "monitoring_instance_id" - elif key == "notifyKeyspaceEvents": - suggest = "notify_keyspace_events" - elif key == "sgwAcl": - suggest = "sgw_acl" - elif key == "tlsCiphers": - suggest = "tls_ciphers" - elif key == "tlsCiphersuites": - suggest = "tls_ciphersuites" - elif key == "tlsProtocols": - suggest = "tls_protocols" + if key == "enableKubernetesVersionUpdates": + suggest = "enable_kubernetes_version_updates" + elif key == "enableMachineImageVersionUpdates": + suggest = "enable_machine_image_version_updates" if suggest: - pulumi.log.warn(f"Key '{key}' not found in RedisInstanceParameters. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in SkeClusterMaintenance. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - RedisInstanceParameters.__key_warning(key) + SkeClusterMaintenance.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - RedisInstanceParameters.__key_warning(key) + SkeClusterMaintenance.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - down_after_milliseconds: Optional[_builtins.int] = None, - enable_monitoring: Optional[_builtins.bool] = None, - failover_timeout: Optional[_builtins.int] = None, - graphite: Optional[_builtins.str] = None, - lazyfree_lazy_eviction: Optional[_builtins.str] = None, - lazyfree_lazy_expire: Optional[_builtins.str] = None, - lua_time_limit: Optional[_builtins.int] = None, - max_disk_threshold: Optional[_builtins.int] = None, - maxclients: Optional[_builtins.int] = None, - maxmemory_policy: Optional[_builtins.str] = None, - maxmemory_samples: Optional[_builtins.int] = None, - metrics_frequency: Optional[_builtins.int] = None, - metrics_prefix: Optional[_builtins.str] = None, - min_replicas_max_lag: Optional[_builtins.int] = None, - monitoring_instance_id: Optional[_builtins.str] = None, - notify_keyspace_events: Optional[_builtins.str] = None, - sgw_acl: Optional[_builtins.str] = None, - snapshot: Optional[_builtins.str] = None, - syslogs: Optional[Sequence[_builtins.str]] = None, - tls_ciphers: Optional[Sequence[_builtins.str]] = None, - tls_ciphersuites: Optional[_builtins.str] = None, - tls_protocols: Optional[_builtins.str] = None): + end: _builtins.str, + start: _builtins.str, + enable_kubernetes_version_updates: Optional[_builtins.bool] = None, + enable_machine_image_version_updates: Optional[_builtins.bool] = None): """ - :param _builtins.int down_after_milliseconds: The number of milliseconds after which the instance is considered down. - :param _builtins.bool enable_monitoring: Enable monitoring. - :param _builtins.int failover_timeout: The failover timeout in milliseconds. - :param _builtins.str graphite: Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. - :param _builtins.str lazyfree_lazy_eviction: The lazy eviction enablement (yes or no). - :param _builtins.str lazyfree_lazy_expire: The lazy expire enablement (yes or no). - :param _builtins.int lua_time_limit: The Lua time limit. - :param _builtins.int max_disk_threshold: The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. - :param _builtins.int maxclients: The maximum number of clients. - :param _builtins.str maxmemory_policy: The policy to handle the maximum memory (volatile-lru, noeviction, etc). - :param _builtins.int maxmemory_samples: The maximum memory samples. - :param _builtins.int metrics_frequency: The frequency in seconds at which metrics are emitted. - :param _builtins.str metrics_prefix: The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key - :param _builtins.int min_replicas_max_lag: The minimum replicas maximum lag. - :param _builtins.str monitoring_instance_id: The ID of the STACKIT monitoring instance. - :param _builtins.str notify_keyspace_events: The notify keyspace events. - :param _builtins.str sgw_acl: Comma separated list of IP networks in CIDR notation which are allowed to access this instance. - :param _builtins.str snapshot: The snapshot configuration. - :param Sequence[_builtins.str] syslogs: List of syslog servers to send logs to. - :param Sequence[_builtins.str] tls_ciphers: List of TLS ciphers to use. - :param _builtins.str tls_ciphersuites: TLS cipher suites to use. - :param _builtins.str tls_protocols: TLS protocol to use. + :param _builtins.str end: Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. + :param _builtins.str start: Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. + :param _builtins.bool enable_kubernetes_version_updates: Flag to enable/disable auto-updates of the Kubernetes version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). + :param _builtins.bool enable_machine_image_version_updates: Flag to enable/disable auto-updates of the OS image version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). """ - if down_after_milliseconds is not None: - pulumi.set(__self__, "down_after_milliseconds", down_after_milliseconds) - if enable_monitoring is not None: - pulumi.set(__self__, "enable_monitoring", enable_monitoring) - if failover_timeout is not None: - pulumi.set(__self__, "failover_timeout", failover_timeout) - if graphite is not None: - pulumi.set(__self__, "graphite", graphite) - if lazyfree_lazy_eviction is not None: - pulumi.set(__self__, "lazyfree_lazy_eviction", lazyfree_lazy_eviction) - if lazyfree_lazy_expire is not None: - pulumi.set(__self__, "lazyfree_lazy_expire", lazyfree_lazy_expire) - if lua_time_limit is not None: - pulumi.set(__self__, "lua_time_limit", lua_time_limit) - if max_disk_threshold is not None: - pulumi.set(__self__, "max_disk_threshold", max_disk_threshold) - if maxclients is not None: - pulumi.set(__self__, "maxclients", maxclients) - if maxmemory_policy is not None: - pulumi.set(__self__, "maxmemory_policy", maxmemory_policy) - if maxmemory_samples is not None: - pulumi.set(__self__, "maxmemory_samples", maxmemory_samples) - if metrics_frequency is not None: - pulumi.set(__self__, "metrics_frequency", metrics_frequency) - if metrics_prefix is not None: - pulumi.set(__self__, "metrics_prefix", metrics_prefix) - if min_replicas_max_lag is not None: - pulumi.set(__self__, "min_replicas_max_lag", min_replicas_max_lag) - if monitoring_instance_id is not None: - pulumi.set(__self__, "monitoring_instance_id", monitoring_instance_id) - if notify_keyspace_events is not None: - pulumi.set(__self__, "notify_keyspace_events", notify_keyspace_events) - if sgw_acl is not None: - pulumi.set(__self__, "sgw_acl", sgw_acl) - if snapshot is not None: - pulumi.set(__self__, "snapshot", snapshot) - if syslogs is not None: - pulumi.set(__self__, "syslogs", syslogs) - if tls_ciphers is not None: - pulumi.set(__self__, "tls_ciphers", tls_ciphers) - if tls_ciphersuites is not None: - pulumi.set(__self__, "tls_ciphersuites", tls_ciphersuites) - if tls_protocols is not None: - pulumi.set(__self__, "tls_protocols", tls_protocols) + pulumi.set(__self__, "end", end) + pulumi.set(__self__, "start", start) + if enable_kubernetes_version_updates is not None: + pulumi.set(__self__, "enable_kubernetes_version_updates", enable_kubernetes_version_updates) + if enable_machine_image_version_updates is not None: + pulumi.set(__self__, "enable_machine_image_version_updates", enable_machine_image_version_updates) @_builtins.property - @pulumi.getter(name="downAfterMilliseconds") - def down_after_milliseconds(self) -> Optional[_builtins.int]: + @pulumi.getter + def end(self) -> _builtins.str: """ - The number of milliseconds after which the instance is considered down. + Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. """ - return pulumi.get(self, "down_after_milliseconds") + return pulumi.get(self, "end") @_builtins.property - @pulumi.getter(name="enableMonitoring") - def enable_monitoring(self) -> Optional[_builtins.bool]: + @pulumi.getter + def start(self) -> _builtins.str: """ - Enable monitoring. + Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. """ - return pulumi.get(self, "enable_monitoring") + return pulumi.get(self, "start") @_builtins.property - @pulumi.getter(name="failoverTimeout") - def failover_timeout(self) -> Optional[_builtins.int]: + @pulumi.getter(name="enableKubernetesVersionUpdates") + def enable_kubernetes_version_updates(self) -> Optional[_builtins.bool]: """ - The failover timeout in milliseconds. + Flag to enable/disable auto-updates of the Kubernetes version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). """ - return pulumi.get(self, "failover_timeout") + return pulumi.get(self, "enable_kubernetes_version_updates") @_builtins.property - @pulumi.getter - def graphite(self) -> Optional[_builtins.str]: + @pulumi.getter(name="enableMachineImageVersionUpdates") + def enable_machine_image_version_updates(self) -> Optional[_builtins.bool]: """ - Graphite server URL (host and port). If set, monitoring with Graphite will be enabled. + Flag to enable/disable auto-updates of the OS image version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). """ - return pulumi.get(self, "graphite") + return pulumi.get(self, "enable_machine_image_version_updates") - @_builtins.property - @pulumi.getter(name="lazyfreeLazyEviction") - def lazyfree_lazy_eviction(self) -> Optional[_builtins.str]: - """ - The lazy eviction enablement (yes or no). - """ - return pulumi.get(self, "lazyfree_lazy_eviction") - @_builtins.property - @pulumi.getter(name="lazyfreeLazyExpire") - def lazyfree_lazy_expire(self) -> Optional[_builtins.str]: +@pulumi.output_type +class SkeClusterNetwork(dict): + def __init__(__self__, *, + id: Optional[_builtins.str] = None): """ - The lazy expire enablement (yes or no). + :param _builtins.str id: ID of the STACKIT Network Area (SNA) network into which the cluster will be deployed. """ - return pulumi.get(self, "lazyfree_lazy_expire") + if id is not None: + pulumi.set(__self__, "id", id) @_builtins.property - @pulumi.getter(name="luaTimeLimit") - def lua_time_limit(self) -> Optional[_builtins.int]: + @pulumi.getter + def id(self) -> Optional[_builtins.str]: """ - The Lua time limit. + ID of the STACKIT Network Area (SNA) network into which the cluster will be deployed. """ - return pulumi.get(self, "lua_time_limit") + return pulumi.get(self, "id") - @_builtins.property - @pulumi.getter(name="maxDiskThreshold") - def max_disk_threshold(self) -> Optional[_builtins.int]: - """ - The maximum disk threshold in MB. If the disk usage exceeds this threshold, the instance will be stopped. - """ - return pulumi.get(self, "max_disk_threshold") - @_builtins.property - @pulumi.getter - def maxclients(self) -> Optional[_builtins.int]: - """ - The maximum number of clients. - """ - return pulumi.get(self, "maxclients") +@pulumi.output_type +class SkeClusterNodePool(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "availabilityZones": + suggest = "availability_zones" + elif key == "machineType": + suggest = "machine_type" + elif key == "allowSystemComponents": + suggest = "allow_system_components" + elif key == "maxSurge": + suggest = "max_surge" + elif key == "maxUnavailable": + suggest = "max_unavailable" + elif key == "osName": + suggest = "os_name" + elif key == "osVersion": + suggest = "os_version" + elif key == "osVersionMin": + suggest = "os_version_min" + elif key == "osVersionUsed": + suggest = "os_version_used" + elif key == "volumeSize": + suggest = "volume_size" + elif key == "volumeType": + suggest = "volume_type" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in SkeClusterNodePool. Access the value via the '{suggest}' property getter instead.") - @_builtins.property - @pulumi.getter(name="maxmemoryPolicy") - def maxmemory_policy(self) -> Optional[_builtins.str]: - """ - The policy to handle the maximum memory (volatile-lru, noeviction, etc). - """ - return pulumi.get(self, "maxmemory_policy") + def __getitem__(self, key: str) -> Any: + SkeClusterNodePool.__key_warning(key) + return super().__getitem__(key) - @_builtins.property - @pulumi.getter(name="maxmemorySamples") - def maxmemory_samples(self) -> Optional[_builtins.int]: + def get(self, key: str, default = None) -> Any: + SkeClusterNodePool.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + availability_zones: Sequence[_builtins.str], + machine_type: _builtins.str, + maximum: _builtins.int, + minimum: _builtins.int, + name: _builtins.str, + allow_system_components: Optional[_builtins.bool] = None, + cri: Optional[_builtins.str] = None, + labels: Optional[Mapping[str, _builtins.str]] = None, + max_surge: Optional[_builtins.int] = None, + max_unavailable: Optional[_builtins.int] = None, + os_name: Optional[_builtins.str] = None, + os_version: Optional[_builtins.str] = None, + os_version_min: Optional[_builtins.str] = None, + os_version_used: Optional[_builtins.str] = None, + taints: Optional[Sequence['outputs.SkeClusterNodePoolTaint']] = None, + volume_size: Optional[_builtins.int] = None, + volume_type: Optional[_builtins.str] = None): """ - The maximum memory samples. + :param Sequence[_builtins.str] availability_zones: Specify a list of availability zones. E.g. `eu01-m` + :param _builtins.str machine_type: The machine type. + :param _builtins.int maximum: Maximum number of nodes in the pool. + :param _builtins.int minimum: Minimum number of nodes in the pool. + :param _builtins.str name: Specifies the name of the node pool. + :param _builtins.bool allow_system_components: Allow system components to run on this node pool. + :param _builtins.str cri: Specifies the container runtime. Defaults to `containerd` + :param Mapping[str, _builtins.str] labels: Labels to add to each node. + :param _builtins.int max_surge: 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 `max_surge` and `max_unavailable` fields cannot both be unset at the same time. + :param _builtins.int max_unavailable: 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 `max_surge` and `max_unavailable` fields cannot both be unset at the same time. + :param _builtins.str os_name: The name of the OS image. Defaults to `flatcar`. + :param _builtins.str os_version: This field is deprecated, use `os_version_min` to configure the version and `os_version_used` to get the currently used version instead. + :param _builtins.str os_version_min: 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 & 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 `os_version_used` field. + :param _builtins.str os_version_used: Full OS image version used. For example, if 3815.2 was set in `os_version_min`, 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). + :param Sequence['SkeClusterNodePoolTaintArgs'] taints: Specifies a taint list as defined below. + :param _builtins.int volume_size: The volume size in GB. Defaults to `20` + :param _builtins.str volume_type: Specifies the volume type. Defaults to `storage_premium_perf1`. """ - return pulumi.get(self, "maxmemory_samples") + pulumi.set(__self__, "availability_zones", availability_zones) + pulumi.set(__self__, "machine_type", machine_type) + pulumi.set(__self__, "maximum", maximum) + pulumi.set(__self__, "minimum", minimum) + pulumi.set(__self__, "name", name) + if allow_system_components is not None: + pulumi.set(__self__, "allow_system_components", allow_system_components) + if cri is not None: + pulumi.set(__self__, "cri", cri) + if labels is not None: + pulumi.set(__self__, "labels", labels) + if max_surge is not None: + pulumi.set(__self__, "max_surge", max_surge) + if max_unavailable is not None: + pulumi.set(__self__, "max_unavailable", max_unavailable) + if os_name is not None: + pulumi.set(__self__, "os_name", os_name) + if os_version is not None: + pulumi.set(__self__, "os_version", os_version) + if os_version_min is not None: + pulumi.set(__self__, "os_version_min", os_version_min) + if os_version_used is not None: + pulumi.set(__self__, "os_version_used", os_version_used) + if taints is not None: + pulumi.set(__self__, "taints", taints) + if volume_size is not None: + pulumi.set(__self__, "volume_size", volume_size) + if volume_type is not None: + pulumi.set(__self__, "volume_type", volume_type) @_builtins.property - @pulumi.getter(name="metricsFrequency") - def metrics_frequency(self) -> Optional[_builtins.int]: + @pulumi.getter(name="availabilityZones") + def availability_zones(self) -> Sequence[_builtins.str]: """ - The frequency in seconds at which metrics are emitted. + Specify a list of availability zones. E.g. `eu01-m` """ - return pulumi.get(self, "metrics_frequency") + return pulumi.get(self, "availability_zones") @_builtins.property - @pulumi.getter(name="metricsPrefix") - def metrics_prefix(self) -> Optional[_builtins.str]: + @pulumi.getter(name="machineType") + def machine_type(self) -> _builtins.str: """ - The prefix for the metrics. Could be useful when using Graphite monitoring to prefix the metrics with a certain value, like an API key + The machine type. """ - return pulumi.get(self, "metrics_prefix") + return pulumi.get(self, "machine_type") @_builtins.property - @pulumi.getter(name="minReplicasMaxLag") - def min_replicas_max_lag(self) -> Optional[_builtins.int]: + @pulumi.getter + def maximum(self) -> _builtins.int: """ - The minimum replicas maximum lag. + Maximum number of nodes in the pool. """ - return pulumi.get(self, "min_replicas_max_lag") + return pulumi.get(self, "maximum") @_builtins.property - @pulumi.getter(name="monitoringInstanceId") - def monitoring_instance_id(self) -> Optional[_builtins.str]: + @pulumi.getter + def minimum(self) -> _builtins.int: """ - The ID of the STACKIT monitoring instance. + Minimum number of nodes in the pool. """ - return pulumi.get(self, "monitoring_instance_id") + return pulumi.get(self, "minimum") @_builtins.property - @pulumi.getter(name="notifyKeyspaceEvents") - def notify_keyspace_events(self) -> Optional[_builtins.str]: + @pulumi.getter + def name(self) -> _builtins.str: """ - The notify keyspace events. + Specifies the name of the node pool. """ - return pulumi.get(self, "notify_keyspace_events") + return pulumi.get(self, "name") @_builtins.property - @pulumi.getter(name="sgwAcl") - def sgw_acl(self) -> Optional[_builtins.str]: + @pulumi.getter(name="allowSystemComponents") + def allow_system_components(self) -> Optional[_builtins.bool]: """ - Comma separated list of IP networks in CIDR notation which are allowed to access this instance. + Allow system components to run on this node pool. """ - return pulumi.get(self, "sgw_acl") + return pulumi.get(self, "allow_system_components") @_builtins.property @pulumi.getter - def snapshot(self) -> Optional[_builtins.str]: + def cri(self) -> Optional[_builtins.str]: """ - The snapshot configuration. + Specifies the container runtime. Defaults to `containerd` """ - return pulumi.get(self, "snapshot") + return pulumi.get(self, "cri") @_builtins.property @pulumi.getter - def syslogs(self) -> Optional[Sequence[_builtins.str]]: + def labels(self) -> Optional[Mapping[str, _builtins.str]]: """ - List of syslog servers to send logs to. + Labels to add to each node. """ - return pulumi.get(self, "syslogs") + return pulumi.get(self, "labels") @_builtins.property - @pulumi.getter(name="tlsCiphers") - def tls_ciphers(self) -> Optional[Sequence[_builtins.str]]: + @pulumi.getter(name="maxSurge") + def max_surge(self) -> Optional[_builtins.int]: """ - List of TLS ciphers to use. + 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 `max_surge` and `max_unavailable` fields cannot both be unset at the same time. """ - return pulumi.get(self, "tls_ciphers") + return pulumi.get(self, "max_surge") @_builtins.property - @pulumi.getter(name="tlsCiphersuites") - def tls_ciphersuites(self) -> Optional[_builtins.str]: + @pulumi.getter(name="maxUnavailable") + def max_unavailable(self) -> Optional[_builtins.int]: """ - TLS cipher suites to use. + 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 `max_surge` and `max_unavailable` fields cannot both be unset at the same time. """ - return pulumi.get(self, "tls_ciphersuites") + return pulumi.get(self, "max_unavailable") @_builtins.property - @pulumi.getter(name="tlsProtocols") - def tls_protocols(self) -> Optional[_builtins.str]: - """ - TLS protocol to use. - """ - return pulumi.get(self, "tls_protocols") - - -@pulumi.output_type -class RoutingTableRouteDestination(dict): - def __init__(__self__, *, - type: _builtins.str, - value: _builtins.str): + @pulumi.getter(name="osName") + def os_name(self) -> Optional[_builtins.str]: """ - :param _builtins.str type: CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported during experimental stage. - :param _builtins.str value: An CIDR string. + The name of the OS image. Defaults to `flatcar`. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + return pulumi.get(self, "os_name") @_builtins.property - @pulumi.getter - def type(self) -> _builtins.str: + @pulumi.getter(name="osVersion") + @_utilities.deprecated("""Use `os_version_min` to configure the version and `os_version_used` to get the currently used version instead. Setting a specific OS image version will cause errors during minor OS upgrades due to forced updates.""") + def os_version(self) -> Optional[_builtins.str]: """ - CIDRV type. Possible values are: `cidrv4`, `cidrv6`. Only `cidrv4` is supported during experimental stage. + This field is deprecated, use `os_version_min` to configure the version and `os_version_used` to get the currently used version instead. """ - return pulumi.get(self, "type") + return pulumi.get(self, "os_version") @_builtins.property - @pulumi.getter - def value(self) -> _builtins.str: - """ - An CIDR string. - """ - return pulumi.get(self, "value") - - -@pulumi.output_type -class RoutingTableRouteNextHop(dict): - def __init__(__self__, *, - type: _builtins.str, - value: Optional[_builtins.str] = None): + @pulumi.getter(name="osVersionMin") + def os_version_min(self) -> Optional[_builtins.str]: """ - :param _builtins.str type: Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. - :param _builtins.str value: Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. + 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 & 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 `os_version_used` field. """ - pulumi.set(__self__, "type", type) - if value is not None: - pulumi.set(__self__, "value", value) + return pulumi.get(self, "os_version_min") @_builtins.property - @pulumi.getter - def type(self) -> _builtins.str: + @pulumi.getter(name="osVersionUsed") + def os_version_used(self) -> Optional[_builtins.str]: """ - Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. + Full OS image version used. For example, if 3815.2 was set in `os_version_min`, 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). """ - return pulumi.get(self, "type") + return pulumi.get(self, "os_version_used") @_builtins.property @pulumi.getter - def value(self) -> Optional[_builtins.str]: - """ - Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. - """ - return pulumi.get(self, "value") - - -@pulumi.output_type -class SecurityGroupRuleIcmpParameters(dict): - def __init__(__self__, *, - code: _builtins.int, - type: _builtins.int): + def taints(self) -> Optional[Sequence['outputs.SkeClusterNodePoolTaint']]: """ - :param _builtins.int code: ICMP code. Can be set if the protocol is ICMP. - :param _builtins.int type: ICMP type. Can be set if the protocol is ICMP. + Specifies a taint list as defined below. """ - pulumi.set(__self__, "code", code) - pulumi.set(__self__, "type", type) + return pulumi.get(self, "taints") @_builtins.property - @pulumi.getter - def code(self) -> _builtins.int: + @pulumi.getter(name="volumeSize") + def volume_size(self) -> Optional[_builtins.int]: """ - ICMP code. Can be set if the protocol is ICMP. + The volume size in GB. Defaults to `20` """ - return pulumi.get(self, "code") + return pulumi.get(self, "volume_size") @_builtins.property - @pulumi.getter - def type(self) -> _builtins.int: + @pulumi.getter(name="volumeType") + def volume_type(self) -> Optional[_builtins.str]: """ - ICMP type. Can be set if the protocol is ICMP. + Specifies the volume type. Defaults to `storage_premium_perf1`. """ - return pulumi.get(self, "type") + return pulumi.get(self, "volume_type") @pulumi.output_type -class SecurityGroupRulePortRange(dict): +class SkeClusterNodePoolTaint(dict): def __init__(__self__, *, - max: _builtins.int, - min: _builtins.int): + effect: _builtins.str, + key: _builtins.str, + value: Optional[_builtins.str] = None): """ - :param _builtins.int max: The maximum port number. Should be greater or equal to the minimum. - :param _builtins.int min: The minimum port number. Should be less or equal to the maximum. + :param _builtins.str effect: The taint effect. E.g `PreferNoSchedule`. + :param _builtins.str key: Taint key to be applied to a node. + :param _builtins.str value: Taint value corresponding to the taint key. """ - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + pulumi.set(__self__, "effect", effect) + pulumi.set(__self__, "key", key) + if value is not None: + pulumi.set(__self__, "value", value) @_builtins.property @pulumi.getter - def max(self) -> _builtins.int: + def effect(self) -> _builtins.str: """ - The maximum port number. Should be greater or equal to the minimum. + The taint effect. E.g `PreferNoSchedule`. """ - return pulumi.get(self, "max") + return pulumi.get(self, "effect") @_builtins.property @pulumi.getter - def min(self) -> _builtins.int: + def key(self) -> _builtins.str: """ - The minimum port number. Should be less or equal to the maximum. + Taint key to be applied to a node. """ - return pulumi.get(self, "min") + return pulumi.get(self, "key") + + @_builtins.property + @pulumi.getter + def value(self) -> Optional[_builtins.str]: + """ + Taint value corresponding to the taint key. + """ + return pulumi.get(self, "value") @pulumi.output_type -class SecurityGroupRuleProtocol(dict): +class SqlserverflexInstanceFlavor(dict): def __init__(__self__, *, - name: Optional[_builtins.str] = None, - number: Optional[_builtins.int] = None): - """ - :param _builtins.str name: The protocol name which the rule should match. Either `name` or `number` must be provided. Possible values are: `ah`, `dccp`, `egp`, `esp`, `gre`, `icmp`, `igmp`, `ipip`, `ipv6-encap`, `ipv6-frag`, `ipv6-icmp`, `ipv6-nonxt`, `ipv6-opts`, `ipv6-route`, `ospf`, `pgm`, `rsvp`, `sctp`, `tcp`, `udp`, `udplite`, `vrrp`. - :param _builtins.int number: The protocol number which the rule should match. Either `name` or `number` must be provided. - """ - if name is not None: - pulumi.set(__self__, "name", name) - if number is not None: - pulumi.set(__self__, "number", number) + cpu: _builtins.int, + ram: _builtins.int, + description: Optional[_builtins.str] = None, + id: Optional[_builtins.str] = None): + pulumi.set(__self__, "cpu", cpu) + pulumi.set(__self__, "ram", ram) + if description is not None: + pulumi.set(__self__, "description", description) + if id is not None: + pulumi.set(__self__, "id", id) @_builtins.property @pulumi.getter - def name(self) -> Optional[_builtins.str]: - """ - The protocol name which the rule should match. Either `name` or `number` must be provided. Possible values are: `ah`, `dccp`, `egp`, `esp`, `gre`, `icmp`, `igmp`, `ipip`, `ipv6-encap`, `ipv6-frag`, `ipv6-icmp`, `ipv6-nonxt`, `ipv6-opts`, `ipv6-route`, `ospf`, `pgm`, `rsvp`, `sctp`, `tcp`, `udp`, `udplite`, `vrrp`. - """ - return pulumi.get(self, "name") + def cpu(self) -> _builtins.int: + return pulumi.get(self, "cpu") @_builtins.property @pulumi.getter - def number(self) -> Optional[_builtins.int]: - """ - The protocol number which the rule should match. Either `name` or `number` must be provided. - """ - return pulumi.get(self, "number") + def ram(self) -> _builtins.int: + return pulumi.get(self, "ram") + + @_builtins.property + @pulumi.getter + def description(self) -> Optional[_builtins.str]: + return pulumi.get(self, "description") + + @_builtins.property + @pulumi.getter + def id(self) -> Optional[_builtins.str]: + return pulumi.get(self, "id") @pulumi.output_type -class ServerBackupScheduleBackupProperties(dict): +class SqlserverflexInstanceOptions(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "retentionPeriod": - suggest = "retention_period" - elif key == "volumeIds": - suggest = "volume_ids" + if key == "retentionDays": + suggest = "retention_days" if suggest: - pulumi.log.warn(f"Key '{key}' not found in ServerBackupScheduleBackupProperties. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in SqlserverflexInstanceOptions. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - ServerBackupScheduleBackupProperties.__key_warning(key) + SqlserverflexInstanceOptions.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - ServerBackupScheduleBackupProperties.__key_warning(key) + SqlserverflexInstanceOptions.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - name: _builtins.str, - retention_period: _builtins.int, - volume_ids: Optional[Sequence[_builtins.str]] = None): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "retention_period", retention_period) - if volume_ids is not None: - pulumi.set(__self__, "volume_ids", volume_ids) + edition: Optional[_builtins.str] = None, + retention_days: Optional[_builtins.int] = None): + if edition is not None: + pulumi.set(__self__, "edition", edition) + if retention_days is not None: + pulumi.set(__self__, "retention_days", retention_days) @_builtins.property @pulumi.getter - def name(self) -> _builtins.str: - return pulumi.get(self, "name") - - @_builtins.property - @pulumi.getter(name="retentionPeriod") - def retention_period(self) -> _builtins.int: - return pulumi.get(self, "retention_period") + def edition(self) -> Optional[_builtins.str]: + return pulumi.get(self, "edition") @_builtins.property - @pulumi.getter(name="volumeIds") - def volume_ids(self) -> Optional[Sequence[_builtins.str]]: - return pulumi.get(self, "volume_ids") + @pulumi.getter(name="retentionDays") + def retention_days(self) -> Optional[_builtins.int]: + return pulumi.get(self, "retention_days") @pulumi.output_type -class ServerBootVolume(dict): +class SqlserverflexInstanceStorage(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "sourceId": - suggest = "source_id" - elif key == "sourceType": - suggest = "source_type" - elif key == "deleteOnTermination": - suggest = "delete_on_termination" - elif key == "performanceClass": - suggest = "performance_class" + if key == "class": + suggest = "class_" if suggest: - pulumi.log.warn(f"Key '{key}' not found in ServerBootVolume. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in SqlserverflexInstanceStorage. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - ServerBootVolume.__key_warning(key) + SqlserverflexInstanceStorage.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - ServerBootVolume.__key_warning(key) + SqlserverflexInstanceStorage.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - source_id: _builtins.str, - source_type: _builtins.str, - delete_on_termination: Optional[_builtins.bool] = None, - id: Optional[_builtins.str] = None, - performance_class: Optional[_builtins.str] = None, + class_: Optional[_builtins.str] = None, size: Optional[_builtins.int] = None): - """ - :param _builtins.str source_id: The ID of the source, either image ID or volume ID - :param _builtins.str source_type: The type of the source. Possible values are: `volume`, `image`. - :param _builtins.bool delete_on_termination: Delete the volume during the termination of the server. Only allowed when `source_type` is `image`. - :param _builtins.str id: The ID of the boot volume - :param _builtins.str performance_class: The performance class of the server. - :param _builtins.int size: The size of the boot volume in GB. Must be provided when `source_type` is `image`. - """ - pulumi.set(__self__, "source_id", source_id) - pulumi.set(__self__, "source_type", source_type) - if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) - if id is not None: - pulumi.set(__self__, "id", id) - if performance_class is not None: - pulumi.set(__self__, "performance_class", performance_class) + if class_ is not None: + pulumi.set(__self__, "class_", class_) if size is not None: pulumi.set(__self__, "size", size) @_builtins.property - @pulumi.getter(name="sourceId") - def source_id(self) -> _builtins.str: - """ - The ID of the source, either image ID or volume ID - """ - return pulumi.get(self, "source_id") - - @_builtins.property - @pulumi.getter(name="sourceType") - def source_type(self) -> _builtins.str: - """ - The type of the source. Possible values are: `volume`, `image`. - """ - return pulumi.get(self, "source_type") - - @_builtins.property - @pulumi.getter(name="deleteOnTermination") - def delete_on_termination(self) -> Optional[_builtins.bool]: - """ - Delete the volume during the termination of the server. Only allowed when `source_type` is `image`. - """ - return pulumi.get(self, "delete_on_termination") - - @_builtins.property - @pulumi.getter - def id(self) -> Optional[_builtins.str]: - """ - The ID of the boot volume - """ - return pulumi.get(self, "id") - - @_builtins.property - @pulumi.getter(name="performanceClass") - def performance_class(self) -> Optional[_builtins.str]: - """ - The performance class of the server. - """ - return pulumi.get(self, "performance_class") + @pulumi.getter(name="class") + def class_(self) -> Optional[_builtins.str]: + return pulumi.get(self, "class_") @_builtins.property @pulumi.getter def size(self) -> Optional[_builtins.int]: - """ - The size of the boot volume in GB. Must be provided when `source_type` is `image`. - """ return pulumi.get(self, "size") @pulumi.output_type -class SfsExportPolicyRule(dict): +class VolumeEncryptionParameters(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "ipAcls": - suggest = "ip_acls" - elif key == "readOnly": - suggest = "read_only" - elif key == "setUuid": - suggest = "set_uuid" - elif key == "superUser": - suggest = "super_user" + if key == "kekKeyId": + suggest = "kek_key_id" + elif key == "kekKeyVersion": + suggest = "kek_key_version" + elif key == "kekKeyringId": + suggest = "kek_keyring_id" + elif key == "serviceAccount": + suggest = "service_account" + elif key == "keyPayloadBase64": + suggest = "key_payload_base64" + elif key == "keyPayloadBase64Wo": + suggest = "key_payload_base64_wo" + elif key == "keyPayloadBase64WoVersion": + suggest = "key_payload_base64_wo_version" if suggest: - pulumi.log.warn(f"Key '{key}' not found in SfsExportPolicyRule. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in VolumeEncryptionParameters. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - SfsExportPolicyRule.__key_warning(key) + VolumeEncryptionParameters.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - SfsExportPolicyRule.__key_warning(key) + VolumeEncryptionParameters.__key_warning(key) return super().get(key, default) - def __init__(__self__, *, - ip_acls: Sequence[_builtins.str], - order: _builtins.int, - description: Optional[_builtins.str] = None, - read_only: Optional[_builtins.bool] = None, - set_uuid: Optional[_builtins.bool] = None, - super_user: Optional[_builtins.bool] = None): + def __init__(__self__, *, + kek_key_id: _builtins.str, + kek_key_version: _builtins.int, + kek_keyring_id: _builtins.str, + service_account: _builtins.str, + key_payload_base64: Optional[_builtins.str] = None, + key_payload_base64_wo: Optional[_builtins.str] = None, + key_payload_base64_wo_version: Optional[_builtins.int] = None): + """ + :param _builtins.str kek_key_id: UUID of the key within the STACKIT-KMS to use for the encryption. + :param _builtins.int kek_key_version: Version of the key within the STACKIT-KMS to use for the encryption. + :param _builtins.str kek_keyring_id: UUID of the keyring where the key is located within the STACKTI-KMS. + :param _builtins.str service_account: Service-Account linked to the Key within the STACKIT-KMS. + :param _builtins.str key_payload_base64: 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. + :param _builtins.str key_payload_base64_wo: **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + 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. + :param _builtins.int key_payload_base64_wo_version: Used together with `key_payload_base64_wo` to trigger an re-create. Increment this value when an update to `key_payload_base64_wo` is required. + """ + pulumi.set(__self__, "kek_key_id", kek_key_id) + pulumi.set(__self__, "kek_key_version", kek_key_version) + pulumi.set(__self__, "kek_keyring_id", kek_keyring_id) + pulumi.set(__self__, "service_account", service_account) + if key_payload_base64 is not None: + pulumi.set(__self__, "key_payload_base64", key_payload_base64) + if key_payload_base64_wo is not None: + pulumi.set(__self__, "key_payload_base64_wo", key_payload_base64_wo) + if key_payload_base64_wo_version is not None: + pulumi.set(__self__, "key_payload_base64_wo_version", key_payload_base64_wo_version) + + @_builtins.property + @pulumi.getter(name="kekKeyId") + def kek_key_id(self) -> _builtins.str: """ - :param Sequence[_builtins.str] ip_acls: 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). - :param _builtins.int order: 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 - :param _builtins.str description: Description of the Rule - :param _builtins.bool read_only: Flag to indicate if client IPs matching this rule can only mount the share in read only mode - :param _builtins.bool set_uuid: Flag to honor set UUID - :param _builtins.bool super_user: Flag to indicate if client IPs matching this rule have root access on the Share + UUID of the key within the STACKIT-KMS to use for the encryption. """ - pulumi.set(__self__, "ip_acls", ip_acls) - pulumi.set(__self__, "order", order) - if description is not None: - pulumi.set(__self__, "description", description) - if read_only is not None: - pulumi.set(__self__, "read_only", read_only) - if set_uuid is not None: - pulumi.set(__self__, "set_uuid", set_uuid) - if super_user is not None: - pulumi.set(__self__, "super_user", super_user) + return pulumi.get(self, "kek_key_id") @_builtins.property - @pulumi.getter(name="ipAcls") - def ip_acls(self) -> Sequence[_builtins.str]: + @pulumi.getter(name="kekKeyVersion") + def kek_key_version(self) -> _builtins.int: """ - 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). + Version of the key within the STACKIT-KMS to use for the encryption. """ - return pulumi.get(self, "ip_acls") + return pulumi.get(self, "kek_key_version") @_builtins.property - @pulumi.getter - def order(self) -> _builtins.int: + @pulumi.getter(name="kekKeyringId") + def kek_keyring_id(self) -> _builtins.str: """ - 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 + UUID of the keyring where the key is located within the STACKTI-KMS. """ - return pulumi.get(self, "order") + return pulumi.get(self, "kek_keyring_id") @_builtins.property - @pulumi.getter - def description(self) -> Optional[_builtins.str]: + @pulumi.getter(name="serviceAccount") + def service_account(self) -> _builtins.str: """ - Description of the Rule + Service-Account linked to the Key within the STACKIT-KMS. """ - return pulumi.get(self, "description") + return pulumi.get(self, "service_account") @_builtins.property - @pulumi.getter(name="readOnly") - def read_only(self) -> Optional[_builtins.bool]: + @pulumi.getter(name="keyPayloadBase64") + def key_payload_base64(self) -> Optional[_builtins.str]: """ - Flag to indicate if client IPs matching this rule can only mount the share in read only mode + 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. """ - return pulumi.get(self, "read_only") + return pulumi.get(self, "key_payload_base64") @_builtins.property - @pulumi.getter(name="setUuid") - def set_uuid(self) -> Optional[_builtins.bool]: + @pulumi.getter(name="keyPayloadBase64Wo") + def key_payload_base64_wo(self) -> Optional[_builtins.str]: """ - Flag to honor set UUID + **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + 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. """ - return pulumi.get(self, "set_uuid") + return pulumi.get(self, "key_payload_base64_wo") @_builtins.property - @pulumi.getter(name="superUser") - def super_user(self) -> Optional[_builtins.bool]: + @pulumi.getter(name="keyPayloadBase64WoVersion") + def key_payload_base64_wo_version(self) -> Optional[_builtins.int]: """ - Flag to indicate if client IPs matching this rule have root access on the Share + Used together with `key_payload_base64_wo` to trigger an re-create. Increment this value when an update to `key_payload_base64_wo` is required. """ - return pulumi.get(self, "super_user") + return pulumi.get(self, "key_payload_base64_wo_version") @pulumi.output_type -class SkeClusterExtensions(dict): +class VolumeSource(dict): def __init__(__self__, *, - acl: Optional['outputs.SkeClusterExtensionsAcl'] = None, - argus: Optional['outputs.SkeClusterExtensionsArgus'] = None, - dns: Optional['outputs.SkeClusterExtensionsDns'] = None, - observability: Optional['outputs.SkeClusterExtensionsObservability'] = None): + id: _builtins.str, + type: _builtins.str): """ - :param 'SkeClusterExtensionsAclArgs' acl: Cluster access control configuration. - :param 'SkeClusterExtensionsArgusArgs' argus: A single argus block as defined below. This field is deprecated and will be removed 06 January 2026. - :param 'SkeClusterExtensionsDnsArgs' dns: DNS extension configuration - :param 'SkeClusterExtensionsObservabilityArgs' observability: A single observability block as defined below. + :param _builtins.str id: The ID of the source, e.g. image ID + :param _builtins.str type: The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. """ - if acl is not None: - pulumi.set(__self__, "acl", acl) - if argus is not None: - pulumi.set(__self__, "argus", argus) - if dns is not None: - pulumi.set(__self__, "dns", dns) - if observability is not None: - pulumi.set(__self__, "observability", observability) + pulumi.set(__self__, "id", id) + pulumi.set(__self__, "type", type) @_builtins.property @pulumi.getter - def acl(self) -> Optional['outputs.SkeClusterExtensionsAcl']: + def id(self) -> _builtins.str: """ - Cluster access control configuration. + The ID of the source, e.g. image ID """ - return pulumi.get(self, "acl") + return pulumi.get(self, "id") @_builtins.property @pulumi.getter - @_utilities.deprecated("""Use observability instead.""") - def argus(self) -> Optional['outputs.SkeClusterExtensionsArgus']: + def type(self) -> _builtins.str: """ - A single argus block as defined below. This field is deprecated and will be removed 06 January 2026. + The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. """ - return pulumi.get(self, "argus") + return pulumi.get(self, "type") + + +@pulumi.output_type +class GetApplicationLoadBalancerErrorResult(dict): + def __init__(__self__, *, + description: _builtins.str, + type: _builtins.str): + """ + :param _builtins.str 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. + :param _builtins.str type: 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`. + """ + pulumi.set(__self__, "description", description) + pulumi.set(__self__, "type", type) @_builtins.property @pulumi.getter - def dns(self) -> Optional['outputs.SkeClusterExtensionsDns']: + def description(self) -> _builtins.str: """ - DNS extension configuration + 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. """ - return pulumi.get(self, "dns") + return pulumi.get(self, "description") @_builtins.property @pulumi.getter - def observability(self) -> Optional['outputs.SkeClusterExtensionsObservability']: + def type(self) -> _builtins.str: """ - A single observability block as defined below. + 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`. """ - return pulumi.get(self, "observability") + return pulumi.get(self, "type") @pulumi.output_type -class SkeClusterExtensionsAcl(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "allowedCidrs": - suggest = "allowed_cidrs" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in SkeClusterExtensionsAcl. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - SkeClusterExtensionsAcl.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - SkeClusterExtensionsAcl.__key_warning(key) - return super().get(key, default) - +class GetApplicationLoadBalancerListenerResult(dict): def __init__(__self__, *, - allowed_cidrs: Sequence[_builtins.str], - enabled: _builtins.bool): + http: 'outputs.GetApplicationLoadBalancerListenerHttpResult', + https: 'outputs.GetApplicationLoadBalancerListenerHttpsResult', + name: _builtins.str, + port: _builtins.int, + protocol: _builtins.str, + waf_config_name: _builtins.str): """ - :param Sequence[_builtins.str] allowed_cidrs: Specify a list of CIDRs to whitelist. - :param _builtins.bool enabled: Is ACL enabled? + :param 'GetApplicationLoadBalancerListenerHttpArgs' http: Configuration for HTTP traffic. + :param 'GetApplicationLoadBalancerListenerHttpsArgs' https: Configuration for handling HTTPS traffic on this listener. + :param _builtins.str name: Unique name for the listener + :param _builtins.int port: Port number on which the listener receives incoming traffic. + :param _builtins.str protocol: Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. + :param _builtins.str waf_config_name: Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. """ - pulumi.set(__self__, "allowed_cidrs", allowed_cidrs) - pulumi.set(__self__, "enabled", enabled) + pulumi.set(__self__, "http", http) + pulumi.set(__self__, "https", https) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "port", port) + pulumi.set(__self__, "protocol", protocol) + pulumi.set(__self__, "waf_config_name", waf_config_name) @_builtins.property - @pulumi.getter(name="allowedCidrs") - def allowed_cidrs(self) -> Sequence[_builtins.str]: + @pulumi.getter + def http(self) -> 'outputs.GetApplicationLoadBalancerListenerHttpResult': """ - Specify a list of CIDRs to whitelist. + Configuration for HTTP traffic. """ - return pulumi.get(self, "allowed_cidrs") + return pulumi.get(self, "http") @_builtins.property @pulumi.getter - def enabled(self) -> _builtins.bool: + def https(self) -> 'outputs.GetApplicationLoadBalancerListenerHttpsResult': """ - Is ACL enabled? + Configuration for handling HTTPS traffic on this listener. """ - return pulumi.get(self, "enabled") - - -@pulumi.output_type -class SkeClusterExtensionsArgus(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "argusInstanceId": - suggest = "argus_instance_id" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in SkeClusterExtensionsArgus. Access the value via the '{suggest}' property getter instead.") + return pulumi.get(self, "https") - def __getitem__(self, key: str) -> Any: - SkeClusterExtensionsArgus.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - SkeClusterExtensionsArgus.__key_warning(key) - return super().get(key, default) + @_builtins.property + @pulumi.getter + def name(self) -> _builtins.str: + """ + Unique name for the listener + """ + return pulumi.get(self, "name") - def __init__(__self__, *, - enabled: _builtins.bool, - argus_instance_id: Optional[_builtins.str] = None): + @_builtins.property + @pulumi.getter + def port(self) -> _builtins.int: """ - :param _builtins.bool enabled: Flag to enable/disable Argus extensions. - :param _builtins.str argus_instance_id: Argus instance ID to choose which Argus instance is used. Required when enabled is set to `true`. + Port number on which the listener receives incoming traffic. """ - pulumi.set(__self__, "enabled", enabled) - if argus_instance_id is not None: - pulumi.set(__self__, "argus_instance_id", argus_instance_id) + return pulumi.get(self, "port") @_builtins.property @pulumi.getter - def enabled(self) -> _builtins.bool: + def protocol(self) -> _builtins.str: """ - Flag to enable/disable Argus extensions. + Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_HTTP`, `PROTOCOL_HTTPS`. """ - return pulumi.get(self, "enabled") + return pulumi.get(self, "protocol") @_builtins.property - @pulumi.getter(name="argusInstanceId") - def argus_instance_id(self) -> Optional[_builtins.str]: + @pulumi.getter(name="wafConfigName") + def waf_config_name(self) -> _builtins.str: """ - Argus instance ID to choose which Argus instance is used. Required when enabled is set to `true`. + Enable Web Application Firewall (WAF), referenced by name. See "Application Load Balancer - Web Application Firewall API" for more information. """ - return pulumi.get(self, "argus_instance_id") + return pulumi.get(self, "waf_config_name") @pulumi.output_type -class SkeClusterExtensionsDns(dict): +class GetApplicationLoadBalancerListenerHttpResult(dict): def __init__(__self__, *, - enabled: _builtins.bool, - zones: Optional[Sequence[_builtins.str]] = None): - """ - :param _builtins.bool enabled: Flag to enable/disable DNS extensions - :param Sequence[_builtins.str] zones: Specify a list of domain filters for externalDNS (e.g., `foo.runs.onstackit.cloud`) - """ - pulumi.set(__self__, "enabled", enabled) - if zones is not None: - pulumi.set(__self__, "zones", zones) - - @_builtins.property - @pulumi.getter - def enabled(self) -> _builtins.bool: + hosts: Sequence['outputs.GetApplicationLoadBalancerListenerHttpHostResult']): """ - Flag to enable/disable DNS extensions + :param Sequence['GetApplicationLoadBalancerListenerHttpHostArgs'] hosts: Defines routing rules grouped by hostname. """ - return pulumi.get(self, "enabled") + pulumi.set(__self__, "hosts", hosts) @_builtins.property @pulumi.getter - def zones(self) -> Optional[Sequence[_builtins.str]]: + def hosts(self) -> Sequence['outputs.GetApplicationLoadBalancerListenerHttpHostResult']: """ - Specify a list of domain filters for externalDNS (e.g., `foo.runs.onstackit.cloud`) + Defines routing rules grouped by hostname. """ - return pulumi.get(self, "zones") + return pulumi.get(self, "hosts") @pulumi.output_type -class SkeClusterExtensionsObservability(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "instanceId": - suggest = "instance_id" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in SkeClusterExtensionsObservability. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - SkeClusterExtensionsObservability.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - SkeClusterExtensionsObservability.__key_warning(key) - return super().get(key, default) - +class GetApplicationLoadBalancerListenerHttpHostResult(dict): def __init__(__self__, *, - enabled: _builtins.bool, - instance_id: Optional[_builtins.str] = None): + host: _builtins.str, + rules: Sequence['outputs.GetApplicationLoadBalancerListenerHttpHostRuleResult']): """ - :param _builtins.bool enabled: Flag to enable/disable Observability extensions. - :param _builtins.str instance_id: Observability instance ID to choose which Observability instance is used. Required when enabled is set to `true`. + :param _builtins.str host: Hostname to match. Supports wildcards (e.g. *.example.com). + :param Sequence['GetApplicationLoadBalancerListenerHttpHostRuleArgs'] rules: Routing rules under the specified host, matched by path prefix. """ - pulumi.set(__self__, "enabled", enabled) - if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + pulumi.set(__self__, "host", host) + pulumi.set(__self__, "rules", rules) @_builtins.property @pulumi.getter - def enabled(self) -> _builtins.bool: + def host(self) -> _builtins.str: """ - Flag to enable/disable Observability extensions. + Hostname to match. Supports wildcards (e.g. *.example.com). """ - return pulumi.get(self, "enabled") + return pulumi.get(self, "host") @_builtins.property - @pulumi.getter(name="instanceId") - def instance_id(self) -> Optional[_builtins.str]: + @pulumi.getter + def rules(self) -> Sequence['outputs.GetApplicationLoadBalancerListenerHttpHostRuleResult']: """ - Observability instance ID to choose which Observability instance is used. Required when enabled is set to `true`. + Routing rules under the specified host, matched by path prefix. """ - return pulumi.get(self, "instance_id") + return pulumi.get(self, "rules") @pulumi.output_type -class SkeClusterHibernation(dict): +class GetApplicationLoadBalancerListenerHttpHostRuleResult(dict): def __init__(__self__, *, - end: _builtins.str, - start: _builtins.str, - timezone: Optional[_builtins.str] = None): + cookie_persistence: 'outputs.GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceResult', + headers: Sequence['outputs.GetApplicationLoadBalancerListenerHttpHostRuleHeaderResult'], + path: 'outputs.GetApplicationLoadBalancerListenerHttpHostRulePathResult', + query_parameters: Sequence['outputs.GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterResult'], + target_pool: _builtins.str, + web_socket: _builtins.bool): """ - :param _builtins.str end: End time of hibernation in crontab syntax. E.g. `0 8 * * *` for waking up the cluster at 8am. - :param _builtins.str start: Start time of cluster hibernation in crontab syntax. E.g. `0 18 * * *` for starting everyday at 6pm. - :param _builtins.str timezone: Timezone name corresponding to a file in the IANA Time Zone database. i.e. `Europe/Berlin`. + :param 'GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceArgs' cookie_persistence: Routing persistence via cookies. + :param Sequence['GetApplicationLoadBalancerListenerHttpHostRuleHeaderArgs'] headers: Headers for the rule. + :param 'GetApplicationLoadBalancerListenerHttpHostRulePathArgs' path: Routing via path. + :param Sequence['GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterArgs'] query_parameters: Query parameters for the rule. + :param _builtins.str target_pool: Reference target pool by target pool name. + :param _builtins.bool web_socket: 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. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) - if timezone is not None: - pulumi.set(__self__, "timezone", timezone) + pulumi.set(__self__, "cookie_persistence", cookie_persistence) + pulumi.set(__self__, "headers", headers) + pulumi.set(__self__, "path", path) + pulumi.set(__self__, "query_parameters", query_parameters) + pulumi.set(__self__, "target_pool", target_pool) + pulumi.set(__self__, "web_socket", web_socket) @_builtins.property - @pulumi.getter - def end(self) -> _builtins.str: + @pulumi.getter(name="cookiePersistence") + def cookie_persistence(self) -> 'outputs.GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceResult': """ - End time of hibernation in crontab syntax. E.g. `0 8 * * *` for waking up the cluster at 8am. + Routing persistence via cookies. """ - return pulumi.get(self, "end") + return pulumi.get(self, "cookie_persistence") @_builtins.property @pulumi.getter - def start(self) -> _builtins.str: + def headers(self) -> Sequence['outputs.GetApplicationLoadBalancerListenerHttpHostRuleHeaderResult']: """ - Start time of cluster hibernation in crontab syntax. E.g. `0 18 * * *` for starting everyday at 6pm. + Headers for the rule. """ - return pulumi.get(self, "start") + return pulumi.get(self, "headers") @_builtins.property @pulumi.getter - def timezone(self) -> Optional[_builtins.str]: + def path(self) -> 'outputs.GetApplicationLoadBalancerListenerHttpHostRulePathResult': """ - Timezone name corresponding to a file in the IANA Time Zone database. i.e. `Europe/Berlin`. + Routing via path. """ - return pulumi.get(self, "timezone") + return pulumi.get(self, "path") + @_builtins.property + @pulumi.getter(name="queryParameters") + def query_parameters(self) -> Sequence['outputs.GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterResult']: + """ + Query parameters for the rule. + """ + return pulumi.get(self, "query_parameters") -@pulumi.output_type -class SkeClusterMaintenance(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "enableKubernetesVersionUpdates": - suggest = "enable_kubernetes_version_updates" - elif key == "enableMachineImageVersionUpdates": - suggest = "enable_machine_image_version_updates" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in SkeClusterMaintenance. Access the value via the '{suggest}' property getter instead.") + @_builtins.property + @pulumi.getter(name="targetPool") + def target_pool(self) -> _builtins.str: + """ + Reference target pool by target pool name. + """ + return pulumi.get(self, "target_pool") - def __getitem__(self, key: str) -> Any: - SkeClusterMaintenance.__key_warning(key) - return super().__getitem__(key) + @_builtins.property + @pulumi.getter(name="webSocket") + def web_socket(self) -> _builtins.bool: + """ + 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. + """ + return pulumi.get(self, "web_socket") - def get(self, key: str, default = None) -> Any: - SkeClusterMaintenance.__key_warning(key) - return super().get(key, default) +@pulumi.output_type +class GetApplicationLoadBalancerListenerHttpHostRuleCookiePersistenceResult(dict): def __init__(__self__, *, - end: _builtins.str, - start: _builtins.str, - enable_kubernetes_version_updates: Optional[_builtins.bool] = None, - enable_machine_image_version_updates: Optional[_builtins.bool] = None): + name: _builtins.str, + ttl: _builtins.str): """ - :param _builtins.str end: Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. - :param _builtins.str start: Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. - :param _builtins.bool enable_kubernetes_version_updates: Flag to enable/disable auto-updates of the Kubernetes version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). - :param _builtins.bool enable_machine_image_version_updates: Flag to enable/disable auto-updates of the OS image version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). + :param _builtins.str name: The name of the cookie to use. + :param _builtins.str ttl: 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. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) - if enable_kubernetes_version_updates is not None: - pulumi.set(__self__, "enable_kubernetes_version_updates", enable_kubernetes_version_updates) - if enable_machine_image_version_updates is not None: - pulumi.set(__self__, "enable_machine_image_version_updates", enable_machine_image_version_updates) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "ttl", ttl) @_builtins.property @pulumi.getter - def end(self) -> _builtins.str: + def name(self) -> _builtins.str: """ - Time for maintenance window end. E.g. `01:23:45Z`, `05:00:00+02:00`. + The name of the cookie to use. """ - return pulumi.get(self, "end") + return pulumi.get(self, "name") @_builtins.property @pulumi.getter - def start(self) -> _builtins.str: + def ttl(self) -> _builtins.str: """ - Time for maintenance window start. E.g. `01:23:45Z`, `05:00:00+02:00`. + 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. """ - return pulumi.get(self, "start") + return pulumi.get(self, "ttl") + + +@pulumi.output_type +class GetApplicationLoadBalancerListenerHttpHostRuleHeaderResult(dict): + def __init__(__self__, *, + exact_match: _builtins.str, + name: _builtins.str): + """ + :param _builtins.str exact_match: Exact match for the header value. + :param _builtins.str name: Header name. + """ + pulumi.set(__self__, "exact_match", exact_match) + pulumi.set(__self__, "name", name) @_builtins.property - @pulumi.getter(name="enableKubernetesVersionUpdates") - def enable_kubernetes_version_updates(self) -> Optional[_builtins.bool]: + @pulumi.getter(name="exactMatch") + def exact_match(self) -> _builtins.str: """ - Flag to enable/disable auto-updates of the Kubernetes version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). + Exact match for the header value. """ - return pulumi.get(self, "enable_kubernetes_version_updates") + return pulumi.get(self, "exact_match") @_builtins.property - @pulumi.getter(name="enableMachineImageVersionUpdates") - def enable_machine_image_version_updates(self) -> Optional[_builtins.bool]: + @pulumi.getter + def name(self) -> _builtins.str: """ - Flag to enable/disable auto-updates of the OS image version. Defaults to `true`. 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). + Header name. """ - return pulumi.get(self, "enable_machine_image_version_updates") + return pulumi.get(self, "name") @pulumi.output_type -class SkeClusterNetwork(dict): +class GetApplicationLoadBalancerListenerHttpHostRulePathResult(dict): def __init__(__self__, *, - id: Optional[_builtins.str] = None): + exact_match: _builtins.str, + prefix: _builtins.str): """ - :param _builtins.str id: ID of the STACKIT Network Area (SNA) network into which the cluster will be deployed. + :param _builtins.str exact_match: 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'. + :param _builtins.str prefix: Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. """ - if id is not None: - pulumi.set(__self__, "id", id) + pulumi.set(__self__, "exact_match", exact_match) + pulumi.set(__self__, "prefix", prefix) @_builtins.property - @pulumi.getter - def id(self) -> Optional[_builtins.str]: + @pulumi.getter(name="exactMatch") + def exact_match(self) -> _builtins.str: """ - ID of the STACKIT Network Area (SNA) network into which the cluster will be deployed. + 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'. """ - return pulumi.get(self, "id") - - -@pulumi.output_type -class SkeClusterNodePool(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "availabilityZones": - suggest = "availability_zones" - elif key == "machineType": - suggest = "machine_type" - elif key == "allowSystemComponents": - suggest = "allow_system_components" - elif key == "maxSurge": - suggest = "max_surge" - elif key == "maxUnavailable": - suggest = "max_unavailable" - elif key == "osName": - suggest = "os_name" - elif key == "osVersion": - suggest = "os_version" - elif key == "osVersionMin": - suggest = "os_version_min" - elif key == "osVersionUsed": - suggest = "os_version_used" - elif key == "volumeSize": - suggest = "volume_size" - elif key == "volumeType": - suggest = "volume_type" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in SkeClusterNodePool. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - SkeClusterNodePool.__key_warning(key) - return super().__getitem__(key) + return pulumi.get(self, "exact_match") - def get(self, key: str, default = None) -> Any: - SkeClusterNodePool.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - availability_zones: Sequence[_builtins.str], - machine_type: _builtins.str, - maximum: _builtins.int, - minimum: _builtins.int, - name: _builtins.str, - allow_system_components: Optional[_builtins.bool] = None, - cri: Optional[_builtins.str] = None, - labels: Optional[Mapping[str, _builtins.str]] = None, - max_surge: Optional[_builtins.int] = None, - max_unavailable: Optional[_builtins.int] = None, - os_name: Optional[_builtins.str] = None, - os_version: Optional[_builtins.str] = None, - os_version_min: Optional[_builtins.str] = None, - os_version_used: Optional[_builtins.str] = None, - taints: Optional[Sequence['outputs.SkeClusterNodePoolTaint']] = None, - volume_size: Optional[_builtins.int] = None, - volume_type: Optional[_builtins.str] = None): + @_builtins.property + @pulumi.getter + def prefix(self) -> _builtins.str: """ - :param Sequence[_builtins.str] availability_zones: Specify a list of availability zones. E.g. `eu01-m` - :param _builtins.str machine_type: The machine type. - :param _builtins.int maximum: Maximum number of nodes in the pool. - :param _builtins.int minimum: Minimum number of nodes in the pool. - :param _builtins.str name: Specifies the name of the node pool. - :param _builtins.bool allow_system_components: Allow system components to run on this node pool. - :param _builtins.str cri: Specifies the container runtime. Defaults to `containerd` - :param Mapping[str, _builtins.str] labels: Labels to add to each node. - :param _builtins.int max_surge: 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 `max_surge` and `max_unavailable` fields cannot both be unset at the same time. - :param _builtins.int max_unavailable: 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 `max_surge` and `max_unavailable` fields cannot both be unset at the same time. - :param _builtins.str os_name: The name of the OS image. Defaults to `flatcar`. - :param _builtins.str os_version: This field is deprecated, use `os_version_min` to configure the version and `os_version_used` to get the currently used version instead. - :param _builtins.str os_version_min: 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 & 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 `os_version_used` field. - :param _builtins.str os_version_used: Full OS image version used. For example, if 3815.2 was set in `os_version_min`, 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). - :param Sequence['SkeClusterNodePoolTaintArgs'] taints: Specifies a taint list as defined below. - :param _builtins.int volume_size: The volume size in GB. Defaults to `20` - :param _builtins.str volume_type: Specifies the volume type. Defaults to `storage_premium_perf1`. + Prefix path match. Only matches on full segment boundaries, e.g. '/foo' matches '/foo' and '/foo/bar' but NOT '/foobar'. """ - pulumi.set(__self__, "availability_zones", availability_zones) - pulumi.set(__self__, "machine_type", machine_type) - pulumi.set(__self__, "maximum", maximum) - pulumi.set(__self__, "minimum", minimum) - pulumi.set(__self__, "name", name) - if allow_system_components is not None: - pulumi.set(__self__, "allow_system_components", allow_system_components) - if cri is not None: - pulumi.set(__self__, "cri", cri) - if labels is not None: - pulumi.set(__self__, "labels", labels) - if max_surge is not None: - pulumi.set(__self__, "max_surge", max_surge) - if max_unavailable is not None: - pulumi.set(__self__, "max_unavailable", max_unavailable) - if os_name is not None: - pulumi.set(__self__, "os_name", os_name) - if os_version is not None: - pulumi.set(__self__, "os_version", os_version) - if os_version_min is not None: - pulumi.set(__self__, "os_version_min", os_version_min) - if os_version_used is not None: - pulumi.set(__self__, "os_version_used", os_version_used) - if taints is not None: - pulumi.set(__self__, "taints", taints) - if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) - if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + return pulumi.get(self, "prefix") - @_builtins.property - @pulumi.getter(name="availabilityZones") - def availability_zones(self) -> Sequence[_builtins.str]: + +@pulumi.output_type +class GetApplicationLoadBalancerListenerHttpHostRuleQueryParameterResult(dict): + def __init__(__self__, *, + exact_match: _builtins.str, + name: _builtins.str): """ - Specify a list of availability zones. E.g. `eu01-m` + :param _builtins.str exact_match: Exact match for the query parameters value. + :param _builtins.str name: Query parameter name. """ - return pulumi.get(self, "availability_zones") + pulumi.set(__self__, "exact_match", exact_match) + pulumi.set(__self__, "name", name) @_builtins.property - @pulumi.getter(name="machineType") - def machine_type(self) -> _builtins.str: + @pulumi.getter(name="exactMatch") + def exact_match(self) -> _builtins.str: """ - The machine type. + Exact match for the query parameters value. """ - return pulumi.get(self, "machine_type") + return pulumi.get(self, "exact_match") @_builtins.property @pulumi.getter - def maximum(self) -> _builtins.int: + def name(self) -> _builtins.str: """ - Maximum number of nodes in the pool. + Query parameter name. """ - return pulumi.get(self, "maximum") + return pulumi.get(self, "name") + + +@pulumi.output_type +class GetApplicationLoadBalancerListenerHttpsResult(dict): + def __init__(__self__, *, + certificate_config: 'outputs.GetApplicationLoadBalancerListenerHttpsCertificateConfigResult'): + """ + :param 'GetApplicationLoadBalancerListenerHttpsCertificateConfigArgs' certificate_config: TLS termination certificate configuration. + """ + pulumi.set(__self__, "certificate_config", certificate_config) + + @_builtins.property + @pulumi.getter(name="certificateConfig") + def certificate_config(self) -> 'outputs.GetApplicationLoadBalancerListenerHttpsCertificateConfigResult': + """ + TLS termination certificate configuration. + """ + return pulumi.get(self, "certificate_config") + + +@pulumi.output_type +class GetApplicationLoadBalancerListenerHttpsCertificateConfigResult(dict): + def __init__(__self__, *, + certificate_ids: Sequence[_builtins.str]): + """ + :param Sequence[_builtins.str] certificate_ids: Certificate IDs for TLS termination. + """ + pulumi.set(__self__, "certificate_ids", certificate_ids) + + @_builtins.property + @pulumi.getter(name="certificateIds") + def certificate_ids(self) -> Sequence[_builtins.str]: + """ + Certificate IDs for TLS termination. + """ + return pulumi.get(self, "certificate_ids") + + +@pulumi.output_type +class GetApplicationLoadBalancerLoadBalancerSecurityGroupResult(dict): + def __init__(__self__, *, + id: _builtins.str, + name: _builtins.str): + """ + :param _builtins.str id: ID of the security Group + :param _builtins.str name: Name of the security Group + """ + pulumi.set(__self__, "id", id) + pulumi.set(__self__, "name", name) @_builtins.property @pulumi.getter - def minimum(self) -> _builtins.int: + def id(self) -> _builtins.str: """ - Minimum number of nodes in the pool. + ID of the security Group """ - return pulumi.get(self, "minimum") + return pulumi.get(self, "id") @_builtins.property @pulumi.getter def name(self) -> _builtins.str: """ - Specifies the name of the node pool. + Name of the security Group """ return pulumi.get(self, "name") - @_builtins.property - @pulumi.getter(name="allowSystemComponents") - def allow_system_components(self) -> Optional[_builtins.bool]: + +@pulumi.output_type +class GetApplicationLoadBalancerNetworkResult(dict): + def __init__(__self__, *, + network_id: _builtins.str, + role: _builtins.str): """ - Allow system components to run on this node pool. + :param _builtins.str network_id: STACKIT network ID the Application Load Balancer and/or targets are in. + :param _builtins.str role: 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`. """ - return pulumi.get(self, "allow_system_components") + pulumi.set(__self__, "network_id", network_id) + pulumi.set(__self__, "role", role) @_builtins.property - @pulumi.getter - def cri(self) -> Optional[_builtins.str]: + @pulumi.getter(name="networkId") + def network_id(self) -> _builtins.str: """ - Specifies the container runtime. Defaults to `containerd` + STACKIT network ID the Application Load Balancer and/or targets are in. """ - return pulumi.get(self, "cri") + return pulumi.get(self, "network_id") @_builtins.property @pulumi.getter - def labels(self) -> Optional[Mapping[str, _builtins.str]]: + def role(self) -> _builtins.str: """ - Labels to add to each node. + 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`. """ - return pulumi.get(self, "labels") + return pulumi.get(self, "role") + + +@pulumi.output_type +class GetApplicationLoadBalancerOptionsResult(dict): + def __init__(__self__, *, + access_control: 'outputs.GetApplicationLoadBalancerOptionsAccessControlResult', + ephemeral_address: _builtins.bool, + observability: 'outputs.GetApplicationLoadBalancerOptionsObservabilityResult', + private_network_only: _builtins.bool): + """ + :param 'GetApplicationLoadBalancerOptionsAccessControlArgs' access_control: Use this option to limit the IP ranges that can use the Application Load Balancer. + :param _builtins.bool ephemeral_address: 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. + :param 'GetApplicationLoadBalancerOptionsObservabilityArgs' observability: We offer Load Balancer observability via STACKIT Observability or external solutions. + :param _builtins.bool private_network_only: Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. + """ + pulumi.set(__self__, "access_control", access_control) + pulumi.set(__self__, "ephemeral_address", ephemeral_address) + pulumi.set(__self__, "observability", observability) + pulumi.set(__self__, "private_network_only", private_network_only) @_builtins.property - @pulumi.getter(name="maxSurge") - def max_surge(self) -> Optional[_builtins.int]: + @pulumi.getter(name="accessControl") + def access_control(self) -> 'outputs.GetApplicationLoadBalancerOptionsAccessControlResult': """ - 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 `max_surge` and `max_unavailable` fields cannot both be unset at the same time. + Use this option to limit the IP ranges that can use the Application Load Balancer. """ - return pulumi.get(self, "max_surge") + return pulumi.get(self, "access_control") @_builtins.property - @pulumi.getter(name="maxUnavailable") - def max_unavailable(self) -> Optional[_builtins.int]: + @pulumi.getter(name="ephemeralAddress") + def ephemeral_address(self) -> _builtins.bool: """ - 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 `max_surge` and `max_unavailable` fields cannot both be unset at the same time. + 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. """ - return pulumi.get(self, "max_unavailable") + return pulumi.get(self, "ephemeral_address") @_builtins.property - @pulumi.getter(name="osName") - def os_name(self) -> Optional[_builtins.str]: + @pulumi.getter + def observability(self) -> 'outputs.GetApplicationLoadBalancerOptionsObservabilityResult': """ - The name of the OS image. Defaults to `flatcar`. + We offer Load Balancer observability via STACKIT Observability or external solutions. """ - return pulumi.get(self, "os_name") + return pulumi.get(self, "observability") @_builtins.property - @pulumi.getter(name="osVersion") - @_utilities.deprecated("""Use `os_version_min` to configure the version and `os_version_used` to get the currently used version instead. Setting a specific OS image version will cause errors during minor OS upgrades due to forced updates.""") - def os_version(self) -> Optional[_builtins.str]: + @pulumi.getter(name="privateNetworkOnly") + def private_network_only(self) -> _builtins.bool: """ - This field is deprecated, use `os_version_min` to configure the version and `os_version_used` to get the currently used version instead. + Application Load Balancer is accessible only via a private network ip address. Not changeable after creation. """ - return pulumi.get(self, "os_version") + return pulumi.get(self, "private_network_only") + + +@pulumi.output_type +class GetApplicationLoadBalancerOptionsAccessControlResult(dict): + def __init__(__self__, *, + allowed_source_ranges: Sequence[_builtins.str]): + """ + :param Sequence[_builtins.str] allowed_source_ranges: Application Load Balancer is accessible only from an IP address in this range. + """ + pulumi.set(__self__, "allowed_source_ranges", allowed_source_ranges) @_builtins.property - @pulumi.getter(name="osVersionMin") - def os_version_min(self) -> Optional[_builtins.str]: + @pulumi.getter(name="allowedSourceRanges") + def allowed_source_ranges(self) -> Sequence[_builtins.str]: """ - 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 & 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 `os_version_used` field. + Application Load Balancer is accessible only from an IP address in this range. """ - return pulumi.get(self, "os_version_min") + return pulumi.get(self, "allowed_source_ranges") + + +@pulumi.output_type +class GetApplicationLoadBalancerOptionsObservabilityResult(dict): + def __init__(__self__, *, + logs: 'outputs.GetApplicationLoadBalancerOptionsObservabilityLogsResult', + metrics: 'outputs.GetApplicationLoadBalancerOptionsObservabilityMetricsResult'): + """ + :param 'GetApplicationLoadBalancerOptionsObservabilityLogsArgs' logs: Observability logs configuration. + :param 'GetApplicationLoadBalancerOptionsObservabilityMetricsArgs' metrics: Observability metrics configuration. + """ + pulumi.set(__self__, "logs", logs) + pulumi.set(__self__, "metrics", metrics) @_builtins.property - @pulumi.getter(name="osVersionUsed") - def os_version_used(self) -> Optional[_builtins.str]: + @pulumi.getter + def logs(self) -> 'outputs.GetApplicationLoadBalancerOptionsObservabilityLogsResult': """ - Full OS image version used. For example, if 3815.2 was set in `os_version_min`, 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 & OS updates](https://docs.stackit.cloud/products/runtime/kubernetes-engine/basics/version-updates/). + Observability logs configuration. """ - return pulumi.get(self, "os_version_used") + return pulumi.get(self, "logs") @_builtins.property @pulumi.getter - def taints(self) -> Optional[Sequence['outputs.SkeClusterNodePoolTaint']]: + def metrics(self) -> 'outputs.GetApplicationLoadBalancerOptionsObservabilityMetricsResult': """ - Specifies a taint list as defined below. + Observability metrics configuration. """ - return pulumi.get(self, "taints") + return pulumi.get(self, "metrics") + + +@pulumi.output_type +class GetApplicationLoadBalancerOptionsObservabilityLogsResult(dict): + def __init__(__self__, *, + credentials_ref: _builtins.str, + push_url: _builtins.str): + """ + :param _builtins.str credentials_ref: 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. + :param _builtins.str push_url: 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. + """ + pulumi.set(__self__, "credentials_ref", credentials_ref) + pulumi.set(__self__, "push_url", push_url) @_builtins.property - @pulumi.getter(name="volumeSize") - def volume_size(self) -> Optional[_builtins.int]: + @pulumi.getter(name="credentialsRef") + def credentials_ref(self) -> _builtins.str: """ - The volume size in GB. Defaults to `20` + 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. """ - return pulumi.get(self, "volume_size") + return pulumi.get(self, "credentials_ref") @_builtins.property - @pulumi.getter(name="volumeType") - def volume_type(self) -> Optional[_builtins.str]: + @pulumi.getter(name="pushUrl") + def push_url(self) -> _builtins.str: """ - Specifies the volume type. Defaults to `storage_premium_perf1`. + 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. """ - return pulumi.get(self, "volume_type") + return pulumi.get(self, "push_url") @pulumi.output_type -class SkeClusterNodePoolTaint(dict): +class GetApplicationLoadBalancerOptionsObservabilityMetricsResult(dict): def __init__(__self__, *, - effect: _builtins.str, - key: _builtins.str, - value: Optional[_builtins.str] = None): + credentials_ref: _builtins.str, + push_url: _builtins.str): """ - :param _builtins.str effect: The taint effect. E.g `PreferNoSchedule`. - :param _builtins.str key: Taint key to be applied to a node. - :param _builtins.str value: Taint value corresponding to the taint key. + :param _builtins.str credentials_ref: 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. + :param _builtins.str push_url: 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. """ - pulumi.set(__self__, "effect", effect) - pulumi.set(__self__, "key", key) - if value is not None: - pulumi.set(__self__, "value", value) + pulumi.set(__self__, "credentials_ref", credentials_ref) + pulumi.set(__self__, "push_url", push_url) @_builtins.property - @pulumi.getter - def effect(self) -> _builtins.str: + @pulumi.getter(name="credentialsRef") + def credentials_ref(self) -> _builtins.str: """ - The taint effect. E.g `PreferNoSchedule`. + 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. """ - return pulumi.get(self, "effect") + return pulumi.get(self, "credentials_ref") + + @_builtins.property + @pulumi.getter(name="pushUrl") + def push_url(self) -> _builtins.str: + """ + 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. + """ + return pulumi.get(self, "push_url") + + +@pulumi.output_type +class GetApplicationLoadBalancerTargetPoolResult(dict): + def __init__(__self__, *, + active_health_check: 'outputs.GetApplicationLoadBalancerTargetPoolActiveHealthCheckResult', + name: _builtins.str, + target_port: _builtins.int, + targets: Sequence['outputs.GetApplicationLoadBalancerTargetPoolTargetResult'], + tls_config: 'outputs.GetApplicationLoadBalancerTargetPoolTlsConfigResult'): + """ + :param _builtins.str name: Target pool name. + :param _builtins.int target_port: The number identifying the port where each target listens for traffic. + :param Sequence['GetApplicationLoadBalancerTargetPoolTargetArgs'] targets: List of all targets which will be used in the pool. Limited to 250. + :param 'GetApplicationLoadBalancerTargetPoolTlsConfigArgs' tls_config: Configuration for TLS bridging. + """ + pulumi.set(__self__, "active_health_check", active_health_check) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "target_port", target_port) + pulumi.set(__self__, "targets", targets) + pulumi.set(__self__, "tls_config", tls_config) + + @_builtins.property + @pulumi.getter(name="activeHealthCheck") + def active_health_check(self) -> 'outputs.GetApplicationLoadBalancerTargetPoolActiveHealthCheckResult': + return pulumi.get(self, "active_health_check") @_builtins.property @pulumi.getter - def key(self) -> _builtins.str: + def name(self) -> _builtins.str: """ - Taint key to be applied to a node. + Target pool name. """ - return pulumi.get(self, "key") + return pulumi.get(self, "name") + + @_builtins.property + @pulumi.getter(name="targetPort") + def target_port(self) -> _builtins.int: + """ + The number identifying the port where each target listens for traffic. + """ + return pulumi.get(self, "target_port") @_builtins.property @pulumi.getter - def value(self) -> Optional[_builtins.str]: + def targets(self) -> Sequence['outputs.GetApplicationLoadBalancerTargetPoolTargetResult']: """ - Taint value corresponding to the taint key. + List of all targets which will be used in the pool. Limited to 250. """ - return pulumi.get(self, "value") + return pulumi.get(self, "targets") + + @_builtins.property + @pulumi.getter(name="tlsConfig") + def tls_config(self) -> 'outputs.GetApplicationLoadBalancerTargetPoolTlsConfigResult': + """ + Configuration for TLS bridging. + """ + return pulumi.get(self, "tls_config") @pulumi.output_type -class SqlserverflexInstanceFlavor(dict): +class GetApplicationLoadBalancerTargetPoolActiveHealthCheckResult(dict): def __init__(__self__, *, - cpu: _builtins.int, - ram: _builtins.int, - description: Optional[_builtins.str] = None, - id: Optional[_builtins.str] = None): - pulumi.set(__self__, "cpu", cpu) - pulumi.set(__self__, "ram", ram) - if description is not None: - pulumi.set(__self__, "description", description) - if id is not None: - pulumi.set(__self__, "id", id) + healthy_threshold: _builtins.int, + http_health_checks: 'outputs.GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksResult', + interval: _builtins.str, + interval_jitter: _builtins.str, + timeout: _builtins.str, + unhealthy_threshold: _builtins.int): + """ + :param _builtins.int healthy_threshold: Healthy threshold of the health checking. + :param 'GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksArgs' http_health_checks: Options for the HTTP health checking. + :param _builtins.str interval: Interval duration of health checking in seconds. + :param _builtins.str interval_jitter: Interval duration threshold of the health checking in seconds. + :param _builtins.str timeout: Active health checking timeout duration in seconds. + :param _builtins.int unhealthy_threshold: Unhealthy threshold of the health checking. + """ + pulumi.set(__self__, "healthy_threshold", healthy_threshold) + pulumi.set(__self__, "http_health_checks", http_health_checks) + pulumi.set(__self__, "interval", interval) + pulumi.set(__self__, "interval_jitter", interval_jitter) + pulumi.set(__self__, "timeout", timeout) + pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) @_builtins.property - @pulumi.getter - def cpu(self) -> _builtins.int: - return pulumi.get(self, "cpu") + @pulumi.getter(name="healthyThreshold") + def healthy_threshold(self) -> _builtins.int: + """ + Healthy threshold of the health checking. + """ + return pulumi.get(self, "healthy_threshold") @_builtins.property - @pulumi.getter - def ram(self) -> _builtins.int: - return pulumi.get(self, "ram") + @pulumi.getter(name="httpHealthChecks") + def http_health_checks(self) -> 'outputs.GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksResult': + """ + Options for the HTTP health checking. + """ + return pulumi.get(self, "http_health_checks") @_builtins.property @pulumi.getter - def description(self) -> Optional[_builtins.str]: - return pulumi.get(self, "description") + def interval(self) -> _builtins.str: + """ + Interval duration of health checking in seconds. + """ + return pulumi.get(self, "interval") @_builtins.property - @pulumi.getter - def id(self) -> Optional[_builtins.str]: - return pulumi.get(self, "id") - - -@pulumi.output_type -class SqlserverflexInstanceOptions(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "retentionDays": - suggest = "retention_days" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in SqlserverflexInstanceOptions. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - SqlserverflexInstanceOptions.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - SqlserverflexInstanceOptions.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - edition: Optional[_builtins.str] = None, - retention_days: Optional[_builtins.int] = None): - if edition is not None: - pulumi.set(__self__, "edition", edition) - if retention_days is not None: - pulumi.set(__self__, "retention_days", retention_days) + @pulumi.getter(name="intervalJitter") + def interval_jitter(self) -> _builtins.str: + """ + Interval duration threshold of the health checking in seconds. + """ + return pulumi.get(self, "interval_jitter") @_builtins.property @pulumi.getter - def edition(self) -> Optional[_builtins.str]: - return pulumi.get(self, "edition") + def timeout(self) -> _builtins.str: + """ + Active health checking timeout duration in seconds. + """ + return pulumi.get(self, "timeout") @_builtins.property - @pulumi.getter(name="retentionDays") - def retention_days(self) -> Optional[_builtins.int]: - return pulumi.get(self, "retention_days") + @pulumi.getter(name="unhealthyThreshold") + def unhealthy_threshold(self) -> _builtins.int: + """ + Unhealthy threshold of the health checking. + """ + return pulumi.get(self, "unhealthy_threshold") @pulumi.output_type -class SqlserverflexInstanceStorage(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "class": - suggest = "class_" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in SqlserverflexInstanceStorage. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - SqlserverflexInstanceStorage.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - SqlserverflexInstanceStorage.__key_warning(key) - return super().get(key, default) - +class GetApplicationLoadBalancerTargetPoolActiveHealthCheckHttpHealthChecksResult(dict): def __init__(__self__, *, - class_: Optional[_builtins.str] = None, - size: Optional[_builtins.int] = None): - if class_ is not None: - pulumi.set(__self__, "class_", class_) - if size is not None: - pulumi.set(__self__, "size", size) + ok_statuses: Sequence[_builtins.str], + path: _builtins.str): + """ + :param Sequence[_builtins.str] ok_statuses: List of HTTP status codes that indicate a healthy response. + :param _builtins.str path: Path to send the health check request to. + """ + pulumi.set(__self__, "ok_statuses", ok_statuses) + pulumi.set(__self__, "path", path) @_builtins.property - @pulumi.getter(name="class") - def class_(self) -> Optional[_builtins.str]: - return pulumi.get(self, "class_") + @pulumi.getter(name="okStatuses") + def ok_statuses(self) -> Sequence[_builtins.str]: + """ + List of HTTP status codes that indicate a healthy response. + """ + return pulumi.get(self, "ok_statuses") @_builtins.property @pulumi.getter - def size(self) -> Optional[_builtins.int]: - return pulumi.get(self, "size") + def path(self) -> _builtins.str: + """ + Path to send the health check request to. + """ + return pulumi.get(self, "path") @pulumi.output_type -class VolumeEncryptionParameters(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "kekKeyId": - suggest = "kek_key_id" - elif key == "kekKeyVersion": - suggest = "kek_key_version" - elif key == "kekKeyringId": - suggest = "kek_keyring_id" - elif key == "serviceAccount": - suggest = "service_account" - elif key == "keyPayloadBase64": - suggest = "key_payload_base64" - elif key == "keyPayloadBase64Wo": - suggest = "key_payload_base64_wo" - elif key == "keyPayloadBase64WoVersion": - suggest = "key_payload_base64_wo_version" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in VolumeEncryptionParameters. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - VolumeEncryptionParameters.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - VolumeEncryptionParameters.__key_warning(key) - return super().get(key, default) - +class GetApplicationLoadBalancerTargetPoolTargetResult(dict): def __init__(__self__, *, - kek_key_id: _builtins.str, - kek_key_version: _builtins.int, - kek_keyring_id: _builtins.str, - service_account: _builtins.str, - key_payload_base64: Optional[_builtins.str] = None, - key_payload_base64_wo: Optional[_builtins.str] = None, - key_payload_base64_wo_version: Optional[_builtins.int] = None): + display_name: _builtins.str, + ip: _builtins.str): """ - :param _builtins.str kek_key_id: UUID of the key within the STACKIT-KMS to use for the encryption. - :param _builtins.int kek_key_version: Version of the key within the STACKIT-KMS to use for the encryption. - :param _builtins.str kek_keyring_id: UUID of the keyring where the key is located within the STACKTI-KMS. - :param _builtins.str service_account: Service-Account linked to the Key within the STACKIT-KMS. - :param _builtins.str key_payload_base64: 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. - :param _builtins.str key_payload_base64_wo: **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. - 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. - :param _builtins.int key_payload_base64_wo_version: Used together with `key_payload_base64_wo` to trigger an re-create. Increment this value when an update to `key_payload_base64_wo` is required. + :param _builtins.str display_name: Target display name + :param _builtins.str ip: Private target IP, which must by unique within a target pool. """ - pulumi.set(__self__, "kek_key_id", kek_key_id) - pulumi.set(__self__, "kek_key_version", kek_key_version) - pulumi.set(__self__, "kek_keyring_id", kek_keyring_id) - pulumi.set(__self__, "service_account", service_account) - if key_payload_base64 is not None: - pulumi.set(__self__, "key_payload_base64", key_payload_base64) - if key_payload_base64_wo is not None: - pulumi.set(__self__, "key_payload_base64_wo", key_payload_base64_wo) - if key_payload_base64_wo_version is not None: - pulumi.set(__self__, "key_payload_base64_wo_version", key_payload_base64_wo_version) + pulumi.set(__self__, "display_name", display_name) + pulumi.set(__self__, "ip", ip) @_builtins.property - @pulumi.getter(name="kekKeyId") - def kek_key_id(self) -> _builtins.str: + @pulumi.getter(name="displayName") + def display_name(self) -> _builtins.str: """ - UUID of the key within the STACKIT-KMS to use for the encryption. + Target display name """ - return pulumi.get(self, "kek_key_id") + return pulumi.get(self, "display_name") @_builtins.property - @pulumi.getter(name="kekKeyVersion") - def kek_key_version(self) -> _builtins.int: + @pulumi.getter + def ip(self) -> _builtins.str: """ - Version of the key within the STACKIT-KMS to use for the encryption. + Private target IP, which must by unique within a target pool. """ - return pulumi.get(self, "kek_key_version") + return pulumi.get(self, "ip") - @_builtins.property - @pulumi.getter(name="kekKeyringId") - def kek_keyring_id(self) -> _builtins.str: - """ - UUID of the keyring where the key is located within the STACKTI-KMS. - """ - return pulumi.get(self, "kek_keyring_id") - @_builtins.property - @pulumi.getter(name="serviceAccount") - def service_account(self) -> _builtins.str: +@pulumi.output_type +class GetApplicationLoadBalancerTargetPoolTlsConfigResult(dict): + def __init__(__self__, *, + custom_ca: _builtins.str, + enabled: _builtins.bool, + skip_certificate_validation: _builtins.bool): """ - Service-Account linked to the Key within the STACKIT-KMS. + :param _builtins.str custom_ca: 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. + :param _builtins.bool enabled: 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. + :param _builtins.bool skip_certificate_validation: 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! """ - return pulumi.get(self, "service_account") + pulumi.set(__self__, "custom_ca", custom_ca) + pulumi.set(__self__, "enabled", enabled) + pulumi.set(__self__, "skip_certificate_validation", skip_certificate_validation) @_builtins.property - @pulumi.getter(name="keyPayloadBase64") - def key_payload_base64(self) -> Optional[_builtins.str]: + @pulumi.getter(name="customCa") + def custom_ca(self) -> _builtins.str: """ - 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. + 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. """ - return pulumi.get(self, "key_payload_base64") + return pulumi.get(self, "custom_ca") @_builtins.property - @pulumi.getter(name="keyPayloadBase64Wo") - def key_payload_base64_wo(self) -> Optional[_builtins.str]: + @pulumi.getter + def enabled(self) -> _builtins.bool: """ - **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. - 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. + 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. """ - return pulumi.get(self, "key_payload_base64_wo") + return pulumi.get(self, "enabled") @_builtins.property - @pulumi.getter(name="keyPayloadBase64WoVersion") - def key_payload_base64_wo_version(self) -> Optional[_builtins.int]: + @pulumi.getter(name="skipCertificateValidation") + def skip_certificate_validation(self) -> _builtins.bool: """ - Used together with `key_payload_base64_wo` to trigger an re-create. Increment this value when an update to `key_payload_base64_wo` is required. + 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! """ - return pulumi.get(self, "key_payload_base64_wo_version") + return pulumi.get(self, "skip_certificate_validation") @pulumi.output_type -class VolumeSource(dict): +class GetApplicationLoadBalancerTargetSecurityGroupResult(dict): def __init__(__self__, *, id: _builtins.str, - type: _builtins.str): + name: _builtins.str): """ - :param _builtins.str id: The ID of the source, e.g. image ID - :param _builtins.str type: The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. + :param _builtins.str id: ID of the security Group + :param _builtins.str name: Name of the security Group """ pulumi.set(__self__, "id", id) - pulumi.set(__self__, "type", type) + pulumi.set(__self__, "name", name) @_builtins.property @pulumi.getter def id(self) -> _builtins.str: """ - The ID of the source, e.g. image ID + ID of the security Group """ return pulumi.get(self, "id") @_builtins.property @pulumi.getter - def type(self) -> _builtins.str: + def name(self) -> _builtins.str: """ - The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. + Name of the security Group """ - return pulumi.get(self, "type") + return pulumi.get(self, "name") @pulumi.output_type @@ -9299,6 +11385,46 @@ def update_schedule_id(self) -> _builtins.int: return pulumi.get(self, "update_schedule_id") +@pulumi.output_type +class GetServiceAccountsItemResult(dict): + def __init__(__self__, *, + email: _builtins.str, + name: _builtins.str, + service_account_id: _builtins.str): + """ + :param _builtins.str email: Email of the service account. + :param _builtins.str name: Name of the service account. + :param _builtins.str service_account_id: The internal UUID of the service account. + """ + pulumi.set(__self__, "email", email) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "service_account_id", service_account_id) + + @_builtins.property + @pulumi.getter + def email(self) -> _builtins.str: + """ + Email of the service account. + """ + return pulumi.get(self, "email") + + @_builtins.property + @pulumi.getter + def name(self) -> _builtins.str: + """ + Name of the service account. + """ + return pulumi.get(self, "name") + + @_builtins.property + @pulumi.getter(name="serviceAccountId") + def service_account_id(self) -> _builtins.str: + """ + The internal UUID of the service account. + """ + return pulumi.get(self, "service_account_id") + + @pulumi.output_type class GetSfsExportPolicyRuleResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_stackit/provider.py b/sdk/python/pulumi_stackit/provider.py index 88eccb8..f1861f4 100644 --- a/sdk/python/pulumi_stackit/provider.py +++ b/sdk/python/pulumi_stackit/provider.py @@ -19,6 +19,7 @@ @pulumi.input_type class ProviderArgs: def __init__(__self__, *, + alb_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, authorization_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, cdn_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, credentials_path: Optional[pulumi.Input[_builtins.str]] = None, @@ -68,6 +69,7 @@ def __init__(__self__, *, """ The set of arguments for constructing a Provider resource. + :param pulumi.Input[_builtins.str] alb_custom_endpoint: Custom endpoint for the Application Load Balancer service :param pulumi.Input[_builtins.str] authorization_custom_endpoint: Custom endpoint for the Membership service :param pulumi.Input[_builtins.str] cdn_custom_endpoint: Custom endpoint for the CDN service :param pulumi.Input[_builtins.str] credentials_path: Path of JSON from where the credentials are read. Takes precedence over the env var `STACKIT_CREDENTIALS_PATH`. Default value is `~/.stackit/credentials.json`. @@ -115,6 +117,8 @@ def __init__(__self__, *, :param pulumi.Input[_builtins.str] token_custom_endpoint: Custom endpoint for the token API, which is used to request access tokens when using the key flow :param pulumi.Input[_builtins.bool] use_oidc: Enables OIDC for Authentication. This can also be sourced from the `STACKIT_USE_OIDC` Environment Variable. Defaults to `false`. """ + if alb_custom_endpoint is not None: + pulumi.set(__self__, "alb_custom_endpoint", alb_custom_endpoint) if authorization_custom_endpoint is not None: pulumi.set(__self__, "authorization_custom_endpoint", authorization_custom_endpoint) if cdn_custom_endpoint is not None: @@ -214,6 +218,18 @@ def __init__(__self__, *, if use_oidc is not None: pulumi.set(__self__, "use_oidc", use_oidc) + @_builtins.property + @pulumi.getter(name="albCustomEndpoint") + def alb_custom_endpoint(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Custom endpoint for the Application Load Balancer service + """ + return pulumi.get(self, "alb_custom_endpoint") + + @alb_custom_endpoint.setter + def alb_custom_endpoint(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "alb_custom_endpoint", value) + @_builtins.property @pulumi.getter(name="authorizationCustomEndpoint") def authorization_custom_endpoint(self) -> Optional[pulumi.Input[_builtins.str]]: @@ -775,6 +791,7 @@ class Provider(pulumi.ProviderResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + alb_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, authorization_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, cdn_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, credentials_path: Optional[pulumi.Input[_builtins.str]] = None, @@ -831,6 +848,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] alb_custom_endpoint: Custom endpoint for the Application Load Balancer service :param pulumi.Input[_builtins.str] authorization_custom_endpoint: Custom endpoint for the Membership service :param pulumi.Input[_builtins.str] cdn_custom_endpoint: Custom endpoint for the CDN service :param pulumi.Input[_builtins.str] credentials_path: Path of JSON from where the credentials are read. Takes precedence over the env var `STACKIT_CREDENTIALS_PATH`. Default value is `~/.stackit/credentials.json`. @@ -906,6 +924,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + alb_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, authorization_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, cdn_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, credentials_path: Optional[pulumi.Input[_builtins.str]] = None, @@ -961,6 +980,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ProviderArgs.__new__(ProviderArgs) + __props__.__dict__["alb_custom_endpoint"] = alb_custom_endpoint __props__.__dict__["authorization_custom_endpoint"] = authorization_custom_endpoint __props__.__dict__["cdn_custom_endpoint"] = cdn_custom_endpoint __props__.__dict__["credentials_path"] = credentials_path @@ -1013,6 +1033,14 @@ def _internal_init(__self__, __props__, opts) + @_builtins.property + @pulumi.getter(name="albCustomEndpoint") + def alb_custom_endpoint(self) -> pulumi.Output[Optional[_builtins.str]]: + """ + Custom endpoint for the Application Load Balancer service + """ + return pulumi.get(self, "alb_custom_endpoint") + @_builtins.property @pulumi.getter(name="authorizationCustomEndpoint") def authorization_custom_endpoint(self) -> pulumi.Output[Optional[_builtins.str]]: diff --git a/sdk/python/pulumi_stackit/server_backup_schedule.py b/sdk/python/pulumi_stackit/server_backup_schedule.py index e161096..df2ab9f 100644 --- a/sdk/python/pulumi_stackit/server_backup_schedule.py +++ b/sdk/python/pulumi_stackit/server_backup_schedule.py @@ -288,8 +288,6 @@ def __init__(__self__, """ Server backup schedule resource schema. Must have a `region` specified in the provider configuration. - > 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. - ## Example Usage @@ -312,8 +310,6 @@ def __init__(__self__, """ Server backup schedule resource schema. Must have a `region` specified in the provider configuration. - > 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. - ## Example Usage diff --git a/sdk/python/pulumi_stackit/server_update_schedule.py b/sdk/python/pulumi_stackit/server_update_schedule.py index 0375261..fb7d925 100644 --- a/sdk/python/pulumi_stackit/server_update_schedule.py +++ b/sdk/python/pulumi_stackit/server_update_schedule.py @@ -286,8 +286,6 @@ def __init__(__self__, """ Server update schedule resource schema. Must have a `region` specified in the provider configuration. - > 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. - ## Example Usage @@ -310,8 +308,6 @@ def __init__(__self__, """ Server update schedule resource schema. Must have a `region` specified in the provider configuration. - > 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. - ## Example Usage diff --git a/sdk/python/pulumi_stackit/service_account.py b/sdk/python/pulumi_stackit/service_account.py index a8b0254..6331626 100644 --- a/sdk/python/pulumi_stackit/service_account.py +++ b/sdk/python/pulumi_stackit/service_account.py @@ -61,13 +61,15 @@ class _ServiceAccountState: def __init__(__self__, *, email: Optional[pulumi.Input[_builtins.str]] = None, name: Optional[pulumi.Input[_builtins.str]] = None, - project_id: Optional[pulumi.Input[_builtins.str]] = None): + project_id: Optional[pulumi.Input[_builtins.str]] = None, + service_account_id: Optional[pulumi.Input[_builtins.str]] = None): """ Input properties used for looking up and filtering ServiceAccount resources. :param pulumi.Input[_builtins.str] email: Email of the service account. :param pulumi.Input[_builtins.str] name: Name of the service account. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the service account is associated. + :param pulumi.Input[_builtins.str] service_account_id: The internal UUID of the service account. """ if email is not None: pulumi.set(__self__, "email", email) @@ -75,6 +77,8 @@ def __init__(__self__, *, pulumi.set(__self__, "name", name) if project_id is not None: pulumi.set(__self__, "project_id", project_id) + if service_account_id is not None: + pulumi.set(__self__, "service_account_id", service_account_id) @_builtins.property @pulumi.getter @@ -112,6 +116,18 @@ def project_id(self) -> Optional[pulumi.Input[_builtins.str]]: def project_id(self, value: Optional[pulumi.Input[_builtins.str]]): pulumi.set(self, "project_id", value) + @_builtins.property + @pulumi.getter(name="serviceAccountId") + def service_account_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The internal UUID of the service account. + """ + return pulumi.get(self, "service_account_id") + + @service_account_id.setter + def service_account_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "service_account_id", value) + @pulumi.type_token("stackit:index/serviceAccount:ServiceAccount") class ServiceAccount(pulumi.CustomResource): @@ -176,6 +192,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'project_id'") __props__.__dict__["project_id"] = project_id __props__.__dict__["email"] = None + __props__.__dict__["service_account_id"] = None super(ServiceAccount, __self__).__init__( 'stackit:index/serviceAccount:ServiceAccount', resource_name, @@ -188,7 +205,8 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, email: Optional[pulumi.Input[_builtins.str]] = None, name: Optional[pulumi.Input[_builtins.str]] = None, - project_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'ServiceAccount': + project_id: Optional[pulumi.Input[_builtins.str]] = None, + service_account_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'ServiceAccount': """ Get an existing ServiceAccount resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -199,6 +217,7 @@ def get(resource_name: str, :param pulumi.Input[_builtins.str] email: Email of the service account. :param pulumi.Input[_builtins.str] name: Name of the service account. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the service account is associated. + :param pulumi.Input[_builtins.str] service_account_id: The internal UUID of the service account. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -207,6 +226,7 @@ def get(resource_name: str, __props__.__dict__["email"] = email __props__.__dict__["name"] = name __props__.__dict__["project_id"] = project_id + __props__.__dict__["service_account_id"] = service_account_id return ServiceAccount(resource_name, opts=opts, __props__=__props__) @_builtins.property @@ -233,3 +253,11 @@ def project_id(self) -> pulumi.Output[_builtins.str]: """ return pulumi.get(self, "project_id") + @_builtins.property + @pulumi.getter(name="serviceAccountId") + def service_account_id(self) -> pulumi.Output[_builtins.str]: + """ + The internal UUID of the service account. + """ + return pulumi.get(self, "service_account_id") + diff --git a/sdk/python/pulumi_stackit/service_account_access_token.py b/sdk/python/pulumi_stackit/service_account_access_token.py deleted file mode 100644 index e617386..0000000 --- a/sdk/python/pulumi_stackit/service_account_access_token.py +++ /dev/null @@ -1,452 +0,0 @@ -# coding=utf-8 -# *** WARNING: this file was generated by pulumi-language-python. *** -# *** Do not edit by hand unless you're certain you know what you are doing! *** - -import builtins as _builtins -import warnings -import sys -import pulumi -import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload -if sys.version_info >= (3, 11): - from typing import NotRequired, TypedDict, TypeAlias -else: - from typing_extensions import NotRequired, TypedDict, TypeAlias -from . import _utilities - -__all__ = ['ServiceAccountAccessTokenArgs', 'ServiceAccountAccessToken'] - -@pulumi.input_type -class ServiceAccountAccessTokenArgs: - def __init__(__self__, *, - project_id: pulumi.Input[_builtins.str], - service_account_email: pulumi.Input[_builtins.str], - rotate_when_changed: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None, - ttl_days: Optional[pulumi.Input[_builtins.int]] = None): - """ - The set of arguments for constructing a ServiceAccountAccessToken resource. - - :param pulumi.Input[_builtins.str] project_id: STACKIT project ID associated with the service account token. - :param pulumi.Input[_builtins.str] service_account_email: Email address linked to the service account. - :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] rotate_when_changed: 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. - :param pulumi.Input[_builtins.int] ttl_days: Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - """ - pulumi.set(__self__, "project_id", project_id) - pulumi.set(__self__, "service_account_email", service_account_email) - if rotate_when_changed is not None: - pulumi.set(__self__, "rotate_when_changed", rotate_when_changed) - if ttl_days is not None: - pulumi.set(__self__, "ttl_days", ttl_days) - - @_builtins.property - @pulumi.getter(name="projectId") - def project_id(self) -> pulumi.Input[_builtins.str]: - """ - STACKIT project ID associated with the service account token. - """ - return pulumi.get(self, "project_id") - - @project_id.setter - def project_id(self, value: pulumi.Input[_builtins.str]): - pulumi.set(self, "project_id", value) - - @_builtins.property - @pulumi.getter(name="serviceAccountEmail") - def service_account_email(self) -> pulumi.Input[_builtins.str]: - """ - Email address linked to the service account. - """ - return pulumi.get(self, "service_account_email") - - @service_account_email.setter - def service_account_email(self, value: pulumi.Input[_builtins.str]): - pulumi.set(self, "service_account_email", value) - - @_builtins.property - @pulumi.getter(name="rotateWhenChanged") - def rotate_when_changed(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]: - """ - 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. - """ - return pulumi.get(self, "rotate_when_changed") - - @rotate_when_changed.setter - def rotate_when_changed(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]): - pulumi.set(self, "rotate_when_changed", value) - - @_builtins.property - @pulumi.getter(name="ttlDays") - def ttl_days(self) -> Optional[pulumi.Input[_builtins.int]]: - """ - Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - """ - return pulumi.get(self, "ttl_days") - - @ttl_days.setter - def ttl_days(self, value: Optional[pulumi.Input[_builtins.int]]): - pulumi.set(self, "ttl_days", value) - - -@pulumi.input_type -class _ServiceAccountAccessTokenState: - def __init__(__self__, *, - access_token_id: Optional[pulumi.Input[_builtins.str]] = None, - active: Optional[pulumi.Input[_builtins.bool]] = None, - created_at: Optional[pulumi.Input[_builtins.str]] = None, - project_id: Optional[pulumi.Input[_builtins.str]] = None, - rotate_when_changed: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None, - service_account_email: Optional[pulumi.Input[_builtins.str]] = None, - token: Optional[pulumi.Input[_builtins.str]] = None, - ttl_days: Optional[pulumi.Input[_builtins.int]] = None, - valid_until: Optional[pulumi.Input[_builtins.str]] = None): - """ - Input properties used for looking up and filtering ServiceAccountAccessToken resources. - - :param pulumi.Input[_builtins.str] access_token_id: Identifier for the access token linked to the service account. - :param pulumi.Input[_builtins.bool] active: Indicate whether the token is currently active or inactive - :param pulumi.Input[_builtins.str] created_at: Timestamp indicating when the access token was created. - :param pulumi.Input[_builtins.str] project_id: STACKIT project ID associated with the service account token. - :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] rotate_when_changed: 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. - :param pulumi.Input[_builtins.str] service_account_email: Email address linked to the service account. - :param pulumi.Input[_builtins.str] token: JWT access token for API authentication. Prefixed by 'Bearer' and should be stored securely as it is irretrievable once lost. - :param pulumi.Input[_builtins.int] ttl_days: Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - :param pulumi.Input[_builtins.str] valid_until: Estimated expiration timestamp of the access token. For precise validity, check the JWT details. - """ - if access_token_id is not None: - pulumi.set(__self__, "access_token_id", access_token_id) - if active is not None: - pulumi.set(__self__, "active", active) - if created_at is not None: - pulumi.set(__self__, "created_at", created_at) - if project_id is not None: - pulumi.set(__self__, "project_id", project_id) - if rotate_when_changed is not None: - pulumi.set(__self__, "rotate_when_changed", rotate_when_changed) - if service_account_email is not None: - pulumi.set(__self__, "service_account_email", service_account_email) - if token is not None: - pulumi.set(__self__, "token", token) - if ttl_days is not None: - pulumi.set(__self__, "ttl_days", ttl_days) - if valid_until is not None: - pulumi.set(__self__, "valid_until", valid_until) - - @_builtins.property - @pulumi.getter(name="accessTokenId") - def access_token_id(self) -> Optional[pulumi.Input[_builtins.str]]: - """ - Identifier for the access token linked to the service account. - """ - return pulumi.get(self, "access_token_id") - - @access_token_id.setter - def access_token_id(self, value: Optional[pulumi.Input[_builtins.str]]): - pulumi.set(self, "access_token_id", value) - - @_builtins.property - @pulumi.getter - def active(self) -> Optional[pulumi.Input[_builtins.bool]]: - """ - Indicate whether the token is currently active or inactive - """ - return pulumi.get(self, "active") - - @active.setter - def active(self, value: Optional[pulumi.Input[_builtins.bool]]): - pulumi.set(self, "active", value) - - @_builtins.property - @pulumi.getter(name="createdAt") - def created_at(self) -> Optional[pulumi.Input[_builtins.str]]: - """ - Timestamp indicating when the access token was created. - """ - return pulumi.get(self, "created_at") - - @created_at.setter - def created_at(self, value: Optional[pulumi.Input[_builtins.str]]): - pulumi.set(self, "created_at", value) - - @_builtins.property - @pulumi.getter(name="projectId") - def project_id(self) -> Optional[pulumi.Input[_builtins.str]]: - """ - STACKIT project ID associated with the service account token. - """ - return pulumi.get(self, "project_id") - - @project_id.setter - def project_id(self, value: Optional[pulumi.Input[_builtins.str]]): - pulumi.set(self, "project_id", value) - - @_builtins.property - @pulumi.getter(name="rotateWhenChanged") - def rotate_when_changed(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]: - """ - 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. - """ - return pulumi.get(self, "rotate_when_changed") - - @rotate_when_changed.setter - def rotate_when_changed(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]): - pulumi.set(self, "rotate_when_changed", value) - - @_builtins.property - @pulumi.getter(name="serviceAccountEmail") - def service_account_email(self) -> Optional[pulumi.Input[_builtins.str]]: - """ - Email address linked to the service account. - """ - return pulumi.get(self, "service_account_email") - - @service_account_email.setter - def service_account_email(self, value: Optional[pulumi.Input[_builtins.str]]): - pulumi.set(self, "service_account_email", value) - - @_builtins.property - @pulumi.getter - def token(self) -> Optional[pulumi.Input[_builtins.str]]: - """ - JWT access token for API authentication. Prefixed by 'Bearer' and should be stored securely as it is irretrievable once lost. - """ - return pulumi.get(self, "token") - - @token.setter - def token(self, value: Optional[pulumi.Input[_builtins.str]]): - pulumi.set(self, "token", value) - - @_builtins.property - @pulumi.getter(name="ttlDays") - def ttl_days(self) -> Optional[pulumi.Input[_builtins.int]]: - """ - Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - """ - return pulumi.get(self, "ttl_days") - - @ttl_days.setter - def ttl_days(self, value: Optional[pulumi.Input[_builtins.int]]): - pulumi.set(self, "ttl_days", value) - - @_builtins.property - @pulumi.getter(name="validUntil") - def valid_until(self) -> Optional[pulumi.Input[_builtins.str]]: - """ - Estimated expiration timestamp of the access token. For precise validity, check the JWT details. - """ - return pulumi.get(self, "valid_until") - - @valid_until.setter - def valid_until(self, value: Optional[pulumi.Input[_builtins.str]]): - pulumi.set(self, "valid_until", value) - - -@pulumi.type_token("stackit:index/serviceAccountAccessToken:ServiceAccountAccessToken") -class ServiceAccountAccessToken(pulumi.CustomResource): - @overload - def __init__(__self__, - resource_name: str, - opts: Optional[pulumi.ResourceOptions] = None, - project_id: Optional[pulumi.Input[_builtins.str]] = None, - rotate_when_changed: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None, - service_account_email: Optional[pulumi.Input[_builtins.str]] = None, - ttl_days: Optional[pulumi.Input[_builtins.int]] = None, - __props__=None): - """ - Service account access token schema. - - !> 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. - - ## Example Usage - - ### Automatically rotate access tokens - - - :param str resource_name: The name of the resource. - :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[_builtins.str] project_id: STACKIT project ID associated with the service account token. - :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] rotate_when_changed: 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. - :param pulumi.Input[_builtins.str] service_account_email: Email address linked to the service account. - :param pulumi.Input[_builtins.int] ttl_days: Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - """ - ... - @overload - def __init__(__self__, - resource_name: str, - args: ServiceAccountAccessTokenArgs, - opts: Optional[pulumi.ResourceOptions] = None): - """ - Service account access token schema. - - !> 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. - - ## Example Usage - - ### Automatically rotate access tokens - - - :param str resource_name: The name of the resource. - :param ServiceAccountAccessTokenArgs args: The arguments to use to populate this resource's properties. - :param pulumi.ResourceOptions opts: Options for the resource. - """ - ... - def __init__(__self__, resource_name: str, *args, **kwargs): - resource_args, opts = _utilities.get_resource_args_opts(ServiceAccountAccessTokenArgs, pulumi.ResourceOptions, *args, **kwargs) - if resource_args is not None: - __self__._internal_init(resource_name, opts, **resource_args.__dict__) - else: - __self__._internal_init(resource_name, *args, **kwargs) - - def _internal_init(__self__, - resource_name: str, - opts: Optional[pulumi.ResourceOptions] = None, - project_id: Optional[pulumi.Input[_builtins.str]] = None, - rotate_when_changed: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None, - service_account_email: Optional[pulumi.Input[_builtins.str]] = None, - ttl_days: Optional[pulumi.Input[_builtins.int]] = None, - __props__=None): - opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) - if not isinstance(opts, pulumi.ResourceOptions): - raise TypeError('Expected resource options to be a ResourceOptions instance') - if opts.id is None: - if __props__ is not None: - raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') - __props__ = ServiceAccountAccessTokenArgs.__new__(ServiceAccountAccessTokenArgs) - - if project_id is None and not opts.urn: - raise TypeError("Missing required property 'project_id'") - __props__.__dict__["project_id"] = project_id - __props__.__dict__["rotate_when_changed"] = rotate_when_changed - if service_account_email is None and not opts.urn: - raise TypeError("Missing required property 'service_account_email'") - __props__.__dict__["service_account_email"] = service_account_email - __props__.__dict__["ttl_days"] = ttl_days - __props__.__dict__["access_token_id"] = None - __props__.__dict__["active"] = None - __props__.__dict__["created_at"] = None - __props__.__dict__["token"] = None - __props__.__dict__["valid_until"] = None - secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["token"]) - opts = pulumi.ResourceOptions.merge(opts, secret_opts) - super(ServiceAccountAccessToken, __self__).__init__( - 'stackit:index/serviceAccountAccessToken:ServiceAccountAccessToken', - resource_name, - __props__, - opts) - - @staticmethod - def get(resource_name: str, - id: pulumi.Input[str], - opts: Optional[pulumi.ResourceOptions] = None, - access_token_id: Optional[pulumi.Input[_builtins.str]] = None, - active: Optional[pulumi.Input[_builtins.bool]] = None, - created_at: Optional[pulumi.Input[_builtins.str]] = None, - project_id: Optional[pulumi.Input[_builtins.str]] = None, - rotate_when_changed: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None, - service_account_email: Optional[pulumi.Input[_builtins.str]] = None, - token: Optional[pulumi.Input[_builtins.str]] = None, - ttl_days: Optional[pulumi.Input[_builtins.int]] = None, - valid_until: Optional[pulumi.Input[_builtins.str]] = None) -> 'ServiceAccountAccessToken': - """ - Get an existing ServiceAccountAccessToken resource's state with the given name, id, and optional extra - properties used to qualify the lookup. - - :param str resource_name: The unique name of the resulting resource. - :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. - :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[_builtins.str] access_token_id: Identifier for the access token linked to the service account. - :param pulumi.Input[_builtins.bool] active: Indicate whether the token is currently active or inactive - :param pulumi.Input[_builtins.str] created_at: Timestamp indicating when the access token was created. - :param pulumi.Input[_builtins.str] project_id: STACKIT project ID associated with the service account token. - :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] rotate_when_changed: 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. - :param pulumi.Input[_builtins.str] service_account_email: Email address linked to the service account. - :param pulumi.Input[_builtins.str] token: JWT access token for API authentication. Prefixed by 'Bearer' and should be stored securely as it is irretrievable once lost. - :param pulumi.Input[_builtins.int] ttl_days: Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - :param pulumi.Input[_builtins.str] valid_until: Estimated expiration timestamp of the access token. For precise validity, check the JWT details. - """ - opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) - - __props__ = _ServiceAccountAccessTokenState.__new__(_ServiceAccountAccessTokenState) - - __props__.__dict__["access_token_id"] = access_token_id - __props__.__dict__["active"] = active - __props__.__dict__["created_at"] = created_at - __props__.__dict__["project_id"] = project_id - __props__.__dict__["rotate_when_changed"] = rotate_when_changed - __props__.__dict__["service_account_email"] = service_account_email - __props__.__dict__["token"] = token - __props__.__dict__["ttl_days"] = ttl_days - __props__.__dict__["valid_until"] = valid_until - return ServiceAccountAccessToken(resource_name, opts=opts, __props__=__props__) - - @_builtins.property - @pulumi.getter(name="accessTokenId") - def access_token_id(self) -> pulumi.Output[_builtins.str]: - """ - Identifier for the access token linked to the service account. - """ - return pulumi.get(self, "access_token_id") - - @_builtins.property - @pulumi.getter - def active(self) -> pulumi.Output[_builtins.bool]: - """ - Indicate whether the token is currently active or inactive - """ - return pulumi.get(self, "active") - - @_builtins.property - @pulumi.getter(name="createdAt") - def created_at(self) -> pulumi.Output[_builtins.str]: - """ - Timestamp indicating when the access token was created. - """ - return pulumi.get(self, "created_at") - - @_builtins.property - @pulumi.getter(name="projectId") - def project_id(self) -> pulumi.Output[_builtins.str]: - """ - STACKIT project ID associated with the service account token. - """ - return pulumi.get(self, "project_id") - - @_builtins.property - @pulumi.getter(name="rotateWhenChanged") - def rotate_when_changed(self) -> pulumi.Output[Optional[Mapping[str, _builtins.str]]]: - """ - 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. - """ - return pulumi.get(self, "rotate_when_changed") - - @_builtins.property - @pulumi.getter(name="serviceAccountEmail") - def service_account_email(self) -> pulumi.Output[_builtins.str]: - """ - Email address linked to the service account. - """ - return pulumi.get(self, "service_account_email") - - @_builtins.property - @pulumi.getter - def token(self) -> pulumi.Output[_builtins.str]: - """ - JWT access token for API authentication. Prefixed by 'Bearer' and should be stored securely as it is irretrievable once lost. - """ - return pulumi.get(self, "token") - - @_builtins.property - @pulumi.getter(name="ttlDays") - def ttl_days(self) -> pulumi.Output[_builtins.int]: - """ - Specifies the token's validity duration in days. If unspecified, defaults to 90 days. - """ - return pulumi.get(self, "ttl_days") - - @_builtins.property - @pulumi.getter(name="validUntil") - def valid_until(self) -> pulumi.Output[_builtins.str]: - """ - Estimated expiration timestamp of the access token. For precise validity, check the JWT details. - """ - return pulumi.get(self, "valid_until") -