{"name":"gcore","version":"2.0.0-alpha.2","description":"A Pulumi provider dynamically bridged from gcore.","attribution":"This Pulumi package is based on the [`gcore` Terraform Provider](https://github.com/g-core/terraform-provider-gcore).","repository":"https://github.com/g-core/terraform-provider-gcore","publisher":"g-core","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"compatibility":"tfbridge20","liftSingleValueMethodReturns":true,"respectSchemaVersion":true},"go":{"generateExtraInputTypes":true,"importBasePath":"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore","liftSingleValueMethodReturns":true,"respectSchemaVersion":true,"rootPackageName":"gcore"},"java":{"basePackage":"","buildFiles":"","gradleNexusPublishPluginVersion":"","gradleTest":""},"nodejs":{"compatibility":"tfbridge20","disableUnionOutputTypes":true,"liftSingleValueMethodReturns":true,"packageDescription":"A Pulumi provider dynamically bridged from gcore.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/g-core/terraform-provider-gcore)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e please consult the source [`terraform-provider-gcore` repo](https://github.com/g-core/terraform-provider-gcore/issues).","respectSchemaVersion":true},"python":{"compatibility":"tfbridge20","pyproject":{"enabled":true},"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/g-core/terraform-provider-gcore)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e please consult the source [`terraform-provider-gcore` repo](https://github.com/g-core/terraform-provider-gcore/issues).","respectSchemaVersion":true}},"config":{"variables":{"apiKey":{"type":"string","description":"The API key for authenticating with the Gcore API. Can also be set via the `GCORE_API_KEY` environment variable.","secret":true},"baseUrl":{"type":"string","description":"Set the base url that the provider connects to."},"cloudPollingIntervalSeconds":{"type":"number","description":"Interval in seconds between polling requests for long-running cloud operations. Defaults to \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e."},"cloudPollingTimeoutSeconds":{"type":"number","description":"Timeout in seconds for polling long-running cloud operations. Defaults to \u003cspan pulumi-lang-nodejs=\"`7200`\" pulumi-lang-dotnet=\"`7200`\" pulumi-lang-go=\"`7200`\" pulumi-lang-python=\"`7200`\" pulumi-lang-yaml=\"`7200`\" pulumi-lang-java=\"`7200`\"\u003e`7200`\u003c/span\u003e."},"cloudProjectId":{"type":"number","description":"Default cloud project ID to use for cloud resources. Can also be set via the `GCORE_CLOUD_PROJECT_ID` environment variable."},"cloudRegionId":{"type":"number","description":"Default cloud region ID to use for cloud resources. Can also be set via the `GCORE_CLOUD_REGION_ID` environment variable."}}},"types":{"gcore:index/CdnOriginGroupAuth:CdnOriginGroupAuth":{"properties":{"s3AccessKeyId":{"type":"string","description":"Access key ID for the S3 account. This is a write-only field - it will be sent to the API but never stored in state.\n"},"s3BucketName":{"type":"string","description":"S3 bucket name.\n\nRestrictions:\n- Maximum 128 characters.\n"},"s3CredentialsVersion":{"type":"number"},"s3Region":{"type":"string","description":"S3 storage region.\n\nThe parameter is required, if \u003cspan pulumi-lang-nodejs=\"\"s3Type\"\" pulumi-lang-dotnet=\"\"S3Type\"\" pulumi-lang-go=\"\"s3Type\"\" pulumi-lang-python=\"\"s3_type\"\" pulumi-lang-yaml=\"\"s3Type\"\" pulumi-lang-java=\"\"s3Type\"\"\u003e\"s3_type\"\u003c/span\u003e: amazon.\n"},"s3SecretAccessKey":{"type":"string","description":"Secret access key for the S3 account. This is a write-only field - it will be sent to the API but never stored in state. \n\nRestrictions:\n- Latin letters (A-Z, a-z), numbers (0-9), pluses, slashes, dashes, colons and underscores.\n- If \"\u003cspan pulumi-lang-nodejs=\"`s3Type`\" pulumi-lang-dotnet=\"`S3Type`\" pulumi-lang-go=\"`s3Type`\" pulumi-lang-python=\"`s3_type`\" pulumi-lang-yaml=\"`s3Type`\" pulumi-lang-java=\"`s3Type`\"\u003e`s3_type`\u003c/span\u003e\": amazon, length should be 40 characters.\n- If \"\u003cspan pulumi-lang-nodejs=\"`s3Type`\" pulumi-lang-dotnet=\"`S3Type`\" pulumi-lang-go=\"`s3Type`\" pulumi-lang-python=\"`s3_type`\" pulumi-lang-yaml=\"`s3Type`\" pulumi-lang-java=\"`s3Type`\"\u003e`s3_type`\u003c/span\u003e\": other, length should be from 16 to 255 characters.\n"},"s3StorageHostname":{"type":"string","description":"S3 storage hostname.\n\nThe parameter is required, if \u003cspan pulumi-lang-nodejs=\"\"s3Type\"\" pulumi-lang-dotnet=\"\"S3Type\"\" pulumi-lang-go=\"\"s3Type\"\" pulumi-lang-python=\"\"s3_type\"\" pulumi-lang-yaml=\"\"s3Type\"\" pulumi-lang-java=\"\"s3Type\"\"\u003e\"s3_type\"\u003c/span\u003e: other.\n"},"s3Type":{"type":"string","description":"Storage type compatible with S3.\n\nPossible values:\n- **amazon** – AWS S3 storage.\n- **other** – Other (not AWS) S3 compatible storage.\n"}},"type":"object","required":["s3AccessKeyId","s3BucketName","s3CredentialsVersion","s3SecretAccessKey","s3Type"]},"gcore:index/CdnOriginGroupSource:CdnOriginGroupSource":{"properties":{"backup":{"type":"boolean","description":"Defines whether the origin is a backup, meaning that it will not be used until one of active origins become unavailable.\n"},"enabled":{"type":"boolean","description":"Enables or disables an origin source in the origin group.\n\nPossible values:\n- **true** - Origin is enabled and the CDN uses it to pull content.\n- **false** - Origin is disabled and the CDN does not use it to pull content.\n\nOrigin group must contain at least one enabled origin.\n\nDefault value is true.\n"},"source":{"type":"string","description":"IP address or domain name of the origin and the port, if custom port is used.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["backup","enabled"]}}},"gcore:index/CdnResourceOptions:CdnResourceOptions":{"properties":{"allowedHttpMethods":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsAllowedHttpMethods:CdnResourceOptionsAllowedHttpMethods","description":"HTTP methods allowed for content requests from the CDN.\n"},"botProtection":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsBotProtection:CdnResourceOptionsBotProtection","description":"Allows to prevent online services from overloading and ensure your business workflow running smoothly.\n"},"brotliCompression":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsBrotliCompression:CdnResourceOptionsBrotliCompression","description":"Compresses content with Brotli on the CDN side. CDN servers will request only uncompressed content from the origin.\n"},"browserCacheSettings":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsBrowserCacheSettings:CdnResourceOptionsBrowserCacheSettings","description":"Cache expiration time for users browsers in seconds.\n\nCache expiration time is applied to the following response codes: 200, 201, 204, 206, 301, 302, 303, 304, 307, 308.\n\nResponses with other codes will not be cached.\n"},"cors":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsCors:CdnResourceOptionsCors","description":"Enables or disables CORS (Cross-Origin Resource Sharing) header support.\n\nCORS header support allows the CDN to add the Access-Control-Allow-Origin header to a response to a browser.\n"},"countryAcl":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsCountryAcl:CdnResourceOptionsCountryAcl","description":"Enables control access to content for specified countries.\n"},"disableProxyForceRanges":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsDisableProxyForceRanges:CdnResourceOptionsDisableProxyForceRanges","description":"Allows 206 responses regardless of the settings of an origin source.\n"},"edgeCacheSettings":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsEdgeCacheSettings:CdnResourceOptionsEdgeCacheSettings","description":"Cache expiration time for CDN servers.\n\n\u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e fields cannot be used simultaneously.\n"},"fastedge":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsFastedge:CdnResourceOptionsFastedge","description":"Allows to configure FastEdge app to be called on different request/response phases.\n\nNote: At least one of \u003cspan pulumi-lang-nodejs=\"`onRequestHeaders`\" pulumi-lang-dotnet=\"`OnRequestHeaders`\" pulumi-lang-go=\"`onRequestHeaders`\" pulumi-lang-python=\"`on_request_headers`\" pulumi-lang-yaml=\"`onRequestHeaders`\" pulumi-lang-java=\"`onRequestHeaders`\"\u003e`on_request_headers`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`onRequestBody`\" pulumi-lang-dotnet=\"`OnRequestBody`\" pulumi-lang-go=\"`onRequestBody`\" pulumi-lang-python=\"`on_request_body`\" pulumi-lang-yaml=\"`onRequestBody`\" pulumi-lang-java=\"`onRequestBody`\"\u003e`on_request_body`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`onResponseHeaders`\" pulumi-lang-dotnet=\"`OnResponseHeaders`\" pulumi-lang-go=\"`onResponseHeaders`\" pulumi-lang-python=\"`on_response_headers`\" pulumi-lang-yaml=\"`onResponseHeaders`\" pulumi-lang-java=\"`onResponseHeaders`\"\u003e`on_response_headers`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`onResponseBody`\" pulumi-lang-dotnet=\"`OnResponseBody`\" pulumi-lang-go=\"`onResponseBody`\" pulumi-lang-python=\"`on_response_body`\" pulumi-lang-yaml=\"`onResponseBody`\" pulumi-lang-java=\"`onResponseBody`\"\u003e`on_response_body`\u003c/span\u003e must be specified.\n"},"fetchCompressed":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsFetchCompressed:CdnResourceOptionsFetchCompressed","description":"Makes the CDN request compressed content from the origin.\n\nThe origin server should support compression. CDN servers will not decompress your content even if a user browser does not accept compression.\n\nNotes:\n\n1. \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e is not supported with `gzipON` or \u003cspan pulumi-lang-nodejs=\"`brotliCompression`\" pulumi-lang-dotnet=\"`BrotliCompression`\" pulumi-lang-go=\"`brotliCompression`\" pulumi-lang-python=\"`brotli_compression`\" pulumi-lang-yaml=\"`brotliCompression`\" pulumi-lang-java=\"`brotliCompression`\"\u003e`brotli_compression`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`slice`\" pulumi-lang-dotnet=\"`Slice`\" pulumi-lang-go=\"`slice`\" pulumi-lang-python=\"`slice`\" pulumi-lang-yaml=\"`slice`\" pulumi-lang-java=\"`slice`\"\u003e`slice`\u003c/span\u003e options enabled.\n2. \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e overrides `gzipON` and \u003cspan pulumi-lang-nodejs=\"`brotliCompression`\" pulumi-lang-dotnet=\"`BrotliCompression`\" pulumi-lang-go=\"`brotliCompression`\" pulumi-lang-python=\"`brotli_compression`\" pulumi-lang-yaml=\"`brotliCompression`\" pulumi-lang-java=\"`brotliCompression`\"\u003e`brotli_compression`\u003c/span\u003e in rule. If you enable it in CDN resource and want to use `gzipON` and \u003cspan pulumi-lang-nodejs=\"`brotliCompression`\" pulumi-lang-dotnet=\"`BrotliCompression`\" pulumi-lang-go=\"`brotliCompression`\" pulumi-lang-python=\"`brotli_compression`\" pulumi-lang-yaml=\"`brotliCompression`\" pulumi-lang-java=\"`brotliCompression`\"\u003e`brotli_compression`\u003c/span\u003e in a rule, you have to specify `\u003cspan pulumi-lang-nodejs=\"\"fetchCompressed\"\" pulumi-lang-dotnet=\"\"FetchCompressed\"\" pulumi-lang-go=\"\"fetchCompressed\"\" pulumi-lang-python=\"\"fetch_compressed\"\" pulumi-lang-yaml=\"\"fetchCompressed\"\" pulumi-lang-java=\"\"fetchCompressed\"\"\u003e\"fetch_compressed\"\u003c/span\u003e: false` in the rule.\n"},"followOriginRedirect":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsFollowOriginRedirect:CdnResourceOptionsFollowOriginRedirect","description":"Enables redirection from origin.\nIf the origin server returns a redirect, the option allows the CDN to pull the requested content from the origin server that was returned in the redirect.\n"},"forceReturn":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsForceReturn:CdnResourceOptionsForceReturn","description":"Applies custom HTTP response codes for CDN content.\n\nThe following codes are reserved by our system and cannot be specified in this option: 408, 444, 477, 494, 495, 496, 497, 499.\n"},"forwardHostHeader":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsForwardHostHeader:CdnResourceOptionsForwardHostHeader","description":"Forwards the Host header from a end-user request to an origin server.\n\n`hostHeader` and \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"grpcPassthrough":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsGrpcPassthrough:CdnResourceOptionsGrpcPassthrough","description":"Enables gRPC pass-through for the CDN resource.\n"},"gzipOn":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsGzipOn:CdnResourceOptionsGzipOn","description":"Compresses content with gzip on the CDN end. CDN servers will request only uncompressed content from the origin.\n\nNotes:\n\n1. Compression with gzip is not supported with \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`slice`\" pulumi-lang-dotnet=\"`Slice`\" pulumi-lang-go=\"`slice`\" pulumi-lang-python=\"`slice`\" pulumi-lang-yaml=\"`slice`\" pulumi-lang-java=\"`slice`\"\u003e`slice`\u003c/span\u003e options enabled.\n2. \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e option in CDN resource settings overrides `gzipON` in rules. If you enable \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e in CDN resource and want to enable `gzipON` in rules, you need to specify `\u003cspan pulumi-lang-nodejs=\"\"fetchCompressed\"\" pulumi-lang-dotnet=\"\"FetchCompressed\"\" pulumi-lang-go=\"\"fetchCompressed\"\" pulumi-lang-python=\"\"fetch_compressed\"\" pulumi-lang-yaml=\"\"fetchCompressed\"\" pulumi-lang-java=\"\"fetchCompressed\"\"\u003e\"fetch_compressed\"\u003c/span\u003e:false` for rules.\n"},"hostHeader":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsHostHeader:CdnResourceOptionsHostHeader","description":"Sets the Host header that CDN servers use when request content from an origin server.\nYour server must be able to process requests with the chosen header.\n\nIf the option is \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e, the Host Header value is equal to first CNAME.\n\n`hostHeader` and \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"http3Enabled":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsHttp3Enabled:CdnResourceOptionsHttp3Enabled","description":"Enables HTTP/3 protocol for content delivery.\n\n\u003cspan pulumi-lang-nodejs=\"`http3Enabled`\" pulumi-lang-dotnet=\"`Http3Enabled`\" pulumi-lang-go=\"`http3Enabled`\" pulumi-lang-python=\"`http3_enabled`\" pulumi-lang-yaml=\"`http3Enabled`\" pulumi-lang-java=\"`http3Enabled`\"\u003e`http3_enabled`\u003c/span\u003e option works only with `\"sslEnabled\": true`.\n"},"ignoreCookie":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsIgnoreCookie:CdnResourceOptionsIgnoreCookie","description":"Defines whether the files with the Set-Cookies header are cached as one file or as different ones.\n"},"ignoreQueryString":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsIgnoreQueryString:CdnResourceOptionsIgnoreQueryString","description":"How a file with different query strings is cached: either as one object (option is enabled) or as different objects (option is disabled.)\n\n`ignoreQueryString`, \u003cspan pulumi-lang-nodejs=\"`queryParamsWhitelist`\" pulumi-lang-dotnet=\"`QueryParamsWhitelist`\" pulumi-lang-go=\"`queryParamsWhitelist`\" pulumi-lang-python=\"`query_params_whitelist`\" pulumi-lang-yaml=\"`queryParamsWhitelist`\" pulumi-lang-java=\"`queryParamsWhitelist`\"\u003e`query_params_whitelist`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`queryParamsBlacklist`\" pulumi-lang-dotnet=\"`QueryParamsBlacklist`\" pulumi-lang-go=\"`queryParamsBlacklist`\" pulumi-lang-python=\"`query_params_blacklist`\" pulumi-lang-yaml=\"`queryParamsBlacklist`\" pulumi-lang-java=\"`queryParamsBlacklist`\"\u003e`query_params_blacklist`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"imageStack":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsImageStack:CdnResourceOptionsImageStack","description":"Transforms JPG and PNG images (for example, resize or crop) and automatically converts them to WebP or AVIF format.\n"},"ipAddressAcl":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsIpAddressAcl:CdnResourceOptionsIpAddressAcl","description":"Controls access to the CDN resource content for specific IP addresses.\n\nIf you want to use IPs from our CDN servers IP list for IP ACL configuration, you have to independently monitor their relevance.\n\nWe recommend you use a script for automatically update IP ACL. [Read more.](https://www.terraform.io/docs/api-reference/cdn/ip-addresses-list/get-cdn-servers-ip-addresses)\n"},"limitBandwidth":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsLimitBandwidth:CdnResourceOptionsLimitBandwidth","description":"Allows to control the download speed per connection.\n"},"proxyCacheKey":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsProxyCacheKey:CdnResourceOptionsProxyCacheKey","description":"Allows you to modify your cache key. If omitted, the default value is `$request_uri`.\n\nCombine the specified variables to create a key for caching.\n- **$\u003cspan pulumi-lang-nodejs=\"`requestUri`\" pulumi-lang-dotnet=\"`RequestUri`\" pulumi-lang-go=\"`requestUri`\" pulumi-lang-python=\"`request_uri`\" pulumi-lang-yaml=\"`requestUri`\" pulumi-lang-java=\"`requestUri`\"\u003e`request_uri`\u003c/span\u003e**\n- **$scheme**\n- **$uri**\n\n**Warning**: Enabling and changing this option can invalidate your current cache and affect the cache hit ratio. Furthermore, the \"Purge by pattern\" option will not work.\n"},"proxyCacheMethodsSet":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsProxyCacheMethodsSet:CdnResourceOptionsProxyCacheMethodsSet","description":"Caching for POST requests along with default GET and HEAD.\n"},"proxyConnectTimeout":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsProxyConnectTimeout:CdnResourceOptionsProxyConnectTimeout","description":"The time limit for establishing a connection with the origin.\n"},"proxyReadTimeout":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsProxyReadTimeout:CdnResourceOptionsProxyReadTimeout","description":"The time limit for receiving a partial response from the origin.\nIf no response is received within this time, the connection will be closed.\n\n**Note:**\nWhen used with a WebSocket connection, this option supports values only in the range 1–20 seconds (instead of the usual 1–30 seconds).\n"},"queryParamsBlacklist":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsQueryParamsBlacklist:CdnResourceOptionsQueryParamsBlacklist","description":"Files with the specified query parameters are cached as one object, files with other parameters are cached as different objects.\n\n`ignoreQueryString`, \u003cspan pulumi-lang-nodejs=\"`queryParamsWhitelist`\" pulumi-lang-dotnet=\"`QueryParamsWhitelist`\" pulumi-lang-go=\"`queryParamsWhitelist`\" pulumi-lang-python=\"`query_params_whitelist`\" pulumi-lang-yaml=\"`queryParamsWhitelist`\" pulumi-lang-java=\"`queryParamsWhitelist`\"\u003e`query_params_whitelist`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`queryParamsBlacklist`\" pulumi-lang-dotnet=\"`QueryParamsBlacklist`\" pulumi-lang-go=\"`queryParamsBlacklist`\" pulumi-lang-python=\"`query_params_blacklist`\" pulumi-lang-yaml=\"`queryParamsBlacklist`\" pulumi-lang-java=\"`queryParamsBlacklist`\"\u003e`query_params_blacklist`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"queryParamsWhitelist":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsQueryParamsWhitelist:CdnResourceOptionsQueryParamsWhitelist","description":"Files with the specified query parameters are cached as different objects, files with other parameters are cached as one object.\n\n`ignoreQueryString`, \u003cspan pulumi-lang-nodejs=\"`queryParamsWhitelist`\" pulumi-lang-dotnet=\"`QueryParamsWhitelist`\" pulumi-lang-go=\"`queryParamsWhitelist`\" pulumi-lang-python=\"`query_params_whitelist`\" pulumi-lang-yaml=\"`queryParamsWhitelist`\" pulumi-lang-java=\"`queryParamsWhitelist`\"\u003e`query_params_whitelist`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`queryParamsBlacklist`\" pulumi-lang-dotnet=\"`QueryParamsBlacklist`\" pulumi-lang-go=\"`queryParamsBlacklist`\" pulumi-lang-python=\"`query_params_blacklist`\" pulumi-lang-yaml=\"`queryParamsBlacklist`\" pulumi-lang-java=\"`queryParamsBlacklist`\"\u003e`query_params_blacklist`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"queryStringForwarding":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsQueryStringForwarding:CdnResourceOptionsQueryStringForwarding","description":"The Query String Forwarding feature allows for the seamless transfer of parameters embedded in playlist files to the corresponding media chunk files.\nThis functionality ensures that specific attributes, such as authentication tokens or tracking information, are consistently passed along from the playlist manifest to the individual media segments.\nThis is particularly useful for maintaining continuity in security, analytics, and any other parameter-based operations across the entire media delivery workflow.\n"},"redirectHttpToHttps":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsRedirectHttpToHttps:CdnResourceOptionsRedirectHttpToHttps","description":"Enables redirect from HTTP to HTTPS.\n\n\u003cspan pulumi-lang-nodejs=\"`redirectHttpToHttps`\" pulumi-lang-dotnet=\"`RedirectHttpToHttps`\" pulumi-lang-go=\"`redirectHttpToHttps`\" pulumi-lang-python=\"`redirect_http_to_https`\" pulumi-lang-yaml=\"`redirectHttpToHttps`\" pulumi-lang-java=\"`redirectHttpToHttps`\"\u003e`redirect_http_to_https`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`redirectHttpsToHttp`\" pulumi-lang-dotnet=\"`RedirectHttpsToHttp`\" pulumi-lang-go=\"`redirectHttpsToHttp`\" pulumi-lang-python=\"`redirect_https_to_http`\" pulumi-lang-yaml=\"`redirectHttpsToHttp`\" pulumi-lang-java=\"`redirectHttpsToHttp`\"\u003e`redirect_https_to_http`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"redirectHttpsToHttp":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsRedirectHttpsToHttp:CdnResourceOptionsRedirectHttpsToHttp","description":"Enables redirect from HTTPS to HTTP.\n\n\u003cspan pulumi-lang-nodejs=\"`redirectHttpToHttps`\" pulumi-lang-dotnet=\"`RedirectHttpToHttps`\" pulumi-lang-go=\"`redirectHttpToHttps`\" pulumi-lang-python=\"`redirect_http_to_https`\" pulumi-lang-yaml=\"`redirectHttpToHttps`\" pulumi-lang-java=\"`redirectHttpToHttps`\"\u003e`redirect_http_to_https`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`redirectHttpsToHttp`\" pulumi-lang-dotnet=\"`RedirectHttpsToHttp`\" pulumi-lang-go=\"`redirectHttpsToHttp`\" pulumi-lang-python=\"`redirect_https_to_http`\" pulumi-lang-yaml=\"`redirectHttpsToHttp`\" pulumi-lang-java=\"`redirectHttpsToHttp`\"\u003e`redirect_https_to_http`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"referrerAcl":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsReferrerAcl:CdnResourceOptionsReferrerAcl","description":"Controls access to the CDN resource content for specified domain names.\n"},"requestLimiter":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsRequestLimiter:CdnResourceOptionsRequestLimiter","description":"Option allows to limit the amount of HTTP requests.\n"},"responseHeadersHidingPolicy":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsResponseHeadersHidingPolicy:CdnResourceOptionsResponseHeadersHidingPolicy","description":"Hides HTTP headers from an origin server in the CDN response.\n"},"rewrite":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsRewrite:CdnResourceOptionsRewrite","description":"Changes and redirects requests from the CDN to the origin. It operates according to the [Nginx](https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite) configuration.\n"},"secureKey":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsSecureKey:CdnResourceOptionsSecureKey","description":"Configures access with tokenized URLs. This makes impossible to access content without a valid (unexpired) token.\n"},"slice":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsSlice:CdnResourceOptionsSlice","description":"Requests and caches files larger than 10 MB in parts (no larger than 10 MB per part.) This reduces time to first byte.\n\nThe option is based on the [Slice](https://nginx.org/en/docs/http/ngx_http_slice_module.html) module.\n\nNotes:\n\n1. Origin must support HTTP Range requests.\n2. Not supported with `gzipON`, \u003cspan pulumi-lang-nodejs=\"`brotliCompression`\" pulumi-lang-dotnet=\"`BrotliCompression`\" pulumi-lang-go=\"`brotliCompression`\" pulumi-lang-python=\"`brotli_compression`\" pulumi-lang-yaml=\"`brotliCompression`\" pulumi-lang-java=\"`brotliCompression`\"\u003e`brotli_compression`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e options enabled.\n"},"sni":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsSni:CdnResourceOptionsSni","description":"The hostname that is added to SNI requests from CDN servers to the origin server via HTTPS.\n\nSNI is generally only required if your origin uses shared hosting or does not have a dedicated IP address.\nIf the origin server presents multiple certificates, SNI allows the origin server to know which certificate to use for the connection.\n\nThe option works only if `originProtocol` parameter is `HTTPS` or `MATCH`.\n"},"stale":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsStale:CdnResourceOptionsStale","description":"Serves stale cached content in case of origin unavailability.\n"},"staticRequestHeaders":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsStaticRequestHeaders:CdnResourceOptionsStaticRequestHeaders","description":"Custom HTTP Headers for a CDN server to add to request. Up to fifty custom HTTP Headers can be specified.\n"},"staticResponseHeaders":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsStaticResponseHeaders:CdnResourceOptionsStaticResponseHeaders","description":"Custom HTTP Headers that a CDN server adds to a response.\n"},"tlsVersions":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsTlsVersions:CdnResourceOptionsTlsVersions","description":"List of SSL/TLS protocol versions allowed for HTTPS connections from end users to the domain.\n\nWhen the option is disabled, all protocols versions are allowed.\n"},"useDefaultLeChain":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsUseDefaultLeChain:CdnResourceOptionsUseDefaultLeChain","description":"Let's Encrypt certificate chain.\n\nThe specified chain will be used during the next Let's Encrypt certificate issue or renewal.\n"},"useDns01LeChallenge":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsUseDns01LeChallenge:CdnResourceOptionsUseDns01LeChallenge","description":"DNS-01 challenge to issue a Let's Encrypt certificate for the resource.\n\nDNS service should be activated to enable this option.\n"},"useRsaLeCert":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsUseRsaLeCert:CdnResourceOptionsUseRsaLeCert","description":"RSA Let's Encrypt certificate type for the CDN resource.\n\nThe specified value will be used during the next Let's Encrypt certificate issue or renewal.\n"},"userAgentAcl":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsUserAgentAcl:CdnResourceOptionsUserAgentAcl","description":"Controls access to the content for specified User-Agents.\n"},"waap":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsWaap:CdnResourceOptionsWaap","description":"Allows to enable WAAP (Web Application and API Protection).\n"},"websockets":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsWebsockets:CdnResourceOptionsWebsockets","description":"Enables or disables WebSockets connections to an origin server.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHttpMethods","botProtection","brotliCompression","browserCacheSettings","cors","countryAcl","disableProxyForceRanges","edgeCacheSettings","fastedge","fetchCompressed","followOriginRedirect","forceReturn","forwardHostHeader","grpcPassthrough","gzipOn","hostHeader","http3Enabled","ignoreCookie","ignoreQueryString","imageStack","ipAddressAcl","limitBandwidth","proxyCacheKey","proxyCacheMethodsSet","proxyConnectTimeout","proxyReadTimeout","queryParamsBlacklist","queryParamsWhitelist","queryStringForwarding","redirectHttpToHttps","redirectHttpsToHttp","referrerAcl","requestLimiter","responseHeadersHidingPolicy","rewrite","secureKey","slice","sni","stale","staticRequestHeaders","staticResponseHeaders","tlsVersions","useDefaultLeChain","useDns01LeChallenge","useRsaLeCert","userAgentAcl","waap","websockets"]}}},"gcore:index/CdnResourceOptionsAllowedHttpMethods:CdnResourceOptionsAllowedHttpMethods":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"}}},"type":"object","required":["enabled","values"]},"gcore:index/CdnResourceOptionsBotProtection:CdnResourceOptionsBotProtection":{"properties":{"botChallenge":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsBotProtectionBotChallenge:CdnResourceOptionsBotProtectionBotChallenge","description":"Controls the bot challenge module state.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"}},"type":"object","required":["botChallenge","enabled"]},"gcore:index/CdnResourceOptionsBotProtectionBotChallenge:CdnResourceOptionsBotProtectionBotChallenge":{"properties":{"enabled":{"type":"boolean","description":"Possible values:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled"]}}},"gcore:index/CdnResourceOptionsBrotliCompression:CdnResourceOptionsBrotliCompression":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Allows to select the content types you want to compress.\n\n`text/html` is a mandatory content type.\n"}},"type":"object","required":["enabled","values"]},"gcore:index/CdnResourceOptionsBrowserCacheSettings:CdnResourceOptionsBrowserCacheSettings":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Set the cache expiration time to '0s' to disable caching.\n\nThe maximum duration is any equivalent to \u003cspan pulumi-lang-nodejs=\"`1y`\" pulumi-lang-dotnet=\"`1y`\" pulumi-lang-go=\"`1y`\" pulumi-lang-python=\"`1y`\" pulumi-lang-yaml=\"`1y`\" pulumi-lang-java=\"`1y`\"\u003e`1y`\u003c/span\u003e.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsCors:CdnResourceOptionsCors":{"properties":{"always":{"type":"boolean","description":"Defines whether the Access-Control-Allow-Origin header should be added to a response from CDN regardless of response code.\n\nPossible values:\n- **true** - Header will be added to a response regardless of response code.\n- **false** - Header will only be added to responses with codes: 200, 201, 204, 206, 301, 302, 303, 304, 307, 308.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Value of the Access-Control-Allow-Origin header.\n\nPossible values:\n- **Adds * as the Access-Control-Allow-Origin header value** - Content will be uploaded for requests from any domain.\n`\"value\": [\"*\"]`\n- **Adds \"$http_origin\" as the Access-Control-Allow-Origin header value if the origin matches one of the listed domains** - Content will be uploaded only for requests from the domains specified in the field.\n`\"value\": [\"domain.com\", \"second.dom.com\"]`\n- **Adds \"$http_origin\" as the Access-Control-Allow-Origin header value** - Content will be uploaded for requests from any domain, and the domain from which the request was sent will be added to the \"Access-Control-Allow-Origin\" header in the response.\n`\"value\": [\"$http_origin\"]`\n"}},"type":"object","required":["enabled","values"],"language":{"nodejs":{"requiredOutputs":["always","enabled","values"]}}},"gcore:index/CdnResourceOptionsCountryAcl:CdnResourceOptionsCountryAcl":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of countries according to ISO-3166-1.\n\nThe meaning of the parameter depends on \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e value:\n- **allow** - List of countries for which access is prohibited.\n- **deny** - List of countries for which access is allowed.\n"},"policyType":{"type":"string","description":"Defines the type of CDN resource access policy.\n\nPossible values:\n- **allow** - Access is allowed for all the countries except for those specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\n- **deny** - Access is denied for all the countries except for those specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\nAvailable values: \"allow\", \"deny\".\n"}},"type":"object","required":["enabled","exceptedValues","policyType"]},"gcore:index/CdnResourceOptionsDisableProxyForceRanges:CdnResourceOptionsDisableProxyForceRanges":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsEdgeCacheSettings:CdnResourceOptionsEdgeCacheSettings":{"properties":{"customValues":{"type":"object","additionalProperties":{"type":"string"},"description":"A MAP object representing the caching time in seconds for a response with a specific response code.\n\nThese settings have a higher priority than the \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e field.\n\n- Use \u003cspan pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\"\u003e`any`\u003c/span\u003e key to specify caching time for all response codes.\n- Use \u003cspan pulumi-lang-nodejs=\"`0s`\" pulumi-lang-dotnet=\"`0s`\" pulumi-lang-go=\"`0s`\" pulumi-lang-python=\"`0s`\" pulumi-lang-yaml=\"`0s`\" pulumi-lang-java=\"`0s`\"\u003e`0s`\u003c/span\u003e value to disable caching for a specific response code.\n"},"default":{"type":"string","description":"Enables content caching according to the origin cache settings.\n\nThe value is applied to the following response codes 200, 201, 204, 206, 301, 302, 303, 304, 307, 308, if an origin server does not have caching HTTP headers.\n\nResponses with other codes will not be cached.\n\nThe maximum duration is any equivalent to \u003cspan pulumi-lang-nodejs=\"`1y`\" pulumi-lang-dotnet=\"`1y`\" pulumi-lang-go=\"`1y`\" pulumi-lang-python=\"`1y`\" pulumi-lang-yaml=\"`1y`\" pulumi-lang-java=\"`1y`\"\u003e`1y`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Caching time.\n\nThe value is applied to the following response codes: 200, 206, 301, 302.\nResponses with codes 4xx, 5xx will not be cached.\n\nUse \u003cspan pulumi-lang-nodejs=\"`0s`\" pulumi-lang-dotnet=\"`0s`\" pulumi-lang-go=\"`0s`\" pulumi-lang-python=\"`0s`\" pulumi-lang-yaml=\"`0s`\" pulumi-lang-java=\"`0s`\"\u003e`0s`\u003c/span\u003e to disable caching.\n\nThe maximum duration is any equivalent to \u003cspan pulumi-lang-nodejs=\"`1y`\" pulumi-lang-dotnet=\"`1y`\" pulumi-lang-go=\"`1y`\" pulumi-lang-python=\"`1y`\" pulumi-lang-yaml=\"`1y`\" pulumi-lang-java=\"`1y`\"\u003e`1y`\u003c/span\u003e.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["customValues","enabled"]}}},"gcore:index/CdnResourceOptionsFastedge:CdnResourceOptionsFastedge":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"onRequestBody":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsFastedgeOnRequestBody:CdnResourceOptionsFastedgeOnRequestBody","description":"Allows to configure FastEdge application that will be called to handle request body as soon as CDN receives incoming HTTP request.\n"},"onRequestHeaders":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsFastedgeOnRequestHeaders:CdnResourceOptionsFastedgeOnRequestHeaders","description":"Allows to configure FastEdge application that will be called to handle request headers as soon as CDN receives incoming HTTP request, **before cache**.\n"},"onResponseBody":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsFastedgeOnResponseBody:CdnResourceOptionsFastedgeOnResponseBody","description":"Allows to configure FastEdge application that will be called to handle response body before CDN sends the HTTP response.\n"},"onResponseHeaders":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsFastedgeOnResponseHeaders:CdnResourceOptionsFastedgeOnResponseHeaders","description":"Allows to configure FastEdge application that will be called to handle response headers before CDN sends the HTTP response.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","onRequestBody","onRequestHeaders","onResponseBody","onResponseHeaders"]}}},"gcore:index/CdnResourceOptionsFastedgeOnRequestBody:CdnResourceOptionsFastedgeOnRequestBody":{"properties":{"appId":{"type":"string","description":"The ID of the application in FastEdge.\n"},"enabled":{"type":"boolean","description":"Determines if the FastEdge application should be called whenever HTTP request headers are received.\n"},"executeOnEdge":{"type":"boolean","description":"Determines if the request should be executed at the edge nodes.\n"},"executeOnShield":{"type":"boolean","description":"Determines if the request should be executed at the shield nodes.\n"},"interruptOnError":{"type":"boolean","description":"Determines if the request execution should be interrupted when an error occurs.\n"}},"type":"object","required":["appId"],"language":{"nodejs":{"requiredOutputs":["appId","enabled","executeOnEdge","executeOnShield","interruptOnError"]}}},"gcore:index/CdnResourceOptionsFastedgeOnRequestHeaders:CdnResourceOptionsFastedgeOnRequestHeaders":{"properties":{"appId":{"type":"string","description":"The ID of the application in FastEdge.\n"},"enabled":{"type":"boolean","description":"Determines if the FastEdge application should be called whenever HTTP request headers are received.\n"},"executeOnEdge":{"type":"boolean","description":"Determines if the request should be executed at the edge nodes.\n"},"executeOnShield":{"type":"boolean","description":"Determines if the request should be executed at the shield nodes.\n"},"interruptOnError":{"type":"boolean","description":"Determines if the request execution should be interrupted when an error occurs.\n"}},"type":"object","required":["appId"],"language":{"nodejs":{"requiredOutputs":["appId","enabled","executeOnEdge","executeOnShield","interruptOnError"]}}},"gcore:index/CdnResourceOptionsFastedgeOnResponseBody:CdnResourceOptionsFastedgeOnResponseBody":{"properties":{"appId":{"type":"string","description":"The ID of the application in FastEdge.\n"},"enabled":{"type":"boolean","description":"Determines if the FastEdge application should be called whenever HTTP request headers are received.\n"},"executeOnEdge":{"type":"boolean","description":"Determines if the request should be executed at the edge nodes.\n"},"executeOnShield":{"type":"boolean","description":"Determines if the request should be executed at the shield nodes.\n"},"interruptOnError":{"type":"boolean","description":"Determines if the request execution should be interrupted when an error occurs.\n"}},"type":"object","required":["appId"],"language":{"nodejs":{"requiredOutputs":["appId","enabled","executeOnEdge","executeOnShield","interruptOnError"]}}},"gcore:index/CdnResourceOptionsFastedgeOnResponseHeaders:CdnResourceOptionsFastedgeOnResponseHeaders":{"properties":{"appId":{"type":"string","description":"The ID of the application in FastEdge.\n"},"enabled":{"type":"boolean","description":"Determines if the FastEdge application should be called whenever HTTP request headers are received.\n"},"executeOnEdge":{"type":"boolean","description":"Determines if the request should be executed at the edge nodes.\n"},"executeOnShield":{"type":"boolean","description":"Determines if the request should be executed at the shield nodes.\n"},"interruptOnError":{"type":"boolean","description":"Determines if the request execution should be interrupted when an error occurs.\n"}},"type":"object","required":["appId"],"language":{"nodejs":{"requiredOutputs":["appId","enabled","executeOnEdge","executeOnShield","interruptOnError"]}}},"gcore:index/CdnResourceOptionsFetchCompressed:CdnResourceOptionsFetchCompressed":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsFollowOriginRedirect:CdnResourceOptionsFollowOriginRedirect":{"properties":{"codes":{"type":"array","items":{"type":"number"},"description":"Redirect status code that the origin server returns.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["codes","enabled"]},"gcore:index/CdnResourceOptionsForceReturn:CdnResourceOptionsForceReturn":{"properties":{"body":{"type":"string","description":"URL for redirection or text.\n"},"code":{"type":"number","description":"Status code value.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"timeInterval":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsForceReturnTimeInterval:CdnResourceOptionsForceReturnTimeInterval","description":"Controls the time at which a custom HTTP response code should be applied. By default, a custom HTTP response code is applied at any time.\n"}},"type":"object","required":["body","code","enabled"],"language":{"nodejs":{"requiredOutputs":["body","code","enabled","timeInterval"]}}},"gcore:index/CdnResourceOptionsForceReturnTimeInterval:CdnResourceOptionsForceReturnTimeInterval":{"properties":{"endTime":{"type":"string","description":"Time until which a custom HTTP response code should be applied. Indicated in 24-hour format.\n"},"startTime":{"type":"string","description":"Time from which a custom HTTP response code should be applied. Indicated in 24-hour format.\n"},"timeZone":{"type":"string","description":"Time zone used to calculate time.\n"}},"type":"object","required":["endTime","startTime"],"language":{"nodejs":{"requiredOutputs":["endTime","startTime","timeZone"]}}},"gcore:index/CdnResourceOptionsForwardHostHeader:CdnResourceOptionsForwardHostHeader":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsGrpcPassthrough:CdnResourceOptionsGrpcPassthrough":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsGzipOn:CdnResourceOptionsGzipOn":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsHostHeader:CdnResourceOptionsHostHeader":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Host Header value.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsHttp3Enabled:CdnResourceOptionsHttp3Enabled":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsIgnoreCookie:CdnResourceOptionsIgnoreCookie":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled, files with cookies are cached as one file.\n- **false** - Option is disabled, files with cookies are cached as different files.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsIgnoreQueryString:CdnResourceOptionsIgnoreQueryString":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsImageStack:CdnResourceOptionsImageStack":{"properties":{"avifEnabled":{"type":"boolean","description":"Enables or disables automatic conversion of JPEG and PNG images to AVI format.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"pngLossless":{"type":"boolean","description":"Enables or disables compression without quality loss for PNG format.\n"},"quality":{"type":"number","description":"Defines quality settings for JPG and PNG images. The higher the value, the better the image quality, and the larger the file size after conversion.\n"},"webpEnabled":{"type":"boolean","description":"Enables or disables automatic conversion of JPEG and PNG images to WebP format.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["avifEnabled","enabled","pngLossless","quality","webpEnabled"]}}},"gcore:index/CdnResourceOptionsIpAddressAcl:CdnResourceOptionsIpAddressAcl":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of IP addresses with a subnet mask.\n\nThe meaning of the parameter depends on \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e value:\n- **allow** - List of IP addresses for which access is prohibited.\n- **deny** - List of IP addresses for which access is allowed.\n\nExamples:\n- `192.168.3.2/32`\n- `2a03:d000:2980:7::8/128`\n"},"policyType":{"type":"string","description":"IP access policy type.\n\nPossible values:\n- **allow** - Allow access to all IPs except IPs specified in \u003cspan pulumi-lang-nodejs=\"\"exceptedValues\"\" pulumi-lang-dotnet=\"\"ExceptedValues\"\" pulumi-lang-go=\"\"exceptedValues\"\" pulumi-lang-python=\"\"excepted_values\"\" pulumi-lang-yaml=\"\"exceptedValues\"\" pulumi-lang-java=\"\"exceptedValues\"\"\u003e\"excepted_values\"\u003c/span\u003e field.\n- **deny** - Deny access to all IPs except IPs specified in \u003cspan pulumi-lang-nodejs=\"\"exceptedValues\"\" pulumi-lang-dotnet=\"\"ExceptedValues\"\" pulumi-lang-go=\"\"exceptedValues\"\" pulumi-lang-python=\"\"excepted_values\"\" pulumi-lang-yaml=\"\"exceptedValues\"\" pulumi-lang-java=\"\"exceptedValues\"\"\u003e\"excepted_values\"\u003c/span\u003e field.\nAvailable values: \"allow\", \"deny\".\n"}},"type":"object","required":["enabled","exceptedValues","policyType"]},"gcore:index/CdnResourceOptionsLimitBandwidth:CdnResourceOptionsLimitBandwidth":{"properties":{"buffer":{"type":"number","description":"Amount of downloaded data after which the user will be rate limited.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"limitType":{"type":"string","description":"Method of controlling the download speed per connection.\n\nPossible values:\n- **static** - Use speed and buffer fields to set the download speed limit.\n- **dynamic** - Use query strings **speed** and **buffer** to set the download speed limit.\n\nFor example, when requesting content at the link\n\n```\nhttp://cdn.example.com/video.mp4?speed=50k\u0026buffer=500k\n```\n\nthe download speed will be limited to 50kB/s after 500 kB.\nAvailable values: \"static\", \"dynamic\".\n"},"speed":{"type":"number","description":"Maximum download speed per connection.\n"}},"type":"object","required":["enabled","limitType"]},"gcore:index/CdnResourceOptionsProxyCacheKey:CdnResourceOptionsProxyCacheKey":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Key for caching.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsProxyCacheMethodsSet:CdnResourceOptionsProxyCacheMethodsSet":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsProxyConnectTimeout:CdnResourceOptionsProxyConnectTimeout":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Timeout value in seconds.\n\nSupported range: **1s - 5s**.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsProxyReadTimeout:CdnResourceOptionsProxyReadTimeout":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Timeout value in seconds.\n\nSupported range: **1s - 30s**.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsQueryParamsBlacklist:CdnResourceOptionsQueryParamsBlacklist":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"List of query parameters.\n"}},"type":"object","required":["enabled","values"]},"gcore:index/CdnResourceOptionsQueryParamsWhitelist:CdnResourceOptionsQueryParamsWhitelist":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"List of query parameters.\n"}},"type":"object","required":["enabled","values"]},"gcore:index/CdnResourceOptionsQueryStringForwarding:CdnResourceOptionsQueryStringForwarding":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"forwardExceptKeys":{"type":"array","items":{"type":"string"},"description":"The \u003cspan pulumi-lang-nodejs=\"`forwardExceptKeys`\" pulumi-lang-dotnet=\"`ForwardExceptKeys`\" pulumi-lang-go=\"`forwardExceptKeys`\" pulumi-lang-python=\"`forward_except_keys`\" pulumi-lang-yaml=\"`forwardExceptKeys`\" pulumi-lang-java=\"`forwardExceptKeys`\"\u003e`forward_except_keys`\u003c/span\u003e field provides a mechanism to exclude specific parameters from being forwarded from playlist files to media chunk files.\nBy listing certain keys in this field, you can ensure that these parameters are omitted during the forwarding process.\nThis is particularly useful for preventing sensitive or irrelevant information from being included in requests for media chunks, thereby enhancing security and optimizing performance.\n"},"forwardFromFileTypes":{"type":"array","items":{"type":"string"},"description":"The \u003cspan pulumi-lang-nodejs=\"`forwardFromFilesTypes`\" pulumi-lang-dotnet=\"`ForwardFromFilesTypes`\" pulumi-lang-go=\"`forwardFromFilesTypes`\" pulumi-lang-python=\"`forward_from_files_types`\" pulumi-lang-yaml=\"`forwardFromFilesTypes`\" pulumi-lang-java=\"`forwardFromFilesTypes`\"\u003e`forward_from_files_types`\u003c/span\u003e field specifies the types of playlist files from which parameters will be extracted and forwarded.\nThis typically includes formats that list multiple media chunk references, such as HLS and DASH playlists.\nParameters associated with these playlist files (like query strings or headers) will be propagated to the chunks they reference.\n"},"forwardOnlyKeys":{"type":"array","items":{"type":"string"},"description":"The \u003cspan pulumi-lang-nodejs=\"`forwardOnlyKeys`\" pulumi-lang-dotnet=\"`ForwardOnlyKeys`\" pulumi-lang-go=\"`forwardOnlyKeys`\" pulumi-lang-python=\"`forward_only_keys`\" pulumi-lang-yaml=\"`forwardOnlyKeys`\" pulumi-lang-java=\"`forwardOnlyKeys`\"\u003e`forward_only_keys`\u003c/span\u003e field allows for granular control over which specific parameters are forwarded from playlist files to media chunk files.\nBy specifying certain keys, only those parameters will be propagated, ensuring that only relevant information is passed along.\nThis is particularly useful for security and performance optimization, as it prevents unnecessary or sensitive data from being included in requests for media chunks.\n"},"forwardToFileTypes":{"type":"array","items":{"type":"string"},"description":"The field specifies the types of media chunk files to which parameters, extracted from playlist files, will be forwarded.\nThese refer to the actual segments of media content that are delivered to viewers.\nEnsuring the correct parameters are forwarded to these files is crucial for maintaining the integrity of the streaming session.\n"}},"type":"object","required":["enabled","forwardFromFileTypes","forwardToFileTypes"]},"gcore:index/CdnResourceOptionsRedirectHttpToHttps:CdnResourceOptionsRedirectHttpToHttps":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsRedirectHttpsToHttp:CdnResourceOptionsRedirectHttpsToHttp":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsReferrerAcl:CdnResourceOptionsReferrerAcl":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of domain names or wildcard domains (without protocol: `http://` or `https://`.)\n\nThe meaning of the parameter depends on \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e value:\n- **allow** - List of domain names for which access is prohibited.\n- **deny** - List of IP domain names for which access is allowed.\n\nExamples:\n- `example.com`\n- `*.example.com`\n"},"policyType":{"type":"string","description":"Policy type.\n\nPossible values:\n- **allow** - Allow access to all domain names except the domain names specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\n- **deny** - Deny access to all domain names except the domain names specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\nAvailable values: \"allow\", \"deny\".\n"}},"type":"object","required":["enabled","exceptedValues","policyType"]},"gcore:index/CdnResourceOptionsRequestLimiter:CdnResourceOptionsRequestLimiter":{"properties":{"burst":{"type":"number"},"delay":{"type":"number"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"rate":{"type":"number","description":"Maximum request rate.\n"},"rateUnit":{"type":"string","description":"Units of measurement for the \u003cspan pulumi-lang-nodejs=\"`rate`\" pulumi-lang-dotnet=\"`Rate`\" pulumi-lang-go=\"`rate`\" pulumi-lang-python=\"`rate`\" pulumi-lang-yaml=\"`rate`\" pulumi-lang-java=\"`rate`\"\u003e`rate`\u003c/span\u003e field.\n\nPossible values:\n- **r/s** - Requests per second.\n- **r/m** - Requests per minute.\n\nIf the rate is less than one request per second, it is specified in request per minute (r/m.)\nAvailable values: \"r/s\", \"r/m\".\n"}},"type":"object","required":["enabled","rate"],"language":{"nodejs":{"requiredOutputs":["burst","delay","enabled","rate","rateUnit"]}}},"gcore:index/CdnResourceOptionsResponseHeadersHidingPolicy:CdnResourceOptionsResponseHeadersHidingPolicy":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"excepteds":{"type":"array","items":{"type":"string"},"description":"List of HTTP headers.\n\nParameter meaning depends on the value of the \u003cspan pulumi-lang-nodejs=\"`mode`\" pulumi-lang-dotnet=\"`Mode`\" pulumi-lang-go=\"`mode`\" pulumi-lang-python=\"`mode`\" pulumi-lang-yaml=\"`mode`\" pulumi-lang-java=\"`mode`\"\u003e`mode`\u003c/span\u003e field:\n- **show** - List of HTTP headers to hide from response.\n- **hide** - List of HTTP headers to include in response. Other HTTP headers will be hidden.\n\nThe following headers are required and cannot be hidden from response:\n- `Connection`\n- `Content-Length`\n- `Content-Type`\n- `Date`\n- `Server`\n"},"mode":{"type":"string","description":"How HTTP headers are hidden from the response.\n\nPossible values:\n- **show** - Hide only HTTP headers listed in the \u003cspan pulumi-lang-nodejs=\"`excepted`\" pulumi-lang-dotnet=\"`Excepted`\" pulumi-lang-go=\"`excepted`\" pulumi-lang-python=\"`excepted`\" pulumi-lang-yaml=\"`excepted`\" pulumi-lang-java=\"`excepted`\"\u003e`excepted`\u003c/span\u003e field.\n- **hide** - Hide all HTTP headers except headers listed in the \"excepted\" field.\nAvailable values: \"hide\", \"show\".\n"}},"type":"object","required":["enabled","mode"],"language":{"nodejs":{"requiredOutputs":["enabled","excepteds","mode"]}}},"gcore:index/CdnResourceOptionsRewrite:CdnResourceOptionsRewrite":{"properties":{"body":{"type":"string","description":"Path for the Rewrite option.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"},"flag":{"type":"string","description":"Flag for the Rewrite option.\n\nPossible values:\n- **last** - Stop processing the current set of \u003cspan pulumi-lang-nodejs=\"`ngxHttpRewriteModule`\" pulumi-lang-dotnet=\"`NgxHttpRewriteModule`\" pulumi-lang-go=\"`ngxHttpRewriteModule`\" pulumi-lang-python=\"`ngx_http_rewrite_module`\" pulumi-lang-yaml=\"`ngxHttpRewriteModule`\" pulumi-lang-java=\"`ngxHttpRewriteModule`\"\u003e`ngx_http_rewrite_module`\u003c/span\u003e directives and start a search for a new location matching changed URI.\n- **break** - Stop processing the current set of the Rewrite option.\n- **redirect** - Return a temporary redirect with the 302 code; used when a replacement string does not start with `http://`, `https://`, or `$scheme`.\n- **permanent** - Return a permanent redirect with the 301 code.\nAvailable values: \"break\", \"last\", \"redirect\", \"permanent\".\n"}},"type":"object","required":["body","enabled"],"language":{"nodejs":{"requiredOutputs":["body","enabled","flag"]}}},"gcore:index/CdnResourceOptionsSecureKey:CdnResourceOptionsSecureKey":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"key":{"type":"string","description":"Key generated on your side that will be used for URL signing.\n"},"type":{"type":"number","description":"Type of URL signing.\n\nPossible types:\n- **Type 0** - Includes end user IP to secure token generation.\n- **Type 2** - Excludes end user IP from secure token generation.\nAvailable values: 0, 2.\n"}},"type":"object","required":["enabled","key"],"language":{"nodejs":{"requiredOutputs":["enabled","key","type"]}}},"gcore:index/CdnResourceOptionsSlice:CdnResourceOptionsSlice":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsSni:CdnResourceOptionsSni":{"properties":{"customHostname":{"type":"string","description":"Custom SNI hostname.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"},"sniType":{"type":"string","description":"SNI (Server Name Indication) type.\n\nPossible values:\n- **dynamic** - SNI hostname depends on `hostHeader` and \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e options.\nIt has several possible combinations:\n- If the `hostHeader` option is enabled and specified, SNI hostname matches the Host header.\n- If the \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e option is enabled and has true value, SNI hostname matches the Host header used in the request made to a CDN.\n- If the `hostHeader` and \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e options are disabled, SNI hostname matches the primary CNAME.\n- **custom** - custom SNI hostname is in use.\nAvailable values: \"dynamic\", \"custom\".\n"}},"type":"object","required":["customHostname","enabled"],"language":{"nodejs":{"requiredOutputs":["customHostname","enabled","sniType"]}}},"gcore:index/CdnResourceOptionsStale:CdnResourceOptionsStale":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Defines list of errors for which \"Always online\" option is applied.\n"}},"type":"object","required":["enabled","values"]},"gcore:index/CdnResourceOptionsStaticRequestHeaders:CdnResourceOptionsStaticRequestHeaders":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"object","additionalProperties":{"type":"string"},"description":"A MAP for static headers in a format of `header_name:\u003cspan pulumi-lang-nodejs=\" headerValue`\" pulumi-lang-dotnet=\" HeaderValue`\" pulumi-lang-go=\" headerValue`\" pulumi-lang-python=\" header_value`\" pulumi-lang-yaml=\" headerValue`\" pulumi-lang-java=\" headerValue`\"\u003e header_value`\u003c/span\u003e.\n\nRestrictions:\n- **Header name** - Maximum 255 symbols, may contain Latin letters (A-Z, a-z), numbers (0-9), dashes, and underscores.\n- **Header value** - Maximum 512 symbols, may contain letters (a-z), numbers (0-9), spaces, and symbols (`~!@#%%^\u0026*()-_=+ /|\\\";:?.,\u003e\u003c{}[]). Must start with a letter, number, asterisk or {.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsStaticResponseHeaders:CdnResourceOptionsStaticResponseHeaders":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsStaticResponseHeadersValue:CdnResourceOptionsStaticResponseHeadersValue"}}},"type":"object","required":["enabled","values"]},"gcore:index/CdnResourceOptionsStaticResponseHeadersValue:CdnResourceOptionsStaticResponseHeadersValue":{"properties":{"always":{"type":"boolean","description":"Defines whether the header will be added to a response from CDN regardless of response code.\n\nPossible values:\n- **true** - Header will be added to a response from CDN regardless of response code.\n- **false** - Header will be added only to the following response codes: 200, 201, 204, 206, 301, 302, 303, 304, 307, 308.\n"},"name":{"type":"string","description":"HTTP Header name.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Header value.\n\nRestrictions:\n- Maximum 512 symbols.\n- Letters (a-z), numbers (0-9), spaces, and symbols (`~!@#%%^\u0026*()-_=+ /|\\\";:?.,\u003e\u003c{}[]).\n- Must start with a letter, number, asterisk or {.\n- Multiple values can be added.\n"}},"type":"object","required":["name","values"],"language":{"nodejs":{"requiredOutputs":["always","name","values"]}}},"gcore:index/CdnResourceOptionsTlsVersions:CdnResourceOptionsTlsVersions":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"List of SSL/TLS protocol versions (case sensitive).\n"}},"type":"object","required":["enabled","values"]},"gcore:index/CdnResourceOptionsUseDefaultLeChain:CdnResourceOptionsUseDefaultLeChain":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Default Let's Encrypt certificate chain. This is a deprecated version, use it only for compatibilities with Android devices 7.1.1 or lower.\n- **false** - Alternative Let's Encrypt certificate chain.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsUseDns01LeChallenge:CdnResourceOptionsUseDns01LeChallenge":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - DNS-01 challenge is used to issue Let's Encrypt certificate.\n- **false** - HTTP-01 challenge is used to issue Let's Encrypt certificate.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsUseRsaLeCert:CdnResourceOptionsUseRsaLeCert":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - RSA Let's Encrypt certificate.\n- **false** - ECDSA Let's Encrypt certificate.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsUserAgentAcl:CdnResourceOptionsUserAgentAcl":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of User-Agents that will be allowed/denied.\n\nThe meaning of the parameter depends on \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e:\n- **allow** - List of User-Agents for which access is prohibited.\n- **deny** - List of User-Agents for which access is allowed.\n\nYou can provide exact User-Agent strings or regular expressions. Regular expressions must start\nwith `~` (case-sensitive) or `~*` (case-insensitive).\n\nUse an empty string `\"\"` to allow/deny access when the User-Agent header is empty.\n"},"policyType":{"type":"string","description":"User-Agents policy type.\n\nPossible values:\n- **allow** - Allow access for all User-Agents except specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\n- **deny** - Deny access for all User-Agents except specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\nAvailable values: \"allow\", \"deny\".\n"}},"type":"object","required":["enabled","exceptedValues","policyType"]},"gcore:index/CdnResourceOptionsWaap:CdnResourceOptionsWaap":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceOptionsWebsockets:CdnResourceOptionsWebsockets":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptions:CdnResourceRuleOptions":{"properties":{"allowedHttpMethods":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsAllowedHttpMethods:CdnResourceRuleOptionsAllowedHttpMethods","description":"HTTP methods allowed for content requests from the CDN.\n"},"botProtection":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsBotProtection:CdnResourceRuleOptionsBotProtection","description":"Allows to prevent online services from overloading and ensure your business workflow running smoothly.\n"},"brotliCompression":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsBrotliCompression:CdnResourceRuleOptionsBrotliCompression","description":"Compresses content with Brotli on the CDN side. CDN servers will request only uncompressed content from the origin.\n"},"browserCacheSettings":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsBrowserCacheSettings:CdnResourceRuleOptionsBrowserCacheSettings","description":"Cache expiration time for users browsers in seconds.\n\nCache expiration time is applied to the following response codes: 200, 201, 204, 206, 301, 302, 303, 304, 307, 308.\n\nResponses with other codes will not be cached.\n"},"cacheHttpHeaders":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsCacheHttpHeaders:CdnResourceRuleOptionsCacheHttpHeaders","description":"**Legacy option**. Use the \u003cspan pulumi-lang-nodejs=\"`responseHeadersHidingPolicy`\" pulumi-lang-dotnet=\"`ResponseHeadersHidingPolicy`\" pulumi-lang-go=\"`responseHeadersHidingPolicy`\" pulumi-lang-python=\"`response_headers_hiding_policy`\" pulumi-lang-yaml=\"`responseHeadersHidingPolicy`\" pulumi-lang-java=\"`responseHeadersHidingPolicy`\"\u003e`response_headers_hiding_policy`\u003c/span\u003e option instead.\n\nHTTP Headers that must be included in the response.\n","deprecationMessage":"Deprecated"},"cors":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsCors:CdnResourceRuleOptionsCors","description":"Enables or disables CORS (Cross-Origin Resource Sharing) header support.\n\nCORS header support allows the CDN to add the Access-Control-Allow-Origin header to a response to a browser.\n"},"countryAcl":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsCountryAcl:CdnResourceRuleOptionsCountryAcl","description":"Enables control access to content for specified countries.\n"},"disableCache":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsDisableCache:CdnResourceRuleOptionsDisableCache","description":"**Legacy option**. Use the \u003cspan pulumi-lang-nodejs=\"`edgeCacheSettings`\" pulumi-lang-dotnet=\"`EdgeCacheSettings`\" pulumi-lang-go=\"`edgeCacheSettings`\" pulumi-lang-python=\"`edge_cache_settings`\" pulumi-lang-yaml=\"`edgeCacheSettings`\" pulumi-lang-java=\"`edgeCacheSettings`\"\u003e`edge_cache_settings`\u003c/span\u003e option instead.\n\nAllows the complete disabling of content caching.\n","deprecationMessage":"Deprecated"},"disableProxyForceRanges":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsDisableProxyForceRanges:CdnResourceRuleOptionsDisableProxyForceRanges","description":"Allows 206 responses regardless of the settings of an origin source.\n"},"edgeCacheSettings":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsEdgeCacheSettings:CdnResourceRuleOptionsEdgeCacheSettings","description":"Cache expiration time for CDN servers.\n\n\u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e fields cannot be used simultaneously.\n"},"fastedge":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsFastedge:CdnResourceRuleOptionsFastedge","description":"Allows to configure FastEdge app to be called on different request/response phases.\n\nNote: At least one of \u003cspan pulumi-lang-nodejs=\"`onRequestHeaders`\" pulumi-lang-dotnet=\"`OnRequestHeaders`\" pulumi-lang-go=\"`onRequestHeaders`\" pulumi-lang-python=\"`on_request_headers`\" pulumi-lang-yaml=\"`onRequestHeaders`\" pulumi-lang-java=\"`onRequestHeaders`\"\u003e`on_request_headers`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`onRequestBody`\" pulumi-lang-dotnet=\"`OnRequestBody`\" pulumi-lang-go=\"`onRequestBody`\" pulumi-lang-python=\"`on_request_body`\" pulumi-lang-yaml=\"`onRequestBody`\" pulumi-lang-java=\"`onRequestBody`\"\u003e`on_request_body`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`onResponseHeaders`\" pulumi-lang-dotnet=\"`OnResponseHeaders`\" pulumi-lang-go=\"`onResponseHeaders`\" pulumi-lang-python=\"`on_response_headers`\" pulumi-lang-yaml=\"`onResponseHeaders`\" pulumi-lang-java=\"`onResponseHeaders`\"\u003e`on_response_headers`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`onResponseBody`\" pulumi-lang-dotnet=\"`OnResponseBody`\" pulumi-lang-go=\"`onResponseBody`\" pulumi-lang-python=\"`on_response_body`\" pulumi-lang-yaml=\"`onResponseBody`\" pulumi-lang-java=\"`onResponseBody`\"\u003e`on_response_body`\u003c/span\u003e must be specified.\n"},"fetchCompressed":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsFetchCompressed:CdnResourceRuleOptionsFetchCompressed","description":"Makes the CDN request compressed content from the origin.\n\nThe origin server should support compression. CDN servers will not decompress your content even if a user browser does not accept compression.\n\nNotes:\n\n1. \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e is not supported with `gzipON` or \u003cspan pulumi-lang-nodejs=\"`brotliCompression`\" pulumi-lang-dotnet=\"`BrotliCompression`\" pulumi-lang-go=\"`brotliCompression`\" pulumi-lang-python=\"`brotli_compression`\" pulumi-lang-yaml=\"`brotliCompression`\" pulumi-lang-java=\"`brotliCompression`\"\u003e`brotli_compression`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`slice`\" pulumi-lang-dotnet=\"`Slice`\" pulumi-lang-go=\"`slice`\" pulumi-lang-python=\"`slice`\" pulumi-lang-yaml=\"`slice`\" pulumi-lang-java=\"`slice`\"\u003e`slice`\u003c/span\u003e options enabled.\n2. \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e overrides `gzipON` and \u003cspan pulumi-lang-nodejs=\"`brotliCompression`\" pulumi-lang-dotnet=\"`BrotliCompression`\" pulumi-lang-go=\"`brotliCompression`\" pulumi-lang-python=\"`brotli_compression`\" pulumi-lang-yaml=\"`brotliCompression`\" pulumi-lang-java=\"`brotliCompression`\"\u003e`brotli_compression`\u003c/span\u003e in rule. If you enable it in CDN resource and want to use `gzipON` and \u003cspan pulumi-lang-nodejs=\"`brotliCompression`\" pulumi-lang-dotnet=\"`BrotliCompression`\" pulumi-lang-go=\"`brotliCompression`\" pulumi-lang-python=\"`brotli_compression`\" pulumi-lang-yaml=\"`brotliCompression`\" pulumi-lang-java=\"`brotliCompression`\"\u003e`brotli_compression`\u003c/span\u003e in a rule, you have to specify `\u003cspan pulumi-lang-nodejs=\"\"fetchCompressed\"\" pulumi-lang-dotnet=\"\"FetchCompressed\"\" pulumi-lang-go=\"\"fetchCompressed\"\" pulumi-lang-python=\"\"fetch_compressed\"\" pulumi-lang-yaml=\"\"fetchCompressed\"\" pulumi-lang-java=\"\"fetchCompressed\"\"\u003e\"fetch_compressed\"\u003c/span\u003e: false` in the rule.\n"},"followOriginRedirect":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsFollowOriginRedirect:CdnResourceRuleOptionsFollowOriginRedirect","description":"Enables redirection from origin.\nIf the origin server returns a redirect, the option allows the CDN to pull the requested content from the origin server that was returned in the redirect.\n"},"forceReturn":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsForceReturn:CdnResourceRuleOptionsForceReturn","description":"Applies custom HTTP response codes for CDN content.\n\nThe following codes are reserved by our system and cannot be specified in this option: 408, 444, 477, 494, 495, 496, 497, 499.\n"},"forwardHostHeader":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsForwardHostHeader:CdnResourceRuleOptionsForwardHostHeader","description":"Forwards the Host header from a end-user request to an origin server.\n\n`hostHeader` and \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"gzipOn":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsGzipOn:CdnResourceRuleOptionsGzipOn","description":"Compresses content with gzip on the CDN end. CDN servers will request only uncompressed content from the origin.\n\nNotes:\n\n1. Compression with gzip is not supported with \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`slice`\" pulumi-lang-dotnet=\"`Slice`\" pulumi-lang-go=\"`slice`\" pulumi-lang-python=\"`slice`\" pulumi-lang-yaml=\"`slice`\" pulumi-lang-java=\"`slice`\"\u003e`slice`\u003c/span\u003e options enabled.\n2. \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e option in CDN resource settings overrides `gzipON` in rules. If you enable \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e in CDN resource and want to enable `gzipON` in rules, you need to specify `\u003cspan pulumi-lang-nodejs=\"\"fetchCompressed\"\" pulumi-lang-dotnet=\"\"FetchCompressed\"\" pulumi-lang-go=\"\"fetchCompressed\"\" pulumi-lang-python=\"\"fetch_compressed\"\" pulumi-lang-yaml=\"\"fetchCompressed\"\" pulumi-lang-java=\"\"fetchCompressed\"\"\u003e\"fetch_compressed\"\u003c/span\u003e:false` for rules.\n"},"hostHeader":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsHostHeader:CdnResourceRuleOptionsHostHeader","description":"Sets the Host header that CDN servers use when request content from an origin server.\nYour server must be able to process requests with the chosen header.\n\nIf the option is \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e, the Host Header value is equal to first CNAME.\n\n`hostHeader` and \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"ignoreCookie":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsIgnoreCookie:CdnResourceRuleOptionsIgnoreCookie","description":"Defines whether the files with the Set-Cookies header are cached as one file or as different ones.\n"},"ignoreQueryString":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsIgnoreQueryString:CdnResourceRuleOptionsIgnoreQueryString","description":"How a file with different query strings is cached: either as one object (option is enabled) or as different objects (option is disabled.)\n\n`ignoreQueryString`, \u003cspan pulumi-lang-nodejs=\"`queryParamsWhitelist`\" pulumi-lang-dotnet=\"`QueryParamsWhitelist`\" pulumi-lang-go=\"`queryParamsWhitelist`\" pulumi-lang-python=\"`query_params_whitelist`\" pulumi-lang-yaml=\"`queryParamsWhitelist`\" pulumi-lang-java=\"`queryParamsWhitelist`\"\u003e`query_params_whitelist`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`queryParamsBlacklist`\" pulumi-lang-dotnet=\"`QueryParamsBlacklist`\" pulumi-lang-go=\"`queryParamsBlacklist`\" pulumi-lang-python=\"`query_params_blacklist`\" pulumi-lang-yaml=\"`queryParamsBlacklist`\" pulumi-lang-java=\"`queryParamsBlacklist`\"\u003e`query_params_blacklist`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"imageStack":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsImageStack:CdnResourceRuleOptionsImageStack","description":"Transforms JPG and PNG images (for example, resize or crop) and automatically converts them to WebP or AVIF format.\n"},"ipAddressAcl":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsIpAddressAcl:CdnResourceRuleOptionsIpAddressAcl","description":"Controls access to the CDN resource content for specific IP addresses.\n\nIf you want to use IPs from our CDN servers IP list for IP ACL configuration, you have to independently monitor their relevance.\n\nWe recommend you use a script for automatically update IP ACL. [Read more.](https://www.terraform.io/docs/api-reference/cdn/ip-addresses-list/get-cdn-servers-ip-addresses)\n"},"limitBandwidth":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsLimitBandwidth:CdnResourceRuleOptionsLimitBandwidth","description":"Allows to control the download speed per connection.\n"},"proxyCacheKey":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsProxyCacheKey:CdnResourceRuleOptionsProxyCacheKey","description":"Allows you to modify your cache key. If omitted, the default value is `$request_uri`.\n\nCombine the specified variables to create a key for caching.\n- **$\u003cspan pulumi-lang-nodejs=\"`requestUri`\" pulumi-lang-dotnet=\"`RequestUri`\" pulumi-lang-go=\"`requestUri`\" pulumi-lang-python=\"`request_uri`\" pulumi-lang-yaml=\"`requestUri`\" pulumi-lang-java=\"`requestUri`\"\u003e`request_uri`\u003c/span\u003e**\n- **$scheme**\n- **$uri**\n\n**Warning**: Enabling and changing this option can invalidate your current cache and affect the cache hit ratio. Furthermore, the \"Purge by pattern\" option will not work.\n"},"proxyCacheMethodsSet":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsProxyCacheMethodsSet:CdnResourceRuleOptionsProxyCacheMethodsSet","description":"Caching for POST requests along with default GET and HEAD.\n"},"proxyConnectTimeout":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsProxyConnectTimeout:CdnResourceRuleOptionsProxyConnectTimeout","description":"The time limit for establishing a connection with the origin.\n"},"proxyReadTimeout":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsProxyReadTimeout:CdnResourceRuleOptionsProxyReadTimeout","description":"The time limit for receiving a partial response from the origin.\nIf no response is received within this time, the connection will be closed.\n\n**Note:**\nWhen used with a WebSocket connection, this option supports values only in the range 1–20 seconds (instead of the usual 1–30 seconds).\n"},"queryParamsBlacklist":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsQueryParamsBlacklist:CdnResourceRuleOptionsQueryParamsBlacklist","description":"Files with the specified query parameters are cached as one object, files with other parameters are cached as different objects.\n\n`ignoreQueryString`, \u003cspan pulumi-lang-nodejs=\"`queryParamsWhitelist`\" pulumi-lang-dotnet=\"`QueryParamsWhitelist`\" pulumi-lang-go=\"`queryParamsWhitelist`\" pulumi-lang-python=\"`query_params_whitelist`\" pulumi-lang-yaml=\"`queryParamsWhitelist`\" pulumi-lang-java=\"`queryParamsWhitelist`\"\u003e`query_params_whitelist`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`queryParamsBlacklist`\" pulumi-lang-dotnet=\"`QueryParamsBlacklist`\" pulumi-lang-go=\"`queryParamsBlacklist`\" pulumi-lang-python=\"`query_params_blacklist`\" pulumi-lang-yaml=\"`queryParamsBlacklist`\" pulumi-lang-java=\"`queryParamsBlacklist`\"\u003e`query_params_blacklist`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"queryParamsWhitelist":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsQueryParamsWhitelist:CdnResourceRuleOptionsQueryParamsWhitelist","description":"Files with the specified query parameters are cached as different objects, files with other parameters are cached as one object.\n\n`ignoreQueryString`, \u003cspan pulumi-lang-nodejs=\"`queryParamsWhitelist`\" pulumi-lang-dotnet=\"`QueryParamsWhitelist`\" pulumi-lang-go=\"`queryParamsWhitelist`\" pulumi-lang-python=\"`query_params_whitelist`\" pulumi-lang-yaml=\"`queryParamsWhitelist`\" pulumi-lang-java=\"`queryParamsWhitelist`\"\u003e`query_params_whitelist`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`queryParamsBlacklist`\" pulumi-lang-dotnet=\"`QueryParamsBlacklist`\" pulumi-lang-go=\"`queryParamsBlacklist`\" pulumi-lang-python=\"`query_params_blacklist`\" pulumi-lang-yaml=\"`queryParamsBlacklist`\" pulumi-lang-java=\"`queryParamsBlacklist`\"\u003e`query_params_blacklist`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"queryStringForwarding":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsQueryStringForwarding:CdnResourceRuleOptionsQueryStringForwarding","description":"The Query String Forwarding feature allows for the seamless transfer of parameters embedded in playlist files to the corresponding media chunk files.\nThis functionality ensures that specific attributes, such as authentication tokens or tracking information, are consistently passed along from the playlist manifest to the individual media segments.\nThis is particularly useful for maintaining continuity in security, analytics, and any other parameter-based operations across the entire media delivery workflow.\n"},"redirectHttpToHttps":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsRedirectHttpToHttps:CdnResourceRuleOptionsRedirectHttpToHttps","description":"Enables redirect from HTTP to HTTPS.\n\n\u003cspan pulumi-lang-nodejs=\"`redirectHttpToHttps`\" pulumi-lang-dotnet=\"`RedirectHttpToHttps`\" pulumi-lang-go=\"`redirectHttpToHttps`\" pulumi-lang-python=\"`redirect_http_to_https`\" pulumi-lang-yaml=\"`redirectHttpToHttps`\" pulumi-lang-java=\"`redirectHttpToHttps`\"\u003e`redirect_http_to_https`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`redirectHttpsToHttp`\" pulumi-lang-dotnet=\"`RedirectHttpsToHttp`\" pulumi-lang-go=\"`redirectHttpsToHttp`\" pulumi-lang-python=\"`redirect_https_to_http`\" pulumi-lang-yaml=\"`redirectHttpsToHttp`\" pulumi-lang-java=\"`redirectHttpsToHttp`\"\u003e`redirect_https_to_http`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"redirectHttpsToHttp":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsRedirectHttpsToHttp:CdnResourceRuleOptionsRedirectHttpsToHttp","description":"Enables redirect from HTTPS to HTTP.\n\n\u003cspan pulumi-lang-nodejs=\"`redirectHttpToHttps`\" pulumi-lang-dotnet=\"`RedirectHttpToHttps`\" pulumi-lang-go=\"`redirectHttpToHttps`\" pulumi-lang-python=\"`redirect_http_to_https`\" pulumi-lang-yaml=\"`redirectHttpToHttps`\" pulumi-lang-java=\"`redirectHttpToHttps`\"\u003e`redirect_http_to_https`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`redirectHttpsToHttp`\" pulumi-lang-dotnet=\"`RedirectHttpsToHttp`\" pulumi-lang-go=\"`redirectHttpsToHttp`\" pulumi-lang-python=\"`redirect_https_to_http`\" pulumi-lang-yaml=\"`redirectHttpsToHttp`\" pulumi-lang-java=\"`redirectHttpsToHttp`\"\u003e`redirect_https_to_http`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"referrerAcl":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsReferrerAcl:CdnResourceRuleOptionsReferrerAcl","description":"Controls access to the CDN resource content for specified domain names.\n"},"requestLimiter":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsRequestLimiter:CdnResourceRuleOptionsRequestLimiter","description":"Option allows to limit the amount of HTTP requests.\n"},"responseHeadersHidingPolicy":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsResponseHeadersHidingPolicy:CdnResourceRuleOptionsResponseHeadersHidingPolicy","description":"Hides HTTP headers from an origin server in the CDN response.\n"},"rewrite":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsRewrite:CdnResourceRuleOptionsRewrite","description":"Changes and redirects requests from the CDN to the origin. It operates according to the [Nginx](https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite) configuration.\n"},"secureKey":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsSecureKey:CdnResourceRuleOptionsSecureKey","description":"Configures access with tokenized URLs. This makes impossible to access content without a valid (unexpired) token.\n"},"slice":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsSlice:CdnResourceRuleOptionsSlice","description":"Requests and caches files larger than 10 MB in parts (no larger than 10 MB per part.) This reduces time to first byte.\n\nThe option is based on the [Slice](https://nginx.org/en/docs/http/ngx_http_slice_module.html) module.\n\nNotes:\n\n1. Origin must support HTTP Range requests.\n2. Not supported with `gzipON`, \u003cspan pulumi-lang-nodejs=\"`brotliCompression`\" pulumi-lang-dotnet=\"`BrotliCompression`\" pulumi-lang-go=\"`brotliCompression`\" pulumi-lang-python=\"`brotli_compression`\" pulumi-lang-yaml=\"`brotliCompression`\" pulumi-lang-java=\"`brotliCompression`\"\u003e`brotli_compression`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e options enabled.\n"},"sni":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsSni:CdnResourceRuleOptionsSni","description":"The hostname that is added to SNI requests from CDN servers to the origin server via HTTPS.\n\nSNI is generally only required if your origin uses shared hosting or does not have a dedicated IP address.\nIf the origin server presents multiple certificates, SNI allows the origin server to know which certificate to use for the connection.\n\nThe option works only if `originProtocol` parameter is `HTTPS` or `MATCH`.\n"},"stale":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsStale:CdnResourceRuleOptionsStale","description":"Serves stale cached content in case of origin unavailability.\n"},"staticHeaders":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsStaticHeaders:CdnResourceRuleOptionsStaticHeaders","description":"**Legacy option**. Use the \u003cspan pulumi-lang-nodejs=\"`staticResponseHeaders`\" pulumi-lang-dotnet=\"`StaticResponseHeaders`\" pulumi-lang-go=\"`staticResponseHeaders`\" pulumi-lang-python=\"`static_response_headers`\" pulumi-lang-yaml=\"`staticResponseHeaders`\" pulumi-lang-java=\"`staticResponseHeaders`\"\u003e`static_response_headers`\u003c/span\u003e option instead.\n\nCustom HTTP Headers that a CDN server adds to response. Up to fifty custom HTTP Headers can be specified. May contain a header with multiple values.\n","deprecationMessage":"Deprecated"},"staticRequestHeaders":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsStaticRequestHeaders:CdnResourceRuleOptionsStaticRequestHeaders","description":"Custom HTTP Headers for a CDN server to add to request. Up to fifty custom HTTP Headers can be specified.\n"},"staticResponseHeaders":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsStaticResponseHeaders:CdnResourceRuleOptionsStaticResponseHeaders","description":"Custom HTTP Headers that a CDN server adds to a response.\n"},"userAgentAcl":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsUserAgentAcl:CdnResourceRuleOptionsUserAgentAcl","description":"Controls access to the content for specified User-Agents.\n"},"waap":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsWaap:CdnResourceRuleOptionsWaap","description":"Allows to enable WAAP (Web Application and API Protection).\n"},"websockets":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsWebsockets:CdnResourceRuleOptionsWebsockets","description":"Enables or disables WebSockets connections to an origin server.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHttpMethods","botProtection","brotliCompression","browserCacheSettings","cacheHttpHeaders","cors","countryAcl","disableCache","disableProxyForceRanges","edgeCacheSettings","fastedge","fetchCompressed","followOriginRedirect","forceReturn","forwardHostHeader","gzipOn","hostHeader","ignoreCookie","ignoreQueryString","imageStack","ipAddressAcl","limitBandwidth","proxyCacheKey","proxyCacheMethodsSet","proxyConnectTimeout","proxyReadTimeout","queryParamsBlacklist","queryParamsWhitelist","queryStringForwarding","redirectHttpToHttps","redirectHttpsToHttp","referrerAcl","requestLimiter","responseHeadersHidingPolicy","rewrite","secureKey","slice","sni","stale","staticHeaders","staticRequestHeaders","staticResponseHeaders","userAgentAcl","waap","websockets"]}}},"gcore:index/CdnResourceRuleOptionsAllowedHttpMethods:CdnResourceRuleOptionsAllowedHttpMethods":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"}}},"type":"object","required":["enabled","values"]},"gcore:index/CdnResourceRuleOptionsBotProtection:CdnResourceRuleOptionsBotProtection":{"properties":{"botChallenge":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsBotProtectionBotChallenge:CdnResourceRuleOptionsBotProtectionBotChallenge","description":"Controls the bot challenge module state.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"}},"type":"object","required":["botChallenge","enabled"]},"gcore:index/CdnResourceRuleOptionsBotProtectionBotChallenge:CdnResourceRuleOptionsBotProtectionBotChallenge":{"properties":{"enabled":{"type":"boolean","description":"Possible values:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled"]}}},"gcore:index/CdnResourceRuleOptionsBrotliCompression:CdnResourceRuleOptionsBrotliCompression":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Allows to select the content types you want to compress.\n\n`text/html` is a mandatory content type.\n"}},"type":"object","required":["enabled","values"]},"gcore:index/CdnResourceRuleOptionsBrowserCacheSettings:CdnResourceRuleOptionsBrowserCacheSettings":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Set the cache expiration time to '0s' to disable caching.\n\nThe maximum duration is any equivalent to \u003cspan pulumi-lang-nodejs=\"`1y`\" pulumi-lang-dotnet=\"`1y`\" pulumi-lang-go=\"`1y`\" pulumi-lang-python=\"`1y`\" pulumi-lang-yaml=\"`1y`\" pulumi-lang-java=\"`1y`\"\u003e`1y`\u003c/span\u003e.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsCacheHttpHeaders:CdnResourceRuleOptionsCacheHttpHeaders":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"}}},"type":"object","required":["enabled","values"]},"gcore:index/CdnResourceRuleOptionsCors:CdnResourceRuleOptionsCors":{"properties":{"always":{"type":"boolean","description":"Defines whether the Access-Control-Allow-Origin header should be added to a response from CDN regardless of response code.\n\nPossible values:\n- **true** - Header will be added to a response regardless of response code.\n- **false** - Header will only be added to responses with codes: 200, 201, 204, 206, 301, 302, 303, 304, 307, 308.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Value of the Access-Control-Allow-Origin header.\n\nPossible values:\n- **Adds * as the Access-Control-Allow-Origin header value** - Content will be uploaded for requests from any domain.\n`\"value\": [\"*\"]`\n- **Adds \"$http_origin\" as the Access-Control-Allow-Origin header value if the origin matches one of the listed domains** - Content will be uploaded only for requests from the domains specified in the field.\n`\"value\": [\"domain.com\", \"second.dom.com\"]`\n- **Adds \"$http_origin\" as the Access-Control-Allow-Origin header value** - Content will be uploaded for requests from any domain, and the domain from which the request was sent will be added to the \"Access-Control-Allow-Origin\" header in the response.\n`\"value\": [\"$http_origin\"]`\n"}},"type":"object","required":["enabled","values"],"language":{"nodejs":{"requiredOutputs":["always","enabled","values"]}}},"gcore:index/CdnResourceRuleOptionsCountryAcl:CdnResourceRuleOptionsCountryAcl":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of countries according to ISO-3166-1.\n\nThe meaning of the parameter depends on \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e value:\n- **allow** - List of countries for which access is prohibited.\n- **deny** - List of countries for which access is allowed.\n"},"policyType":{"type":"string","description":"Defines the type of CDN resource access policy.\n\nPossible values:\n- **allow** - Access is allowed for all the countries except for those specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\n- **deny** - Access is denied for all the countries except for those specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\nAvailable values: \"allow\", \"deny\".\n"}},"type":"object","required":["enabled","exceptedValues","policyType"]},"gcore:index/CdnResourceRuleOptionsDisableCache:CdnResourceRuleOptionsDisableCache":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - content caching is disabled.\n- **false** - content caching is enabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsDisableProxyForceRanges:CdnResourceRuleOptionsDisableProxyForceRanges":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsEdgeCacheSettings:CdnResourceRuleOptionsEdgeCacheSettings":{"properties":{"customValues":{"type":"object","additionalProperties":{"type":"string"},"description":"A MAP object representing the caching time in seconds for a response with a specific response code.\n\nThese settings have a higher priority than the \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e field.\n\n- Use \u003cspan pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\"\u003e`any`\u003c/span\u003e key to specify caching time for all response codes.\n- Use \u003cspan pulumi-lang-nodejs=\"`0s`\" pulumi-lang-dotnet=\"`0s`\" pulumi-lang-go=\"`0s`\" pulumi-lang-python=\"`0s`\" pulumi-lang-yaml=\"`0s`\" pulumi-lang-java=\"`0s`\"\u003e`0s`\u003c/span\u003e value to disable caching for a specific response code.\n"},"default":{"type":"string","description":"Enables content caching according to the origin cache settings.\n\nThe value is applied to the following response codes 200, 201, 204, 206, 301, 302, 303, 304, 307, 308, if an origin server does not have caching HTTP headers.\n\nResponses with other codes will not be cached.\n\nThe maximum duration is any equivalent to \u003cspan pulumi-lang-nodejs=\"`1y`\" pulumi-lang-dotnet=\"`1y`\" pulumi-lang-go=\"`1y`\" pulumi-lang-python=\"`1y`\" pulumi-lang-yaml=\"`1y`\" pulumi-lang-java=\"`1y`\"\u003e`1y`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Caching time.\n\nThe value is applied to the following response codes: 200, 206, 301, 302.\nResponses with codes 4xx, 5xx will not be cached.\n\nUse \u003cspan pulumi-lang-nodejs=\"`0s`\" pulumi-lang-dotnet=\"`0s`\" pulumi-lang-go=\"`0s`\" pulumi-lang-python=\"`0s`\" pulumi-lang-yaml=\"`0s`\" pulumi-lang-java=\"`0s`\"\u003e`0s`\u003c/span\u003e to disable caching.\n\nThe maximum duration is any equivalent to \u003cspan pulumi-lang-nodejs=\"`1y`\" pulumi-lang-dotnet=\"`1y`\" pulumi-lang-go=\"`1y`\" pulumi-lang-python=\"`1y`\" pulumi-lang-yaml=\"`1y`\" pulumi-lang-java=\"`1y`\"\u003e`1y`\u003c/span\u003e.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["customValues","enabled"]}}},"gcore:index/CdnResourceRuleOptionsFastedge:CdnResourceRuleOptionsFastedge":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"onRequestBody":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsFastedgeOnRequestBody:CdnResourceRuleOptionsFastedgeOnRequestBody","description":"Allows to configure FastEdge application that will be called to handle request body as soon as CDN receives incoming HTTP request.\n"},"onRequestHeaders":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsFastedgeOnRequestHeaders:CdnResourceRuleOptionsFastedgeOnRequestHeaders","description":"Allows to configure FastEdge application that will be called to handle request headers as soon as CDN receives incoming HTTP request, **before cache**.\n"},"onResponseBody":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsFastedgeOnResponseBody:CdnResourceRuleOptionsFastedgeOnResponseBody","description":"Allows to configure FastEdge application that will be called to handle response body before CDN sends the HTTP response.\n"},"onResponseHeaders":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsFastedgeOnResponseHeaders:CdnResourceRuleOptionsFastedgeOnResponseHeaders","description":"Allows to configure FastEdge application that will be called to handle response headers before CDN sends the HTTP response.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","onRequestBody","onRequestHeaders","onResponseBody","onResponseHeaders"]}}},"gcore:index/CdnResourceRuleOptionsFastedgeOnRequestBody:CdnResourceRuleOptionsFastedgeOnRequestBody":{"properties":{"appId":{"type":"string","description":"The ID of the application in FastEdge.\n"},"enabled":{"type":"boolean","description":"Determines if the FastEdge application should be called whenever HTTP request headers are received.\n"},"executeOnEdge":{"type":"boolean","description":"Determines if the request should be executed at the edge nodes.\n"},"executeOnShield":{"type":"boolean","description":"Determines if the request should be executed at the shield nodes.\n"},"interruptOnError":{"type":"boolean","description":"Determines if the request execution should be interrupted when an error occurs.\n"}},"type":"object","required":["appId"],"language":{"nodejs":{"requiredOutputs":["appId","enabled","executeOnEdge","executeOnShield","interruptOnError"]}}},"gcore:index/CdnResourceRuleOptionsFastedgeOnRequestHeaders:CdnResourceRuleOptionsFastedgeOnRequestHeaders":{"properties":{"appId":{"type":"string","description":"The ID of the application in FastEdge.\n"},"enabled":{"type":"boolean","description":"Determines if the FastEdge application should be called whenever HTTP request headers are received.\n"},"executeOnEdge":{"type":"boolean","description":"Determines if the request should be executed at the edge nodes.\n"},"executeOnShield":{"type":"boolean","description":"Determines if the request should be executed at the shield nodes.\n"},"interruptOnError":{"type":"boolean","description":"Determines if the request execution should be interrupted when an error occurs.\n"}},"type":"object","required":["appId"],"language":{"nodejs":{"requiredOutputs":["appId","enabled","executeOnEdge","executeOnShield","interruptOnError"]}}},"gcore:index/CdnResourceRuleOptionsFastedgeOnResponseBody:CdnResourceRuleOptionsFastedgeOnResponseBody":{"properties":{"appId":{"type":"string","description":"The ID of the application in FastEdge.\n"},"enabled":{"type":"boolean","description":"Determines if the FastEdge application should be called whenever HTTP request headers are received.\n"},"executeOnEdge":{"type":"boolean","description":"Determines if the request should be executed at the edge nodes.\n"},"executeOnShield":{"type":"boolean","description":"Determines if the request should be executed at the shield nodes.\n"},"interruptOnError":{"type":"boolean","description":"Determines if the request execution should be interrupted when an error occurs.\n"}},"type":"object","required":["appId"],"language":{"nodejs":{"requiredOutputs":["appId","enabled","executeOnEdge","executeOnShield","interruptOnError"]}}},"gcore:index/CdnResourceRuleOptionsFastedgeOnResponseHeaders:CdnResourceRuleOptionsFastedgeOnResponseHeaders":{"properties":{"appId":{"type":"string","description":"The ID of the application in FastEdge.\n"},"enabled":{"type":"boolean","description":"Determines if the FastEdge application should be called whenever HTTP request headers are received.\n"},"executeOnEdge":{"type":"boolean","description":"Determines if the request should be executed at the edge nodes.\n"},"executeOnShield":{"type":"boolean","description":"Determines if the request should be executed at the shield nodes.\n"},"interruptOnError":{"type":"boolean","description":"Determines if the request execution should be interrupted when an error occurs.\n"}},"type":"object","required":["appId"],"language":{"nodejs":{"requiredOutputs":["appId","enabled","executeOnEdge","executeOnShield","interruptOnError"]}}},"gcore:index/CdnResourceRuleOptionsFetchCompressed:CdnResourceRuleOptionsFetchCompressed":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsFollowOriginRedirect:CdnResourceRuleOptionsFollowOriginRedirect":{"properties":{"codes":{"type":"array","items":{"type":"number"},"description":"Redirect status code that the origin server returns.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["codes","enabled"]},"gcore:index/CdnResourceRuleOptionsForceReturn:CdnResourceRuleOptionsForceReturn":{"properties":{"body":{"type":"string","description":"URL for redirection or text.\n"},"code":{"type":"number","description":"Status code value.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"timeInterval":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsForceReturnTimeInterval:CdnResourceRuleOptionsForceReturnTimeInterval","description":"Controls the time at which a custom HTTP response code should be applied. By default, a custom HTTP response code is applied at any time.\n"}},"type":"object","required":["body","code","enabled"],"language":{"nodejs":{"requiredOutputs":["body","code","enabled","timeInterval"]}}},"gcore:index/CdnResourceRuleOptionsForceReturnTimeInterval:CdnResourceRuleOptionsForceReturnTimeInterval":{"properties":{"endTime":{"type":"string","description":"Time until which a custom HTTP response code should be applied. Indicated in 24-hour format.\n"},"startTime":{"type":"string","description":"Time from which a custom HTTP response code should be applied. Indicated in 24-hour format.\n"},"timeZone":{"type":"string","description":"Time zone used to calculate time.\n"}},"type":"object","required":["endTime","startTime"],"language":{"nodejs":{"requiredOutputs":["endTime","startTime","timeZone"]}}},"gcore:index/CdnResourceRuleOptionsForwardHostHeader:CdnResourceRuleOptionsForwardHostHeader":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsGzipOn:CdnResourceRuleOptionsGzipOn":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsHostHeader:CdnResourceRuleOptionsHostHeader":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Host Header value.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsIgnoreCookie:CdnResourceRuleOptionsIgnoreCookie":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled, files with cookies are cached as one file.\n- **false** - Option is disabled, files with cookies are cached as different files.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsIgnoreQueryString:CdnResourceRuleOptionsIgnoreQueryString":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsImageStack:CdnResourceRuleOptionsImageStack":{"properties":{"avifEnabled":{"type":"boolean","description":"Enables or disables automatic conversion of JPEG and PNG images to AVI format.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"pngLossless":{"type":"boolean","description":"Enables or disables compression without quality loss for PNG format.\n"},"quality":{"type":"number","description":"Defines quality settings for JPG and PNG images. The higher the value, the better the image quality, and the larger the file size after conversion.\n"},"webpEnabled":{"type":"boolean","description":"Enables or disables automatic conversion of JPEG and PNG images to WebP format.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["avifEnabled","enabled","pngLossless","quality","webpEnabled"]}}},"gcore:index/CdnResourceRuleOptionsIpAddressAcl:CdnResourceRuleOptionsIpAddressAcl":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of IP addresses with a subnet mask.\n\nThe meaning of the parameter depends on \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e value:\n- **allow** - List of IP addresses for which access is prohibited.\n- **deny** - List of IP addresses for which access is allowed.\n\nExamples:\n- `192.168.3.2/32`\n- `2a03:d000:2980:7::8/128`\n"},"policyType":{"type":"string","description":"IP access policy type.\n\nPossible values:\n- **allow** - Allow access to all IPs except IPs specified in \u003cspan pulumi-lang-nodejs=\"\"exceptedValues\"\" pulumi-lang-dotnet=\"\"ExceptedValues\"\" pulumi-lang-go=\"\"exceptedValues\"\" pulumi-lang-python=\"\"excepted_values\"\" pulumi-lang-yaml=\"\"exceptedValues\"\" pulumi-lang-java=\"\"exceptedValues\"\"\u003e\"excepted_values\"\u003c/span\u003e field.\n- **deny** - Deny access to all IPs except IPs specified in \u003cspan pulumi-lang-nodejs=\"\"exceptedValues\"\" pulumi-lang-dotnet=\"\"ExceptedValues\"\" pulumi-lang-go=\"\"exceptedValues\"\" pulumi-lang-python=\"\"excepted_values\"\" pulumi-lang-yaml=\"\"exceptedValues\"\" pulumi-lang-java=\"\"exceptedValues\"\"\u003e\"excepted_values\"\u003c/span\u003e field.\nAvailable values: \"allow\", \"deny\".\n"}},"type":"object","required":["enabled","exceptedValues","policyType"]},"gcore:index/CdnResourceRuleOptionsLimitBandwidth:CdnResourceRuleOptionsLimitBandwidth":{"properties":{"buffer":{"type":"number","description":"Amount of downloaded data after which the user will be rate limited.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"limitType":{"type":"string","description":"Method of controlling the download speed per connection.\n\nPossible values:\n- **static** - Use speed and buffer fields to set the download speed limit.\n- **dynamic** - Use query strings **speed** and **buffer** to set the download speed limit.\n\nFor example, when requesting content at the link\n\n```\nhttp://cdn.example.com/video.mp4?speed=50k\u0026buffer=500k\n```\n\nthe download speed will be limited to 50kB/s after 500 kB.\nAvailable values: \"static\", \"dynamic\".\n"},"speed":{"type":"number","description":"Maximum download speed per connection.\n"}},"type":"object","required":["enabled","limitType"]},"gcore:index/CdnResourceRuleOptionsProxyCacheKey:CdnResourceRuleOptionsProxyCacheKey":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Key for caching.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsProxyCacheMethodsSet:CdnResourceRuleOptionsProxyCacheMethodsSet":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsProxyConnectTimeout:CdnResourceRuleOptionsProxyConnectTimeout":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Timeout value in seconds.\n\nSupported range: **1s - 5s**.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsProxyReadTimeout:CdnResourceRuleOptionsProxyReadTimeout":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Timeout value in seconds.\n\nSupported range: **1s - 30s**.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsQueryParamsBlacklist:CdnResourceRuleOptionsQueryParamsBlacklist":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"List of query parameters.\n"}},"type":"object","required":["enabled","values"]},"gcore:index/CdnResourceRuleOptionsQueryParamsWhitelist:CdnResourceRuleOptionsQueryParamsWhitelist":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"List of query parameters.\n"}},"type":"object","required":["enabled","values"]},"gcore:index/CdnResourceRuleOptionsQueryStringForwarding:CdnResourceRuleOptionsQueryStringForwarding":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"forwardExceptKeys":{"type":"array","items":{"type":"string"},"description":"The \u003cspan pulumi-lang-nodejs=\"`forwardExceptKeys`\" pulumi-lang-dotnet=\"`ForwardExceptKeys`\" pulumi-lang-go=\"`forwardExceptKeys`\" pulumi-lang-python=\"`forward_except_keys`\" pulumi-lang-yaml=\"`forwardExceptKeys`\" pulumi-lang-java=\"`forwardExceptKeys`\"\u003e`forward_except_keys`\u003c/span\u003e field provides a mechanism to exclude specific parameters from being forwarded from playlist files to media chunk files.\nBy listing certain keys in this field, you can ensure that these parameters are omitted during the forwarding process.\nThis is particularly useful for preventing sensitive or irrelevant information from being included in requests for media chunks, thereby enhancing security and optimizing performance.\n"},"forwardFromFileTypes":{"type":"array","items":{"type":"string"},"description":"The \u003cspan pulumi-lang-nodejs=\"`forwardFromFilesTypes`\" pulumi-lang-dotnet=\"`ForwardFromFilesTypes`\" pulumi-lang-go=\"`forwardFromFilesTypes`\" pulumi-lang-python=\"`forward_from_files_types`\" pulumi-lang-yaml=\"`forwardFromFilesTypes`\" pulumi-lang-java=\"`forwardFromFilesTypes`\"\u003e`forward_from_files_types`\u003c/span\u003e field specifies the types of playlist files from which parameters will be extracted and forwarded.\nThis typically includes formats that list multiple media chunk references, such as HLS and DASH playlists.\nParameters associated with these playlist files (like query strings or headers) will be propagated to the chunks they reference.\n"},"forwardOnlyKeys":{"type":"array","items":{"type":"string"},"description":"The \u003cspan pulumi-lang-nodejs=\"`forwardOnlyKeys`\" pulumi-lang-dotnet=\"`ForwardOnlyKeys`\" pulumi-lang-go=\"`forwardOnlyKeys`\" pulumi-lang-python=\"`forward_only_keys`\" pulumi-lang-yaml=\"`forwardOnlyKeys`\" pulumi-lang-java=\"`forwardOnlyKeys`\"\u003e`forward_only_keys`\u003c/span\u003e field allows for granular control over which specific parameters are forwarded from playlist files to media chunk files.\nBy specifying certain keys, only those parameters will be propagated, ensuring that only relevant information is passed along.\nThis is particularly useful for security and performance optimization, as it prevents unnecessary or sensitive data from being included in requests for media chunks.\n"},"forwardToFileTypes":{"type":"array","items":{"type":"string"},"description":"The field specifies the types of media chunk files to which parameters, extracted from playlist files, will be forwarded.\nThese refer to the actual segments of media content that are delivered to viewers.\nEnsuring the correct parameters are forwarded to these files is crucial for maintaining the integrity of the streaming session.\n"}},"type":"object","required":["enabled","forwardFromFileTypes","forwardToFileTypes"]},"gcore:index/CdnResourceRuleOptionsRedirectHttpToHttps:CdnResourceRuleOptionsRedirectHttpToHttps":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsRedirectHttpsToHttp:CdnResourceRuleOptionsRedirectHttpsToHttp":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsReferrerAcl:CdnResourceRuleOptionsReferrerAcl":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of domain names or wildcard domains (without protocol: `http://` or `https://`.)\n\nThe meaning of the parameter depends on \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e value:\n- **allow** - List of domain names for which access is prohibited.\n- **deny** - List of IP domain names for which access is allowed.\n\nExamples:\n- `example.com`\n- `*.example.com`\n"},"policyType":{"type":"string","description":"Policy type.\n\nPossible values:\n- **allow** - Allow access to all domain names except the domain names specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\n- **deny** - Deny access to all domain names except the domain names specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\nAvailable values: \"allow\", \"deny\".\n"}},"type":"object","required":["enabled","exceptedValues","policyType"]},"gcore:index/CdnResourceRuleOptionsRequestLimiter:CdnResourceRuleOptionsRequestLimiter":{"properties":{"burst":{"type":"number"},"delay":{"type":"number"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"rate":{"type":"number","description":"Maximum request rate.\n"},"rateUnit":{"type":"string","description":"Units of measurement for the \u003cspan pulumi-lang-nodejs=\"`rate`\" pulumi-lang-dotnet=\"`Rate`\" pulumi-lang-go=\"`rate`\" pulumi-lang-python=\"`rate`\" pulumi-lang-yaml=\"`rate`\" pulumi-lang-java=\"`rate`\"\u003e`rate`\u003c/span\u003e field.\n\nPossible values:\n- **r/s** - Requests per second.\n- **r/m** - Requests per minute.\n\nIf the rate is less than one request per second, it is specified in request per minute (r/m.)\nAvailable values: \"r/s\", \"r/m\".\n"}},"type":"object","required":["enabled","rate"],"language":{"nodejs":{"requiredOutputs":["burst","delay","enabled","rate","rateUnit"]}}},"gcore:index/CdnResourceRuleOptionsResponseHeadersHidingPolicy:CdnResourceRuleOptionsResponseHeadersHidingPolicy":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"excepteds":{"type":"array","items":{"type":"string"},"description":"List of HTTP headers.\n\nParameter meaning depends on the value of the \u003cspan pulumi-lang-nodejs=\"`mode`\" pulumi-lang-dotnet=\"`Mode`\" pulumi-lang-go=\"`mode`\" pulumi-lang-python=\"`mode`\" pulumi-lang-yaml=\"`mode`\" pulumi-lang-java=\"`mode`\"\u003e`mode`\u003c/span\u003e field:\n- **show** - List of HTTP headers to hide from response.\n- **hide** - List of HTTP headers to include in response. Other HTTP headers will be hidden.\n\nThe following headers are required and cannot be hidden from response:\n- `Connection`\n- `Content-Length`\n- `Content-Type`\n- `Date`\n- `Server`\n"},"mode":{"type":"string","description":"How HTTP headers are hidden from the response.\n\nPossible values:\n- **show** - Hide only HTTP headers listed in the \u003cspan pulumi-lang-nodejs=\"`excepted`\" pulumi-lang-dotnet=\"`Excepted`\" pulumi-lang-go=\"`excepted`\" pulumi-lang-python=\"`excepted`\" pulumi-lang-yaml=\"`excepted`\" pulumi-lang-java=\"`excepted`\"\u003e`excepted`\u003c/span\u003e field.\n- **hide** - Hide all HTTP headers except headers listed in the \"excepted\" field.\nAvailable values: \"hide\", \"show\".\n"}},"type":"object","required":["enabled","mode"],"language":{"nodejs":{"requiredOutputs":["enabled","excepteds","mode"]}}},"gcore:index/CdnResourceRuleOptionsRewrite:CdnResourceRuleOptionsRewrite":{"properties":{"body":{"type":"string","description":"Path for the Rewrite option.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"},"flag":{"type":"string","description":"Flag for the Rewrite option.\n\nPossible values:\n- **last** - Stop processing the current set of \u003cspan pulumi-lang-nodejs=\"`ngxHttpRewriteModule`\" pulumi-lang-dotnet=\"`NgxHttpRewriteModule`\" pulumi-lang-go=\"`ngxHttpRewriteModule`\" pulumi-lang-python=\"`ngx_http_rewrite_module`\" pulumi-lang-yaml=\"`ngxHttpRewriteModule`\" pulumi-lang-java=\"`ngxHttpRewriteModule`\"\u003e`ngx_http_rewrite_module`\u003c/span\u003e directives and start a search for a new location matching changed URI.\n- **break** - Stop processing the current set of the Rewrite option.\n- **redirect** - Return a temporary redirect with the 302 code; used when a replacement string does not start with `http://`, `https://`, or `$scheme`.\n- **permanent** - Return a permanent redirect with the 301 code.\nAvailable values: \"break\", \"last\", \"redirect\", \"permanent\".\n"}},"type":"object","required":["body","enabled"],"language":{"nodejs":{"requiredOutputs":["body","enabled","flag"]}}},"gcore:index/CdnResourceRuleOptionsSecureKey:CdnResourceRuleOptionsSecureKey":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"key":{"type":"string","description":"Key generated on your side that will be used for URL signing.\n"},"type":{"type":"number","description":"Type of URL signing.\n\nPossible types:\n- **Type 0** - Includes end user IP to secure token generation.\n- **Type 2** - Excludes end user IP from secure token generation.\nAvailable values: 0, 2.\n"}},"type":"object","required":["enabled","key"],"language":{"nodejs":{"requiredOutputs":["enabled","key","type"]}}},"gcore:index/CdnResourceRuleOptionsSlice:CdnResourceRuleOptionsSlice":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsSni:CdnResourceRuleOptionsSni":{"properties":{"customHostname":{"type":"string","description":"Custom SNI hostname.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"},"sniType":{"type":"string","description":"SNI (Server Name Indication) type.\n\nPossible values:\n- **dynamic** - SNI hostname depends on `hostHeader` and \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e options.\nIt has several possible combinations:\n- If the `hostHeader` option is enabled and specified, SNI hostname matches the Host header.\n- If the \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e option is enabled and has true value, SNI hostname matches the Host header used in the request made to a CDN.\n- If the `hostHeader` and \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e options are disabled, SNI hostname matches the primary CNAME.\n- **custom** - custom SNI hostname is in use.\nAvailable values: \"dynamic\", \"custom\".\n"}},"type":"object","required":["customHostname","enabled"],"language":{"nodejs":{"requiredOutputs":["customHostname","enabled","sniType"]}}},"gcore:index/CdnResourceRuleOptionsStale:CdnResourceRuleOptionsStale":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Defines list of errors for which \"Always online\" option is applied.\n"}},"type":"object","required":["enabled","values"]},"gcore:index/CdnResourceRuleOptionsStaticHeaders:CdnResourceRuleOptionsStaticHeaders":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"A MAP for static headers in a format of `header_name:\u003cspan pulumi-lang-nodejs=\" headerValue`\" pulumi-lang-dotnet=\" HeaderValue`\" pulumi-lang-go=\" headerValue`\" pulumi-lang-python=\" header_value`\" pulumi-lang-yaml=\" headerValue`\" pulumi-lang-java=\" headerValue`\"\u003e header_value`\u003c/span\u003e.\n\nRestrictions:\n- **Header name** - Maximum 128 symbols, may contain Latin letters (A-Z, a-z), numbers (0-9), dashes, and underscores.\n- **Header value** - Maximum 512 symbols, may contain letters (a-z), numbers (0-9), spaces, and symbols (`~!@#%%^\u0026*()-_=+ /|\\\";:?.,\u003e\u003c{}[]). Must start with a letter, number, asterisk or {.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsStaticRequestHeaders:CdnResourceRuleOptionsStaticRequestHeaders":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"object","additionalProperties":{"type":"string"},"description":"A MAP for static headers in a format of `header_name:\u003cspan pulumi-lang-nodejs=\" headerValue`\" pulumi-lang-dotnet=\" HeaderValue`\" pulumi-lang-go=\" headerValue`\" pulumi-lang-python=\" header_value`\" pulumi-lang-yaml=\" headerValue`\" pulumi-lang-java=\" headerValue`\"\u003e header_value`\u003c/span\u003e.\n\nRestrictions:\n- **Header name** - Maximum 255 symbols, may contain Latin letters (A-Z, a-z), numbers (0-9), dashes, and underscores.\n- **Header value** - Maximum 512 symbols, may contain letters (a-z), numbers (0-9), spaces, and symbols (`~!@#%%^\u0026*()-_=+ /|\\\";:?.,\u003e\u003c{}[]). Must start with a letter, number, asterisk or {.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsStaticResponseHeaders:CdnResourceRuleOptionsStaticResponseHeaders":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptionsStaticResponseHeadersValue:CdnResourceRuleOptionsStaticResponseHeadersValue"}}},"type":"object","required":["enabled","values"]},"gcore:index/CdnResourceRuleOptionsStaticResponseHeadersValue:CdnResourceRuleOptionsStaticResponseHeadersValue":{"properties":{"always":{"type":"boolean","description":"Defines whether the header will be added to a response from CDN regardless of response code.\n\nPossible values:\n- **true** - Header will be added to a response from CDN regardless of response code.\n- **false** - Header will be added only to the following response codes: 200, 201, 204, 206, 301, 302, 303, 304, 307, 308.\n"},"name":{"type":"string","description":"HTTP Header name.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Header value.\n\nRestrictions:\n- Maximum 512 symbols.\n- Letters (a-z), numbers (0-9), spaces, and symbols (`~!@#%%^\u0026*()-_=+ /|\\\";:?.,\u003e\u003c{}[]).\n- Must start with a letter, number, asterisk or {.\n- Multiple values can be added.\n"}},"type":"object","required":["name","values"],"language":{"nodejs":{"requiredOutputs":["always","name","values"]}}},"gcore:index/CdnResourceRuleOptionsUserAgentAcl:CdnResourceRuleOptionsUserAgentAcl":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of User-Agents that will be allowed/denied.\n\nThe meaning of the parameter depends on \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e:\n- **allow** - List of User-Agents for which access is prohibited.\n- **deny** - List of User-Agents for which access is allowed.\n\nYou can provide exact User-Agent strings or regular expressions. Regular expressions must start\nwith `~` (case-sensitive) or `~*` (case-insensitive).\n\nUse an empty string `\"\"` to allow/deny access when the User-Agent header is empty.\n"},"policyType":{"type":"string","description":"User-Agents policy type.\n\nPossible values:\n- **allow** - Allow access for all User-Agents except specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\n- **deny** - Deny access for all User-Agents except specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\nAvailable values: \"allow\", \"deny\".\n"}},"type":"object","required":["enabled","exceptedValues","policyType"]},"gcore:index/CdnResourceRuleOptionsWaap:CdnResourceRuleOptionsWaap":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CdnResourceRuleOptionsWebsockets:CdnResourceRuleOptionsWebsockets":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"]},"gcore:index/CloudFileShareNetwork:CloudFileShareNetwork":{"properties":{"networkId":{"type":"string","description":"Network ID.\n"},"subnetId":{"type":"string","description":"Subnetwork ID. If the subnet is not selected, it will be selected automatically.\n"}},"type":"object","required":["networkId"]},"gcore:index/CloudFileShareShareSettings:CloudFileShareShareSettings":{"properties":{"allowedCharacters":{"type":"string","description":"Determines which characters are allowed in file names. Choose between:\n- Lowest Common Denominator (LCD), allows only characters allowed by all VAST Cluster-supported protocols\n- Native Protocol Limit (NPL), imposes no limitation beyond that of the client protocol.\nAvailable values: \"LCD\", \"NPL\".\n"},"pathLength":{"type":"string","description":"Affects the maximum limit of file path component name length. Choose between:\n- Lowest Common Denominator (LCD), imposes the lowest common denominator file length limit of all VAST Cluster-supported protocols. With this (default) option, the limitation on the length of a single component of the path is 255 characters\n- Native Protocol Limit (NPL), imposes no limitation beyond that of the client protocol.\nAvailable values: \"LCD\", \"NPL\".\n"},"rootSquash":{"type":"boolean","description":"Enables or disables root squash for NFS clients.\n- If \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 (default), root squash is enabled: the root user is mapped to nobody for all file and folder management operations on the export.\n- If \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, root squash is disabled: the NFS client \u003cspan pulumi-lang-nodejs=\"`root`\" pulumi-lang-dotnet=\"`Root`\" pulumi-lang-go=\"`root`\" pulumi-lang-python=\"`root`\" pulumi-lang-yaml=\"`root`\" pulumi-lang-java=\"`root`\"\u003e`root`\u003c/span\u003e user retains root privileges. Use this option if you trust the root user not to perform operations that will corrupt data.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedCharacters","pathLength","rootSquash"]}}},"gcore:index/CloudGpuBaremetalClusterServersSettings:CloudGpuBaremetalClusterServersSettings":{"properties":{"credentials":{"$ref":"#/types/gcore:index%2FCloudGpuBaremetalClusterServersSettingsCredentials:CloudGpuBaremetalClusterServersSettingsCredentials","description":"Optional server access credentials\n"},"fileShares":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudGpuBaremetalClusterServersSettingsFileShare:CloudGpuBaremetalClusterServersSettingsFileShare"},"description":"List of file shares to be mounted across the cluster.\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudGpuBaremetalClusterServersSettingsInterface:CloudGpuBaremetalClusterServersSettingsInterface"},"description":"Subnet IPs and floating IPs\n"},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudGpuBaremetalClusterServersSettingsSecurityGroup:CloudGpuBaremetalClusterServersSettingsSecurityGroup"},"description":"List of security groups UUIDs\n"},"userData":{"type":"string","description":"Optional custom user data (Base64-encoded)\n"}},"type":"object","required":["interfaces"],"language":{"nodejs":{"requiredOutputs":["fileShares","interfaces","securityGroups","userData"]}}},"gcore:index/CloudGpuBaremetalClusterServersSettingsCredentials:CloudGpuBaremetalClusterServersSettingsCredentials":{"properties":{"passwordWo":{"type":"string","description":"Used to set the password for the specified 'username' on Linux instances. If 'username' is not provided, the password is applied to the default user of the image. Mutually exclusive with '\u003cspan pulumi-lang-nodejs=\"`userData`\" pulumi-lang-dotnet=\"`UserData`\" pulumi-lang-go=\"`userData`\" pulumi-lang-python=\"`user_data`\" pulumi-lang-yaml=\"`userData`\" pulumi-lang-java=\"`userData`\"\u003e`user_data`\u003c/span\u003e' - only one can be specified.\n"},"passwordWoVersion":{"type":"number","description":"Version of the password write-only field. Increment this value to trigger an update when changing the password.\n"},"sshKeyName":{"type":"string","description":"Specifies the name of the SSH keypair, created via the\n[/v1/\u003cspan pulumi-lang-nodejs=\"`sshKeys`\" pulumi-lang-dotnet=\"`SshKeys`\" pulumi-lang-go=\"`sshKeys`\" pulumi-lang-python=\"`ssh_keys`\" pulumi-lang-yaml=\"`sshKeys`\" pulumi-lang-java=\"`sshKeys`\"\u003e`ssh_keys`\u003c/span\u003e endpoint](https://www.terraform.io/docs/api-reference/cloud/ssh-keys/add-or-generate-ssh-key).\n"},"username":{"type":"string","description":"The 'username' and 'password' fields create a new user on the system\n"}},"type":"object"},"gcore:index/CloudGpuBaremetalClusterServersSettingsFileShare:CloudGpuBaremetalClusterServersSettingsFileShare":{"properties":{"id":{"type":"string","description":"Unique identifier of the file share in UUID format.\n"},"mountPath":{"type":"string","description":"Absolute mount path inside the system where the file share will be mounted.\n"}},"type":"object","required":["id","mountPath"]},"gcore:index/CloudGpuBaremetalClusterServersSettingsInterface:CloudGpuBaremetalClusterServersSettingsInterface":{"properties":{"floatingIp":{"$ref":"#/types/gcore:index%2FCloudGpuBaremetalClusterServersSettingsInterfaceFloatingIp:CloudGpuBaremetalClusterServersSettingsInterfaceFloatingIp","description":"Floating IP config for this subnet attachment\n"},"ipFamily":{"type":"string","description":"Which subnets should be selected: IPv4, IPv6, or use dual stack.\nAvailable values: \"dual\", \"ipv4\", \"ipv6\".\n"},"name":{"type":"string","description":"Interface name\n"},"networkId":{"type":"string","description":"Network ID the subnet belongs to. Port will be plugged in this network\n"},"subnetId":{"type":"string","description":"Port is assigned an IP address from this subnet\n"},"type":{"type":"string","description":"Available values: \"external\", \"subnet\", \u003cspan pulumi-lang-nodejs=\"\"anySubnet\"\" pulumi-lang-dotnet=\"\"AnySubnet\"\" pulumi-lang-go=\"\"anySubnet\"\" pulumi-lang-python=\"\"any_subnet\"\" pulumi-lang-yaml=\"\"anySubnet\"\" pulumi-lang-java=\"\"anySubnet\"\"\u003e\"any_subnet\"\u003c/span\u003e.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["ipFamily","name","type"]}}},"gcore:index/CloudGpuBaremetalClusterServersSettingsInterfaceFloatingIp:CloudGpuBaremetalClusterServersSettingsInterfaceFloatingIp":{"properties":{"source":{"type":"string","description":"Available values: \"new\".\n"}},"type":"object","required":["source"]},"gcore:index/CloudGpuBaremetalClusterServersSettingsSecurityGroup:CloudGpuBaremetalClusterServersSettingsSecurityGroup":{"properties":{"id":{"type":"string","description":"Resource ID\n"}},"type":"object","required":["id"]},"gcore:index/CloudGpuVirtualClusterServersSettings:CloudGpuVirtualClusterServersSettings":{"properties":{"credentials":{"$ref":"#/types/gcore:index%2FCloudGpuVirtualClusterServersSettingsCredentials:CloudGpuVirtualClusterServersSettingsCredentials","description":"Optional server access credentials\n"},"fileShares":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudGpuVirtualClusterServersSettingsFileShare:CloudGpuVirtualClusterServersSettingsFileShare"},"description":"List of file shares to be mounted across the cluster.\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudGpuVirtualClusterServersSettingsInterface:CloudGpuVirtualClusterServersSettingsInterface"},"description":"Subnet IPs and floating IPs\n"},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudGpuVirtualClusterServersSettingsSecurityGroup:CloudGpuVirtualClusterServersSettingsSecurityGroup"},"description":"List of security groups UUIDs\n"},"userData":{"type":"string","description":"Optional custom user data (Base64-encoded)\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudGpuVirtualClusterServersSettingsVolume:CloudGpuVirtualClusterServersSettingsVolume"},"description":"List of volumes\n"}},"type":"object","required":["interfaces","volumes"],"language":{"nodejs":{"requiredOutputs":["fileShares","interfaces","securityGroups","userData","volumes"]}}},"gcore:index/CloudGpuVirtualClusterServersSettingsCredentials:CloudGpuVirtualClusterServersSettingsCredentials":{"properties":{"passwordWo":{"type":"string","description":"Used to set the password for the specified 'username' on Linux instances. If 'username' is not provided, the password is applied to the default user of the image. Mutually exclusive with '\u003cspan pulumi-lang-nodejs=\"`userData`\" pulumi-lang-dotnet=\"`UserData`\" pulumi-lang-go=\"`userData`\" pulumi-lang-python=\"`user_data`\" pulumi-lang-yaml=\"`userData`\" pulumi-lang-java=\"`userData`\"\u003e`user_data`\u003c/span\u003e' - only one can be specified.\n"},"passwordWoVersion":{"type":"number","description":"Version of the password write-only field. Increment this value to trigger an update when changing the password.\n"},"sshKeyName":{"type":"string","description":"Specifies the name of the SSH keypair, created via the\n[/v1/\u003cspan pulumi-lang-nodejs=\"`sshKeys`\" pulumi-lang-dotnet=\"`SshKeys`\" pulumi-lang-go=\"`sshKeys`\" pulumi-lang-python=\"`ssh_keys`\" pulumi-lang-yaml=\"`sshKeys`\" pulumi-lang-java=\"`sshKeys`\"\u003e`ssh_keys`\u003c/span\u003e endpoint](https://www.terraform.io/docs/api-reference/cloud/ssh-keys/add-or-generate-ssh-key).\n"},"username":{"type":"string","description":"The 'username' and 'password' fields create a new user on the system\n"}},"type":"object"},"gcore:index/CloudGpuVirtualClusterServersSettingsFileShare:CloudGpuVirtualClusterServersSettingsFileShare":{"properties":{"id":{"type":"string","description":"Unique identifier of the file share in UUID format.\n"},"mountPath":{"type":"string","description":"Absolute mount path inside the system where the file share will be mounted.\n"}},"type":"object","required":["id","mountPath"]},"gcore:index/CloudGpuVirtualClusterServersSettingsInterface:CloudGpuVirtualClusterServersSettingsInterface":{"properties":{"floatingIp":{"$ref":"#/types/gcore:index%2FCloudGpuVirtualClusterServersSettingsInterfaceFloatingIp:CloudGpuVirtualClusterServersSettingsInterfaceFloatingIp","description":"Floating IP config for this subnet attachment\n"},"ipFamily":{"type":"string","description":"Which subnets should be selected: IPv4, IPv6, or use dual stack.\nAvailable values: \"dual\", \"ipv4\", \"ipv6\".\n"},"name":{"type":"string","description":"Interface name\n"},"networkId":{"type":"string","description":"Network ID the subnet belongs to. Port will be plugged in this network\n"},"subnetId":{"type":"string","description":"Port is assigned an IP address from this subnet\n"},"type":{"type":"string","description":"Available values: \"external\", \"subnet\", \u003cspan pulumi-lang-nodejs=\"\"anySubnet\"\" pulumi-lang-dotnet=\"\"AnySubnet\"\" pulumi-lang-go=\"\"anySubnet\"\" pulumi-lang-python=\"\"any_subnet\"\" pulumi-lang-yaml=\"\"anySubnet\"\" pulumi-lang-java=\"\"anySubnet\"\"\u003e\"any_subnet\"\u003c/span\u003e.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["ipFamily","name","type"]}}},"gcore:index/CloudGpuVirtualClusterServersSettingsInterfaceFloatingIp:CloudGpuVirtualClusterServersSettingsInterfaceFloatingIp":{"properties":{"source":{"type":"string","description":"Available values: \"new\".\n"}},"type":"object","required":["source"]},"gcore:index/CloudGpuVirtualClusterServersSettingsSecurityGroup:CloudGpuVirtualClusterServersSettingsSecurityGroup":{"properties":{"id":{"type":"string","description":"Resource ID\n"}},"type":"object","required":["id"]},"gcore:index/CloudGpuVirtualClusterServersSettingsVolume:CloudGpuVirtualClusterServersSettingsVolume":{"properties":{"bootIndex":{"type":"number","description":"Boot index of the volume\n"},"deleteOnTermination":{"type":"boolean","description":"Flag indicating whether the volume is deleted on instance termination\n"},"imageId":{"type":"string","description":"Image ID for the volume (required if source is 'image')\n"},"name":{"type":"string","description":"Volume name\n"},"size":{"type":"number","description":"Volume size in GiB\n"},"source":{"type":"string","description":"Available values: \"new\", \"image\".\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags associated with the volume\n"},"type":{"type":"string","description":"Volume type\nAvailable values: \"cold\", \"ssd*hiiops\", \"ssd*local\", \u003cspan pulumi-lang-nodejs=\"\"ssdLowlatency\"\" pulumi-lang-dotnet=\"\"SsdLowlatency\"\" pulumi-lang-go=\"\"ssdLowlatency\"\" pulumi-lang-python=\"\"ssd_lowlatency\"\" pulumi-lang-yaml=\"\"ssdLowlatency\"\" pulumi-lang-java=\"\"ssdLowlatency\"\"\u003e\"ssd_lowlatency\"\u003c/span\u003e, \"standard\", \"ultra\".\n"}},"type":"object","required":["bootIndex","name","size","source","type"],"language":{"nodejs":{"requiredOutputs":["bootIndex","deleteOnTermination","name","size","source","type"]}}},"gcore:index/CloudInferenceSecretData:CloudInferenceSecretData":{"properties":{"awsAccessKeyIdWo":{"type":"string","description":"AWS IAM key ID.\n"},"awsSecretAccessKeyWo":{"type":"string","description":"AWS IAM secret key.\n"}},"type":"object","required":["awsAccessKeyIdWo","awsSecretAccessKeyWo"]},"gcore:index/CloudInstanceAddresses:CloudInstanceAddresses":{"properties":{"addr":{"type":"string"},"interfaceName":{"type":"string","description":"Interface name. Defaults to \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e and is returned as \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e in the API response if not set.\n"},"subnetId":{"type":"string"},"subnetName":{"type":"string"},"type":{"type":"string","description":"A public IP address will be assigned to the instance.\nAvailable values: \"external\", \"subnet\", \"any*subnet\", \"reserved*fixed_ip\".\n"}},"type":"object","required":["addr","interfaceName","subnetId","subnetName","type"]},"gcore:index/CloudInstanceBlackholePort:CloudInstanceBlackholePort":{"properties":{"alarmEnd":{"type":"string","description":"A date-time string giving the time that the alarm ended. If not yet ended, time will be given as 0001-01-01T00:00:00Z\n"},"alarmStart":{"type":"string","description":"A date-time string giving the time that the alarm started\n"},"alarmState":{"type":"string","description":"Current state of alarm\nAvailable values: \"ACK*REQ\", \"ALARM\", \"ARCHIVED\", \"CLEAR\", \"CLEARING\", \"CLEARING*FAIL\", \"END*GRACE\", \"END*WAIT\", \"MANUAL*CLEAR\", \"MANUAL*CLEARING\", \"MANUAL*CLEARING*FAIL\", \"MANUAL*MITIGATING\", \"MANUAL*STARTING\", \"MANUAL*STARTING*FAIL\", \"MITIGATING\", \"STARTING\", \"STARTING*FAIL\", \"START*WAIT\", \"ack*req\", \"alarm\", \"archived\", \"clear\", \"clearing\", \"clearing*fail\", \"end*grace\", \"end*wait\", \"manual*clear\", \"manual*clearing\", \"manual*clearing*fail\", \"manual*mitigating\", \"manual*starting\", \"manual*starting*fail\", \"mitigating\", \"start*wait\", \"starting\", \"starting*fail\".\n"},"alertDuration":{"type":"string","description":"Total alert duration\n"},"destinationIp":{"type":"string","description":"Notification destination IP address\n"},"id":{"type":"number"}},"type":"object","language":{"nodejs":{"requiredOutputs":["alarmEnd","alarmStart","alarmState","alertDuration","destinationIp","id"]}}},"gcore:index/CloudInstanceDdosProfile:CloudInstanceDdosProfile":{"properties":{"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceDdosProfileField:CloudInstanceDdosProfileField"},"description":"List of configured field values for the protection profile\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection profile\n"},"options":{"$ref":"#/types/gcore:index%2FCloudInstanceDdosProfileOptions:CloudInstanceDdosProfileOptions","description":"Configuration options controlling profile activation and BGP routing\n"},"profileTemplate":{"$ref":"#/types/gcore:index%2FCloudInstanceDdosProfileProfileTemplate:CloudInstanceDdosProfileProfileTemplate","description":"Complete template configuration data used for this profile\n"},"profileTemplateDescription":{"type":"string","description":"Detailed description of the protection template used for this profile\n"},"protocols":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceDdosProfileProtocol:CloudInstanceDdosProfileProtocol"},"description":"List of network protocols and ports configured for protection\n"},"site":{"type":"string","description":"Geographic site identifier where the protection is deployed\n"},"status":{"$ref":"#/types/gcore:index%2FCloudInstanceDdosProfileStatus:CloudInstanceDdosProfileStatus","description":"Current operational status and any error information for the profile\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["fields","id","options","profileTemplate","profileTemplateDescription","protocols","site","status"]}}},"gcore:index/CloudInstanceDdosProfileField:CloudInstanceDdosProfileField":{"properties":{"baseField":{"type":"number","description":"ID of DDoS profile field\n"},"default":{"type":"string","description":"Predefined default value for the field if not specified\n"},"description":{"type":"string","description":"Detailed description explaining the field's purpose and usage guidelines\n"},"fieldName":{"type":"string","description":"Name of DDoS profile field\n"},"fieldType":{"type":"string","description":"Data type classification of the field (e.g., string, integer, array)\n"},"fieldValue":{"type":"string","description":"Complex value. Only one of 'value' or 'field_value' must be specified.\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection field\n"},"name":{"type":"string","description":"Human-readable name of the protection field\n"},"required":{"type":"boolean","description":"Indicates whether this field must be provided when creating a protection profile\n"},"validationSchema":{"type":"string","description":"JSON schema defining validation rules and constraints for the field value\n"},"value":{"type":"string","description":"Basic type value. Only one of 'value' or 'field_value' must be specified.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["baseField","default","description","fieldName","fieldType","fieldValue","id","name","required","validationSchema","value"]}}},"gcore:index/CloudInstanceDdosProfileOptions:CloudInstanceDdosProfileOptions":{"properties":{"active":{"type":"boolean","description":"Controls whether the DDoS protection profile is enabled and actively protecting the resource\n"},"bgp":{"type":"boolean","description":"Enables Border Gateway Protocol (BGP) routing for DDoS protection traffic\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["active","bgp"]}}},"gcore:index/CloudInstanceDdosProfileProfileTemplate:CloudInstanceDdosProfileProfileTemplate":{"properties":{"description":{"type":"string","description":"Detailed description explaining the template's purpose and use cases\n"},"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceDdosProfileProfileTemplateField:CloudInstanceDdosProfileProfileTemplateField"},"description":"List of configurable fields that define the template's protection parameters\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection template\n"},"name":{"type":"string","description":"Human-readable name of the protection template\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","fields","id","name"]}}},"gcore:index/CloudInstanceDdosProfileProfileTemplateField:CloudInstanceDdosProfileProfileTemplateField":{"properties":{"default":{"type":"string","description":"Predefined default value for the field if not specified\n"},"description":{"type":"string","description":"Detailed description explaining the field's purpose and usage guidelines\n"},"fieldType":{"type":"string","description":"Data type classification of the field (e.g., string, integer, array)\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection field\n"},"name":{"type":"string","description":"Human-readable name of the protection field\n"},"required":{"type":"boolean","description":"Indicates whether this field must be provided when creating a protection profile\n"},"validationSchema":{"type":"string","description":"JSON schema defining validation rules and constraints for the field value\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["default","description","fieldType","id","name","required","validationSchema"]}}},"gcore:index/CloudInstanceDdosProfileProtocol:CloudInstanceDdosProfileProtocol":{"properties":{"port":{"type":"string","description":"Network port number for which protocols are configured\n"},"protocols":{"type":"array","items":{"type":"string"},"description":"List of network protocols enabled on the specified port\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port","protocols"]}}},"gcore:index/CloudInstanceDdosProfileStatus:CloudInstanceDdosProfileStatus":{"properties":{"errorDescription":{"type":"string","description":"Detailed error message describing any issues with the profile operation\n"},"status":{"type":"string","description":"Current operational status of the DDoS protection profile\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errorDescription","status"]}}},"gcore:index/CloudInstanceFixedIpAssignment:CloudInstanceFixedIpAssignment":{"properties":{"external":{"type":"boolean","description":"Is network external\n"},"ipAddress":{"type":"string","description":"Ip address\n"},"subnetId":{"type":"string","description":"Interface subnet id\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["external","ipAddress","subnetId"]}}},"gcore:index/CloudInstanceInstanceIsolation:CloudInstanceInstanceIsolation":{"properties":{"reason":{"type":"string","description":"The reason of instance isolation if it is isolated from external internet.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["reason"]}}},"gcore:index/CloudInstanceInterface:CloudInstanceInterface":{"properties":{"floatingIp":{"$ref":"#/types/gcore:index%2FCloudInstanceInterfaceFloatingIp:CloudInstanceInterfaceFloatingIp","description":"Allows the instance to have a public IP that can be reached from the internet.\n"},"interfaceName":{"type":"string","description":"Interface name. Defaults to \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e and is returned as \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e in the API response if not set.\n"},"ipAddress":{"type":"string","description":"IP address assigned to this interface. Can be specified for subnet type, computed for other types.\n"},"ipFamily":{"type":"string","description":"Specify \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, or \u003cspan pulumi-lang-nodejs=\"`dual`\" pulumi-lang-dotnet=\"`Dual`\" pulumi-lang-go=\"`dual`\" pulumi-lang-python=\"`dual`\" pulumi-lang-yaml=\"`dual`\" pulumi-lang-java=\"`dual`\"\u003e`dual`\u003c/span\u003e to enable both.\nAvailable values: \"dual\", \"ipv4\", \"ipv6\".\n"},"networkId":{"type":"string","description":"The network where the instance will be connected.\n"},"portId":{"type":"string","description":"Port ID for the interface. Required for reserved*fixed*ip type, computed for other types.\n"},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceInterfaceSecurityGroup:CloudInstanceInterfaceSecurityGroup"},"description":"Specifies security group UUIDs to be applied to the instance network interface.\n"},"subnetId":{"type":"string","description":"The instance will get an IP address from this subnet.\n"},"type":{"type":"string","description":"A public IP address will be assigned to the instance.\nAvailable values: \"external\", \"subnet\", \"any*subnet\", \"reserved*fixed_ip\".\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["ipAddress","portId","type"]}}},"gcore:index/CloudInstanceInterfaceFloatingIp:CloudInstanceInterfaceFloatingIp":{"properties":{"existingFloatingId":{"type":"string","description":"An existing available floating IP id must be specified if the source is set to \u003cspan pulumi-lang-nodejs=\"`existing`\" pulumi-lang-dotnet=\"`Existing`\" pulumi-lang-go=\"`existing`\" pulumi-lang-python=\"`existing`\" pulumi-lang-yaml=\"`existing`\" pulumi-lang-java=\"`existing`\"\u003e`existing`\u003c/span\u003e\n"},"source":{"type":"string","description":"A new floating IP will be created and attached to the instance. A floating IP is a public IP that makes the instance accessible from the internet, even if it only has a private IP. It works like SNAT, allowing outgoing and incoming traffic.\nAvailable values: \"new\", \"existing\".\n"}},"type":"object","required":["source"]},"gcore:index/CloudInstanceInterfaceSecurityGroup:CloudInstanceInterfaceSecurityGroup":{"properties":{"id":{"type":"string","description":"Resource ID\n"}},"type":"object","required":["id"]},"gcore:index/CloudInstanceSecurityGroup:CloudInstanceSecurityGroup":{"properties":{"id":{"type":"string","description":"Resource ID\n"}},"type":"object","required":["id"]},"gcore:index/CloudInstanceVolume:CloudInstanceVolume":{"properties":{"attachmentTag":{"type":"string","description":"Block device attachment tag. Used to identify the device in the guest OS (e.g., 'vdb', 'data-disk'). Not exposed in user-visible tags.\n"},"bootIndex":{"type":"number","description":"Boot device index (creation-only). 0 = primary boot, positive = secondary bootable, negative = not bootable. Cannot be changed after instance creation.\n"},"volumeId":{"type":"string","description":"ID of an existing volume to attach to the instance.\n"}},"type":"object","required":["volumeId"]},"gcore:index/CloudK8sClusterAddOns:CloudK8sClusterAddOns":{"properties":{"slurm":{"$ref":"#/types/gcore:index%2FCloudK8sClusterAddOnsSlurm:CloudK8sClusterAddOnsSlurm","description":"Slurm add-on configuration\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["slurm"]}}},"gcore:index/CloudK8sClusterAddOnsSlurm:CloudK8sClusterAddOnsSlurm":{"properties":{"enabled":{"type":"boolean","description":"The Slurm add-on will be enabled in the cluster.\n"},"fileShareId":{"type":"string","description":"ID of a VAST file share to be used as Slurm storage.\n\nThe Slurm add-on will create separate Persistent Volume Claims for different purposes (controller spool, worker spool, jail) on that file share.\n\nThe file share must have \u003cspan pulumi-lang-nodejs=\"`rootSquash`\" pulumi-lang-dotnet=\"`RootSquash`\" pulumi-lang-go=\"`rootSquash`\" pulumi-lang-python=\"`root_squash`\" pulumi-lang-yaml=\"`rootSquash`\" pulumi-lang-java=\"`rootSquash`\"\u003e`root_squash`\u003c/span\u003e disabled, while \u003cspan pulumi-lang-nodejs=\"`pathLength`\" pulumi-lang-dotnet=\"`PathLength`\" pulumi-lang-go=\"`pathLength`\" pulumi-lang-python=\"`path_length`\" pulumi-lang-yaml=\"`pathLength`\" pulumi-lang-java=\"`pathLength`\"\u003e`path_length`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`allowedCharacters`\" pulumi-lang-dotnet=\"`AllowedCharacters`\" pulumi-lang-go=\"`allowedCharacters`\" pulumi-lang-python=\"`allowed_characters`\" pulumi-lang-yaml=\"`allowedCharacters`\" pulumi-lang-java=\"`allowedCharacters`\"\u003e`allowed_characters`\u003c/span\u003e settings must be set to `NPL`.\n"},"sshKeyIds":{"type":"array","items":{"type":"string"},"description":"IDs of SSH keys to authorize for SSH connection to Slurm login nodes.\n"},"workerCount":{"type":"number","description":"Size of the worker pool, i.e. the number of Slurm worker nodes.\n\nEach Slurm worker node will be backed by a Pod scheduled on one of cluster's GPU nodes.\n\nNote: Downscaling (reducing worker count) is not supported.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled","fileShareId","sshKeyIds","workerCount"]}}},"gcore:index/CloudK8sClusterAuthentication:CloudK8sClusterAuthentication":{"properties":{"oidc":{"$ref":"#/types/gcore:index%2FCloudK8sClusterAuthenticationOidc:CloudK8sClusterAuthenticationOidc","description":"OIDC authentication settings\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["oidc"]}}},"gcore:index/CloudK8sClusterAuthenticationOidc:CloudK8sClusterAuthenticationOidc":{"properties":{"clientId":{"type":"string","description":"Client ID\n"},"groupsClaim":{"type":"string","description":"JWT claim to use as the user's group\n"},"groupsPrefix":{"type":"string","description":"Prefix prepended to group claims\n"},"issuerUrl":{"type":"string","description":"Issuer URL\n"},"requiredClaims":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value pairs that describe required claims in the token\n"},"signingAlgs":{"type":"array","items":{"type":"string"},"description":"Accepted signing algorithms\n"},"usernameClaim":{"type":"string","description":"JWT claim to use as the user name\n"},"usernamePrefix":{"type":"string","description":"Prefix prepended to username claims to prevent clashes\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clientId","groupsClaim","groupsPrefix","issuerUrl","requiredClaims","signingAlgs","usernameClaim","usernamePrefix"]}}},"gcore:index/CloudK8sClusterCni:CloudK8sClusterCni":{"properties":{"cilium":{"$ref":"#/types/gcore:index%2FCloudK8sClusterCniCilium:CloudK8sClusterCniCilium","description":"Cilium settings\n"},"cloudK8sClusterProvider":{"type":"string","description":"CNI provider\nAvailable values: \"calico\", \"cilium\".\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cilium","cloudK8sClusterProvider"]}}},"gcore:index/CloudK8sClusterCniCilium:CloudK8sClusterCniCilium":{"properties":{"encryption":{"type":"boolean","description":"Wireguard encryption\n"},"hubbleRelay":{"type":"boolean","description":"Hubble Relay\n"},"hubbleUi":{"type":"boolean","description":"Hubble UI\n"},"lbAcceleration":{"type":"boolean","description":"LoadBalancer acceleration\n"},"lbMode":{"type":"string","description":"LoadBalancer mode\nAvailable values: \"dsr\", \"hybrid\", \"snat\".\n"},"maskSize":{"type":"number","description":"Mask size for IPv4\n"},"maskSizeV6":{"type":"number","description":"Mask size for IPv6\n"},"routingMode":{"type":"string","description":"Routing mode\nAvailable values: \"native\", \"tunnel\".\n"},"tunnel":{"type":"string","description":"CNI provider\nAvailable values: \"\", \"geneve\", \"vxlan\".\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["encryption","hubbleRelay","hubbleUi","lbAcceleration","lbMode","maskSize","maskSizeV6","routingMode","tunnel"]}}},"gcore:index/CloudK8sClusterCsi:CloudK8sClusterCsi":{"properties":{"nfs":{"$ref":"#/types/gcore:index%2FCloudK8sClusterCsiNfs:CloudK8sClusterCsiNfs","description":"NFS CSI driver settings\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["nfs"]}}},"gcore:index/CloudK8sClusterCsiNfs:CloudK8sClusterCsiNfs":{"properties":{"vastEnabled":{"type":"boolean","description":"Enable or disable VAST NFS integration. The default value is \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. When 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, a dedicated StorageClass will be created in the cluster for each VAST NFS file share defined in the cloud. All file shares created prior to cluster creation will be available immediately, while those created afterward may take a few minutes for to appear.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["vastEnabled"]}}},"gcore:index/CloudK8sClusterLogging:CloudK8sClusterLogging":{"properties":{"destinationRegionId":{"type":"number","description":"Destination region id to which the logs will be written\n"},"enabled":{"type":"boolean","description":"Enable/disable forwarding logs to LaaS\n"},"retentionPolicy":{"$ref":"#/types/gcore:index%2FCloudK8sClusterLoggingRetentionPolicy:CloudK8sClusterLoggingRetentionPolicy","description":"The logs retention policy\n"},"topicName":{"type":"string","description":"The topic name to which the logs will be written\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled"]}}},"gcore:index/CloudK8sClusterLoggingRetentionPolicy:CloudK8sClusterLoggingRetentionPolicy":{"properties":{"period":{"type":"number","description":"Duration of days for which logs must be kept.\n"}},"type":"object","required":["period"]},"gcore:index/CloudK8sClusterPool:CloudK8sClusterPool":{"properties":{"autoHealingEnabled":{"type":"boolean","description":"Enable auto healing\n"},"bootVolumeSize":{"type":"number","description":"Boot volume size\n"},"bootVolumeType":{"type":"string","description":"Boot volume type\nAvailable values: \"cold\", \"ssd*hiiops\", \"ssd*local\", \u003cspan pulumi-lang-nodejs=\"\"ssdLowlatency\"\" pulumi-lang-dotnet=\"\"SsdLowlatency\"\" pulumi-lang-go=\"\"ssdLowlatency\"\" pulumi-lang-python=\"\"ssd_lowlatency\"\" pulumi-lang-yaml=\"\"ssdLowlatency\"\" pulumi-lang-java=\"\"ssdLowlatency\"\"\u003e\"ssd_lowlatency\"\u003c/span\u003e, \"standard\", \"ultra\".\n"},"crioConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"Cri-o configuration for pool nodes\n"},"flavorId":{"type":"string","description":"Flavor ID\n"},"isPublicIpv4":{"type":"boolean","description":"Enable public v4 address\n"},"kubeletConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"Kubelet configuration for pool nodes\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Labels applied to the cluster pool\n"},"maxNodeCount":{"type":"number","description":"Maximum node count\n"},"minNodeCount":{"type":"number","description":"Minimum node count\n"},"name":{"type":"string","description":"Pool's name\n"},"servergroupPolicy":{"type":"string","description":"Server group policy: anti-affinity, soft-anti-affinity or affinity\nAvailable values: \"affinity\", \"anti-affinity\", \"soft-anti-affinity\".\n"},"taints":{"type":"object","additionalProperties":{"type":"string"},"description":"Taints applied to the cluster pool\n"}},"type":"object","required":["flavorId","name"],"language":{"nodejs":{"requiredOutputs":["autoHealingEnabled","bootVolumeSize","bootVolumeType","crioConfig","flavorId","isPublicIpv4","kubeletConfig","labels","maxNodeCount","minNodeCount","name","taints"]}}},"gcore:index/CloudLoadBalancerAdditionalVip:CloudLoadBalancerAdditionalVip":{"properties":{"ipAddress":{"type":"string","description":"IP address\n"},"subnetId":{"type":"string","description":"Subnet UUID\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipAddress","subnetId"]}}},"gcore:index/CloudLoadBalancerDdosProfile:CloudLoadBalancerDdosProfile":{"properties":{"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerDdosProfileField:CloudLoadBalancerDdosProfileField"},"description":"List of configured field values for the protection profile\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection profile\n"},"options":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerDdosProfileOptions:CloudLoadBalancerDdosProfileOptions","description":"Configuration options controlling profile activation and BGP routing\n"},"profileTemplate":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerDdosProfileProfileTemplate:CloudLoadBalancerDdosProfileProfileTemplate","description":"Complete template configuration data used for this profile\n"},"profileTemplateDescription":{"type":"string","description":"Detailed description of the protection template used for this profile\n"},"protocols":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerDdosProfileProtocol:CloudLoadBalancerDdosProfileProtocol"},"description":"List of network protocols and ports configured for protection\n"},"site":{"type":"string","description":"Geographic site identifier where the protection is deployed\n"},"status":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerDdosProfileStatus:CloudLoadBalancerDdosProfileStatus","description":"Current operational status and any error information for the profile\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["fields","id","options","profileTemplate","profileTemplateDescription","protocols","site","status"]}}},"gcore:index/CloudLoadBalancerDdosProfileField:CloudLoadBalancerDdosProfileField":{"properties":{"baseField":{"type":"number","description":"ID of DDoS profile field\n"},"default":{"type":"string","description":"Predefined default value for the field if not specified\n"},"description":{"type":"string","description":"Detailed description explaining the field's purpose and usage guidelines\n"},"fieldName":{"type":"string","description":"Name of DDoS profile field\n"},"fieldType":{"type":"string","description":"Data type classification of the field (e.g., string, integer, array)\n"},"fieldValue":{"type":"string","description":"Complex value. Only one of 'value' or 'field_value' must be specified.\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection field\n"},"name":{"type":"string","description":"Human-readable name of the protection field\n"},"required":{"type":"boolean","description":"Indicates whether this field must be provided when creating a protection profile\n"},"validationSchema":{"type":"string","description":"JSON schema defining validation rules and constraints for the field value\n"},"value":{"type":"string","description":"Basic type value. Only one of 'value' or 'field_value' must be specified.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["baseField","default","description","fieldName","fieldType","fieldValue","id","name","required","validationSchema","value"]}}},"gcore:index/CloudLoadBalancerDdosProfileOptions:CloudLoadBalancerDdosProfileOptions":{"properties":{"active":{"type":"boolean","description":"Controls whether the DDoS protection profile is enabled and actively protecting the resource\n"},"bgp":{"type":"boolean","description":"Enables Border Gateway Protocol (BGP) routing for DDoS protection traffic\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["active","bgp"]}}},"gcore:index/CloudLoadBalancerDdosProfileProfileTemplate:CloudLoadBalancerDdosProfileProfileTemplate":{"properties":{"description":{"type":"string","description":"Detailed description explaining the template's purpose and use cases\n"},"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerDdosProfileProfileTemplateField:CloudLoadBalancerDdosProfileProfileTemplateField"},"description":"List of configurable fields that define the template's protection parameters\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection template\n"},"name":{"type":"string","description":"Human-readable name of the protection template\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","fields","id","name"]}}},"gcore:index/CloudLoadBalancerDdosProfileProfileTemplateField:CloudLoadBalancerDdosProfileProfileTemplateField":{"properties":{"default":{"type":"string","description":"Predefined default value for the field if not specified\n"},"description":{"type":"string","description":"Detailed description explaining the field's purpose and usage guidelines\n"},"fieldType":{"type":"string","description":"Data type classification of the field (e.g., string, integer, array)\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection field\n"},"name":{"type":"string","description":"Human-readable name of the protection field\n"},"required":{"type":"boolean","description":"Indicates whether this field must be provided when creating a protection profile\n"},"validationSchema":{"type":"string","description":"JSON schema defining validation rules and constraints for the field value\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["default","description","fieldType","id","name","required","validationSchema"]}}},"gcore:index/CloudLoadBalancerDdosProfileProtocol:CloudLoadBalancerDdosProfileProtocol":{"properties":{"port":{"type":"string","description":"Network port number for which protocols are configured\n"},"protocols":{"type":"array","items":{"type":"string"},"description":"List of network protocols enabled on the specified port\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port","protocols"]}}},"gcore:index/CloudLoadBalancerDdosProfileStatus:CloudLoadBalancerDdosProfileStatus":{"properties":{"errorDescription":{"type":"string","description":"Detailed error message describing any issues with the profile operation\n"},"status":{"type":"string","description":"Current operational status of the DDoS protection profile\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errorDescription","status"]}}},"gcore:index/CloudLoadBalancerFloatingIp:CloudLoadBalancerFloatingIp":{"properties":{"createdAt":{"type":"string","description":"Datetime when the floating IP was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"fixedIpAddress":{"type":"string","description":"IP address of the port the floating IP is attached to\n"},"floatingIpAddress":{"type":"string","description":"IP Address of the floating IP\n"},"id":{"type":"string","description":"Floating IP ID\n"},"portId":{"type":"string","description":"Port ID the floating IP is attached to. The \u003cspan pulumi-lang-nodejs=\"`fixedIpAddress`\" pulumi-lang-dotnet=\"`FixedIpAddress`\" pulumi-lang-go=\"`fixedIpAddress`\" pulumi-lang-python=\"`fixed_ip_address`\" pulumi-lang-yaml=\"`fixedIpAddress`\" pulumi-lang-java=\"`fixedIpAddress`\"\u003e`fixed_ip_address`\u003c/span\u003e is the IP address of the port.\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"routerId":{"type":"string","description":"Router ID\n"},"status":{"type":"string","description":"Floating IP status. DOWN - unassigned (available). ACTIVE - attached to a port (in use). ERROR - error state.\nAvailable values: \"ACTIVE\", \"DOWN\", \"ERROR\".\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerFloatingIpTag:CloudLoadBalancerFloatingIpTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the floating IP was last updated\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["createdAt","creatorTaskId","fixedIpAddress","floatingIpAddress","id","portId","projectId","region","regionId","routerId","status","tags","updatedAt"]}}},"gcore:index/CloudLoadBalancerFloatingIpTag:CloudLoadBalancerFloatingIpTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["key","readOnly","value"]}}},"gcore:index/CloudLoadBalancerListenerStats:CloudLoadBalancerListenerStats":{"properties":{"activeConnections":{"type":"number","description":"Currently active connections\n"},"bytesIn":{"type":"number","description":"Total bytes received\n"},"bytesOut":{"type":"number","description":"Total bytes sent\n"},"requestErrors":{"type":"number","description":"Total requests that were unable to be fulfilled\n"},"totalConnections":{"type":"number","description":"Total connections handled\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["activeConnections","bytesIn","bytesOut","requestErrors","totalConnections"]}}},"gcore:index/CloudLoadBalancerListenerUserList:CloudLoadBalancerListenerUserList":{"properties":{"encryptedPassword":{"type":"string","description":"Encrypted password to auth via Basic Authentication\n"},"username":{"type":"string","description":"Username to auth via Basic Authentication\n"}},"type":"object","required":["encryptedPassword","username"]},"gcore:index/CloudLoadBalancerLogging:CloudLoadBalancerLogging":{"properties":{"destinationRegionId":{"type":"number","description":"Destination region id to which the logs will be written\n"},"enabled":{"type":"boolean","description":"Enable/disable forwarding logs to LaaS\n"},"retentionPolicy":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerLoggingRetentionPolicy:CloudLoadBalancerLoggingRetentionPolicy","description":"The logs retention policy\n"},"topicName":{"type":"string","description":"The topic name to which the logs will be written\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled"]}}},"gcore:index/CloudLoadBalancerLoggingRetentionPolicy:CloudLoadBalancerLoggingRetentionPolicy":{"properties":{"period":{"type":"number","description":"Duration of days for which logs must be kept.\n"}},"type":"object","required":["period"]},"gcore:index/CloudLoadBalancerPoolHealthmonitor:CloudLoadBalancerPoolHealthmonitor":{"properties":{"adminStateUp":{"type":"boolean","description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n"},"delay":{"type":"number","description":"The time, in seconds, between sending probes to members\n"},"expectedCodes":{"type":"string","description":"Expected HTTP response codes. Can be a single code or a range of codes. Can only be used together with `HTTP` or `HTTPS` health monitor type. For example, 200,202,300-302,401,403,404,500-504. If not specified, the default is 200.\n"},"httpMethod":{"type":"string","description":"HTTP method. Can only be used together with `HTTP` or `HTTPS` health monitor type.\nAvailable values: \"CONNECT\", \"DELETE\", \"GET\", \"HEAD\", \"OPTIONS\", \"PATCH\", \"POST\", \"PUT\", \"TRACE\".\n"},"maxRetries":{"type":"number","description":"Number of successes before the member is switched to ONLINE state\n"},"maxRetriesDown":{"type":"number","description":"Number of failures before the member is switched to ERROR state.\n"},"timeout":{"type":"number","description":"The maximum time to connect. Must be less than the delay value\n"},"type":{"type":"string","description":"Health monitor type. Once health monitor is created, cannot be changed.\nAvailable values: \"HTTP\", \"HTTPS\", \"K8S\", \"PING\", \"TCP\", \"TLS-HELLO\", \"UDP-CONNECT\".\n"},"urlPath":{"type":"string","description":"URL Path. Defaults to '/'. Can only be used together with `HTTP` or `HTTPS` health monitor type.\n"}},"type":"object","required":["delay","maxRetries","timeout","type"],"language":{"nodejs":{"requiredOutputs":["delay","httpMethod","maxRetries","maxRetriesDown","timeout","type"]}}},"gcore:index/CloudLoadBalancerPoolListener:CloudLoadBalancerPoolListener":{"properties":{"id":{"type":"string","description":"Resource ID\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id"]}}},"gcore:index/CloudLoadBalancerPoolLoadbalancer:CloudLoadBalancerPoolLoadbalancer":{"properties":{"id":{"type":"string","description":"Resource ID\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id"]}}},"gcore:index/CloudLoadBalancerPoolMember:CloudLoadBalancerPoolMember":{"properties":{"address":{"type":"string","description":"Member IP address\n"},"adminStateUp":{"type":"boolean","description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n"},"backup":{"type":"boolean","description":"Set to true if the member is a backup member, to which traffic will be sent exclusively when all non-backup members will be unreachable. It allows to realize ACTIVE-BACKUP load balancing without thinking about VRRP and VIP configuration. Default is false.\n"},"instanceId":{"type":"string","description":"Either \u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e should be provided\n"},"monitorAddress":{"type":"string","description":"An alternate IP address used for health monitoring of a backend member. Default is null which monitors the member address.\n"},"monitorPort":{"type":"number","description":"An alternate protocol port used for health monitoring of a backend member. Default is null which monitors the member \u003cspan pulumi-lang-nodejs=\"`protocolPort`\" pulumi-lang-dotnet=\"`ProtocolPort`\" pulumi-lang-go=\"`protocolPort`\" pulumi-lang-python=\"`protocol_port`\" pulumi-lang-yaml=\"`protocolPort`\" pulumi-lang-java=\"`protocolPort`\"\u003e`protocol_port`\u003c/span\u003e.\n"},"protocolPort":{"type":"number","description":"Member IP port\n"},"subnetId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e in which \u003cspan pulumi-lang-nodejs=\"`address`\" pulumi-lang-dotnet=\"`Address`\" pulumi-lang-go=\"`address`\" pulumi-lang-python=\"`address`\" pulumi-lang-yaml=\"`address`\" pulumi-lang-java=\"`address`\"\u003e`address`\u003c/span\u003e is present. Either \u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e should be provided\n"},"weight":{"type":"number","description":"Member weight. Valid values are 0 \u003c \u003cspan pulumi-lang-nodejs=\"`weight`\" pulumi-lang-dotnet=\"`Weight`\" pulumi-lang-go=\"`weight`\" pulumi-lang-python=\"`weight`\" pulumi-lang-yaml=\"`weight`\" pulumi-lang-java=\"`weight`\"\u003e`weight`\u003c/span\u003e \u003c= 256, defaults to 1. Controls traffic distribution based on the pool's load balancing algorithm:\n"}},"type":"object","required":["address","protocolPort"],"language":{"nodejs":{"requiredOutputs":["address","adminStateUp","backup","protocolPort"]}}},"gcore:index/CloudLoadBalancerPoolSessionPersistence:CloudLoadBalancerPoolSessionPersistence":{"properties":{"cookieName":{"type":"string","description":"Should be set if app cookie or http cookie is used\n"},"persistenceGranularity":{"type":"string","description":"Subnet mask if \u003cspan pulumi-lang-nodejs=\"`sourceIp`\" pulumi-lang-dotnet=\"`SourceIp`\" pulumi-lang-go=\"`sourceIp`\" pulumi-lang-python=\"`source_ip`\" pulumi-lang-yaml=\"`sourceIp`\" pulumi-lang-java=\"`sourceIp`\"\u003e`source_ip`\u003c/span\u003e is used. For UDP ports only\n"},"persistenceTimeout":{"type":"number","description":"Session persistence timeout. For UDP ports only\n"},"type":{"type":"string","description":"Session persistence type\nAvailable values: \"APP*COOKIE\", \"HTTP*COOKIE\", \"SOURCE_IP\".\n"}},"type":"object","required":["type"]},"gcore:index/CloudLoadBalancerStats:CloudLoadBalancerStats":{"properties":{"activeConnections":{"type":"number","description":"Currently active connections\n"},"bytesIn":{"type":"number","description":"Total bytes received\n"},"bytesOut":{"type":"number","description":"Total bytes sent\n"},"requestErrors":{"type":"number","description":"Total requests that were unable to be fulfilled\n"},"totalConnections":{"type":"number","description":"Total connections handled\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["activeConnections","bytesIn","bytesOut","requestErrors","totalConnections"]}}},"gcore:index/CloudLoadBalancerTagsV2:CloudLoadBalancerTagsV2":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["key","readOnly","value"]}}},"gcore:index/CloudLoadBalancerVrrpIp:CloudLoadBalancerVrrpIp":{"properties":{"ipAddress":{"type":"string","description":"IP address\n"},"role":{"type":"string","description":"LoadBalancer instance role to which VRRP IP belong\nAvailable values: \"BACKUP\", \"MASTER\", \"STANDALONE\".\n"},"subnetId":{"type":"string","description":"Subnet UUID\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipAddress","role","subnetId"]}}},"gcore:index/CloudNetworkRouterExternalGatewayInfo:CloudNetworkRouterExternalGatewayInfo":{"properties":{"enableSnat":{"type":"boolean","description":"Is SNAT enabled. Defaults to true.\n"},"networkId":{"type":"string","description":"id of the external network.\n"},"type":{"type":"string","description":"must be 'manual'.\nAvailable values: \"manual\", \"default\".\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableSnat","networkId","type"]}}},"gcore:index/CloudNetworkRouterInterface:CloudNetworkRouterInterface":{"properties":{"subnetId":{"type":"string","description":"id of the subnet to attach to.\n"},"type":{"type":"string","description":"must be 'subnet'.\nAvailable values: \"subnet\".\n"}},"type":"object","required":["subnetId"],"language":{"nodejs":{"requiredOutputs":["subnetId","type"]}}},"gcore:index/CloudNetworkRouterRoute:CloudNetworkRouterRoute":{"properties":{"destination":{"type":"string","description":"CIDR of destination IPv4 subnet.\n"},"nexthop":{"type":"string","description":"IPv4 address to forward traffic to if it's destination IP matches 'destination' CIDR.\n"}},"type":"object","required":["destination","nexthop"]},"gcore:index/CloudNetworkSubnetHostRoute:CloudNetworkSubnetHostRoute":{"properties":{"destination":{"type":"string","description":"CIDR of destination IPv4 subnet.\n"},"nexthop":{"type":"string","description":"IPv4 address to forward traffic to if it's destination IP matches 'destination' CIDR.\n"}},"type":"object","required":["destination","nexthop"]},"gcore:index/CloudPlacementGroupInstance:CloudPlacementGroupInstance":{"properties":{"instanceId":{"type":"string","description":"The ID of the instance, corresponding to the attribute 'id'.\n"},"instanceName":{"type":"string","description":"The name of the instance, corresponding to the attribute 'name'.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["instanceName"]}}},"gcore:index/CloudReservedFixedIpAllowedAddressPair:CloudReservedFixedIpAllowedAddressPair":{"properties":{"ipAddress":{"type":"string","description":"Subnet mask or IP address of the port specified in \u003cspan pulumi-lang-nodejs=\"`allowedAddressPairs`\" pulumi-lang-dotnet=\"`AllowedAddressPairs`\" pulumi-lang-go=\"`allowedAddressPairs`\" pulumi-lang-python=\"`allowed_address_pairs`\" pulumi-lang-yaml=\"`allowedAddressPairs`\" pulumi-lang-java=\"`allowedAddressPairs`\"\u003e`allowed_address_pairs`\u003c/span\u003e\n"},"macAddress":{"type":"string","description":"MAC address of the port specified in \u003cspan pulumi-lang-nodejs=\"`allowedAddressPairs`\" pulumi-lang-dotnet=\"`AllowedAddressPairs`\" pulumi-lang-go=\"`allowedAddressPairs`\" pulumi-lang-python=\"`allowed_address_pairs`\" pulumi-lang-yaml=\"`allowedAddressPairs`\" pulumi-lang-java=\"`allowedAddressPairs`\"\u003e`allowed_address_pairs`\u003c/span\u003e\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipAddress","macAddress"]}}},"gcore:index/CloudReservedFixedIpAttachment:CloudReservedFixedIpAttachment":{"properties":{"resourceId":{"type":"string","description":"Resource ID\n"},"resourceType":{"type":"string","description":"Resource type\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["resourceId","resourceType"]}}},"gcore:index/CloudReservedFixedIpNetwork:CloudReservedFixedIpNetwork":{"properties":{"createdAt":{"type":"string","description":"Datetime when the network was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"default":{"type":"boolean","description":"True if network has \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e attribute\n"},"external":{"type":"boolean","description":"True if the network `router:external` attribute\n"},"id":{"type":"string","description":"Network ID\n"},"mtu":{"type":"number","description":"MTU (maximum transmission unit). Default value is 1450\n"},"name":{"type":"string","description":"Network name\n"},"portSecurityEnabled":{"type":"boolean","description":"Indicates \u003cspan pulumi-lang-nodejs=\"`portSecurityEnabled`\" pulumi-lang-dotnet=\"`PortSecurityEnabled`\" pulumi-lang-go=\"`portSecurityEnabled`\" pulumi-lang-python=\"`port_security_enabled`\" pulumi-lang-yaml=\"`portSecurityEnabled`\" pulumi-lang-java=\"`portSecurityEnabled`\"\u003e`port_security_enabled`\u003c/span\u003e status of all newly created in the network ports.\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"segmentationId":{"type":"number","description":"Id of network segment\n"},"shared":{"type":"boolean","description":"True when the network is shared with your project by external owner\n"},"subnets":{"type":"array","items":{"type":"string"},"description":"List of subnetworks\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudReservedFixedIpNetworkTag:CloudReservedFixedIpNetworkTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"type":{"type":"string","description":"Network type (vlan, vxlan)\n"},"updatedAt":{"type":"string","description":"Datetime when the network was last updated\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["createdAt","creatorTaskId","default","external","id","mtu","name","portSecurityEnabled","projectId","region","regionId","segmentationId","shared","subnets","tags","type","updatedAt"]}}},"gcore:index/CloudReservedFixedIpNetworkTag:CloudReservedFixedIpNetworkTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["key","readOnly","value"]}}},"gcore:index/CloudSecretPayload:CloudSecretPayload":{"properties":{"certificateChainWo":{"type":"string","description":"SSL certificate chain of intermediates and root certificates in PEM format. This is a write-only field — it will be sent to the API but never stored in state.\n"},"certificateWo":{"type":"string","description":"SSL certificate in PEM format. This is a write-only field — it will be sent to the API but never stored in state.\n"},"privateKeyWo":{"type":"string","description":"SSL private key in PEM format. This is a write-only field — it will be sent to the API but never stored in state.\n"}},"type":"object","required":["certificateChainWo","certificateWo","privateKeyWo"]},"gcore:index/CloudSecurityGroupTagsV2:CloudSecurityGroupTagsV2":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["key","readOnly","value"]}}},"gcore:index/CloudVolumeAttachment:CloudVolumeAttachment":{"properties":{"attachedAt":{"type":"string","description":"The date and time when the attachment was created.\n"},"attachmentId":{"type":"string","description":"The unique identifier of the attachment object.\n"},"device":{"type":"string","description":"The block device name inside the guest instance.\n"},"flavorId":{"type":"string","description":"The flavor ID of the instance.\n"},"instanceName":{"type":"string","description":"The name of the instance if attached and the server name is known.\n"},"serverId":{"type":"string","description":"The unique identifier of the instance.\n"},"volumeId":{"type":"string","description":"The unique identifier of the attached volume.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["attachedAt","attachmentId","device","flavorId","instanceName","serverId","volumeId"]}}},"gcore:index/CloudVolumeLimiterStats:CloudVolumeLimiterStats":{"properties":{"iopsBaseLimit":{"type":"number","description":"The sustained IOPS (Input/Output Operations Per Second) limit.\n"},"iopsBurstLimit":{"type":"number","description":"The burst IOPS limit.\n"},"mBpsBaseLimit":{"type":"number","description":"The sustained bandwidth limit in megabytes per second (MBps).\n"},"mBpsBurstLimit":{"type":"number","description":"The burst bandwidth limit in megabytes per second (MBps).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["iopsBaseLimit","iopsBurstLimit","mBpsBaseLimit","mBpsBurstLimit"]}}},"gcore:index/DnsNetworkMappingMapping:DnsNetworkMappingMapping":{"properties":{"cidr4s":{"type":"array","items":{"type":"string"}},"cidr6s":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}}},"type":"object"},"gcore:index/DnsZoneRecord:DnsZoneRecord":{"properties":{"name":{"type":"string"},"shortAnswers":{"type":"array","items":{"type":"string"}},"ttl":{"type":"number"},"type":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","shortAnswers","ttl","type"]}}},"gcore:index/DnsZoneRrsetPicker:DnsZoneRrsetPicker":{"properties":{"limit":{"type":"number","description":"Limits the number of records returned by the filter\nCan be a positive value for a specific limit. Use zero or leave it blank to indicate no limits.\n"},"strict":{"type":"boolean","description":"if strict=false, then the filter will return all records if no records match the filter\n"},"type":{"type":"string","description":"Filter type\nAvailable values: \"geodns\", \"asn\", \"country\", \"continent\", \"region\", \"ip\", \"geodistance\", \u003cspan pulumi-lang-nodejs=\"\"weightedShuffle\"\" pulumi-lang-dotnet=\"\"WeightedShuffle\"\" pulumi-lang-go=\"\"weightedShuffle\"\" pulumi-lang-python=\"\"weighted_shuffle\"\" pulumi-lang-yaml=\"\"weightedShuffle\"\" pulumi-lang-java=\"\"weightedShuffle\"\"\u003e\"weighted_shuffle\"\u003c/span\u003e, \"default\", \u003cspan pulumi-lang-nodejs=\"\"firstN\"\" pulumi-lang-dotnet=\"\"FirstN\"\" pulumi-lang-go=\"\"firstN\"\" pulumi-lang-python=\"\"first_n\"\" pulumi-lang-yaml=\"\"firstN\"\" pulumi-lang-java=\"\"firstN\"\"\u003e\"first_n\"\u003c/span\u003e.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["limit","strict","type"]}}},"gcore:index/DnsZoneRrsetResourceRecord:DnsZoneRrsetResourceRecord":{"properties":{"contents":{"type":"array","items":{"type":"string"},"description":"Content of resource record.\nValues must be valid JSON (strings need inner quotes).\nExamples:\n+ A-record: `[\"\\\"192.168.1.1\\\"\"]`\n+ MX-record: `[10, \"\\\"mail.example.com.\\\"\"]`\n"},"enabled":{"type":"boolean"},"id":{"type":"number","description":"ID of the resource record\n"},"meta":{"type":"object","additionalProperties":{"type":"string"},"description":"This meta will be used to decide which resource record should pass\nthrough filters from the filter set\n"}},"type":"object","required":["contents"],"language":{"nodejs":{"requiredOutputs":["contents","enabled","id"]}}},"gcore:index/DnsZoneRrsetWarning:DnsZoneRrsetWarning":{"properties":{"key":{"type":"string"},"message":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["key","message"]}}},"gcore:index/DnsZoneRrsetsAmount:DnsZoneRrsetsAmount":{"properties":{"dynamic":{"$ref":"#/types/gcore:index%2FDnsZoneRrsetsAmountDynamic:DnsZoneRrsetsAmountDynamic","description":"Amount of dynamic RRsets in zone\n"},"static":{"type":"number","description":"Amount of static RRsets in zone\n"},"total":{"type":"number","description":"Total amount of RRsets in zone\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dynamic","static","total"]}}},"gcore:index/DnsZoneRrsetsAmountDynamic:DnsZoneRrsetsAmountDynamic":{"properties":{"healthcheck":{"type":"number","description":"Amount of RRsets with enabled healthchecks\n"},"total":{"type":"number","description":"Total amount of dynamic RRsets in zone\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["healthcheck","total"]}}},"gcore:index/FastedgeAppSecrets:FastedgeAppSecrets":{"properties":{"comment":{"type":"string","description":"A description or comment about the secret.\n"},"id":{"type":"number","description":"The unique identifier of the secret.\n"},"name":{"type":"string","description":"The unique name of the secret.\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["comment","id","name"]}}},"gcore:index/FastedgeAppStores:FastedgeAppStores":{"properties":{"comment":{"type":"string","description":"A description of the store\n"},"id":{"type":"number","description":"The identifier of the store\n"},"name":{"type":"string","description":"The name of the store\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["comment","id","name"]}}},"gcore:index/FastedgeSecretSecretSlot:FastedgeSecretSecretSlot":{"properties":{"checksum":{"type":"string","description":"SHA-256 hash of the decrypted value for integrity verification (auto-generated)\n"},"slot":{"type":"number","description":"Unix timestamp (seconds since epoch) indicating when this secret version becomes active. Use for time-based secret rotation.\n"},"value":{"type":"string","description":"The plaintext secret value. Will be encrypted with AES-256-GCM before storage.\n","secret":true}},"type":"object","required":["slot"],"language":{"nodejs":{"requiredOutputs":["checksum","slot"]}}},"gcore:index/WaapDomainQuotas:WaapDomainQuotas":{"properties":{"allowed":{"type":"number","description":"The maximum allowed number of this resource\n"},"current":{"type":"number","description":"The current number of this resource\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowed","current"]}}},"gcore:index/getCdnOriginGroupAuth:getCdnOriginGroupAuth":{"properties":{"s3AccessKeyId":{"type":"string","description":"Access key ID for the S3 account.\n"},"s3BucketName":{"type":"string","description":"S3 bucket name.\n\nRestrictions:\n- Maximum 128 characters.\n"},"s3Region":{"type":"string","description":"S3 storage region.\n\nThe parameter is required, if \u003cspan pulumi-lang-nodejs=\"\"s3Type\"\" pulumi-lang-dotnet=\"\"S3Type\"\" pulumi-lang-go=\"\"s3Type\"\" pulumi-lang-python=\"\"s3_type\"\" pulumi-lang-yaml=\"\"s3Type\"\" pulumi-lang-java=\"\"s3Type\"\"\u003e\"s3_type\"\u003c/span\u003e: amazon.\n"},"s3SecretAccessKey":{"type":"string","description":"Secret access key for the S3 account.\n\nRestrictions:\n- Latin letters (A-Z, a-z), numbers (0-9), pluses, slashes, dashes, colons and underscores.\n- If \u003cspan pulumi-lang-nodejs=\"\"s3Type\"\" pulumi-lang-dotnet=\"\"S3Type\"\" pulumi-lang-go=\"\"s3Type\"\" pulumi-lang-python=\"\"s3_type\"\" pulumi-lang-yaml=\"\"s3Type\"\" pulumi-lang-java=\"\"s3Type\"\"\u003e\"s3_type\"\u003c/span\u003e: amazon, length should be 40 characters.\n- If \u003cspan pulumi-lang-nodejs=\"\"s3Type\"\" pulumi-lang-dotnet=\"\"S3Type\"\" pulumi-lang-go=\"\"s3Type\"\" pulumi-lang-python=\"\"s3_type\"\" pulumi-lang-yaml=\"\"s3Type\"\" pulumi-lang-java=\"\"s3Type\"\"\u003e\"s3_type\"\u003c/span\u003e: other, length should be from 16 to 255 characters.\n"},"s3StorageHostname":{"type":"string","description":"S3 storage hostname.\n\nThe parameter is required, if \u003cspan pulumi-lang-nodejs=\"\"s3Type\"\" pulumi-lang-dotnet=\"\"S3Type\"\" pulumi-lang-go=\"\"s3Type\"\" pulumi-lang-python=\"\"s3_type\"\" pulumi-lang-yaml=\"\"s3Type\"\" pulumi-lang-java=\"\"s3Type\"\"\u003e\"s3_type\"\u003c/span\u003e: other.\n"},"s3Type":{"type":"string","description":"Storage type compatible with S3.\n\nPossible values:\n- **amazon** – AWS S3 storage.\n- **other** – Other (not AWS) S3 compatible storage.\n"}},"type":"object","required":["s3AccessKeyId","s3BucketName","s3Region","s3SecretAccessKey","s3StorageHostname","s3Type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnOriginGroupSource:getCdnOriginGroupSource":{"properties":{"backup":{"type":"boolean","description":"Defines whether the origin is a backup, meaning that it will not be used until one of active origins become unavailable.\n"},"enabled":{"type":"boolean","description":"Enables or disables an origin source in the origin group.\n\nPossible values:\n- **true** - Origin is enabled and the CDN uses it to pull content.\n- **false** - Origin is disabled and the CDN does not use it to pull content.\n\nOrigin group must contain at least one enabled origin.\n"},"source":{"type":"string","description":"IP address or domain name of the origin and the port, if custom port is used.\n"}},"type":"object","required":["backup","enabled","source"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptions:getCdnResourceOptions":{"properties":{"allowedHttpMethods":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsAllowedHttpMethods:getCdnResourceOptionsAllowedHttpMethods","description":"HTTP methods allowed for content requests from the CDN.\n"},"botProtection":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsBotProtection:getCdnResourceOptionsBotProtection","description":"Allows to prevent online services from overloading and ensure your business workflow running smoothly.\n"},"brotliCompression":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsBrotliCompression:getCdnResourceOptionsBrotliCompression","description":"Compresses content with Brotli on the CDN side. CDN servers will request only uncompressed content from the origin.\n"},"browserCacheSettings":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsBrowserCacheSettings:getCdnResourceOptionsBrowserCacheSettings","description":"Cache expiration time for users browsers in seconds.\n\nCache expiration time is applied to the following response codes: 200, 201, 204, 206, 301, 302, 303, 304, 307, 308.\n\nResponses with other codes will not be cached.\n"},"cacheHttpHeaders":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsCacheHttpHeaders:getCdnResourceOptionsCacheHttpHeaders","description":"**Legacy option**. Use the \u003cspan pulumi-lang-nodejs=\"`responseHeadersHidingPolicy`\" pulumi-lang-dotnet=\"`ResponseHeadersHidingPolicy`\" pulumi-lang-go=\"`responseHeadersHidingPolicy`\" pulumi-lang-python=\"`response_headers_hiding_policy`\" pulumi-lang-yaml=\"`responseHeadersHidingPolicy`\" pulumi-lang-java=\"`responseHeadersHidingPolicy`\"\u003e`response_headers_hiding_policy`\u003c/span\u003e option instead.\n\nHTTP Headers that must be included in the response.\n","deprecationMessage":"Deprecated"},"cors":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsCors:getCdnResourceOptionsCors","description":"Enables or disables CORS (Cross-Origin Resource Sharing) header support.\n\nCORS header support allows the CDN to add the Access-Control-Allow-Origin header to a response to a browser.\n"},"countryAcl":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsCountryAcl:getCdnResourceOptionsCountryAcl","description":"Enables control access to content for specified countries.\n"},"disableCache":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsDisableCache:getCdnResourceOptionsDisableCache","description":"**Legacy option**. Use the \u003cspan pulumi-lang-nodejs=\"`edgeCacheSettings`\" pulumi-lang-dotnet=\"`EdgeCacheSettings`\" pulumi-lang-go=\"`edgeCacheSettings`\" pulumi-lang-python=\"`edge_cache_settings`\" pulumi-lang-yaml=\"`edgeCacheSettings`\" pulumi-lang-java=\"`edgeCacheSettings`\"\u003e`edge_cache_settings`\u003c/span\u003e option instead.\n\nAllows the complete disabling of content caching.\n","deprecationMessage":"Deprecated"},"disableProxyForceRanges":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsDisableProxyForceRanges:getCdnResourceOptionsDisableProxyForceRanges","description":"Allows 206 responses regardless of the settings of an origin source.\n"},"edgeCacheSettings":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsEdgeCacheSettings:getCdnResourceOptionsEdgeCacheSettings","description":"Cache expiration time for CDN servers.\n\n\u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e fields cannot be used simultaneously.\n"},"fastedge":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsFastedge:getCdnResourceOptionsFastedge","description":"Allows to configure FastEdge app to be called on different request/response phases.\n\nNote: At least one of \u003cspan pulumi-lang-nodejs=\"`onRequestHeaders`\" pulumi-lang-dotnet=\"`OnRequestHeaders`\" pulumi-lang-go=\"`onRequestHeaders`\" pulumi-lang-python=\"`on_request_headers`\" pulumi-lang-yaml=\"`onRequestHeaders`\" pulumi-lang-java=\"`onRequestHeaders`\"\u003e`on_request_headers`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`onRequestBody`\" pulumi-lang-dotnet=\"`OnRequestBody`\" pulumi-lang-go=\"`onRequestBody`\" pulumi-lang-python=\"`on_request_body`\" pulumi-lang-yaml=\"`onRequestBody`\" pulumi-lang-java=\"`onRequestBody`\"\u003e`on_request_body`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`onResponseHeaders`\" pulumi-lang-dotnet=\"`OnResponseHeaders`\" pulumi-lang-go=\"`onResponseHeaders`\" pulumi-lang-python=\"`on_response_headers`\" pulumi-lang-yaml=\"`onResponseHeaders`\" pulumi-lang-java=\"`onResponseHeaders`\"\u003e`on_response_headers`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`onResponseBody`\" pulumi-lang-dotnet=\"`OnResponseBody`\" pulumi-lang-go=\"`onResponseBody`\" pulumi-lang-python=\"`on_response_body`\" pulumi-lang-yaml=\"`onResponseBody`\" pulumi-lang-java=\"`onResponseBody`\"\u003e`on_response_body`\u003c/span\u003e must be specified.\n"},"fetchCompressed":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsFetchCompressed:getCdnResourceOptionsFetchCompressed","description":"Makes the CDN request compressed content from the origin.\n\nThe origin server should support compression. CDN servers will not decompress your content even if a user browser does not accept compression.\n\nNotes:\n\n1. \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e is not supported with `gzipON` or \u003cspan pulumi-lang-nodejs=\"`brotliCompression`\" pulumi-lang-dotnet=\"`BrotliCompression`\" pulumi-lang-go=\"`brotliCompression`\" pulumi-lang-python=\"`brotli_compression`\" pulumi-lang-yaml=\"`brotliCompression`\" pulumi-lang-java=\"`brotliCompression`\"\u003e`brotli_compression`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`slice`\" pulumi-lang-dotnet=\"`Slice`\" pulumi-lang-go=\"`slice`\" pulumi-lang-python=\"`slice`\" pulumi-lang-yaml=\"`slice`\" pulumi-lang-java=\"`slice`\"\u003e`slice`\u003c/span\u003e options enabled.\n2. \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e overrides `gzipON` and \u003cspan pulumi-lang-nodejs=\"`brotliCompression`\" pulumi-lang-dotnet=\"`BrotliCompression`\" pulumi-lang-go=\"`brotliCompression`\" pulumi-lang-python=\"`brotli_compression`\" pulumi-lang-yaml=\"`brotliCompression`\" pulumi-lang-java=\"`brotliCompression`\"\u003e`brotli_compression`\u003c/span\u003e in rule. If you enable it in CDN resource and want to use `gzipON` and \u003cspan pulumi-lang-nodejs=\"`brotliCompression`\" pulumi-lang-dotnet=\"`BrotliCompression`\" pulumi-lang-go=\"`brotliCompression`\" pulumi-lang-python=\"`brotli_compression`\" pulumi-lang-yaml=\"`brotliCompression`\" pulumi-lang-java=\"`brotliCompression`\"\u003e`brotli_compression`\u003c/span\u003e in a rule, you have to specify `\u003cspan pulumi-lang-nodejs=\"\"fetchCompressed\"\" pulumi-lang-dotnet=\"\"FetchCompressed\"\" pulumi-lang-go=\"\"fetchCompressed\"\" pulumi-lang-python=\"\"fetch_compressed\"\" pulumi-lang-yaml=\"\"fetchCompressed\"\" pulumi-lang-java=\"\"fetchCompressed\"\"\u003e\"fetch_compressed\"\u003c/span\u003e: false` in the rule.\n"},"followOriginRedirect":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsFollowOriginRedirect:getCdnResourceOptionsFollowOriginRedirect","description":"Enables redirection from origin.\nIf the origin server returns a redirect, the option allows the CDN to pull the requested content from the origin server that was returned in the redirect.\n"},"forceReturn":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsForceReturn:getCdnResourceOptionsForceReturn","description":"Applies custom HTTP response codes for CDN content.\n\nThe following codes are reserved by our system and cannot be specified in this option: 408, 444, 477, 494, 495, 496, 497, 499.\n"},"forwardHostHeader":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsForwardHostHeader:getCdnResourceOptionsForwardHostHeader","description":"Forwards the Host header from a end-user request to an origin server.\n\n`hostHeader` and \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"grpcPassthrough":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsGrpcPassthrough:getCdnResourceOptionsGrpcPassthrough","description":"Enables gRPC pass-through for the CDN resource.\n"},"gzipOn":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsGzipOn:getCdnResourceOptionsGzipOn","description":"Compresses content with gzip on the CDN end. CDN servers will request only uncompressed content from the origin.\n\nNotes:\n\n1. Compression with gzip is not supported with \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`slice`\" pulumi-lang-dotnet=\"`Slice`\" pulumi-lang-go=\"`slice`\" pulumi-lang-python=\"`slice`\" pulumi-lang-yaml=\"`slice`\" pulumi-lang-java=\"`slice`\"\u003e`slice`\u003c/span\u003e options enabled.\n2. \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e option in CDN resource settings overrides `gzipON` in rules. If you enable \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e in CDN resource and want to enable `gzipON` in rules, you need to specify `\u003cspan pulumi-lang-nodejs=\"\"fetchCompressed\"\" pulumi-lang-dotnet=\"\"FetchCompressed\"\" pulumi-lang-go=\"\"fetchCompressed\"\" pulumi-lang-python=\"\"fetch_compressed\"\" pulumi-lang-yaml=\"\"fetchCompressed\"\" pulumi-lang-java=\"\"fetchCompressed\"\"\u003e\"fetch_compressed\"\u003c/span\u003e:false` for rules.\n"},"hostHeader":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsHostHeader:getCdnResourceOptionsHostHeader","description":"Sets the Host header that CDN servers use when request content from an origin server.\nYour server must be able to process requests with the chosen header.\n\nIf the option is \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e, the Host Header value is equal to first CNAME.\n\n`hostHeader` and \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"http3Enabled":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsHttp3Enabled:getCdnResourceOptionsHttp3Enabled","description":"Enables HTTP/3 protocol for content delivery.\n\n\u003cspan pulumi-lang-nodejs=\"`http3Enabled`\" pulumi-lang-dotnet=\"`Http3Enabled`\" pulumi-lang-go=\"`http3Enabled`\" pulumi-lang-python=\"`http3_enabled`\" pulumi-lang-yaml=\"`http3Enabled`\" pulumi-lang-java=\"`http3Enabled`\"\u003e`http3_enabled`\u003c/span\u003e option works only with `\"sslEnabled\": true`.\n"},"ignoreCookie":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsIgnoreCookie:getCdnResourceOptionsIgnoreCookie","description":"Defines whether the files with the Set-Cookies header are cached as one file or as different ones.\n"},"ignoreQueryString":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsIgnoreQueryString:getCdnResourceOptionsIgnoreQueryString","description":"How a file with different query strings is cached: either as one object (option is enabled) or as different objects (option is disabled.)\n\n`ignoreQueryString`, \u003cspan pulumi-lang-nodejs=\"`queryParamsWhitelist`\" pulumi-lang-dotnet=\"`QueryParamsWhitelist`\" pulumi-lang-go=\"`queryParamsWhitelist`\" pulumi-lang-python=\"`query_params_whitelist`\" pulumi-lang-yaml=\"`queryParamsWhitelist`\" pulumi-lang-java=\"`queryParamsWhitelist`\"\u003e`query_params_whitelist`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`queryParamsBlacklist`\" pulumi-lang-dotnet=\"`QueryParamsBlacklist`\" pulumi-lang-go=\"`queryParamsBlacklist`\" pulumi-lang-python=\"`query_params_blacklist`\" pulumi-lang-yaml=\"`queryParamsBlacklist`\" pulumi-lang-java=\"`queryParamsBlacklist`\"\u003e`query_params_blacklist`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"imageStack":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsImageStack:getCdnResourceOptionsImageStack","description":"Transforms JPG and PNG images (for example, resize or crop) and automatically converts them to WebP or AVIF format.\n"},"ipAddressAcl":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsIpAddressAcl:getCdnResourceOptionsIpAddressAcl","description":"Controls access to the CDN resource content for specific IP addresses.\n\nIf you want to use IPs from our CDN servers IP list for IP ACL configuration, you have to independently monitor their relevance.\n\nWe recommend you use a script for automatically update IP ACL. [Read more.](https://www.terraform.io/docs/api-reference/cdn/ip-addresses-list/get-cdn-servers-ip-addresses)\n"},"limitBandwidth":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsLimitBandwidth:getCdnResourceOptionsLimitBandwidth","description":"Allows to control the download speed per connection.\n"},"proxyCacheKey":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsProxyCacheKey:getCdnResourceOptionsProxyCacheKey","description":"Allows you to modify your cache key. If omitted, the default value is `$request_uri`.\n\nCombine the specified variables to create a key for caching.\n- **$\u003cspan pulumi-lang-nodejs=\"`requestUri`\" pulumi-lang-dotnet=\"`RequestUri`\" pulumi-lang-go=\"`requestUri`\" pulumi-lang-python=\"`request_uri`\" pulumi-lang-yaml=\"`requestUri`\" pulumi-lang-java=\"`requestUri`\"\u003e`request_uri`\u003c/span\u003e**\n- **$scheme**\n- **$uri**\n\n**Warning**: Enabling and changing this option can invalidate your current cache and affect the cache hit ratio. Furthermore, the \"Purge by pattern\" option will not work.\n"},"proxyCacheMethodsSet":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsProxyCacheMethodsSet:getCdnResourceOptionsProxyCacheMethodsSet","description":"Caching for POST requests along with default GET and HEAD.\n"},"proxyConnectTimeout":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsProxyConnectTimeout:getCdnResourceOptionsProxyConnectTimeout","description":"The time limit for establishing a connection with the origin.\n"},"proxyReadTimeout":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsProxyReadTimeout:getCdnResourceOptionsProxyReadTimeout","description":"The time limit for receiving a partial response from the origin.\nIf no response is received within this time, the connection will be closed.\n\n**Note:**\nWhen used with a WebSocket connection, this option supports values only in the range 1–20 seconds (instead of the usual 1–30 seconds).\n"},"queryParamsBlacklist":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsQueryParamsBlacklist:getCdnResourceOptionsQueryParamsBlacklist","description":"Files with the specified query parameters are cached as one object, files with other parameters are cached as different objects.\n\n`ignoreQueryString`, \u003cspan pulumi-lang-nodejs=\"`queryParamsWhitelist`\" pulumi-lang-dotnet=\"`QueryParamsWhitelist`\" pulumi-lang-go=\"`queryParamsWhitelist`\" pulumi-lang-python=\"`query_params_whitelist`\" pulumi-lang-yaml=\"`queryParamsWhitelist`\" pulumi-lang-java=\"`queryParamsWhitelist`\"\u003e`query_params_whitelist`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`queryParamsBlacklist`\" pulumi-lang-dotnet=\"`QueryParamsBlacklist`\" pulumi-lang-go=\"`queryParamsBlacklist`\" pulumi-lang-python=\"`query_params_blacklist`\" pulumi-lang-yaml=\"`queryParamsBlacklist`\" pulumi-lang-java=\"`queryParamsBlacklist`\"\u003e`query_params_blacklist`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"queryParamsWhitelist":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsQueryParamsWhitelist:getCdnResourceOptionsQueryParamsWhitelist","description":"Files with the specified query parameters are cached as different objects, files with other parameters are cached as one object.\n\n`ignoreQueryString`, \u003cspan pulumi-lang-nodejs=\"`queryParamsWhitelist`\" pulumi-lang-dotnet=\"`QueryParamsWhitelist`\" pulumi-lang-go=\"`queryParamsWhitelist`\" pulumi-lang-python=\"`query_params_whitelist`\" pulumi-lang-yaml=\"`queryParamsWhitelist`\" pulumi-lang-java=\"`queryParamsWhitelist`\"\u003e`query_params_whitelist`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`queryParamsBlacklist`\" pulumi-lang-dotnet=\"`QueryParamsBlacklist`\" pulumi-lang-go=\"`queryParamsBlacklist`\" pulumi-lang-python=\"`query_params_blacklist`\" pulumi-lang-yaml=\"`queryParamsBlacklist`\" pulumi-lang-java=\"`queryParamsBlacklist`\"\u003e`query_params_blacklist`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"queryStringForwarding":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsQueryStringForwarding:getCdnResourceOptionsQueryStringForwarding","description":"The Query String Forwarding feature allows for the seamless transfer of parameters embedded in playlist files to the corresponding media chunk files.\nThis functionality ensures that specific attributes, such as authentication tokens or tracking information, are consistently passed along from the playlist manifest to the individual media segments.\nThis is particularly useful for maintaining continuity in security, analytics, and any other parameter-based operations across the entire media delivery workflow.\n"},"redirectHttpToHttps":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsRedirectHttpToHttps:getCdnResourceOptionsRedirectHttpToHttps","description":"Enables redirect from HTTP to HTTPS.\n\n\u003cspan pulumi-lang-nodejs=\"`redirectHttpToHttps`\" pulumi-lang-dotnet=\"`RedirectHttpToHttps`\" pulumi-lang-go=\"`redirectHttpToHttps`\" pulumi-lang-python=\"`redirect_http_to_https`\" pulumi-lang-yaml=\"`redirectHttpToHttps`\" pulumi-lang-java=\"`redirectHttpToHttps`\"\u003e`redirect_http_to_https`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`redirectHttpsToHttp`\" pulumi-lang-dotnet=\"`RedirectHttpsToHttp`\" pulumi-lang-go=\"`redirectHttpsToHttp`\" pulumi-lang-python=\"`redirect_https_to_http`\" pulumi-lang-yaml=\"`redirectHttpsToHttp`\" pulumi-lang-java=\"`redirectHttpsToHttp`\"\u003e`redirect_https_to_http`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"redirectHttpsToHttp":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsRedirectHttpsToHttp:getCdnResourceOptionsRedirectHttpsToHttp","description":"Enables redirect from HTTPS to HTTP.\n\n\u003cspan pulumi-lang-nodejs=\"`redirectHttpToHttps`\" pulumi-lang-dotnet=\"`RedirectHttpToHttps`\" pulumi-lang-go=\"`redirectHttpToHttps`\" pulumi-lang-python=\"`redirect_http_to_https`\" pulumi-lang-yaml=\"`redirectHttpToHttps`\" pulumi-lang-java=\"`redirectHttpToHttps`\"\u003e`redirect_http_to_https`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`redirectHttpsToHttp`\" pulumi-lang-dotnet=\"`RedirectHttpsToHttp`\" pulumi-lang-go=\"`redirectHttpsToHttp`\" pulumi-lang-python=\"`redirect_https_to_http`\" pulumi-lang-yaml=\"`redirectHttpsToHttp`\" pulumi-lang-java=\"`redirectHttpsToHttp`\"\u003e`redirect_https_to_http`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"referrerAcl":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsReferrerAcl:getCdnResourceOptionsReferrerAcl","description":"Controls access to the CDN resource content for specified domain names.\n"},"requestLimiter":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsRequestLimiter:getCdnResourceOptionsRequestLimiter","description":"Option allows to limit the amount of HTTP requests.\n"},"responseHeadersHidingPolicy":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsResponseHeadersHidingPolicy:getCdnResourceOptionsResponseHeadersHidingPolicy","description":"Hides HTTP headers from an origin server in the CDN response.\n"},"rewrite":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsRewrite:getCdnResourceOptionsRewrite","description":"Changes and redirects requests from the CDN to the origin. It operates according to the [Nginx](https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite) configuration.\n"},"secureKey":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsSecureKey:getCdnResourceOptionsSecureKey","description":"Configures access with tokenized URLs. This makes impossible to access content without a valid (unexpired) token.\n"},"slice":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsSlice:getCdnResourceOptionsSlice","description":"Requests and caches files larger than 10 MB in parts (no larger than 10 MB per part.) This reduces time to first byte.\n\nThe option is based on the [Slice](https://nginx.org/en/docs/http/ngx_http_slice_module.html) module.\n\nNotes:\n\n1. Origin must support HTTP Range requests.\n2. Not supported with `gzipON`, \u003cspan pulumi-lang-nodejs=\"`brotliCompression`\" pulumi-lang-dotnet=\"`BrotliCompression`\" pulumi-lang-go=\"`brotliCompression`\" pulumi-lang-python=\"`brotli_compression`\" pulumi-lang-yaml=\"`brotliCompression`\" pulumi-lang-java=\"`brotliCompression`\"\u003e`brotli_compression`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e options enabled.\n"},"sni":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsSni:getCdnResourceOptionsSni","description":"The hostname that is added to SNI requests from CDN servers to the origin server via HTTPS.\n\nSNI is generally only required if your origin uses shared hosting or does not have a dedicated IP address.\nIf the origin server presents multiple certificates, SNI allows the origin server to know which certificate to use for the connection.\n\nThe option works only if `originProtocol` parameter is `HTTPS` or `MATCH`.\n"},"stale":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsStale:getCdnResourceOptionsStale","description":"Serves stale cached content in case of origin unavailability.\n"},"staticHeaders":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsStaticHeaders:getCdnResourceOptionsStaticHeaders","description":"**Legacy option**. Use the \u003cspan pulumi-lang-nodejs=\"`staticResponseHeaders`\" pulumi-lang-dotnet=\"`StaticResponseHeaders`\" pulumi-lang-go=\"`staticResponseHeaders`\" pulumi-lang-python=\"`static_response_headers`\" pulumi-lang-yaml=\"`staticResponseHeaders`\" pulumi-lang-java=\"`staticResponseHeaders`\"\u003e`static_response_headers`\u003c/span\u003e option instead.\n\nCustom HTTP Headers that a CDN server adds to response. Up to fifty custom HTTP Headers can be specified. May contain a header with multiple values.\n","deprecationMessage":"Deprecated"},"staticRequestHeaders":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsStaticRequestHeaders:getCdnResourceOptionsStaticRequestHeaders","description":"Custom HTTP Headers for a CDN server to add to request. Up to fifty custom HTTP Headers can be specified.\n"},"staticResponseHeaders":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsStaticResponseHeaders:getCdnResourceOptionsStaticResponseHeaders","description":"Custom HTTP Headers that a CDN server adds to a response.\n"},"tlsVersions":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsTlsVersions:getCdnResourceOptionsTlsVersions","description":"List of SSL/TLS protocol versions allowed for HTTPS connections from end users to the domain.\n\nWhen the option is disabled, all protocols versions are allowed.\n"},"useDefaultLeChain":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsUseDefaultLeChain:getCdnResourceOptionsUseDefaultLeChain","description":"Let's Encrypt certificate chain.\n\nThe specified chain will be used during the next Let's Encrypt certificate issue or renewal.\n"},"useDns01LeChallenge":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsUseDns01LeChallenge:getCdnResourceOptionsUseDns01LeChallenge","description":"DNS-01 challenge to issue a Let's Encrypt certificate for the resource.\n\nDNS service should be activated to enable this option.\n"},"useRsaLeCert":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsUseRsaLeCert:getCdnResourceOptionsUseRsaLeCert","description":"RSA Let's Encrypt certificate type for the CDN resource.\n\nThe specified value will be used during the next Let's Encrypt certificate issue or renewal.\n"},"userAgentAcl":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsUserAgentAcl:getCdnResourceOptionsUserAgentAcl","description":"Controls access to the content for specified User-Agents.\n"},"waap":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsWaap:getCdnResourceOptionsWaap","description":"Allows to enable WAAP (Web Application and API Protection).\n"},"websockets":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsWebsockets:getCdnResourceOptionsWebsockets","description":"Enables or disables WebSockets connections to an origin server.\n"}},"type":"object","required":["allowedHttpMethods","botProtection","brotliCompression","browserCacheSettings","cacheHttpHeaders","cors","countryAcl","disableCache","disableProxyForceRanges","edgeCacheSettings","fastedge","fetchCompressed","followOriginRedirect","forceReturn","forwardHostHeader","grpcPassthrough","gzipOn","hostHeader","http3Enabled","ignoreCookie","ignoreQueryString","imageStack","ipAddressAcl","limitBandwidth","proxyCacheKey","proxyCacheMethodsSet","proxyConnectTimeout","proxyReadTimeout","queryParamsBlacklist","queryParamsWhitelist","queryStringForwarding","redirectHttpToHttps","redirectHttpsToHttp","referrerAcl","requestLimiter","responseHeadersHidingPolicy","rewrite","secureKey","slice","sni","stale","staticHeaders","staticRequestHeaders","staticResponseHeaders","tlsVersions","useDefaultLeChain","useDns01LeChallenge","useRsaLeCert","userAgentAcl","waap","websockets"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsAllowedHttpMethods:getCdnResourceOptionsAllowedHttpMethods":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"}}},"type":"object","required":["enabled","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsBotProtection:getCdnResourceOptionsBotProtection":{"properties":{"botChallenge":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsBotProtectionBotChallenge:getCdnResourceOptionsBotProtectionBotChallenge","description":"Controls the bot challenge module state.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"}},"type":"object","required":["botChallenge","enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsBotProtectionBotChallenge:getCdnResourceOptionsBotProtectionBotChallenge":{"properties":{"enabled":{"type":"boolean","description":"Possible values:\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsBrotliCompression:getCdnResourceOptionsBrotliCompression":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Allows to select the content types you want to compress.\n\n`text/html` is a mandatory content type.\n"}},"type":"object","required":["enabled","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsBrowserCacheSettings:getCdnResourceOptionsBrowserCacheSettings":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Set the cache expiration time to '0s' to disable caching.\n\nThe maximum duration is any equivalent to \u003cspan pulumi-lang-nodejs=\"`1y`\" pulumi-lang-dotnet=\"`1y`\" pulumi-lang-go=\"`1y`\" pulumi-lang-python=\"`1y`\" pulumi-lang-yaml=\"`1y`\" pulumi-lang-java=\"`1y`\"\u003e`1y`\u003c/span\u003e.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsCacheHttpHeaders:getCdnResourceOptionsCacheHttpHeaders":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"}}},"type":"object","required":["enabled","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsCors:getCdnResourceOptionsCors":{"properties":{"always":{"type":"boolean","description":"Defines whether the Access-Control-Allow-Origin header should be added to a response from CDN regardless of response code.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Value of the Access-Control-Allow-Origin header.\n\nPossible values:\n- **Adds * as the Access-Control-Allow-Origin header value** - Content will be uploaded for requests from any domain.\n`\"value\": [\"*\"]`\n- **Adds \"$http_origin\" as the Access-Control-Allow-Origin header value if the origin matches one of the listed domains** - Content will be uploaded only for requests from the domains specified in the field.\n`\"value\": [\"domain.com\", \"second.dom.com\"]`\n- **Adds \"$http_origin\" as the Access-Control-Allow-Origin header value** - Content will be uploaded for requests from any domain, and the domain from which the request was sent will be added to the \"Access-Control-Allow-Origin\" header in the response.\n`\"value\": [\"$http_origin\"]`\n"}},"type":"object","required":["always","enabled","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsCountryAcl:getCdnResourceOptionsCountryAcl":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of countries according to ISO-3166-1.\n\nThe meaning of the parameter depends on \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e value:\n- **allow** - List of countries for which access is prohibited.\n- **deny** - List of countries for which access is allowed.\n"},"policyType":{"type":"string","description":"Defines the type of CDN resource access policy.\n\nPossible values:\n- **allow** - Access is allowed for all the countries except for those specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\n- **deny** - Access is denied for all the countries except for those specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\nAvailable values: \"allow\", \"deny\".\n"}},"type":"object","required":["enabled","exceptedValues","policyType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsDisableCache:getCdnResourceOptionsDisableCache":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - content caching is disabled.\n- **false** - content caching is enabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsDisableProxyForceRanges:getCdnResourceOptionsDisableProxyForceRanges":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsEdgeCacheSettings:getCdnResourceOptionsEdgeCacheSettings":{"properties":{"customValues":{"type":"object","additionalProperties":{"type":"string"},"description":"A MAP object representing the caching time in seconds for a response with a specific response code.\n"},"default":{"type":"string","description":"Enables content caching according to the origin cache settings.\n\nThe value is applied to the following response codes 200, 201, 204, 206, 301, 302, 303, 304, 307, 308, if an origin server does not have caching HTTP headers.\n\nResponses with other codes will not be cached.\n\nThe maximum duration is any equivalent to \u003cspan pulumi-lang-nodejs=\"`1y`\" pulumi-lang-dotnet=\"`1y`\" pulumi-lang-go=\"`1y`\" pulumi-lang-python=\"`1y`\" pulumi-lang-yaml=\"`1y`\" pulumi-lang-java=\"`1y`\"\u003e`1y`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"},"value":{"type":"string","description":"Caching time.\n\nThe value is applied to the following response codes: 200, 206, 301, 302.\nResponses with codes 4xx, 5xx will not be cached.\n\nUse \u003cspan pulumi-lang-nodejs=\"`0s`\" pulumi-lang-dotnet=\"`0s`\" pulumi-lang-go=\"`0s`\" pulumi-lang-python=\"`0s`\" pulumi-lang-yaml=\"`0s`\" pulumi-lang-java=\"`0s`\"\u003e`0s`\u003c/span\u003e to disable caching.\n\nThe maximum duration is any equivalent to \u003cspan pulumi-lang-nodejs=\"`1y`\" pulumi-lang-dotnet=\"`1y`\" pulumi-lang-go=\"`1y`\" pulumi-lang-python=\"`1y`\" pulumi-lang-yaml=\"`1y`\" pulumi-lang-java=\"`1y`\"\u003e`1y`\u003c/span\u003e.\n"}},"type":"object","required":["customValues","default","enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsFastedge:getCdnResourceOptionsFastedge":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"onRequestBody":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsFastedgeOnRequestBody:getCdnResourceOptionsFastedgeOnRequestBody","description":"Allows to configure FastEdge application that will be called to handle request body as soon as CDN receives incoming HTTP request.\n"},"onRequestHeaders":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsFastedgeOnRequestHeaders:getCdnResourceOptionsFastedgeOnRequestHeaders","description":"Allows to configure FastEdge application that will be called to handle request headers as soon as CDN receives incoming HTTP request, **before cache**.\n"},"onResponseBody":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsFastedgeOnResponseBody:getCdnResourceOptionsFastedgeOnResponseBody","description":"Allows to configure FastEdge application that will be called to handle response body before CDN sends the HTTP response.\n"},"onResponseHeaders":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsFastedgeOnResponseHeaders:getCdnResourceOptionsFastedgeOnResponseHeaders","description":"Allows to configure FastEdge application that will be called to handle response headers before CDN sends the HTTP response.\n"}},"type":"object","required":["enabled","onRequestBody","onRequestHeaders","onResponseBody","onResponseHeaders"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsFastedgeOnRequestBody:getCdnResourceOptionsFastedgeOnRequestBody":{"properties":{"appId":{"type":"string","description":"The ID of the application in FastEdge.\n"},"enabled":{"type":"boolean","description":"Determines if the FastEdge application should be called whenever HTTP request headers are received.\n"},"executeOnEdge":{"type":"boolean","description":"Determines if the request should be executed at the edge nodes.\n"},"executeOnShield":{"type":"boolean","description":"Determines if the request should be executed at the shield nodes.\n"},"interruptOnError":{"type":"boolean","description":"Determines if the request execution should be interrupted when an error occurs.\n"}},"type":"object","required":["appId","enabled","executeOnEdge","executeOnShield","interruptOnError"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsFastedgeOnRequestHeaders:getCdnResourceOptionsFastedgeOnRequestHeaders":{"properties":{"appId":{"type":"string","description":"The ID of the application in FastEdge.\n"},"enabled":{"type":"boolean","description":"Determines if the FastEdge application should be called whenever HTTP request headers are received.\n"},"executeOnEdge":{"type":"boolean","description":"Determines if the request should be executed at the edge nodes.\n"},"executeOnShield":{"type":"boolean","description":"Determines if the request should be executed at the shield nodes.\n"},"interruptOnError":{"type":"boolean","description":"Determines if the request execution should be interrupted when an error occurs.\n"}},"type":"object","required":["appId","enabled","executeOnEdge","executeOnShield","interruptOnError"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsFastedgeOnResponseBody:getCdnResourceOptionsFastedgeOnResponseBody":{"properties":{"appId":{"type":"string","description":"The ID of the application in FastEdge.\n"},"enabled":{"type":"boolean","description":"Determines if the FastEdge application should be called whenever HTTP request headers are received.\n"},"executeOnEdge":{"type":"boolean","description":"Determines if the request should be executed at the edge nodes.\n"},"executeOnShield":{"type":"boolean","description":"Determines if the request should be executed at the shield nodes.\n"},"interruptOnError":{"type":"boolean","description":"Determines if the request execution should be interrupted when an error occurs.\n"}},"type":"object","required":["appId","enabled","executeOnEdge","executeOnShield","interruptOnError"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsFastedgeOnResponseHeaders:getCdnResourceOptionsFastedgeOnResponseHeaders":{"properties":{"appId":{"type":"string","description":"The ID of the application in FastEdge.\n"},"enabled":{"type":"boolean","description":"Determines if the FastEdge application should be called whenever HTTP request headers are received.\n"},"executeOnEdge":{"type":"boolean","description":"Determines if the request should be executed at the edge nodes.\n"},"executeOnShield":{"type":"boolean","description":"Determines if the request should be executed at the shield nodes.\n"},"interruptOnError":{"type":"boolean","description":"Determines if the request execution should be interrupted when an error occurs.\n"}},"type":"object","required":["appId","enabled","executeOnEdge","executeOnShield","interruptOnError"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsFetchCompressed:getCdnResourceOptionsFetchCompressed":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsFollowOriginRedirect:getCdnResourceOptionsFollowOriginRedirect":{"properties":{"codes":{"type":"array","items":{"type":"number"},"description":"Redirect status code that the origin server returns.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["codes","enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsForceReturn:getCdnResourceOptionsForceReturn":{"properties":{"body":{"type":"string","description":"URL for redirection or text.\n"},"code":{"type":"number","description":"Status code value.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"timeInterval":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsForceReturnTimeInterval:getCdnResourceOptionsForceReturnTimeInterval","description":"Controls the time at which a custom HTTP response code should be applied. By default, a custom HTTP response code is applied at any time.\n"}},"type":"object","required":["body","code","enabled","timeInterval"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsForceReturnTimeInterval:getCdnResourceOptionsForceReturnTimeInterval":{"properties":{"endTime":{"type":"string","description":"Time until which a custom HTTP response code should be applied. Indicated in 24-hour format.\n"},"startTime":{"type":"string","description":"Time from which a custom HTTP response code should be applied. Indicated in 24-hour format.\n"},"timeZone":{"type":"string","description":"Time zone used to calculate time.\n"}},"type":"object","required":["endTime","startTime","timeZone"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsForwardHostHeader:getCdnResourceOptionsForwardHostHeader":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsGrpcPassthrough:getCdnResourceOptionsGrpcPassthrough":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsGzipOn:getCdnResourceOptionsGzipOn":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsHostHeader:getCdnResourceOptionsHostHeader":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Host Header value.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsHttp3Enabled:getCdnResourceOptionsHttp3Enabled":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsIgnoreCookie:getCdnResourceOptionsIgnoreCookie":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled, files with cookies are cached as one file.\n- **false** - Option is disabled, files with cookies are cached as different files.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsIgnoreQueryString:getCdnResourceOptionsIgnoreQueryString":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsImageStack:getCdnResourceOptionsImageStack":{"properties":{"avifEnabled":{"type":"boolean","description":"Enables or disables automatic conversion of JPEG and PNG images to AVI format.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"pngLossless":{"type":"boolean","description":"Enables or disables compression without quality loss for PNG format.\n"},"quality":{"type":"number","description":"Defines quality settings for JPG and PNG images. The higher the value, the better the image quality, and the larger the file size after conversion.\n"},"webpEnabled":{"type":"boolean","description":"Enables or disables automatic conversion of JPEG and PNG images to WebP format.\n"}},"type":"object","required":["avifEnabled","enabled","pngLossless","quality","webpEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsIpAddressAcl:getCdnResourceOptionsIpAddressAcl":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of IP addresses with a subnet mask.\n\nThe meaning of the parameter depends on \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e value:\n- **allow** - List of IP addresses for which access is prohibited.\n- **deny** - List of IP addresses for which access is allowed.\n\nExamples:\n- `192.168.3.2/32`\n- `2a03:d000:2980:7::8/128`\n"},"policyType":{"type":"string","description":"IP access policy type.\n\nPossible values:\n- **allow** - Allow access to all IPs except IPs specified in \u003cspan pulumi-lang-nodejs=\"\"exceptedValues\"\" pulumi-lang-dotnet=\"\"ExceptedValues\"\" pulumi-lang-go=\"\"exceptedValues\"\" pulumi-lang-python=\"\"excepted_values\"\" pulumi-lang-yaml=\"\"exceptedValues\"\" pulumi-lang-java=\"\"exceptedValues\"\"\u003e\"excepted_values\"\u003c/span\u003e field.\n- **deny** - Deny access to all IPs except IPs specified in \u003cspan pulumi-lang-nodejs=\"\"exceptedValues\"\" pulumi-lang-dotnet=\"\"ExceptedValues\"\" pulumi-lang-go=\"\"exceptedValues\"\" pulumi-lang-python=\"\"excepted_values\"\" pulumi-lang-yaml=\"\"exceptedValues\"\" pulumi-lang-java=\"\"exceptedValues\"\"\u003e\"excepted_values\"\u003c/span\u003e field.\nAvailable values: \"allow\", \"deny\".\n"}},"type":"object","required":["enabled","exceptedValues","policyType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsLimitBandwidth:getCdnResourceOptionsLimitBandwidth":{"properties":{"buffer":{"type":"number","description":"Amount of downloaded data after which the user will be rate limited.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"limitType":{"type":"string","description":"Method of controlling the download speed per connection.\n\nPossible values:\n- **static** - Use speed and buffer fields to set the download speed limit.\n- **dynamic** - Use query strings **speed** and **buffer** to set the download speed limit.\n\nFor example, when requesting content at the link\n\n```\nhttp://cdn.example.com/video.mp4?speed=50k\u0026buffer=500k\n```\n\nthe download speed will be limited to 50kB/s after 500 kB.\nAvailable values: \"static\", \"dynamic\".\n"},"speed":{"type":"number","description":"Maximum download speed per connection.\n"}},"type":"object","required":["buffer","enabled","limitType","speed"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsProxyCacheKey:getCdnResourceOptionsProxyCacheKey":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Key for caching.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsProxyCacheMethodsSet:getCdnResourceOptionsProxyCacheMethodsSet":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsProxyConnectTimeout:getCdnResourceOptionsProxyConnectTimeout":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Timeout value in seconds.\n\nSupported range: **1s - 5s**.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsProxyReadTimeout:getCdnResourceOptionsProxyReadTimeout":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Timeout value in seconds.\n\nSupported range: **1s - 30s**.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsQueryParamsBlacklist:getCdnResourceOptionsQueryParamsBlacklist":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"List of query parameters.\n"}},"type":"object","required":["enabled","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsQueryParamsWhitelist:getCdnResourceOptionsQueryParamsWhitelist":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"List of query parameters.\n"}},"type":"object","required":["enabled","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsQueryStringForwarding:getCdnResourceOptionsQueryStringForwarding":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"forwardExceptKeys":{"type":"array","items":{"type":"string"},"description":"The \u003cspan pulumi-lang-nodejs=\"`forwardExceptKeys`\" pulumi-lang-dotnet=\"`ForwardExceptKeys`\" pulumi-lang-go=\"`forwardExceptKeys`\" pulumi-lang-python=\"`forward_except_keys`\" pulumi-lang-yaml=\"`forwardExceptKeys`\" pulumi-lang-java=\"`forwardExceptKeys`\"\u003e`forward_except_keys`\u003c/span\u003e field provides a mechanism to exclude specific parameters from being forwarded from playlist files to media chunk files.\nBy listing certain keys in this field, you can ensure that these parameters are omitted during the forwarding process.\nThis is particularly useful for preventing sensitive or irrelevant information from being included in requests for media chunks, thereby enhancing security and optimizing performance.\n"},"forwardFromFileTypes":{"type":"array","items":{"type":"string"},"description":"The \u003cspan pulumi-lang-nodejs=\"`forwardFromFilesTypes`\" pulumi-lang-dotnet=\"`ForwardFromFilesTypes`\" pulumi-lang-go=\"`forwardFromFilesTypes`\" pulumi-lang-python=\"`forward_from_files_types`\" pulumi-lang-yaml=\"`forwardFromFilesTypes`\" pulumi-lang-java=\"`forwardFromFilesTypes`\"\u003e`forward_from_files_types`\u003c/span\u003e field specifies the types of playlist files from which parameters will be extracted and forwarded.\nThis typically includes formats that list multiple media chunk references, such as HLS and DASH playlists.\nParameters associated with these playlist files (like query strings or headers) will be propagated to the chunks they reference.\n"},"forwardOnlyKeys":{"type":"array","items":{"type":"string"},"description":"The \u003cspan pulumi-lang-nodejs=\"`forwardOnlyKeys`\" pulumi-lang-dotnet=\"`ForwardOnlyKeys`\" pulumi-lang-go=\"`forwardOnlyKeys`\" pulumi-lang-python=\"`forward_only_keys`\" pulumi-lang-yaml=\"`forwardOnlyKeys`\" pulumi-lang-java=\"`forwardOnlyKeys`\"\u003e`forward_only_keys`\u003c/span\u003e field allows for granular control over which specific parameters are forwarded from playlist files to media chunk files.\nBy specifying certain keys, only those parameters will be propagated, ensuring that only relevant information is passed along.\nThis is particularly useful for security and performance optimization, as it prevents unnecessary or sensitive data from being included in requests for media chunks.\n"},"forwardToFileTypes":{"type":"array","items":{"type":"string"},"description":"The field specifies the types of media chunk files to which parameters, extracted from playlist files, will be forwarded.\nThese refer to the actual segments of media content that are delivered to viewers.\nEnsuring the correct parameters are forwarded to these files is crucial for maintaining the integrity of the streaming session.\n"}},"type":"object","required":["enabled","forwardExceptKeys","forwardFromFileTypes","forwardOnlyKeys","forwardToFileTypes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsRedirectHttpToHttps:getCdnResourceOptionsRedirectHttpToHttps":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsRedirectHttpsToHttp:getCdnResourceOptionsRedirectHttpsToHttp":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsReferrerAcl:getCdnResourceOptionsReferrerAcl":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of domain names or wildcard domains (without protocol: `http://` or `https://`.)\n\nThe meaning of the parameter depends on \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e value:\n- **allow** - List of domain names for which access is prohibited.\n- **deny** - List of IP domain names for which access is allowed.\n\nExamples:\n- `example.com`\n- `*.example.com`\n"},"policyType":{"type":"string","description":"Policy type.\n\nPossible values:\n- **allow** - Allow access to all domain names except the domain names specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\n- **deny** - Deny access to all domain names except the domain names specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\nAvailable values: \"allow\", \"deny\".\n"}},"type":"object","required":["enabled","exceptedValues","policyType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsRequestLimiter:getCdnResourceOptionsRequestLimiter":{"properties":{"burst":{"type":"number"},"delay":{"type":"number"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"rate":{"type":"number","description":"Maximum request rate.\n"},"rateUnit":{"type":"string","description":"Units of measurement for the \u003cspan pulumi-lang-nodejs=\"`rate`\" pulumi-lang-dotnet=\"`Rate`\" pulumi-lang-go=\"`rate`\" pulumi-lang-python=\"`rate`\" pulumi-lang-yaml=\"`rate`\" pulumi-lang-java=\"`rate`\"\u003e`rate`\u003c/span\u003e field.\n\nPossible values:\n- **r/s** - Requests per second.\n- **r/m** - Requests per minute.\n\nIf the rate is less than one request per second, it is specified in request per minute (r/m.)\nAvailable values: \"r/s\", \"r/m\".\n"}},"type":"object","required":["burst","delay","enabled","rate","rateUnit"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsResponseHeadersHidingPolicy:getCdnResourceOptionsResponseHeadersHidingPolicy":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"excepteds":{"type":"array","items":{"type":"string"},"description":"List of HTTP headers.\n\nParameter meaning depends on the value of the \u003cspan pulumi-lang-nodejs=\"`mode`\" pulumi-lang-dotnet=\"`Mode`\" pulumi-lang-go=\"`mode`\" pulumi-lang-python=\"`mode`\" pulumi-lang-yaml=\"`mode`\" pulumi-lang-java=\"`mode`\"\u003e`mode`\u003c/span\u003e field:\n- **show** - List of HTTP headers to hide from response.\n- **hide** - List of HTTP headers to include in response. Other HTTP headers will be hidden.\n\nThe following headers are required and cannot be hidden from response:\n- `Connection`\n- `Content-Length`\n- `Content-Type`\n- `Date`\n- `Server`\n"},"mode":{"type":"string","description":"How HTTP headers are hidden from the response.\n\nPossible values:\n- **show** - Hide only HTTP headers listed in the \u003cspan pulumi-lang-nodejs=\"`excepted`\" pulumi-lang-dotnet=\"`Excepted`\" pulumi-lang-go=\"`excepted`\" pulumi-lang-python=\"`excepted`\" pulumi-lang-yaml=\"`excepted`\" pulumi-lang-java=\"`excepted`\"\u003e`excepted`\u003c/span\u003e field.\n- **hide** - Hide all HTTP headers except headers listed in the \"excepted\" field.\nAvailable values: \"hide\", \"show\".\n"}},"type":"object","required":["enabled","excepteds","mode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsRewrite:getCdnResourceOptionsRewrite":{"properties":{"body":{"type":"string","description":"Path for the Rewrite option.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"},"flag":{"type":"string","description":"Flag for the Rewrite option.\n\nPossible values:\n- **last** - Stop processing the current set of \u003cspan pulumi-lang-nodejs=\"`ngxHttpRewriteModule`\" pulumi-lang-dotnet=\"`NgxHttpRewriteModule`\" pulumi-lang-go=\"`ngxHttpRewriteModule`\" pulumi-lang-python=\"`ngx_http_rewrite_module`\" pulumi-lang-yaml=\"`ngxHttpRewriteModule`\" pulumi-lang-java=\"`ngxHttpRewriteModule`\"\u003e`ngx_http_rewrite_module`\u003c/span\u003e directives and start a search for a new location matching changed URI.\n- **break** - Stop processing the current set of the Rewrite option.\n- **redirect** - Return a temporary redirect with the 302 code; used when a replacement string does not start with `http://`, `https://`, or `$scheme`.\n- **permanent** - Return a permanent redirect with the 301 code.\nAvailable values: \"break\", \"last\", \"redirect\", \"permanent\".\n"}},"type":"object","required":["body","enabled","flag"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsSecureKey:getCdnResourceOptionsSecureKey":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"key":{"type":"string","description":"Key generated on your side that will be used for URL signing.\n"},"type":{"type":"number","description":"Type of URL signing.\n\nPossible types:\n- **Type 0** - Includes end user IP to secure token generation.\n- **Type 2** - Excludes end user IP from secure token generation.\nAvailable values: 0, 2.\n"}},"type":"object","required":["enabled","key","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsSlice:getCdnResourceOptionsSlice":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsSni:getCdnResourceOptionsSni":{"properties":{"customHostname":{"type":"string","description":"Custom SNI hostname.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"},"sniType":{"type":"string","description":"SNI (Server Name Indication) type.\n\nPossible values:\n- **dynamic** - SNI hostname depends on `hostHeader` and \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e options.\nIt has several possible combinations:\n- If the `hostHeader` option is enabled and specified, SNI hostname matches the Host header.\n- If the \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e option is enabled and has true value, SNI hostname matches the Host header used in the request made to a CDN.\n- If the `hostHeader` and \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e options are disabled, SNI hostname matches the primary CNAME.\n- **custom** - custom SNI hostname is in use.\nAvailable values: \"dynamic\", \"custom\".\n"}},"type":"object","required":["customHostname","enabled","sniType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsStale:getCdnResourceOptionsStale":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Defines list of errors for which \"Always online\" option is applied.\n"}},"type":"object","required":["enabled","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsStaticHeaders:getCdnResourceOptionsStaticHeaders":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"A MAP for static headers in a format of `header_name:\u003cspan pulumi-lang-nodejs=\" headerValue`\" pulumi-lang-dotnet=\" HeaderValue`\" pulumi-lang-go=\" headerValue`\" pulumi-lang-python=\" header_value`\" pulumi-lang-yaml=\" headerValue`\" pulumi-lang-java=\" headerValue`\"\u003e header_value`\u003c/span\u003e.\n\nRestrictions:\n- **Header name** - Maximum 128 symbols, may contain Latin letters (A-Z, a-z), numbers (0-9), dashes, and underscores.\n- **Header value** - Maximum 512 symbols, may contain letters (a-z), numbers (0-9), spaces, and symbols (`~!@#%%^\u0026*()-_=+ /|\\\";:?.,\u003e\u003c{}[]). Must start with a letter, number, asterisk or {.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsStaticRequestHeaders:getCdnResourceOptionsStaticRequestHeaders":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"object","additionalProperties":{"type":"string"},"description":"A MAP for static headers in a format of `header_name:\u003cspan pulumi-lang-nodejs=\" headerValue`\" pulumi-lang-dotnet=\" HeaderValue`\" pulumi-lang-go=\" headerValue`\" pulumi-lang-python=\" header_value`\" pulumi-lang-yaml=\" headerValue`\" pulumi-lang-java=\" headerValue`\"\u003e header_value`\u003c/span\u003e.\n\nRestrictions:\n- **Header name** - Maximum 255 symbols, may contain Latin letters (A-Z, a-z), numbers (0-9), dashes, and underscores.\n- **Header value** - Maximum 512 symbols, may contain letters (a-z), numbers (0-9), spaces, and symbols (`~!@#%%^\u0026*()-_=+ /|\\\";:?.,\u003e\u003c{}[]). Must start with a letter, number, asterisk or {.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsStaticResponseHeaders:getCdnResourceOptionsStaticResponseHeaders":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptionsStaticResponseHeadersValue:getCdnResourceOptionsStaticResponseHeadersValue"}}},"type":"object","required":["enabled","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsStaticResponseHeadersValue:getCdnResourceOptionsStaticResponseHeadersValue":{"properties":{"always":{"type":"boolean","description":"Defines whether the header will be added to a response from CDN regardless of response code.\n"},"name":{"type":"string","description":"HTTP Header name.\n\nRestrictions:\n- Maximum 128 symbols.\n- Latin letters (A-Z, a-z,) numbers (0-9,) dashes, and underscores only.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Header value.\n\nRestrictions:\n- Maximum 512 symbols.\n- Letters (a-z), numbers (0-9), spaces, and symbols (`~!@#%%^\u0026*()-_=+ /|\\\";:?.,\u003e\u003c{}[]).\n- Must start with a letter, number, asterisk or {.\n- Multiple values can be added.\n"}},"type":"object","required":["always","name","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsTlsVersions:getCdnResourceOptionsTlsVersions":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"List of SSL/TLS protocol versions (case sensitive).\n"}},"type":"object","required":["enabled","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsUseDefaultLeChain:getCdnResourceOptionsUseDefaultLeChain":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Default Let's Encrypt certificate chain. This is a deprecated version, use it only for compatibilities with Android devices 7.1.1 or lower.\n- **false** - Alternative Let's Encrypt certificate chain.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsUseDns01LeChallenge:getCdnResourceOptionsUseDns01LeChallenge":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - DNS-01 challenge is used to issue Let's Encrypt certificate.\n- **false** - HTTP-01 challenge is used to issue Let's Encrypt certificate.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsUseRsaLeCert:getCdnResourceOptionsUseRsaLeCert":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - RSA Let's Encrypt certificate.\n- **false** - ECDSA Let's Encrypt certificate.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsUserAgentAcl:getCdnResourceOptionsUserAgentAcl":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of User-Agents that will be allowed/denied.\n\nThe meaning of the parameter depends on \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e:\n- **allow** - List of User-Agents for which access is prohibited.\n- **deny** - List of User-Agents for which access is allowed.\n\nYou can provide exact User-Agent strings or regular expressions. Regular expressions must start\nwith `~` (case-sensitive) or `~*` (case-insensitive).\n\nUse an empty string `\"\"` to allow/deny access when the User-Agent header is empty.\n"},"policyType":{"type":"string","description":"User-Agents policy type.\n\nPossible values:\n- **allow** - Allow access for all User-Agents except specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\n- **deny** - Deny access for all User-Agents except specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\nAvailable values: \"allow\", \"deny\".\n"}},"type":"object","required":["enabled","exceptedValues","policyType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsWaap:getCdnResourceOptionsWaap":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceOptionsWebsockets:getCdnResourceOptionsWebsockets":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptions:getCdnResourceRuleOptions":{"properties":{"allowedHttpMethods":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsAllowedHttpMethods:getCdnResourceRuleOptionsAllowedHttpMethods","description":"HTTP methods allowed for content requests from the CDN.\n"},"botProtection":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsBotProtection:getCdnResourceRuleOptionsBotProtection","description":"Allows to prevent online services from overloading and ensure your business workflow running smoothly.\n"},"brotliCompression":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsBrotliCompression:getCdnResourceRuleOptionsBrotliCompression","description":"Compresses content with Brotli on the CDN side. CDN servers will request only uncompressed content from the origin.\n"},"browserCacheSettings":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsBrowserCacheSettings:getCdnResourceRuleOptionsBrowserCacheSettings","description":"Cache expiration time for users browsers in seconds.\n\nCache expiration time is applied to the following response codes: 200, 201, 204, 206, 301, 302, 303, 304, 307, 308.\n\nResponses with other codes will not be cached.\n"},"cacheHttpHeaders":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsCacheHttpHeaders:getCdnResourceRuleOptionsCacheHttpHeaders","description":"**Legacy option**. Use the \u003cspan pulumi-lang-nodejs=\"`responseHeadersHidingPolicy`\" pulumi-lang-dotnet=\"`ResponseHeadersHidingPolicy`\" pulumi-lang-go=\"`responseHeadersHidingPolicy`\" pulumi-lang-python=\"`response_headers_hiding_policy`\" pulumi-lang-yaml=\"`responseHeadersHidingPolicy`\" pulumi-lang-java=\"`responseHeadersHidingPolicy`\"\u003e`response_headers_hiding_policy`\u003c/span\u003e option instead.\n\nHTTP Headers that must be included in the response.\n","deprecationMessage":"Deprecated"},"cors":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsCors:getCdnResourceRuleOptionsCors","description":"Enables or disables CORS (Cross-Origin Resource Sharing) header support.\n\nCORS header support allows the CDN to add the Access-Control-Allow-Origin header to a response to a browser.\n"},"countryAcl":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsCountryAcl:getCdnResourceRuleOptionsCountryAcl","description":"Enables control access to content for specified countries.\n"},"disableCache":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsDisableCache:getCdnResourceRuleOptionsDisableCache","description":"**Legacy option**. Use the \u003cspan pulumi-lang-nodejs=\"`edgeCacheSettings`\" pulumi-lang-dotnet=\"`EdgeCacheSettings`\" pulumi-lang-go=\"`edgeCacheSettings`\" pulumi-lang-python=\"`edge_cache_settings`\" pulumi-lang-yaml=\"`edgeCacheSettings`\" pulumi-lang-java=\"`edgeCacheSettings`\"\u003e`edge_cache_settings`\u003c/span\u003e option instead.\n\nAllows the complete disabling of content caching.\n","deprecationMessage":"Deprecated"},"disableProxyForceRanges":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsDisableProxyForceRanges:getCdnResourceRuleOptionsDisableProxyForceRanges","description":"Allows 206 responses regardless of the settings of an origin source.\n"},"edgeCacheSettings":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsEdgeCacheSettings:getCdnResourceRuleOptionsEdgeCacheSettings","description":"Cache expiration time for CDN servers.\n\n\u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e fields cannot be used simultaneously.\n"},"fastedge":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsFastedge:getCdnResourceRuleOptionsFastedge","description":"Allows to configure FastEdge app to be called on different request/response phases.\n\nNote: At least one of \u003cspan pulumi-lang-nodejs=\"`onRequestHeaders`\" pulumi-lang-dotnet=\"`OnRequestHeaders`\" pulumi-lang-go=\"`onRequestHeaders`\" pulumi-lang-python=\"`on_request_headers`\" pulumi-lang-yaml=\"`onRequestHeaders`\" pulumi-lang-java=\"`onRequestHeaders`\"\u003e`on_request_headers`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`onRequestBody`\" pulumi-lang-dotnet=\"`OnRequestBody`\" pulumi-lang-go=\"`onRequestBody`\" pulumi-lang-python=\"`on_request_body`\" pulumi-lang-yaml=\"`onRequestBody`\" pulumi-lang-java=\"`onRequestBody`\"\u003e`on_request_body`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`onResponseHeaders`\" pulumi-lang-dotnet=\"`OnResponseHeaders`\" pulumi-lang-go=\"`onResponseHeaders`\" pulumi-lang-python=\"`on_response_headers`\" pulumi-lang-yaml=\"`onResponseHeaders`\" pulumi-lang-java=\"`onResponseHeaders`\"\u003e`on_response_headers`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`onResponseBody`\" pulumi-lang-dotnet=\"`OnResponseBody`\" pulumi-lang-go=\"`onResponseBody`\" pulumi-lang-python=\"`on_response_body`\" pulumi-lang-yaml=\"`onResponseBody`\" pulumi-lang-java=\"`onResponseBody`\"\u003e`on_response_body`\u003c/span\u003e must be specified.\n"},"fetchCompressed":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsFetchCompressed:getCdnResourceRuleOptionsFetchCompressed","description":"Makes the CDN request compressed content from the origin.\n\nThe origin server should support compression. CDN servers will not decompress your content even if a user browser does not accept compression.\n\nNotes:\n\n1. \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e is not supported with `gzipON` or \u003cspan pulumi-lang-nodejs=\"`brotliCompression`\" pulumi-lang-dotnet=\"`BrotliCompression`\" pulumi-lang-go=\"`brotliCompression`\" pulumi-lang-python=\"`brotli_compression`\" pulumi-lang-yaml=\"`brotliCompression`\" pulumi-lang-java=\"`brotliCompression`\"\u003e`brotli_compression`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`slice`\" pulumi-lang-dotnet=\"`Slice`\" pulumi-lang-go=\"`slice`\" pulumi-lang-python=\"`slice`\" pulumi-lang-yaml=\"`slice`\" pulumi-lang-java=\"`slice`\"\u003e`slice`\u003c/span\u003e options enabled.\n2. \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e overrides `gzipON` and \u003cspan pulumi-lang-nodejs=\"`brotliCompression`\" pulumi-lang-dotnet=\"`BrotliCompression`\" pulumi-lang-go=\"`brotliCompression`\" pulumi-lang-python=\"`brotli_compression`\" pulumi-lang-yaml=\"`brotliCompression`\" pulumi-lang-java=\"`brotliCompression`\"\u003e`brotli_compression`\u003c/span\u003e in rule. If you enable it in CDN resource and want to use `gzipON` and \u003cspan pulumi-lang-nodejs=\"`brotliCompression`\" pulumi-lang-dotnet=\"`BrotliCompression`\" pulumi-lang-go=\"`brotliCompression`\" pulumi-lang-python=\"`brotli_compression`\" pulumi-lang-yaml=\"`brotliCompression`\" pulumi-lang-java=\"`brotliCompression`\"\u003e`brotli_compression`\u003c/span\u003e in a rule, you have to specify `\u003cspan pulumi-lang-nodejs=\"\"fetchCompressed\"\" pulumi-lang-dotnet=\"\"FetchCompressed\"\" pulumi-lang-go=\"\"fetchCompressed\"\" pulumi-lang-python=\"\"fetch_compressed\"\" pulumi-lang-yaml=\"\"fetchCompressed\"\" pulumi-lang-java=\"\"fetchCompressed\"\"\u003e\"fetch_compressed\"\u003c/span\u003e: false` in the rule.\n"},"followOriginRedirect":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsFollowOriginRedirect:getCdnResourceRuleOptionsFollowOriginRedirect","description":"Enables redirection from origin.\nIf the origin server returns a redirect, the option allows the CDN to pull the requested content from the origin server that was returned in the redirect.\n"},"forceReturn":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsForceReturn:getCdnResourceRuleOptionsForceReturn","description":"Applies custom HTTP response codes for CDN content.\n\nThe following codes are reserved by our system and cannot be specified in this option: 408, 444, 477, 494, 495, 496, 497, 499.\n"},"forwardHostHeader":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsForwardHostHeader:getCdnResourceRuleOptionsForwardHostHeader","description":"Forwards the Host header from a end-user request to an origin server.\n\n`hostHeader` and \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"gzipOn":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsGzipOn:getCdnResourceRuleOptionsGzipOn","description":"Compresses content with gzip on the CDN end. CDN servers will request only uncompressed content from the origin.\n\nNotes:\n\n1. Compression with gzip is not supported with \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`slice`\" pulumi-lang-dotnet=\"`Slice`\" pulumi-lang-go=\"`slice`\" pulumi-lang-python=\"`slice`\" pulumi-lang-yaml=\"`slice`\" pulumi-lang-java=\"`slice`\"\u003e`slice`\u003c/span\u003e options enabled.\n2. \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e option in CDN resource settings overrides `gzipON` in rules. If you enable \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e in CDN resource and want to enable `gzipON` in rules, you need to specify `\u003cspan pulumi-lang-nodejs=\"\"fetchCompressed\"\" pulumi-lang-dotnet=\"\"FetchCompressed\"\" pulumi-lang-go=\"\"fetchCompressed\"\" pulumi-lang-python=\"\"fetch_compressed\"\" pulumi-lang-yaml=\"\"fetchCompressed\"\" pulumi-lang-java=\"\"fetchCompressed\"\"\u003e\"fetch_compressed\"\u003c/span\u003e:false` for rules.\n"},"hostHeader":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsHostHeader:getCdnResourceRuleOptionsHostHeader","description":"Sets the Host header that CDN servers use when request content from an origin server.\nYour server must be able to process requests with the chosen header.\n\nIf the option is \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e, the Host Header value is equal to first CNAME.\n\n`hostHeader` and \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"ignoreCookie":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsIgnoreCookie:getCdnResourceRuleOptionsIgnoreCookie","description":"Defines whether the files with the Set-Cookies header are cached as one file or as different ones.\n"},"ignoreQueryString":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsIgnoreQueryString:getCdnResourceRuleOptionsIgnoreQueryString","description":"How a file with different query strings is cached: either as one object (option is enabled) or as different objects (option is disabled.)\n\n`ignoreQueryString`, \u003cspan pulumi-lang-nodejs=\"`queryParamsWhitelist`\" pulumi-lang-dotnet=\"`QueryParamsWhitelist`\" pulumi-lang-go=\"`queryParamsWhitelist`\" pulumi-lang-python=\"`query_params_whitelist`\" pulumi-lang-yaml=\"`queryParamsWhitelist`\" pulumi-lang-java=\"`queryParamsWhitelist`\"\u003e`query_params_whitelist`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`queryParamsBlacklist`\" pulumi-lang-dotnet=\"`QueryParamsBlacklist`\" pulumi-lang-go=\"`queryParamsBlacklist`\" pulumi-lang-python=\"`query_params_blacklist`\" pulumi-lang-yaml=\"`queryParamsBlacklist`\" pulumi-lang-java=\"`queryParamsBlacklist`\"\u003e`query_params_blacklist`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"imageStack":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsImageStack:getCdnResourceRuleOptionsImageStack","description":"Transforms JPG and PNG images (for example, resize or crop) and automatically converts them to WebP or AVIF format.\n"},"ipAddressAcl":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsIpAddressAcl:getCdnResourceRuleOptionsIpAddressAcl","description":"Controls access to the CDN resource content for specific IP addresses.\n\nIf you want to use IPs from our CDN servers IP list for IP ACL configuration, you have to independently monitor their relevance.\n\nWe recommend you use a script for automatically update IP ACL. [Read more.](https://www.terraform.io/docs/api-reference/cdn/ip-addresses-list/get-cdn-servers-ip-addresses)\n"},"limitBandwidth":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsLimitBandwidth:getCdnResourceRuleOptionsLimitBandwidth","description":"Allows to control the download speed per connection.\n"},"proxyCacheKey":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsProxyCacheKey:getCdnResourceRuleOptionsProxyCacheKey","description":"Allows you to modify your cache key. If omitted, the default value is `$request_uri`.\n\nCombine the specified variables to create a key for caching.\n- **$\u003cspan pulumi-lang-nodejs=\"`requestUri`\" pulumi-lang-dotnet=\"`RequestUri`\" pulumi-lang-go=\"`requestUri`\" pulumi-lang-python=\"`request_uri`\" pulumi-lang-yaml=\"`requestUri`\" pulumi-lang-java=\"`requestUri`\"\u003e`request_uri`\u003c/span\u003e**\n- **$scheme**\n- **$uri**\n\n**Warning**: Enabling and changing this option can invalidate your current cache and affect the cache hit ratio. Furthermore, the \"Purge by pattern\" option will not work.\n"},"proxyCacheMethodsSet":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsProxyCacheMethodsSet:getCdnResourceRuleOptionsProxyCacheMethodsSet","description":"Caching for POST requests along with default GET and HEAD.\n"},"proxyConnectTimeout":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsProxyConnectTimeout:getCdnResourceRuleOptionsProxyConnectTimeout","description":"The time limit for establishing a connection with the origin.\n"},"proxyReadTimeout":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsProxyReadTimeout:getCdnResourceRuleOptionsProxyReadTimeout","description":"The time limit for receiving a partial response from the origin.\nIf no response is received within this time, the connection will be closed.\n\n**Note:**\nWhen used with a WebSocket connection, this option supports values only in the range 1–20 seconds (instead of the usual 1–30 seconds).\n"},"queryParamsBlacklist":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsQueryParamsBlacklist:getCdnResourceRuleOptionsQueryParamsBlacklist","description":"Files with the specified query parameters are cached as one object, files with other parameters are cached as different objects.\n\n`ignoreQueryString`, \u003cspan pulumi-lang-nodejs=\"`queryParamsWhitelist`\" pulumi-lang-dotnet=\"`QueryParamsWhitelist`\" pulumi-lang-go=\"`queryParamsWhitelist`\" pulumi-lang-python=\"`query_params_whitelist`\" pulumi-lang-yaml=\"`queryParamsWhitelist`\" pulumi-lang-java=\"`queryParamsWhitelist`\"\u003e`query_params_whitelist`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`queryParamsBlacklist`\" pulumi-lang-dotnet=\"`QueryParamsBlacklist`\" pulumi-lang-go=\"`queryParamsBlacklist`\" pulumi-lang-python=\"`query_params_blacklist`\" pulumi-lang-yaml=\"`queryParamsBlacklist`\" pulumi-lang-java=\"`queryParamsBlacklist`\"\u003e`query_params_blacklist`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"queryParamsWhitelist":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsQueryParamsWhitelist:getCdnResourceRuleOptionsQueryParamsWhitelist","description":"Files with the specified query parameters are cached as different objects, files with other parameters are cached as one object.\n\n`ignoreQueryString`, \u003cspan pulumi-lang-nodejs=\"`queryParamsWhitelist`\" pulumi-lang-dotnet=\"`QueryParamsWhitelist`\" pulumi-lang-go=\"`queryParamsWhitelist`\" pulumi-lang-python=\"`query_params_whitelist`\" pulumi-lang-yaml=\"`queryParamsWhitelist`\" pulumi-lang-java=\"`queryParamsWhitelist`\"\u003e`query_params_whitelist`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`queryParamsBlacklist`\" pulumi-lang-dotnet=\"`QueryParamsBlacklist`\" pulumi-lang-go=\"`queryParamsBlacklist`\" pulumi-lang-python=\"`query_params_blacklist`\" pulumi-lang-yaml=\"`queryParamsBlacklist`\" pulumi-lang-java=\"`queryParamsBlacklist`\"\u003e`query_params_blacklist`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"queryStringForwarding":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsQueryStringForwarding:getCdnResourceRuleOptionsQueryStringForwarding","description":"The Query String Forwarding feature allows for the seamless transfer of parameters embedded in playlist files to the corresponding media chunk files.\nThis functionality ensures that specific attributes, such as authentication tokens or tracking information, are consistently passed along from the playlist manifest to the individual media segments.\nThis is particularly useful for maintaining continuity in security, analytics, and any other parameter-based operations across the entire media delivery workflow.\n"},"redirectHttpToHttps":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsRedirectHttpToHttps:getCdnResourceRuleOptionsRedirectHttpToHttps","description":"Enables redirect from HTTP to HTTPS.\n\n\u003cspan pulumi-lang-nodejs=\"`redirectHttpToHttps`\" pulumi-lang-dotnet=\"`RedirectHttpToHttps`\" pulumi-lang-go=\"`redirectHttpToHttps`\" pulumi-lang-python=\"`redirect_http_to_https`\" pulumi-lang-yaml=\"`redirectHttpToHttps`\" pulumi-lang-java=\"`redirectHttpToHttps`\"\u003e`redirect_http_to_https`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`redirectHttpsToHttp`\" pulumi-lang-dotnet=\"`RedirectHttpsToHttp`\" pulumi-lang-go=\"`redirectHttpsToHttp`\" pulumi-lang-python=\"`redirect_https_to_http`\" pulumi-lang-yaml=\"`redirectHttpsToHttp`\" pulumi-lang-java=\"`redirectHttpsToHttp`\"\u003e`redirect_https_to_http`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"redirectHttpsToHttp":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsRedirectHttpsToHttp:getCdnResourceRuleOptionsRedirectHttpsToHttp","description":"Enables redirect from HTTPS to HTTP.\n\n\u003cspan pulumi-lang-nodejs=\"`redirectHttpToHttps`\" pulumi-lang-dotnet=\"`RedirectHttpToHttps`\" pulumi-lang-go=\"`redirectHttpToHttps`\" pulumi-lang-python=\"`redirect_http_to_https`\" pulumi-lang-yaml=\"`redirectHttpToHttps`\" pulumi-lang-java=\"`redirectHttpToHttps`\"\u003e`redirect_http_to_https`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`redirectHttpsToHttp`\" pulumi-lang-dotnet=\"`RedirectHttpsToHttp`\" pulumi-lang-go=\"`redirectHttpsToHttp`\" pulumi-lang-python=\"`redirect_https_to_http`\" pulumi-lang-yaml=\"`redirectHttpsToHttp`\" pulumi-lang-java=\"`redirectHttpsToHttp`\"\u003e`redirect_https_to_http`\u003c/span\u003e options cannot be enabled simultaneously.\n"},"referrerAcl":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsReferrerAcl:getCdnResourceRuleOptionsReferrerAcl","description":"Controls access to the CDN resource content for specified domain names.\n"},"requestLimiter":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsRequestLimiter:getCdnResourceRuleOptionsRequestLimiter","description":"Option allows to limit the amount of HTTP requests.\n"},"responseHeadersHidingPolicy":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsResponseHeadersHidingPolicy:getCdnResourceRuleOptionsResponseHeadersHidingPolicy","description":"Hides HTTP headers from an origin server in the CDN response.\n"},"rewrite":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsRewrite:getCdnResourceRuleOptionsRewrite","description":"Changes and redirects requests from the CDN to the origin. It operates according to the [Nginx](https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite) configuration.\n"},"secureKey":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsSecureKey:getCdnResourceRuleOptionsSecureKey","description":"Configures access with tokenized URLs. This makes impossible to access content without a valid (unexpired) token.\n"},"slice":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsSlice:getCdnResourceRuleOptionsSlice","description":"Requests and caches files larger than 10 MB in parts (no larger than 10 MB per part.) This reduces time to first byte.\n\nThe option is based on the [Slice](https://nginx.org/en/docs/http/ngx_http_slice_module.html) module.\n\nNotes:\n\n1. Origin must support HTTP Range requests.\n2. Not supported with `gzipON`, \u003cspan pulumi-lang-nodejs=\"`brotliCompression`\" pulumi-lang-dotnet=\"`BrotliCompression`\" pulumi-lang-go=\"`brotliCompression`\" pulumi-lang-python=\"`brotli_compression`\" pulumi-lang-yaml=\"`brotliCompression`\" pulumi-lang-java=\"`brotliCompression`\"\u003e`brotli_compression`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`fetchCompressed`\" pulumi-lang-dotnet=\"`FetchCompressed`\" pulumi-lang-go=\"`fetchCompressed`\" pulumi-lang-python=\"`fetch_compressed`\" pulumi-lang-yaml=\"`fetchCompressed`\" pulumi-lang-java=\"`fetchCompressed`\"\u003e`fetch_compressed`\u003c/span\u003e options enabled.\n"},"sni":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsSni:getCdnResourceRuleOptionsSni","description":"The hostname that is added to SNI requests from CDN servers to the origin server via HTTPS.\n\nSNI is generally only required if your origin uses shared hosting or does not have a dedicated IP address.\nIf the origin server presents multiple certificates, SNI allows the origin server to know which certificate to use for the connection.\n\nThe option works only if `originProtocol` parameter is `HTTPS` or `MATCH`.\n"},"stale":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsStale:getCdnResourceRuleOptionsStale","description":"Serves stale cached content in case of origin unavailability.\n"},"staticHeaders":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsStaticHeaders:getCdnResourceRuleOptionsStaticHeaders","description":"**Legacy option**. Use the \u003cspan pulumi-lang-nodejs=\"`staticResponseHeaders`\" pulumi-lang-dotnet=\"`StaticResponseHeaders`\" pulumi-lang-go=\"`staticResponseHeaders`\" pulumi-lang-python=\"`static_response_headers`\" pulumi-lang-yaml=\"`staticResponseHeaders`\" pulumi-lang-java=\"`staticResponseHeaders`\"\u003e`static_response_headers`\u003c/span\u003e option instead.\n\nCustom HTTP Headers that a CDN server adds to response. Up to fifty custom HTTP Headers can be specified. May contain a header with multiple values.\n","deprecationMessage":"Deprecated"},"staticRequestHeaders":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsStaticRequestHeaders:getCdnResourceRuleOptionsStaticRequestHeaders","description":"Custom HTTP Headers for a CDN server to add to request. Up to fifty custom HTTP Headers can be specified.\n"},"staticResponseHeaders":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsStaticResponseHeaders:getCdnResourceRuleOptionsStaticResponseHeaders","description":"Custom HTTP Headers that a CDN server adds to a response.\n"},"userAgentAcl":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsUserAgentAcl:getCdnResourceRuleOptionsUserAgentAcl","description":"Controls access to the content for specified User-Agents.\n"},"waap":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsWaap:getCdnResourceRuleOptionsWaap","description":"Allows to enable WAAP (Web Application and API Protection).\n"},"websockets":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsWebsockets:getCdnResourceRuleOptionsWebsockets","description":"Enables or disables WebSockets connections to an origin server.\n"}},"type":"object","required":["allowedHttpMethods","botProtection","brotliCompression","browserCacheSettings","cacheHttpHeaders","cors","countryAcl","disableCache","disableProxyForceRanges","edgeCacheSettings","fastedge","fetchCompressed","followOriginRedirect","forceReturn","forwardHostHeader","gzipOn","hostHeader","ignoreCookie","ignoreQueryString","imageStack","ipAddressAcl","limitBandwidth","proxyCacheKey","proxyCacheMethodsSet","proxyConnectTimeout","proxyReadTimeout","queryParamsBlacklist","queryParamsWhitelist","queryStringForwarding","redirectHttpToHttps","redirectHttpsToHttp","referrerAcl","requestLimiter","responseHeadersHidingPolicy","rewrite","secureKey","slice","sni","stale","staticHeaders","staticRequestHeaders","staticResponseHeaders","userAgentAcl","waap","websockets"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsAllowedHttpMethods:getCdnResourceRuleOptionsAllowedHttpMethods":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"}}},"type":"object","required":["enabled","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsBotProtection:getCdnResourceRuleOptionsBotProtection":{"properties":{"botChallenge":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsBotProtectionBotChallenge:getCdnResourceRuleOptionsBotProtectionBotChallenge","description":"Controls the bot challenge module state.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"}},"type":"object","required":["botChallenge","enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsBotProtectionBotChallenge:getCdnResourceRuleOptionsBotProtectionBotChallenge":{"properties":{"enabled":{"type":"boolean","description":"Possible values:\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsBrotliCompression:getCdnResourceRuleOptionsBrotliCompression":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Allows to select the content types you want to compress.\n\n`text/html` is a mandatory content type.\n"}},"type":"object","required":["enabled","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsBrowserCacheSettings:getCdnResourceRuleOptionsBrowserCacheSettings":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Set the cache expiration time to '0s' to disable caching.\n\nThe maximum duration is any equivalent to \u003cspan pulumi-lang-nodejs=\"`1y`\" pulumi-lang-dotnet=\"`1y`\" pulumi-lang-go=\"`1y`\" pulumi-lang-python=\"`1y`\" pulumi-lang-yaml=\"`1y`\" pulumi-lang-java=\"`1y`\"\u003e`1y`\u003c/span\u003e.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsCacheHttpHeaders:getCdnResourceRuleOptionsCacheHttpHeaders":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"}}},"type":"object","required":["enabled","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsCors:getCdnResourceRuleOptionsCors":{"properties":{"always":{"type":"boolean","description":"Defines whether the Access-Control-Allow-Origin header should be added to a response from CDN regardless of response code.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Value of the Access-Control-Allow-Origin header.\n\nPossible values:\n- **Adds * as the Access-Control-Allow-Origin header value** - Content will be uploaded for requests from any domain.\n`\"value\": [\"*\"]`\n- **Adds \"$http_origin\" as the Access-Control-Allow-Origin header value if the origin matches one of the listed domains** - Content will be uploaded only for requests from the domains specified in the field.\n`\"value\": [\"domain.com\", \"second.dom.com\"]`\n- **Adds \"$http_origin\" as the Access-Control-Allow-Origin header value** - Content will be uploaded for requests from any domain, and the domain from which the request was sent will be added to the \"Access-Control-Allow-Origin\" header in the response.\n`\"value\": [\"$http_origin\"]`\n"}},"type":"object","required":["always","enabled","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsCountryAcl:getCdnResourceRuleOptionsCountryAcl":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of countries according to ISO-3166-1.\n\nThe meaning of the parameter depends on \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e value:\n- **allow** - List of countries for which access is prohibited.\n- **deny** - List of countries for which access is allowed.\n"},"policyType":{"type":"string","description":"Defines the type of CDN resource access policy.\n\nPossible values:\n- **allow** - Access is allowed for all the countries except for those specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\n- **deny** - Access is denied for all the countries except for those specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\nAvailable values: \"allow\", \"deny\".\n"}},"type":"object","required":["enabled","exceptedValues","policyType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsDisableCache:getCdnResourceRuleOptionsDisableCache":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - content caching is disabled.\n- **false** - content caching is enabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsDisableProxyForceRanges:getCdnResourceRuleOptionsDisableProxyForceRanges":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsEdgeCacheSettings:getCdnResourceRuleOptionsEdgeCacheSettings":{"properties":{"customValues":{"type":"object","additionalProperties":{"type":"string"},"description":"A MAP object representing the caching time in seconds for a response with a specific response code.\n"},"default":{"type":"string","description":"Enables content caching according to the origin cache settings.\n\nThe value is applied to the following response codes 200, 201, 204, 206, 301, 302, 303, 304, 307, 308, if an origin server does not have caching HTTP headers.\n\nResponses with other codes will not be cached.\n\nThe maximum duration is any equivalent to \u003cspan pulumi-lang-nodejs=\"`1y`\" pulumi-lang-dotnet=\"`1y`\" pulumi-lang-go=\"`1y`\" pulumi-lang-python=\"`1y`\" pulumi-lang-yaml=\"`1y`\" pulumi-lang-java=\"`1y`\"\u003e`1y`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"},"value":{"type":"string","description":"Caching time.\n\nThe value is applied to the following response codes: 200, 206, 301, 302.\nResponses with codes 4xx, 5xx will not be cached.\n\nUse \u003cspan pulumi-lang-nodejs=\"`0s`\" pulumi-lang-dotnet=\"`0s`\" pulumi-lang-go=\"`0s`\" pulumi-lang-python=\"`0s`\" pulumi-lang-yaml=\"`0s`\" pulumi-lang-java=\"`0s`\"\u003e`0s`\u003c/span\u003e to disable caching.\n\nThe maximum duration is any equivalent to \u003cspan pulumi-lang-nodejs=\"`1y`\" pulumi-lang-dotnet=\"`1y`\" pulumi-lang-go=\"`1y`\" pulumi-lang-python=\"`1y`\" pulumi-lang-yaml=\"`1y`\" pulumi-lang-java=\"`1y`\"\u003e`1y`\u003c/span\u003e.\n"}},"type":"object","required":["customValues","default","enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsFastedge:getCdnResourceRuleOptionsFastedge":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"onRequestBody":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsFastedgeOnRequestBody:getCdnResourceRuleOptionsFastedgeOnRequestBody","description":"Allows to configure FastEdge application that will be called to handle request body as soon as CDN receives incoming HTTP request.\n"},"onRequestHeaders":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsFastedgeOnRequestHeaders:getCdnResourceRuleOptionsFastedgeOnRequestHeaders","description":"Allows to configure FastEdge application that will be called to handle request headers as soon as CDN receives incoming HTTP request, **before cache**.\n"},"onResponseBody":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsFastedgeOnResponseBody:getCdnResourceRuleOptionsFastedgeOnResponseBody","description":"Allows to configure FastEdge application that will be called to handle response body before CDN sends the HTTP response.\n"},"onResponseHeaders":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsFastedgeOnResponseHeaders:getCdnResourceRuleOptionsFastedgeOnResponseHeaders","description":"Allows to configure FastEdge application that will be called to handle response headers before CDN sends the HTTP response.\n"}},"type":"object","required":["enabled","onRequestBody","onRequestHeaders","onResponseBody","onResponseHeaders"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsFastedgeOnRequestBody:getCdnResourceRuleOptionsFastedgeOnRequestBody":{"properties":{"appId":{"type":"string","description":"The ID of the application in FastEdge.\n"},"enabled":{"type":"boolean","description":"Determines if the FastEdge application should be called whenever HTTP request headers are received.\n"},"executeOnEdge":{"type":"boolean","description":"Determines if the request should be executed at the edge nodes.\n"},"executeOnShield":{"type":"boolean","description":"Determines if the request should be executed at the shield nodes.\n"},"interruptOnError":{"type":"boolean","description":"Determines if the request execution should be interrupted when an error occurs.\n"}},"type":"object","required":["appId","enabled","executeOnEdge","executeOnShield","interruptOnError"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsFastedgeOnRequestHeaders:getCdnResourceRuleOptionsFastedgeOnRequestHeaders":{"properties":{"appId":{"type":"string","description":"The ID of the application in FastEdge.\n"},"enabled":{"type":"boolean","description":"Determines if the FastEdge application should be called whenever HTTP request headers are received.\n"},"executeOnEdge":{"type":"boolean","description":"Determines if the request should be executed at the edge nodes.\n"},"executeOnShield":{"type":"boolean","description":"Determines if the request should be executed at the shield nodes.\n"},"interruptOnError":{"type":"boolean","description":"Determines if the request execution should be interrupted when an error occurs.\n"}},"type":"object","required":["appId","enabled","executeOnEdge","executeOnShield","interruptOnError"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsFastedgeOnResponseBody:getCdnResourceRuleOptionsFastedgeOnResponseBody":{"properties":{"appId":{"type":"string","description":"The ID of the application in FastEdge.\n"},"enabled":{"type":"boolean","description":"Determines if the FastEdge application should be called whenever HTTP request headers are received.\n"},"executeOnEdge":{"type":"boolean","description":"Determines if the request should be executed at the edge nodes.\n"},"executeOnShield":{"type":"boolean","description":"Determines if the request should be executed at the shield nodes.\n"},"interruptOnError":{"type":"boolean","description":"Determines if the request execution should be interrupted when an error occurs.\n"}},"type":"object","required":["appId","enabled","executeOnEdge","executeOnShield","interruptOnError"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsFastedgeOnResponseHeaders:getCdnResourceRuleOptionsFastedgeOnResponseHeaders":{"properties":{"appId":{"type":"string","description":"The ID of the application in FastEdge.\n"},"enabled":{"type":"boolean","description":"Determines if the FastEdge application should be called whenever HTTP request headers are received.\n"},"executeOnEdge":{"type":"boolean","description":"Determines if the request should be executed at the edge nodes.\n"},"executeOnShield":{"type":"boolean","description":"Determines if the request should be executed at the shield nodes.\n"},"interruptOnError":{"type":"boolean","description":"Determines if the request execution should be interrupted when an error occurs.\n"}},"type":"object","required":["appId","enabled","executeOnEdge","executeOnShield","interruptOnError"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsFetchCompressed:getCdnResourceRuleOptionsFetchCompressed":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsFollowOriginRedirect:getCdnResourceRuleOptionsFollowOriginRedirect":{"properties":{"codes":{"type":"array","items":{"type":"number"},"description":"Redirect status code that the origin server returns.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["codes","enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsForceReturn:getCdnResourceRuleOptionsForceReturn":{"properties":{"body":{"type":"string","description":"URL for redirection or text.\n"},"code":{"type":"number","description":"Status code value.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"timeInterval":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsForceReturnTimeInterval:getCdnResourceRuleOptionsForceReturnTimeInterval","description":"Controls the time at which a custom HTTP response code should be applied. By default, a custom HTTP response code is applied at any time.\n"}},"type":"object","required":["body","code","enabled","timeInterval"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsForceReturnTimeInterval:getCdnResourceRuleOptionsForceReturnTimeInterval":{"properties":{"endTime":{"type":"string","description":"Time until which a custom HTTP response code should be applied. Indicated in 24-hour format.\n"},"startTime":{"type":"string","description":"Time from which a custom HTTP response code should be applied. Indicated in 24-hour format.\n"},"timeZone":{"type":"string","description":"Time zone used to calculate time.\n"}},"type":"object","required":["endTime","startTime","timeZone"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsForwardHostHeader:getCdnResourceRuleOptionsForwardHostHeader":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsGzipOn:getCdnResourceRuleOptionsGzipOn":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsHostHeader:getCdnResourceRuleOptionsHostHeader":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Host Header value.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsIgnoreCookie:getCdnResourceRuleOptionsIgnoreCookie":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled, files with cookies are cached as one file.\n- **false** - Option is disabled, files with cookies are cached as different files.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsIgnoreQueryString:getCdnResourceRuleOptionsIgnoreQueryString":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsImageStack:getCdnResourceRuleOptionsImageStack":{"properties":{"avifEnabled":{"type":"boolean","description":"Enables or disables automatic conversion of JPEG and PNG images to AVI format.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"pngLossless":{"type":"boolean","description":"Enables or disables compression without quality loss for PNG format.\n"},"quality":{"type":"number","description":"Defines quality settings for JPG and PNG images. The higher the value, the better the image quality, and the larger the file size after conversion.\n"},"webpEnabled":{"type":"boolean","description":"Enables or disables automatic conversion of JPEG and PNG images to WebP format.\n"}},"type":"object","required":["avifEnabled","enabled","pngLossless","quality","webpEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsIpAddressAcl:getCdnResourceRuleOptionsIpAddressAcl":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of IP addresses with a subnet mask.\n\nThe meaning of the parameter depends on \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e value:\n- **allow** - List of IP addresses for which access is prohibited.\n- **deny** - List of IP addresses for which access is allowed.\n\nExamples:\n- `192.168.3.2/32`\n- `2a03:d000:2980:7::8/128`\n"},"policyType":{"type":"string","description":"IP access policy type.\n\nPossible values:\n- **allow** - Allow access to all IPs except IPs specified in \u003cspan pulumi-lang-nodejs=\"\"exceptedValues\"\" pulumi-lang-dotnet=\"\"ExceptedValues\"\" pulumi-lang-go=\"\"exceptedValues\"\" pulumi-lang-python=\"\"excepted_values\"\" pulumi-lang-yaml=\"\"exceptedValues\"\" pulumi-lang-java=\"\"exceptedValues\"\"\u003e\"excepted_values\"\u003c/span\u003e field.\n- **deny** - Deny access to all IPs except IPs specified in \u003cspan pulumi-lang-nodejs=\"\"exceptedValues\"\" pulumi-lang-dotnet=\"\"ExceptedValues\"\" pulumi-lang-go=\"\"exceptedValues\"\" pulumi-lang-python=\"\"excepted_values\"\" pulumi-lang-yaml=\"\"exceptedValues\"\" pulumi-lang-java=\"\"exceptedValues\"\"\u003e\"excepted_values\"\u003c/span\u003e field.\nAvailable values: \"allow\", \"deny\".\n"}},"type":"object","required":["enabled","exceptedValues","policyType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsLimitBandwidth:getCdnResourceRuleOptionsLimitBandwidth":{"properties":{"buffer":{"type":"number","description":"Amount of downloaded data after which the user will be rate limited.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"limitType":{"type":"string","description":"Method of controlling the download speed per connection.\n\nPossible values:\n- **static** - Use speed and buffer fields to set the download speed limit.\n- **dynamic** - Use query strings **speed** and **buffer** to set the download speed limit.\n\nFor example, when requesting content at the link\n\n```\nhttp://cdn.example.com/video.mp4?speed=50k\u0026buffer=500k\n```\n\nthe download speed will be limited to 50kB/s after 500 kB.\nAvailable values: \"static\", \"dynamic\".\n"},"speed":{"type":"number","description":"Maximum download speed per connection.\n"}},"type":"object","required":["buffer","enabled","limitType","speed"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsProxyCacheKey:getCdnResourceRuleOptionsProxyCacheKey":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Key for caching.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsProxyCacheMethodsSet:getCdnResourceRuleOptionsProxyCacheMethodsSet":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsProxyConnectTimeout:getCdnResourceRuleOptionsProxyConnectTimeout":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Timeout value in seconds.\n\nSupported range: **1s - 5s**.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsProxyReadTimeout:getCdnResourceRuleOptionsProxyReadTimeout":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"Timeout value in seconds.\n\nSupported range: **1s - 30s**.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsQueryParamsBlacklist:getCdnResourceRuleOptionsQueryParamsBlacklist":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"List of query parameters.\n"}},"type":"object","required":["enabled","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsQueryParamsWhitelist:getCdnResourceRuleOptionsQueryParamsWhitelist":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"List of query parameters.\n"}},"type":"object","required":["enabled","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsQueryStringForwarding:getCdnResourceRuleOptionsQueryStringForwarding":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"forwardExceptKeys":{"type":"array","items":{"type":"string"},"description":"The \u003cspan pulumi-lang-nodejs=\"`forwardExceptKeys`\" pulumi-lang-dotnet=\"`ForwardExceptKeys`\" pulumi-lang-go=\"`forwardExceptKeys`\" pulumi-lang-python=\"`forward_except_keys`\" pulumi-lang-yaml=\"`forwardExceptKeys`\" pulumi-lang-java=\"`forwardExceptKeys`\"\u003e`forward_except_keys`\u003c/span\u003e field provides a mechanism to exclude specific parameters from being forwarded from playlist files to media chunk files.\nBy listing certain keys in this field, you can ensure that these parameters are omitted during the forwarding process.\nThis is particularly useful for preventing sensitive or irrelevant information from being included in requests for media chunks, thereby enhancing security and optimizing performance.\n"},"forwardFromFileTypes":{"type":"array","items":{"type":"string"},"description":"The \u003cspan pulumi-lang-nodejs=\"`forwardFromFilesTypes`\" pulumi-lang-dotnet=\"`ForwardFromFilesTypes`\" pulumi-lang-go=\"`forwardFromFilesTypes`\" pulumi-lang-python=\"`forward_from_files_types`\" pulumi-lang-yaml=\"`forwardFromFilesTypes`\" pulumi-lang-java=\"`forwardFromFilesTypes`\"\u003e`forward_from_files_types`\u003c/span\u003e field specifies the types of playlist files from which parameters will be extracted and forwarded.\nThis typically includes formats that list multiple media chunk references, such as HLS and DASH playlists.\nParameters associated with these playlist files (like query strings or headers) will be propagated to the chunks they reference.\n"},"forwardOnlyKeys":{"type":"array","items":{"type":"string"},"description":"The \u003cspan pulumi-lang-nodejs=\"`forwardOnlyKeys`\" pulumi-lang-dotnet=\"`ForwardOnlyKeys`\" pulumi-lang-go=\"`forwardOnlyKeys`\" pulumi-lang-python=\"`forward_only_keys`\" pulumi-lang-yaml=\"`forwardOnlyKeys`\" pulumi-lang-java=\"`forwardOnlyKeys`\"\u003e`forward_only_keys`\u003c/span\u003e field allows for granular control over which specific parameters are forwarded from playlist files to media chunk files.\nBy specifying certain keys, only those parameters will be propagated, ensuring that only relevant information is passed along.\nThis is particularly useful for security and performance optimization, as it prevents unnecessary or sensitive data from being included in requests for media chunks.\n"},"forwardToFileTypes":{"type":"array","items":{"type":"string"},"description":"The field specifies the types of media chunk files to which parameters, extracted from playlist files, will be forwarded.\nThese refer to the actual segments of media content that are delivered to viewers.\nEnsuring the correct parameters are forwarded to these files is crucial for maintaining the integrity of the streaming session.\n"}},"type":"object","required":["enabled","forwardExceptKeys","forwardFromFileTypes","forwardOnlyKeys","forwardToFileTypes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsRedirectHttpToHttps:getCdnResourceRuleOptionsRedirectHttpToHttps":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsRedirectHttpsToHttp:getCdnResourceRuleOptionsRedirectHttpsToHttp":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsReferrerAcl:getCdnResourceRuleOptionsReferrerAcl":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of domain names or wildcard domains (without protocol: `http://` or `https://`.)\n\nThe meaning of the parameter depends on \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e value:\n- **allow** - List of domain names for which access is prohibited.\n- **deny** - List of IP domain names for which access is allowed.\n\nExamples:\n- `example.com`\n- `*.example.com`\n"},"policyType":{"type":"string","description":"Policy type.\n\nPossible values:\n- **allow** - Allow access to all domain names except the domain names specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\n- **deny** - Deny access to all domain names except the domain names specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\nAvailable values: \"allow\", \"deny\".\n"}},"type":"object","required":["enabled","exceptedValues","policyType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsRequestLimiter:getCdnResourceRuleOptionsRequestLimiter":{"properties":{"burst":{"type":"number"},"delay":{"type":"number"},"enabled":{"type":"boolean","description":"Controls the option state.\n"},"rate":{"type":"number","description":"Maximum request rate.\n"},"rateUnit":{"type":"string","description":"Units of measurement for the \u003cspan pulumi-lang-nodejs=\"`rate`\" pulumi-lang-dotnet=\"`Rate`\" pulumi-lang-go=\"`rate`\" pulumi-lang-python=\"`rate`\" pulumi-lang-yaml=\"`rate`\" pulumi-lang-java=\"`rate`\"\u003e`rate`\u003c/span\u003e field.\n\nPossible values:\n- **r/s** - Requests per second.\n- **r/m** - Requests per minute.\n\nIf the rate is less than one request per second, it is specified in request per minute (r/m.)\nAvailable values: \"r/s\", \"r/m\".\n"}},"type":"object","required":["burst","delay","enabled","rate","rateUnit"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsResponseHeadersHidingPolicy:getCdnResourceRuleOptionsResponseHeadersHidingPolicy":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"excepteds":{"type":"array","items":{"type":"string"},"description":"List of HTTP headers.\n\nParameter meaning depends on the value of the \u003cspan pulumi-lang-nodejs=\"`mode`\" pulumi-lang-dotnet=\"`Mode`\" pulumi-lang-go=\"`mode`\" pulumi-lang-python=\"`mode`\" pulumi-lang-yaml=\"`mode`\" pulumi-lang-java=\"`mode`\"\u003e`mode`\u003c/span\u003e field:\n- **show** - List of HTTP headers to hide from response.\n- **hide** - List of HTTP headers to include in response. Other HTTP headers will be hidden.\n\nThe following headers are required and cannot be hidden from response:\n- `Connection`\n- `Content-Length`\n- `Content-Type`\n- `Date`\n- `Server`\n"},"mode":{"type":"string","description":"How HTTP headers are hidden from the response.\n\nPossible values:\n- **show** - Hide only HTTP headers listed in the \u003cspan pulumi-lang-nodejs=\"`excepted`\" pulumi-lang-dotnet=\"`Excepted`\" pulumi-lang-go=\"`excepted`\" pulumi-lang-python=\"`excepted`\" pulumi-lang-yaml=\"`excepted`\" pulumi-lang-java=\"`excepted`\"\u003e`excepted`\u003c/span\u003e field.\n- **hide** - Hide all HTTP headers except headers listed in the \"excepted\" field.\nAvailable values: \"hide\", \"show\".\n"}},"type":"object","required":["enabled","excepteds","mode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsRewrite:getCdnResourceRuleOptionsRewrite":{"properties":{"body":{"type":"string","description":"Path for the Rewrite option.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"},"flag":{"type":"string","description":"Flag for the Rewrite option.\n\nPossible values:\n- **last** - Stop processing the current set of \u003cspan pulumi-lang-nodejs=\"`ngxHttpRewriteModule`\" pulumi-lang-dotnet=\"`NgxHttpRewriteModule`\" pulumi-lang-go=\"`ngxHttpRewriteModule`\" pulumi-lang-python=\"`ngx_http_rewrite_module`\" pulumi-lang-yaml=\"`ngxHttpRewriteModule`\" pulumi-lang-java=\"`ngxHttpRewriteModule`\"\u003e`ngx_http_rewrite_module`\u003c/span\u003e directives and start a search for a new location matching changed URI.\n- **break** - Stop processing the current set of the Rewrite option.\n- **redirect** - Return a temporary redirect with the 302 code; used when a replacement string does not start with `http://`, `https://`, or `$scheme`.\n- **permanent** - Return a permanent redirect with the 301 code.\nAvailable values: \"break\", \"last\", \"redirect\", \"permanent\".\n"}},"type":"object","required":["body","enabled","flag"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsSecureKey:getCdnResourceRuleOptionsSecureKey":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"key":{"type":"string","description":"Key generated on your side that will be used for URL signing.\n"},"type":{"type":"number","description":"Type of URL signing.\n\nPossible types:\n- **Type 0** - Includes end user IP to secure token generation.\n- **Type 2** - Excludes end user IP from secure token generation.\nAvailable values: 0, 2.\n"}},"type":"object","required":["enabled","key","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsSlice:getCdnResourceRuleOptionsSlice":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsSni:getCdnResourceRuleOptionsSni":{"properties":{"customHostname":{"type":"string","description":"Custom SNI hostname.\n"},"enabled":{"type":"boolean","description":"Controls the option state.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"},"sniType":{"type":"string","description":"SNI (Server Name Indication) type.\n\nPossible values:\n- **dynamic** - SNI hostname depends on `hostHeader` and \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e options.\nIt has several possible combinations:\n- If the `hostHeader` option is enabled and specified, SNI hostname matches the Host header.\n- If the \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e option is enabled and has true value, SNI hostname matches the Host header used in the request made to a CDN.\n- If the `hostHeader` and \u003cspan pulumi-lang-nodejs=\"`forwardHostHeader`\" pulumi-lang-dotnet=\"`ForwardHostHeader`\" pulumi-lang-go=\"`forwardHostHeader`\" pulumi-lang-python=\"`forward_host_header`\" pulumi-lang-yaml=\"`forwardHostHeader`\" pulumi-lang-java=\"`forwardHostHeader`\"\u003e`forward_host_header`\u003c/span\u003e options are disabled, SNI hostname matches the primary CNAME.\n- **custom** - custom SNI hostname is in use.\nAvailable values: \"dynamic\", \"custom\".\n"}},"type":"object","required":["customHostname","enabled","sniType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsStale:getCdnResourceRuleOptionsStale":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Defines list of errors for which \"Always online\" option is applied.\n"}},"type":"object","required":["enabled","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsStaticHeaders:getCdnResourceRuleOptionsStaticHeaders":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"string","description":"A MAP for static headers in a format of `header_name:\u003cspan pulumi-lang-nodejs=\" headerValue`\" pulumi-lang-dotnet=\" HeaderValue`\" pulumi-lang-go=\" headerValue`\" pulumi-lang-python=\" header_value`\" pulumi-lang-yaml=\" headerValue`\" pulumi-lang-java=\" headerValue`\"\u003e header_value`\u003c/span\u003e.\n\nRestrictions:\n- **Header name** - Maximum 128 symbols, may contain Latin letters (A-Z, a-z), numbers (0-9), dashes, and underscores.\n- **Header value** - Maximum 512 symbols, may contain letters (a-z), numbers (0-9), spaces, and symbols (`~!@#%%^\u0026*()-_=+ /|\\\";:?.,\u003e\u003c{}[]). Must start with a letter, number, asterisk or {.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsStaticRequestHeaders:getCdnResourceRuleOptionsStaticRequestHeaders":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"object","additionalProperties":{"type":"string"},"description":"A MAP for static headers in a format of `header_name:\u003cspan pulumi-lang-nodejs=\" headerValue`\" pulumi-lang-dotnet=\" HeaderValue`\" pulumi-lang-go=\" headerValue`\" pulumi-lang-python=\" header_value`\" pulumi-lang-yaml=\" headerValue`\" pulumi-lang-java=\" headerValue`\"\u003e header_value`\u003c/span\u003e.\n\nRestrictions:\n- **Header name** - Maximum 255 symbols, may contain Latin letters (A-Z, a-z), numbers (0-9), dashes, and underscores.\n- **Header value** - Maximum 512 symbols, may contain letters (a-z), numbers (0-9), spaces, and symbols (`~!@#%%^\u0026*()-_=+ /|\\\";:?.,\u003e\u003c{}[]). Must start with a letter, number, asterisk or {.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsStaticResponseHeaders:getCdnResourceRuleOptionsStaticResponseHeaders":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"values":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptionsStaticResponseHeadersValue:getCdnResourceRuleOptionsStaticResponseHeadersValue"}}},"type":"object","required":["enabled","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsStaticResponseHeadersValue:getCdnResourceRuleOptionsStaticResponseHeadersValue":{"properties":{"always":{"type":"boolean","description":"Defines whether the header will be added to a response from CDN regardless of response code.\n"},"name":{"type":"string","description":"HTTP Header name.\n\nRestrictions:\n- Maximum 128 symbols.\n- Latin letters (A-Z, a-z,) numbers (0-9,) dashes, and underscores only.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Header value.\n\nRestrictions:\n- Maximum 512 symbols.\n- Letters (a-z), numbers (0-9), spaces, and symbols (`~!@#%%^\u0026*()-_=+ /|\\\";:?.,\u003e\u003c{}[]).\n- Must start with a letter, number, asterisk or {.\n- Multiple values can be added.\n"}},"type":"object","required":["always","name","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsUserAgentAcl:getCdnResourceRuleOptionsUserAgentAcl":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of User-Agents that will be allowed/denied.\n\nThe meaning of the parameter depends on \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e:\n- **allow** - List of User-Agents for which access is prohibited.\n- **deny** - List of User-Agents for which access is allowed.\n\nYou can provide exact User-Agent strings or regular expressions. Regular expressions must start\nwith `~` (case-sensitive) or `~*` (case-insensitive).\n\nUse an empty string `\"\"` to allow/deny access when the User-Agent header is empty.\n"},"policyType":{"type":"string","description":"User-Agents policy type.\n\nPossible values:\n- **allow** - Allow access for all User-Agents except specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\n- **deny** - Deny access for all User-Agents except specified in \u003cspan pulumi-lang-nodejs=\"`exceptedValues`\" pulumi-lang-dotnet=\"`ExceptedValues`\" pulumi-lang-go=\"`exceptedValues`\" pulumi-lang-python=\"`excepted_values`\" pulumi-lang-yaml=\"`exceptedValues`\" pulumi-lang-java=\"`exceptedValues`\"\u003e`excepted_values`\u003c/span\u003e field.\nAvailable values: \"allow\", \"deny\".\n"}},"type":"object","required":["enabled","exceptedValues","policyType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsWaap:getCdnResourceRuleOptionsWaap":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCdnResourceRuleOptionsWebsockets:getCdnResourceRuleOptionsWebsockets":{"properties":{"enabled":{"type":"boolean","description":"Controls the option state.\n"},"value":{"type":"boolean","description":"Possible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled.\n"}},"type":"object","required":["enabled","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFileShareFindOneBy:getCloudFileShareFindOneBy":{"properties":{"name":{"type":"string","description":"File share name. Uses partial match.\n"},"typeName":{"type":"string","description":"File share type name\nAvailable values: \"standard\", \"vast\".\n"}},"type":"object"},"gcore:index/getCloudFileShareShareSettings:getCloudFileShareShareSettings":{"properties":{"allowedCharacters":{"type":"string","description":"Available values: \"LCD\", \"NPL\".\n"},"pathLength":{"type":"string","description":"Available values: \"LCD\", \"NPL\".\n"},"rootSquash":{"type":"boolean","description":"Enables or disables root squash for NFS clients.\n- If \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, root squash is enabled: the root user is mapped to nobody for all file and folder management operations on the export.\n- If \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, root squash is disabled: the NFS client \u003cspan pulumi-lang-nodejs=\"`root`\" pulumi-lang-dotnet=\"`Root`\" pulumi-lang-go=\"`root`\" pulumi-lang-python=\"`root`\" pulumi-lang-yaml=\"`root`\" pulumi-lang-java=\"`root`\"\u003e`root`\u003c/span\u003e user retains root privileges.\n"},"typeName":{"type":"string","description":"Standard file share type\nAvailable values: \"standard\", \"vast\".\n"}},"type":"object","required":["allowedCharacters","pathLength","rootSquash","typeName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFileShareTag:getCloudFileShareTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFileSharesItem:getCloudFileSharesItem":{"properties":{"connectionPoint":{"type":"string","description":"Connection point. Can be null during File share creation\n"},"createdAt":{"type":"string","description":"Datetime when the file share was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"id":{"type":"string","description":"File share ID\n"},"name":{"type":"string","description":"File share name\n"},"networkId":{"type":"string","description":"Network ID.\n"},"networkName":{"type":"string","description":"Network name.\n"},"projectId":{"type":"number","description":"Project ID\n"},"protocol":{"type":"string","description":"File share protocol\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"shareNetworkName":{"type":"string","description":"Share network name. May be null if the file share was created with volume type VAST\n"},"shareSettings":{"$ref":"#/types/gcore:index%2FgetCloudFileSharesItemShareSettings:getCloudFileSharesItemShareSettings","description":"Share settings specific to the file share type\n"},"size":{"type":"number","description":"File share size in GiB\n"},"status":{"type":"string","description":"File share status\nAvailable values: \"available\", \u003cspan pulumi-lang-nodejs=\"\"awaitingTransfer\"\" pulumi-lang-dotnet=\"\"AwaitingTransfer\"\" pulumi-lang-go=\"\"awaitingTransfer\"\" pulumi-lang-python=\"\"awaiting_transfer\"\" pulumi-lang-yaml=\"\"awaitingTransfer\"\" pulumi-lang-java=\"\"awaitingTransfer\"\"\u003e\"awaiting_transfer\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"backupCreating\"\" pulumi-lang-dotnet=\"\"BackupCreating\"\" pulumi-lang-go=\"\"backupCreating\"\" pulumi-lang-python=\"\"backup_creating\"\" pulumi-lang-yaml=\"\"backupCreating\"\" pulumi-lang-java=\"\"backupCreating\"\"\u003e\"backup_creating\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"backupRestoring\"\" pulumi-lang-dotnet=\"\"BackupRestoring\"\" pulumi-lang-go=\"\"backupRestoring\"\" pulumi-lang-python=\"\"backup_restoring\"\" pulumi-lang-yaml=\"\"backupRestoring\"\" pulumi-lang-java=\"\"backupRestoring\"\"\u003e\"backup_restoring\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"backupRestoringError\"\" pulumi-lang-dotnet=\"\"BackupRestoringError\"\" pulumi-lang-go=\"\"backupRestoringError\"\" pulumi-lang-python=\"\"backup_restoring_error\"\" pulumi-lang-yaml=\"\"backupRestoringError\"\" pulumi-lang-java=\"\"backupRestoringError\"\"\u003e\"backup_restoring_error\"\u003c/span\u003e, \"creating\", \u003cspan pulumi-lang-nodejs=\"\"creatingFromSnapshot\"\" pulumi-lang-dotnet=\"\"CreatingFromSnapshot\"\" pulumi-lang-go=\"\"creatingFromSnapshot\"\" pulumi-lang-python=\"\"creating_from_snapshot\"\" pulumi-lang-yaml=\"\"creatingFromSnapshot\"\" pulumi-lang-java=\"\"creatingFromSnapshot\"\"\u003e\"creating_from_snapshot\"\u003c/span\u003e, \"deleted\", \"deleting\", \"ensuring\", \"error\", \u003cspan pulumi-lang-nodejs=\"\"errorDeleting\"\" pulumi-lang-dotnet=\"\"ErrorDeleting\"\" pulumi-lang-go=\"\"errorDeleting\"\" pulumi-lang-python=\"\"error_deleting\"\" pulumi-lang-yaml=\"\"errorDeleting\"\" pulumi-lang-java=\"\"errorDeleting\"\"\u003e\"error_deleting\"\u003c/span\u003e, \"extending\", \u003cspan pulumi-lang-nodejs=\"\"extendingError\"\" pulumi-lang-dotnet=\"\"ExtendingError\"\" pulumi-lang-go=\"\"extendingError\"\" pulumi-lang-python=\"\"extending_error\"\" pulumi-lang-yaml=\"\"extendingError\"\" pulumi-lang-java=\"\"extendingError\"\"\u003e\"extending_error\"\u003c/span\u003e, \"inactive\", \u003cspan pulumi-lang-nodejs=\"\"manageError\"\" pulumi-lang-dotnet=\"\"ManageError\"\" pulumi-lang-go=\"\"manageError\"\" pulumi-lang-python=\"\"manage_error\"\" pulumi-lang-yaml=\"\"manageError\"\" pulumi-lang-java=\"\"manageError\"\"\u003e\"manage_error\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"manageStarting\"\" pulumi-lang-dotnet=\"\"ManageStarting\"\" pulumi-lang-go=\"\"manageStarting\"\" pulumi-lang-python=\"\"manage_starting\"\" pulumi-lang-yaml=\"\"manageStarting\"\" pulumi-lang-java=\"\"manageStarting\"\"\u003e\"manage_starting\"\u003c/span\u003e, \"migrating\", \u003cspan pulumi-lang-nodejs=\"\"migratingTo\"\" pulumi-lang-dotnet=\"\"MigratingTo\"\" pulumi-lang-go=\"\"migratingTo\"\" pulumi-lang-python=\"\"migrating_to\"\" pulumi-lang-yaml=\"\"migratingTo\"\" pulumi-lang-java=\"\"migratingTo\"\"\u003e\"migrating_to\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"replicationChange\"\" pulumi-lang-dotnet=\"\"ReplicationChange\"\" pulumi-lang-go=\"\"replicationChange\"\" pulumi-lang-python=\"\"replication_change\"\" pulumi-lang-yaml=\"\"replicationChange\"\" pulumi-lang-java=\"\"replicationChange\"\"\u003e\"replication_change\"\u003c/span\u003e, \"reverting\", \u003cspan pulumi-lang-nodejs=\"\"revertingError\"\" pulumi-lang-dotnet=\"\"RevertingError\"\" pulumi-lang-go=\"\"revertingError\"\" pulumi-lang-python=\"\"reverting_error\"\" pulumi-lang-yaml=\"\"revertingError\"\" pulumi-lang-java=\"\"revertingError\"\"\u003e\"reverting_error\"\u003c/span\u003e, \"shrinking\", \u003cspan pulumi-lang-nodejs=\"\"shrinkingError\"\" pulumi-lang-dotnet=\"\"ShrinkingError\"\" pulumi-lang-go=\"\"shrinkingError\"\" pulumi-lang-python=\"\"shrinking_error\"\" pulumi-lang-yaml=\"\"shrinkingError\"\" pulumi-lang-java=\"\"shrinkingError\"\"\u003e\"shrinking_error\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"shrinkingPossibleDataLossError\"\" pulumi-lang-dotnet=\"\"ShrinkingPossibleDataLossError\"\" pulumi-lang-go=\"\"shrinkingPossibleDataLossError\"\" pulumi-lang-python=\"\"shrinking_possible_data_loss_error\"\" pulumi-lang-yaml=\"\"shrinkingPossibleDataLossError\"\" pulumi-lang-java=\"\"shrinkingPossibleDataLossError\"\"\u003e\"shrinking_possible_data_loss_error\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"unmanageError\"\" pulumi-lang-dotnet=\"\"UnmanageError\"\" pulumi-lang-go=\"\"unmanageError\"\" pulumi-lang-python=\"\"unmanage_error\"\" pulumi-lang-yaml=\"\"unmanageError\"\" pulumi-lang-java=\"\"unmanageError\"\"\u003e\"unmanage_error\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"unmanageStarting\"\" pulumi-lang-dotnet=\"\"UnmanageStarting\"\" pulumi-lang-go=\"\"unmanageStarting\"\" pulumi-lang-python=\"\"unmanage_starting\"\" pulumi-lang-yaml=\"\"unmanageStarting\"\" pulumi-lang-java=\"\"unmanageStarting\"\"\u003e\"unmanage_starting\"\u003c/span\u003e, \"unmanaged\".\n"},"subnetId":{"type":"string","description":"Subnet ID.\n"},"subnetName":{"type":"string","description":"Subnet name.\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudFileSharesItemTag:getCloudFileSharesItemTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"typeName":{"type":"string","description":"File share type name\nAvailable values: \"standard\", \"vast\".\n"}},"type":"object","required":["connectionPoint","createdAt","creatorTaskId","id","name","networkId","networkName","projectId","protocol","region","regionId","shareNetworkName","shareSettings","size","status","subnetId","subnetName","tags","typeName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFileSharesItemShareSettings:getCloudFileSharesItemShareSettings":{"properties":{"allowedCharacters":{"type":"string","description":"Available values: \"LCD\", \"NPL\".\n"},"pathLength":{"type":"string","description":"Available values: \"LCD\", \"NPL\".\n"},"rootSquash":{"type":"boolean","description":"Enables or disables root squash for NFS clients.\n- If \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, root squash is enabled: the root user is mapped to nobody for all file and folder management operations on the export.\n- If \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, root squash is disabled: the NFS client \u003cspan pulumi-lang-nodejs=\"`root`\" pulumi-lang-dotnet=\"`Root`\" pulumi-lang-go=\"`root`\" pulumi-lang-python=\"`root`\" pulumi-lang-yaml=\"`root`\" pulumi-lang-java=\"`root`\"\u003e`root`\u003c/span\u003e user retains root privileges.\n"},"typeName":{"type":"string","description":"Standard file share type\nAvailable values: \"standard\", \"vast\".\n"}},"type":"object","required":["allowedCharacters","pathLength","rootSquash","typeName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFileSharesItemTag:getCloudFileSharesItemTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpFindOneBy:getCloudFloatingIpFindOneBy":{"properties":{"status":{"type":"string","description":"Filter by floating IP status. DOWN - unassigned (available). ACTIVE - attached to a port (in use). ERROR - error state.\nAvailable values: \"ACTIVE\", \"DOWN\", \"ERROR\".\n"},"tagKeyValue":{"type":"string","description":"Optional. Filter by tag key-value pairs.\n"},"tagKeys":{"type":"array","items":{"type":"string"},"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n"}},"type":"object"},"gcore:index/getCloudFloatingIpTag:getCloudFloatingIpTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItem:getCloudFloatingIpsItem":{"properties":{"createdAt":{"type":"string","description":"Datetime when the floating IP was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"fixedIpAddress":{"type":"string","description":"IP address of the port the floating IP is attached to\n"},"floatingIpAddress":{"type":"string","description":"IP Address of the floating IP\n"},"id":{"type":"string","description":"Floating IP ID\n"},"instance":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemInstance:getCloudFloatingIpsItemInstance","description":"Instance the floating IP is attached to\n"},"loadbalancer":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancer:getCloudFloatingIpsItemLoadbalancer","description":"Load balancer the floating IP is attached to\n"},"portId":{"type":"string","description":"Port ID\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"routerId":{"type":"string","description":"Router ID\n"},"status":{"type":"string","description":"Floating IP status. DOWN - unassigned (available). ACTIVE - attached to a port (in use). ERROR - error state.\nAvailable values: \"ACTIVE\", \"DOWN\", \"ERROR\".\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemTag:getCloudFloatingIpsItemTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the floating IP was last updated\n"}},"type":"object","required":["createdAt","creatorTaskId","fixedIpAddress","floatingIpAddress","id","instance","loadbalancer","portId","projectId","region","regionId","routerId","status","tags","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemInstance:getCloudFloatingIpsItemInstance":{"properties":{"addresses":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemInstanceAddresses:getCloudFloatingIpsItemInstanceAddresses"}},"description":"Map of \u003cspan pulumi-lang-nodejs=\"`networkName`\" pulumi-lang-dotnet=\"`NetworkName`\" pulumi-lang-go=\"`networkName`\" pulumi-lang-python=\"`network_name`\" pulumi-lang-yaml=\"`networkName`\" pulumi-lang-java=\"`networkName`\"\u003e`network_name`\u003c/span\u003e to list of addresses in that network\n"},"createdAt":{"type":"string","description":"Datetime when instance was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"flavor":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemInstanceFlavor:getCloudFloatingIpsItemInstanceFlavor","description":"Flavor\n"},"id":{"type":"string","description":"Instance ID\n"},"instanceDescription":{"type":"string","description":"Instance description\n"},"name":{"type":"string","description":"Instance name\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemInstanceSecurityGroup:getCloudFloatingIpsItemInstanceSecurityGroup"},"description":"Security groups\n"},"sshKeyName":{"type":"string","description":"SSH key name assigned to instance\n"},"status":{"type":"string","description":"Instance status\nAvailable values: \"ACTIVE\", \"BUILD\", \"DELETED\", \"ERROR\", \"HARD*REBOOT\", \"MIGRATING\", \"PASSWORD\", \"PAUSED\", \"REBOOT\", \"REBUILD\", \"RESCUE\", \"RESIZE\", \"REVERT*RESIZE\", \"SHELVED\", \"SHELVED*OFFLOADED\", \"SHUTOFF\", \"SOFT*DELETED\", \"SUSPENDED\", \"UNKNOWN\", \"VERIFY_RESIZE\".\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemInstanceTag:getCloudFloatingIpsItemInstanceTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"taskState":{"type":"string","description":"Task state\n"},"vmState":{"type":"string","description":"Virtual machine state (active)\nAvailable values: \"active\", \"building\", \"deleted\", \"error\", \"paused\", \"rescued\", \"resized\", \"shelved\", \u003cspan pulumi-lang-nodejs=\"\"shelvedOffloaded\"\" pulumi-lang-dotnet=\"\"ShelvedOffloaded\"\" pulumi-lang-go=\"\"shelvedOffloaded\"\" pulumi-lang-python=\"\"shelved_offloaded\"\" pulumi-lang-yaml=\"\"shelvedOffloaded\"\" pulumi-lang-java=\"\"shelvedOffloaded\"\"\u003e\"shelved_offloaded\"\u003c/span\u003e, \"soft-deleted\", \"stopped\", \"suspended\".\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemInstanceVolume:getCloudFloatingIpsItemInstanceVolume"},"description":"List of volumes\n"}},"type":"object","required":["addresses","createdAt","creatorTaskId","flavor","id","instanceDescription","name","projectId","region","regionId","securityGroups","sshKeyName","status","tags","taskState","vmState","volumes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemInstanceAddresses:getCloudFloatingIpsItemInstanceAddresses":{"properties":{"addr":{"type":"string"},"interfaceName":{"type":"string"},"subnetId":{"type":"string"},"subnetName":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["addr","interfaceName","subnetId","subnetName","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemInstanceFlavor:getCloudFloatingIpsItemInstanceFlavor":{"properties":{"flavorId":{"type":"string","description":"Flavor ID is the same as name\n"},"flavorName":{"type":"string","description":"Flavor name\n"},"ram":{"type":"number","description":"RAM size in MiB\n"},"vcpus":{"type":"number","description":"Virtual CPU count. For bare metal flavors, it's a physical CPU count\n"}},"type":"object","required":["flavorId","flavorName","ram","vcpus"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemInstanceSecurityGroup:getCloudFloatingIpsItemInstanceSecurityGroup":{"properties":{"name":{"type":"string","description":"Name.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemInstanceTag:getCloudFloatingIpsItemInstanceTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemInstanceVolume:getCloudFloatingIpsItemInstanceVolume":{"properties":{"deleteOnTermination":{"type":"boolean","description":"Whether the volume is deleted together with the VM\n"},"id":{"type":"string","description":"Volume ID\n"}},"type":"object","required":["deleteOnTermination","id"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancer:getCloudFloatingIpsItemLoadbalancer":{"properties":{"additionalVips":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancerAdditionalVip:getCloudFloatingIpsItemLoadbalancerAdditionalVip"},"description":"List of additional IP addresses\n"},"adminStateUp":{"type":"boolean","description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n"},"createdAt":{"type":"string","description":"Datetime when the load balancer was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"ddosProfile":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancerDdosProfile:getCloudFloatingIpsItemLoadbalancerDdosProfile","description":"Loadbalancer advanced DDoS protection profile.\n"},"flavor":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancerFlavor:getCloudFloatingIpsItemLoadbalancerFlavor","description":"Load balancer flavor (if not default)\n"},"floatingIps":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancerFloatingIp:getCloudFloatingIpsItemLoadbalancerFloatingIp"},"description":"List of assigned floating IPs\n"},"id":{"type":"string","description":"Load balancer ID\n"},"listeners":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancerListener:getCloudFloatingIpsItemLoadbalancerListener"},"description":"Load balancer listeners\n"},"logging":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancerLogging:getCloudFloatingIpsItemLoadbalancerLogging","description":"Logging configuration\n"},"name":{"type":"string","description":"Load balancer name\n"},"operatingStatus":{"type":"string","description":"Load balancer operating status\nAvailable values: \"DEGRADED\", \"DRAINING\", \"ERROR\", \"NO_MONITOR\", \"OFFLINE\", \"ONLINE\".\n"},"preferredConnectivity":{"type":"string","description":"Preferred option to establish connectivity between load balancer and its pools members\nAvailable values: \"L2\", \"L3\".\n"},"projectId":{"type":"number","description":"Project ID\n"},"provisioningStatus":{"type":"string","description":"Load balancer lifecycle status\nAvailable values: \"ACTIVE\", \"DELETED\", \"ERROR\", \"PENDING*CREATE\", \"PENDING*DELETE\", \"PENDING_UPDATE\".\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"stats":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancerStats:getCloudFloatingIpsItemLoadbalancerStats","description":"Statistics of load balancer.\n"},"tagsV2s":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancerTagsV2:getCloudFloatingIpsItemLoadbalancerTagsV2"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the load balancer was last updated\n"},"vipAddress":{"type":"string","description":"Load balancer IP address\n"},"vipFqdn":{"type":"string","description":"Fully qualified domain name for the load balancer VIP\n"},"vipIpFamily":{"type":"string","description":"Load balancer IP family\nAvailable values: \"dual\", \"ipv4\", \"ipv6\".\n"},"vipPortId":{"type":"string","description":"The ID of the Virtual IP (VIP) port.\n"},"vrrpIps":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancerVrrpIp:getCloudFloatingIpsItemLoadbalancerVrrpIp"},"description":"List of VRRP IP addresses\n"}},"type":"object","required":["additionalVips","adminStateUp","createdAt","creatorTaskId","ddosProfile","flavor","floatingIps","id","listeners","logging","name","operatingStatus","preferredConnectivity","projectId","provisioningStatus","region","regionId","stats","tagsV2s","updatedAt","vipAddress","vipFqdn","vipIpFamily","vipPortId","vrrpIps"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancerAdditionalVip:getCloudFloatingIpsItemLoadbalancerAdditionalVip":{"properties":{"ipAddress":{"type":"string","description":"IP address\n"},"subnetId":{"type":"string","description":"Subnet UUID\n"}},"type":"object","required":["ipAddress","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancerDdosProfile:getCloudFloatingIpsItemLoadbalancerDdosProfile":{"properties":{"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancerDdosProfileField:getCloudFloatingIpsItemLoadbalancerDdosProfileField"},"description":"List of configured field values for the protection profile\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection profile\n"},"options":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancerDdosProfileOptions:getCloudFloatingIpsItemLoadbalancerDdosProfileOptions","description":"Configuration options controlling profile activation and BGP routing\n"},"profileTemplate":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancerDdosProfileProfileTemplate:getCloudFloatingIpsItemLoadbalancerDdosProfileProfileTemplate","description":"Complete template configuration data used for this profile\n"},"profileTemplateDescription":{"type":"string","description":"Detailed description of the protection template used for this profile\n"},"protocols":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancerDdosProfileProtocol:getCloudFloatingIpsItemLoadbalancerDdosProfileProtocol"},"description":"List of network protocols and ports configured for protection\n"},"site":{"type":"string","description":"Geographic site identifier where the protection is deployed\n"},"status":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancerDdosProfileStatus:getCloudFloatingIpsItemLoadbalancerDdosProfileStatus","description":"Current operational status and any error information for the profile\n"}},"type":"object","required":["fields","id","options","profileTemplate","profileTemplateDescription","protocols","site","status"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancerDdosProfileField:getCloudFloatingIpsItemLoadbalancerDdosProfileField":{"properties":{"baseField":{"type":"number","description":"ID of DDoS profile field\n"},"default":{"type":"string","description":"Predefined default value for the field if not specified\n"},"description":{"type":"string","description":"Detailed description explaining the field's purpose and usage guidelines\n"},"fieldName":{"type":"string","description":"Name of DDoS profile field\n"},"fieldType":{"type":"string","description":"Data type classification of the field (e.g., string, integer, array)\n"},"fieldValue":{"type":"string","description":"Complex value. Only one of 'value' or 'field_value' must be specified.\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection field\n"},"name":{"type":"string","description":"Human-readable name of the protection field\n"},"required":{"type":"boolean","description":"Indicates whether this field must be provided when creating a protection profile\n"},"validationSchema":{"type":"string","description":"JSON schema defining validation rules and constraints for the field value\n"},"value":{"type":"string","description":"Basic type value. Only one of 'value' or 'field_value' must be specified.\n"}},"type":"object","required":["baseField","default","description","fieldName","fieldType","fieldValue","id","name","required","validationSchema","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancerDdosProfileOptions:getCloudFloatingIpsItemLoadbalancerDdosProfileOptions":{"properties":{"active":{"type":"boolean","description":"Controls whether the DDoS protection profile is enabled and actively protecting the resource\n"},"bgp":{"type":"boolean","description":"Enables Border Gateway Protocol (BGP) routing for DDoS protection traffic\n"}},"type":"object","required":["active","bgp"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancerDdosProfileProfileTemplate:getCloudFloatingIpsItemLoadbalancerDdosProfileProfileTemplate":{"properties":{"description":{"type":"string","description":"Detailed description explaining the template's purpose and use cases\n"},"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancerDdosProfileProfileTemplateField:getCloudFloatingIpsItemLoadbalancerDdosProfileProfileTemplateField"},"description":"List of configurable fields that define the template's protection parameters\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection template\n"},"name":{"type":"string","description":"Human-readable name of the protection template\n"}},"type":"object","required":["description","fields","id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancerDdosProfileProfileTemplateField:getCloudFloatingIpsItemLoadbalancerDdosProfileProfileTemplateField":{"properties":{"default":{"type":"string","description":"Predefined default value for the field if not specified\n"},"description":{"type":"string","description":"Detailed description explaining the field's purpose and usage guidelines\n"},"fieldType":{"type":"string","description":"Data type classification of the field (e.g., string, integer, array)\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection field\n"},"name":{"type":"string","description":"Human-readable name of the protection field\n"},"required":{"type":"boolean","description":"Indicates whether this field must be provided when creating a protection profile\n"},"validationSchema":{"type":"string","description":"JSON schema defining validation rules and constraints for the field value\n"}},"type":"object","required":["default","description","fieldType","id","name","required","validationSchema"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancerDdosProfileProtocol:getCloudFloatingIpsItemLoadbalancerDdosProfileProtocol":{"properties":{"port":{"type":"string","description":"Network port number for which protocols are configured\n"},"protocols":{"type":"array","items":{"type":"string"},"description":"List of network protocols enabled on the specified port\n"}},"type":"object","required":["port","protocols"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancerDdosProfileStatus:getCloudFloatingIpsItemLoadbalancerDdosProfileStatus":{"properties":{"errorDescription":{"type":"string","description":"Detailed error message describing any issues with the profile operation\n"},"status":{"type":"string","description":"Current operational status of the DDoS protection profile\n"}},"type":"object","required":["errorDescription","status"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancerFlavor:getCloudFloatingIpsItemLoadbalancerFlavor":{"properties":{"flavorId":{"type":"string","description":"Flavor ID is the same as name\n"},"flavorName":{"type":"string","description":"Flavor name\n"},"ram":{"type":"number","description":"RAM size in MiB\n"},"vcpus":{"type":"number","description":"Virtual CPU count. For bare metal flavors, it's a physical CPU count\n"}},"type":"object","required":["flavorId","flavorName","ram","vcpus"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancerFloatingIp:getCloudFloatingIpsItemLoadbalancerFloatingIp":{"properties":{"createdAt":{"type":"string","description":"Datetime when the floating IP was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"fixedIpAddress":{"type":"string","description":"IP address of the port the floating IP is attached to\n"},"floatingIpAddress":{"type":"string","description":"IP Address of the floating IP\n"},"id":{"type":"string","description":"Floating IP ID\n"},"portId":{"type":"string","description":"Port ID the floating IP is attached to. The \u003cspan pulumi-lang-nodejs=\"`fixedIpAddress`\" pulumi-lang-dotnet=\"`FixedIpAddress`\" pulumi-lang-go=\"`fixedIpAddress`\" pulumi-lang-python=\"`fixed_ip_address`\" pulumi-lang-yaml=\"`fixedIpAddress`\" pulumi-lang-java=\"`fixedIpAddress`\"\u003e`fixed_ip_address`\u003c/span\u003e is the IP address of the port.\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"routerId":{"type":"string","description":"Router ID\n"},"status":{"type":"string","description":"Floating IP status. DOWN - unassigned (available). ACTIVE - attached to a port (in use). ERROR - error state.\nAvailable values: \"ACTIVE\", \"DOWN\", \"ERROR\".\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancerFloatingIpTag:getCloudFloatingIpsItemLoadbalancerFloatingIpTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the floating IP was last updated\n"}},"type":"object","required":["createdAt","creatorTaskId","fixedIpAddress","floatingIpAddress","id","portId","projectId","region","regionId","routerId","status","tags","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancerFloatingIpTag:getCloudFloatingIpsItemLoadbalancerFloatingIpTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancerListener:getCloudFloatingIpsItemLoadbalancerListener":{"properties":{"id":{"type":"string","description":"Listener ID\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancerLogging:getCloudFloatingIpsItemLoadbalancerLogging":{"properties":{"destinationRegionId":{"type":"number","description":"ID of the region in which the logs will be stored\n"},"enabled":{"type":"boolean","description":"Indicates if log streaming is enabled or disabled\n"},"retentionPolicy":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItemLoadbalancerLoggingRetentionPolicy:getCloudFloatingIpsItemLoadbalancerLoggingRetentionPolicy","description":"Logs retention policy\n"},"topicName":{"type":"string","description":"The topic name to stream logs to\n"}},"type":"object","required":["destinationRegionId","enabled","retentionPolicy","topicName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancerLoggingRetentionPolicy:getCloudFloatingIpsItemLoadbalancerLoggingRetentionPolicy":{"properties":{"period":{"type":"number","description":"Duration of days for which logs must be kept.\n"}},"type":"object","required":["period"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancerStats:getCloudFloatingIpsItemLoadbalancerStats":{"properties":{"activeConnections":{"type":"number","description":"Currently active connections\n"},"bytesIn":{"type":"number","description":"Total bytes received\n"},"bytesOut":{"type":"number","description":"Total bytes sent\n"},"requestErrors":{"type":"number","description":"Total requests that were unable to be fulfilled\n"},"totalConnections":{"type":"number","description":"Total connections handled\n"}},"type":"object","required":["activeConnections","bytesIn","bytesOut","requestErrors","totalConnections"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancerTagsV2:getCloudFloatingIpsItemLoadbalancerTagsV2":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemLoadbalancerVrrpIp:getCloudFloatingIpsItemLoadbalancerVrrpIp":{"properties":{"ipAddress":{"type":"string","description":"IP address\n"},"role":{"type":"string","description":"LoadBalancer instance role to which VRRP IP belong\nAvailable values: \"BACKUP\", \"MASTER\", \"STANDALONE\".\n"},"subnetId":{"type":"string","description":"Subnet UUID\n"}},"type":"object","required":["ipAddress","role","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudFloatingIpsItemTag:getCloudFloatingIpsItemTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuBaremetalClusterFindOneBy:getCloudGpuBaremetalClusterFindOneBy":{"properties":{"managedBies":{"type":"array","items":{"type":"string"},"description":"Specifies the entity responsible for managing the resource.\n"}},"type":"object","required":["managedBies"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuBaremetalClusterImageTag:getCloudGpuBaremetalClusterImageTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuBaremetalClusterServersSettings:getCloudGpuBaremetalClusterServersSettings":{"properties":{"fileShares":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuBaremetalClusterServersSettingsFileShare:getCloudGpuBaremetalClusterServersSettingsFileShare"},"description":"List of file shares mounted across the cluster.\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuBaremetalClusterServersSettingsInterface:getCloudGpuBaremetalClusterServersSettingsInterface"}},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuBaremetalClusterServersSettingsSecurityGroup:getCloudGpuBaremetalClusterServersSettingsSecurityGroup"},"description":"Security groups\n"},"sshKeyName":{"type":"string","description":"SSH key name\n"},"userData":{"type":"string","description":"Optional custom user data\n"}},"type":"object","required":["fileShares","interfaces","securityGroups","sshKeyName","userData"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuBaremetalClusterServersSettingsFileShare:getCloudGpuBaremetalClusterServersSettingsFileShare":{"properties":{"id":{"type":"string","description":"Unique identifier of the file share in UUID format.\n"},"mountPath":{"type":"string","description":"Absolute mount path inside the system where the file share will be mounted.\n"}},"type":"object","required":["id","mountPath"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuBaremetalClusterServersSettingsInterface:getCloudGpuBaremetalClusterServersSettingsInterface":{"properties":{"floatingIp":{"$ref":"#/types/gcore:index%2FgetCloudGpuBaremetalClusterServersSettingsInterfaceFloatingIp:getCloudGpuBaremetalClusterServersSettingsInterfaceFloatingIp","description":"Floating IP config for this subnet attachment\n"},"ipAddress":{"type":"string","description":"Fixed IP address\n"},"ipFamily":{"type":"string","description":"Which subnets should be selected: IPv4, IPv6, or use dual stack.\nAvailable values: \"dual\", \"ipv4\", \"ipv6\".\n"},"name":{"type":"string","description":"Interface name\n"},"networkId":{"type":"string","description":"Network ID the subnet belongs to. Port will be plugged in this network\n"},"subnetId":{"type":"string","description":"Port is assigned an IP address from this subnet\n"},"type":{"type":"string","description":"Available values: \"external\", \"subnet\", \u003cspan pulumi-lang-nodejs=\"\"anySubnet\"\" pulumi-lang-dotnet=\"\"AnySubnet\"\" pulumi-lang-go=\"\"anySubnet\"\" pulumi-lang-python=\"\"any_subnet\"\" pulumi-lang-yaml=\"\"anySubnet\"\" pulumi-lang-java=\"\"anySubnet\"\"\u003e\"any_subnet\"\u003c/span\u003e.\n"}},"type":"object","required":["floatingIp","ipAddress","ipFamily","name","networkId","subnetId","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuBaremetalClusterServersSettingsInterfaceFloatingIp:getCloudGpuBaremetalClusterServersSettingsInterfaceFloatingIp":{"properties":{"source":{"type":"string","description":"Available values: \"new\".\n"}},"type":"object","required":["source"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuBaremetalClusterServersSettingsSecurityGroup:getCloudGpuBaremetalClusterServersSettingsSecurityGroup":{"properties":{"id":{"type":"string","description":"Security group ID\n"},"name":{"type":"string","description":"Security group name\n"}},"type":"object","required":["id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuBaremetalClusterTag:getCloudGpuBaremetalClusterTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuBaremetalClustersItem:getCloudGpuBaremetalClustersItem":{"properties":{"createdAt":{"type":"string","description":"Cluster creation date time\n"},"flavor":{"type":"string","description":"Cluster flavor name\n"},"id":{"type":"string","description":"Cluster unique identifier\n"},"imageId":{"type":"string","description":"Image ID\n"},"managedBy":{"type":"string","description":"User type managing the resource\nAvailable values: \"k8s\", \"user\".\n"},"name":{"type":"string","description":"Cluster name\n"},"serversCount":{"type":"number","description":"Cluster servers count\n"},"serversIds":{"type":"array","items":{"type":"string"},"description":"List of cluster nodes\n"},"serversSettings":{"$ref":"#/types/gcore:index%2FgetCloudGpuBaremetalClustersItemServersSettings:getCloudGpuBaremetalClustersItemServersSettings"},"status":{"type":"string","description":"Cluster status\nAvailable values: \"active\", \"creating\", \"degraded\", \"deleting\", \"error\", \"rebooting\", \"rebuilding\", \"resizing\", \"shutoff\".\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuBaremetalClustersItemTag:getCloudGpuBaremetalClustersItemTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Cluster update date time\n"}},"type":"object","required":["createdAt","flavor","id","imageId","managedBy","name","serversCount","serversIds","serversSettings","status","tags","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuBaremetalClustersItemServersSettings:getCloudGpuBaremetalClustersItemServersSettings":{"properties":{"fileShares":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuBaremetalClustersItemServersSettingsFileShare:getCloudGpuBaremetalClustersItemServersSettingsFileShare"},"description":"List of file shares mounted across the cluster.\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuBaremetalClustersItemServersSettingsInterface:getCloudGpuBaremetalClustersItemServersSettingsInterface"}},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuBaremetalClustersItemServersSettingsSecurityGroup:getCloudGpuBaremetalClustersItemServersSettingsSecurityGroup"},"description":"Security groups\n"},"sshKeyName":{"type":"string","description":"SSH key name\n"},"userData":{"type":"string","description":"Optional custom user data\n"}},"type":"object","required":["fileShares","interfaces","securityGroups","sshKeyName","userData"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuBaremetalClustersItemServersSettingsFileShare:getCloudGpuBaremetalClustersItemServersSettingsFileShare":{"properties":{"id":{"type":"string","description":"Unique identifier of the file share in UUID format.\n"},"mountPath":{"type":"string","description":"Absolute mount path inside the system where the file share will be mounted.\n"}},"type":"object","required":["id","mountPath"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuBaremetalClustersItemServersSettingsInterface:getCloudGpuBaremetalClustersItemServersSettingsInterface":{"properties":{"floatingIp":{"$ref":"#/types/gcore:index%2FgetCloudGpuBaremetalClustersItemServersSettingsInterfaceFloatingIp:getCloudGpuBaremetalClustersItemServersSettingsInterfaceFloatingIp","description":"Floating IP config for this subnet attachment\n"},"ipAddress":{"type":"string","description":"Fixed IP address\n"},"ipFamily":{"type":"string","description":"Which subnets should be selected: IPv4, IPv6, or use dual stack.\nAvailable values: \"dual\", \"ipv4\", \"ipv6\".\n"},"name":{"type":"string","description":"Interface name\n"},"networkId":{"type":"string","description":"Network ID the subnet belongs to. Port will be plugged in this network\n"},"subnetId":{"type":"string","description":"Port is assigned an IP address from this subnet\n"},"type":{"type":"string","description":"Available values: \"external\", \"subnet\", \u003cspan pulumi-lang-nodejs=\"\"anySubnet\"\" pulumi-lang-dotnet=\"\"AnySubnet\"\" pulumi-lang-go=\"\"anySubnet\"\" pulumi-lang-python=\"\"any_subnet\"\" pulumi-lang-yaml=\"\"anySubnet\"\" pulumi-lang-java=\"\"anySubnet\"\"\u003e\"any_subnet\"\u003c/span\u003e.\n"}},"type":"object","required":["floatingIp","ipAddress","ipFamily","name","networkId","subnetId","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuBaremetalClustersItemServersSettingsInterfaceFloatingIp:getCloudGpuBaremetalClustersItemServersSettingsInterfaceFloatingIp":{"properties":{"source":{"type":"string","description":"Available values: \"new\".\n"}},"type":"object","required":["source"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuBaremetalClustersItemServersSettingsSecurityGroup:getCloudGpuBaremetalClustersItemServersSettingsSecurityGroup":{"properties":{"id":{"type":"string","description":"Security group ID\n"},"name":{"type":"string","description":"Security group name\n"}},"type":"object","required":["id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuBaremetalClustersItemTag:getCloudGpuBaremetalClustersItemTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClusterImageTag:getCloudGpuVirtualClusterImageTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClusterServersSettings:getCloudGpuVirtualClusterServersSettings":{"properties":{"fileShares":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClusterServersSettingsFileShare:getCloudGpuVirtualClusterServersSettingsFileShare"},"description":"List of file shares mounted across the cluster.\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClusterServersSettingsInterface:getCloudGpuVirtualClusterServersSettingsInterface"}},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClusterServersSettingsSecurityGroup:getCloudGpuVirtualClusterServersSettingsSecurityGroup"},"description":"Security groups\n"},"sshKeyName":{"type":"string","description":"SSH key name\n"},"userData":{"type":"string","description":"Optional custom user data\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClusterServersSettingsVolume:getCloudGpuVirtualClusterServersSettingsVolume"},"description":"List of volumes\n"}},"type":"object","required":["fileShares","interfaces","securityGroups","sshKeyName","userData","volumes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClusterServersSettingsFileShare:getCloudGpuVirtualClusterServersSettingsFileShare":{"properties":{"id":{"type":"string","description":"Unique identifier of the file share in UUID format.\n"},"mountPath":{"type":"string","description":"Absolute mount path inside the system where the file share will be mounted.\n"}},"type":"object","required":["id","mountPath"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClusterServersSettingsInterface:getCloudGpuVirtualClusterServersSettingsInterface":{"properties":{"floatingIp":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClusterServersSettingsInterfaceFloatingIp:getCloudGpuVirtualClusterServersSettingsInterfaceFloatingIp","description":"Floating IP config for this subnet attachment\n"},"ipAddress":{"type":"string","description":"Fixed IP address\n"},"ipFamily":{"type":"string","description":"Which subnets should be selected: IPv4, IPv6, or use dual stack.\nAvailable values: \"dual\", \"ipv4\", \"ipv6\".\n"},"name":{"type":"string","description":"Interface name\n"},"networkId":{"type":"string","description":"Network ID the subnet belongs to. Port will be plugged in this network\n"},"subnetId":{"type":"string","description":"Port is assigned an IP address from this subnet\n"},"type":{"type":"string","description":"Available values: \"external\", \"subnet\", \u003cspan pulumi-lang-nodejs=\"\"anySubnet\"\" pulumi-lang-dotnet=\"\"AnySubnet\"\" pulumi-lang-go=\"\"anySubnet\"\" pulumi-lang-python=\"\"any_subnet\"\" pulumi-lang-yaml=\"\"anySubnet\"\" pulumi-lang-java=\"\"anySubnet\"\"\u003e\"any_subnet\"\u003c/span\u003e.\n"}},"type":"object","required":["floatingIp","ipAddress","ipFamily","name","networkId","subnetId","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClusterServersSettingsInterfaceFloatingIp:getCloudGpuVirtualClusterServersSettingsInterfaceFloatingIp":{"properties":{"source":{"type":"string","description":"Available values: \"new\".\n"}},"type":"object","required":["source"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClusterServersSettingsSecurityGroup:getCloudGpuVirtualClusterServersSettingsSecurityGroup":{"properties":{"id":{"type":"string","description":"Security group ID\n"},"name":{"type":"string","description":"Security group name\n"}},"type":"object","required":["id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClusterServersSettingsVolume:getCloudGpuVirtualClusterServersSettingsVolume":{"properties":{"bootIndex":{"type":"number","description":"Boot index of the volume\n"},"deleteOnTermination":{"type":"boolean","description":"Flag indicating whether the volume is deleted on instance termination\n"},"imageId":{"type":"string","description":"Image ID for the volume\n"},"name":{"type":"string","description":"Volume name\n"},"size":{"type":"number","description":"Volume size in GiB\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClusterServersSettingsVolumeTag:getCloudGpuVirtualClusterServersSettingsVolumeTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"type":{"type":"string","description":"Volume type\nAvailable values: \"cold\", \"ssd*hiiops\", \"ssd*local\", \u003cspan pulumi-lang-nodejs=\"\"ssdLowlatency\"\" pulumi-lang-dotnet=\"\"SsdLowlatency\"\" pulumi-lang-go=\"\"ssdLowlatency\"\" pulumi-lang-python=\"\"ssd_lowlatency\"\" pulumi-lang-yaml=\"\"ssdLowlatency\"\" pulumi-lang-java=\"\"ssdLowlatency\"\"\u003e\"ssd_lowlatency\"\u003c/span\u003e, \"standard\", \"ultra\".\n"}},"type":"object","required":["bootIndex","deleteOnTermination","imageId","name","size","tags","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClusterServersSettingsVolumeTag:getCloudGpuVirtualClusterServersSettingsVolumeTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClusterTag:getCloudGpuVirtualClusterTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClustersItem:getCloudGpuVirtualClustersItem":{"properties":{"createdAt":{"type":"string","description":"Cluster creation date time\n"},"flavor":{"type":"string","description":"Cluster flavor name\n"},"id":{"type":"string","description":"Cluster unique identifier\n"},"name":{"type":"string","description":"Cluster name\n"},"serversCount":{"type":"number","description":"Cluster servers count\n"},"serversIds":{"type":"array","items":{"type":"string"},"description":"List of cluster nodes\n"},"serversSettings":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClustersItemServersSettings:getCloudGpuVirtualClustersItemServersSettings"},"status":{"type":"string","description":"Cluster status\nAvailable values: \"active\", \"creating\", \"degraded\", \"deleting\", \"error\", \"rebooting\", \"rebuilding\", \"resizing\", \"shutoff\".\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClustersItemTag:getCloudGpuVirtualClustersItemTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Cluster update date time\n"}},"type":"object","required":["createdAt","flavor","id","name","serversCount","serversIds","serversSettings","status","tags","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClustersItemServersSettings:getCloudGpuVirtualClustersItemServersSettings":{"properties":{"fileShares":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClustersItemServersSettingsFileShare:getCloudGpuVirtualClustersItemServersSettingsFileShare"},"description":"List of file shares mounted across the cluster.\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClustersItemServersSettingsInterface:getCloudGpuVirtualClustersItemServersSettingsInterface"}},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClustersItemServersSettingsSecurityGroup:getCloudGpuVirtualClustersItemServersSettingsSecurityGroup"},"description":"Security groups\n"},"sshKeyName":{"type":"string","description":"SSH key name\n"},"userData":{"type":"string","description":"Optional custom user data\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClustersItemServersSettingsVolume:getCloudGpuVirtualClustersItemServersSettingsVolume"},"description":"List of volumes\n"}},"type":"object","required":["fileShares","interfaces","securityGroups","sshKeyName","userData","volumes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClustersItemServersSettingsFileShare:getCloudGpuVirtualClustersItemServersSettingsFileShare":{"properties":{"id":{"type":"string","description":"Unique identifier of the file share in UUID format.\n"},"mountPath":{"type":"string","description":"Absolute mount path inside the system where the file share will be mounted.\n"}},"type":"object","required":["id","mountPath"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClustersItemServersSettingsInterface:getCloudGpuVirtualClustersItemServersSettingsInterface":{"properties":{"floatingIp":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClustersItemServersSettingsInterfaceFloatingIp:getCloudGpuVirtualClustersItemServersSettingsInterfaceFloatingIp","description":"Floating IP config for this subnet attachment\n"},"ipAddress":{"type":"string","description":"Fixed IP address\n"},"ipFamily":{"type":"string","description":"Which subnets should be selected: IPv4, IPv6, or use dual stack.\nAvailable values: \"dual\", \"ipv4\", \"ipv6\".\n"},"name":{"type":"string","description":"Interface name\n"},"networkId":{"type":"string","description":"Network ID the subnet belongs to. Port will be plugged in this network\n"},"subnetId":{"type":"string","description":"Port is assigned an IP address from this subnet\n"},"type":{"type":"string","description":"Available values: \"external\", \"subnet\", \u003cspan pulumi-lang-nodejs=\"\"anySubnet\"\" pulumi-lang-dotnet=\"\"AnySubnet\"\" pulumi-lang-go=\"\"anySubnet\"\" pulumi-lang-python=\"\"any_subnet\"\" pulumi-lang-yaml=\"\"anySubnet\"\" pulumi-lang-java=\"\"anySubnet\"\"\u003e\"any_subnet\"\u003c/span\u003e.\n"}},"type":"object","required":["floatingIp","ipAddress","ipFamily","name","networkId","subnetId","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClustersItemServersSettingsInterfaceFloatingIp:getCloudGpuVirtualClustersItemServersSettingsInterfaceFloatingIp":{"properties":{"source":{"type":"string","description":"Available values: \"new\".\n"}},"type":"object","required":["source"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClustersItemServersSettingsSecurityGroup:getCloudGpuVirtualClustersItemServersSettingsSecurityGroup":{"properties":{"id":{"type":"string","description":"Security group ID\n"},"name":{"type":"string","description":"Security group name\n"}},"type":"object","required":["id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClustersItemServersSettingsVolume:getCloudGpuVirtualClustersItemServersSettingsVolume":{"properties":{"bootIndex":{"type":"number","description":"Boot index of the volume\n"},"deleteOnTermination":{"type":"boolean","description":"Flag indicating whether the volume is deleted on instance termination\n"},"imageId":{"type":"string","description":"Image ID for the volume\n"},"name":{"type":"string","description":"Volume name\n"},"size":{"type":"number","description":"Volume size in GiB\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClustersItemServersSettingsVolumeTag:getCloudGpuVirtualClustersItemServersSettingsVolumeTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"type":{"type":"string","description":"Volume type\nAvailable values: \"cold\", \"ssd*hiiops\", \"ssd*local\", \u003cspan pulumi-lang-nodejs=\"\"ssdLowlatency\"\" pulumi-lang-dotnet=\"\"SsdLowlatency\"\" pulumi-lang-go=\"\"ssdLowlatency\"\" pulumi-lang-python=\"\"ssd_lowlatency\"\" pulumi-lang-yaml=\"\"ssdLowlatency\"\" pulumi-lang-java=\"\"ssdLowlatency\"\"\u003e\"ssd_lowlatency\"\u003c/span\u003e, \"standard\", \"ultra\".\n"}},"type":"object","required":["bootIndex","deleteOnTermination","imageId","name","size","tags","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClustersItemServersSettingsVolumeTag:getCloudGpuVirtualClustersItemServersSettingsVolumeTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudGpuVirtualClustersItemTag:getCloudGpuVirtualClustersItemTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInferenceRegistryCredentialsItem:getCloudInferenceRegistryCredentialsItem":{"properties":{"id":{"type":"string","description":"Registry credential name.\n"},"name":{"type":"string","description":"Registry credential name.\n"},"projectId":{"type":"number","description":"Project ID to which the inference registry credentials belongs.\n"},"registryUrl":{"type":"string","description":"Registry URL.\n"},"username":{"type":"string","description":"Registry username.\n"}},"type":"object","required":["id","name","projectId","registryUrl","username"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInferenceSecretData:getCloudInferenceSecretData":{"properties":{"awsAccessKeyId":{"type":"string","description":"AWS IAM key ID.\n"},"awsSecretAccessKey":{"type":"string","description":"AWS IAM secret key.\n"}},"type":"object","required":["awsAccessKeyId","awsSecretAccessKey"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInferenceSecretsItem:getCloudInferenceSecretsItem":{"properties":{"data":{"$ref":"#/types/gcore:index%2FgetCloudInferenceSecretsItemData:getCloudInferenceSecretsItemData","description":"Secret data.\n"},"id":{"type":"string","description":"Secret name.\n"},"name":{"type":"string","description":"Secret name.\n"},"type":{"type":"string","description":"Secret type.\n"}},"type":"object","required":["data","id","name","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInferenceSecretsItemData:getCloudInferenceSecretsItemData":{"properties":{"awsAccessKeyId":{"type":"string","description":"AWS IAM key ID.\n"},"awsSecretAccessKey":{"type":"string","description":"AWS IAM secret key.\n"}},"type":"object","required":["awsAccessKeyId","awsSecretAccessKey"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceAddresses:getCloudInstanceAddresses":{"properties":{"addr":{"type":"string"},"interfaceName":{"type":"string"},"subnetId":{"type":"string","description":"Interface subnet id\n"},"subnetName":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["addr","interfaceName","subnetId","subnetName","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceBlackholePort:getCloudInstanceBlackholePort":{"properties":{"alarmEnd":{"type":"string","description":"A date-time string giving the time that the alarm ended. If not yet ended, time will be given as 0001-01-01T00:00:00Z\n"},"alarmStart":{"type":"string","description":"A date-time string giving the time that the alarm started\n"},"alarmState":{"type":"string","description":"Current state of alarm\nAvailable values: \"ACK*REQ\", \"ALARM\", \"ARCHIVED\", \"CLEAR\", \"CLEARING\", \"CLEARING*FAIL\", \"END*GRACE\", \"END*WAIT\", \"MANUAL*CLEAR\", \"MANUAL*CLEARING\", \"MANUAL*CLEARING*FAIL\", \"MANUAL*MITIGATING\", \"MANUAL*STARTING\", \"MANUAL*STARTING*FAIL\", \"MITIGATING\", \"STARTING\", \"STARTING*FAIL\", \"START*WAIT\", \"ack*req\", \"alarm\", \"archived\", \"clear\", \"clearing\", \"clearing*fail\", \"end*grace\", \"end*wait\", \"manual*clear\", \"manual*clearing\", \"manual*clearing*fail\", \"manual*mitigating\", \"manual*starting\", \"manual*starting*fail\", \"mitigating\", \"start*wait\", \"starting\", \"starting*fail\".\n"},"alertDuration":{"type":"string","description":"Total alert duration\n"},"destinationIp":{"type":"string","description":"Notification destination IP address\n"},"id":{"type":"number"}},"type":"object","required":["alarmEnd","alarmStart","alarmState","alertDuration","destinationIp","id"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceDdosProfile:getCloudInstanceDdosProfile":{"properties":{"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudInstanceDdosProfileField:getCloudInstanceDdosProfileField"},"description":"List of configured field values for the protection profile\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection profile\n"},"options":{"$ref":"#/types/gcore:index%2FgetCloudInstanceDdosProfileOptions:getCloudInstanceDdosProfileOptions","description":"Configuration options controlling profile activation and BGP routing\n"},"profileTemplate":{"$ref":"#/types/gcore:index%2FgetCloudInstanceDdosProfileProfileTemplate:getCloudInstanceDdosProfileProfileTemplate","description":"Complete template configuration data used for this profile\n"},"profileTemplateDescription":{"type":"string","description":"Detailed description of the protection template used for this profile\n"},"protocols":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudInstanceDdosProfileProtocol:getCloudInstanceDdosProfileProtocol"},"description":"List of network protocols and ports configured for protection\n"},"site":{"type":"string","description":"Geographic site identifier where the protection is deployed\n"},"status":{"$ref":"#/types/gcore:index%2FgetCloudInstanceDdosProfileStatus:getCloudInstanceDdosProfileStatus","description":"Current operational status and any error information for the profile\n"}},"type":"object","required":["fields","id","options","profileTemplate","profileTemplateDescription","protocols","site","status"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceDdosProfileField:getCloudInstanceDdosProfileField":{"properties":{"baseField":{"type":"number","description":"ID of DDoS profile field\n"},"default":{"type":"string","description":"Predefined default value for the field if not specified\n"},"description":{"type":"string","description":"Detailed description explaining the field's purpose and usage guidelines\n"},"fieldName":{"type":"string","description":"Name of DDoS profile field\n"},"fieldType":{"type":"string","description":"Data type classification of the field (e.g., string, integer, array)\n"},"fieldValue":{"type":"string","description":"Complex value. Only one of 'value' or 'field_value' must be specified.\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection field\n"},"name":{"type":"string","description":"Human-readable name of the protection field\n"},"required":{"type":"boolean","description":"Indicates whether this field must be provided when creating a protection profile\n"},"validationSchema":{"type":"string","description":"JSON schema defining validation rules and constraints for the field value\n"},"value":{"type":"string","description":"Basic type value. Only one of 'value' or 'field_value' must be specified.\n"}},"type":"object","required":["baseField","default","description","fieldName","fieldType","fieldValue","id","name","required","validationSchema","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceDdosProfileOptions:getCloudInstanceDdosProfileOptions":{"properties":{"active":{"type":"boolean","description":"Controls whether the DDoS protection profile is enabled and actively protecting the resource\n"},"bgp":{"type":"boolean","description":"Enables Border Gateway Protocol (BGP) routing for DDoS protection traffic\n"}},"type":"object","required":["active","bgp"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceDdosProfileProfileTemplate:getCloudInstanceDdosProfileProfileTemplate":{"properties":{"description":{"type":"string","description":"Detailed description explaining the template's purpose and use cases\n"},"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudInstanceDdosProfileProfileTemplateField:getCloudInstanceDdosProfileProfileTemplateField"},"description":"List of configurable fields that define the template's protection parameters\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection template\n"},"name":{"type":"string","description":"Human-readable name of the protection template\n"}},"type":"object","required":["description","fields","id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceDdosProfileProfileTemplateField:getCloudInstanceDdosProfileProfileTemplateField":{"properties":{"default":{"type":"string","description":"Predefined default value for the field if not specified\n"},"description":{"type":"string","description":"Detailed description explaining the field's purpose and usage guidelines\n"},"fieldType":{"type":"string","description":"Data type classification of the field (e.g., string, integer, array)\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection field\n"},"name":{"type":"string","description":"Human-readable name of the protection field\n"},"required":{"type":"boolean","description":"Indicates whether this field must be provided when creating a protection profile\n"},"validationSchema":{"type":"string","description":"JSON schema defining validation rules and constraints for the field value\n"}},"type":"object","required":["default","description","fieldType","id","name","required","validationSchema"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceDdosProfileProtocol:getCloudInstanceDdosProfileProtocol":{"properties":{"port":{"type":"string","description":"Network port number for which protocols are configured\n"},"protocols":{"type":"array","items":{"type":"string"},"description":"List of network protocols enabled on the specified port\n"}},"type":"object","required":["port","protocols"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceDdosProfileStatus:getCloudInstanceDdosProfileStatus":{"properties":{"errorDescription":{"type":"string","description":"Detailed error message describing any issues with the profile operation\n"},"status":{"type":"string","description":"Current operational status of the DDoS protection profile\n"}},"type":"object","required":["errorDescription","status"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceFindOneBy:getCloudInstanceFindOneBy":{"properties":{"availableFloating":{"type":"boolean","description":"Only show instances which are able to handle floating address\n"},"changesBefore":{"type":"string","description":"Filters the instances by a date and time stamp when the instances last changed.\n"},"changesSince":{"type":"string","description":"Filters the instances by a date and time stamp when the instances last changed status.\n"},"excludeFlavorPrefix":{"type":"string","description":"Exclude instances with specified flavor prefix\n"},"excludeSecgroup":{"type":"string","description":"Exclude instances with specified security group name\n"},"flavorId":{"type":"string","description":"Filter out instances by \u003cspan pulumi-lang-nodejs=\"`flavorId`\" pulumi-lang-dotnet=\"`FlavorId`\" pulumi-lang-go=\"`flavorId`\" pulumi-lang-python=\"`flavor_id`\" pulumi-lang-yaml=\"`flavorId`\" pulumi-lang-java=\"`flavorId`\"\u003e`flavor_id`\u003c/span\u003e. Flavor id must match exactly.\n"},"flavorPrefix":{"type":"string","description":"Filter out instances by \u003cspan pulumi-lang-nodejs=\"`flavorPrefix`\" pulumi-lang-dotnet=\"`FlavorPrefix`\" pulumi-lang-go=\"`flavorPrefix`\" pulumi-lang-python=\"`flavor_prefix`\" pulumi-lang-yaml=\"`flavorPrefix`\" pulumi-lang-java=\"`flavorPrefix`\"\u003e`flavor_prefix`\u003c/span\u003e.\n"},"includeAi":{"type":"boolean","description":"Include GPU clusters' servers\n","deprecationMessage":"Deprecated"},"includeBaremetal":{"type":"boolean","description":"Include bare metal servers. Please, use `GET /v1/bminstances/` instead\n","deprecationMessage":"Deprecated"},"includeK8s":{"type":"boolean","description":"Include managed k8s worker nodes\n"},"ip":{"type":"string","description":"An IPv4 address to filter results by. Note: partial matches are allowed. For example, searching for 192.168.0.1 will return 192.168.0.1, 192.168.0.10, 192.168.0.110, and so on.\n"},"name":{"type":"string","description":"Filter instances by name. You can provide a full or partial name, instances with matching names will be returned. For example, entering 'test' will return all instances that contain 'test' in their name.\n"},"onlyIsolated":{"type":"boolean","description":"Include only isolated instances\n"},"onlyWithFixedExternalIp":{"type":"boolean","description":"Return bare metals only with external fixed IP addresses.\n"},"orderBy":{"type":"string","description":"Order by field and direction.\nAvailable values: \"created.asc\", \"created.desc\", \"name.asc\", \"name.desc\", \"status.asc\", \"status.desc\".\n"},"profileName":{"type":"string","description":"Filter result by ddos protection profile name. Effective only with \u003cspan pulumi-lang-nodejs=\"`withDdos`\" pulumi-lang-dotnet=\"`WithDdos`\" pulumi-lang-go=\"`withDdos`\" pulumi-lang-python=\"`with_ddos`\" pulumi-lang-yaml=\"`withDdos`\" pulumi-lang-java=\"`withDdos`\"\u003e`with_ddos`\u003c/span\u003e set to true.\n"},"protectionStatus":{"type":"string","description":"Filter result by DDoS \u003cspan pulumi-lang-nodejs=\"`protectionStatus`\" pulumi-lang-dotnet=\"`ProtectionStatus`\" pulumi-lang-go=\"`protectionStatus`\" pulumi-lang-python=\"`protection_status`\" pulumi-lang-yaml=\"`protectionStatus`\" pulumi-lang-java=\"`protectionStatus`\"\u003e`protection_status`\u003c/span\u003e. if parameter is provided. Effective only with \u003cspan pulumi-lang-nodejs=\"`withDdos`\" pulumi-lang-dotnet=\"`WithDdos`\" pulumi-lang-go=\"`withDdos`\" pulumi-lang-python=\"`with_ddos`\" pulumi-lang-yaml=\"`withDdos`\" pulumi-lang-java=\"`withDdos`\"\u003e`with_ddos`\u003c/span\u003e set to true. (Active, Queued or Error)\nAvailable values: \"Active\", \"Queued\", \"Error\".\n"},"status":{"type":"string","description":"Filters instances by status.\nAvailable values: \"ACTIVE\", \"BUILD\", \"ERROR\", \"HARD*REBOOT\", \"MIGRATING\", \"PAUSED\", \"REBOOT\", \"REBUILD\", \"RESIZE\", \"REVERT*RESIZE\", \"SHELVED\", \"SHELVED*OFFLOADED\", \"SHUTOFF\", \"SOFT*DELETED\", \"SUSPENDED\", \"VERIFY_RESIZE\".\n"},"tagKeyValue":{"type":"string","description":"Optional. Filter by tag key-value pairs.\n"},"tagValues":{"type":"array","items":{"type":"string"},"description":"Optional. Filter by tag values. ?\u003cspan pulumi-lang-nodejs=\"`tagValue`\" pulumi-lang-dotnet=\"`TagValue`\" pulumi-lang-go=\"`tagValue`\" pulumi-lang-python=\"`tag_value`\" pulumi-lang-yaml=\"`tagValue`\" pulumi-lang-java=\"`tagValue`\"\u003e`tag_value`\u003c/span\u003e=value1\u0026\u003cspan pulumi-lang-nodejs=\"`tagValue`\" pulumi-lang-dotnet=\"`TagValue`\" pulumi-lang-go=\"`tagValue`\" pulumi-lang-python=\"`tag_value`\" pulumi-lang-yaml=\"`tagValue`\" pulumi-lang-java=\"`tagValue`\"\u003e`tag_value`\u003c/span\u003e=value2\n"},"typeDdosProfile":{"type":"string","description":"Return bare metals either only with advanced or only basic DDoS protection. Effective only with \u003cspan pulumi-lang-nodejs=\"`withDdos`\" pulumi-lang-dotnet=\"`WithDdos`\" pulumi-lang-go=\"`withDdos`\" pulumi-lang-python=\"`with_ddos`\" pulumi-lang-yaml=\"`withDdos`\" pulumi-lang-java=\"`withDdos`\"\u003e`with_ddos`\u003c/span\u003e set to true. (advanced or basic)\nAvailable values: \"basic\", \"advanced\".\n"},"uuid":{"type":"string","description":"Filter the server list result by the UUID of the server. Allowed UUID part\n"},"withDdos":{"type":"boolean","description":"Include DDoS profile information in the response when 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. Otherwise, the \u003cspan pulumi-lang-nodejs=\"`ddosProfile`\" pulumi-lang-dotnet=\"`DdosProfile`\" pulumi-lang-go=\"`ddosProfile`\" pulumi-lang-python=\"`ddos_profile`\" pulumi-lang-yaml=\"`ddosProfile`\" pulumi-lang-java=\"`ddosProfile`\"\u003e`ddos_profile`\u003c/span\u003e field in the response is \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e by default.\n"},"withInterfacesName":{"type":"boolean","description":"Include \u003cspan pulumi-lang-nodejs=\"`interfaceName`\" pulumi-lang-dotnet=\"`InterfaceName`\" pulumi-lang-go=\"`interfaceName`\" pulumi-lang-python=\"`interface_name`\" pulumi-lang-yaml=\"`interfaceName`\" pulumi-lang-java=\"`interfaceName`\"\u003e`interface_name`\u003c/span\u003e in the addresses\n"}},"type":"object","required":["includeAi","includeBaremetal","includeK8s","onlyIsolated","orderBy","withDdos","withInterfacesName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceFixedIpAssignment:getCloudInstanceFixedIpAssignment":{"properties":{"external":{"type":"boolean","description":"Is network external\n"},"ipAddress":{"type":"string","description":"Ip address\n"},"subnetId":{"type":"string","description":"Interface subnet id\n"}},"type":"object","required":["external","ipAddress","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceFlavor:getCloudInstanceFlavor":{"properties":{"architecture":{"type":"string","description":"CPU architecture\n"},"flavorId":{"type":"string","description":"Flavor ID is the same as name\n"},"flavorName":{"type":"string","description":"Flavor name\n"},"hardwareDescription":{"$ref":"#/types/gcore:index%2FgetCloudInstanceFlavorHardwareDescription:getCloudInstanceFlavorHardwareDescription","description":"Additional hardware description\n"},"osType":{"type":"string","description":"Flavor operating system\n"},"ram":{"type":"number","description":"RAM size in MiB\n"},"resourceClass":{"type":"string","description":"Flavor resource class for mapping to hardware capacity\n"},"vcpus":{"type":"number","description":"Virtual CPU count. For bare metal flavors, it's a physical CPU count\n"}},"type":"object","required":["architecture","flavorId","flavorName","hardwareDescription","osType","ram","resourceClass","vcpus"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceFlavorHardwareDescription:getCloudInstanceFlavorHardwareDescription":{"properties":{"cpu":{"type":"string","description":"Human-readable CPU description\n"},"disk":{"type":"string","description":"Human-readable disk description\n"},"gpu":{"type":"string","description":"Human-readable GPU description\n"},"license":{"type":"string","description":"If the flavor is licensed, this field contains the license type\n"},"network":{"type":"string","description":"Human-readable NIC description\n"},"ram":{"type":"string","description":"RAM description\n"},"vcpus":{"type":"string","description":"CPU description\n"}},"type":"object","required":["cpu","disk","gpu","license","network","ram","vcpus"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceImageTag:getCloudInstanceImageTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceInstanceIsolation:getCloudInstanceInstanceIsolation":{"properties":{"reason":{"type":"string","description":"The reason of instance isolation if it is isolated from external internet.\n"}},"type":"object","required":["reason"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceSecurityGroup:getCloudInstanceSecurityGroup":{"properties":{"name":{"type":"string","description":"Name.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceTag:getCloudInstanceTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstanceVolume:getCloudInstanceVolume":{"properties":{"deleteOnTermination":{"type":"boolean","description":"Whether the volume is deleted together with the VM\n"},"id":{"type":"string","description":"Volume ID\n"}},"type":"object","required":["deleteOnTermination","id"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstancesItem:getCloudInstancesItem":{"properties":{"addresses":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudInstancesItemAddresses:getCloudInstancesItemAddresses"}},"description":"Map of \u003cspan pulumi-lang-nodejs=\"`networkName`\" pulumi-lang-dotnet=\"`NetworkName`\" pulumi-lang-go=\"`networkName`\" pulumi-lang-python=\"`network_name`\" pulumi-lang-yaml=\"`networkName`\" pulumi-lang-java=\"`networkName`\"\u003e`network_name`\u003c/span\u003e to list of addresses in that network\n"},"blackholePorts":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudInstancesItemBlackholePort:getCloudInstancesItemBlackholePort"},"description":"IP addresses of the instances that are blackholed by DDoS mitigation system\n"},"createdAt":{"type":"string","description":"Datetime when instance was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"ddosProfile":{"$ref":"#/types/gcore:index%2FgetCloudInstancesItemDdosProfile:getCloudInstancesItemDdosProfile","description":"Advanced DDoS protection profile. It is always \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e if query parameter `with_ddos=true` is not set.\n"},"fixedIpAssignments":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudInstancesItemFixedIpAssignment:getCloudInstancesItemFixedIpAssignment"},"description":"Fixed IP assigned to instance\n"},"flavor":{"$ref":"#/types/gcore:index%2FgetCloudInstancesItemFlavor:getCloudInstancesItemFlavor","description":"Flavor\n"},"id":{"type":"string","description":"Instance ID\n"},"instanceDescription":{"type":"string","description":"Instance description\n"},"instanceIsolation":{"$ref":"#/types/gcore:index%2FgetCloudInstancesItemInstanceIsolation:getCloudInstancesItemInstanceIsolation","description":"Instance isolation information\n"},"name":{"type":"string","description":"Instance name\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudInstancesItemSecurityGroup:getCloudInstancesItemSecurityGroup"},"description":"Security groups\n"},"sshKeyName":{"type":"string","description":"SSH key assigned to instance\n"},"status":{"type":"string","description":"Instance status\nAvailable values: \"ACTIVE\", \"BUILD\", \"DELETED\", \"ERROR\", \"HARD*REBOOT\", \"MIGRATING\", \"PASSWORD\", \"PAUSED\", \"REBOOT\", \"REBUILD\", \"RESCUE\", \"RESIZE\", \"REVERT*RESIZE\", \"SHELVED\", \"SHELVED*OFFLOADED\", \"SHUTOFF\", \"SOFT*DELETED\", \"SUSPENDED\", \"UNKNOWN\", \"VERIFY_RESIZE\".\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudInstancesItemTag:getCloudInstancesItemTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"taskState":{"type":"string","description":"Task state\n"},"vmState":{"type":"string","description":"Virtual machine state (active)\nAvailable values: \"active\", \"building\", \"deleted\", \"error\", \"paused\", \"rescued\", \"resized\", \"shelved\", \u003cspan pulumi-lang-nodejs=\"\"shelvedOffloaded\"\" pulumi-lang-dotnet=\"\"ShelvedOffloaded\"\" pulumi-lang-go=\"\"shelvedOffloaded\"\" pulumi-lang-python=\"\"shelved_offloaded\"\" pulumi-lang-yaml=\"\"shelvedOffloaded\"\" pulumi-lang-java=\"\"shelvedOffloaded\"\"\u003e\"shelved_offloaded\"\u003c/span\u003e, \"soft-deleted\", \"stopped\", \"suspended\".\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudInstancesItemVolume:getCloudInstancesItemVolume"},"description":"List of volumes\n"}},"type":"object","required":["addresses","blackholePorts","createdAt","creatorTaskId","ddosProfile","fixedIpAssignments","flavor","id","instanceDescription","instanceIsolation","name","projectId","region","regionId","securityGroups","sshKeyName","status","tags","taskState","vmState","volumes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstancesItemAddresses:getCloudInstancesItemAddresses":{"properties":{"addr":{"type":"string"},"interfaceName":{"type":"string"},"subnetId":{"type":"string","description":"Interface subnet id\n"},"subnetName":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["addr","interfaceName","subnetId","subnetName","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstancesItemBlackholePort:getCloudInstancesItemBlackholePort":{"properties":{"alarmEnd":{"type":"string","description":"A date-time string giving the time that the alarm ended. If not yet ended, time will be given as 0001-01-01T00:00:00Z\n"},"alarmStart":{"type":"string","description":"A date-time string giving the time that the alarm started\n"},"alarmState":{"type":"string","description":"Current state of alarm\nAvailable values: \"ACK*REQ\", \"ALARM\", \"ARCHIVED\", \"CLEAR\", \"CLEARING\", \"CLEARING*FAIL\", \"END*GRACE\", \"END*WAIT\", \"MANUAL*CLEAR\", \"MANUAL*CLEARING\", \"MANUAL*CLEARING*FAIL\", \"MANUAL*MITIGATING\", \"MANUAL*STARTING\", \"MANUAL*STARTING*FAIL\", \"MITIGATING\", \"STARTING\", \"STARTING*FAIL\", \"START*WAIT\", \"ack*req\", \"alarm\", \"archived\", \"clear\", \"clearing\", \"clearing*fail\", \"end*grace\", \"end*wait\", \"manual*clear\", \"manual*clearing\", \"manual*clearing*fail\", \"manual*mitigating\", \"manual*starting\", \"manual*starting*fail\", \"mitigating\", \"start*wait\", \"starting\", \"starting*fail\".\n"},"alertDuration":{"type":"string","description":"Total alert duration\n"},"destinationIp":{"type":"string","description":"Notification destination IP address\n"},"id":{"type":"number"}},"type":"object","required":["alarmEnd","alarmStart","alarmState","alertDuration","destinationIp","id"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstancesItemDdosProfile:getCloudInstancesItemDdosProfile":{"properties":{"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudInstancesItemDdosProfileField:getCloudInstancesItemDdosProfileField"},"description":"List of configured field values for the protection profile\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection profile\n"},"options":{"$ref":"#/types/gcore:index%2FgetCloudInstancesItemDdosProfileOptions:getCloudInstancesItemDdosProfileOptions","description":"Configuration options controlling profile activation and BGP routing\n"},"profileTemplate":{"$ref":"#/types/gcore:index%2FgetCloudInstancesItemDdosProfileProfileTemplate:getCloudInstancesItemDdosProfileProfileTemplate","description":"Complete template configuration data used for this profile\n"},"profileTemplateDescription":{"type":"string","description":"Detailed description of the protection template used for this profile\n"},"protocols":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudInstancesItemDdosProfileProtocol:getCloudInstancesItemDdosProfileProtocol"},"description":"List of network protocols and ports configured for protection\n"},"site":{"type":"string","description":"Geographic site identifier where the protection is deployed\n"},"status":{"$ref":"#/types/gcore:index%2FgetCloudInstancesItemDdosProfileStatus:getCloudInstancesItemDdosProfileStatus","description":"Current operational status and any error information for the profile\n"}},"type":"object","required":["fields","id","options","profileTemplate","profileTemplateDescription","protocols","site","status"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstancesItemDdosProfileField:getCloudInstancesItemDdosProfileField":{"properties":{"baseField":{"type":"number","description":"ID of DDoS profile field\n"},"default":{"type":"string","description":"Predefined default value for the field if not specified\n"},"description":{"type":"string","description":"Detailed description explaining the field's purpose and usage guidelines\n"},"fieldName":{"type":"string","description":"Name of DDoS profile field\n"},"fieldType":{"type":"string","description":"Data type classification of the field (e.g., string, integer, array)\n"},"fieldValue":{"type":"string","description":"Complex value. Only one of 'value' or 'field_value' must be specified.\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection field\n"},"name":{"type":"string","description":"Human-readable name of the protection field\n"},"required":{"type":"boolean","description":"Indicates whether this field must be provided when creating a protection profile\n"},"validationSchema":{"type":"string","description":"JSON schema defining validation rules and constraints for the field value\n"},"value":{"type":"string","description":"Basic type value. Only one of 'value' or 'field_value' must be specified.\n"}},"type":"object","required":["baseField","default","description","fieldName","fieldType","fieldValue","id","name","required","validationSchema","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstancesItemDdosProfileOptions:getCloudInstancesItemDdosProfileOptions":{"properties":{"active":{"type":"boolean","description":"Controls whether the DDoS protection profile is enabled and actively protecting the resource\n"},"bgp":{"type":"boolean","description":"Enables Border Gateway Protocol (BGP) routing for DDoS protection traffic\n"}},"type":"object","required":["active","bgp"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstancesItemDdosProfileProfileTemplate:getCloudInstancesItemDdosProfileProfileTemplate":{"properties":{"description":{"type":"string","description":"Detailed description explaining the template's purpose and use cases\n"},"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudInstancesItemDdosProfileProfileTemplateField:getCloudInstancesItemDdosProfileProfileTemplateField"},"description":"List of configurable fields that define the template's protection parameters\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection template\n"},"name":{"type":"string","description":"Human-readable name of the protection template\n"}},"type":"object","required":["description","fields","id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstancesItemDdosProfileProfileTemplateField:getCloudInstancesItemDdosProfileProfileTemplateField":{"properties":{"default":{"type":"string","description":"Predefined default value for the field if not specified\n"},"description":{"type":"string","description":"Detailed description explaining the field's purpose and usage guidelines\n"},"fieldType":{"type":"string","description":"Data type classification of the field (e.g., string, integer, array)\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection field\n"},"name":{"type":"string","description":"Human-readable name of the protection field\n"},"required":{"type":"boolean","description":"Indicates whether this field must be provided when creating a protection profile\n"},"validationSchema":{"type":"string","description":"JSON schema defining validation rules and constraints for the field value\n"}},"type":"object","required":["default","description","fieldType","id","name","required","validationSchema"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstancesItemDdosProfileProtocol:getCloudInstancesItemDdosProfileProtocol":{"properties":{"port":{"type":"string","description":"Network port number for which protocols are configured\n"},"protocols":{"type":"array","items":{"type":"string"},"description":"List of network protocols enabled on the specified port\n"}},"type":"object","required":["port","protocols"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstancesItemDdosProfileStatus:getCloudInstancesItemDdosProfileStatus":{"properties":{"errorDescription":{"type":"string","description":"Detailed error message describing any issues with the profile operation\n"},"status":{"type":"string","description":"Current operational status of the DDoS protection profile\n"}},"type":"object","required":["errorDescription","status"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstancesItemFixedIpAssignment:getCloudInstancesItemFixedIpAssignment":{"properties":{"external":{"type":"boolean","description":"Is network external\n"},"ipAddress":{"type":"string","description":"Ip address\n"},"subnetId":{"type":"string","description":"Interface subnet id\n"}},"type":"object","required":["external","ipAddress","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstancesItemFlavor:getCloudInstancesItemFlavor":{"properties":{"architecture":{"type":"string","description":"CPU architecture\n"},"flavorId":{"type":"string","description":"Flavor ID is the same as name\n"},"flavorName":{"type":"string","description":"Flavor name\n"},"hardwareDescription":{"$ref":"#/types/gcore:index%2FgetCloudInstancesItemFlavorHardwareDescription:getCloudInstancesItemFlavorHardwareDescription","description":"Additional hardware description\n"},"osType":{"type":"string","description":"Flavor operating system\n"},"ram":{"type":"number","description":"RAM size in MiB\n"},"resourceClass":{"type":"string","description":"Flavor resource class for mapping to hardware capacity\n"},"vcpus":{"type":"number","description":"Virtual CPU count. For bare metal flavors, it's a physical CPU count\n"}},"type":"object","required":["architecture","flavorId","flavorName","hardwareDescription","osType","ram","resourceClass","vcpus"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstancesItemFlavorHardwareDescription:getCloudInstancesItemFlavorHardwareDescription":{"properties":{"cpu":{"type":"string","description":"Human-readable CPU description\n"},"disk":{"type":"string","description":"Human-readable disk description\n"},"gpu":{"type":"string","description":"Human-readable GPU description\n"},"license":{"type":"string","description":"If the flavor is licensed, this field contains the license type\n"},"network":{"type":"string","description":"Human-readable NIC description\n"},"ram":{"type":"string","description":"RAM description\n"},"vcpus":{"type":"string","description":"CPU description\n"}},"type":"object","required":["cpu","disk","gpu","license","network","ram","vcpus"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstancesItemInstanceIsolation:getCloudInstancesItemInstanceIsolation":{"properties":{"reason":{"type":"string","description":"The reason of instance isolation if it is isolated from external internet.\n"}},"type":"object","required":["reason"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstancesItemSecurityGroup:getCloudInstancesItemSecurityGroup":{"properties":{"name":{"type":"string","description":"Name.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstancesItemTag:getCloudInstancesItemTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudInstancesItemVolume:getCloudInstancesItemVolume":{"properties":{"deleteOnTermination":{"type":"boolean","description":"Whether the volume is deleted together with the VM\n"},"id":{"type":"string","description":"Volume ID\n"}},"type":"object","required":["deleteOnTermination","id"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudK8sClusterAddOns:getCloudK8sClusterAddOns":{"properties":{"slurm":{"$ref":"#/types/gcore:index%2FgetCloudK8sClusterAddOnsSlurm:getCloudK8sClusterAddOnsSlurm","description":"Slurm add-on configuration\n"}},"type":"object","required":["slurm"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudK8sClusterAddOnsSlurm:getCloudK8sClusterAddOnsSlurm":{"properties":{"enabled":{"type":"boolean","description":"Indicates whether Slurm add-on is deployed in the cluster.\n"},"fileShareId":{"type":"string","description":"ID of a VAST file share used as Slurm storage.\n\nThe Slurm add-on creates separate Persistent Volume Claims for different purposes (controller spool, worker spool, jail) on that file share.\n"},"sshKeyIds":{"type":"array","items":{"type":"string"},"description":"IDs of SSH keys authorized for SSH connection to Slurm login nodes.\n"},"workerCount":{"type":"number","description":"Size of the worker pool, i.e. number of worker nodes.\n\nEach Slurm worker node is backed by a Pod scheduled on one of cluster's GPU nodes.\n\nNote: Downscaling (reducing worker count) is not supported.\n"}},"type":"object","required":["enabled","fileShareId","sshKeyIds","workerCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudK8sClusterAuthentication:getCloudK8sClusterAuthentication":{"properties":{"kubeconfigCreatedAt":{"type":"string","description":"Kubeconfig creation date\n"},"kubeconfigExpiresAt":{"type":"string","description":"Kubeconfig expiration date\n"},"oidc":{"$ref":"#/types/gcore:index%2FgetCloudK8sClusterAuthenticationOidc:getCloudK8sClusterAuthenticationOidc","description":"OIDC authentication settings\n"}},"type":"object","required":["kubeconfigCreatedAt","kubeconfigExpiresAt","oidc"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudK8sClusterAuthenticationOidc:getCloudK8sClusterAuthenticationOidc":{"properties":{"clientId":{"type":"string","description":"Client ID\n"},"groupsClaim":{"type":"string","description":"JWT claim to use as the user's group\n"},"groupsPrefix":{"type":"string","description":"Prefix prepended to group claims\n"},"issuerUrl":{"type":"string","description":"Issuer URL\n"},"requiredClaims":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value pairs that describe required claims in the token\n"},"signingAlgs":{"type":"array","items":{"type":"string"},"description":"Accepted signing algorithms\n"},"usernameClaim":{"type":"string","description":"JWT claim to use as the user name\n"},"usernamePrefix":{"type":"string","description":"Prefix prepended to username claims to prevent clashes\n"}},"type":"object","required":["clientId","groupsClaim","groupsPrefix","issuerUrl","requiredClaims","signingAlgs","usernameClaim","usernamePrefix"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudK8sClusterCni:getCloudK8sClusterCni":{"properties":{"cilium":{"$ref":"#/types/gcore:index%2FgetCloudK8sClusterCniCilium:getCloudK8sClusterCniCilium","description":"Cilium settings\n"},"cloudK8sClusterProvider":{"type":"string","description":"CNI provider\nAvailable values: \"calico\", \"cilium\".\n"}},"type":"object","required":["cilium","cloudK8sClusterProvider"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudK8sClusterCniCilium:getCloudK8sClusterCniCilium":{"properties":{"encryption":{"type":"boolean","description":"Wireguard encryption\n"},"hubbleRelay":{"type":"boolean","description":"Hubble Relay\n"},"hubbleUi":{"type":"boolean","description":"Hubble UI\n"},"lbAcceleration":{"type":"boolean","description":"LoadBalancer acceleration\n"},"lbMode":{"type":"string","description":"LoadBalancer mode\nAvailable values: \"dsr\", \"hybrid\", \"snat\".\n"},"maskSize":{"type":"number","description":"Mask size for IPv4\n"},"maskSizeV6":{"type":"number","description":"Mask size for IPv6\n"},"routingMode":{"type":"string","description":"Routing mode\nAvailable values: \"native\", \"tunnel\".\n"},"tunnel":{"type":"string","description":"CNI provider\nAvailable values: \"\", \"geneve\", \"vxlan\".\n"}},"type":"object","required":["encryption","hubbleRelay","hubbleUi","lbAcceleration","lbMode","maskSize","maskSizeV6","routingMode","tunnel"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudK8sClusterCsi:getCloudK8sClusterCsi":{"properties":{"nfs":{"$ref":"#/types/gcore:index%2FgetCloudK8sClusterCsiNfs:getCloudK8sClusterCsiNfs","description":"NFS settings\n"}},"type":"object","required":["nfs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudK8sClusterCsiNfs:getCloudK8sClusterCsiNfs":{"properties":{"vastEnabled":{"type":"boolean","description":"Indicates the status of VAST NFS integration\n"}},"type":"object","required":["vastEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudK8sClusterLogging:getCloudK8sClusterLogging":{"properties":{"destinationRegionId":{"type":"number","description":"ID of the region in which the logs will be stored\n"},"enabled":{"type":"boolean","description":"Indicates if log streaming is enabled or disabled\n"},"retentionPolicy":{"$ref":"#/types/gcore:index%2FgetCloudK8sClusterLoggingRetentionPolicy:getCloudK8sClusterLoggingRetentionPolicy","description":"Logs retention policy\n"},"topicName":{"type":"string","description":"The topic name to stream logs to\n"}},"type":"object","required":["destinationRegionId","enabled","retentionPolicy","topicName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudK8sClusterLoggingRetentionPolicy:getCloudK8sClusterLoggingRetentionPolicy":{"properties":{"period":{"type":"number","description":"Duration of days for which logs must be kept.\n"}},"type":"object","required":["period"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudK8sClusterPool:getCloudK8sClusterPool":{"properties":{"autoHealingEnabled":{"type":"boolean","description":"Indicates the status of auto healing\n"},"bootVolumeSize":{"type":"number","description":"Size of the boot volume\n"},"bootVolumeType":{"type":"string","description":"Type of the boot volume\n"},"createdAt":{"type":"string","description":"Date of function creation\n"},"crioConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"Crio configuration for pool nodes\n"},"flavorId":{"type":"string","description":"ID of the cluster pool flavor\n"},"id":{"type":"string","description":"UUID of the cluster pool\n"},"isPublicIpv4":{"type":"boolean","description":"Indicates if the pool is public\n"},"kubeletConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"Kubelet configuration for pool nodes\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Labels applied to the cluster pool\n"},"maxNodeCount":{"type":"number","description":"Maximum node count in the cluster pool\n"},"minNodeCount":{"type":"number","description":"Minimum node count in the cluster pool\n"},"name":{"type":"string","description":"Name of the cluster pool\n"},"nodeCount":{"type":"number","description":"Node count in the cluster pool\n"},"servergroupId":{"type":"string","description":"Server group ID\n"},"servergroupName":{"type":"string","description":"Server group name\n"},"servergroupPolicy":{"type":"string","description":"Anti-affinity, affinity or soft-anti-affinity server group policy\n"},"status":{"type":"string","description":"Status of the cluster pool\n"},"taints":{"type":"object","additionalProperties":{"type":"string"},"description":"Taints applied to the cluster pool\n"}},"type":"object","required":["autoHealingEnabled","bootVolumeSize","bootVolumeType","createdAt","crioConfig","flavorId","id","isPublicIpv4","kubeletConfig","labels","maxNodeCount","minNodeCount","name","nodeCount","servergroupId","servergroupName","servergroupPolicy","status","taints"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerAdditionalVip:getCloudLoadBalancerAdditionalVip":{"properties":{"ipAddress":{"type":"string","description":"IP address\n"},"subnetId":{"type":"string","description":"Subnet UUID\n"}},"type":"object","required":["ipAddress","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerDdosProfile:getCloudLoadBalancerDdosProfile":{"properties":{"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerDdosProfileField:getCloudLoadBalancerDdosProfileField"},"description":"List of configured field values for the protection profile\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection profile\n"},"options":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerDdosProfileOptions:getCloudLoadBalancerDdosProfileOptions","description":"Configuration options controlling profile activation and BGP routing\n"},"profileTemplate":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerDdosProfileProfileTemplate:getCloudLoadBalancerDdosProfileProfileTemplate","description":"Complete template configuration data used for this profile\n"},"profileTemplateDescription":{"type":"string","description":"Detailed description of the protection template used for this profile\n"},"protocols":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerDdosProfileProtocol:getCloudLoadBalancerDdosProfileProtocol"},"description":"List of network protocols and ports configured for protection\n"},"site":{"type":"string","description":"Geographic site identifier where the protection is deployed\n"},"status":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerDdosProfileStatus:getCloudLoadBalancerDdosProfileStatus","description":"Current operational status and any error information for the profile\n"}},"type":"object","required":["fields","id","options","profileTemplate","profileTemplateDescription","protocols","site","status"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerDdosProfileField:getCloudLoadBalancerDdosProfileField":{"properties":{"baseField":{"type":"number","description":"ID of DDoS profile field\n"},"default":{"type":"string","description":"Predefined default value for the field if not specified\n"},"description":{"type":"string","description":"Detailed description explaining the field's purpose and usage guidelines\n"},"fieldName":{"type":"string","description":"Name of DDoS profile field\n"},"fieldType":{"type":"string","description":"Data type classification of the field (e.g., string, integer, array)\n"},"fieldValue":{"type":"string","description":"Complex value. Only one of 'value' or 'field_value' must be specified.\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection field\n"},"name":{"type":"string","description":"Human-readable name of the protection field\n"},"required":{"type":"boolean","description":"Indicates whether this field must be provided when creating a protection profile\n"},"validationSchema":{"type":"string","description":"JSON schema defining validation rules and constraints for the field value\n"},"value":{"type":"string","description":"Basic type value. Only one of 'value' or 'field_value' must be specified.\n"}},"type":"object","required":["baseField","default","description","fieldName","fieldType","fieldValue","id","name","required","validationSchema","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerDdosProfileOptions:getCloudLoadBalancerDdosProfileOptions":{"properties":{"active":{"type":"boolean","description":"Controls whether the DDoS protection profile is enabled and actively protecting the resource\n"},"bgp":{"type":"boolean","description":"Enables Border Gateway Protocol (BGP) routing for DDoS protection traffic\n"}},"type":"object","required":["active","bgp"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerDdosProfileProfileTemplate:getCloudLoadBalancerDdosProfileProfileTemplate":{"properties":{"description":{"type":"string","description":"Detailed description explaining the template's purpose and use cases\n"},"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerDdosProfileProfileTemplateField:getCloudLoadBalancerDdosProfileProfileTemplateField"},"description":"List of configurable fields that define the template's protection parameters\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection template\n"},"name":{"type":"string","description":"Human-readable name of the protection template\n"}},"type":"object","required":["description","fields","id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerDdosProfileProfileTemplateField:getCloudLoadBalancerDdosProfileProfileTemplateField":{"properties":{"default":{"type":"string","description":"Predefined default value for the field if not specified\n"},"description":{"type":"string","description":"Detailed description explaining the field's purpose and usage guidelines\n"},"fieldType":{"type":"string","description":"Data type classification of the field (e.g., string, integer, array)\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection field\n"},"name":{"type":"string","description":"Human-readable name of the protection field\n"},"required":{"type":"boolean","description":"Indicates whether this field must be provided when creating a protection profile\n"},"validationSchema":{"type":"string","description":"JSON schema defining validation rules and constraints for the field value\n"}},"type":"object","required":["default","description","fieldType","id","name","required","validationSchema"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerDdosProfileProtocol:getCloudLoadBalancerDdosProfileProtocol":{"properties":{"port":{"type":"string","description":"Network port number for which protocols are configured\n"},"protocols":{"type":"array","items":{"type":"string"},"description":"List of network protocols enabled on the specified port\n"}},"type":"object","required":["port","protocols"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerDdosProfileStatus:getCloudLoadBalancerDdosProfileStatus":{"properties":{"errorDescription":{"type":"string","description":"Detailed error message describing any issues with the profile operation\n"},"status":{"type":"string","description":"Current operational status of the DDoS protection profile\n"}},"type":"object","required":["errorDescription","status"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerFindOneBy:getCloudLoadBalancerFindOneBy":{"properties":{"assignedFloating":{"type":"boolean","description":"With or without assigned floating IP\n"},"loggingEnabled":{"type":"boolean","description":"With or without logging enabled\n"},"name":{"type":"string","description":"Filter by name\n"},"orderBy":{"type":"string","description":"Order by field and direction.\nAvailable values: \"created*at.asc\", \"created*at.desc\", \"flavor.asc\", \"flavor.desc\", \"name.asc\", \"name.desc\", \"operating*status.asc\", \"operating*status.desc\", \"provisioning*status.asc\", \"provisioning*status.desc\", \"updated*at.asc\", \"updated*at.desc\", \"vip*address.asc\", \"vip*address.desc\", \"vip*ip*family.asc\", \"vip*ip*family.desc\".\n"},"tagKeyValue":{"type":"string","description":"Optional. Filter by tag key-value pairs.\n"},"tagKeys":{"type":"array","items":{"type":"string"},"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n"}},"type":"object","required":["orderBy"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerFlavor:getCloudLoadBalancerFlavor":{"properties":{"flavorId":{"type":"string","description":"Flavor ID is the same as name\n"},"flavorName":{"type":"string","description":"Flavor name\n"},"ram":{"type":"number","description":"RAM size in MiB\n"},"vcpus":{"type":"number","description":"Virtual CPU count. For bare metal flavors, it's a physical CPU count\n"}},"type":"object","required":["flavorId","flavorName","ram","vcpus"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerFloatingIp:getCloudLoadBalancerFloatingIp":{"properties":{"createdAt":{"type":"string","description":"Datetime when the floating IP was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"fixedIpAddress":{"type":"string","description":"IP address of the port the floating IP is attached to\n"},"floatingIpAddress":{"type":"string","description":"IP Address of the floating IP\n"},"id":{"type":"string","description":"Floating IP ID\n"},"portId":{"type":"string","description":"Port ID the floating IP is attached to. The \u003cspan pulumi-lang-nodejs=\"`fixedIpAddress`\" pulumi-lang-dotnet=\"`FixedIpAddress`\" pulumi-lang-go=\"`fixedIpAddress`\" pulumi-lang-python=\"`fixed_ip_address`\" pulumi-lang-yaml=\"`fixedIpAddress`\" pulumi-lang-java=\"`fixedIpAddress`\"\u003e`fixed_ip_address`\u003c/span\u003e is the IP address of the port.\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"routerId":{"type":"string","description":"Router ID\n"},"status":{"type":"string","description":"Floating IP status. DOWN - unassigned (available). ACTIVE - attached to a port (in use). ERROR - error state.\nAvailable values: \"ACTIVE\", \"DOWN\", \"ERROR\".\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerFloatingIpTag:getCloudLoadBalancerFloatingIpTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the floating IP was last updated\n"}},"type":"object","required":["createdAt","creatorTaskId","fixedIpAddress","floatingIpAddress","id","portId","projectId","region","regionId","routerId","status","tags","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerFloatingIpTag:getCloudLoadBalancerFloatingIpTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerListener:getCloudLoadBalancerListener":{"properties":{"id":{"type":"string","description":"Listener ID\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerListenerStats:getCloudLoadBalancerListenerStats":{"properties":{"activeConnections":{"type":"number","description":"Currently active connections\n"},"bytesIn":{"type":"number","description":"Total bytes received\n"},"bytesOut":{"type":"number","description":"Total bytes sent\n"},"requestErrors":{"type":"number","description":"Total requests that were unable to be fulfilled\n"},"totalConnections":{"type":"number","description":"Total connections handled\n"}},"type":"object","required":["activeConnections","bytesIn","bytesOut","requestErrors","totalConnections"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerListenerUserList:getCloudLoadBalancerListenerUserList":{"properties":{"encryptedPassword":{"type":"string","description":"Encrypted password to auth via Basic Authentication\n"},"username":{"type":"string","description":"Username to auth via Basic Authentication\n"}},"type":"object","required":["encryptedPassword","username"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerLogging:getCloudLoadBalancerLogging":{"properties":{"destinationRegionId":{"type":"number","description":"ID of the region in which the logs will be stored\n"},"enabled":{"type":"boolean","description":"Indicates if log streaming is enabled or disabled\n"},"retentionPolicy":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerLoggingRetentionPolicy:getCloudLoadBalancerLoggingRetentionPolicy","description":"Logs retention policy\n"},"topicName":{"type":"string","description":"The topic name to stream logs to\n"}},"type":"object","required":["destinationRegionId","enabled","retentionPolicy","topicName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerLoggingRetentionPolicy:getCloudLoadBalancerLoggingRetentionPolicy":{"properties":{"period":{"type":"number","description":"Duration of days for which logs must be kept.\n"}},"type":"object","required":["period"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerPoolHealthmonitor:getCloudLoadBalancerPoolHealthmonitor":{"properties":{"adminStateUp":{"type":"boolean","description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n"},"delay":{"type":"number","description":"The time, in seconds, between sending probes to members\n"},"expectedCodes":{"type":"string","description":"Expected HTTP response codes. Can be a single code or a range of codes. Can only be used together with `HTTP` or `HTTPS` health monitor type. For example, 200,202,300-302,401,403,404,500-504. If not specified, the default is 200.\n"},"httpMethod":{"type":"string","description":"HTTP method\nAvailable values: \"CONNECT\", \"DELETE\", \"GET\", \"HEAD\", \"OPTIONS\", \"PATCH\", \"POST\", \"PUT\", \"TRACE\".\n"},"id":{"type":"string","description":"Health monitor ID\n"},"maxRetries":{"type":"number","description":"Number of successes before the member is switched to ONLINE state\n"},"maxRetriesDown":{"type":"number","description":"Number of failures before the member is switched to ERROR state\n"},"operatingStatus":{"type":"string","description":"Health Monitor operating status\nAvailable values: \"DEGRADED\", \"DRAINING\", \"ERROR\", \"NO_MONITOR\", \"OFFLINE\", \"ONLINE\".\n"},"provisioningStatus":{"type":"string","description":"Health monitor lifecycle status\nAvailable values: \"ACTIVE\", \"DELETED\", \"ERROR\", \"PENDING*CREATE\", \"PENDING*DELETE\", \"PENDING_UPDATE\".\n"},"timeout":{"type":"number","description":"The maximum time to connect. Must be less than the delay value\n"},"type":{"type":"string","description":"Health monitor type. Once health monitor is created, cannot be changed.\nAvailable values: \"HTTP\", \"HTTPS\", \"K8S\", \"PING\", \"TCP\", \"TLS-HELLO\", \"UDP-CONNECT\".\n"},"urlPath":{"type":"string","description":"URL Path. Defaults to '/'\n"}},"type":"object","required":["adminStateUp","delay","expectedCodes","httpMethod","id","maxRetries","maxRetriesDown","operatingStatus","provisioningStatus","timeout","type","urlPath"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerPoolListener:getCloudLoadBalancerPoolListener":{"properties":{"id":{"type":"string","description":"Resource ID\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerPoolLoadbalancer:getCloudLoadBalancerPoolLoadbalancer":{"properties":{"id":{"type":"string","description":"Resource ID\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerPoolMember:getCloudLoadBalancerPoolMember":{"properties":{"address":{"type":"string","description":"Member IP address\n"},"adminStateUp":{"type":"boolean","description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n"},"backup":{"type":"boolean","description":"Set to true if the member is a backup member, to which traffic will be sent exclusively when all non-backup members will be unreachable. It allows to realize ACTIVE-BACKUP load balancing without thinking about VRRP and VIP configuration. Default is false\n"},"id":{"type":"string","description":"Member ID must be provided if an existing member is being updated\n"},"monitorAddress":{"type":"string","description":"An alternate IP address used for health monitoring of a backend member. Default is null which monitors the member address.\n"},"monitorPort":{"type":"number","description":"An alternate protocol port used for health monitoring of a backend member. Default is null which monitors the member \u003cspan pulumi-lang-nodejs=\"`protocolPort`\" pulumi-lang-dotnet=\"`ProtocolPort`\" pulumi-lang-go=\"`protocolPort`\" pulumi-lang-python=\"`protocol_port`\" pulumi-lang-yaml=\"`protocolPort`\" pulumi-lang-java=\"`protocolPort`\"\u003e`protocol_port`\u003c/span\u003e.\n"},"operatingStatus":{"type":"string","description":"Member operating status of the entity\nAvailable values: \"DEGRADED\", \"DRAINING\", \"ERROR\", \"NO_MONITOR\", \"OFFLINE\", \"ONLINE\".\n"},"protocolPort":{"type":"number","description":"Member IP port\n"},"provisioningStatus":{"type":"string","description":"Pool member lifecycle status\nAvailable values: \"ACTIVE\", \"DELETED\", \"ERROR\", \"PENDING*CREATE\", \"PENDING*DELETE\", \"PENDING_UPDATE\".\n"},"subnetId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e in which \u003cspan pulumi-lang-nodejs=\"`address`\" pulumi-lang-dotnet=\"`Address`\" pulumi-lang-go=\"`address`\" pulumi-lang-python=\"`address`\" pulumi-lang-yaml=\"`address`\" pulumi-lang-java=\"`address`\"\u003e`address`\u003c/span\u003e is present.\n"},"weight":{"type":"number","description":"Member weight. Valid values are 0 \u003c \u003cspan pulumi-lang-nodejs=\"`weight`\" pulumi-lang-dotnet=\"`Weight`\" pulumi-lang-go=\"`weight`\" pulumi-lang-python=\"`weight`\" pulumi-lang-yaml=\"`weight`\" pulumi-lang-java=\"`weight`\"\u003e`weight`\u003c/span\u003e \u003c= 256, defaults to 1. Controls traffic distribution based on the pool's load balancing algorithm:\n"}},"type":"object","required":["address","adminStateUp","backup","id","monitorAddress","monitorPort","operatingStatus","protocolPort","provisioningStatus","subnetId","weight"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerPoolSessionPersistence:getCloudLoadBalancerPoolSessionPersistence":{"properties":{"cookieName":{"type":"string","description":"Should be set if app cookie or http cookie is used\n"},"persistenceGranularity":{"type":"string","description":"Subnet mask if \u003cspan pulumi-lang-nodejs=\"`sourceIp`\" pulumi-lang-dotnet=\"`SourceIp`\" pulumi-lang-go=\"`sourceIp`\" pulumi-lang-python=\"`source_ip`\" pulumi-lang-yaml=\"`sourceIp`\" pulumi-lang-java=\"`sourceIp`\"\u003e`source_ip`\u003c/span\u003e is used. For UDP ports only\n"},"persistenceTimeout":{"type":"number","description":"Session persistence timeout. For UDP ports only\n"},"type":{"type":"string","description":"Session persistence type\nAvailable values: \"APP*COOKIE\", \"HTTP*COOKIE\", \"SOURCE_IP\".\n"}},"type":"object","required":["cookieName","persistenceGranularity","persistenceTimeout","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerStats:getCloudLoadBalancerStats":{"properties":{"activeConnections":{"type":"number","description":"Currently active connections\n"},"bytesIn":{"type":"number","description":"Total bytes received\n"},"bytesOut":{"type":"number","description":"Total bytes sent\n"},"requestErrors":{"type":"number","description":"Total requests that were unable to be fulfilled\n"},"totalConnections":{"type":"number","description":"Total connections handled\n"}},"type":"object","required":["activeConnections","bytesIn","bytesOut","requestErrors","totalConnections"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerTagsV2:getCloudLoadBalancerTagsV2":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancerVrrpIp:getCloudLoadBalancerVrrpIp":{"properties":{"ipAddress":{"type":"string","description":"IP address\n"},"role":{"type":"string","description":"LoadBalancer instance role to which VRRP IP belong\nAvailable values: \"BACKUP\", \"MASTER\", \"STANDALONE\".\n"},"subnetId":{"type":"string","description":"Subnet UUID\n"}},"type":"object","required":["ipAddress","role","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItem:getCloudLoadBalancersItem":{"properties":{"additionalVips":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItemAdditionalVip:getCloudLoadBalancersItemAdditionalVip"},"description":"List of additional IP addresses\n"},"adminStateUp":{"type":"boolean","description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n"},"createdAt":{"type":"string","description":"Datetime when the load balancer was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"ddosProfile":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItemDdosProfile:getCloudLoadBalancersItemDdosProfile","description":"Loadbalancer advanced DDoS protection profile.\n"},"flavor":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItemFlavor:getCloudLoadBalancersItemFlavor","description":"Load balancer flavor (if not default)\n"},"floatingIps":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItemFloatingIp:getCloudLoadBalancersItemFloatingIp"},"description":"List of assigned floating IPs\n"},"id":{"type":"string","description":"Load balancer ID\n"},"listeners":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItemListener:getCloudLoadBalancersItemListener"},"description":"Load balancer listeners\n"},"logging":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItemLogging:getCloudLoadBalancersItemLogging","description":"Logging configuration\n"},"name":{"type":"string","description":"Load balancer name\n"},"operatingStatus":{"type":"string","description":"Load balancer operating status\nAvailable values: \"DEGRADED\", \"DRAINING\", \"ERROR\", \"NO_MONITOR\", \"OFFLINE\", \"ONLINE\".\n"},"preferredConnectivity":{"type":"string","description":"Preferred option to establish connectivity between load balancer and its pools members\nAvailable values: \"L2\", \"L3\".\n"},"projectId":{"type":"number","description":"Project ID\n"},"provisioningStatus":{"type":"string","description":"Load balancer lifecycle status\nAvailable values: \"ACTIVE\", \"DELETED\", \"ERROR\", \"PENDING*CREATE\", \"PENDING*DELETE\", \"PENDING_UPDATE\".\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"stats":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItemStats:getCloudLoadBalancersItemStats","description":"Statistics of load balancer.\n"},"tagsV2s":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItemTagsV2:getCloudLoadBalancersItemTagsV2"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the load balancer was last updated\n"},"vipAddress":{"type":"string","description":"Load balancer IP address\n"},"vipFqdn":{"type":"string","description":"Fully qualified domain name for the load balancer VIP\n"},"vipIpFamily":{"type":"string","description":"Load balancer IP family\nAvailable values: \"dual\", \"ipv4\", \"ipv6\".\n"},"vipPortId":{"type":"string","description":"The ID of the Virtual IP (VIP) port.\n"},"vrrpIps":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItemVrrpIp:getCloudLoadBalancersItemVrrpIp"},"description":"List of VRRP IP addresses\n"}},"type":"object","required":["additionalVips","adminStateUp","createdAt","creatorTaskId","ddosProfile","flavor","floatingIps","id","listeners","logging","name","operatingStatus","preferredConnectivity","projectId","provisioningStatus","region","regionId","stats","tagsV2s","updatedAt","vipAddress","vipFqdn","vipIpFamily","vipPortId","vrrpIps"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItemAdditionalVip:getCloudLoadBalancersItemAdditionalVip":{"properties":{"ipAddress":{"type":"string","description":"IP address\n"},"subnetId":{"type":"string","description":"Subnet UUID\n"}},"type":"object","required":["ipAddress","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItemDdosProfile:getCloudLoadBalancersItemDdosProfile":{"properties":{"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItemDdosProfileField:getCloudLoadBalancersItemDdosProfileField"},"description":"List of configured field values for the protection profile\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection profile\n"},"options":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItemDdosProfileOptions:getCloudLoadBalancersItemDdosProfileOptions","description":"Configuration options controlling profile activation and BGP routing\n"},"profileTemplate":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItemDdosProfileProfileTemplate:getCloudLoadBalancersItemDdosProfileProfileTemplate","description":"Complete template configuration data used for this profile\n"},"profileTemplateDescription":{"type":"string","description":"Detailed description of the protection template used for this profile\n"},"protocols":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItemDdosProfileProtocol:getCloudLoadBalancersItemDdosProfileProtocol"},"description":"List of network protocols and ports configured for protection\n"},"site":{"type":"string","description":"Geographic site identifier where the protection is deployed\n"},"status":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItemDdosProfileStatus:getCloudLoadBalancersItemDdosProfileStatus","description":"Current operational status and any error information for the profile\n"}},"type":"object","required":["fields","id","options","profileTemplate","profileTemplateDescription","protocols","site","status"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItemDdosProfileField:getCloudLoadBalancersItemDdosProfileField":{"properties":{"baseField":{"type":"number","description":"ID of DDoS profile field\n"},"default":{"type":"string","description":"Predefined default value for the field if not specified\n"},"description":{"type":"string","description":"Detailed description explaining the field's purpose and usage guidelines\n"},"fieldName":{"type":"string","description":"Name of DDoS profile field\n"},"fieldType":{"type":"string","description":"Data type classification of the field (e.g., string, integer, array)\n"},"fieldValue":{"type":"string","description":"Complex value. Only one of 'value' or 'field_value' must be specified.\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection field\n"},"name":{"type":"string","description":"Human-readable name of the protection field\n"},"required":{"type":"boolean","description":"Indicates whether this field must be provided when creating a protection profile\n"},"validationSchema":{"type":"string","description":"JSON schema defining validation rules and constraints for the field value\n"},"value":{"type":"string","description":"Basic type value. Only one of 'value' or 'field_value' must be specified.\n"}},"type":"object","required":["baseField","default","description","fieldName","fieldType","fieldValue","id","name","required","validationSchema","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItemDdosProfileOptions:getCloudLoadBalancersItemDdosProfileOptions":{"properties":{"active":{"type":"boolean","description":"Controls whether the DDoS protection profile is enabled and actively protecting the resource\n"},"bgp":{"type":"boolean","description":"Enables Border Gateway Protocol (BGP) routing for DDoS protection traffic\n"}},"type":"object","required":["active","bgp"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItemDdosProfileProfileTemplate:getCloudLoadBalancersItemDdosProfileProfileTemplate":{"properties":{"description":{"type":"string","description":"Detailed description explaining the template's purpose and use cases\n"},"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItemDdosProfileProfileTemplateField:getCloudLoadBalancersItemDdosProfileProfileTemplateField"},"description":"List of configurable fields that define the template's protection parameters\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection template\n"},"name":{"type":"string","description":"Human-readable name of the protection template\n"}},"type":"object","required":["description","fields","id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItemDdosProfileProfileTemplateField:getCloudLoadBalancersItemDdosProfileProfileTemplateField":{"properties":{"default":{"type":"string","description":"Predefined default value for the field if not specified\n"},"description":{"type":"string","description":"Detailed description explaining the field's purpose and usage guidelines\n"},"fieldType":{"type":"string","description":"Data type classification of the field (e.g., string, integer, array)\n"},"id":{"type":"number","description":"Unique identifier for the DDoS protection field\n"},"name":{"type":"string","description":"Human-readable name of the protection field\n"},"required":{"type":"boolean","description":"Indicates whether this field must be provided when creating a protection profile\n"},"validationSchema":{"type":"string","description":"JSON schema defining validation rules and constraints for the field value\n"}},"type":"object","required":["default","description","fieldType","id","name","required","validationSchema"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItemDdosProfileProtocol:getCloudLoadBalancersItemDdosProfileProtocol":{"properties":{"port":{"type":"string","description":"Network port number for which protocols are configured\n"},"protocols":{"type":"array","items":{"type":"string"},"description":"List of network protocols enabled on the specified port\n"}},"type":"object","required":["port","protocols"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItemDdosProfileStatus:getCloudLoadBalancersItemDdosProfileStatus":{"properties":{"errorDescription":{"type":"string","description":"Detailed error message describing any issues with the profile operation\n"},"status":{"type":"string","description":"Current operational status of the DDoS protection profile\n"}},"type":"object","required":["errorDescription","status"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItemFlavor:getCloudLoadBalancersItemFlavor":{"properties":{"flavorId":{"type":"string","description":"Flavor ID is the same as name\n"},"flavorName":{"type":"string","description":"Flavor name\n"},"ram":{"type":"number","description":"RAM size in MiB\n"},"vcpus":{"type":"number","description":"Virtual CPU count. For bare metal flavors, it's a physical CPU count\n"}},"type":"object","required":["flavorId","flavorName","ram","vcpus"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItemFloatingIp:getCloudLoadBalancersItemFloatingIp":{"properties":{"createdAt":{"type":"string","description":"Datetime when the floating IP was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"fixedIpAddress":{"type":"string","description":"IP address of the port the floating IP is attached to\n"},"floatingIpAddress":{"type":"string","description":"IP Address of the floating IP\n"},"id":{"type":"string","description":"Floating IP ID\n"},"portId":{"type":"string","description":"Port ID the floating IP is attached to. The \u003cspan pulumi-lang-nodejs=\"`fixedIpAddress`\" pulumi-lang-dotnet=\"`FixedIpAddress`\" pulumi-lang-go=\"`fixedIpAddress`\" pulumi-lang-python=\"`fixed_ip_address`\" pulumi-lang-yaml=\"`fixedIpAddress`\" pulumi-lang-java=\"`fixedIpAddress`\"\u003e`fixed_ip_address`\u003c/span\u003e is the IP address of the port.\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"routerId":{"type":"string","description":"Router ID\n"},"status":{"type":"string","description":"Floating IP status. DOWN - unassigned (available). ACTIVE - attached to a port (in use). ERROR - error state.\nAvailable values: \"ACTIVE\", \"DOWN\", \"ERROR\".\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItemFloatingIpTag:getCloudLoadBalancersItemFloatingIpTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the floating IP was last updated\n"}},"type":"object","required":["createdAt","creatorTaskId","fixedIpAddress","floatingIpAddress","id","portId","projectId","region","regionId","routerId","status","tags","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItemFloatingIpTag:getCloudLoadBalancersItemFloatingIpTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItemListener:getCloudLoadBalancersItemListener":{"properties":{"id":{"type":"string","description":"Listener ID\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItemLogging:getCloudLoadBalancersItemLogging":{"properties":{"destinationRegionId":{"type":"number","description":"ID of the region in which the logs will be stored\n"},"enabled":{"type":"boolean","description":"Indicates if log streaming is enabled or disabled\n"},"retentionPolicy":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItemLoggingRetentionPolicy:getCloudLoadBalancersItemLoggingRetentionPolicy","description":"Logs retention policy\n"},"topicName":{"type":"string","description":"The topic name to stream logs to\n"}},"type":"object","required":["destinationRegionId","enabled","retentionPolicy","topicName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItemLoggingRetentionPolicy:getCloudLoadBalancersItemLoggingRetentionPolicy":{"properties":{"period":{"type":"number","description":"Duration of days for which logs must be kept.\n"}},"type":"object","required":["period"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItemStats:getCloudLoadBalancersItemStats":{"properties":{"activeConnections":{"type":"number","description":"Currently active connections\n"},"bytesIn":{"type":"number","description":"Total bytes received\n"},"bytesOut":{"type":"number","description":"Total bytes sent\n"},"requestErrors":{"type":"number","description":"Total requests that were unable to be fulfilled\n"},"totalConnections":{"type":"number","description":"Total connections handled\n"}},"type":"object","required":["activeConnections","bytesIn","bytesOut","requestErrors","totalConnections"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItemTagsV2:getCloudLoadBalancersItemTagsV2":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudLoadBalancersItemVrrpIp:getCloudLoadBalancersItemVrrpIp":{"properties":{"ipAddress":{"type":"string","description":"IP address\n"},"role":{"type":"string","description":"LoadBalancer instance role to which VRRP IP belong\nAvailable values: \"BACKUP\", \"MASTER\", \"STANDALONE\".\n"},"subnetId":{"type":"string","description":"Subnet UUID\n"}},"type":"object","required":["ipAddress","role","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkFindOneBy:getCloudNetworkFindOneBy":{"properties":{"external":{"type":"boolean","description":"Filter by external network status\n"},"name":{"type":"string","description":"Filter networks by name\n"},"networkType":{"type":"string","description":"Filter by network type (vlan or vxlan)\nAvailable values: \"vlan\", \"vxlan\".\n"},"orderBy":{"type":"string","description":"Ordering networks list result by \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, \u003cspan pulumi-lang-nodejs=\"`createdAt`\" pulumi-lang-dotnet=\"`CreatedAt`\" pulumi-lang-go=\"`createdAt`\" pulumi-lang-python=\"`created_at`\" pulumi-lang-yaml=\"`createdAt`\" pulumi-lang-java=\"`createdAt`\"\u003e`created_at`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`priority`\" pulumi-lang-dotnet=\"`Priority`\" pulumi-lang-go=\"`priority`\" pulumi-lang-python=\"`priority`\" pulumi-lang-yaml=\"`priority`\" pulumi-lang-java=\"`priority`\"\u003e`priority`\u003c/span\u003e fields and directions (e.g. `created_at.desc`). Default is `created_at.desc`. Use `priority.desc` to sort by shared network priority (relevant when `owned_by=any`).\nAvailable values: \"created*at.asc\", \"created*at.desc\", \"name.asc\", \"name.desc\", \"priority.desc\".\n"},"ownedBy":{"type":"string","description":"Controls which networks are returned. 'project' (default) returns only networks owned by the project. 'any' returns all networks that the project can use, including shared networks from other projects.\nAvailable values: \"any\", \"project\".\n"},"tagKeyValue":{"type":"string","description":"Optional. Filter by tag key-value pairs.\n"},"tagKeys":{"type":"array","items":{"type":"string"},"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n"}},"type":"object","required":["orderBy","ownedBy"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkRouterExternalGatewayInfo:getCloudNetworkRouterExternalGatewayInfo":{"properties":{"enableSnat":{"type":"boolean","description":"Is SNAT enabled.\n"},"externalFixedIps":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudNetworkRouterExternalGatewayInfoExternalFixedIp:getCloudNetworkRouterExternalGatewayInfoExternalFixedIp"},"description":"List of external IPs that emit SNAT-ed traffic.\n"},"networkId":{"type":"string","description":"Id of the external network.\n"}},"type":"object","required":["enableSnat","externalFixedIps","networkId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkRouterExternalGatewayInfoExternalFixedIp:getCloudNetworkRouterExternalGatewayInfoExternalFixedIp":{"properties":{"ipAddress":{"type":"string","description":"IP address\n"},"subnetId":{"type":"string","description":"ID of the subnet that allocated the IP\n"}},"type":"object","required":["ipAddress","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkRouterInterface:getCloudNetworkRouterInterface":{"properties":{"ipAssignments":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudNetworkRouterInterfaceIpAssignment:getCloudNetworkRouterInterfaceIpAssignment"},"description":"IP addresses assigned to this port\n"},"macAddress":{"type":"string","description":"MAC address of the virtual port\n"},"networkId":{"type":"string","description":"ID of the network the port is attached to\n"},"portId":{"type":"string","description":"ID of virtual ethernet port object\n"}},"type":"object","required":["ipAssignments","macAddress","networkId","portId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkRouterInterfaceIpAssignment:getCloudNetworkRouterInterfaceIpAssignment":{"properties":{"ipAddress":{"type":"string","description":"IP address\n"},"subnetId":{"type":"string","description":"ID of the subnet that allocated the IP\n"}},"type":"object","required":["ipAddress","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkRouterRoute:getCloudNetworkRouterRoute":{"properties":{"destination":{"type":"string","description":"CIDR of destination IPv4 subnet.\n"},"nexthop":{"type":"string","description":"IPv4 address to forward traffic to if it's destination IP matches 'destination' CIDR.\n"}},"type":"object","required":["destination","nexthop"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkRoutersItem:getCloudNetworkRoutersItem":{"properties":{"createdAt":{"type":"string","description":"Datetime when the router was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"distributed":{"type":"boolean","description":"Whether the router is distributed or centralized.\n"},"externalGatewayInfo":{"$ref":"#/types/gcore:index%2FgetCloudNetworkRoutersItemExternalGatewayInfo:getCloudNetworkRoutersItemExternalGatewayInfo","description":"State of this router's external gateway.\n"},"id":{"type":"string","description":"Router ID\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudNetworkRoutersItemInterface:getCloudNetworkRoutersItemInterface"},"description":"List of router interfaces.\n"},"name":{"type":"string","description":"Router name\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"routes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudNetworkRoutersItemRoute:getCloudNetworkRoutersItemRoute"},"description":"List of custom routes.\n"},"status":{"type":"string","description":"Status of the router.\n"},"updatedAt":{"type":"string","description":"Datetime when the router was last updated\n"}},"type":"object","required":["createdAt","creatorTaskId","distributed","externalGatewayInfo","id","interfaces","name","projectId","region","regionId","routes","status","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkRoutersItemExternalGatewayInfo:getCloudNetworkRoutersItemExternalGatewayInfo":{"properties":{"enableSnat":{"type":"boolean","description":"Is SNAT enabled.\n"},"externalFixedIps":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudNetworkRoutersItemExternalGatewayInfoExternalFixedIp:getCloudNetworkRoutersItemExternalGatewayInfoExternalFixedIp"},"description":"List of external IPs that emit SNAT-ed traffic.\n"},"networkId":{"type":"string","description":"Id of the external network.\n"}},"type":"object","required":["enableSnat","externalFixedIps","networkId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkRoutersItemExternalGatewayInfoExternalFixedIp:getCloudNetworkRoutersItemExternalGatewayInfoExternalFixedIp":{"properties":{"ipAddress":{"type":"string","description":"IP address\n"},"subnetId":{"type":"string","description":"ID of the subnet that allocated the IP\n"}},"type":"object","required":["ipAddress","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkRoutersItemInterface:getCloudNetworkRoutersItemInterface":{"properties":{"ipAssignments":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudNetworkRoutersItemInterfaceIpAssignment:getCloudNetworkRoutersItemInterfaceIpAssignment"},"description":"IP addresses assigned to this port\n"},"macAddress":{"type":"string","description":"MAC address of the virtual port\n"},"networkId":{"type":"string","description":"ID of the network the port is attached to\n"},"portId":{"type":"string","description":"ID of virtual ethernet port object\n"}},"type":"object","required":["ipAssignments","macAddress","networkId","portId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkRoutersItemInterfaceIpAssignment:getCloudNetworkRoutersItemInterfaceIpAssignment":{"properties":{"ipAddress":{"type":"string","description":"IP address\n"},"subnetId":{"type":"string","description":"ID of the subnet that allocated the IP\n"}},"type":"object","required":["ipAddress","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkRoutersItemRoute:getCloudNetworkRoutersItemRoute":{"properties":{"destination":{"type":"string","description":"CIDR of destination IPv4 subnet.\n"},"nexthop":{"type":"string","description":"IPv4 address to forward traffic to if it's destination IP matches 'destination' CIDR.\n"}},"type":"object","required":["destination","nexthop"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkSubnetFindOneBy:getCloudNetworkSubnetFindOneBy":{"properties":{"networkId":{"type":"string","description":"Only list subnets of this network\n"},"orderBy":{"type":"string","description":"Ordering subnets list result by \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, \u003cspan pulumi-lang-nodejs=\"`createdAt`\" pulumi-lang-dotnet=\"`CreatedAt`\" pulumi-lang-go=\"`createdAt`\" pulumi-lang-python=\"`created_at`\" pulumi-lang-yaml=\"`createdAt`\" pulumi-lang-java=\"`createdAt`\"\u003e`created_at`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`updatedAt`\" pulumi-lang-dotnet=\"`UpdatedAt`\" pulumi-lang-go=\"`updatedAt`\" pulumi-lang-python=\"`updated_at`\" pulumi-lang-yaml=\"`updatedAt`\" pulumi-lang-java=\"`updatedAt`\"\u003e`updated_at`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`availableIps`\" pulumi-lang-dotnet=\"`AvailableIps`\" pulumi-lang-go=\"`availableIps`\" pulumi-lang-python=\"`available_ips`\" pulumi-lang-yaml=\"`availableIps`\" pulumi-lang-java=\"`availableIps`\"\u003e`available_ips`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`totalIps`\" pulumi-lang-dotnet=\"`TotalIps`\" pulumi-lang-go=\"`totalIps`\" pulumi-lang-python=\"`total_ips`\" pulumi-lang-yaml=\"`totalIps`\" pulumi-lang-java=\"`totalIps`\"\u003e`total_ips`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`cidr`\" pulumi-lang-dotnet=\"`Cidr`\" pulumi-lang-go=\"`cidr`\" pulumi-lang-python=\"`cidr`\" pulumi-lang-yaml=\"`cidr`\" pulumi-lang-java=\"`cidr`\"\u003e`cidr`\u003c/span\u003e (default) fields of the subnet and directions (`name.asc`).\nAvailable values: \"available*ips.asc\", \"available*ips.desc\", \"cidr.asc\", \"cidr.desc\", \"created*at.asc\", \"created*at.desc\", \"name.asc\", \"name.desc\", \"total*ips.asc\", \"total*ips.desc\", \"updated*at.asc\", \"updated*at.desc\".\n"},"ownedBy":{"type":"string","description":"Controls which subnets are returned. 'project' (default) returns only subnets owned by the project. 'any' returns all subnets from networks available to the project, including subnets from shared networks.\nAvailable values: \"any\", \"project\".\n"},"tagKeyValue":{"type":"string","description":"Optional. Filter by tag key-value pairs.\n"},"tagKeys":{"type":"array","items":{"type":"string"},"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n"}},"type":"object","required":["orderBy","ownedBy"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkSubnetHostRoute:getCloudNetworkSubnetHostRoute":{"properties":{"destination":{"type":"string","description":"CIDR of destination IPv4 subnet.\n"},"nexthop":{"type":"string","description":"IPv4 address to forward traffic to if it's destination IP matches 'destination' CIDR.\n"}},"type":"object","required":["destination","nexthop"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkSubnetTag:getCloudNetworkSubnetTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkSubnetsItem:getCloudNetworkSubnetsItem":{"properties":{"availableIps":{"type":"number","description":"Number of available ips in subnet\n"},"cidr":{"type":"string","description":"CIDR\n"},"createdAt":{"type":"string","description":"Datetime when the subnet was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"dnsNameservers":{"type":"array","items":{"type":"string"},"description":"List IP addresses of a DNS resolver reachable from the network\n"},"enableDhcp":{"type":"boolean","description":"True if DHCP should be enabled\n"},"gatewayIp":{"type":"string","description":"Default GW IPv4 address, advertised in DHCP routes of this subnet. If null, no gateway is advertised by this subnet.\n"},"hasRouter":{"type":"boolean","description":"Deprecated. Always returns \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.\n","deprecationMessage":"Deprecated"},"hostRoutes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudNetworkSubnetsItemHostRoute:getCloudNetworkSubnetsItemHostRoute"},"description":"List of custom static routes to advertise via DHCP.\n"},"id":{"type":"string","description":"Subnet id.\n"},"ipVersion":{"type":"number","description":"IP version\nAvailable values: 4, 6.\n"},"name":{"type":"string","description":"Subnet name\n"},"networkId":{"type":"string","description":"Network ID\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudNetworkSubnetsItemTag:getCloudNetworkSubnetsItemTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"totalIps":{"type":"number","description":"Total number of ips in subnet\n"},"updatedAt":{"type":"string","description":"Datetime when the subnet was last updated\n"}},"type":"object","required":["availableIps","cidr","createdAt","creatorTaskId","dnsNameservers","enableDhcp","gatewayIp","hasRouter","hostRoutes","id","ipVersion","name","networkId","projectId","region","regionId","tags","totalIps","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkSubnetsItemHostRoute:getCloudNetworkSubnetsItemHostRoute":{"properties":{"destination":{"type":"string","description":"CIDR of destination IPv4 subnet.\n"},"nexthop":{"type":"string","description":"IPv4 address to forward traffic to if it's destination IP matches 'destination' CIDR.\n"}},"type":"object","required":["destination","nexthop"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkSubnetsItemTag:getCloudNetworkSubnetsItemTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworkTag:getCloudNetworkTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworksItem:getCloudNetworksItem":{"properties":{"createdAt":{"type":"string","description":"Datetime when the network was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"default":{"type":"boolean","description":"True if network has \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e attribute\n"},"external":{"type":"boolean","description":"True if the network `router:external` attribute\n"},"id":{"type":"string","description":"Network ID\n"},"mtu":{"type":"number","description":"MTU (maximum transmission unit). Default value is 1450\n"},"name":{"type":"string","description":"Network name\n"},"portSecurityEnabled":{"type":"boolean","description":"Indicates \u003cspan pulumi-lang-nodejs=\"`portSecurityEnabled`\" pulumi-lang-dotnet=\"`PortSecurityEnabled`\" pulumi-lang-go=\"`portSecurityEnabled`\" pulumi-lang-python=\"`port_security_enabled`\" pulumi-lang-yaml=\"`portSecurityEnabled`\" pulumi-lang-java=\"`portSecurityEnabled`\"\u003e`port_security_enabled`\u003c/span\u003e status of all newly created in the network ports.\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"segmentationId":{"type":"number","description":"Id of network segment\n"},"shared":{"type":"boolean","description":"True when the network is shared with your project by external owner\n"},"subnets":{"type":"array","items":{"type":"string"},"description":"List of subnetworks\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudNetworksItemTag:getCloudNetworksItemTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"type":{"type":"string","description":"Network type (vlan, vxlan)\n"},"updatedAt":{"type":"string","description":"Datetime when the network was last updated\n"}},"type":"object","required":["createdAt","creatorTaskId","default","external","id","mtu","name","portSecurityEnabled","projectId","region","regionId","segmentationId","shared","subnets","tags","type","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudNetworksItemTag:getCloudNetworksItemTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudPlacementGroupInstance:getCloudPlacementGroupInstance":{"properties":{"instanceId":{"type":"string","description":"The ID of the instance, corresponding to the attribute 'id'.\n"},"instanceName":{"type":"string","description":"The name of the instance, corresponding to the attribute 'name'.\n"}},"type":"object","required":["instanceId","instanceName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudProjectFindOneBy:getCloudProjectFindOneBy":{"properties":{"clientId":{"type":"number","description":"Client ID filter for administrators.\n"},"includeDeleted":{"type":"boolean","description":"Whether to include deleted projects in the response.\n"},"name":{"type":"string","description":"Name to filter the results by.\n"},"orderBy":{"type":"string","description":"Order by field and direction.\nAvailable values: \"created*at.asc\", \"created*at.desc\", \"name.asc\", \"name.desc\".\n"}},"type":"object","required":["includeDeleted","orderBy"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudProjectsItem:getCloudProjectsItem":{"properties":{"clientId":{"type":"number","description":"ID associated with the client.\n"},"createdAt":{"type":"string","description":"Datetime of creation, which is automatically generated.\n"},"deletedAt":{"type":"string","description":"Datetime of deletion, which is automatically generated if the project is deleted.\n"},"description":{"type":"string","description":"Description of the project.\n"},"id":{"type":"number","description":"Project ID, which is automatically generated upon creation.\n"},"isDefault":{"type":"boolean","description":"Indicates if the project is the default one. Each client always has one default project.\n"},"name":{"type":"string","description":"Unique project name for a client.\n"},"state":{"type":"string","description":"The state of the project.\n"}},"type":"object","required":["clientId","createdAt","deletedAt","description","id","isDefault","name","state"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudRegionCoordinates:getCloudRegionCoordinates":{"properties":{"latitude":{"type":"string"},"longitude":{"type":"string"}},"type":"object","required":["latitude","longitude"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudRegionsItem:getCloudRegionsItem":{"properties":{"accessLevel":{"type":"string","description":"The access level of the region.\nAvailable values: \"core\", \"edge\".\n"},"availableVolumeTypes":{"type":"array","items":{"type":"string"},"description":"List of available volume types, 'standard', 'ssd_hiiops', 'cold'].\n"},"coordinates":{"$ref":"#/types/gcore:index%2FgetCloudRegionsItemCoordinates:getCloudRegionsItemCoordinates","description":"Coordinates of the region\n"},"country":{"type":"string","description":"Two-letter country code, ISO 3166-1 alpha-2\n"},"createdAt":{"type":"string","description":"Region creation date and time\n"},"createdOn":{"type":"string","description":"This field is deprecated. Use \u003cspan pulumi-lang-nodejs=\"`createdAt`\" pulumi-lang-dotnet=\"`CreatedAt`\" pulumi-lang-go=\"`createdAt`\" pulumi-lang-python=\"`created_at`\" pulumi-lang-yaml=\"`createdAt`\" pulumi-lang-java=\"`createdAt`\"\u003e`created_at`\u003c/span\u003e instead.\n","deprecationMessage":"Deprecated"},"ddosEndpointId":{"type":"number","description":"DDoS endpoint ID\n","deprecationMessage":"Deprecated"},"displayName":{"type":"string","description":"Human-readable region name\n"},"endpointType":{"type":"string","description":"Endpoint type\nAvailable values: \"admin\", \"internal\", \"public\".\n"},"externalNetworkId":{"type":"string","description":"External network ID for Neutron\n"},"fileShareTypes":{"type":"array","items":{"type":"string"},"description":"List of available file share types\n"},"hasAi":{"type":"boolean","description":"Region has AI capability\n"},"hasAiGpu":{"type":"boolean","description":"Region has AI GPU capability\n"},"hasBaremetal":{"type":"boolean","description":"Region has bare metal capability\n"},"hasBasicVm":{"type":"boolean","description":"Region has basic vm capability\n"},"hasDbaas":{"type":"boolean","description":"Region has DBAAS service\n"},"hasDdos":{"type":"boolean","description":"Region has Advanced DDoS Protection capability\n"},"hasK8s":{"type":"boolean","description":"Region has managed kubernetes capability\n"},"hasKvm":{"type":"boolean","description":"Region has KVM virtualization capability\n"},"hasSfs":{"type":"boolean","description":"Region has SFS capability\n"},"id":{"type":"number","description":"Region ID\n"},"keystoneId":{"type":"number","description":"Foreign key to Keystone entity\n"},"keystoneName":{"type":"string","description":"Technical region name\n"},"metricsDatabaseId":{"type":"number","description":"Foreign key to Metrics database entity\n"},"state":{"type":"string","description":"Region state\nAvailable values: \"ACTIVE\", \"DELETED\", \"DELETING\", \"DELETION_FAILED\", \"INACTIVE\", \"MAINTENANCE\", \"NEW\".\n"},"vlanPhysicalNetwork":{"type":"string","description":"Physical network name to create vlan networks\n"},"zone":{"type":"string","description":"Geographical zone\nAvailable values: \"AMERICAS\", \"APAC\", \"EMEA\", \"RUSSIA*AND*CIS\".\n"}},"type":"object","required":["accessLevel","availableVolumeTypes","coordinates","country","createdAt","createdOn","ddosEndpointId","displayName","endpointType","externalNetworkId","fileShareTypes","hasAi","hasAiGpu","hasBaremetal","hasBasicVm","hasDbaas","hasDdos","hasK8s","hasKvm","hasSfs","id","keystoneId","keystoneName","metricsDatabaseId","state","vlanPhysicalNetwork","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudRegionsItemCoordinates:getCloudRegionsItemCoordinates":{"properties":{"latitude":{"type":"string"},"longitude":{"type":"string"}},"type":"object","required":["latitude","longitude"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudReservedFixedIpAllowedAddressPair:getCloudReservedFixedIpAllowedAddressPair":{"properties":{"ipAddress":{"type":"string","description":"Subnet mask or IP address of the port specified in \u003cspan pulumi-lang-nodejs=\"`allowedAddressPairs`\" pulumi-lang-dotnet=\"`AllowedAddressPairs`\" pulumi-lang-go=\"`allowedAddressPairs`\" pulumi-lang-python=\"`allowed_address_pairs`\" pulumi-lang-yaml=\"`allowedAddressPairs`\" pulumi-lang-java=\"`allowedAddressPairs`\"\u003e`allowed_address_pairs`\u003c/span\u003e\n"},"macAddress":{"type":"string","description":"MAC address of the port specified in \u003cspan pulumi-lang-nodejs=\"`allowedAddressPairs`\" pulumi-lang-dotnet=\"`AllowedAddressPairs`\" pulumi-lang-go=\"`allowedAddressPairs`\" pulumi-lang-python=\"`allowed_address_pairs`\" pulumi-lang-yaml=\"`allowedAddressPairs`\" pulumi-lang-java=\"`allowedAddressPairs`\"\u003e`allowed_address_pairs`\u003c/span\u003e\n"}},"type":"object","required":["ipAddress","macAddress"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudReservedFixedIpAttachment:getCloudReservedFixedIpAttachment":{"properties":{"resourceId":{"type":"string","description":"Resource ID\n"},"resourceType":{"type":"string","description":"Resource type\n"}},"type":"object","required":["resourceId","resourceType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudReservedFixedIpNetwork:getCloudReservedFixedIpNetwork":{"properties":{"createdAt":{"type":"string","description":"Datetime when the network was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"default":{"type":"boolean","description":"True if network has \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e attribute\n"},"external":{"type":"boolean","description":"True if the network `router:external` attribute\n"},"id":{"type":"string","description":"Network ID\n"},"mtu":{"type":"number","description":"MTU (maximum transmission unit). Default value is 1450\n"},"name":{"type":"string","description":"Network name\n"},"portSecurityEnabled":{"type":"boolean","description":"Indicates \u003cspan pulumi-lang-nodejs=\"`portSecurityEnabled`\" pulumi-lang-dotnet=\"`PortSecurityEnabled`\" pulumi-lang-go=\"`portSecurityEnabled`\" pulumi-lang-python=\"`port_security_enabled`\" pulumi-lang-yaml=\"`portSecurityEnabled`\" pulumi-lang-java=\"`portSecurityEnabled`\"\u003e`port_security_enabled`\u003c/span\u003e status of all newly created in the network ports.\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"segmentationId":{"type":"number","description":"Id of network segment\n"},"shared":{"type":"boolean","description":"True when the network is shared with your project by external owner\n"},"subnets":{"type":"array","items":{"type":"string"},"description":"List of subnetworks\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudReservedFixedIpNetworkTag:getCloudReservedFixedIpNetworkTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"type":{"type":"string","description":"Network type (vlan, vxlan)\n"},"updatedAt":{"type":"string","description":"Datetime when the network was last updated\n"}},"type":"object","required":["createdAt","creatorTaskId","default","external","id","mtu","name","portSecurityEnabled","projectId","region","regionId","segmentationId","shared","subnets","tags","type","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudReservedFixedIpNetworkTag:getCloudReservedFixedIpNetworkTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudReservedFixedIpsItem:getCloudReservedFixedIpsItem":{"properties":{"allowedAddressPairs":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudReservedFixedIpsItemAllowedAddressPair:getCloudReservedFixedIpsItemAllowedAddressPair"},"description":"Group of subnet masks and/or IP addresses that share the current IP as VIP\n"},"attachments":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudReservedFixedIpsItemAttachment:getCloudReservedFixedIpsItemAttachment"},"description":"Reserved fixed IP attachment entities\n"},"createdAt":{"type":"string","description":"Datetime when the reserved fixed IP was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"fixedIpAddress":{"type":"string","description":"IPv4 address of the reserved fixed IP\n"},"fixedIpv6Address":{"type":"string","description":"IPv6 address of the reserved fixed IP\n"},"isExternal":{"type":"boolean","description":"If reserved fixed IP belongs to a public network\n"},"isVip":{"type":"boolean","description":"If reserved fixed IP is a VIP\n"},"name":{"type":"string","description":"Reserved fixed IP name\n"},"network":{"$ref":"#/types/gcore:index%2FgetCloudReservedFixedIpsItemNetwork:getCloudReservedFixedIpsItemNetwork","description":"Network details\n"},"networkId":{"type":"string","description":"ID of the network the port is attached to\n"},"portId":{"type":"string","description":"ID of the port underlying the reserved fixed IP\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"status":{"type":"string","description":"Underlying port status\n"},"subnetId":{"type":"string","description":"ID of the subnet that owns the IP address\n"},"subnetV6Id":{"type":"string","description":"ID of the subnet that owns the IPv6 address\n"},"updatedAt":{"type":"string","description":"Datetime when the reserved fixed IP was last updated\n"}},"type":"object","required":["allowedAddressPairs","attachments","createdAt","creatorTaskId","fixedIpAddress","fixedIpv6Address","isExternal","isVip","name","network","networkId","portId","projectId","region","regionId","status","subnetId","subnetV6Id","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudReservedFixedIpsItemAllowedAddressPair:getCloudReservedFixedIpsItemAllowedAddressPair":{"properties":{"ipAddress":{"type":"string","description":"Subnet mask or IP address of the port specified in \u003cspan pulumi-lang-nodejs=\"`allowedAddressPairs`\" pulumi-lang-dotnet=\"`AllowedAddressPairs`\" pulumi-lang-go=\"`allowedAddressPairs`\" pulumi-lang-python=\"`allowed_address_pairs`\" pulumi-lang-yaml=\"`allowedAddressPairs`\" pulumi-lang-java=\"`allowedAddressPairs`\"\u003e`allowed_address_pairs`\u003c/span\u003e\n"},"macAddress":{"type":"string","description":"MAC address of the port specified in \u003cspan pulumi-lang-nodejs=\"`allowedAddressPairs`\" pulumi-lang-dotnet=\"`AllowedAddressPairs`\" pulumi-lang-go=\"`allowedAddressPairs`\" pulumi-lang-python=\"`allowed_address_pairs`\" pulumi-lang-yaml=\"`allowedAddressPairs`\" pulumi-lang-java=\"`allowedAddressPairs`\"\u003e`allowed_address_pairs`\u003c/span\u003e\n"}},"type":"object","required":["ipAddress","macAddress"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudReservedFixedIpsItemAttachment:getCloudReservedFixedIpsItemAttachment":{"properties":{"resourceId":{"type":"string","description":"Resource ID\n"},"resourceType":{"type":"string","description":"Resource type\n"}},"type":"object","required":["resourceId","resourceType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudReservedFixedIpsItemNetwork:getCloudReservedFixedIpsItemNetwork":{"properties":{"createdAt":{"type":"string","description":"Datetime when the network was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"default":{"type":"boolean","description":"True if network has \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e attribute\n"},"external":{"type":"boolean","description":"True if the network `router:external` attribute\n"},"id":{"type":"string","description":"Network ID\n"},"mtu":{"type":"number","description":"MTU (maximum transmission unit). Default value is 1450\n"},"name":{"type":"string","description":"Network name\n"},"portSecurityEnabled":{"type":"boolean","description":"Indicates \u003cspan pulumi-lang-nodejs=\"`portSecurityEnabled`\" pulumi-lang-dotnet=\"`PortSecurityEnabled`\" pulumi-lang-go=\"`portSecurityEnabled`\" pulumi-lang-python=\"`port_security_enabled`\" pulumi-lang-yaml=\"`portSecurityEnabled`\" pulumi-lang-java=\"`portSecurityEnabled`\"\u003e`port_security_enabled`\u003c/span\u003e status of all newly created in the network ports.\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"segmentationId":{"type":"number","description":"Id of network segment\n"},"shared":{"type":"boolean","description":"True when the network is shared with your project by external owner\n"},"subnets":{"type":"array","items":{"type":"string"},"description":"List of subnetworks\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudReservedFixedIpsItemNetworkTag:getCloudReservedFixedIpsItemNetworkTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"type":{"type":"string","description":"Network type (vlan, vxlan)\n"},"updatedAt":{"type":"string","description":"Datetime when the network was last updated\n"}},"type":"object","required":["createdAt","creatorTaskId","default","external","id","mtu","name","portSecurityEnabled","projectId","region","regionId","segmentationId","shared","subnets","tags","type","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudReservedFixedIpsItemNetworkTag:getCloudReservedFixedIpsItemNetworkTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudSecretsItem:getCloudSecretsItem":{"properties":{"algorithm":{"type":"string","description":"Metadata provided by a user or system for informational purposes. Defaults to None\n"},"bitLength":{"type":"number","description":"Metadata provided by a user or system for informational purposes. Value must be greater than zero. Defaults to None\n"},"contentTypes":{"type":"object","additionalProperties":{"type":"string"},"description":"Describes the content-types that can be used to retrieve the payload. The content-type used with symmetric secrets is application/octet-stream\n"},"created":{"type":"string","description":"Datetime when the secret was created. The format is 2020-01-01T12:00:00+00:00\n"},"expiration":{"type":"string","description":"Datetime when the secret will expire. The format is 2020-01-01T12:00:00+00:00. Defaults to None\n"},"id":{"type":"string","description":"Secret uuid\n"},"mode":{"type":"string","description":"Metadata provided by a user or system for informational purposes. Defaults to None\n"},"name":{"type":"string","description":"Secret name\n"},"secretType":{"type":"string","description":"Secret type, base64 encoded. symmetric - Used for storing byte arrays such as keys suitable for symmetric encryption; public - Used for storing the public key of an asymmetric keypair; private - Used for storing the private key of an asymmetric keypair; passphrase - Used for storing plain text passphrases; certificate - Used for storing cryptographic certificates such as X.509 certificates; opaque - Used for backwards compatibility with previous versions of the API\nAvailable values: \"certificate\", \"opaque\", \"passphrase\", \"private\", \"public\", \"symmetric\".\n"},"status":{"type":"string","description":"Status\n"}},"type":"object","required":["algorithm","bitLength","contentTypes","created","expiration","id","mode","name","secretType","status"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudSecurityGroupFindOneBy:getCloudSecurityGroupFindOneBy":{"properties":{"name":{"type":"string","description":"Optional. Filter by name. Must be specified a full name of the security group.\n"},"tagKeyValue":{"type":"string","description":"Optional. Filter by tag key-value pairs.\n"},"tagKeys":{"type":"array","items":{"type":"string"},"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n"}},"type":"object"},"gcore:index/getCloudSecurityGroupSecurityGroupRule:getCloudSecurityGroupSecurityGroupRule":{"properties":{"createdAt":{"type":"string","description":"Datetime when the rule was created\n"},"description":{"type":"string","description":"Rule description\n"},"direction":{"type":"string","description":"Ingress or egress, which is the direction in which the security group rule is applied\nAvailable values: \"egress\", \"ingress\".\n"},"ethertype":{"type":"string","description":"Must be IPv4 or IPv6, and addresses represented in CIDR must match the ingress or egress rules.\nAvailable values: \"IPv4\", \"IPv6\".\n"},"id":{"type":"string","description":"The ID of the security group rule\n"},"portRangeMax":{"type":"number","description":"The maximum port number in the range that is matched by the security group rule\n"},"portRangeMin":{"type":"number","description":"The minimum port number in the range that is matched by the security group rule\n"},"protocol":{"type":"string","description":"Protocol\nAvailable values: \"ah\", \"any\", \"dccp\", \"egp\", \"esp\", \"gre\", \"icmp\", \"igmp\", \"ipencap\", \"ipip\", \"ipv6-encap\", \"ipv6-frag\", \"ipv6-icmp\", \"ipv6-nonxt\", \"ipv6-opts\", \"ipv6-route\", \"ospf\", \"pgm\", \"rsvp\", \"sctp\", \"tcp\", \"udp\", \"udplite\", \"vrrp\".\n"},"remoteGroupId":{"type":"string","description":"The remote group UUID to associate with this security group rule\n"},"remoteIpPrefix":{"type":"string","description":"The remote IP prefix that is matched by this security group rule\n"},"revisionNumber":{"type":"number","description":"The revision number of the resource\n"},"securityGroupId":{"type":"string","description":"The security group ID to associate with this security group rule\n"},"updatedAt":{"type":"string","description":"Datetime when the rule was last updated\n"}},"type":"object","required":["createdAt","description","direction","ethertype","id","portRangeMax","portRangeMin","protocol","remoteGroupId","remoteIpPrefix","revisionNumber","securityGroupId","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudSecurityGroupTagsV2:getCloudSecurityGroupTagsV2":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudSecurityGroupsItem:getCloudSecurityGroupsItem":{"properties":{"createdAt":{"type":"string","description":"Datetime when the security group was created\n"},"description":{"type":"string","description":"Security group description\n"},"id":{"type":"string","description":"Security group ID\n"},"name":{"type":"string","description":"Security group name\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"revisionNumber":{"type":"number","description":"The number of revisions\n"},"securityGroupRules":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudSecurityGroupsItemSecurityGroupRule:getCloudSecurityGroupsItemSecurityGroupRule"},"description":"Security group rules\n"},"tagsV2s":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudSecurityGroupsItemTagsV2:getCloudSecurityGroupsItemTagsV2"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the security group was last updated\n"}},"type":"object","required":["createdAt","description","id","name","projectId","region","regionId","revisionNumber","securityGroupRules","tagsV2s","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudSecurityGroupsItemSecurityGroupRule:getCloudSecurityGroupsItemSecurityGroupRule":{"properties":{"createdAt":{"type":"string","description":"Datetime when the rule was created\n"},"description":{"type":"string","description":"Rule description\n"},"direction":{"type":"string","description":"Ingress or egress, which is the direction in which the security group rule is applied\nAvailable values: \"egress\", \"ingress\".\n"},"ethertype":{"type":"string","description":"Must be IPv4 or IPv6, and addresses represented in CIDR must match the ingress or egress rules.\nAvailable values: \"IPv4\", \"IPv6\".\n"},"id":{"type":"string","description":"The ID of the security group rule\n"},"portRangeMax":{"type":"number","description":"The maximum port number in the range that is matched by the security group rule\n"},"portRangeMin":{"type":"number","description":"The minimum port number in the range that is matched by the security group rule\n"},"protocol":{"type":"string","description":"Protocol\nAvailable values: \"ah\", \"any\", \"dccp\", \"egp\", \"esp\", \"gre\", \"icmp\", \"igmp\", \"ipencap\", \"ipip\", \"ipv6-encap\", \"ipv6-frag\", \"ipv6-icmp\", \"ipv6-nonxt\", \"ipv6-opts\", \"ipv6-route\", \"ospf\", \"pgm\", \"rsvp\", \"sctp\", \"tcp\", \"udp\", \"udplite\", \"vrrp\".\n"},"remoteGroupId":{"type":"string","description":"The remote group UUID to associate with this security group rule\n"},"remoteIpPrefix":{"type":"string","description":"The remote IP prefix that is matched by this security group rule\n"},"revisionNumber":{"type":"number","description":"The revision number of the resource\n"},"securityGroupId":{"type":"string","description":"The security group ID to associate with this security group rule\n"},"updatedAt":{"type":"string","description":"Datetime when the rule was last updated\n"}},"type":"object","required":["createdAt","description","direction","ethertype","id","portRangeMax","portRangeMin","protocol","remoteGroupId","remoteIpPrefix","revisionNumber","securityGroupId","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudSecurityGroupsItemTagsV2:getCloudSecurityGroupsItemTagsV2":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudSshKeyFindOneBy:getCloudSshKeyFindOneBy":{"properties":{"name":{"type":"string","description":"SSH key name. Partial substring match. Example: `name=abc` matches any key containing \u003cspan pulumi-lang-nodejs=\"`abc`\" pulumi-lang-dotnet=\"`Abc`\" pulumi-lang-go=\"`abc`\" pulumi-lang-python=\"`abc`\" pulumi-lang-yaml=\"`abc`\" pulumi-lang-java=\"`abc`\"\u003e`abc`\u003c/span\u003e in name.\n"},"orderBy":{"type":"string","description":"Sort order for the SSH keys\nAvailable values: \"created*at.asc\", \"created*at.desc\", \"name.asc\", \"name.desc\".\n"}},"type":"object","required":["orderBy"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudSshKeysItem:getCloudSshKeysItem":{"properties":{"createdAt":{"type":"string","description":"SSH key creation time\n"},"fingerprint":{"type":"string","description":"Fingerprint\n"},"id":{"type":"string","description":"SSH key ID\n"},"name":{"type":"string","description":"SSH key name\n"},"projectId":{"type":"number","description":"Project ID\n"},"publicKey":{"type":"string","description":"The public part of an SSH key is the shareable portion of an SSH key pair. It can be safely sent to servers or services to grant access. It does not contain sensitive information.\n"},"sharedInProject":{"type":"boolean","description":"SSH key will be visible to all users in the project\n"},"state":{"type":"string","description":"SSH key state\nAvailable values: \"ACTIVE\", \"DELETING\".\n"}},"type":"object","required":["createdAt","fingerprint","id","name","projectId","publicKey","sharedInProject","state"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudVolumeAttachment:getCloudVolumeAttachment":{"properties":{"attachedAt":{"type":"string","description":"The date and time when the attachment was created.\n"},"attachmentId":{"type":"string","description":"The unique identifier of the attachment object.\n"},"device":{"type":"string","description":"The block device name inside the guest instance.\n"},"flavorId":{"type":"string","description":"The flavor ID of the instance.\n"},"instanceName":{"type":"string","description":"The name of the instance if attached and the server name is known.\n"},"serverId":{"type":"string","description":"The unique identifier of the instance.\n"},"volumeId":{"type":"string","description":"The unique identifier of the attached volume.\n"}},"type":"object","required":["attachedAt","attachmentId","device","flavorId","instanceName","serverId","volumeId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudVolumeFindOneBy:getCloudVolumeFindOneBy":{"properties":{"bootable":{"type":"boolean","description":"Filter by bootable field\n"},"clusterId":{"type":"string","description":"Filter volumes by k8s cluster ID\n"},"hasAttachments":{"type":"boolean","description":"Filter by the presence of attachments\n"},"idPart":{"type":"string","description":"Filter the volume list result by the ID part of the volume\n"},"instanceId":{"type":"string","description":"Filter volumes by instance ID\n"},"namePart":{"type":"string","description":"Filter volumes by \u003cspan pulumi-lang-nodejs=\"`namePart`\" pulumi-lang-dotnet=\"`NamePart`\" pulumi-lang-go=\"`namePart`\" pulumi-lang-python=\"`name_part`\" pulumi-lang-yaml=\"`namePart`\" pulumi-lang-java=\"`namePart`\"\u003e`name_part`\u003c/span\u003e inclusion in volume name.Any substring can be used and volumes will be returned with names containing the substring.\n"},"tagKeyValue":{"type":"string","description":"Optional. Filter by tag key-value pairs.\n"},"tagKeys":{"type":"array","items":{"type":"string"},"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n"}},"type":"object"},"gcore:index/getCloudVolumeLimiterStats:getCloudVolumeLimiterStats":{"properties":{"iopsBaseLimit":{"type":"number","description":"The sustained IOPS (Input/Output Operations Per Second) limit.\n"},"iopsBurstLimit":{"type":"number","description":"The burst IOPS limit.\n"},"mBpsBaseLimit":{"type":"number","description":"The sustained bandwidth limit in megabytes per second (MBps).\n"},"mBpsBurstLimit":{"type":"number","description":"The burst bandwidth limit in megabytes per second (MBps).\n"}},"type":"object","required":["iopsBaseLimit","iopsBurstLimit","mBpsBaseLimit","mBpsBurstLimit"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudVolumeTag:getCloudVolumeTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudVolumesItem:getCloudVolumesItem":{"properties":{"attachments":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudVolumesItemAttachment:getCloudVolumesItemAttachment"},"description":"List of attachments associated with the volume.\n"},"bootable":{"type":"boolean","description":"Indicates whether the volume is bootable.\n"},"createdAt":{"type":"string","description":"The date and time when the volume was created.\n"},"creatorTaskId":{"type":"string","description":"The ID of the task that created this volume.\n"},"id":{"type":"string","description":"The unique identifier of the volume.\n"},"isRootVolume":{"type":"boolean","description":"Indicates whether this is a root volume.\n"},"limiterStats":{"$ref":"#/types/gcore:index%2FgetCloudVolumesItemLimiterStats:getCloudVolumesItemLimiterStats","description":"Schema representing the Quality of Service (QoS) parameters for a volume.\n"},"name":{"type":"string","description":"The name of the volume.\n"},"projectId":{"type":"number","description":"Project ID.\n"},"region":{"type":"string","description":"The region where the volume is located.\n"},"regionId":{"type":"number","description":"The identifier of the region.\n"},"size":{"type":"number","description":"The size of the volume in gibibytes (GiB).\n"},"snapshotIds":{"type":"array","items":{"type":"string"},"description":"List of snapshot IDs associated with this volume.\n"},"status":{"type":"string","description":"The current status of the volume.\nAvailable values: \"attaching\", \"available\", \"awaiting-transfer\", \"backing-up\", \"creating\", \"deleting\", \"detaching\", \"downloading\", \"error\", \"error*backing-up\", \"error*deleting\", \"error*extending\", \"error*restoring\", \"extending\", \"in-use\", \"maintenance\", \"reserved\", \"restoring-backup\", \"retyping\", \"reverting\", \"uploading\".\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetCloudVolumesItemTag:getCloudVolumesItemTag"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"The date and time when the volume was last updated.\n"},"volumeImageMetadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Image metadata for volumes created from an image.\n"},"volumeType":{"type":"string","description":"The type of volume storage.\n"}},"type":"object","required":["attachments","bootable","createdAt","creatorTaskId","id","isRootVolume","limiterStats","name","projectId","region","regionId","size","snapshotIds","status","tags","updatedAt","volumeImageMetadata","volumeType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudVolumesItemAttachment:getCloudVolumesItemAttachment":{"properties":{"attachedAt":{"type":"string","description":"The date and time when the attachment was created.\n"},"attachmentId":{"type":"string","description":"The unique identifier of the attachment object.\n"},"device":{"type":"string","description":"The block device name inside the guest instance.\n"},"flavorId":{"type":"string","description":"The flavor ID of the instance.\n"},"instanceName":{"type":"string","description":"The name of the instance if attached and the server name is known.\n"},"serverId":{"type":"string","description":"The unique identifier of the instance.\n"},"volumeId":{"type":"string","description":"The unique identifier of the attached volume.\n"}},"type":"object","required":["attachedAt","attachmentId","device","flavorId","instanceName","serverId","volumeId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudVolumesItemLimiterStats:getCloudVolumesItemLimiterStats":{"properties":{"iopsBaseLimit":{"type":"number","description":"The sustained IOPS (Input/Output Operations Per Second) limit.\n"},"iopsBurstLimit":{"type":"number","description":"The burst IOPS limit.\n"},"mBpsBaseLimit":{"type":"number","description":"The sustained bandwidth limit in megabytes per second (MBps).\n"},"mBpsBurstLimit":{"type":"number","description":"The burst bandwidth limit in megabytes per second (MBps).\n"}},"type":"object","required":["iopsBaseLimit","iopsBurstLimit","mBpsBaseLimit","mBpsBurstLimit"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getCloudVolumesItemTag:getCloudVolumesItemTag":{"properties":{"key":{"type":"string","description":"Tag key. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"},"readOnly":{"type":"boolean","description":"If true, the tag is read-only and cannot be modified by the user\n"},"value":{"type":"string","description":"Tag value. Maximum 255 characters. Cannot contain spaces, tabs, newlines, empty string or '=' character.\n"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getDnsNetworkMappingMapping:getDnsNetworkMappingMapping":{"properties":{"cidr4s":{"type":"array","items":{"type":"string"}},"cidr6s":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}}},"type":"object","required":["cidr4s","cidr6s","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getDnsZoneRecord:getDnsZoneRecord":{"properties":{"name":{"type":"string"},"shortAnswers":{"type":"array","items":{"type":"string"}},"ttl":{"type":"number"},"type":{"type":"string"}},"type":"object","required":["name","shortAnswers","ttl","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getDnsZoneRrsetPicker:getDnsZoneRrsetPicker":{"properties":{"limit":{"type":"number","description":"Limits the number of records returned by the filter\nCan be a positive value for a specific limit. Use zero or leave it blank to indicate no limits.\n"},"strict":{"type":"boolean","description":"if strict=false, then the filter will return all records if no records match the filter\n"},"type":{"type":"string","description":"Filter type\nAvailable values: \"geodns\", \"asn\", \"country\", \"continent\", \"region\", \"ip\", \"geodistance\", \u003cspan pulumi-lang-nodejs=\"\"weightedShuffle\"\" pulumi-lang-dotnet=\"\"WeightedShuffle\"\" pulumi-lang-go=\"\"weightedShuffle\"\" pulumi-lang-python=\"\"weighted_shuffle\"\" pulumi-lang-yaml=\"\"weightedShuffle\"\" pulumi-lang-java=\"\"weightedShuffle\"\"\u003e\"weighted_shuffle\"\u003c/span\u003e, \"default\", \u003cspan pulumi-lang-nodejs=\"\"firstN\"\" pulumi-lang-dotnet=\"\"FirstN\"\" pulumi-lang-go=\"\"firstN\"\" pulumi-lang-python=\"\"first_n\"\" pulumi-lang-yaml=\"\"firstN\"\" pulumi-lang-java=\"\"firstN\"\"\u003e\"first_n\"\u003c/span\u003e.\n"}},"type":"object","required":["limit","strict","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getDnsZoneRrsetResourceRecord:getDnsZoneRrsetResourceRecord":{"properties":{"contents":{"type":"array","items":{"type":"string"},"description":"Content of resource record\nThe exact length of the array depends on the type of rrset,\neach individual record parameter must be a separate element of the array. For example\n- SRV-record: `[100, 1, 5061, \"example.com\"]`\n- CNAME-record: `[ \"the.target.domain\" ]`\n- A-record: `[ \"1.2.3.4\", \"5.6.7.8\" ]`\n- AAAA-record: `[ \"2001:db8::1\", \"2001:db8::2\" ]`\n- MX-record: `[ \"mail1.example.com\", \"mail2.example.com\" ]`\n- SVCB/HTTPS-record: `[ 1, \".\", [\"alpn\", \"h3\", \"h2\"], [ \"port\", 1443 ], [ \"ipv4hint\", \"10.0.0.1\" ], [ \"ech\", \"AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA\" ] ]`\n"},"enabled":{"type":"boolean"},"id":{"type":"number"},"meta":{"type":"object","additionalProperties":{"type":"string"},"description":"Meta information for record\nMap with string key and any valid json as value, with valid keys\n1. \u003cspan pulumi-lang-nodejs=\"`asn`\" pulumi-lang-dotnet=\"`Asn`\" pulumi-lang-go=\"`asn`\" pulumi-lang-python=\"`asn`\" pulumi-lang-yaml=\"`asn`\" pulumi-lang-java=\"`asn`\"\u003e`asn`\u003c/span\u003e (array of int)\n2. \u003cspan pulumi-lang-nodejs=\"`continents`\" pulumi-lang-dotnet=\"`Continents`\" pulumi-lang-go=\"`continents`\" pulumi-lang-python=\"`continents`\" pulumi-lang-yaml=\"`continents`\" pulumi-lang-java=\"`continents`\"\u003e`continents`\u003c/span\u003e (array of string)\n3. \u003cspan pulumi-lang-nodejs=\"`countries`\" pulumi-lang-dotnet=\"`Countries`\" pulumi-lang-go=\"`countries`\" pulumi-lang-python=\"`countries`\" pulumi-lang-yaml=\"`countries`\" pulumi-lang-java=\"`countries`\"\u003e`countries`\u003c/span\u003e (array of string)\n4. \u003cspan pulumi-lang-nodejs=\"`latlong`\" pulumi-lang-dotnet=\"`Latlong`\" pulumi-lang-go=\"`latlong`\" pulumi-lang-python=\"`latlong`\" pulumi-lang-yaml=\"`latlong`\" pulumi-lang-java=\"`latlong`\"\u003e`latlong`\u003c/span\u003e (array of float64, latitude and longitude)\n5. \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 (bool)\n6. \u003cspan pulumi-lang-nodejs=\"`notes`\" pulumi-lang-dotnet=\"`Notes`\" pulumi-lang-go=\"`notes`\" pulumi-lang-python=\"`notes`\" pulumi-lang-yaml=\"`notes`\" pulumi-lang-java=\"`notes`\"\u003e`notes`\u003c/span\u003e (string)\n7. \u003cspan pulumi-lang-nodejs=\"`weight`\" pulumi-lang-dotnet=\"`Weight`\" pulumi-lang-go=\"`weight`\" pulumi-lang-python=\"`weight`\" pulumi-lang-yaml=\"`weight`\" pulumi-lang-java=\"`weight`\"\u003e`weight`\u003c/span\u003e (float)\n8. \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e (string)\n9. \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e (bool)\n\nSome keys are reserved for balancing, @see https://api.gcore.com/dns/v2/info/meta\n\nThis meta will be used to decide which resource record should pass\nthrough filters from the filter set\n"}},"type":"object","required":["contents","enabled","id","meta"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getDnsZoneRrsetWarning:getDnsZoneRrsetWarning":{"properties":{"key":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["key","message"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getDnsZoneRrsetsAmount:getDnsZoneRrsetsAmount":{"properties":{"dynamic":{"$ref":"#/types/gcore:index%2FgetDnsZoneRrsetsAmountDynamic:getDnsZoneRrsetsAmountDynamic","description":"Amount of dynamic RRsets in zone\n"},"static":{"type":"number","description":"Amount of static RRsets in zone\n"},"total":{"type":"number","description":"Total amount of RRsets in zone\n"}},"type":"object","required":["dynamic","static","total"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getDnsZoneRrsetsAmountDynamic:getDnsZoneRrsetsAmountDynamic":{"properties":{"healthcheck":{"type":"number","description":"Amount of RRsets with enabled healthchecks\n"},"total":{"type":"number","description":"Total amount of dynamic RRsets in zone\n"}},"type":"object","required":["healthcheck","total"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getFastedgeAppFindOneBy:getFastedgeAppFindOneBy":{"properties":{"apiType":{"type":"string","description":"API type:  \nwasi-http - WASI with HTTP entry point  \nproxy-wasm - Proxy-Wasm app, callable from CDN\nAvailable values: \"wasi-http\", \"proxy-wasm\".\n"},"binary":{"type":"number","description":"Filter by binary ID (shows apps using this binary)\n"},"name":{"type":"string","description":"Filter by application name (case-insensitive partial match)\n"},"ordering":{"type":"string","description":"Sort order. Use - prefix for descending (e.g., -name sorts by name descending)\nAvailable values: \"name\", \"-name\", \"status\", \"-status\", \"id\", \"-id\", \"template\", \"-template\", \"binary\", \"-binary\", \"plan\", \"-plan\".\n"},"plan":{"type":"number","description":"Filter by plan ID\n"},"status":{"type":"number","description":"Status code:  \n0 - draft (inactive)  \n1 - enabled  \n2 - disabled  \n3 - hourly call limit exceeded  \n4 - daily call limit exceeded  \n5 - suspended\n"},"template":{"type":"number","description":"Filter by template ID (shows apps created from this template)\n"}},"type":"object"},"gcore:index/getFastedgeAppSecrets:getFastedgeAppSecrets":{"properties":{"comment":{"type":"string","description":"A description or comment about the secret.\n"},"id":{"type":"number","description":"The unique identifier of the secret.\n"},"name":{"type":"string","description":"The unique name of the secret.\n"}},"type":"object","required":["comment","id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getFastedgeAppStores:getFastedgeAppStores":{"properties":{"comment":{"type":"string","description":"A description of the store\n"},"id":{"type":"number","description":"The identifier of the store\n"},"name":{"type":"string","description":"The name of the store\n"}},"type":"object","required":["comment","id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getFastedgeAppsItem:getFastedgeAppsItem":{"properties":{"apiType":{"type":"string","description":"Wasm API type\n"},"binary":{"type":"number","description":"Binary ID\n"},"comment":{"type":"string","description":"Description of the binary\n"},"debug":{"type":"boolean","description":"Switch on logging for 30 minutes (switched off by default)\n"},"debugUntil":{"type":"string","description":"When debugging finishes\n"},"id":{"type":"number","description":"App ID\n"},"name":{"type":"string","description":"App name\n"},"networks":{"type":"array","items":{"type":"string"},"description":"Networks\n"},"plan":{"type":"string","description":"Application plan name\n"},"planId":{"type":"number","description":"Application plan ID\n"},"status":{"type":"number","description":"Status code:  \n0 - draft (inactive)  \n1 - enabled  \n2 - disabled  \n3 - hourly call limit exceeded  \n4 - daily call limit exceeded  \n5 - suspended\n"},"template":{"type":"number","description":"Template ID\n"},"templateName":{"type":"string","description":"Template name\n"},"upgradeableTo":{"type":"number","description":"ID of the binary the app can be upgraded to\n"},"url":{"type":"string","description":"App URL\n"}},"type":"object","required":["apiType","binary","comment","debug","debugUntil","id","name","networks","plan","planId","status","template","templateName","upgradeableTo","url"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getFastedgeSecretSecretSlot:getFastedgeSecretSecretSlot":{"properties":{"checksum":{"type":"string","description":"SHA-256 hash of the decrypted value for integrity verification (auto-generated)\n"},"slot":{"type":"number","description":"Unix timestamp (seconds since epoch) indicating when this secret version becomes active. Use for time-based secret rotation.\n"},"value":{"type":"string","description":"The plaintext secret value. Will be encrypted with AES-256-GCM before storage.\n"}},"type":"object","required":["checksum","slot","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getWaapDomainQuotas:getWaapDomainQuotas":{"properties":{"allowed":{"type":"number","description":"The maximum allowed number of this resource\n"},"current":{"type":"number","description":"The current number of this resource\n"}},"type":"object","required":["allowed","current"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getWaapDomainsItem:getWaapDomainsItem":{"properties":{"createdAt":{"type":"string","description":"The date and time the domain was created in ISO 8601 format\n"},"customPageSet":{"type":"number","description":"The ID of the custom page set\n"},"id":{"type":"number","description":"The domain ID\n"},"name":{"type":"string","description":"The domain name\n"},"status":{"type":"string","description":"The different statuses a domain can have\nAvailable values: \"active\", \"bypass\", \"monitor\", \"locked\".\n"}},"type":"object","required":["createdAt","customPageSet","id","name","status"],"language":{"nodejs":{"requiredInputs":[]}}}},"provider":{"description":"The provider type for the gcore 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":{"apiKey":{"type":"string","description":"The API key for authenticating with the Gcore API. Can also be set via the `GCORE_API_KEY` environment variable.","secret":true},"baseUrl":{"type":"string","description":"Set the base url that the provider connects to."}},"type":"object","inputProperties":{"apiKey":{"type":"string","description":"The API key for authenticating with the Gcore API. Can also be set via the `GCORE_API_KEY` environment variable.","secret":true},"baseUrl":{"type":"string","description":"Set the base url that the provider connects to."},"cloudPollingIntervalSeconds":{"type":"number","description":"Interval in seconds between polling requests for long-running cloud operations. Defaults to \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e."},"cloudPollingTimeoutSeconds":{"type":"number","description":"Timeout in seconds for polling long-running cloud operations. Defaults to \u003cspan pulumi-lang-nodejs=\"`7200`\" pulumi-lang-dotnet=\"`7200`\" pulumi-lang-go=\"`7200`\" pulumi-lang-python=\"`7200`\" pulumi-lang-yaml=\"`7200`\" pulumi-lang-java=\"`7200`\"\u003e`7200`\u003c/span\u003e."},"cloudProjectId":{"type":"number","description":"Default cloud project ID to use for cloud resources. Can also be set via the `GCORE_CLOUD_PROJECT_ID` environment variable."},"cloudRegionId":{"type":"number","description":"Default cloud region ID to use for cloud resources. Can also be set via the `GCORE_CLOUD_REGION_ID` environment variable."}},"methods":{"terraformConfig":"pulumi:providers:gcore/terraformConfig"}},"resources":{"gcore:index/cdnCertificate:CdnCertificate":{"description":"CDN SSL certificates enable HTTPS content delivery, supporting both uploaded certificates and automated Let's Encrypt provisioning.\n\n## Example Usage\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cdnCertificate:CdnCertificate example '\u003cssl_id\u003e'\n```\n\n","properties":{"automated":{"type":"boolean","description":"Must be **true** to issue certificate automatically."},"cdnCertificateId":{"type":"number","description":"SSL certificate ID."},"certIssuer":{"type":"string","description":"Name of the certification center issued the SSL certificate."},"certSubjectAlt":{"type":"string","description":"Alternative domain names that the SSL certificate secures."},"certSubjectCn":{"type":"string","description":"Domain name that the SSL certificate secures."},"deleted":{"type":"boolean","description":"Defines whether the certificate has been deleted. Parameter is **deprecated**.\n\nPossible values:\n- **true** - Certificate has been deleted.\n- **false** - Certificate has not been deleted."},"hasRelatedResources":{"type":"boolean","description":"Defines whether the SSL certificate is used by a CDN resource.\n\nPossible values:\n- **true** - Certificate is used by a CDN resource.\n- **false** - Certificate is not used by a CDN resource."},"name":{"type":"string","description":"SSL certificate name.\n"},"sslCertificateChain":{"type":"string","description":"Parameter is **deprecated**."},"sslCertificateWo":{"type":"string","description":"Public part of the SSL certificate.\n\nAll chain of the SSL certificate should be added. This is a write-only field — it will be sent to the API but never stored in state."},"sslCertificateWoVersion":{"type":"number"},"sslId":{"type":"number"},"sslPrivateKeyWo":{"type":"string","description":"Private key of the SSL certificate. This is a write-only field — it will be sent to the API but never stored in state."},"validateRootCa":{"type":"boolean","description":"Defines whether to check the SSL certificate for a signature from a trusted certificate authority.\n\nPossible values:\n\n- **true** - SSL certificate must be verified to be signed by a trusted certificate authority.\n- **false** - SSL certificate will not be verified to be signed by a trusted certificate authority."},"validityNotAfter":{"type":"string","description":"Date when certificate become untrusted (ISO 8601/RFC 3339 format, UTC.)"},"validityNotBefore":{"type":"string","description":"Date when certificate become valid (ISO 8601/RFC 3339 format, UTC.)"}},"type":"object","required":["cdnCertificateId","certIssuer","certSubjectAlt","certSubjectCn","deleted","hasRelatedResources","name","sslCertificateChain","sslId","validateRootCa","validityNotAfter","validityNotBefore"],"inputProperties":{"automated":{"type":"boolean","description":"Must be **true** to issue certificate automatically."},"name":{"type":"string","description":"SSL certificate name.\n"},"sslCertificateWo":{"type":"string","description":"Public part of the SSL certificate.\n\nAll chain of the SSL certificate should be added. This is a write-only field — it will be sent to the API but never stored in state."},"sslCertificateWoVersion":{"type":"number"},"sslPrivateKeyWo":{"type":"string","description":"Private key of the SSL certificate. This is a write-only field — it will be sent to the API but never stored in state."},"validateRootCa":{"type":"boolean","description":"Defines whether to check the SSL certificate for a signature from a trusted certificate authority.\n\nPossible values:\n\n- **true** - SSL certificate must be verified to be signed by a trusted certificate authority.\n- **false** - SSL certificate will not be verified to be signed by a trusted certificate authority."}},"stateInputs":{"description":"Input properties used for looking up and filtering CdnCertificate resources.\n","properties":{"automated":{"type":"boolean","description":"Must be **true** to issue certificate automatically."},"cdnCertificateId":{"type":"number","description":"SSL certificate ID."},"certIssuer":{"type":"string","description":"Name of the certification center issued the SSL certificate."},"certSubjectAlt":{"type":"string","description":"Alternative domain names that the SSL certificate secures."},"certSubjectCn":{"type":"string","description":"Domain name that the SSL certificate secures."},"deleted":{"type":"boolean","description":"Defines whether the certificate has been deleted. Parameter is **deprecated**.\n\nPossible values:\n- **true** - Certificate has been deleted.\n- **false** - Certificate has not been deleted."},"hasRelatedResources":{"type":"boolean","description":"Defines whether the SSL certificate is used by a CDN resource.\n\nPossible values:\n- **true** - Certificate is used by a CDN resource.\n- **false** - Certificate is not used by a CDN resource."},"name":{"type":"string","description":"SSL certificate name.\n"},"sslCertificateChain":{"type":"string","description":"Parameter is **deprecated**."},"sslCertificateWo":{"type":"string","description":"Public part of the SSL certificate.\n\nAll chain of the SSL certificate should be added. This is a write-only field — it will be sent to the API but never stored in state."},"sslCertificateWoVersion":{"type":"number"},"sslId":{"type":"number"},"sslPrivateKeyWo":{"type":"string","description":"Private key of the SSL certificate. This is a write-only field — it will be sent to the API but never stored in state."},"validateRootCa":{"type":"boolean","description":"Defines whether to check the SSL certificate for a signature from a trusted certificate authority.\n\nPossible values:\n\n- **true** - SSL certificate must be verified to be signed by a trusted certificate authority.\n- **false** - SSL certificate will not be verified to be signed by a trusted certificate authority."},"validityNotAfter":{"type":"string","description":"Date when certificate become untrusted (ISO 8601/RFC 3339 format, UTC.)"},"validityNotBefore":{"type":"string","description":"Date when certificate become valid (ISO 8601/RFC 3339 format, UTC.)"}},"type":"object"}},"gcore:index/cdnOriginGroup:CdnOriginGroup":{"description":"CDN origin groups aggregate one or more origin servers with failover and load balancing for content delivery.\n\n## Example Usage\n\n### Basic origin group with primary and backup\n\nCreate a CDN origin group with a primary origin and a backup origin for failover.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create a CDN origin group with primary and backup origins\nconst example = new gcore.CdnOriginGroup(\"example\", {\n    name: \"my-origin-group\",\n    useNext: true,\n    sources: [\n        {\n            source: \"example.com\",\n            enabled: true,\n            backup: false,\n        },\n        {\n            source: \"mirror.example.com\",\n            enabled: true,\n            backup: true,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create a CDN origin group with primary and backup origins\nexample = gcore.CdnOriginGroup(\"example\",\n    name=\"my-origin-group\",\n    use_next=True,\n    sources=[\n        {\n            \"source\": \"example.com\",\n            \"enabled\": True,\n            \"backup\": False,\n        },\n        {\n            \"source\": \"mirror.example.com\",\n            \"enabled\": True,\n            \"backup\": True,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a CDN origin group with primary and backup origins\n    var example = new Gcore.CdnOriginGroup(\"example\", new()\n    {\n        Name = \"my-origin-group\",\n        UseNext = true,\n        Sources = new[]\n        {\n            new Gcore.Inputs.CdnOriginGroupSourceArgs\n            {\n                Source = \"example.com\",\n                Enabled = true,\n                Backup = false,\n            },\n            new Gcore.Inputs.CdnOriginGroupSourceArgs\n            {\n                Source = \"mirror.example.com\",\n                Enabled = true,\n                Backup = true,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a CDN origin group with primary and backup origins\n\t\t_, err := gcore.NewCdnOriginGroup(ctx, \"example\", \u0026gcore.CdnOriginGroupArgs{\n\t\t\tName:    pulumi.String(\"my-origin-group\"),\n\t\t\tUseNext: pulumi.Bool(true),\n\t\t\tSources: gcore.CdnOriginGroupSourceArray{\n\t\t\t\t\u0026gcore.CdnOriginGroupSourceArgs{\n\t\t\t\t\tSource:  pulumi.String(\"example.com\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tBackup:  pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.CdnOriginGroupSourceArgs{\n\t\t\t\t\tSource:  pulumi.String(\"mirror.example.com\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tBackup:  pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CdnOriginGroup;\nimport com.pulumi.gcore.CdnOriginGroupArgs;\nimport com.pulumi.gcore.inputs.CdnOriginGroupSourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a CDN origin group with primary and backup origins\n        var example = new CdnOriginGroup(\"example\", CdnOriginGroupArgs.builder()\n            .name(\"my-origin-group\")\n            .useNext(true)\n            .sources(            \n                CdnOriginGroupSourceArgs.builder()\n                    .source(\"example.com\")\n                    .enabled(true)\n                    .backup(false)\n                    .build(),\n                CdnOriginGroupSourceArgs.builder()\n                    .source(\"mirror.example.com\")\n                    .enabled(true)\n                    .backup(true)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a CDN origin group with primary and backup origins\n  example:\n    type: gcore:CdnOriginGroup\n    properties:\n      name: my-origin-group\n      useNext: true\n      sources:\n        - source: example.com\n          enabled: true\n          backup: false\n        - source: mirror.example.com\n          enabled: true\n          backup: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Origin group with S3 authentication\n\nCreate a CDN origin group that pulls content from an S3-compatible bucket using AWS Signature V4 authentication.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst config = new pulumi.Config();\nconst s3AccessKey = config.require(\"s3AccessKey\");\nconst s3SecretKey = config.require(\"s3SecretKey\");\n// Create an origin group with S3 authentication\nconst s3Origin = new gcore.CdnOriginGroup(\"s3_origin\", {\n    name: \"s3-origin-group\",\n    authType: \"awsSignatureV4\",\n    auth: {\n        s3Type: \"amazon\",\n        s3AccessKeyId: s3AccessKey,\n        s3SecretAccessKey: s3SecretKey,\n        s3BucketName: \"my-bucket\",\n        s3Region: \"eu-west-1\",\n        s3CredentialsVersion: 1,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nconfig = pulumi.Config()\ns3_access_key = config.require(\"s3AccessKey\")\ns3_secret_key = config.require(\"s3SecretKey\")\n# Create an origin group with S3 authentication\ns3_origin = gcore.CdnOriginGroup(\"s3_origin\",\n    name=\"s3-origin-group\",\n    auth_type=\"awsSignatureV4\",\n    auth={\n        \"s3_type\": \"amazon\",\n        \"s3_access_key_id\": s3_access_key,\n        \"s3_secret_access_key\": s3_secret_key,\n        \"s3_bucket_name\": \"my-bucket\",\n        \"s3_region\": \"eu-west-1\",\n        \"s3_credentials_version\": 1,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var s3AccessKey = config.Require(\"s3AccessKey\");\n    var s3SecretKey = config.Require(\"s3SecretKey\");\n    // Create an origin group with S3 authentication\n    var s3Origin = new Gcore.CdnOriginGroup(\"s3_origin\", new()\n    {\n        Name = \"s3-origin-group\",\n        AuthType = \"awsSignatureV4\",\n        Auth = new Gcore.Inputs.CdnOriginGroupAuthArgs\n        {\n            S3Type = \"amazon\",\n            S3AccessKeyId = s3AccessKey,\n            S3SecretAccessKey = s3SecretKey,\n            S3BucketName = \"my-bucket\",\n            S3Region = \"eu-west-1\",\n            S3CredentialsVersion = 1,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\ts3AccessKey := cfg.Require(\"s3AccessKey\")\n\t\ts3SecretKey := cfg.Require(\"s3SecretKey\")\n\t\t// Create an origin group with S3 authentication\n\t\t_, err := gcore.NewCdnOriginGroup(ctx, \"s3_origin\", \u0026gcore.CdnOriginGroupArgs{\n\t\t\tName:     pulumi.String(\"s3-origin-group\"),\n\t\t\tAuthType: pulumi.String(\"awsSignatureV4\"),\n\t\t\tAuth: \u0026gcore.CdnOriginGroupAuthArgs{\n\t\t\t\tS3Type:               pulumi.String(\"amazon\"),\n\t\t\t\tS3AccessKeyId:        pulumi.String(s3AccessKey),\n\t\t\t\tS3SecretAccessKey:    pulumi.String(s3SecretKey),\n\t\t\t\tS3BucketName:         pulumi.String(\"my-bucket\"),\n\t\t\t\tS3Region:             pulumi.String(\"eu-west-1\"),\n\t\t\t\tS3CredentialsVersion: pulumi.Float64(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CdnOriginGroup;\nimport com.pulumi.gcore.CdnOriginGroupArgs;\nimport com.pulumi.gcore.inputs.CdnOriginGroupAuthArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var s3AccessKey = config.get(\"s3AccessKey\");\n        final var s3SecretKey = config.get(\"s3SecretKey\");\n        // Create an origin group with S3 authentication\n        var s3Origin = new CdnOriginGroup(\"s3Origin\", CdnOriginGroupArgs.builder()\n            .name(\"s3-origin-group\")\n            .authType(\"awsSignatureV4\")\n            .auth(CdnOriginGroupAuthArgs.builder()\n                .s3Type(\"amazon\")\n                .s3AccessKeyId(s3AccessKey)\n                .s3SecretAccessKey(s3SecretKey)\n                .s3BucketName(\"my-bucket\")\n                .s3Region(\"eu-west-1\")\n                .s3CredentialsVersion(1.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  s3AccessKey:\n    type: string\n  s3SecretKey:\n    type: string\nresources:\n  # Create an origin group with S3 authentication\n  s3Origin:\n    type: gcore:CdnOriginGroup\n    name: s3_origin\n    properties:\n      name: s3-origin-group\n      authType: awsSignatureV4\n      auth:\n        s3Type: amazon\n        s3AccessKeyId: ${s3AccessKey}\n        s3SecretAccessKey: ${s3SecretKey}\n        s3BucketName: my-bucket\n        s3Region: eu-west-1\n        s3CredentialsVersion: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cdnOriginGroup:CdnOriginGroup example '\u003corigin_group_id\u003e'\n```\n\n","properties":{"auth":{"$ref":"#/types/gcore:index%2FCdnOriginGroupAuth:CdnOriginGroupAuth","description":"Credentials to access the private bucket.\n"},"authType":{"type":"string","description":"Origin authentication type.\n"},"cdnOriginGroupId":{"type":"number","description":"Origin group ID."},"hasRelatedResources":{"type":"boolean","description":"Defines whether the origin group has related CDN resources.\n\nPossible values:\n- **true** - Origin group has related CDN resources.\n- **false** - Origin group does not have related CDN resources."},"name":{"type":"string","description":"Origin group name.\n"},"proxyNextUpstreams":{"type":"array","items":{"type":"string"},"description":"Defines cases when the request should be passed on to the next origin.\n\nPossible values:\n- **error** - an error occurred while establishing a connection with the origin, passing a request to it, or reading the response header\n- **timeout** - a timeout has occurred while establishing a connection with the origin, passing a request to it, or reading the response header\n- **\u003cspan pulumi-lang-nodejs=\"`invalidHeader`\" pulumi-lang-dotnet=\"`InvalidHeader`\" pulumi-lang-go=\"`invalidHeader`\" pulumi-lang-python=\"`invalid_header`\" pulumi-lang-yaml=\"`invalidHeader`\" pulumi-lang-java=\"`invalidHeader`\"\u003e`invalid_header`\u003c/span\u003e** - a origin returned an empty or invalid response\n- **\u003cspan pulumi-lang-nodejs=\"`http403`\" pulumi-lang-dotnet=\"`Http403`\" pulumi-lang-go=\"`http403`\" pulumi-lang-python=\"`http_403`\" pulumi-lang-yaml=\"`http403`\" pulumi-lang-java=\"`http403`\"\u003e`http_403`\u003c/span\u003e** - a origin returned a response with the code 403\n- **\u003cspan pulumi-lang-nodejs=\"`http404`\" pulumi-lang-dotnet=\"`Http404`\" pulumi-lang-go=\"`http404`\" pulumi-lang-python=\"`http_404`\" pulumi-lang-yaml=\"`http404`\" pulumi-lang-java=\"`http404`\"\u003e`http_404`\u003c/span\u003e** - a origin returned a response with the code 404\n- **\u003cspan pulumi-lang-nodejs=\"`http429`\" pulumi-lang-dotnet=\"`Http429`\" pulumi-lang-go=\"`http429`\" pulumi-lang-python=\"`http_429`\" pulumi-lang-yaml=\"`http429`\" pulumi-lang-java=\"`http429`\"\u003e`http_429`\u003c/span\u003e** - a origin returned a response with the code 429\n- **\u003cspan pulumi-lang-nodejs=\"`http500`\" pulumi-lang-dotnet=\"`Http500`\" pulumi-lang-go=\"`http500`\" pulumi-lang-python=\"`http_500`\" pulumi-lang-yaml=\"`http500`\" pulumi-lang-java=\"`http500`\"\u003e`http_500`\u003c/span\u003e** - a origin returned a response with the code 500\n- **\u003cspan pulumi-lang-nodejs=\"`http502`\" pulumi-lang-dotnet=\"`Http502`\" pulumi-lang-go=\"`http502`\" pulumi-lang-python=\"`http_502`\" pulumi-lang-yaml=\"`http502`\" pulumi-lang-java=\"`http502`\"\u003e`http_502`\u003c/span\u003e** - a origin returned a response with the code 502\n- **\u003cspan pulumi-lang-nodejs=\"`http503`\" pulumi-lang-dotnet=\"`Http503`\" pulumi-lang-go=\"`http503`\" pulumi-lang-python=\"`http_503`\" pulumi-lang-yaml=\"`http503`\" pulumi-lang-java=\"`http503`\"\u003e`http_503`\u003c/span\u003e** - a origin returned a response with the code 503\n- **\u003cspan pulumi-lang-nodejs=\"`http504`\" pulumi-lang-dotnet=\"`Http504`\" pulumi-lang-go=\"`http504`\" pulumi-lang-python=\"`http_504`\" pulumi-lang-yaml=\"`http504`\" pulumi-lang-java=\"`http504`\"\u003e`http_504`\u003c/span\u003e** - a origin returned a response with the code 504"},"sources":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCdnOriginGroupSource:CdnOriginGroupSource"},"description":"Set of origin sources in the origin group. Duplicates (same source+enabled+backup) are not allowed."},"useNext":{"type":"boolean","description":"Defines whether to use the next origin from the origin group if origin responds with the cases specified in \u003cspan pulumi-lang-nodejs=\"`proxyNextUpstream`\" pulumi-lang-dotnet=\"`ProxyNextUpstream`\" pulumi-lang-go=\"`proxyNextUpstream`\" pulumi-lang-python=\"`proxy_next_upstream`\" pulumi-lang-yaml=\"`proxyNextUpstream`\" pulumi-lang-java=\"`proxyNextUpstream`\"\u003e`proxy_next_upstream`\u003c/span\u003e.\nIf you enable it, you must specify cases in \u003cspan pulumi-lang-nodejs=\"`proxyNextUpstream`\" pulumi-lang-dotnet=\"`ProxyNextUpstream`\" pulumi-lang-go=\"`proxyNextUpstream`\" pulumi-lang-python=\"`proxy_next_upstream`\" pulumi-lang-yaml=\"`proxyNextUpstream`\" pulumi-lang-java=\"`proxyNextUpstream`\"\u003e`proxy_next_upstream`\u003c/span\u003e.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled."}},"type":"object","required":["cdnOriginGroupId","hasRelatedResources","name","proxyNextUpstreams"],"inputProperties":{"auth":{"$ref":"#/types/gcore:index%2FCdnOriginGroupAuth:CdnOriginGroupAuth","description":"Credentials to access the private bucket.\n"},"authType":{"type":"string","description":"Origin authentication type.\n"},"name":{"type":"string","description":"Origin group name.\n"},"proxyNextUpstreams":{"type":"array","items":{"type":"string"},"description":"Defines cases when the request should be passed on to the next origin.\n\nPossible values:\n- **error** - an error occurred while establishing a connection with the origin, passing a request to it, or reading the response header\n- **timeout** - a timeout has occurred while establishing a connection with the origin, passing a request to it, or reading the response header\n- **\u003cspan pulumi-lang-nodejs=\"`invalidHeader`\" pulumi-lang-dotnet=\"`InvalidHeader`\" pulumi-lang-go=\"`invalidHeader`\" pulumi-lang-python=\"`invalid_header`\" pulumi-lang-yaml=\"`invalidHeader`\" pulumi-lang-java=\"`invalidHeader`\"\u003e`invalid_header`\u003c/span\u003e** - a origin returned an empty or invalid response\n- **\u003cspan pulumi-lang-nodejs=\"`http403`\" pulumi-lang-dotnet=\"`Http403`\" pulumi-lang-go=\"`http403`\" pulumi-lang-python=\"`http_403`\" pulumi-lang-yaml=\"`http403`\" pulumi-lang-java=\"`http403`\"\u003e`http_403`\u003c/span\u003e** - a origin returned a response with the code 403\n- **\u003cspan pulumi-lang-nodejs=\"`http404`\" pulumi-lang-dotnet=\"`Http404`\" pulumi-lang-go=\"`http404`\" pulumi-lang-python=\"`http_404`\" pulumi-lang-yaml=\"`http404`\" pulumi-lang-java=\"`http404`\"\u003e`http_404`\u003c/span\u003e** - a origin returned a response with the code 404\n- **\u003cspan pulumi-lang-nodejs=\"`http429`\" pulumi-lang-dotnet=\"`Http429`\" pulumi-lang-go=\"`http429`\" pulumi-lang-python=\"`http_429`\" pulumi-lang-yaml=\"`http429`\" pulumi-lang-java=\"`http429`\"\u003e`http_429`\u003c/span\u003e** - a origin returned a response with the code 429\n- **\u003cspan pulumi-lang-nodejs=\"`http500`\" pulumi-lang-dotnet=\"`Http500`\" pulumi-lang-go=\"`http500`\" pulumi-lang-python=\"`http_500`\" pulumi-lang-yaml=\"`http500`\" pulumi-lang-java=\"`http500`\"\u003e`http_500`\u003c/span\u003e** - a origin returned a response with the code 500\n- **\u003cspan pulumi-lang-nodejs=\"`http502`\" pulumi-lang-dotnet=\"`Http502`\" pulumi-lang-go=\"`http502`\" pulumi-lang-python=\"`http_502`\" pulumi-lang-yaml=\"`http502`\" pulumi-lang-java=\"`http502`\"\u003e`http_502`\u003c/span\u003e** - a origin returned a response with the code 502\n- **\u003cspan pulumi-lang-nodejs=\"`http503`\" pulumi-lang-dotnet=\"`Http503`\" pulumi-lang-go=\"`http503`\" pulumi-lang-python=\"`http_503`\" pulumi-lang-yaml=\"`http503`\" pulumi-lang-java=\"`http503`\"\u003e`http_503`\u003c/span\u003e** - a origin returned a response with the code 503\n- **\u003cspan pulumi-lang-nodejs=\"`http504`\" pulumi-lang-dotnet=\"`Http504`\" pulumi-lang-go=\"`http504`\" pulumi-lang-python=\"`http_504`\" pulumi-lang-yaml=\"`http504`\" pulumi-lang-java=\"`http504`\"\u003e`http_504`\u003c/span\u003e** - a origin returned a response with the code 504"},"sources":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCdnOriginGroupSource:CdnOriginGroupSource"},"description":"Set of origin sources in the origin group. Duplicates (same source+enabled+backup) are not allowed."},"useNext":{"type":"boolean","description":"Defines whether to use the next origin from the origin group if origin responds with the cases specified in \u003cspan pulumi-lang-nodejs=\"`proxyNextUpstream`\" pulumi-lang-dotnet=\"`ProxyNextUpstream`\" pulumi-lang-go=\"`proxyNextUpstream`\" pulumi-lang-python=\"`proxy_next_upstream`\" pulumi-lang-yaml=\"`proxyNextUpstream`\" pulumi-lang-java=\"`proxyNextUpstream`\"\u003e`proxy_next_upstream`\u003c/span\u003e.\nIf you enable it, you must specify cases in \u003cspan pulumi-lang-nodejs=\"`proxyNextUpstream`\" pulumi-lang-dotnet=\"`ProxyNextUpstream`\" pulumi-lang-go=\"`proxyNextUpstream`\" pulumi-lang-python=\"`proxy_next_upstream`\" pulumi-lang-yaml=\"`proxyNextUpstream`\" pulumi-lang-java=\"`proxyNextUpstream`\"\u003e`proxy_next_upstream`\u003c/span\u003e.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled."}},"stateInputs":{"description":"Input properties used for looking up and filtering CdnOriginGroup resources.\n","properties":{"auth":{"$ref":"#/types/gcore:index%2FCdnOriginGroupAuth:CdnOriginGroupAuth","description":"Credentials to access the private bucket.\n"},"authType":{"type":"string","description":"Origin authentication type.\n"},"cdnOriginGroupId":{"type":"number","description":"Origin group ID."},"hasRelatedResources":{"type":"boolean","description":"Defines whether the origin group has related CDN resources.\n\nPossible values:\n- **true** - Origin group has related CDN resources.\n- **false** - Origin group does not have related CDN resources."},"name":{"type":"string","description":"Origin group name.\n"},"proxyNextUpstreams":{"type":"array","items":{"type":"string"},"description":"Defines cases when the request should be passed on to the next origin.\n\nPossible values:\n- **error** - an error occurred while establishing a connection with the origin, passing a request to it, or reading the response header\n- **timeout** - a timeout has occurred while establishing a connection with the origin, passing a request to it, or reading the response header\n- **\u003cspan pulumi-lang-nodejs=\"`invalidHeader`\" pulumi-lang-dotnet=\"`InvalidHeader`\" pulumi-lang-go=\"`invalidHeader`\" pulumi-lang-python=\"`invalid_header`\" pulumi-lang-yaml=\"`invalidHeader`\" pulumi-lang-java=\"`invalidHeader`\"\u003e`invalid_header`\u003c/span\u003e** - a origin returned an empty or invalid response\n- **\u003cspan pulumi-lang-nodejs=\"`http403`\" pulumi-lang-dotnet=\"`Http403`\" pulumi-lang-go=\"`http403`\" pulumi-lang-python=\"`http_403`\" pulumi-lang-yaml=\"`http403`\" pulumi-lang-java=\"`http403`\"\u003e`http_403`\u003c/span\u003e** - a origin returned a response with the code 403\n- **\u003cspan pulumi-lang-nodejs=\"`http404`\" pulumi-lang-dotnet=\"`Http404`\" pulumi-lang-go=\"`http404`\" pulumi-lang-python=\"`http_404`\" pulumi-lang-yaml=\"`http404`\" pulumi-lang-java=\"`http404`\"\u003e`http_404`\u003c/span\u003e** - a origin returned a response with the code 404\n- **\u003cspan pulumi-lang-nodejs=\"`http429`\" pulumi-lang-dotnet=\"`Http429`\" pulumi-lang-go=\"`http429`\" pulumi-lang-python=\"`http_429`\" pulumi-lang-yaml=\"`http429`\" pulumi-lang-java=\"`http429`\"\u003e`http_429`\u003c/span\u003e** - a origin returned a response with the code 429\n- **\u003cspan pulumi-lang-nodejs=\"`http500`\" pulumi-lang-dotnet=\"`Http500`\" pulumi-lang-go=\"`http500`\" pulumi-lang-python=\"`http_500`\" pulumi-lang-yaml=\"`http500`\" pulumi-lang-java=\"`http500`\"\u003e`http_500`\u003c/span\u003e** - a origin returned a response with the code 500\n- **\u003cspan pulumi-lang-nodejs=\"`http502`\" pulumi-lang-dotnet=\"`Http502`\" pulumi-lang-go=\"`http502`\" pulumi-lang-python=\"`http_502`\" pulumi-lang-yaml=\"`http502`\" pulumi-lang-java=\"`http502`\"\u003e`http_502`\u003c/span\u003e** - a origin returned a response with the code 502\n- **\u003cspan pulumi-lang-nodejs=\"`http503`\" pulumi-lang-dotnet=\"`Http503`\" pulumi-lang-go=\"`http503`\" pulumi-lang-python=\"`http_503`\" pulumi-lang-yaml=\"`http503`\" pulumi-lang-java=\"`http503`\"\u003e`http_503`\u003c/span\u003e** - a origin returned a response with the code 503\n- **\u003cspan pulumi-lang-nodejs=\"`http504`\" pulumi-lang-dotnet=\"`Http504`\" pulumi-lang-go=\"`http504`\" pulumi-lang-python=\"`http_504`\" pulumi-lang-yaml=\"`http504`\" pulumi-lang-java=\"`http504`\"\u003e`http_504`\u003c/span\u003e** - a origin returned a response with the code 504"},"sources":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCdnOriginGroupSource:CdnOriginGroupSource"},"description":"Set of origin sources in the origin group. Duplicates (same source+enabled+backup) are not allowed."},"useNext":{"type":"boolean","description":"Defines whether to use the next origin from the origin group if origin responds with the cases specified in \u003cspan pulumi-lang-nodejs=\"`proxyNextUpstream`\" pulumi-lang-dotnet=\"`ProxyNextUpstream`\" pulumi-lang-go=\"`proxyNextUpstream`\" pulumi-lang-python=\"`proxy_next_upstream`\" pulumi-lang-yaml=\"`proxyNextUpstream`\" pulumi-lang-java=\"`proxyNextUpstream`\"\u003e`proxy_next_upstream`\u003c/span\u003e.\nIf you enable it, you must specify cases in \u003cspan pulumi-lang-nodejs=\"`proxyNextUpstream`\" pulumi-lang-dotnet=\"`ProxyNextUpstream`\" pulumi-lang-go=\"`proxyNextUpstream`\" pulumi-lang-python=\"`proxy_next_upstream`\" pulumi-lang-yaml=\"`proxyNextUpstream`\" pulumi-lang-java=\"`proxyNextUpstream`\"\u003e`proxy_next_upstream`\u003c/span\u003e.\n\nPossible values:\n- **true** - Option is enabled.\n- **false** - Option is disabled."}},"type":"object"}},"gcore:index/cdnResource:CdnResource":{"description":"## Example Usage\n\n### Basic CDN resource\n\nCreate a CDN resource with an origin group and common caching and security options.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst example = new gcore.CdnOriginGroup(\"example\", {\n    name: \"origin_group_1\",\n    useNext: true,\n    sources: [{\n        source: \"example.com\",\n        enabled: true,\n    }],\n});\nconst exampleCdnResource = new gcore.CdnResource(\"example\", {\n    cname: \"cdn.example.com\",\n    originGroup: example.cdnOriginGroupId,\n    originProtocol: \"MATCH\",\n    secondaryHostnames: [\"cdn2.example.com\"],\n    options: {\n        edgeCacheSettings: {\n            enabled: true,\n            \"default\": \"8d\",\n        },\n        browserCacheSettings: {\n            enabled: true,\n            value: \"1d\",\n        },\n        redirectHttpToHttps: {\n            enabled: true,\n            value: true,\n        },\n        gzipOn: {\n            enabled: true,\n            value: true,\n        },\n        cors: {\n            enabled: true,\n            values: [\"*\"],\n        },\n        rewrite: {\n            enabled: true,\n            body: \"/(.*) /$1\",\n        },\n        tlsVersions: {\n            enabled: true,\n            values: [\"TLSv1.2\"],\n        },\n        forceReturn: {\n            enabled: true,\n            code: 200,\n            body: \"OK\",\n        },\n        requestLimiter: {\n            enabled: true,\n            rateUnit: \"r/s\",\n            rate: 5,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample = gcore.CdnOriginGroup(\"example\",\n    name=\"origin_group_1\",\n    use_next=True,\n    sources=[{\n        \"source\": \"example.com\",\n        \"enabled\": True,\n    }])\nexample_cdn_resource = gcore.CdnResource(\"example\",\n    cname=\"cdn.example.com\",\n    origin_group=example.cdn_origin_group_id,\n    origin_protocol=\"MATCH\",\n    secondary_hostnames=[\"cdn2.example.com\"],\n    options={\n        \"edge_cache_settings\": {\n            \"enabled\": True,\n            \"default\": \"8d\",\n        },\n        \"browser_cache_settings\": {\n            \"enabled\": True,\n            \"value\": \"1d\",\n        },\n        \"redirect_http_to_https\": {\n            \"enabled\": True,\n            \"value\": True,\n        },\n        \"gzip_on\": {\n            \"enabled\": True,\n            \"value\": True,\n        },\n        \"cors\": {\n            \"enabled\": True,\n            \"values\": [\"*\"],\n        },\n        \"rewrite\": {\n            \"enabled\": True,\n            \"body\": \"/(.*) /$1\",\n        },\n        \"tls_versions\": {\n            \"enabled\": True,\n            \"values\": [\"TLSv1.2\"],\n        },\n        \"force_return\": {\n            \"enabled\": True,\n            \"code\": 200,\n            \"body\": \"OK\",\n        },\n        \"request_limiter\": {\n            \"enabled\": True,\n            \"rate_unit\": \"r/s\",\n            \"rate\": 5,\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Gcore.CdnOriginGroup(\"example\", new()\n    {\n        Name = \"origin_group_1\",\n        UseNext = true,\n        Sources = new[]\n        {\n            new Gcore.Inputs.CdnOriginGroupSourceArgs\n            {\n                Source = \"example.com\",\n                Enabled = true,\n            },\n        },\n    });\n\n    var exampleCdnResource = new Gcore.CdnResource(\"example\", new()\n    {\n        Cname = \"cdn.example.com\",\n        OriginGroup = example.CdnOriginGroupId,\n        OriginProtocol = \"MATCH\",\n        SecondaryHostnames = new[]\n        {\n            \"cdn2.example.com\",\n        },\n        Options = new Gcore.Inputs.CdnResourceOptionsArgs\n        {\n            EdgeCacheSettings = new Gcore.Inputs.CdnResourceOptionsEdgeCacheSettingsArgs\n            {\n                Enabled = true,\n                Default = \"8d\",\n            },\n            BrowserCacheSettings = new Gcore.Inputs.CdnResourceOptionsBrowserCacheSettingsArgs\n            {\n                Enabled = true,\n                Value = \"1d\",\n            },\n            RedirectHttpToHttps = new Gcore.Inputs.CdnResourceOptionsRedirectHttpToHttpsArgs\n            {\n                Enabled = true,\n                Value = true,\n            },\n            GzipOn = new Gcore.Inputs.CdnResourceOptionsGzipOnArgs\n            {\n                Enabled = true,\n                Value = true,\n            },\n            Cors = new Gcore.Inputs.CdnResourceOptionsCorsArgs\n            {\n                Enabled = true,\n                Values = new[]\n                {\n                    \"*\",\n                },\n            },\n            Rewrite = new Gcore.Inputs.CdnResourceOptionsRewriteArgs\n            {\n                Enabled = true,\n                Body = \"/(.*) /$1\",\n            },\n            TlsVersions = new Gcore.Inputs.CdnResourceOptionsTlsVersionsArgs\n            {\n                Enabled = true,\n                Values = new[]\n                {\n                    \"TLSv1.2\",\n                },\n            },\n            ForceReturn = new Gcore.Inputs.CdnResourceOptionsForceReturnArgs\n            {\n                Enabled = true,\n                Code = 200,\n                Body = \"OK\",\n            },\n            RequestLimiter = new Gcore.Inputs.CdnResourceOptionsRequestLimiterArgs\n            {\n                Enabled = true,\n                RateUnit = \"r/s\",\n                Rate = 5,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := gcore.NewCdnOriginGroup(ctx, \"example\", \u0026gcore.CdnOriginGroupArgs{\n\t\t\tName:    pulumi.String(\"origin_group_1\"),\n\t\t\tUseNext: pulumi.Bool(true),\n\t\t\tSources: gcore.CdnOriginGroupSourceArray{\n\t\t\t\t\u0026gcore.CdnOriginGroupSourceArgs{\n\t\t\t\t\tSource:  pulumi.String(\"example.com\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCdnResource(ctx, \"example\", \u0026gcore.CdnResourceArgs{\n\t\t\tCname:          pulumi.String(\"cdn.example.com\"),\n\t\t\tOriginGroup:    example.CdnOriginGroupId,\n\t\t\tOriginProtocol: pulumi.String(\"MATCH\"),\n\t\t\tSecondaryHostnames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"cdn2.example.com\"),\n\t\t\t},\n\t\t\tOptions: \u0026gcore.CdnResourceOptionsArgs{\n\t\t\t\tEdgeCacheSettings: \u0026gcore.CdnResourceOptionsEdgeCacheSettingsArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tDefault: pulumi.String(\"8d\"),\n\t\t\t\t},\n\t\t\t\tBrowserCacheSettings: \u0026gcore.CdnResourceOptionsBrowserCacheSettingsArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.String(\"1d\"),\n\t\t\t\t},\n\t\t\t\tRedirectHttpToHttps: \u0026gcore.CdnResourceOptionsRedirectHttpToHttpsArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tGzipOn: \u0026gcore.CdnResourceOptionsGzipOnArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tCors: \u0026gcore.CdnResourceOptionsCorsArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRewrite: \u0026gcore.CdnResourceOptionsRewriteArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tBody:    pulumi.String(\"/(.*) /$1\"),\n\t\t\t\t},\n\t\t\t\tTlsVersions: \u0026gcore.CdnResourceOptionsTlsVersionsArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"TLSv1.2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tForceReturn: \u0026gcore.CdnResourceOptionsForceReturnArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tCode:    pulumi.Float64(200),\n\t\t\t\t\tBody:    pulumi.String(\"OK\"),\n\t\t\t\t},\n\t\t\t\tRequestLimiter: \u0026gcore.CdnResourceOptionsRequestLimiterArgs{\n\t\t\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\t\t\tRateUnit: pulumi.String(\"r/s\"),\n\t\t\t\t\tRate:     pulumi.Float64(5),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CdnOriginGroup;\nimport com.pulumi.gcore.CdnOriginGroupArgs;\nimport com.pulumi.gcore.inputs.CdnOriginGroupSourceArgs;\nimport com.pulumi.gcore.CdnResource;\nimport com.pulumi.gcore.CdnResourceArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsEdgeCacheSettingsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsBrowserCacheSettingsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsRedirectHttpToHttpsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsGzipOnArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsCorsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsRewriteArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsTlsVersionsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsForceReturnArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsRequestLimiterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new CdnOriginGroup(\"example\", CdnOriginGroupArgs.builder()\n            .name(\"origin_group_1\")\n            .useNext(true)\n            .sources(CdnOriginGroupSourceArgs.builder()\n                .source(\"example.com\")\n                .enabled(true)\n                .build())\n            .build());\n\n        var exampleCdnResource = new CdnResource(\"exampleCdnResource\", CdnResourceArgs.builder()\n            .cname(\"cdn.example.com\")\n            .originGroup(example.cdnOriginGroupId())\n            .originProtocol(\"MATCH\")\n            .secondaryHostnames(\"cdn2.example.com\")\n            .options(CdnResourceOptionsArgs.builder()\n                .edgeCacheSettings(CdnResourceOptionsEdgeCacheSettingsArgs.builder()\n                    .enabled(true)\n                    .default_(\"8d\")\n                    .build())\n                .browserCacheSettings(CdnResourceOptionsBrowserCacheSettingsArgs.builder()\n                    .enabled(true)\n                    .value(\"1d\")\n                    .build())\n                .redirectHttpToHttps(CdnResourceOptionsRedirectHttpToHttpsArgs.builder()\n                    .enabled(true)\n                    .value(true)\n                    .build())\n                .gzipOn(CdnResourceOptionsGzipOnArgs.builder()\n                    .enabled(true)\n                    .value(true)\n                    .build())\n                .cors(CdnResourceOptionsCorsArgs.builder()\n                    .enabled(true)\n                    .values(\"*\")\n                    .build())\n                .rewrite(CdnResourceOptionsRewriteArgs.builder()\n                    .enabled(true)\n                    .body(\"/(.*) /$1\")\n                    .build())\n                .tlsVersions(CdnResourceOptionsTlsVersionsArgs.builder()\n                    .enabled(true)\n                    .values(\"TLSv1.2\")\n                    .build())\n                .forceReturn(CdnResourceOptionsForceReturnArgs.builder()\n                    .enabled(true)\n                    .code(200.0)\n                    .body(\"OK\")\n                    .build())\n                .requestLimiter(CdnResourceOptionsRequestLimiterArgs.builder()\n                    .enabled(true)\n                    .rateUnit(\"r/s\")\n                    .rate(5.0)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: gcore:CdnOriginGroup\n    properties:\n      name: origin_group_1\n      useNext: true\n      sources:\n        - source: example.com\n          enabled: true\n  exampleCdnResource:\n    type: gcore:CdnResource\n    name: example\n    properties:\n      cname: cdn.example.com\n      originGroup: ${example.cdnOriginGroupId}\n      originProtocol: MATCH\n      secondaryHostnames:\n        - cdn2.example.com\n      options:\n        edgeCacheSettings:\n          enabled: true\n          default: 8d\n        browserCacheSettings:\n          enabled: true\n          value: 1d\n        redirectHttpToHttps:\n          enabled: true\n          value: true\n        gzipOn:\n          enabled: true\n          value: true\n        cors:\n          enabled: true\n          values:\n            - '*'\n        rewrite:\n          enabled: true\n          body: /(.*) /$1\n        tlsVersions:\n          enabled: true\n          values:\n            - TLSv1.2\n        forceReturn:\n          enabled: true\n          code: 200\n          body: OK\n        requestLimiter:\n          enabled: true\n          rateUnit: r/s\n          rate: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Advanced CDN resource\n\nCreate a CDN resource with a comprehensive set of options including caching, security, access control, compression, request/response manipulation, rate limiting, and more.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst example = new gcore.CdnOriginGroup(\"example\", {\n    name: \"origin_group_1\",\n    useNext: true,\n    sources: [{\n        source: \"example.com\",\n        enabled: true,\n    }],\n});\nconst exampleCdnResource = new gcore.CdnResource(\"example\", {\n    cname: \"cdn.example.com\",\n    originGroup: example.cdnOriginGroupId,\n    originProtocol: \"HTTPS\",\n    sslEnabled: true,\n    active: true,\n    description: \"CDN resource with advanced options\",\n    secondaryHostnames: [\n        \"cdn2.example.com\",\n        \"cdn3.example.com\",\n    ],\n    options: {\n        edgeCacheSettings: {\n            enabled: true,\n            value: \"43200s\",\n            customValues: {\n                \"100\": \"400s\",\n                \"101\": \"400s\",\n            },\n        },\n        browserCacheSettings: {\n            enabled: true,\n            value: \"3600s\",\n        },\n        ignoreCookie: {\n            enabled: true,\n            value: true,\n        },\n        ignoreQueryString: {\n            enabled: true,\n            value: false,\n        },\n        slice: {\n            enabled: true,\n            value: true,\n        },\n        stale: {\n            enabled: true,\n            values: [\n                \"http_404\",\n                \"http_500\",\n            ],\n        },\n        redirectHttpToHttps: {\n            enabled: true,\n            value: true,\n        },\n        tlsVersions: {\n            enabled: true,\n            values: [\"TLSv1.2\"],\n        },\n        secureKey: {\n            enabled: true,\n            key: \"secret\",\n            type: 2,\n        },\n        cors: {\n            enabled: true,\n            values: [\"*\"],\n            always: true,\n        },\n        countryAcl: {\n            enabled: true,\n            policyType: \"allow\",\n            exceptedValues: [\n                \"GB\",\n                \"DE\",\n            ],\n        },\n        ipAddressAcl: {\n            enabled: true,\n            policyType: \"deny\",\n            exceptedValues: [\"192.168.1.100/32\"],\n        },\n        referrerAcl: {\n            enabled: true,\n            policyType: \"deny\",\n            exceptedValues: [\"*.google.com\"],\n        },\n        userAgentAcl: {\n            enabled: true,\n            policyType: \"allow\",\n            exceptedValues: [\"UserAgent\"],\n        },\n        gzipOn: {\n            enabled: true,\n            value: true,\n        },\n        brotliCompression: {\n            enabled: true,\n            values: [\n                \"text/html\",\n                \"text/plain\",\n            ],\n        },\n        fetchCompressed: {\n            enabled: true,\n            value: false,\n        },\n        hostHeader: {\n            enabled: true,\n            value: \"host.com\",\n        },\n        forwardHostHeader: {\n            enabled: true,\n            value: false,\n        },\n        sni: {\n            enabled: true,\n            sniType: \"custom\",\n            customHostname: \"custom.example.com\",\n        },\n        rewrite: {\n            enabled: true,\n            body: \"/(.*) /additional_path/$1\",\n            flag: \"break\",\n        },\n        staticRequestHeaders: {\n            enabled: true,\n            value: {\n                \"X-Custom\": \"X-Request\",\n            },\n        },\n        staticResponseHeaders: {\n            enabled: true,\n            values: [\n                {\n                    name: \"X-Custom1\",\n                    values: [\n                        \"Value1\",\n                        \"Value2\",\n                    ],\n                    always: false,\n                },\n                {\n                    name: \"X-Custom2\",\n                    values: [\"CDN\"],\n                    always: true,\n                },\n            ],\n        },\n        responseHeadersHidingPolicy: {\n            enabled: true,\n            mode: \"hide\",\n            excepteds: [\"my-header\"],\n        },\n        requestLimiter: {\n            enabled: true,\n            rate: 5,\n            rateUnit: \"r/s\",\n        },\n        limitBandwidth: {\n            enabled: true,\n            limitType: \"static\",\n            speed: 100,\n            buffer: 200,\n        },\n        proxyCacheMethodsSet: {\n            enabled: true,\n            value: false,\n        },\n        proxyConnectTimeout: {\n            enabled: true,\n            value: \"4s\",\n        },\n        proxyReadTimeout: {\n            enabled: true,\n            value: \"10s\",\n        },\n        allowedHttpMethods: {\n            enabled: true,\n            values: [\n                \"GET\",\n                \"POST\",\n            ],\n        },\n        followOriginRedirect: {\n            enabled: true,\n            codes: [\n                301,\n                302,\n            ],\n        },\n        websockets: {\n            enabled: true,\n            value: true,\n        },\n        http3Enabled: {\n            enabled: true,\n            value: true,\n        },\n        imageStack: {\n            enabled: true,\n            quality: 80,\n            avifEnabled: true,\n            webpEnabled: false,\n            pngLossless: true,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample = gcore.CdnOriginGroup(\"example\",\n    name=\"origin_group_1\",\n    use_next=True,\n    sources=[{\n        \"source\": \"example.com\",\n        \"enabled\": True,\n    }])\nexample_cdn_resource = gcore.CdnResource(\"example\",\n    cname=\"cdn.example.com\",\n    origin_group=example.cdn_origin_group_id,\n    origin_protocol=\"HTTPS\",\n    ssl_enabled=True,\n    active=True,\n    description=\"CDN resource with advanced options\",\n    secondary_hostnames=[\n        \"cdn2.example.com\",\n        \"cdn3.example.com\",\n    ],\n    options={\n        \"edge_cache_settings\": {\n            \"enabled\": True,\n            \"value\": \"43200s\",\n            \"custom_values\": {\n                \"100\": \"400s\",\n                \"101\": \"400s\",\n            },\n        },\n        \"browser_cache_settings\": {\n            \"enabled\": True,\n            \"value\": \"3600s\",\n        },\n        \"ignore_cookie\": {\n            \"enabled\": True,\n            \"value\": True,\n        },\n        \"ignore_query_string\": {\n            \"enabled\": True,\n            \"value\": False,\n        },\n        \"slice\": {\n            \"enabled\": True,\n            \"value\": True,\n        },\n        \"stale\": {\n            \"enabled\": True,\n            \"values\": [\n                \"http_404\",\n                \"http_500\",\n            ],\n        },\n        \"redirect_http_to_https\": {\n            \"enabled\": True,\n            \"value\": True,\n        },\n        \"tls_versions\": {\n            \"enabled\": True,\n            \"values\": [\"TLSv1.2\"],\n        },\n        \"secure_key\": {\n            \"enabled\": True,\n            \"key\": \"secret\",\n            \"type\": 2,\n        },\n        \"cors\": {\n            \"enabled\": True,\n            \"values\": [\"*\"],\n            \"always\": True,\n        },\n        \"country_acl\": {\n            \"enabled\": True,\n            \"policy_type\": \"allow\",\n            \"excepted_values\": [\n                \"GB\",\n                \"DE\",\n            ],\n        },\n        \"ip_address_acl\": {\n            \"enabled\": True,\n            \"policy_type\": \"deny\",\n            \"excepted_values\": [\"192.168.1.100/32\"],\n        },\n        \"referrer_acl\": {\n            \"enabled\": True,\n            \"policy_type\": \"deny\",\n            \"excepted_values\": [\"*.google.com\"],\n        },\n        \"user_agent_acl\": {\n            \"enabled\": True,\n            \"policy_type\": \"allow\",\n            \"excepted_values\": [\"UserAgent\"],\n        },\n        \"gzip_on\": {\n            \"enabled\": True,\n            \"value\": True,\n        },\n        \"brotli_compression\": {\n            \"enabled\": True,\n            \"values\": [\n                \"text/html\",\n                \"text/plain\",\n            ],\n        },\n        \"fetch_compressed\": {\n            \"enabled\": True,\n            \"value\": False,\n        },\n        \"host_header\": {\n            \"enabled\": True,\n            \"value\": \"host.com\",\n        },\n        \"forward_host_header\": {\n            \"enabled\": True,\n            \"value\": False,\n        },\n        \"sni\": {\n            \"enabled\": True,\n            \"sni_type\": \"custom\",\n            \"custom_hostname\": \"custom.example.com\",\n        },\n        \"rewrite\": {\n            \"enabled\": True,\n            \"body\": \"/(.*) /additional_path/$1\",\n            \"flag\": \"break\",\n        },\n        \"static_request_headers\": {\n            \"enabled\": True,\n            \"value\": {\n                \"X-Custom\": \"X-Request\",\n            },\n        },\n        \"static_response_headers\": {\n            \"enabled\": True,\n            \"values\": [\n                {\n                    \"name\": \"X-Custom1\",\n                    \"values\": [\n                        \"Value1\",\n                        \"Value2\",\n                    ],\n                    \"always\": False,\n                },\n                {\n                    \"name\": \"X-Custom2\",\n                    \"values\": [\"CDN\"],\n                    \"always\": True,\n                },\n            ],\n        },\n        \"response_headers_hiding_policy\": {\n            \"enabled\": True,\n            \"mode\": \"hide\",\n            \"excepteds\": [\"my-header\"],\n        },\n        \"request_limiter\": {\n            \"enabled\": True,\n            \"rate\": 5,\n            \"rate_unit\": \"r/s\",\n        },\n        \"limit_bandwidth\": {\n            \"enabled\": True,\n            \"limit_type\": \"static\",\n            \"speed\": 100,\n            \"buffer\": 200,\n        },\n        \"proxy_cache_methods_set\": {\n            \"enabled\": True,\n            \"value\": False,\n        },\n        \"proxy_connect_timeout\": {\n            \"enabled\": True,\n            \"value\": \"4s\",\n        },\n        \"proxy_read_timeout\": {\n            \"enabled\": True,\n            \"value\": \"10s\",\n        },\n        \"allowed_http_methods\": {\n            \"enabled\": True,\n            \"values\": [\n                \"GET\",\n                \"POST\",\n            ],\n        },\n        \"follow_origin_redirect\": {\n            \"enabled\": True,\n            \"codes\": [\n                301,\n                302,\n            ],\n        },\n        \"websockets\": {\n            \"enabled\": True,\n            \"value\": True,\n        },\n        \"http3_enabled\": {\n            \"enabled\": True,\n            \"value\": True,\n        },\n        \"image_stack\": {\n            \"enabled\": True,\n            \"quality\": 80,\n            \"avif_enabled\": True,\n            \"webp_enabled\": False,\n            \"png_lossless\": True,\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Gcore.CdnOriginGroup(\"example\", new()\n    {\n        Name = \"origin_group_1\",\n        UseNext = true,\n        Sources = new[]\n        {\n            new Gcore.Inputs.CdnOriginGroupSourceArgs\n            {\n                Source = \"example.com\",\n                Enabled = true,\n            },\n        },\n    });\n\n    var exampleCdnResource = new Gcore.CdnResource(\"example\", new()\n    {\n        Cname = \"cdn.example.com\",\n        OriginGroup = example.CdnOriginGroupId,\n        OriginProtocol = \"HTTPS\",\n        SslEnabled = true,\n        Active = true,\n        Description = \"CDN resource with advanced options\",\n        SecondaryHostnames = new[]\n        {\n            \"cdn2.example.com\",\n            \"cdn3.example.com\",\n        },\n        Options = new Gcore.Inputs.CdnResourceOptionsArgs\n        {\n            EdgeCacheSettings = new Gcore.Inputs.CdnResourceOptionsEdgeCacheSettingsArgs\n            {\n                Enabled = true,\n                Value = \"43200s\",\n                CustomValues = \n                {\n                    { \"100\", \"400s\" },\n                    { \"101\", \"400s\" },\n                },\n            },\n            BrowserCacheSettings = new Gcore.Inputs.CdnResourceOptionsBrowserCacheSettingsArgs\n            {\n                Enabled = true,\n                Value = \"3600s\",\n            },\n            IgnoreCookie = new Gcore.Inputs.CdnResourceOptionsIgnoreCookieArgs\n            {\n                Enabled = true,\n                Value = true,\n            },\n            IgnoreQueryString = new Gcore.Inputs.CdnResourceOptionsIgnoreQueryStringArgs\n            {\n                Enabled = true,\n                Value = false,\n            },\n            Slice = new Gcore.Inputs.CdnResourceOptionsSliceArgs\n            {\n                Enabled = true,\n                Value = true,\n            },\n            Stale = new Gcore.Inputs.CdnResourceOptionsStaleArgs\n            {\n                Enabled = true,\n                Values = new[]\n                {\n                    \"http_404\",\n                    \"http_500\",\n                },\n            },\n            RedirectHttpToHttps = new Gcore.Inputs.CdnResourceOptionsRedirectHttpToHttpsArgs\n            {\n                Enabled = true,\n                Value = true,\n            },\n            TlsVersions = new Gcore.Inputs.CdnResourceOptionsTlsVersionsArgs\n            {\n                Enabled = true,\n                Values = new[]\n                {\n                    \"TLSv1.2\",\n                },\n            },\n            SecureKey = new Gcore.Inputs.CdnResourceOptionsSecureKeyArgs\n            {\n                Enabled = true,\n                Key = \"secret\",\n                Type = 2,\n            },\n            Cors = new Gcore.Inputs.CdnResourceOptionsCorsArgs\n            {\n                Enabled = true,\n                Values = new[]\n                {\n                    \"*\",\n                },\n                Always = true,\n            },\n            CountryAcl = new Gcore.Inputs.CdnResourceOptionsCountryAclArgs\n            {\n                Enabled = true,\n                PolicyType = \"allow\",\n                ExceptedValues = new[]\n                {\n                    \"GB\",\n                    \"DE\",\n                },\n            },\n            IpAddressAcl = new Gcore.Inputs.CdnResourceOptionsIpAddressAclArgs\n            {\n                Enabled = true,\n                PolicyType = \"deny\",\n                ExceptedValues = new[]\n                {\n                    \"192.168.1.100/32\",\n                },\n            },\n            ReferrerAcl = new Gcore.Inputs.CdnResourceOptionsReferrerAclArgs\n            {\n                Enabled = true,\n                PolicyType = \"deny\",\n                ExceptedValues = new[]\n                {\n                    \"*.google.com\",\n                },\n            },\n            UserAgentAcl = new Gcore.Inputs.CdnResourceOptionsUserAgentAclArgs\n            {\n                Enabled = true,\n                PolicyType = \"allow\",\n                ExceptedValues = new[]\n                {\n                    \"UserAgent\",\n                },\n            },\n            GzipOn = new Gcore.Inputs.CdnResourceOptionsGzipOnArgs\n            {\n                Enabled = true,\n                Value = true,\n            },\n            BrotliCompression = new Gcore.Inputs.CdnResourceOptionsBrotliCompressionArgs\n            {\n                Enabled = true,\n                Values = new[]\n                {\n                    \"text/html\",\n                    \"text/plain\",\n                },\n            },\n            FetchCompressed = new Gcore.Inputs.CdnResourceOptionsFetchCompressedArgs\n            {\n                Enabled = true,\n                Value = false,\n            },\n            HostHeader = new Gcore.Inputs.CdnResourceOptionsHostHeaderArgs\n            {\n                Enabled = true,\n                Value = \"host.com\",\n            },\n            ForwardHostHeader = new Gcore.Inputs.CdnResourceOptionsForwardHostHeaderArgs\n            {\n                Enabled = true,\n                Value = false,\n            },\n            Sni = new Gcore.Inputs.CdnResourceOptionsSniArgs\n            {\n                Enabled = true,\n                SniType = \"custom\",\n                CustomHostname = \"custom.example.com\",\n            },\n            Rewrite = new Gcore.Inputs.CdnResourceOptionsRewriteArgs\n            {\n                Enabled = true,\n                Body = \"/(.*) /additional_path/$1\",\n                Flag = \"break\",\n            },\n            StaticRequestHeaders = new Gcore.Inputs.CdnResourceOptionsStaticRequestHeadersArgs\n            {\n                Enabled = true,\n                Value = \n                {\n                    { \"X-Custom\", \"X-Request\" },\n                },\n            },\n            StaticResponseHeaders = new Gcore.Inputs.CdnResourceOptionsStaticResponseHeadersArgs\n            {\n                Enabled = true,\n                Values = new[]\n                {\n                    new Gcore.Inputs.CdnResourceOptionsStaticResponseHeadersValueArgs\n                    {\n                        Name = \"X-Custom1\",\n                        Values = new[]\n                        {\n                            \"Value1\",\n                            \"Value2\",\n                        },\n                        Always = false,\n                    },\n                    new Gcore.Inputs.CdnResourceOptionsStaticResponseHeadersValueArgs\n                    {\n                        Name = \"X-Custom2\",\n                        Values = new[]\n                        {\n                            \"CDN\",\n                        },\n                        Always = true,\n                    },\n                },\n            },\n            ResponseHeadersHidingPolicy = new Gcore.Inputs.CdnResourceOptionsResponseHeadersHidingPolicyArgs\n            {\n                Enabled = true,\n                Mode = \"hide\",\n                Excepteds = new[]\n                {\n                    \"my-header\",\n                },\n            },\n            RequestLimiter = new Gcore.Inputs.CdnResourceOptionsRequestLimiterArgs\n            {\n                Enabled = true,\n                Rate = 5,\n                RateUnit = \"r/s\",\n            },\n            LimitBandwidth = new Gcore.Inputs.CdnResourceOptionsLimitBandwidthArgs\n            {\n                Enabled = true,\n                LimitType = \"static\",\n                Speed = 100,\n                Buffer = 200,\n            },\n            ProxyCacheMethodsSet = new Gcore.Inputs.CdnResourceOptionsProxyCacheMethodsSetArgs\n            {\n                Enabled = true,\n                Value = false,\n            },\n            ProxyConnectTimeout = new Gcore.Inputs.CdnResourceOptionsProxyConnectTimeoutArgs\n            {\n                Enabled = true,\n                Value = \"4s\",\n            },\n            ProxyReadTimeout = new Gcore.Inputs.CdnResourceOptionsProxyReadTimeoutArgs\n            {\n                Enabled = true,\n                Value = \"10s\",\n            },\n            AllowedHttpMethods = new Gcore.Inputs.CdnResourceOptionsAllowedHttpMethodsArgs\n            {\n                Enabled = true,\n                Values = new[]\n                {\n                    \"GET\",\n                    \"POST\",\n                },\n            },\n            FollowOriginRedirect = new Gcore.Inputs.CdnResourceOptionsFollowOriginRedirectArgs\n            {\n                Enabled = true,\n                Codes = new[]\n                {\n                    301,\n                    302,\n                },\n            },\n            Websockets = new Gcore.Inputs.CdnResourceOptionsWebsocketsArgs\n            {\n                Enabled = true,\n                Value = true,\n            },\n            Http3Enabled = new Gcore.Inputs.CdnResourceOptionsHttp3EnabledArgs\n            {\n                Enabled = true,\n                Value = true,\n            },\n            ImageStack = new Gcore.Inputs.CdnResourceOptionsImageStackArgs\n            {\n                Enabled = true,\n                Quality = 80,\n                AvifEnabled = true,\n                WebpEnabled = false,\n                PngLossless = true,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := gcore.NewCdnOriginGroup(ctx, \"example\", \u0026gcore.CdnOriginGroupArgs{\n\t\t\tName:    pulumi.String(\"origin_group_1\"),\n\t\t\tUseNext: pulumi.Bool(true),\n\t\t\tSources: gcore.CdnOriginGroupSourceArray{\n\t\t\t\t\u0026gcore.CdnOriginGroupSourceArgs{\n\t\t\t\t\tSource:  pulumi.String(\"example.com\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCdnResource(ctx, \"example\", \u0026gcore.CdnResourceArgs{\n\t\t\tCname:          pulumi.String(\"cdn.example.com\"),\n\t\t\tOriginGroup:    example.CdnOriginGroupId,\n\t\t\tOriginProtocol: pulumi.String(\"HTTPS\"),\n\t\t\tSslEnabled:     pulumi.Bool(true),\n\t\t\tActive:         pulumi.Bool(true),\n\t\t\tDescription:    pulumi.String(\"CDN resource with advanced options\"),\n\t\t\tSecondaryHostnames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"cdn2.example.com\"),\n\t\t\t\tpulumi.String(\"cdn3.example.com\"),\n\t\t\t},\n\t\t\tOptions: \u0026gcore.CdnResourceOptionsArgs{\n\t\t\t\tEdgeCacheSettings: \u0026gcore.CdnResourceOptionsEdgeCacheSettingsArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.String(\"43200s\"),\n\t\t\t\t\tCustomValues: pulumi.StringMap{\n\t\t\t\t\t\t\"100\": pulumi.String(\"400s\"),\n\t\t\t\t\t\t\"101\": pulumi.String(\"400s\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tBrowserCacheSettings: \u0026gcore.CdnResourceOptionsBrowserCacheSettingsArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.String(\"3600s\"),\n\t\t\t\t},\n\t\t\t\tIgnoreCookie: \u0026gcore.CdnResourceOptionsIgnoreCookieArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tIgnoreQueryString: \u0026gcore.CdnResourceOptionsIgnoreQueryStringArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tSlice: \u0026gcore.CdnResourceOptionsSliceArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tStale: \u0026gcore.CdnResourceOptionsStaleArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"http_404\"),\n\t\t\t\t\t\tpulumi.String(\"http_500\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRedirectHttpToHttps: \u0026gcore.CdnResourceOptionsRedirectHttpToHttpsArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tTlsVersions: \u0026gcore.CdnResourceOptionsTlsVersionsArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"TLSv1.2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSecureKey: \u0026gcore.CdnResourceOptionsSecureKeyArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tKey:     pulumi.String(\"secret\"),\n\t\t\t\t\tType:    pulumi.Float64(2),\n\t\t\t\t},\n\t\t\t\tCors: \u0026gcore.CdnResourceOptionsCorsArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t\tAlways: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tCountryAcl: \u0026gcore.CdnResourceOptionsCountryAclArgs{\n\t\t\t\t\tEnabled:    pulumi.Bool(true),\n\t\t\t\t\tPolicyType: pulumi.String(\"allow\"),\n\t\t\t\t\tExceptedValues: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GB\"),\n\t\t\t\t\t\tpulumi.String(\"DE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tIpAddressAcl: \u0026gcore.CdnResourceOptionsIpAddressAclArgs{\n\t\t\t\t\tEnabled:    pulumi.Bool(true),\n\t\t\t\t\tPolicyType: pulumi.String(\"deny\"),\n\t\t\t\t\tExceptedValues: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"192.168.1.100/32\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tReferrerAcl: \u0026gcore.CdnResourceOptionsReferrerAclArgs{\n\t\t\t\t\tEnabled:    pulumi.Bool(true),\n\t\t\t\t\tPolicyType: pulumi.String(\"deny\"),\n\t\t\t\t\tExceptedValues: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*.google.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tUserAgentAcl: \u0026gcore.CdnResourceOptionsUserAgentAclArgs{\n\t\t\t\t\tEnabled:    pulumi.Bool(true),\n\t\t\t\t\tPolicyType: pulumi.String(\"allow\"),\n\t\t\t\t\tExceptedValues: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"UserAgent\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tGzipOn: \u0026gcore.CdnResourceOptionsGzipOnArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tBrotliCompression: \u0026gcore.CdnResourceOptionsBrotliCompressionArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"text/html\"),\n\t\t\t\t\t\tpulumi.String(\"text/plain\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tFetchCompressed: \u0026gcore.CdnResourceOptionsFetchCompressedArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tHostHeader: \u0026gcore.CdnResourceOptionsHostHeaderArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.String(\"host.com\"),\n\t\t\t\t},\n\t\t\t\tForwardHostHeader: \u0026gcore.CdnResourceOptionsForwardHostHeaderArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tSni: \u0026gcore.CdnResourceOptionsSniArgs{\n\t\t\t\t\tEnabled:        pulumi.Bool(true),\n\t\t\t\t\tSniType:        pulumi.String(\"custom\"),\n\t\t\t\t\tCustomHostname: pulumi.String(\"custom.example.com\"),\n\t\t\t\t},\n\t\t\t\tRewrite: \u0026gcore.CdnResourceOptionsRewriteArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tBody:    pulumi.String(\"/(.*) /additional_path/$1\"),\n\t\t\t\t\tFlag:    pulumi.String(\"break\"),\n\t\t\t\t},\n\t\t\t\tStaticRequestHeaders: \u0026gcore.CdnResourceOptionsStaticRequestHeadersArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue: pulumi.StringMap{\n\t\t\t\t\t\t\"X-Custom\": pulumi.String(\"X-Request\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tStaticResponseHeaders: \u0026gcore.CdnResourceOptionsStaticResponseHeadersArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValues: gcore.CdnResourceOptionsStaticResponseHeadersValueArray{\n\t\t\t\t\t\t\u0026gcore.CdnResourceOptionsStaticResponseHeadersValueArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"X-Custom1\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"Value1\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"Value2\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAlways: pulumi.Bool(false),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026gcore.CdnResourceOptionsStaticResponseHeadersValueArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"X-Custom2\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"CDN\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAlways: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tResponseHeadersHidingPolicy: \u0026gcore.CdnResourceOptionsResponseHeadersHidingPolicyArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tMode:    pulumi.String(\"hide\"),\n\t\t\t\t\tExcepteds: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"my-header\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequestLimiter: \u0026gcore.CdnResourceOptionsRequestLimiterArgs{\n\t\t\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\t\t\tRate:     pulumi.Float64(5),\n\t\t\t\t\tRateUnit: pulumi.String(\"r/s\"),\n\t\t\t\t},\n\t\t\t\tLimitBandwidth: \u0026gcore.CdnResourceOptionsLimitBandwidthArgs{\n\t\t\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\t\t\tLimitType: pulumi.String(\"static\"),\n\t\t\t\t\tSpeed:     pulumi.Float64(100),\n\t\t\t\t\tBuffer:    pulumi.Float64(200),\n\t\t\t\t},\n\t\t\t\tProxyCacheMethodsSet: \u0026gcore.CdnResourceOptionsProxyCacheMethodsSetArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tProxyConnectTimeout: \u0026gcore.CdnResourceOptionsProxyConnectTimeoutArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.String(\"4s\"),\n\t\t\t\t},\n\t\t\t\tProxyReadTimeout: \u0026gcore.CdnResourceOptionsProxyReadTimeoutArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.String(\"10s\"),\n\t\t\t\t},\n\t\t\t\tAllowedHttpMethods: \u0026gcore.CdnResourceOptionsAllowedHttpMethodsArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\tpulumi.String(\"POST\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tFollowOriginRedirect: \u0026gcore.CdnResourceOptionsFollowOriginRedirectArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tCodes: pulumi.Float64Array{\n\t\t\t\t\t\tpulumi.Float64(301),\n\t\t\t\t\t\tpulumi.Float64(302),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tWebsockets: \u0026gcore.CdnResourceOptionsWebsocketsArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tHttp3Enabled: \u0026gcore.CdnResourceOptionsHttp3EnabledArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tImageStack: \u0026gcore.CdnResourceOptionsImageStackArgs{\n\t\t\t\t\tEnabled:     pulumi.Bool(true),\n\t\t\t\t\tQuality:     pulumi.Float64(80),\n\t\t\t\t\tAvifEnabled: pulumi.Bool(true),\n\t\t\t\t\tWebpEnabled: pulumi.Bool(false),\n\t\t\t\t\tPngLossless: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CdnOriginGroup;\nimport com.pulumi.gcore.CdnOriginGroupArgs;\nimport com.pulumi.gcore.inputs.CdnOriginGroupSourceArgs;\nimport com.pulumi.gcore.CdnResource;\nimport com.pulumi.gcore.CdnResourceArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsEdgeCacheSettingsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsBrowserCacheSettingsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsIgnoreCookieArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsIgnoreQueryStringArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsSliceArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsStaleArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsRedirectHttpToHttpsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsTlsVersionsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsSecureKeyArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsCorsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsCountryAclArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsIpAddressAclArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsReferrerAclArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsUserAgentAclArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsGzipOnArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsBrotliCompressionArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsFetchCompressedArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsHostHeaderArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsForwardHostHeaderArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsSniArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsRewriteArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsStaticRequestHeadersArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsStaticResponseHeadersArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsResponseHeadersHidingPolicyArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsRequestLimiterArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsLimitBandwidthArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsProxyCacheMethodsSetArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsProxyConnectTimeoutArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsProxyReadTimeoutArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsAllowedHttpMethodsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsFollowOriginRedirectArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsWebsocketsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsHttp3EnabledArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsImageStackArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new CdnOriginGroup(\"example\", CdnOriginGroupArgs.builder()\n            .name(\"origin_group_1\")\n            .useNext(true)\n            .sources(CdnOriginGroupSourceArgs.builder()\n                .source(\"example.com\")\n                .enabled(true)\n                .build())\n            .build());\n\n        var exampleCdnResource = new CdnResource(\"exampleCdnResource\", CdnResourceArgs.builder()\n            .cname(\"cdn.example.com\")\n            .originGroup(example.cdnOriginGroupId())\n            .originProtocol(\"HTTPS\")\n            .sslEnabled(true)\n            .active(true)\n            .description(\"CDN resource with advanced options\")\n            .secondaryHostnames(            \n                \"cdn2.example.com\",\n                \"cdn3.example.com\")\n            .options(CdnResourceOptionsArgs.builder()\n                .edgeCacheSettings(CdnResourceOptionsEdgeCacheSettingsArgs.builder()\n                    .enabled(true)\n                    .value(\"43200s\")\n                    .customValues(Map.ofEntries(\n                        Map.entry(\"100\", \"400s\"),\n                        Map.entry(\"101\", \"400s\")\n                    ))\n                    .build())\n                .browserCacheSettings(CdnResourceOptionsBrowserCacheSettingsArgs.builder()\n                    .enabled(true)\n                    .value(\"3600s\")\n                    .build())\n                .ignoreCookie(CdnResourceOptionsIgnoreCookieArgs.builder()\n                    .enabled(true)\n                    .value(true)\n                    .build())\n                .ignoreQueryString(CdnResourceOptionsIgnoreQueryStringArgs.builder()\n                    .enabled(true)\n                    .value(false)\n                    .build())\n                .slice(CdnResourceOptionsSliceArgs.builder()\n                    .enabled(true)\n                    .value(true)\n                    .build())\n                .stale(CdnResourceOptionsStaleArgs.builder()\n                    .enabled(true)\n                    .values(                    \n                        \"http_404\",\n                        \"http_500\")\n                    .build())\n                .redirectHttpToHttps(CdnResourceOptionsRedirectHttpToHttpsArgs.builder()\n                    .enabled(true)\n                    .value(true)\n                    .build())\n                .tlsVersions(CdnResourceOptionsTlsVersionsArgs.builder()\n                    .enabled(true)\n                    .values(\"TLSv1.2\")\n                    .build())\n                .secureKey(CdnResourceOptionsSecureKeyArgs.builder()\n                    .enabled(true)\n                    .key(\"secret\")\n                    .type(2.0)\n                    .build())\n                .cors(CdnResourceOptionsCorsArgs.builder()\n                    .enabled(true)\n                    .values(\"*\")\n                    .always(true)\n                    .build())\n                .countryAcl(CdnResourceOptionsCountryAclArgs.builder()\n                    .enabled(true)\n                    .policyType(\"allow\")\n                    .exceptedValues(                    \n                        \"GB\",\n                        \"DE\")\n                    .build())\n                .ipAddressAcl(CdnResourceOptionsIpAddressAclArgs.builder()\n                    .enabled(true)\n                    .policyType(\"deny\")\n                    .exceptedValues(\"192.168.1.100/32\")\n                    .build())\n                .referrerAcl(CdnResourceOptionsReferrerAclArgs.builder()\n                    .enabled(true)\n                    .policyType(\"deny\")\n                    .exceptedValues(\"*.google.com\")\n                    .build())\n                .userAgentAcl(CdnResourceOptionsUserAgentAclArgs.builder()\n                    .enabled(true)\n                    .policyType(\"allow\")\n                    .exceptedValues(\"UserAgent\")\n                    .build())\n                .gzipOn(CdnResourceOptionsGzipOnArgs.builder()\n                    .enabled(true)\n                    .value(true)\n                    .build())\n                .brotliCompression(CdnResourceOptionsBrotliCompressionArgs.builder()\n                    .enabled(true)\n                    .values(                    \n                        \"text/html\",\n                        \"text/plain\")\n                    .build())\n                .fetchCompressed(CdnResourceOptionsFetchCompressedArgs.builder()\n                    .enabled(true)\n                    .value(false)\n                    .build())\n                .hostHeader(CdnResourceOptionsHostHeaderArgs.builder()\n                    .enabled(true)\n                    .value(\"host.com\")\n                    .build())\n                .forwardHostHeader(CdnResourceOptionsForwardHostHeaderArgs.builder()\n                    .enabled(true)\n                    .value(false)\n                    .build())\n                .sni(CdnResourceOptionsSniArgs.builder()\n                    .enabled(true)\n                    .sniType(\"custom\")\n                    .customHostname(\"custom.example.com\")\n                    .build())\n                .rewrite(CdnResourceOptionsRewriteArgs.builder()\n                    .enabled(true)\n                    .body(\"/(.*) /additional_path/$1\")\n                    .flag(\"break\")\n                    .build())\n                .staticRequestHeaders(CdnResourceOptionsStaticRequestHeadersArgs.builder()\n                    .enabled(true)\n                    .value(Map.of(\"X-Custom\", \"X-Request\"))\n                    .build())\n                .staticResponseHeaders(CdnResourceOptionsStaticResponseHeadersArgs.builder()\n                    .enabled(true)\n                    .values(                    \n                        CdnResourceOptionsStaticResponseHeadersValueArgs.builder()\n                            .name(\"X-Custom1\")\n                            .values(                            \n                                \"Value1\",\n                                \"Value2\")\n                            .always(false)\n                            .build(),\n                        CdnResourceOptionsStaticResponseHeadersValueArgs.builder()\n                            .name(\"X-Custom2\")\n                            .values(\"CDN\")\n                            .always(true)\n                            .build())\n                    .build())\n                .responseHeadersHidingPolicy(CdnResourceOptionsResponseHeadersHidingPolicyArgs.builder()\n                    .enabled(true)\n                    .mode(\"hide\")\n                    .excepteds(\"my-header\")\n                    .build())\n                .requestLimiter(CdnResourceOptionsRequestLimiterArgs.builder()\n                    .enabled(true)\n                    .rate(5.0)\n                    .rateUnit(\"r/s\")\n                    .build())\n                .limitBandwidth(CdnResourceOptionsLimitBandwidthArgs.builder()\n                    .enabled(true)\n                    .limitType(\"static\")\n                    .speed(100.0)\n                    .buffer(200.0)\n                    .build())\n                .proxyCacheMethodsSet(CdnResourceOptionsProxyCacheMethodsSetArgs.builder()\n                    .enabled(true)\n                    .value(false)\n                    .build())\n                .proxyConnectTimeout(CdnResourceOptionsProxyConnectTimeoutArgs.builder()\n                    .enabled(true)\n                    .value(\"4s\")\n                    .build())\n                .proxyReadTimeout(CdnResourceOptionsProxyReadTimeoutArgs.builder()\n                    .enabled(true)\n                    .value(\"10s\")\n                    .build())\n                .allowedHttpMethods(CdnResourceOptionsAllowedHttpMethodsArgs.builder()\n                    .enabled(true)\n                    .values(                    \n                        \"GET\",\n                        \"POST\")\n                    .build())\n                .followOriginRedirect(CdnResourceOptionsFollowOriginRedirectArgs.builder()\n                    .enabled(true)\n                    .codes(                    \n                        301.0,\n                        302.0)\n                    .build())\n                .websockets(CdnResourceOptionsWebsocketsArgs.builder()\n                    .enabled(true)\n                    .value(true)\n                    .build())\n                .http3Enabled(CdnResourceOptionsHttp3EnabledArgs.builder()\n                    .enabled(true)\n                    .value(true)\n                    .build())\n                .imageStack(CdnResourceOptionsImageStackArgs.builder()\n                    .enabled(true)\n                    .quality(80.0)\n                    .avifEnabled(true)\n                    .webpEnabled(false)\n                    .pngLossless(true)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: gcore:CdnOriginGroup\n    properties:\n      name: origin_group_1\n      useNext: true\n      sources:\n        - source: example.com\n          enabled: true\n  exampleCdnResource:\n    type: gcore:CdnResource\n    name: example\n    properties:\n      cname: cdn.example.com\n      originGroup: ${example.cdnOriginGroupId}\n      originProtocol: HTTPS\n      sslEnabled: true\n      active: true\n      description: CDN resource with advanced options\n      secondaryHostnames:\n        - cdn2.example.com\n        - cdn3.example.com\n      options:\n        edgeCacheSettings:\n          enabled: true\n          value: 43200s\n          customValues:\n            '100': 400s\n            '101': 400s\n        browserCacheSettings:\n          enabled: true\n          value: 3600s\n        ignoreCookie:\n          enabled: true\n          value: true\n        ignoreQueryString:\n          enabled: true\n          value: false\n        slice:\n          enabled: true\n          value: true\n        stale:\n          enabled: true\n          values:\n            - http_404\n            - http_500\n        redirectHttpToHttps:\n          enabled: true\n          value: true\n        tlsVersions:\n          enabled: true\n          values:\n            - TLSv1.2\n        secureKey:\n          enabled: true\n          key: secret\n          type: 2\n        cors:\n          enabled: true\n          values:\n            - '*'\n          always: true\n        countryAcl:\n          enabled: true\n          policyType: allow\n          exceptedValues:\n            - GB\n            - DE\n        ipAddressAcl:\n          enabled: true\n          policyType: deny\n          exceptedValues:\n            - 192.168.1.100/32\n        referrerAcl:\n          enabled: true\n          policyType: deny\n          exceptedValues:\n            - '*.google.com'\n        userAgentAcl:\n          enabled: true\n          policyType: allow\n          exceptedValues:\n            - UserAgent\n        gzipOn:\n          enabled: true\n          value: true\n        brotliCompression:\n          enabled: true\n          values:\n            - text/html\n            - text/plain\n        fetchCompressed:\n          enabled: true\n          value: false\n        hostHeader:\n          enabled: true\n          value: host.com\n        forwardHostHeader:\n          enabled: true\n          value: false\n        sni:\n          enabled: true\n          sniType: custom\n          customHostname: custom.example.com\n        rewrite:\n          enabled: true\n          body: /(.*) /additional_path/$1\n          flag: break\n        staticRequestHeaders:\n          enabled: true\n          value:\n            X-Custom: X-Request\n        staticResponseHeaders:\n          enabled: true\n          values:\n            - name: X-Custom1\n              values:\n                - Value1\n                - Value2\n              always: false\n            - name: X-Custom2\n              values:\n                - CDN\n              always: true\n        responseHeadersHidingPolicy:\n          enabled: true\n          mode: hide\n          excepteds:\n            - my-header\n        requestLimiter:\n          enabled: true\n          rate: 5\n          rateUnit: r/s\n        limitBandwidth:\n          enabled: true\n          limitType: static\n          speed: 100\n          buffer: 200\n        proxyCacheMethodsSet:\n          enabled: true\n          value: false\n        proxyConnectTimeout:\n          enabled: true\n          value: 4s\n        proxyReadTimeout:\n          enabled: true\n          value: 10s\n        allowedHttpMethods:\n          enabled: true\n          values:\n            - GET\n            - POST\n        followOriginRedirect:\n          enabled: true\n          codes:\n            - 301\n            - 302\n        websockets:\n          enabled: true\n          value: true\n        http3Enabled:\n          enabled: true\n          value: true\n        imageStack:\n          enabled: true\n          quality: 80\n          avifEnabled: true\n          webpEnabled: false\n          pngLossless: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cdnResource:CdnResource example '\u003cresource_id\u003e'\n```\n\n","properties":{"active":{"type":"boolean","description":"Enables or disables a CDN resource.\n\nPossible values:\n- **true** - CDN resource is active. Content is being delivered.\n- **false** - CDN resource is deactivated. Content is not being delivered."},"canPurgeByUrls":{"type":"boolean","description":"Defines whether the CDN resource can be used for purge by URLs feature.\n\nIt's available only in case the CDN resource has enabled \u003cspan pulumi-lang-nodejs=\"`ignoreVaryHeader`\" pulumi-lang-dotnet=\"`IgnoreVaryHeader`\" pulumi-lang-go=\"`ignoreVaryHeader`\" pulumi-lang-python=\"`ignore_vary_header`\" pulumi-lang-yaml=\"`ignoreVaryHeader`\" pulumi-lang-java=\"`ignoreVaryHeader`\"\u003e`ignore_vary_header`\u003c/span\u003e option."},"cdnResourceId":{"type":"number","description":"CDN resource ID."},"client":{"type":"number","description":"ID of an account to which the CDN resource belongs."},"cname":{"type":"string","description":"Delivery domains that will be used for content delivery through a CDN.\n"},"created":{"type":"string","description":"Date of CDN resource creation."},"description":{"type":"string","description":"Optional comment describing the CDN resource."},"fullCustomEnabled":{"type":"boolean","description":"Defines whether the CDN resource has a custom configuration.\n\nPossible values:\n- **true** - CDN resource has a custom configuration. You cannot change resource settings, except for the SSL certificate. To change other settings, contact technical support.\n- **false** - CDN resource has a regular configuration. You can change CDN resource settings."},"isPrimary":{"type":"boolean","description":"Defines whether a CDN resource has a cache zone shared with other CDN resources.\n\nPossible values:\n- **true** - CDN resource is main and has a shared caching zone with other CDN resources, which are called reserve.\n- **false** - CDN resource is reserve and it has a shared caching zone with the main CDN resource. You cannot change some options, create rules, set up origin shielding and use the reserve resource for Streaming.\n- **null** - CDN resource does not have a shared cache zone.\n\nThe main CDN resource is specified in the \u003cspan pulumi-lang-nodejs=\"`primaryResource`\" pulumi-lang-dotnet=\"`PrimaryResource`\" pulumi-lang-go=\"`primaryResource`\" pulumi-lang-python=\"`primary_resource`\" pulumi-lang-yaml=\"`primaryResource`\" pulumi-lang-java=\"`primaryResource`\"\u003e`primary_resource`\u003c/span\u003e field. It cannot be suspended unless all related reserve CDN resources are suspended."},"name":{"type":"string","description":"CDN resource name."},"options":{"$ref":"#/types/gcore:index%2FCdnResourceOptions:CdnResourceOptions","description":"List of options that can be configured for the CDN resource.\n\nIn case of \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e value the option is not added to the CDN resource.\nOption may inherit its value from the global account settings."},"origin":{"type":"string","description":"IP address or domain name of the origin and the port, if custom port is used.\n\nYou can use either the \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e or `originGroup` parameter in the request."},"originGroup":{"type":"number","description":"Origin group ID with which the CDN resource is associated.\n\nYou can use either the \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e or `originGroup` parameter in the request."},"originGroupName":{"type":"string","description":"Origin group name."},"originProtocol":{"type":"string","description":"Protocol used by CDN servers to request content from an origin source.\n\nPossible values:\n- **HTTPS** - CDN servers will connect to the origin via HTTPS.\n- **HTTP** - CDN servers will connect to the origin via HTTP.\n- **MATCH** - connection protocol will be chosen automatically (content on the origin source should be available for the CDN both through HTTP and HTTPS).\n\nIf protocol is not specified, HTTP is used to connect to an origin server.\nAvailable values: \"HTTP\", \"HTTPS\", \"MATCH\"."},"presetApplied":{"type":"boolean","description":"Defines whether the CDN resource has a preset applied.\n\nPossible values:\n- **true** - CDN resource has a preset applied. CDN resource options included in the preset cannot be edited.\n- **false** - CDN resource does not have a preset applied."},"primaryResource":{"type":"number","description":"ID of the main CDN resource which has a shared caching zone with a reserve CDN resource.\n\nIf the parameter is not empty, then the current CDN resource is the reserve.\nYou cannot change some options, create rules, set up origin shielding, or use the reserve CDN resource for Streaming."},"proxySslCa":{"type":"number","description":"ID of the trusted CA certificate used to verify an origin.\n\nIt can be used only with `\u003cspan pulumi-lang-nodejs=\"\"proxySslEnabled\"\" pulumi-lang-dotnet=\"\"ProxySslEnabled\"\" pulumi-lang-go=\"\"proxySslEnabled\"\" pulumi-lang-python=\"\"proxy_ssl_enabled\"\" pulumi-lang-yaml=\"\"proxySslEnabled\"\" pulumi-lang-java=\"\"proxySslEnabled\"\"\u003e\"proxy_ssl_enabled\"\u003c/span\u003e: true`."},"proxySslData":{"type":"number","description":"ID of the SSL certificate used to verify an origin.\n\nIt can be used only with `\u003cspan pulumi-lang-nodejs=\"\"proxySslEnabled\"\" pulumi-lang-dotnet=\"\"ProxySslEnabled\"\" pulumi-lang-go=\"\"proxySslEnabled\"\" pulumi-lang-python=\"\"proxy_ssl_enabled\"\" pulumi-lang-yaml=\"\"proxySslEnabled\"\" pulumi-lang-java=\"\"proxySslEnabled\"\"\u003e\"proxy_ssl_enabled\"\u003c/span\u003e: true`."},"proxySslEnabled":{"type":"boolean","description":"Enables or disables SSL certificate validation of the origin server before completing any connection.\n\nPossible values:\n- **true** - Origin SSL certificate validation is enabled.\n- **false** - Origin SSL certificate validation is disabled."},"rules":{"type":"array","items":{"type":"string"},"description":"Rules configured for the CDN resource."},"secondaryHostnames":{"type":"array","items":{"type":"string"},"description":"Additional delivery domains (CNAMEs) that will be used to deliver content via the CDN.\n\nUp to ten additional CNAMEs are possible."},"shieldDc":{"type":"string","description":"Name of the origin shielding location data center.\n\nParameter returns **null** if origin shielding is disabled."},"shieldEnabled":{"type":"boolean","description":"Defines whether origin shield is active and working for the CDN resource.\n\nPossible values:\n- **true** - Origin shield is active.\n- **false** - Origin shield is not active."},"shieldRoutingMap":{"type":"number","description":"Defines whether the origin shield with a dynamic location is enabled for the CDN resource.\n\nTo manage origin shielding, you must contact customer support."},"shielded":{"type":"boolean","description":"Defines whether origin shielding feature is enabled for the resource.\n\nPossible values:\n- **true** - Origin shielding is enabled.\n- **false** - Origin shielding is disabled."},"sslData":{"type":"number","description":"ID of the SSL certificate linked to the CDN resource.\n\nCan be used only with `\"sslEnabled\": true`."},"sslEnabled":{"type":"boolean","description":"Defines whether the HTTPS protocol enabled for content delivery.\n\nPossible values:\n- **true** - HTTPS is enabled.\n- **false** - HTTPS is disabled."},"suspendDate":{"type":"string","description":"Date when the CDN resource was suspended automatically if there is no traffic on it for 90 days.\n\nNot specified if the resource was not stopped due to lack of traffic."},"suspended":{"type":"boolean","description":"Defines whether the CDN resource has been automatically suspended because there was no traffic on it for 90 days.\n\nPossible values:\n- **true** - CDN resource is currently automatically suspended.\n- **false** - CDN resource is not automatically suspended.\n\nYou can enable CDN resource using the \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e field. If there is no traffic on the CDN resource within seven days following activation, it will be suspended again.\n\nTo avoid CDN resource suspension due to no traffic, contact technical support."},"vpEnabled":{"type":"boolean","description":"Defines whether the CDN resource is integrated with the Streaming Platform.\n\nPossible values:\n- **true** - CDN resource is configured for Streaming Platform. Changing resource settings can affect its operation.\n- **false** - CDN resource is not configured for Streaming Platform."},"waapApiDomainEnabled":{"type":"boolean","description":"Defines whether the associated WAAP Domain is identified as an API Domain.\n\nPossible values:\n- **true** - The associated WAAP Domain is designated as an API Domain.\n- **false** - The associated WAAP Domain is not designated as an API Domain."},"waapDomainId":{"type":"string","description":"The ID of the associated WAAP domain."}},"type":"object","required":["active","canPurgeByUrls","cdnResourceId","client","cname","created","description","fullCustomEnabled","isPrimary","name","options","origin","originGroup","originGroupName","originProtocol","presetApplied","proxySslCa","proxySslData","proxySslEnabled","rules","secondaryHostnames","shieldDc","shieldEnabled","shieldRoutingMap","shielded","sslData","sslEnabled","suspendDate","suspended","vpEnabled","waapDomainId"],"inputProperties":{"active":{"type":"boolean","description":"Enables or disables a CDN resource.\n\nPossible values:\n- **true** - CDN resource is active. Content is being delivered.\n- **false** - CDN resource is deactivated. Content is not being delivered."},"cname":{"type":"string","description":"Delivery domains that will be used for content delivery through a CDN.\n"},"description":{"type":"string","description":"Optional comment describing the CDN resource."},"name":{"type":"string","description":"CDN resource name."},"options":{"$ref":"#/types/gcore:index%2FCdnResourceOptions:CdnResourceOptions","description":"List of options that can be configured for the CDN resource.\n\nIn case of \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e value the option is not added to the CDN resource.\nOption may inherit its value from the global account settings."},"origin":{"type":"string","description":"IP address or domain name of the origin and the port, if custom port is used.\n\nYou can use either the \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e or `originGroup` parameter in the request."},"originGroup":{"type":"number","description":"Origin group ID with which the CDN resource is associated.\n\nYou can use either the \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e or `originGroup` parameter in the request."},"originProtocol":{"type":"string","description":"Protocol used by CDN servers to request content from an origin source.\n\nPossible values:\n- **HTTPS** - CDN servers will connect to the origin via HTTPS.\n- **HTTP** - CDN servers will connect to the origin via HTTP.\n- **MATCH** - connection protocol will be chosen automatically (content on the origin source should be available for the CDN both through HTTP and HTTPS).\n\nIf protocol is not specified, HTTP is used to connect to an origin server.\nAvailable values: \"HTTP\", \"HTTPS\", \"MATCH\"."},"primaryResource":{"type":"number","description":"ID of the main CDN resource which has a shared caching zone with a reserve CDN resource.\n\nIf the parameter is not empty, then the current CDN resource is the reserve.\nYou cannot change some options, create rules, set up origin shielding, or use the reserve CDN resource for Streaming."},"proxySslCa":{"type":"number","description":"ID of the trusted CA certificate used to verify an origin.\n\nIt can be used only with `\u003cspan pulumi-lang-nodejs=\"\"proxySslEnabled\"\" pulumi-lang-dotnet=\"\"ProxySslEnabled\"\" pulumi-lang-go=\"\"proxySslEnabled\"\" pulumi-lang-python=\"\"proxy_ssl_enabled\"\" pulumi-lang-yaml=\"\"proxySslEnabled\"\" pulumi-lang-java=\"\"proxySslEnabled\"\"\u003e\"proxy_ssl_enabled\"\u003c/span\u003e: true`."},"proxySslData":{"type":"number","description":"ID of the SSL certificate used to verify an origin.\n\nIt can be used only with `\u003cspan pulumi-lang-nodejs=\"\"proxySslEnabled\"\" pulumi-lang-dotnet=\"\"ProxySslEnabled\"\" pulumi-lang-go=\"\"proxySslEnabled\"\" pulumi-lang-python=\"\"proxy_ssl_enabled\"\" pulumi-lang-yaml=\"\"proxySslEnabled\"\" pulumi-lang-java=\"\"proxySslEnabled\"\"\u003e\"proxy_ssl_enabled\"\u003c/span\u003e: true`."},"proxySslEnabled":{"type":"boolean","description":"Enables or disables SSL certificate validation of the origin server before completing any connection.\n\nPossible values:\n- **true** - Origin SSL certificate validation is enabled.\n- **false** - Origin SSL certificate validation is disabled."},"secondaryHostnames":{"type":"array","items":{"type":"string"},"description":"Additional delivery domains (CNAMEs) that will be used to deliver content via the CDN.\n\nUp to ten additional CNAMEs are possible."},"sslData":{"type":"number","description":"ID of the SSL certificate linked to the CDN resource.\n\nCan be used only with `\"sslEnabled\": true`."},"sslEnabled":{"type":"boolean","description":"Defines whether the HTTPS protocol enabled for content delivery.\n\nPossible values:\n- **true** - HTTPS is enabled.\n- **false** - HTTPS is disabled."},"waapApiDomainEnabled":{"type":"boolean","description":"Defines whether the associated WAAP Domain is identified as an API Domain.\n\nPossible values:\n- **true** - The associated WAAP Domain is designated as an API Domain.\n- **false** - The associated WAAP Domain is not designated as an API Domain."}},"requiredInputs":["cname"],"stateInputs":{"description":"Input properties used for looking up and filtering CdnResource resources.\n","properties":{"active":{"type":"boolean","description":"Enables or disables a CDN resource.\n\nPossible values:\n- **true** - CDN resource is active. Content is being delivered.\n- **false** - CDN resource is deactivated. Content is not being delivered."},"canPurgeByUrls":{"type":"boolean","description":"Defines whether the CDN resource can be used for purge by URLs feature.\n\nIt's available only in case the CDN resource has enabled \u003cspan pulumi-lang-nodejs=\"`ignoreVaryHeader`\" pulumi-lang-dotnet=\"`IgnoreVaryHeader`\" pulumi-lang-go=\"`ignoreVaryHeader`\" pulumi-lang-python=\"`ignore_vary_header`\" pulumi-lang-yaml=\"`ignoreVaryHeader`\" pulumi-lang-java=\"`ignoreVaryHeader`\"\u003e`ignore_vary_header`\u003c/span\u003e option."},"cdnResourceId":{"type":"number","description":"CDN resource ID."},"client":{"type":"number","description":"ID of an account to which the CDN resource belongs."},"cname":{"type":"string","description":"Delivery domains that will be used for content delivery through a CDN.\n"},"created":{"type":"string","description":"Date of CDN resource creation."},"description":{"type":"string","description":"Optional comment describing the CDN resource."},"fullCustomEnabled":{"type":"boolean","description":"Defines whether the CDN resource has a custom configuration.\n\nPossible values:\n- **true** - CDN resource has a custom configuration. You cannot change resource settings, except for the SSL certificate. To change other settings, contact technical support.\n- **false** - CDN resource has a regular configuration. You can change CDN resource settings."},"isPrimary":{"type":"boolean","description":"Defines whether a CDN resource has a cache zone shared with other CDN resources.\n\nPossible values:\n- **true** - CDN resource is main and has a shared caching zone with other CDN resources, which are called reserve.\n- **false** - CDN resource is reserve and it has a shared caching zone with the main CDN resource. You cannot change some options, create rules, set up origin shielding and use the reserve resource for Streaming.\n- **null** - CDN resource does not have a shared cache zone.\n\nThe main CDN resource is specified in the \u003cspan pulumi-lang-nodejs=\"`primaryResource`\" pulumi-lang-dotnet=\"`PrimaryResource`\" pulumi-lang-go=\"`primaryResource`\" pulumi-lang-python=\"`primary_resource`\" pulumi-lang-yaml=\"`primaryResource`\" pulumi-lang-java=\"`primaryResource`\"\u003e`primary_resource`\u003c/span\u003e field. It cannot be suspended unless all related reserve CDN resources are suspended."},"name":{"type":"string","description":"CDN resource name."},"options":{"$ref":"#/types/gcore:index%2FCdnResourceOptions:CdnResourceOptions","description":"List of options that can be configured for the CDN resource.\n\nIn case of \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e value the option is not added to the CDN resource.\nOption may inherit its value from the global account settings."},"origin":{"type":"string","description":"IP address or domain name of the origin and the port, if custom port is used.\n\nYou can use either the \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e or `originGroup` parameter in the request."},"originGroup":{"type":"number","description":"Origin group ID with which the CDN resource is associated.\n\nYou can use either the \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e or `originGroup` parameter in the request."},"originGroupName":{"type":"string","description":"Origin group name."},"originProtocol":{"type":"string","description":"Protocol used by CDN servers to request content from an origin source.\n\nPossible values:\n- **HTTPS** - CDN servers will connect to the origin via HTTPS.\n- **HTTP** - CDN servers will connect to the origin via HTTP.\n- **MATCH** - connection protocol will be chosen automatically (content on the origin source should be available for the CDN both through HTTP and HTTPS).\n\nIf protocol is not specified, HTTP is used to connect to an origin server.\nAvailable values: \"HTTP\", \"HTTPS\", \"MATCH\"."},"presetApplied":{"type":"boolean","description":"Defines whether the CDN resource has a preset applied.\n\nPossible values:\n- **true** - CDN resource has a preset applied. CDN resource options included in the preset cannot be edited.\n- **false** - CDN resource does not have a preset applied."},"primaryResource":{"type":"number","description":"ID of the main CDN resource which has a shared caching zone with a reserve CDN resource.\n\nIf the parameter is not empty, then the current CDN resource is the reserve.\nYou cannot change some options, create rules, set up origin shielding, or use the reserve CDN resource for Streaming."},"proxySslCa":{"type":"number","description":"ID of the trusted CA certificate used to verify an origin.\n\nIt can be used only with `\u003cspan pulumi-lang-nodejs=\"\"proxySslEnabled\"\" pulumi-lang-dotnet=\"\"ProxySslEnabled\"\" pulumi-lang-go=\"\"proxySslEnabled\"\" pulumi-lang-python=\"\"proxy_ssl_enabled\"\" pulumi-lang-yaml=\"\"proxySslEnabled\"\" pulumi-lang-java=\"\"proxySslEnabled\"\"\u003e\"proxy_ssl_enabled\"\u003c/span\u003e: true`."},"proxySslData":{"type":"number","description":"ID of the SSL certificate used to verify an origin.\n\nIt can be used only with `\u003cspan pulumi-lang-nodejs=\"\"proxySslEnabled\"\" pulumi-lang-dotnet=\"\"ProxySslEnabled\"\" pulumi-lang-go=\"\"proxySslEnabled\"\" pulumi-lang-python=\"\"proxy_ssl_enabled\"\" pulumi-lang-yaml=\"\"proxySslEnabled\"\" pulumi-lang-java=\"\"proxySslEnabled\"\"\u003e\"proxy_ssl_enabled\"\u003c/span\u003e: true`."},"proxySslEnabled":{"type":"boolean","description":"Enables or disables SSL certificate validation of the origin server before completing any connection.\n\nPossible values:\n- **true** - Origin SSL certificate validation is enabled.\n- **false** - Origin SSL certificate validation is disabled."},"rules":{"type":"array","items":{"type":"string"},"description":"Rules configured for the CDN resource."},"secondaryHostnames":{"type":"array","items":{"type":"string"},"description":"Additional delivery domains (CNAMEs) that will be used to deliver content via the CDN.\n\nUp to ten additional CNAMEs are possible."},"shieldDc":{"type":"string","description":"Name of the origin shielding location data center.\n\nParameter returns **null** if origin shielding is disabled."},"shieldEnabled":{"type":"boolean","description":"Defines whether origin shield is active and working for the CDN resource.\n\nPossible values:\n- **true** - Origin shield is active.\n- **false** - Origin shield is not active."},"shieldRoutingMap":{"type":"number","description":"Defines whether the origin shield with a dynamic location is enabled for the CDN resource.\n\nTo manage origin shielding, you must contact customer support."},"shielded":{"type":"boolean","description":"Defines whether origin shielding feature is enabled for the resource.\n\nPossible values:\n- **true** - Origin shielding is enabled.\n- **false** - Origin shielding is disabled."},"sslData":{"type":"number","description":"ID of the SSL certificate linked to the CDN resource.\n\nCan be used only with `\"sslEnabled\": true`."},"sslEnabled":{"type":"boolean","description":"Defines whether the HTTPS protocol enabled for content delivery.\n\nPossible values:\n- **true** - HTTPS is enabled.\n- **false** - HTTPS is disabled."},"suspendDate":{"type":"string","description":"Date when the CDN resource was suspended automatically if there is no traffic on it for 90 days.\n\nNot specified if the resource was not stopped due to lack of traffic."},"suspended":{"type":"boolean","description":"Defines whether the CDN resource has been automatically suspended because there was no traffic on it for 90 days.\n\nPossible values:\n- **true** - CDN resource is currently automatically suspended.\n- **false** - CDN resource is not automatically suspended.\n\nYou can enable CDN resource using the \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e field. If there is no traffic on the CDN resource within seven days following activation, it will be suspended again.\n\nTo avoid CDN resource suspension due to no traffic, contact technical support."},"vpEnabled":{"type":"boolean","description":"Defines whether the CDN resource is integrated with the Streaming Platform.\n\nPossible values:\n- **true** - CDN resource is configured for Streaming Platform. Changing resource settings can affect its operation.\n- **false** - CDN resource is not configured for Streaming Platform."},"waapApiDomainEnabled":{"type":"boolean","description":"Defines whether the associated WAAP Domain is identified as an API Domain.\n\nPossible values:\n- **true** - The associated WAAP Domain is designated as an API Domain.\n- **false** - The associated WAAP Domain is not designated as an API Domain."},"waapDomainId":{"type":"string","description":"The ID of the associated WAAP domain."}},"type":"object"}},"gcore:index/cdnResourceRule:CdnResourceRule":{"description":"CDN resource rules set custom caching, delivery, and security options for specific URL patterns or file types.\n\n## Example Usage\n\n### Basic CDN rule\n\nCreate a CDN resource rule that matches a URL pattern and overrides the origin protocol.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create a CDN resource rule\nconst example = new gcore.CdnResourceRule(\"example\", {\n    resourceId: 12345,\n    name: \"my-cdn-rule\",\n    rule: \"/assets/*.png\",\n    ruleType: 0,\n    active: true,\n    overrideOriginProtocol: \"HTTPS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create a CDN resource rule\nexample = gcore.CdnResourceRule(\"example\",\n    resource_id=12345,\n    name=\"my-cdn-rule\",\n    rule=\"/assets/*.png\",\n    rule_type=0,\n    active=True,\n    override_origin_protocol=\"HTTPS\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a CDN resource rule\n    var example = new Gcore.CdnResourceRule(\"example\", new()\n    {\n        ResourceId = 12345,\n        Name = \"my-cdn-rule\",\n        Rule = \"/assets/*.png\",\n        RuleType = 0,\n        Active = true,\n        OverrideOriginProtocol = \"HTTPS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a CDN resource rule\n\t\t_, err := gcore.NewCdnResourceRule(ctx, \"example\", \u0026gcore.CdnResourceRuleArgs{\n\t\t\tResourceId:             pulumi.Float64(12345),\n\t\t\tName:                   pulumi.String(\"my-cdn-rule\"),\n\t\t\tRule:                   pulumi.String(\"/assets/*.png\"),\n\t\t\tRuleType:               pulumi.Float64(0),\n\t\t\tActive:                 pulumi.Bool(true),\n\t\t\tOverrideOriginProtocol: pulumi.String(\"HTTPS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CdnResourceRule;\nimport com.pulumi.gcore.CdnResourceRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a CDN resource rule\n        var example = new CdnResourceRule(\"example\", CdnResourceRuleArgs.builder()\n            .resourceId(12345.0)\n            .name(\"my-cdn-rule\")\n            .rule(\"/assets/*.png\")\n            .ruleType(0.0)\n            .active(true)\n            .overrideOriginProtocol(\"HTTPS\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a CDN resource rule\n  example:\n    type: gcore:CdnResourceRule\n    properties:\n      resourceId: 12345\n      name: my-cdn-rule\n      rule: /assets/*.png\n      ruleType: 0\n      active: true\n      overrideOriginProtocol: HTTPS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cdnResourceRule:CdnResourceRule example '\u003cresource_id\u003e/\u003crule_id\u003e'\n```\n\n","properties":{"active":{"type":"boolean","description":"Enables or disables a rule.\n\nPossible values:\n- **true** - Rule is active, rule settings are applied.\n- **false** - Rule is inactive, rule settings are not applied."},"cdnResourceRuleId":{"type":"number","description":"Rule ID."},"deleted":{"type":"boolean","description":"Defines whether the rule has been deleted.\n\nPossible values:\n- **true** - Rule has been deleted.\n- **false** - Rule has not been deleted."},"name":{"type":"string","description":"Rule name.\n"},"options":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptions:CdnResourceRuleOptions","description":"List of options that can be configured for the rule.\n\nIn case of \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e value the option is not added to the rule.\nOption inherits its value from the CDN resource settings."},"originGroup":{"type":"number","description":"ID of the origin group to which the rule is applied.\n\nIf the origin group is not specified, the rule is applied to the origin group that the CDN resource is associated with."},"originProtocol":{"type":"string","description":"Protocol used by CDN servers to request content from an origin source.\n\nPossible values:\n- **HTTPS** - CDN servers connect to origin via HTTPS protocol.\n- **HTTP** - CDN servers connect to origin via HTTP protocol.\n- **MATCH** - Connection protocol is chosen automatically; in this case, content on origin source should be available for the CDN both through HTTP and HTTPS protocols.\nAvailable values: \"HTTPS\", \"HTTP\", \"MATCH\"."},"overrideOriginProtocol":{"type":"string","description":"Sets a protocol other than the one specified in the CDN resource settings to connect to the origin.\n\nPossible values:\n- **HTTPS** - CDN servers connect to origin via HTTPS protocol.\n- **HTTP** - CDN servers connect to origin via HTTP protocol.\n- **MATCH** - Connection protocol is chosen automatically; in this case, content on origin source should be available for the CDN both through HTTP and HTTPS protocols.\n- **null** - `originProtocol` setting is inherited from the CDN resource settings.\nAvailable values: \"HTTPS\", \"HTTP\", \"MATCH\"."},"presetApplied":{"type":"boolean","description":"Defines whether the rule has an applied preset.\n\nPossible values:\n- **true** - Rule has a preset applied.\n- **false** - Rule does not have a preset applied.\n\nIf a preset is applied to the rule, the options included in the preset cannot be edited for the rule."},"primaryRule":{"type":"number","description":"ID of the rule with which the current rule is synchronized within the CDN resource shared cache zone feature."},"resourceId":{"type":"number"},"rule":{"type":"string","description":"Path to the file or folder for which the rule will be applied.\n"},"ruleType":{"type":"number","description":"Rule type.\n\nPossible values:\n- **Type 0** - Regular expression. Must start with '^/' or '/'.\n- **Type 1** - Regular expression. Note that for this rule type we automatically add / to each rule pattern before your regular expression. This type is **legacy**, please use Type 0."},"weight":{"type":"number","description":"Rule execution order: from lowest (1) to highest.\n\nIf requested URI matches multiple rules, the one higher in the order of the rules will be applied."}},"type":"object","required":["cdnResourceRuleId","deleted","name","options","originProtocol","presetApplied","primaryRule","resourceId","rule","ruleType","weight"],"inputProperties":{"active":{"type":"boolean","description":"Enables or disables a rule.\n\nPossible values:\n- **true** - Rule is active, rule settings are applied.\n- **false** - Rule is inactive, rule settings are not applied."},"name":{"type":"string","description":"Rule name.\n"},"options":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptions:CdnResourceRuleOptions","description":"List of options that can be configured for the rule.\n\nIn case of \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e value the option is not added to the rule.\nOption inherits its value from the CDN resource settings."},"originGroup":{"type":"number","description":"ID of the origin group to which the rule is applied.\n\nIf the origin group is not specified, the rule is applied to the origin group that the CDN resource is associated with."},"overrideOriginProtocol":{"type":"string","description":"Sets a protocol other than the one specified in the CDN resource settings to connect to the origin.\n\nPossible values:\n- **HTTPS** - CDN servers connect to origin via HTTPS protocol.\n- **HTTP** - CDN servers connect to origin via HTTP protocol.\n- **MATCH** - Connection protocol is chosen automatically; in this case, content on origin source should be available for the CDN both through HTTP and HTTPS protocols.\n- **null** - `originProtocol` setting is inherited from the CDN resource settings.\nAvailable values: \"HTTPS\", \"HTTP\", \"MATCH\"."},"resourceId":{"type":"number"},"rule":{"type":"string","description":"Path to the file or folder for which the rule will be applied.\n"},"ruleType":{"type":"number","description":"Rule type.\n\nPossible values:\n- **Type 0** - Regular expression. Must start with '^/' or '/'.\n- **Type 1** - Regular expression. Note that for this rule type we automatically add / to each rule pattern before your regular expression. This type is **legacy**, please use Type 0."},"weight":{"type":"number","description":"Rule execution order: from lowest (1) to highest.\n\nIf requested URI matches multiple rules, the one higher in the order of the rules will be applied."}},"requiredInputs":["resourceId","rule","ruleType"],"stateInputs":{"description":"Input properties used for looking up and filtering CdnResourceRule resources.\n","properties":{"active":{"type":"boolean","description":"Enables or disables a rule.\n\nPossible values:\n- **true** - Rule is active, rule settings are applied.\n- **false** - Rule is inactive, rule settings are not applied."},"cdnResourceRuleId":{"type":"number","description":"Rule ID."},"deleted":{"type":"boolean","description":"Defines whether the rule has been deleted.\n\nPossible values:\n- **true** - Rule has been deleted.\n- **false** - Rule has not been deleted."},"name":{"type":"string","description":"Rule name.\n"},"options":{"$ref":"#/types/gcore:index%2FCdnResourceRuleOptions:CdnResourceRuleOptions","description":"List of options that can be configured for the rule.\n\nIn case of \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e value the option is not added to the rule.\nOption inherits its value from the CDN resource settings."},"originGroup":{"type":"number","description":"ID of the origin group to which the rule is applied.\n\nIf the origin group is not specified, the rule is applied to the origin group that the CDN resource is associated with."},"originProtocol":{"type":"string","description":"Protocol used by CDN servers to request content from an origin source.\n\nPossible values:\n- **HTTPS** - CDN servers connect to origin via HTTPS protocol.\n- **HTTP** - CDN servers connect to origin via HTTP protocol.\n- **MATCH** - Connection protocol is chosen automatically; in this case, content on origin source should be available for the CDN both through HTTP and HTTPS protocols.\nAvailable values: \"HTTPS\", \"HTTP\", \"MATCH\"."},"overrideOriginProtocol":{"type":"string","description":"Sets a protocol other than the one specified in the CDN resource settings to connect to the origin.\n\nPossible values:\n- **HTTPS** - CDN servers connect to origin via HTTPS protocol.\n- **HTTP** - CDN servers connect to origin via HTTP protocol.\n- **MATCH** - Connection protocol is chosen automatically; in this case, content on origin source should be available for the CDN both through HTTP and HTTPS protocols.\n- **null** - `originProtocol` setting is inherited from the CDN resource settings.\nAvailable values: \"HTTPS\", \"HTTP\", \"MATCH\"."},"presetApplied":{"type":"boolean","description":"Defines whether the rule has an applied preset.\n\nPossible values:\n- **true** - Rule has a preset applied.\n- **false** - Rule does not have a preset applied.\n\nIf a preset is applied to the rule, the options included in the preset cannot be edited for the rule."},"primaryRule":{"type":"number","description":"ID of the rule with which the current rule is synchronized within the CDN resource shared cache zone feature."},"resourceId":{"type":"number"},"rule":{"type":"string","description":"Path to the file or folder for which the rule will be applied.\n"},"ruleType":{"type":"number","description":"Rule type.\n\nPossible values:\n- **Type 0** - Regular expression. Must start with '^/' or '/'.\n- **Type 1** - Regular expression. Note that for this rule type we automatically add / to each rule pattern before your regular expression. This type is **legacy**, please use Type 0."},"weight":{"type":"number","description":"Rule execution order: from lowest (1) to highest.\n\nIf requested URI matches multiple rules, the one higher in the order of the rules will be applied."}},"type":"object"}},"gcore:index/cdnTrustedCaCertificate:CdnTrustedCaCertificate":{"description":"Trusted CA certificates verify the authenticity of CDN origin servers during HTTPS connections.\n\n## Example Usage\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cdnTrustedCaCertificate:CdnTrustedCaCertificate example '\u003cid\u003e'\n```\n\n","properties":{"cdnTrustedCaCertificateId":{"type":"number","description":"CA certificate ID."},"certIssuer":{"type":"string","description":"Name of the certification center that issued the CA certificate."},"certSubjectAlt":{"type":"string","description":"Alternative domain names that the CA certificate secures."},"certSubjectCn":{"type":"string","description":"Domain name that the CA certificate secures."},"deleted":{"type":"boolean","description":"Defines whether the certificate has been deleted. Parameter is **deprecated**.\n\nPossible values:\n- **true** - Certificate has been deleted.\n- **false** - Certificate has not been deleted."},"hasRelatedResources":{"type":"boolean","description":"Defines whether the CA certificate is used by a CDN resource.\n\nPossible values:\n- **true** - Certificate is used by a CDN resource.\n- **false** - Certificate is not used by a CDN resource."},"name":{"type":"string","description":"CA certificate name.\n"},"sslCertificate":{"type":"string","description":"Public part of the CA certificate.\n\nIt must be in the PEM format."},"sslCertificateChain":{"type":"string","description":"Parameter is **deprecated**."},"validityNotAfter":{"type":"string","description":"Date when the CA certificate become untrusted (ISO 8601/RFC 3339 format, UTC.)"},"validityNotBefore":{"type":"string","description":"Date when the CA certificate become valid (ISO 8601/RFC 3339 format, UTC.)"}},"type":"object","required":["cdnTrustedCaCertificateId","certIssuer","certSubjectAlt","certSubjectCn","deleted","hasRelatedResources","name","sslCertificate","sslCertificateChain","validityNotAfter","validityNotBefore"],"inputProperties":{"name":{"type":"string","description":"CA certificate name.\n"},"sslCertificate":{"type":"string","description":"Public part of the CA certificate.\n\nIt must be in the PEM format."}},"requiredInputs":["sslCertificate"],"stateInputs":{"description":"Input properties used for looking up and filtering CdnTrustedCaCertificate resources.\n","properties":{"cdnTrustedCaCertificateId":{"type":"number","description":"CA certificate ID."},"certIssuer":{"type":"string","description":"Name of the certification center that issued the CA certificate."},"certSubjectAlt":{"type":"string","description":"Alternative domain names that the CA certificate secures."},"certSubjectCn":{"type":"string","description":"Domain name that the CA certificate secures."},"deleted":{"type":"boolean","description":"Defines whether the certificate has been deleted. Parameter is **deprecated**.\n\nPossible values:\n- **true** - Certificate has been deleted.\n- **false** - Certificate has not been deleted."},"hasRelatedResources":{"type":"boolean","description":"Defines whether the CA certificate is used by a CDN resource.\n\nPossible values:\n- **true** - Certificate is used by a CDN resource.\n- **false** - Certificate is not used by a CDN resource."},"name":{"type":"string","description":"CA certificate name.\n"},"sslCertificate":{"type":"string","description":"Public part of the CA certificate.\n\nIt must be in the PEM format."},"sslCertificateChain":{"type":"string","description":"Parameter is **deprecated**."},"validityNotAfter":{"type":"string","description":"Date when the CA certificate become untrusted (ISO 8601/RFC 3339 format, UTC.)"},"validityNotBefore":{"type":"string","description":"Date when the CA certificate become valid (ISO 8601/RFC 3339 format, UTC.)"}},"type":"object"}},"gcore:index/cloudFileShare:CloudFileShare":{"description":"File shares provide NFS-based shared storage that can be mounted by virtual machines and Kubernetes clusters for persistent data.\n\n## Example Usage\n\n### Standard NFS file share\n\nCreate a standard NFS file share attached to an existing network.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst fileShareStandard = new gcore.CloudFileShare(\"file_share_standard\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"tf-file-share-standard\",\n    size: 20,\n    typeName: \"standard\",\n    protocol: \"NFS\",\n    network: {\n        networkId: \"378ba73d-16c5-4a4e-a755-d9406dd73e63\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nfile_share_standard = gcore.CloudFileShare(\"file_share_standard\",\n    project_id=1,\n    region_id=1,\n    name=\"tf-file-share-standard\",\n    size=20,\n    type_name=\"standard\",\n    protocol=\"NFS\",\n    network={\n        \"network_id\": \"378ba73d-16c5-4a4e-a755-d9406dd73e63\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var fileShareStandard = new Gcore.CloudFileShare(\"file_share_standard\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"tf-file-share-standard\",\n        Size = 20,\n        TypeName = \"standard\",\n        Protocol = \"NFS\",\n        Network = new Gcore.Inputs.CloudFileShareNetworkArgs\n        {\n            NetworkId = \"378ba73d-16c5-4a4e-a755-d9406dd73e63\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.NewCloudFileShare(ctx, \"file_share_standard\", \u0026gcore.CloudFileShareArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"tf-file-share-standard\"),\n\t\t\tSize:      pulumi.Float64(20),\n\t\t\tTypeName:  pulumi.String(\"standard\"),\n\t\t\tProtocol:  pulumi.String(\"NFS\"),\n\t\t\tNetwork: \u0026gcore.CloudFileShareNetworkArgs{\n\t\t\t\tNetworkId: pulumi.String(\"378ba73d-16c5-4a4e-a755-d9406dd73e63\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudFileShare;\nimport com.pulumi.gcore.CloudFileShareArgs;\nimport com.pulumi.gcore.inputs.CloudFileShareNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var fileShareStandard = new CloudFileShare(\"fileShareStandard\", CloudFileShareArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"tf-file-share-standard\")\n            .size(20.0)\n            .typeName(\"standard\")\n            .protocol(\"NFS\")\n            .network(CloudFileShareNetworkArgs.builder()\n                .networkId(\"378ba73d-16c5-4a4e-a755-d9406dd73e63\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  fileShareStandard:\n    type: gcore:CloudFileShare\n    name: file_share_standard\n    properties:\n      projectId: 1\n      regionId: 1\n      name: tf-file-share-standard\n      size: 20\n      typeName: standard\n      protocol: NFS\n      network:\n        networkId: 378ba73d-16c5-4a4e-a755-d9406dd73e63\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### VAST NFS file share\n\nCreate a VAST-backed NFS file share with custom share settings.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst fileShareVast = new gcore.CloudFileShare(\"file_share_vast\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"tf-file-share-vast\",\n    size: 10,\n    typeName: \"vast\",\n    protocol: \"NFS\",\n    shareSettings: {\n        allowedCharacters: \"LCD\",\n        pathLength: \"LCD\",\n        rootSquash: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nfile_share_vast = gcore.CloudFileShare(\"file_share_vast\",\n    project_id=1,\n    region_id=1,\n    name=\"tf-file-share-vast\",\n    size=10,\n    type_name=\"vast\",\n    protocol=\"NFS\",\n    share_settings={\n        \"allowed_characters\": \"LCD\",\n        \"path_length\": \"LCD\",\n        \"root_squash\": True,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var fileShareVast = new Gcore.CloudFileShare(\"file_share_vast\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"tf-file-share-vast\",\n        Size = 10,\n        TypeName = \"vast\",\n        Protocol = \"NFS\",\n        ShareSettings = new Gcore.Inputs.CloudFileShareShareSettingsArgs\n        {\n            AllowedCharacters = \"LCD\",\n            PathLength = \"LCD\",\n            RootSquash = true,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.NewCloudFileShare(ctx, \"file_share_vast\", \u0026gcore.CloudFileShareArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"tf-file-share-vast\"),\n\t\t\tSize:      pulumi.Float64(10),\n\t\t\tTypeName:  pulumi.String(\"vast\"),\n\t\t\tProtocol:  pulumi.String(\"NFS\"),\n\t\t\tShareSettings: \u0026gcore.CloudFileShareShareSettingsArgs{\n\t\t\t\tAllowedCharacters: pulumi.String(\"LCD\"),\n\t\t\t\tPathLength:        pulumi.String(\"LCD\"),\n\t\t\t\tRootSquash:        pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudFileShare;\nimport com.pulumi.gcore.CloudFileShareArgs;\nimport com.pulumi.gcore.inputs.CloudFileShareShareSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var fileShareVast = new CloudFileShare(\"fileShareVast\", CloudFileShareArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"tf-file-share-vast\")\n            .size(10.0)\n            .typeName(\"vast\")\n            .protocol(\"NFS\")\n            .shareSettings(CloudFileShareShareSettingsArgs.builder()\n                .allowedCharacters(\"LCD\")\n                .pathLength(\"LCD\")\n                .rootSquash(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  fileShareVast:\n    type: gcore:CloudFileShare\n    name: file_share_vast\n    properties:\n      projectId: 1\n      regionId: 1\n      name: tf-file-share-vast\n      size: 10\n      typeName: vast\n      protocol: NFS\n      shareSettings:\n        allowedCharacters: LCD\n        pathLength: LCD\n        rootSquash: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudFileShare:CloudFileShare example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003cfile_share_id\u003e'\n```\n\n","properties":{"accessRuleIds":{"type":"array","items":{"type":"string"},"description":"List of access rules IDs associated with the file share"},"connectionPoint":{"type":"string","description":"Connection point. Can be null during File share creation"},"createdAt":{"type":"string","description":"Datetime when the file share was created"},"creatorTaskId":{"type":"string","description":"Task that created this entity"},"name":{"type":"string","description":"File share name"},"network":{"$ref":"#/types/gcore:index%2FCloudFileShareNetwork:CloudFileShareNetwork","description":"File share network configuration"},"networkId":{"type":"string","description":"Network ID."},"networkName":{"type":"string","description":"Network name."},"projectId":{"type":"number","description":"Project ID"},"protocol":{"type":"string","description":"File share protocol\nAvailable values: \"NFS\"."},"region":{"type":"string","description":"Region name"},"regionId":{"type":"number","description":"Region ID"},"shareNetworkName":{"type":"string","description":"Share network name. May be null if the file share was created with volume type VAST"},"shareSettings":{"$ref":"#/types/gcore:index%2FCloudFileShareShareSettings:CloudFileShareShareSettings","description":"Configuration settings for the share"},"size":{"type":"number","description":"File share size in GiB"},"status":{"type":"string","description":"File share status\nAvailable values: \"available\", \u003cspan pulumi-lang-nodejs=\"\"awaitingTransfer\"\" pulumi-lang-dotnet=\"\"AwaitingTransfer\"\" pulumi-lang-go=\"\"awaitingTransfer\"\" pulumi-lang-python=\"\"awaiting_transfer\"\" pulumi-lang-yaml=\"\"awaitingTransfer\"\" pulumi-lang-java=\"\"awaitingTransfer\"\"\u003e\"awaiting_transfer\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"backupCreating\"\" pulumi-lang-dotnet=\"\"BackupCreating\"\" pulumi-lang-go=\"\"backupCreating\"\" pulumi-lang-python=\"\"backup_creating\"\" pulumi-lang-yaml=\"\"backupCreating\"\" pulumi-lang-java=\"\"backupCreating\"\"\u003e\"backup_creating\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"backupRestoring\"\" pulumi-lang-dotnet=\"\"BackupRestoring\"\" pulumi-lang-go=\"\"backupRestoring\"\" pulumi-lang-python=\"\"backup_restoring\"\" pulumi-lang-yaml=\"\"backupRestoring\"\" pulumi-lang-java=\"\"backupRestoring\"\"\u003e\"backup_restoring\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"backupRestoringError\"\" pulumi-lang-dotnet=\"\"BackupRestoringError\"\" pulumi-lang-go=\"\"backupRestoringError\"\" pulumi-lang-python=\"\"backup_restoring_error\"\" pulumi-lang-yaml=\"\"backupRestoringError\"\" pulumi-lang-java=\"\"backupRestoringError\"\"\u003e\"backup_restoring_error\"\u003c/span\u003e, \"creating\", \u003cspan pulumi-lang-nodejs=\"\"creatingFromSnapshot\"\" pulumi-lang-dotnet=\"\"CreatingFromSnapshot\"\" pulumi-lang-go=\"\"creatingFromSnapshot\"\" pulumi-lang-python=\"\"creating_from_snapshot\"\" pulumi-lang-yaml=\"\"creatingFromSnapshot\"\" pulumi-lang-java=\"\"creatingFromSnapshot\"\"\u003e\"creating_from_snapshot\"\u003c/span\u003e, \"deleted\", \"deleting\", \"ensuring\", \"error\", \u003cspan pulumi-lang-nodejs=\"\"errorDeleting\"\" pulumi-lang-dotnet=\"\"ErrorDeleting\"\" pulumi-lang-go=\"\"errorDeleting\"\" pulumi-lang-python=\"\"error_deleting\"\" pulumi-lang-yaml=\"\"errorDeleting\"\" pulumi-lang-java=\"\"errorDeleting\"\"\u003e\"error_deleting\"\u003c/span\u003e, \"extending\", \u003cspan pulumi-lang-nodejs=\"\"extendingError\"\" pulumi-lang-dotnet=\"\"ExtendingError\"\" pulumi-lang-go=\"\"extendingError\"\" pulumi-lang-python=\"\"extending_error\"\" pulumi-lang-yaml=\"\"extendingError\"\" pulumi-lang-java=\"\"extendingError\"\"\u003e\"extending_error\"\u003c/span\u003e, \"inactive\", \u003cspan pulumi-lang-nodejs=\"\"manageError\"\" pulumi-lang-dotnet=\"\"ManageError\"\" pulumi-lang-go=\"\"manageError\"\" pulumi-lang-python=\"\"manage_error\"\" pulumi-lang-yaml=\"\"manageError\"\" pulumi-lang-java=\"\"manageError\"\"\u003e\"manage_error\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"manageStarting\"\" pulumi-lang-dotnet=\"\"ManageStarting\"\" pulumi-lang-go=\"\"manageStarting\"\" pulumi-lang-python=\"\"manage_starting\"\" pulumi-lang-yaml=\"\"manageStarting\"\" pulumi-lang-java=\"\"manageStarting\"\"\u003e\"manage_starting\"\u003c/span\u003e, \"migrating\", \u003cspan pulumi-lang-nodejs=\"\"migratingTo\"\" pulumi-lang-dotnet=\"\"MigratingTo\"\" pulumi-lang-go=\"\"migratingTo\"\" pulumi-lang-python=\"\"migrating_to\"\" pulumi-lang-yaml=\"\"migratingTo\"\" pulumi-lang-java=\"\"migratingTo\"\"\u003e\"migrating_to\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"replicationChange\"\" pulumi-lang-dotnet=\"\"ReplicationChange\"\" pulumi-lang-go=\"\"replicationChange\"\" pulumi-lang-python=\"\"replication_change\"\" pulumi-lang-yaml=\"\"replicationChange\"\" pulumi-lang-java=\"\"replicationChange\"\"\u003e\"replication_change\"\u003c/span\u003e, \"reverting\", \u003cspan pulumi-lang-nodejs=\"\"revertingError\"\" pulumi-lang-dotnet=\"\"RevertingError\"\" pulumi-lang-go=\"\"revertingError\"\" pulumi-lang-python=\"\"reverting_error\"\" pulumi-lang-yaml=\"\"revertingError\"\" pulumi-lang-java=\"\"revertingError\"\"\u003e\"reverting_error\"\u003c/span\u003e, \"shrinking\", \u003cspan pulumi-lang-nodejs=\"\"shrinkingError\"\" pulumi-lang-dotnet=\"\"ShrinkingError\"\" pulumi-lang-go=\"\"shrinkingError\"\" pulumi-lang-python=\"\"shrinking_error\"\" pulumi-lang-yaml=\"\"shrinkingError\"\" pulumi-lang-java=\"\"shrinkingError\"\"\u003e\"shrinking_error\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"shrinkingPossibleDataLossError\"\" pulumi-lang-dotnet=\"\"ShrinkingPossibleDataLossError\"\" pulumi-lang-go=\"\"shrinkingPossibleDataLossError\"\" pulumi-lang-python=\"\"shrinking_possible_data_loss_error\"\" pulumi-lang-yaml=\"\"shrinkingPossibleDataLossError\"\" pulumi-lang-java=\"\"shrinkingPossibleDataLossError\"\"\u003e\"shrinking_possible_data_loss_error\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"unmanageError\"\" pulumi-lang-dotnet=\"\"UnmanageError\"\" pulumi-lang-go=\"\"unmanageError\"\" pulumi-lang-python=\"\"unmanage_error\"\" pulumi-lang-yaml=\"\"unmanageError\"\" pulumi-lang-java=\"\"unmanageError\"\"\u003e\"unmanage_error\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"unmanageStarting\"\" pulumi-lang-dotnet=\"\"UnmanageStarting\"\" pulumi-lang-go=\"\"unmanageStarting\"\" pulumi-lang-python=\"\"unmanage_starting\"\" pulumi-lang-yaml=\"\"unmanageStarting\"\" pulumi-lang-java=\"\"unmanageStarting\"\"\u003e\"unmanage_starting\"\u003c/span\u003e, \"unmanaged\"."},"subnetId":{"type":"string","description":"Subnet ID."},"subnetName":{"type":"string","description":"Subnet name."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values."},"typeName":{"type":"string","description":"Standard file share type\nAvailable values: \"standard\", \"vast\"."}},"type":"object","required":["accessRuleIds","connectionPoint","createdAt","creatorTaskId","name","networkId","networkName","protocol","region","shareNetworkName","shareSettings","size","status","subnetId","subnetName","typeName"],"inputProperties":{"name":{"type":"string","description":"File share name"},"network":{"$ref":"#/types/gcore:index%2FCloudFileShareNetwork:CloudFileShareNetwork","description":"File share network configuration"},"projectId":{"type":"number","description":"Project ID"},"protocol":{"type":"string","description":"File share protocol\nAvailable values: \"NFS\"."},"regionId":{"type":"number","description":"Region ID"},"shareSettings":{"$ref":"#/types/gcore:index%2FCloudFileShareShareSettings:CloudFileShareShareSettings","description":"Configuration settings for the share"},"size":{"type":"number","description":"File share size in GiB"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values."},"typeName":{"type":"string","description":"Standard file share type\nAvailable values: \"standard\", \"vast\"."}},"requiredInputs":["protocol","size"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudFileShare resources.\n","properties":{"accessRuleIds":{"type":"array","items":{"type":"string"},"description":"List of access rules IDs associated with the file share"},"connectionPoint":{"type":"string","description":"Connection point. Can be null during File share creation"},"createdAt":{"type":"string","description":"Datetime when the file share was created"},"creatorTaskId":{"type":"string","description":"Task that created this entity"},"name":{"type":"string","description":"File share name"},"network":{"$ref":"#/types/gcore:index%2FCloudFileShareNetwork:CloudFileShareNetwork","description":"File share network configuration"},"networkId":{"type":"string","description":"Network ID."},"networkName":{"type":"string","description":"Network name."},"projectId":{"type":"number","description":"Project ID"},"protocol":{"type":"string","description":"File share protocol\nAvailable values: \"NFS\"."},"region":{"type":"string","description":"Region name"},"regionId":{"type":"number","description":"Region ID"},"shareNetworkName":{"type":"string","description":"Share network name. May be null if the file share was created with volume type VAST"},"shareSettings":{"$ref":"#/types/gcore:index%2FCloudFileShareShareSettings:CloudFileShareShareSettings","description":"Configuration settings for the share"},"size":{"type":"number","description":"File share size in GiB"},"status":{"type":"string","description":"File share status\nAvailable values: \"available\", \u003cspan pulumi-lang-nodejs=\"\"awaitingTransfer\"\" pulumi-lang-dotnet=\"\"AwaitingTransfer\"\" pulumi-lang-go=\"\"awaitingTransfer\"\" pulumi-lang-python=\"\"awaiting_transfer\"\" pulumi-lang-yaml=\"\"awaitingTransfer\"\" pulumi-lang-java=\"\"awaitingTransfer\"\"\u003e\"awaiting_transfer\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"backupCreating\"\" pulumi-lang-dotnet=\"\"BackupCreating\"\" pulumi-lang-go=\"\"backupCreating\"\" pulumi-lang-python=\"\"backup_creating\"\" pulumi-lang-yaml=\"\"backupCreating\"\" pulumi-lang-java=\"\"backupCreating\"\"\u003e\"backup_creating\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"backupRestoring\"\" pulumi-lang-dotnet=\"\"BackupRestoring\"\" pulumi-lang-go=\"\"backupRestoring\"\" pulumi-lang-python=\"\"backup_restoring\"\" pulumi-lang-yaml=\"\"backupRestoring\"\" pulumi-lang-java=\"\"backupRestoring\"\"\u003e\"backup_restoring\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"backupRestoringError\"\" pulumi-lang-dotnet=\"\"BackupRestoringError\"\" pulumi-lang-go=\"\"backupRestoringError\"\" pulumi-lang-python=\"\"backup_restoring_error\"\" pulumi-lang-yaml=\"\"backupRestoringError\"\" pulumi-lang-java=\"\"backupRestoringError\"\"\u003e\"backup_restoring_error\"\u003c/span\u003e, \"creating\", \u003cspan pulumi-lang-nodejs=\"\"creatingFromSnapshot\"\" pulumi-lang-dotnet=\"\"CreatingFromSnapshot\"\" pulumi-lang-go=\"\"creatingFromSnapshot\"\" pulumi-lang-python=\"\"creating_from_snapshot\"\" pulumi-lang-yaml=\"\"creatingFromSnapshot\"\" pulumi-lang-java=\"\"creatingFromSnapshot\"\"\u003e\"creating_from_snapshot\"\u003c/span\u003e, \"deleted\", \"deleting\", \"ensuring\", \"error\", \u003cspan pulumi-lang-nodejs=\"\"errorDeleting\"\" pulumi-lang-dotnet=\"\"ErrorDeleting\"\" pulumi-lang-go=\"\"errorDeleting\"\" pulumi-lang-python=\"\"error_deleting\"\" pulumi-lang-yaml=\"\"errorDeleting\"\" pulumi-lang-java=\"\"errorDeleting\"\"\u003e\"error_deleting\"\u003c/span\u003e, \"extending\", \u003cspan pulumi-lang-nodejs=\"\"extendingError\"\" pulumi-lang-dotnet=\"\"ExtendingError\"\" pulumi-lang-go=\"\"extendingError\"\" pulumi-lang-python=\"\"extending_error\"\" pulumi-lang-yaml=\"\"extendingError\"\" pulumi-lang-java=\"\"extendingError\"\"\u003e\"extending_error\"\u003c/span\u003e, \"inactive\", \u003cspan pulumi-lang-nodejs=\"\"manageError\"\" pulumi-lang-dotnet=\"\"ManageError\"\" pulumi-lang-go=\"\"manageError\"\" pulumi-lang-python=\"\"manage_error\"\" pulumi-lang-yaml=\"\"manageError\"\" pulumi-lang-java=\"\"manageError\"\"\u003e\"manage_error\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"manageStarting\"\" pulumi-lang-dotnet=\"\"ManageStarting\"\" pulumi-lang-go=\"\"manageStarting\"\" pulumi-lang-python=\"\"manage_starting\"\" pulumi-lang-yaml=\"\"manageStarting\"\" pulumi-lang-java=\"\"manageStarting\"\"\u003e\"manage_starting\"\u003c/span\u003e, \"migrating\", \u003cspan pulumi-lang-nodejs=\"\"migratingTo\"\" pulumi-lang-dotnet=\"\"MigratingTo\"\" pulumi-lang-go=\"\"migratingTo\"\" pulumi-lang-python=\"\"migrating_to\"\" pulumi-lang-yaml=\"\"migratingTo\"\" pulumi-lang-java=\"\"migratingTo\"\"\u003e\"migrating_to\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"replicationChange\"\" pulumi-lang-dotnet=\"\"ReplicationChange\"\" pulumi-lang-go=\"\"replicationChange\"\" pulumi-lang-python=\"\"replication_change\"\" pulumi-lang-yaml=\"\"replicationChange\"\" pulumi-lang-java=\"\"replicationChange\"\"\u003e\"replication_change\"\u003c/span\u003e, \"reverting\", \u003cspan pulumi-lang-nodejs=\"\"revertingError\"\" pulumi-lang-dotnet=\"\"RevertingError\"\" pulumi-lang-go=\"\"revertingError\"\" pulumi-lang-python=\"\"reverting_error\"\" pulumi-lang-yaml=\"\"revertingError\"\" pulumi-lang-java=\"\"revertingError\"\"\u003e\"reverting_error\"\u003c/span\u003e, \"shrinking\", \u003cspan pulumi-lang-nodejs=\"\"shrinkingError\"\" pulumi-lang-dotnet=\"\"ShrinkingError\"\" pulumi-lang-go=\"\"shrinkingError\"\" pulumi-lang-python=\"\"shrinking_error\"\" pulumi-lang-yaml=\"\"shrinkingError\"\" pulumi-lang-java=\"\"shrinkingError\"\"\u003e\"shrinking_error\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"shrinkingPossibleDataLossError\"\" pulumi-lang-dotnet=\"\"ShrinkingPossibleDataLossError\"\" pulumi-lang-go=\"\"shrinkingPossibleDataLossError\"\" pulumi-lang-python=\"\"shrinking_possible_data_loss_error\"\" pulumi-lang-yaml=\"\"shrinkingPossibleDataLossError\"\" pulumi-lang-java=\"\"shrinkingPossibleDataLossError\"\"\u003e\"shrinking_possible_data_loss_error\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"unmanageError\"\" pulumi-lang-dotnet=\"\"UnmanageError\"\" pulumi-lang-go=\"\"unmanageError\"\" pulumi-lang-python=\"\"unmanage_error\"\" pulumi-lang-yaml=\"\"unmanageError\"\" pulumi-lang-java=\"\"unmanageError\"\"\u003e\"unmanage_error\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"unmanageStarting\"\" pulumi-lang-dotnet=\"\"UnmanageStarting\"\" pulumi-lang-go=\"\"unmanageStarting\"\" pulumi-lang-python=\"\"unmanage_starting\"\" pulumi-lang-yaml=\"\"unmanageStarting\"\" pulumi-lang-java=\"\"unmanageStarting\"\"\u003e\"unmanage_starting\"\u003c/span\u003e, \"unmanaged\"."},"subnetId":{"type":"string","description":"Subnet ID."},"subnetName":{"type":"string","description":"Subnet name."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values."},"typeName":{"type":"string","description":"Standard file share type\nAvailable values: \"standard\", \"vast\"."}},"type":"object"}},"gcore:index/cloudFileShareAccessRule:CloudFileShareAccessRule":{"description":"File share access rules control which IP addresses can mount a file share and their permissions (read-only or read-write).\n\n## Example Usage\n\n### All attributes\n\nThe following example shows all configurable attributes for this resource.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudFileShareAccessRule = new gcore.CloudFileShareAccessRule(\"example_cloud_file_share_access_rule\", {\n    projectId: 1,\n    regionId: 1,\n    fileShareId: \"bd8c47ee-e565-4e26-8840-b537e6827b08\",\n    accessMode: \"ro\",\n    ipAddress: \"192.168.1.1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_file_share_access_rule = gcore.CloudFileShareAccessRule(\"example_cloud_file_share_access_rule\",\n    project_id=1,\n    region_id=1,\n    file_share_id=\"bd8c47ee-e565-4e26-8840-b537e6827b08\",\n    access_mode=\"ro\",\n    ip_address=\"192.168.1.1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudFileShareAccessRule = new Gcore.CloudFileShareAccessRule(\"example_cloud_file_share_access_rule\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        FileShareId = \"bd8c47ee-e565-4e26-8840-b537e6827b08\",\n        AccessMode = \"ro\",\n        IpAddress = \"192.168.1.1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.NewCloudFileShareAccessRule(ctx, \"example_cloud_file_share_access_rule\", \u0026gcore.CloudFileShareAccessRuleArgs{\n\t\t\tProjectId:   pulumi.Float64(1),\n\t\t\tRegionId:    pulumi.Float64(1),\n\t\t\tFileShareId: pulumi.String(\"bd8c47ee-e565-4e26-8840-b537e6827b08\"),\n\t\t\tAccessMode:  pulumi.String(\"ro\"),\n\t\t\tIpAddress:   pulumi.String(\"192.168.1.1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudFileShareAccessRule;\nimport com.pulumi.gcore.CloudFileShareAccessRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleCloudFileShareAccessRule = new CloudFileShareAccessRule(\"exampleCloudFileShareAccessRule\", CloudFileShareAccessRuleArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .fileShareId(\"bd8c47ee-e565-4e26-8840-b537e6827b08\")\n            .accessMode(\"ro\")\n            .ipAddress(\"192.168.1.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleCloudFileShareAccessRule:\n    type: gcore:CloudFileShareAccessRule\n    name: example_cloud_file_share_access_rule\n    properties:\n      projectId: 1\n      regionId: 1\n      fileShareId: bd8c47ee-e565-4e26-8840-b537e6827b08\n      accessMode: ro\n      ipAddress: 192.168.1.1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"accessLevel":{"type":"string","description":"Access mode\nAvailable values: \"ro\", \"rw\".\n"},"accessMode":{"type":"string","description":"Access mode\nAvailable values: \"ro\", \"rw\".\n"},"accessTo":{"type":"string","description":"Source IP or network\n"},"fileShareId":{"type":"string","description":"File Share ID\n"},"ipAddress":{"type":"string","description":"Source IP or network\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"state":{"type":"string","description":"Access Rule state\nAvailable values: \"active\", \"applying\", \"denying\", \"error\", \"new\", \"queued*to*apply\", \"queued*to*deny\".\n"}},"type":"object","required":["accessLevel","accessMode","accessTo","fileShareId","ipAddress","state"],"inputProperties":{"accessMode":{"type":"string","description":"Access mode\nAvailable values: \"ro\", \"rw\".\n"},"fileShareId":{"type":"string","description":"File Share ID\n"},"ipAddress":{"type":"string","description":"Source IP or network\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"}},"requiredInputs":["accessMode","fileShareId","ipAddress"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudFileShareAccessRule resources.\n","properties":{"accessLevel":{"type":"string","description":"Access mode\nAvailable values: \"ro\", \"rw\".\n"},"accessMode":{"type":"string","description":"Access mode\nAvailable values: \"ro\", \"rw\".\n"},"accessTo":{"type":"string","description":"Source IP or network\n"},"fileShareId":{"type":"string","description":"File Share ID\n"},"ipAddress":{"type":"string","description":"Source IP or network\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"state":{"type":"string","description":"Access Rule state\nAvailable values: \"active\", \"applying\", \"denying\", \"error\", \"new\", \"queued*to*apply\", \"queued*to*deny\".\n"}},"type":"object"}},"gcore:index/cloudFloatingIp:CloudFloatingIp":{"description":"A floating IP is a static IP address that points to one of your Instances. It allows you to redirect network traffic to any of your Instances in the same datacenter.\n\n## Example Usage\n\n### Unattached floating IP\n\nAllocate a floating IP address without attaching it to any resource.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create a floating IP address\nconst publicIp = new gcore.CloudFloatingIp(\"public_ip\", {\n    projectId: 1,\n    regionId: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create a floating IP address\npublic_ip = gcore.CloudFloatingIp(\"public_ip\",\n    project_id=1,\n    region_id=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a floating IP address\n    var publicIp = new Gcore.CloudFloatingIp(\"public_ip\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a floating IP address\n\t\t_, err := gcore.NewCloudFloatingIp(ctx, \"public_ip\", \u0026gcore.CloudFloatingIpArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudFloatingIp;\nimport com.pulumi.gcore.CloudFloatingIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a floating IP address\n        var publicIp = new CloudFloatingIp(\"publicIp\", CloudFloatingIpArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a floating IP address\n  publicIp:\n    type: gcore:CloudFloatingIp\n    name: public_ip\n    properties:\n      projectId: 1\n      regionId: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Attach to an instance port\n\nAllocate a floating IP and immediately attach it to an existing instance port.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Attach a floating IP to an existing instance port\nconst webIp = new gcore.CloudFloatingIp(\"web_ip\", {\n    projectId: 1,\n    regionId: 1,\n    portId: \"ee2402d0-f0cd-4503-9b75-69be1d11c5f1\",\n    fixedIpAddress: \"192.168.10.15\",\n    tags: {\n        environment: \"production\",\n        role: \"web-server\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Attach a floating IP to an existing instance port\nweb_ip = gcore.CloudFloatingIp(\"web_ip\",\n    project_id=1,\n    region_id=1,\n    port_id=\"ee2402d0-f0cd-4503-9b75-69be1d11c5f1\",\n    fixed_ip_address=\"192.168.10.15\",\n    tags={\n        \"environment\": \"production\",\n        \"role\": \"web-server\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Attach a floating IP to an existing instance port\n    var webIp = new Gcore.CloudFloatingIp(\"web_ip\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        PortId = \"ee2402d0-f0cd-4503-9b75-69be1d11c5f1\",\n        FixedIpAddress = \"192.168.10.15\",\n        Tags = \n        {\n            { \"environment\", \"production\" },\n            { \"role\", \"web-server\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Attach a floating IP to an existing instance port\n\t\t_, err := gcore.NewCloudFloatingIp(ctx, \"web_ip\", \u0026gcore.CloudFloatingIpArgs{\n\t\t\tProjectId:      pulumi.Float64(1),\n\t\t\tRegionId:       pulumi.Float64(1),\n\t\t\tPortId:         pulumi.String(\"ee2402d0-f0cd-4503-9b75-69be1d11c5f1\"),\n\t\t\tFixedIpAddress: pulumi.String(\"192.168.10.15\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"production\"),\n\t\t\t\t\"role\":        pulumi.String(\"web-server\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudFloatingIp;\nimport com.pulumi.gcore.CloudFloatingIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Attach a floating IP to an existing instance port\n        var webIp = new CloudFloatingIp(\"webIp\", CloudFloatingIpArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .portId(\"ee2402d0-f0cd-4503-9b75-69be1d11c5f1\")\n            .fixedIpAddress(\"192.168.10.15\")\n            .tags(Map.ofEntries(\n                Map.entry(\"environment\", \"production\"),\n                Map.entry(\"role\", \"web-server\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Attach a floating IP to an existing instance port\n  webIp:\n    type: gcore:CloudFloatingIp\n    name: web_ip\n    properties:\n      projectId: 1\n      regionId: 1\n      portId: ee2402d0-f0cd-4503-9b75-69be1d11c5f1\n      fixedIpAddress: 192.168.10.15\n      tags:\n        environment: production\n        role: web-server\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudFloatingIp:CloudFloatingIp example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003cfloating_ip_id\u003e'\n```\n\n","properties":{"createdAt":{"type":"string","description":"Datetime when the floating IP was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"fixedIpAddress":{"type":"string","description":"If the port has multiple IP addresses, a specific one can be selected using this field. If not specified, the first IP in the port's list will be used by default.\n"},"floatingIpAddress":{"type":"string","description":"IP Address of the floating IP\n"},"portId":{"type":"string","description":"If provided, the floating IP will be immediately attached to the specified port.\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"routerId":{"type":"string","description":"Router ID\n"},"status":{"type":"string","description":"Floating IP status. DOWN - unassigned (available). ACTIVE - attached to a port (in use). ERROR - error state.\nAvailable values: \"ACTIVE\", \"DOWN\", \"ERROR\".\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"}},"type":"object","required":["createdAt","creatorTaskId","fixedIpAddress","floatingIpAddress","portId","region","routerId","status"],"inputProperties":{"fixedIpAddress":{"type":"string","description":"If the port has multiple IP addresses, a specific one can be selected using this field. If not specified, the first IP in the port's list will be used by default.\n"},"portId":{"type":"string","description":"If provided, the floating IP will be immediately attached to the specified port.\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CloudFloatingIp resources.\n","properties":{"createdAt":{"type":"string","description":"Datetime when the floating IP was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"fixedIpAddress":{"type":"string","description":"If the port has multiple IP addresses, a specific one can be selected using this field. If not specified, the first IP in the port's list will be used by default.\n"},"floatingIpAddress":{"type":"string","description":"IP Address of the floating IP\n"},"portId":{"type":"string","description":"If provided, the floating IP will be immediately attached to the specified port.\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"routerId":{"type":"string","description":"Router ID\n"},"status":{"type":"string","description":"Floating IP status. DOWN - unassigned (available). ACTIVE - attached to a port (in use). ERROR - error state.\nAvailable values: \"ACTIVE\", \"DOWN\", \"ERROR\".\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"}},"type":"object"}},"gcore:index/cloudGpuBaremetalCluster:CloudGpuBaremetalCluster":{"description":"## Example Usage\n\n### Prerequisite\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Prerequisite resources for GPU bare metal cluster examples\nconst network = new gcore.CloudNetwork(\"network\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-network\",\n    type: \"vlan\",\n});\nconst subnet = new gcore.CloudNetworkSubnet(\"subnet\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-subnet\",\n    cidr: \"192.168.10.0/24\",\n    networkId: network.id,\n});\nconst keypair = new gcore.CloudSshKey(\"keypair\", {\n    projectId: 1,\n    name: \"my-keypair\",\n    publicKey: \"ssh-ed25519 ...your public key... gcore@gcore.com\",\n});\nconst vast = gcore.getCloudFileShare({\n    projectId: 1,\n    regionId: 1,\n    findOneBy: {\n        name: \"my-files-share\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Prerequisite resources for GPU bare metal cluster examples\nnetwork = gcore.CloudNetwork(\"network\",\n    project_id=1,\n    region_id=1,\n    name=\"my-network\",\n    type=\"vlan\")\nsubnet = gcore.CloudNetworkSubnet(\"subnet\",\n    project_id=1,\n    region_id=1,\n    name=\"my-subnet\",\n    cidr=\"192.168.10.0/24\",\n    network_id=network.id)\nkeypair = gcore.CloudSshKey(\"keypair\",\n    project_id=1,\n    name=\"my-keypair\",\n    public_key=\"ssh-ed25519 ...your public key... gcore@gcore.com\")\nvast = gcore.get_cloud_file_share(project_id=1,\n    region_id=1,\n    find_one_by={\n        \"name\": \"my-files-share\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Prerequisite resources for GPU bare metal cluster examples\n    var network = new Gcore.CloudNetwork(\"network\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-network\",\n        Type = \"vlan\",\n    });\n\n    var subnet = new Gcore.CloudNetworkSubnet(\"subnet\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-subnet\",\n        Cidr = \"192.168.10.0/24\",\n        NetworkId = network.Id,\n    });\n\n    var keypair = new Gcore.CloudSshKey(\"keypair\", new()\n    {\n        ProjectId = 1,\n        Name = \"my-keypair\",\n        PublicKey = \"ssh-ed25519 ...your public key... gcore@gcore.com\",\n    });\n\n    var vast = Gcore.GetCloudFileShare.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        FindOneBy = new Gcore.Inputs.GetCloudFileShareFindOneByInputArgs\n        {\n            Name = \"my-files-share\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Prerequisite resources for GPU bare metal cluster examples\n\t\tnetwork, err := gcore.NewCloudNetwork(ctx, \"network\", \u0026gcore.CloudNetworkArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-network\"),\n\t\t\tType:      pulumi.String(\"vlan\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCloudNetworkSubnet(ctx, \"subnet\", \u0026gcore.CloudNetworkSubnetArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-subnet\"),\n\t\t\tCidr:      pulumi.String(\"192.168.10.0/24\"),\n\t\t\tNetworkId: network.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCloudSshKey(ctx, \"keypair\", \u0026gcore.CloudSshKeyArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-keypair\"),\n\t\t\tPublicKey: pulumi.String(\"ssh-ed25519 ...your public key... gcore@gcore.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.LookupCloudFileShare(ctx, \u0026gcore.LookupCloudFileShareArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(1),\n\t\t\tFindOneBy: gcore.GetCloudFileShareFindOneBy{\n\t\t\t\tName: pulumi.StringRef(\"my-files-share\"),\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudNetwork;\nimport com.pulumi.gcore.CloudNetworkArgs;\nimport com.pulumi.gcore.CloudNetworkSubnet;\nimport com.pulumi.gcore.CloudNetworkSubnetArgs;\nimport com.pulumi.gcore.CloudSshKey;\nimport com.pulumi.gcore.CloudSshKeyArgs;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudFileShareArgs;\nimport com.pulumi.gcore.inputs.GetCloudFileShareFindOneByArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Prerequisite resources for GPU bare metal cluster examples\n        var network = new CloudNetwork(\"network\", CloudNetworkArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-network\")\n            .type(\"vlan\")\n            .build());\n\n        var subnet = new CloudNetworkSubnet(\"subnet\", CloudNetworkSubnetArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-subnet\")\n            .cidr(\"192.168.10.0/24\")\n            .networkId(network.id())\n            .build());\n\n        var keypair = new CloudSshKey(\"keypair\", CloudSshKeyArgs.builder()\n            .projectId(1.0)\n            .name(\"my-keypair\")\n            .publicKey(\"ssh-ed25519 ...your public key... gcore@gcore.com\")\n            .build());\n\n        final var vast = GcoreFunctions.getCloudFileShare(GetCloudFileShareArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .findOneBy(GetCloudFileShareFindOneByArgs.builder()\n                .name(\"my-files-share\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Prerequisite resources for GPU bare metal cluster examples\n  network:\n    type: gcore:CloudNetwork\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-network\n      type: vlan\n  subnet:\n    type: gcore:CloudNetworkSubnet\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-subnet\n      cidr: 192.168.10.0/24\n      networkId: ${network.id}\n  keypair:\n    type: gcore:CloudSshKey\n    properties:\n      projectId: 1\n      name: my-keypair\n      publicKey: ssh-ed25519 ...your public key... gcore@gcore.com\nvariables:\n  vast:\n    fn::invoke:\n      function: gcore:getCloudFileShare\n      arguments:\n        projectId: 1\n        regionId: 1\n        findOneBy:\n          name: my-files-share\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating GPU cluster with one public interface and tags\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// GPU bare metal cluster with one public interface and tags\nconst gpuCluster = new gcore.CloudGpuBaremetalCluster(\"gpu_cluster\", {\n    projectId: 1,\n    regionId: 1,\n    flavor: \"bm3-ai-ndp2-1xlarge-h100-80-8\",\n    imageId: \"234c133c-b37e-4744-8a26-dc32fe407066\",\n    name: \"my-gpu-cluster\",\n    serversCount: 1,\n    serversSettings: {\n        interfaces: [{\n            type: \"external\",\n        }],\n        credentials: {\n            sshKeyName: \"my-keypair\",\n        },\n    },\n    tags: {\n        \"my-tag-key\": \"my-tag-value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# GPU bare metal cluster with one public interface and tags\ngpu_cluster = gcore.CloudGpuBaremetalCluster(\"gpu_cluster\",\n    project_id=1,\n    region_id=1,\n    flavor=\"bm3-ai-ndp2-1xlarge-h100-80-8\",\n    image_id=\"234c133c-b37e-4744-8a26-dc32fe407066\",\n    name=\"my-gpu-cluster\",\n    servers_count=1,\n    servers_settings={\n        \"interfaces\": [{\n            \"type\": \"external\",\n        }],\n        \"credentials\": {\n            \"ssh_key_name\": \"my-keypair\",\n        },\n    },\n    tags={\n        \"my-tag-key\": \"my-tag-value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // GPU bare metal cluster with one public interface and tags\n    var gpuCluster = new Gcore.CloudGpuBaremetalCluster(\"gpu_cluster\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Flavor = \"bm3-ai-ndp2-1xlarge-h100-80-8\",\n        ImageId = \"234c133c-b37e-4744-8a26-dc32fe407066\",\n        Name = \"my-gpu-cluster\",\n        ServersCount = 1,\n        ServersSettings = new Gcore.Inputs.CloudGpuBaremetalClusterServersSettingsArgs\n        {\n            Interfaces = new[]\n            {\n                new Gcore.Inputs.CloudGpuBaremetalClusterServersSettingsInterfaceArgs\n                {\n                    Type = \"external\",\n                },\n            },\n            Credentials = new Gcore.Inputs.CloudGpuBaremetalClusterServersSettingsCredentialsArgs\n            {\n                SshKeyName = \"my-keypair\",\n            },\n        },\n        Tags = \n        {\n            { \"my-tag-key\", \"my-tag-value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// GPU bare metal cluster with one public interface and tags\n\t\t_, err := gcore.NewCloudGpuBaremetalCluster(ctx, \"gpu_cluster\", \u0026gcore.CloudGpuBaremetalClusterArgs{\n\t\t\tProjectId:    pulumi.Float64(1),\n\t\t\tRegionId:     pulumi.Float64(1),\n\t\t\tFlavor:       pulumi.String(\"bm3-ai-ndp2-1xlarge-h100-80-8\"),\n\t\t\tImageId:      pulumi.String(\"234c133c-b37e-4744-8a26-dc32fe407066\"),\n\t\t\tName:         pulumi.String(\"my-gpu-cluster\"),\n\t\t\tServersCount: pulumi.Float64(1),\n\t\t\tServersSettings: \u0026gcore.CloudGpuBaremetalClusterServersSettingsArgs{\n\t\t\t\tInterfaces: gcore.CloudGpuBaremetalClusterServersSettingsInterfaceArray{\n\t\t\t\t\t\u0026gcore.CloudGpuBaremetalClusterServersSettingsInterfaceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"external\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tCredentials: \u0026gcore.CloudGpuBaremetalClusterServersSettingsCredentialsArgs{\n\t\t\t\t\tSshKeyName: pulumi.String(\"my-keypair\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"my-tag-key\": pulumi.String(\"my-tag-value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudGpuBaremetalCluster;\nimport com.pulumi.gcore.CloudGpuBaremetalClusterArgs;\nimport com.pulumi.gcore.inputs.CloudGpuBaremetalClusterServersSettingsArgs;\nimport com.pulumi.gcore.inputs.CloudGpuBaremetalClusterServersSettingsCredentialsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // GPU bare metal cluster with one public interface and tags\n        var gpuCluster = new CloudGpuBaremetalCluster(\"gpuCluster\", CloudGpuBaremetalClusterArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .flavor(\"bm3-ai-ndp2-1xlarge-h100-80-8\")\n            .imageId(\"234c133c-b37e-4744-8a26-dc32fe407066\")\n            .name(\"my-gpu-cluster\")\n            .serversCount(1.0)\n            .serversSettings(CloudGpuBaremetalClusterServersSettingsArgs.builder()\n                .interfaces(CloudGpuBaremetalClusterServersSettingsInterfaceArgs.builder()\n                    .type(\"external\")\n                    .build())\n                .credentials(CloudGpuBaremetalClusterServersSettingsCredentialsArgs.builder()\n                    .sshKeyName(\"my-keypair\")\n                    .build())\n                .build())\n            .tags(Map.of(\"my-tag-key\", \"my-tag-value\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # GPU bare metal cluster with one public interface and tags\n  gpuCluster:\n    type: gcore:CloudGpuBaremetalCluster\n    name: gpu_cluster\n    properties:\n      projectId: 1\n      regionId: 1\n      flavor: bm3-ai-ndp2-1xlarge-h100-80-8\n      imageId: 234c133c-b37e-4744-8a26-dc32fe407066\n      name: my-gpu-cluster\n      serversCount: 1\n      serversSettings:\n        interfaces:\n          - type: external\n        credentials:\n          sshKeyName: my-keypair\n      tags:\n        my-tag-key: my-tag-value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating GPU cluster with two interfaces\n\nThis example demonstrates how to create a baremetal GPU cluster with two network interfaces: one public and one private.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// GPU bare metal cluster with two interfaces: one public and one private\nconst gpuCluster = new gcore.CloudGpuBaremetalCluster(\"gpu_cluster\", {\n    projectId: 1,\n    regionId: 1,\n    flavor: \"bm3-ai-ndp2-1xlarge-h100-80-8\",\n    imageId: \"234c133c-b37e-4744-8a26-dc32fe407066\",\n    name: \"my-gpu-cluster\",\n    serversCount: 1,\n    serversSettings: {\n        interfaces: [\n            {\n                type: \"external\",\n            },\n            {\n                type: \"subnet\",\n                networkId: network.id,\n                subnetId: subnet.id,\n            },\n        ],\n        credentials: {\n            sshKeyName: \"my-keypair\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# GPU bare metal cluster with two interfaces: one public and one private\ngpu_cluster = gcore.CloudGpuBaremetalCluster(\"gpu_cluster\",\n    project_id=1,\n    region_id=1,\n    flavor=\"bm3-ai-ndp2-1xlarge-h100-80-8\",\n    image_id=\"234c133c-b37e-4744-8a26-dc32fe407066\",\n    name=\"my-gpu-cluster\",\n    servers_count=1,\n    servers_settings={\n        \"interfaces\": [\n            {\n                \"type\": \"external\",\n            },\n            {\n                \"type\": \"subnet\",\n                \"network_id\": network[\"id\"],\n                \"subnet_id\": subnet[\"id\"],\n            },\n        ],\n        \"credentials\": {\n            \"ssh_key_name\": \"my-keypair\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // GPU bare metal cluster with two interfaces: one public and one private\n    var gpuCluster = new Gcore.CloudGpuBaremetalCluster(\"gpu_cluster\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Flavor = \"bm3-ai-ndp2-1xlarge-h100-80-8\",\n        ImageId = \"234c133c-b37e-4744-8a26-dc32fe407066\",\n        Name = \"my-gpu-cluster\",\n        ServersCount = 1,\n        ServersSettings = new Gcore.Inputs.CloudGpuBaremetalClusterServersSettingsArgs\n        {\n            Interfaces = new[]\n            {\n                new Gcore.Inputs.CloudGpuBaremetalClusterServersSettingsInterfaceArgs\n                {\n                    Type = \"external\",\n                },\n                new Gcore.Inputs.CloudGpuBaremetalClusterServersSettingsInterfaceArgs\n                {\n                    Type = \"subnet\",\n                    NetworkId = network.Id,\n                    SubnetId = subnet.Id,\n                },\n            },\n            Credentials = new Gcore.Inputs.CloudGpuBaremetalClusterServersSettingsCredentialsArgs\n            {\n                SshKeyName = \"my-keypair\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// GPU bare metal cluster with two interfaces: one public and one private\n\t\t_, err := gcore.NewCloudGpuBaremetalCluster(ctx, \"gpu_cluster\", \u0026gcore.CloudGpuBaremetalClusterArgs{\n\t\t\tProjectId:    pulumi.Float64(1),\n\t\t\tRegionId:     pulumi.Float64(1),\n\t\t\tFlavor:       pulumi.String(\"bm3-ai-ndp2-1xlarge-h100-80-8\"),\n\t\t\tImageId:      pulumi.String(\"234c133c-b37e-4744-8a26-dc32fe407066\"),\n\t\t\tName:         pulumi.String(\"my-gpu-cluster\"),\n\t\t\tServersCount: pulumi.Float64(1),\n\t\t\tServersSettings: \u0026gcore.CloudGpuBaremetalClusterServersSettingsArgs{\n\t\t\t\tInterfaces: gcore.CloudGpuBaremetalClusterServersSettingsInterfaceArray{\n\t\t\t\t\t\u0026gcore.CloudGpuBaremetalClusterServersSettingsInterfaceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"external\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026gcore.CloudGpuBaremetalClusterServersSettingsInterfaceArgs{\n\t\t\t\t\t\tType:      pulumi.String(\"subnet\"),\n\t\t\t\t\t\tNetworkId: pulumi.Any(network.Id),\n\t\t\t\t\t\tSubnetId:  pulumi.Any(subnet.Id),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tCredentials: \u0026gcore.CloudGpuBaremetalClusterServersSettingsCredentialsArgs{\n\t\t\t\t\tSshKeyName: pulumi.String(\"my-keypair\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudGpuBaremetalCluster;\nimport com.pulumi.gcore.CloudGpuBaremetalClusterArgs;\nimport com.pulumi.gcore.inputs.CloudGpuBaremetalClusterServersSettingsArgs;\nimport com.pulumi.gcore.inputs.CloudGpuBaremetalClusterServersSettingsCredentialsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // GPU bare metal cluster with two interfaces: one public and one private\n        var gpuCluster = new CloudGpuBaremetalCluster(\"gpuCluster\", CloudGpuBaremetalClusterArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .flavor(\"bm3-ai-ndp2-1xlarge-h100-80-8\")\n            .imageId(\"234c133c-b37e-4744-8a26-dc32fe407066\")\n            .name(\"my-gpu-cluster\")\n            .serversCount(1.0)\n            .serversSettings(CloudGpuBaremetalClusterServersSettingsArgs.builder()\n                .interfaces(                \n                    CloudGpuBaremetalClusterServersSettingsInterfaceArgs.builder()\n                        .type(\"external\")\n                        .build(),\n                    CloudGpuBaremetalClusterServersSettingsInterfaceArgs.builder()\n                        .type(\"subnet\")\n                        .networkId(network.id())\n                        .subnetId(subnet.id())\n                        .build())\n                .credentials(CloudGpuBaremetalClusterServersSettingsCredentialsArgs.builder()\n                    .sshKeyName(\"my-keypair\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # GPU bare metal cluster with two interfaces: one public and one private\n  gpuCluster:\n    type: gcore:CloudGpuBaremetalCluster\n    name: gpu_cluster\n    properties:\n      projectId: 1\n      regionId: 1\n      flavor: bm3-ai-ndp2-1xlarge-h100-80-8\n      imageId: 234c133c-b37e-4744-8a26-dc32fe407066\n      name: my-gpu-cluster\n      serversCount: 1\n      serversSettings:\n        interfaces:\n          - type: external\n          - type: subnet\n            networkId: ${network.id}\n            subnetId: ${subnet.id}\n        credentials:\n          sshKeyName: my-keypair\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudGpuBaremetalCluster:CloudGpuBaremetalCluster example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003ccluster_id\u003e'\n```\n\n","properties":{"createdAt":{"type":"string","description":"Cluster creation date time\n"},"flavor":{"type":"string","description":"Cluster flavor ID\n"},"imageId":{"type":"string","description":"System image ID\n"},"managedBy":{"type":"string","description":"User type managing the resource\nAvailable values: \"k8s\", \"user\".\n"},"name":{"type":"string","description":"Cluster name\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"serversCount":{"type":"number","description":"Number of servers in the cluster\n"},"serversIds":{"type":"array","items":{"type":"string"},"description":"List of cluster nodes\n"},"serversSettings":{"$ref":"#/types/gcore:index%2FCloudGpuBaremetalClusterServersSettings:CloudGpuBaremetalClusterServersSettings","description":"Configuration settings for the servers in the cluster\n"},"status":{"type":"string","description":"Cluster status\nAvailable values: \"active\", \"creating\", \"degraded\", \"deleting\", \"error\", \"new\", \"rebooting\", \"rebuilding\", \"resizing\", \"shutoff\".\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"tasks":{"type":"array","items":{"type":"string"},"description":"List of task IDs representing asynchronous operations. Use these IDs to monitor operation progress:\n"},"updatedAt":{"type":"string","description":"Cluster update date time\n"}},"type":"object","required":["createdAt","flavor","imageId","managedBy","name","serversCount","serversIds","serversSettings","status","tags","tasks","updatedAt"],"inputProperties":{"flavor":{"type":"string","description":"Cluster flavor ID\n"},"imageId":{"type":"string","description":"System image ID\n"},"name":{"type":"string","description":"Cluster name\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"serversCount":{"type":"number","description":"Number of servers in the cluster\n"},"serversSettings":{"$ref":"#/types/gcore:index%2FCloudGpuBaremetalClusterServersSettings:CloudGpuBaremetalClusterServersSettings","description":"Configuration settings for the servers in the cluster\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"}},"requiredInputs":["flavor","imageId","serversCount","serversSettings"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudGpuBaremetalCluster resources.\n","properties":{"createdAt":{"type":"string","description":"Cluster creation date time\n"},"flavor":{"type":"string","description":"Cluster flavor ID\n"},"imageId":{"type":"string","description":"System image ID\n"},"managedBy":{"type":"string","description":"User type managing the resource\nAvailable values: \"k8s\", \"user\".\n"},"name":{"type":"string","description":"Cluster name\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"serversCount":{"type":"number","description":"Number of servers in the cluster\n"},"serversIds":{"type":"array","items":{"type":"string"},"description":"List of cluster nodes\n"},"serversSettings":{"$ref":"#/types/gcore:index%2FCloudGpuBaremetalClusterServersSettings:CloudGpuBaremetalClusterServersSettings","description":"Configuration settings for the servers in the cluster\n"},"status":{"type":"string","description":"Cluster status\nAvailable values: \"active\", \"creating\", \"degraded\", \"deleting\", \"error\", \"new\", \"rebooting\", \"rebuilding\", \"resizing\", \"shutoff\".\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"tasks":{"type":"array","items":{"type":"string"},"description":"List of task IDs representing asynchronous operations. Use these IDs to monitor operation progress:\n"},"updatedAt":{"type":"string","description":"Cluster update date time\n"}},"type":"object"}},"gcore:index/cloudGpuBaremetalClusterImage:CloudGpuBaremetalClusterImage":{"description":"GPU bare metal images are custom boot images for bare metal GPU servers.\n\n## Example Usage\n\n### Upload custom image from URL\n\nUpload a custom OS image for use with GPU bare metal clusters.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Upload a custom image for GPU bare metal clusters\nconst ubuntu = new gcore.CloudGpuBaremetalClusterImage(\"ubuntu\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"ubuntu-gpu-baremetal\",\n    url: \"https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\",\n    architecture: \"x86_64\",\n    osType: \"linux\",\n    sshKey: \"allow\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Upload a custom image for GPU bare metal clusters\nubuntu = gcore.CloudGpuBaremetalClusterImage(\"ubuntu\",\n    project_id=1,\n    region_id=1,\n    name=\"ubuntu-gpu-baremetal\",\n    url=\"https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\",\n    architecture=\"x86_64\",\n    os_type=\"linux\",\n    ssh_key=\"allow\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Upload a custom image for GPU bare metal clusters\n    var ubuntu = new Gcore.CloudGpuBaremetalClusterImage(\"ubuntu\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"ubuntu-gpu-baremetal\",\n        Url = \"https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\",\n        Architecture = \"x86_64\",\n        OsType = \"linux\",\n        SshKey = \"allow\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Upload a custom image for GPU bare metal clusters\n\t\t_, err := gcore.NewCloudGpuBaremetalClusterImage(ctx, \"ubuntu\", \u0026gcore.CloudGpuBaremetalClusterImageArgs{\n\t\t\tProjectId:    pulumi.Float64(1),\n\t\t\tRegionId:     pulumi.Float64(1),\n\t\t\tName:         pulumi.String(\"ubuntu-gpu-baremetal\"),\n\t\t\tUrl:          pulumi.String(\"https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\"),\n\t\t\tArchitecture: pulumi.String(\"x86_64\"),\n\t\t\tOsType:       pulumi.String(\"linux\"),\n\t\t\tSshKey:       pulumi.String(\"allow\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudGpuBaremetalClusterImage;\nimport com.pulumi.gcore.CloudGpuBaremetalClusterImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Upload a custom image for GPU bare metal clusters\n        var ubuntu = new CloudGpuBaremetalClusterImage(\"ubuntu\", CloudGpuBaremetalClusterImageArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"ubuntu-gpu-baremetal\")\n            .url(\"https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\")\n            .architecture(\"x86_64\")\n            .osType(\"linux\")\n            .sshKey(\"allow\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Upload a custom image for GPU bare metal clusters\n  ubuntu:\n    type: gcore:CloudGpuBaremetalClusterImage\n    properties:\n      projectId: 1\n      regionId: 1\n      name: ubuntu-gpu-baremetal\n      url: https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\n      architecture: x86_64\n      osType: linux\n      sshKey: allow\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudGpuBaremetalClusterImage:CloudGpuBaremetalClusterImage example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003cimage_id\u003e'\n```\n\n","properties":{"architecture":{"type":"string","description":"Image architecture type: aarch64, \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e\nAvailable values: \"aarch64\", \u003cspan pulumi-lang-nodejs=\"\"x8664\"\" pulumi-lang-dotnet=\"\"X8664\"\" pulumi-lang-go=\"\"x8664\"\" pulumi-lang-python=\"\"x86_64\"\" pulumi-lang-yaml=\"\"x8664\"\" pulumi-lang-java=\"\"x8664\"\"\u003e\"x86_64\"\u003c/span\u003e.\n"},"cowFormat":{"type":"boolean","description":"When True, image cannot be deleted unless all volumes, created from it, are deleted.\n"},"createdAt":{"type":"string","description":"Datetime when the image was created\n"},"gpuDriver":{"type":"string","description":"Name of the GPU driver vendor\n"},"gpuDriverType":{"type":"string","description":"Type of the GPU driver\n"},"gpuDriverVersion":{"type":"string","description":"Version of the installed GPU driver\n"},"hwFirmwareType":{"type":"string","description":"Specifies the type of firmware with which to boot the guest.\nAvailable values: \"bios\", \"uefi\".\n"},"minDisk":{"type":"number","description":"Minimal boot volume required\n"},"minRam":{"type":"number","description":"Minimal VM RAM required\n"},"name":{"type":"string","description":"Image name\n"},"osDistro":{"type":"string","description":"OS Distribution, i.e. Debian, CentOS, Ubuntu, CoreOS etc.\n"},"osType":{"type":"string","description":"The operating system installed on the image. Linux by default\nAvailable values: \"linux\", \"windows\".\n"},"osVersion":{"type":"string","description":"OS version, i.e. 19.04 (for Ubuntu) or 9.4 for Debian\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"size":{"type":"number","description":"Image size in bytes.\n"},"sshKey":{"type":"string","description":"Permission to use a ssh key in instances\nAvailable values: \"allow\", \"deny\", \"required\".\n"},"status":{"type":"string","description":"Image status\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the image was updated\n"},"url":{"type":"string","description":"Image URL\n"},"visibility":{"type":"string","description":"Image visibility. Globally visible images are public\n"}},"type":"object","required":["architecture","cowFormat","createdAt","gpuDriver","gpuDriverType","gpuDriverVersion","minDisk","minRam","name","osType","size","sshKey","status","updatedAt","url","visibility"],"inputProperties":{"architecture":{"type":"string","description":"Image architecture type: aarch64, \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e\nAvailable values: \"aarch64\", \u003cspan pulumi-lang-nodejs=\"\"x8664\"\" pulumi-lang-dotnet=\"\"X8664\"\" pulumi-lang-go=\"\"x8664\"\" pulumi-lang-python=\"\"x86_64\"\" pulumi-lang-yaml=\"\"x8664\"\" pulumi-lang-java=\"\"x8664\"\"\u003e\"x86_64\"\u003c/span\u003e.\n"},"cowFormat":{"type":"boolean","description":"When True, image cannot be deleted unless all volumes, created from it, are deleted.\n"},"hwFirmwareType":{"type":"string","description":"Specifies the type of firmware with which to boot the guest.\nAvailable values: \"bios\", \"uefi\".\n"},"name":{"type":"string","description":"Image name\n"},"osDistro":{"type":"string","description":"OS Distribution, i.e. Debian, CentOS, Ubuntu, CoreOS etc.\n"},"osType":{"type":"string","description":"The operating system installed on the image. Linux by default\nAvailable values: \"linux\", \"windows\".\n"},"osVersion":{"type":"string","description":"OS version, i.e. 19.04 (for Ubuntu) or 9.4 for Debian\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"sshKey":{"type":"string","description":"Permission to use a ssh key in instances\nAvailable values: \"allow\", \"deny\", \"required\".\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"url":{"type":"string","description":"Image URL\n"}},"requiredInputs":["url"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudGpuBaremetalClusterImage resources.\n","properties":{"architecture":{"type":"string","description":"Image architecture type: aarch64, \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e\nAvailable values: \"aarch64\", \u003cspan pulumi-lang-nodejs=\"\"x8664\"\" pulumi-lang-dotnet=\"\"X8664\"\" pulumi-lang-go=\"\"x8664\"\" pulumi-lang-python=\"\"x86_64\"\" pulumi-lang-yaml=\"\"x8664\"\" pulumi-lang-java=\"\"x8664\"\"\u003e\"x86_64\"\u003c/span\u003e.\n"},"cowFormat":{"type":"boolean","description":"When True, image cannot be deleted unless all volumes, created from it, are deleted.\n"},"createdAt":{"type":"string","description":"Datetime when the image was created\n"},"gpuDriver":{"type":"string","description":"Name of the GPU driver vendor\n"},"gpuDriverType":{"type":"string","description":"Type of the GPU driver\n"},"gpuDriverVersion":{"type":"string","description":"Version of the installed GPU driver\n"},"hwFirmwareType":{"type":"string","description":"Specifies the type of firmware with which to boot the guest.\nAvailable values: \"bios\", \"uefi\".\n"},"minDisk":{"type":"number","description":"Minimal boot volume required\n"},"minRam":{"type":"number","description":"Minimal VM RAM required\n"},"name":{"type":"string","description":"Image name\n"},"osDistro":{"type":"string","description":"OS Distribution, i.e. Debian, CentOS, Ubuntu, CoreOS etc.\n"},"osType":{"type":"string","description":"The operating system installed on the image. Linux by default\nAvailable values: \"linux\", \"windows\".\n"},"osVersion":{"type":"string","description":"OS version, i.e. 19.04 (for Ubuntu) or 9.4 for Debian\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"size":{"type":"number","description":"Image size in bytes.\n"},"sshKey":{"type":"string","description":"Permission to use a ssh key in instances\nAvailable values: \"allow\", \"deny\", \"required\".\n"},"status":{"type":"string","description":"Image status\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the image was updated\n"},"url":{"type":"string","description":"Image URL\n"},"visibility":{"type":"string","description":"Image visibility. Globally visible images are public\n"}},"type":"object"}},"gcore:index/cloudGpuVirtualCluster:CloudGpuVirtualCluster":{"description":"GPU virtual clusters provide managed virtual GPU servers with auto-scaling for parallel computation workloads.\n\n## Example Usage\n\n### Basic GPU cluster with public networking\n\nCreate a GPU virtual cluster with external IPv4 networking and a boot volume from an image.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create a GPU virtual cluster with public networking\nconst example = new gcore.CloudGpuVirtualCluster(\"example\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-gpu-cluster\",\n    flavor: \"g3-ai-192-1536-12000-l40s-48-8\",\n    serversCount: 2,\n    serversSettings: {\n        interfaces: [{\n            name: \"pub_net\",\n            type: \"external\",\n            ipFamily: \"ipv4\",\n        }],\n        volumes: [{\n            name: \"root-volume\",\n            size: 120,\n            type: \"ssd_hiiops\",\n            source: \"image\",\n            imageId: \"4536337d-17c7-48f4-8ac5-01a41dc06f58\",\n            bootIndex: 0,\n        }],\n        credentials: {\n            sshKeyName: \"my-ssh-key\",\n        },\n    },\n    tags: {\n        environment: \"ml-training\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create a GPU virtual cluster with public networking\nexample = gcore.CloudGpuVirtualCluster(\"example\",\n    project_id=1,\n    region_id=1,\n    name=\"my-gpu-cluster\",\n    flavor=\"g3-ai-192-1536-12000-l40s-48-8\",\n    servers_count=2,\n    servers_settings={\n        \"interfaces\": [{\n            \"name\": \"pub_net\",\n            \"type\": \"external\",\n            \"ip_family\": \"ipv4\",\n        }],\n        \"volumes\": [{\n            \"name\": \"root-volume\",\n            \"size\": 120,\n            \"type\": \"ssd_hiiops\",\n            \"source\": \"image\",\n            \"image_id\": \"4536337d-17c7-48f4-8ac5-01a41dc06f58\",\n            \"boot_index\": 0,\n        }],\n        \"credentials\": {\n            \"ssh_key_name\": \"my-ssh-key\",\n        },\n    },\n    tags={\n        \"environment\": \"ml-training\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a GPU virtual cluster with public networking\n    var example = new Gcore.CloudGpuVirtualCluster(\"example\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-gpu-cluster\",\n        Flavor = \"g3-ai-192-1536-12000-l40s-48-8\",\n        ServersCount = 2,\n        ServersSettings = new Gcore.Inputs.CloudGpuVirtualClusterServersSettingsArgs\n        {\n            Interfaces = new[]\n            {\n                new Gcore.Inputs.CloudGpuVirtualClusterServersSettingsInterfaceArgs\n                {\n                    Name = \"pub_net\",\n                    Type = \"external\",\n                    IpFamily = \"ipv4\",\n                },\n            },\n            Volumes = new[]\n            {\n                new Gcore.Inputs.CloudGpuVirtualClusterServersSettingsVolumeArgs\n                {\n                    Name = \"root-volume\",\n                    Size = 120,\n                    Type = \"ssd_hiiops\",\n                    Source = \"image\",\n                    ImageId = \"4536337d-17c7-48f4-8ac5-01a41dc06f58\",\n                    BootIndex = 0,\n                },\n            },\n            Credentials = new Gcore.Inputs.CloudGpuVirtualClusterServersSettingsCredentialsArgs\n            {\n                SshKeyName = \"my-ssh-key\",\n            },\n        },\n        Tags = \n        {\n            { \"environment\", \"ml-training\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a GPU virtual cluster with public networking\n\t\t_, err := gcore.NewCloudGpuVirtualCluster(ctx, \"example\", \u0026gcore.CloudGpuVirtualClusterArgs{\n\t\t\tProjectId:    pulumi.Float64(1),\n\t\t\tRegionId:     pulumi.Float64(1),\n\t\t\tName:         pulumi.String(\"my-gpu-cluster\"),\n\t\t\tFlavor:       pulumi.String(\"g3-ai-192-1536-12000-l40s-48-8\"),\n\t\t\tServersCount: pulumi.Float64(2),\n\t\t\tServersSettings: \u0026gcore.CloudGpuVirtualClusterServersSettingsArgs{\n\t\t\t\tInterfaces: gcore.CloudGpuVirtualClusterServersSettingsInterfaceArray{\n\t\t\t\t\t\u0026gcore.CloudGpuVirtualClusterServersSettingsInterfaceArgs{\n\t\t\t\t\t\tName:     pulumi.String(\"pub_net\"),\n\t\t\t\t\t\tType:     pulumi.String(\"external\"),\n\t\t\t\t\t\tIpFamily: pulumi.String(\"ipv4\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tVolumes: gcore.CloudGpuVirtualClusterServersSettingsVolumeArray{\n\t\t\t\t\t\u0026gcore.CloudGpuVirtualClusterServersSettingsVolumeArgs{\n\t\t\t\t\t\tName:      pulumi.String(\"root-volume\"),\n\t\t\t\t\t\tSize:      pulumi.Float64(120),\n\t\t\t\t\t\tType:      pulumi.String(\"ssd_hiiops\"),\n\t\t\t\t\t\tSource:    pulumi.String(\"image\"),\n\t\t\t\t\t\tImageId:   pulumi.String(\"4536337d-17c7-48f4-8ac5-01a41dc06f58\"),\n\t\t\t\t\t\tBootIndex: pulumi.Float64(0),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tCredentials: \u0026gcore.CloudGpuVirtualClusterServersSettingsCredentialsArgs{\n\t\t\t\t\tSshKeyName: pulumi.String(\"my-ssh-key\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"ml-training\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudGpuVirtualCluster;\nimport com.pulumi.gcore.CloudGpuVirtualClusterArgs;\nimport com.pulumi.gcore.inputs.CloudGpuVirtualClusterServersSettingsArgs;\nimport com.pulumi.gcore.inputs.CloudGpuVirtualClusterServersSettingsCredentialsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a GPU virtual cluster with public networking\n        var example = new CloudGpuVirtualCluster(\"example\", CloudGpuVirtualClusterArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-gpu-cluster\")\n            .flavor(\"g3-ai-192-1536-12000-l40s-48-8\")\n            .serversCount(2.0)\n            .serversSettings(CloudGpuVirtualClusterServersSettingsArgs.builder()\n                .interfaces(CloudGpuVirtualClusterServersSettingsInterfaceArgs.builder()\n                    .name(\"pub_net\")\n                    .type(\"external\")\n                    .ipFamily(\"ipv4\")\n                    .build())\n                .volumes(CloudGpuVirtualClusterServersSettingsVolumeArgs.builder()\n                    .name(\"root-volume\")\n                    .size(120.0)\n                    .type(\"ssd_hiiops\")\n                    .source(\"image\")\n                    .imageId(\"4536337d-17c7-48f4-8ac5-01a41dc06f58\")\n                    .bootIndex(0.0)\n                    .build())\n                .credentials(CloudGpuVirtualClusterServersSettingsCredentialsArgs.builder()\n                    .sshKeyName(\"my-ssh-key\")\n                    .build())\n                .build())\n            .tags(Map.of(\"environment\", \"ml-training\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a GPU virtual cluster with public networking\n  example:\n    type: gcore:CloudGpuVirtualCluster\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-gpu-cluster\n      flavor: g3-ai-192-1536-12000-l40s-48-8\n      serversCount: 2\n      serversSettings:\n        interfaces:\n          - name: pub_net\n            type: external\n            ipFamily: ipv4\n        volumes:\n          - name: root-volume\n            size: 120\n            type: ssd_hiiops\n            source: image\n            imageId: 4536337d-17c7-48f4-8ac5-01a41dc06f58\n            bootIndex: 0\n        credentials:\n          sshKeyName: my-ssh-key\n      tags:\n        environment: ml-training\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudGpuVirtualCluster:CloudGpuVirtualCluster example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003ccluster_id\u003e'\n```\n\n","properties":{"createdAt":{"type":"string","description":"Cluster creation date time\n"},"flavor":{"type":"string","description":"Cluster flavor ID\n"},"name":{"type":"string","description":"Cluster name\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"serversCount":{"type":"number","description":"Number of servers in the cluster\n"},"serversIds":{"type":"array","items":{"type":"string"},"description":"List of cluster nodes\n"},"serversSettings":{"$ref":"#/types/gcore:index%2FCloudGpuVirtualClusterServersSettings:CloudGpuVirtualClusterServersSettings","description":"Configuration settings for the servers in the cluster\n"},"status":{"type":"string","description":"Cluster status\nAvailable values: \"active\", \"creating\", \"degraded\", \"deleting\", \"error\", \"rebooting\", \"rebuilding\", \"resizing\", \"shutoff\".\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Cluster update date time\n"}},"type":"object","required":["createdAt","flavor","name","serversCount","serversIds","serversSettings","status","tags","updatedAt"],"inputProperties":{"flavor":{"type":"string","description":"Cluster flavor ID\n"},"name":{"type":"string","description":"Cluster name\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"serversCount":{"type":"number","description":"Number of servers in the cluster\n"},"serversSettings":{"$ref":"#/types/gcore:index%2FCloudGpuVirtualClusterServersSettings:CloudGpuVirtualClusterServersSettings","description":"Configuration settings for the servers in the cluster\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"}},"requiredInputs":["flavor","serversCount","serversSettings"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudGpuVirtualCluster resources.\n","properties":{"createdAt":{"type":"string","description":"Cluster creation date time\n"},"flavor":{"type":"string","description":"Cluster flavor ID\n"},"name":{"type":"string","description":"Cluster name\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"serversCount":{"type":"number","description":"Number of servers in the cluster\n"},"serversIds":{"type":"array","items":{"type":"string"},"description":"List of cluster nodes\n"},"serversSettings":{"$ref":"#/types/gcore:index%2FCloudGpuVirtualClusterServersSettings:CloudGpuVirtualClusterServersSettings","description":"Configuration settings for the servers in the cluster\n"},"status":{"type":"string","description":"Cluster status\nAvailable values: \"active\", \"creating\", \"degraded\", \"deleting\", \"error\", \"rebooting\", \"rebuilding\", \"resizing\", \"shutoff\".\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Cluster update date time\n"}},"type":"object"}},"gcore:index/cloudGpuVirtualClusterImage:CloudGpuVirtualClusterImage":{"description":"GPU virtual images are custom boot images for virtual GPU cluster instances.\n\n## Example Usage\n\n### Upload custom image from URL\n\nUpload a custom OS image for use with GPU virtual clusters.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Upload a custom image for GPU virtual clusters\nconst ubuntu = new gcore.CloudGpuVirtualClusterImage(\"ubuntu\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"ubuntu-gpu-virtual\",\n    url: \"https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\",\n    architecture: \"x86_64\",\n    osType: \"linux\",\n    sshKey: \"allow\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Upload a custom image for GPU virtual clusters\nubuntu = gcore.CloudGpuVirtualClusterImage(\"ubuntu\",\n    project_id=1,\n    region_id=1,\n    name=\"ubuntu-gpu-virtual\",\n    url=\"https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\",\n    architecture=\"x86_64\",\n    os_type=\"linux\",\n    ssh_key=\"allow\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Upload a custom image for GPU virtual clusters\n    var ubuntu = new Gcore.CloudGpuVirtualClusterImage(\"ubuntu\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"ubuntu-gpu-virtual\",\n        Url = \"https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\",\n        Architecture = \"x86_64\",\n        OsType = \"linux\",\n        SshKey = \"allow\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Upload a custom image for GPU virtual clusters\n\t\t_, err := gcore.NewCloudGpuVirtualClusterImage(ctx, \"ubuntu\", \u0026gcore.CloudGpuVirtualClusterImageArgs{\n\t\t\tProjectId:    pulumi.Float64(1),\n\t\t\tRegionId:     pulumi.Float64(1),\n\t\t\tName:         pulumi.String(\"ubuntu-gpu-virtual\"),\n\t\t\tUrl:          pulumi.String(\"https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\"),\n\t\t\tArchitecture: pulumi.String(\"x86_64\"),\n\t\t\tOsType:       pulumi.String(\"linux\"),\n\t\t\tSshKey:       pulumi.String(\"allow\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudGpuVirtualClusterImage;\nimport com.pulumi.gcore.CloudGpuVirtualClusterImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Upload a custom image for GPU virtual clusters\n        var ubuntu = new CloudGpuVirtualClusterImage(\"ubuntu\", CloudGpuVirtualClusterImageArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"ubuntu-gpu-virtual\")\n            .url(\"https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\")\n            .architecture(\"x86_64\")\n            .osType(\"linux\")\n            .sshKey(\"allow\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Upload a custom image for GPU virtual clusters\n  ubuntu:\n    type: gcore:CloudGpuVirtualClusterImage\n    properties:\n      projectId: 1\n      regionId: 1\n      name: ubuntu-gpu-virtual\n      url: https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\n      architecture: x86_64\n      osType: linux\n      sshKey: allow\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudGpuVirtualClusterImage:CloudGpuVirtualClusterImage example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003cimage_id\u003e'\n```\n\n","properties":{"architecture":{"type":"string","description":"Image architecture type: aarch64, \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e\nAvailable values: \"aarch64\", \u003cspan pulumi-lang-nodejs=\"\"x8664\"\" pulumi-lang-dotnet=\"\"X8664\"\" pulumi-lang-go=\"\"x8664\"\" pulumi-lang-python=\"\"x86_64\"\" pulumi-lang-yaml=\"\"x8664\"\" pulumi-lang-java=\"\"x8664\"\"\u003e\"x86_64\"\u003c/span\u003e.\n"},"cowFormat":{"type":"boolean","description":"When True, image cannot be deleted unless all volumes, created from it, are deleted.\n"},"createdAt":{"type":"string","description":"Datetime when the image was created\n"},"gpuDriver":{"type":"string","description":"Name of the GPU driver vendor\n"},"gpuDriverType":{"type":"string","description":"Type of the GPU driver\n"},"gpuDriverVersion":{"type":"string","description":"Version of the installed GPU driver\n"},"hwFirmwareType":{"type":"string","description":"Specifies the type of firmware with which to boot the guest.\nAvailable values: \"bios\", \"uefi\".\n"},"minDisk":{"type":"number","description":"Minimal boot volume required\n"},"minRam":{"type":"number","description":"Minimal VM RAM required\n"},"name":{"type":"string","description":"Image name\n"},"osDistro":{"type":"string","description":"OS Distribution, i.e. Debian, CentOS, Ubuntu, CoreOS etc.\n"},"osType":{"type":"string","description":"The operating system installed on the image. Linux by default\nAvailable values: \"linux\", \"windows\".\n"},"osVersion":{"type":"string","description":"OS version, i.e. 19.04 (for Ubuntu) or 9.4 for Debian\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"size":{"type":"number","description":"Image size in bytes.\n"},"sshKey":{"type":"string","description":"Permission to use a ssh key in instances\nAvailable values: \"allow\", \"deny\", \"required\".\n"},"status":{"type":"string","description":"Image status\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the image was updated\n"},"url":{"type":"string","description":"Image URL\n"},"visibility":{"type":"string","description":"Image visibility. Globally visible images are public\n"}},"type":"object","required":["architecture","cowFormat","createdAt","gpuDriver","gpuDriverType","gpuDriverVersion","minDisk","minRam","name","osType","size","sshKey","status","updatedAt","url","visibility"],"inputProperties":{"architecture":{"type":"string","description":"Image architecture type: aarch64, \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e\nAvailable values: \"aarch64\", \u003cspan pulumi-lang-nodejs=\"\"x8664\"\" pulumi-lang-dotnet=\"\"X8664\"\" pulumi-lang-go=\"\"x8664\"\" pulumi-lang-python=\"\"x86_64\"\" pulumi-lang-yaml=\"\"x8664\"\" pulumi-lang-java=\"\"x8664\"\"\u003e\"x86_64\"\u003c/span\u003e.\n"},"cowFormat":{"type":"boolean","description":"When True, image cannot be deleted unless all volumes, created from it, are deleted.\n"},"hwFirmwareType":{"type":"string","description":"Specifies the type of firmware with which to boot the guest.\nAvailable values: \"bios\", \"uefi\".\n"},"name":{"type":"string","description":"Image name\n"},"osDistro":{"type":"string","description":"OS Distribution, i.e. Debian, CentOS, Ubuntu, CoreOS etc.\n"},"osType":{"type":"string","description":"The operating system installed on the image. Linux by default\nAvailable values: \"linux\", \"windows\".\n"},"osVersion":{"type":"string","description":"OS version, i.e. 19.04 (for Ubuntu) or 9.4 for Debian\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"sshKey":{"type":"string","description":"Permission to use a ssh key in instances\nAvailable values: \"allow\", \"deny\", \"required\".\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"url":{"type":"string","description":"Image URL\n"}},"requiredInputs":["url"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudGpuVirtualClusterImage resources.\n","properties":{"architecture":{"type":"string","description":"Image architecture type: aarch64, \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e\nAvailable values: \"aarch64\", \u003cspan pulumi-lang-nodejs=\"\"x8664\"\" pulumi-lang-dotnet=\"\"X8664\"\" pulumi-lang-go=\"\"x8664\"\" pulumi-lang-python=\"\"x86_64\"\" pulumi-lang-yaml=\"\"x8664\"\" pulumi-lang-java=\"\"x8664\"\"\u003e\"x86_64\"\u003c/span\u003e.\n"},"cowFormat":{"type":"boolean","description":"When True, image cannot be deleted unless all volumes, created from it, are deleted.\n"},"createdAt":{"type":"string","description":"Datetime when the image was created\n"},"gpuDriver":{"type":"string","description":"Name of the GPU driver vendor\n"},"gpuDriverType":{"type":"string","description":"Type of the GPU driver\n"},"gpuDriverVersion":{"type":"string","description":"Version of the installed GPU driver\n"},"hwFirmwareType":{"type":"string","description":"Specifies the type of firmware with which to boot the guest.\nAvailable values: \"bios\", \"uefi\".\n"},"minDisk":{"type":"number","description":"Minimal boot volume required\n"},"minRam":{"type":"number","description":"Minimal VM RAM required\n"},"name":{"type":"string","description":"Image name\n"},"osDistro":{"type":"string","description":"OS Distribution, i.e. Debian, CentOS, Ubuntu, CoreOS etc.\n"},"osType":{"type":"string","description":"The operating system installed on the image. Linux by default\nAvailable values: \"linux\", \"windows\".\n"},"osVersion":{"type":"string","description":"OS version, i.e. 19.04 (for Ubuntu) or 9.4 for Debian\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"size":{"type":"number","description":"Image size in bytes.\n"},"sshKey":{"type":"string","description":"Permission to use a ssh key in instances\nAvailable values: \"allow\", \"deny\", \"required\".\n"},"status":{"type":"string","description":"Image status\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the image was updated\n"},"url":{"type":"string","description":"Image URL\n"},"visibility":{"type":"string","description":"Image visibility. Globally visible images are public\n"}},"type":"object"}},"gcore:index/cloudInferenceRegistryCredential:CloudInferenceRegistryCredential":{"description":"Registry credentials store authentication details for private container registries used by inference deployments.\n\n## Example Usage\n\n### Docker Hub registry credential\n\nCreate a container registry credential for pulling private images from Docker Hub.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create a container registry credential for private image pulls\nconst example = new gcore.CloudInferenceRegistryCredential(\"example\", {\n    projectId: 1,\n    name: \"docker-io\",\n    username: \"my-username\",\n    passwordWo: \"my-password\",\n    passwordWoVersion: 1,\n    registryUrl: \"docker.io\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create a container registry credential for private image pulls\nexample = gcore.CloudInferenceRegistryCredential(\"example\",\n    project_id=1,\n    name=\"docker-io\",\n    username=\"my-username\",\n    password_wo=\"my-password\",\n    password_wo_version=1,\n    registry_url=\"docker.io\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a container registry credential for private image pulls\n    var example = new Gcore.CloudInferenceRegistryCredential(\"example\", new()\n    {\n        ProjectId = 1,\n        Name = \"docker-io\",\n        Username = \"my-username\",\n        PasswordWo = \"my-password\",\n        PasswordWoVersion = 1,\n        RegistryUrl = \"docker.io\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a container registry credential for private image pulls\n\t\t_, err := gcore.NewCloudInferenceRegistryCredential(ctx, \"example\", \u0026gcore.CloudInferenceRegistryCredentialArgs{\n\t\t\tProjectId:         pulumi.Float64(1),\n\t\t\tName:              pulumi.String(\"docker-io\"),\n\t\t\tUsername:          pulumi.String(\"my-username\"),\n\t\t\tPasswordWo:        pulumi.String(\"my-password\"),\n\t\t\tPasswordWoVersion: pulumi.Float64(1),\n\t\t\tRegistryUrl:       pulumi.String(\"docker.io\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudInferenceRegistryCredential;\nimport com.pulumi.gcore.CloudInferenceRegistryCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a container registry credential for private image pulls\n        var example = new CloudInferenceRegistryCredential(\"example\", CloudInferenceRegistryCredentialArgs.builder()\n            .projectId(1.0)\n            .name(\"docker-io\")\n            .username(\"my-username\")\n            .passwordWo(\"my-password\")\n            .passwordWoVersion(1.0)\n            .registryUrl(\"docker.io\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a container registry credential for private image pulls\n  example:\n    type: gcore:CloudInferenceRegistryCredential\n    properties:\n      projectId: 1\n      name: docker-io\n      username: my-username\n      passwordWo: my-password\n      passwordWoVersion: 1\n      registryUrl: docker.io\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudInferenceRegistryCredential:CloudInferenceRegistryCredential example '\u003cproject_id\u003e/\u003ccredential_name\u003e'\n```\n\n","properties":{"name":{"type":"string","description":"Registry credential name."},"passwordWo":{"type":"string","description":"Registry password."},"passwordWoVersion":{"type":"number","description":"Registry credential password write-only version. Used to trigger updates of the write-only password field."},"projectId":{"type":"number","description":"Project ID"},"registryUrl":{"type":"string","description":"Registry URL."},"username":{"type":"string","description":"Registry username."}},"type":"object","required":["name","passwordWo","passwordWoVersion","registryUrl","username"],"inputProperties":{"name":{"type":"string","description":"Registry credential name."},"passwordWo":{"type":"string","description":"Registry password."},"passwordWoVersion":{"type":"number","description":"Registry credential password write-only version. Used to trigger updates of the write-only password field."},"projectId":{"type":"number","description":"Project ID"},"registryUrl":{"type":"string","description":"Registry URL."},"username":{"type":"string","description":"Registry username."}},"requiredInputs":["passwordWo","passwordWoVersion","registryUrl","username"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudInferenceRegistryCredential resources.\n","properties":{"name":{"type":"string","description":"Registry credential name."},"passwordWo":{"type":"string","description":"Registry password."},"passwordWoVersion":{"type":"number","description":"Registry credential password write-only version. Used to trigger updates of the write-only password field."},"projectId":{"type":"number","description":"Project ID"},"registryUrl":{"type":"string","description":"Registry URL."},"username":{"type":"string","description":"Registry username."}},"type":"object"}},"gcore:index/cloudInferenceSecret:CloudInferenceSecret":{"description":"Inference secrets store sensitive values such as AWS credentials used for SQS-based autoscaling triggers in deployments.\n\n## Example Usage\n\n### AWS IAM secret for SQS triggers\n\nCreate an AWS IAM secret for use with inference deployment SQS triggers.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create an AWS IAM secret for use with inference SQS triggers\nconst example = new gcore.CloudInferenceSecret(\"example\", {\n    projectId: 1,\n    name: \"my-aws-iam-secret\",\n    type: \"aws-iam\",\n    dataWoVersion: 1,\n    data: {\n        awsAccessKeyIdWo: \"my-aws-access-key-id\",\n        awsSecretAccessKeyWo: \"my-aws-secret-key\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create an AWS IAM secret for use with inference SQS triggers\nexample = gcore.CloudInferenceSecret(\"example\",\n    project_id=1,\n    name=\"my-aws-iam-secret\",\n    type=\"aws-iam\",\n    data_wo_version=1,\n    data={\n        \"aws_access_key_id_wo\": \"my-aws-access-key-id\",\n        \"aws_secret_access_key_wo\": \"my-aws-secret-key\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create an AWS IAM secret for use with inference SQS triggers\n    var example = new Gcore.CloudInferenceSecret(\"example\", new()\n    {\n        ProjectId = 1,\n        Name = \"my-aws-iam-secret\",\n        Type = \"aws-iam\",\n        DataWoVersion = 1,\n        Data = new Gcore.Inputs.CloudInferenceSecretDataArgs\n        {\n            AwsAccessKeyIdWo = \"my-aws-access-key-id\",\n            AwsSecretAccessKeyWo = \"my-aws-secret-key\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create an AWS IAM secret for use with inference SQS triggers\n\t\t_, err := gcore.NewCloudInferenceSecret(ctx, \"example\", \u0026gcore.CloudInferenceSecretArgs{\n\t\t\tProjectId:     pulumi.Float64(1),\n\t\t\tName:          pulumi.String(\"my-aws-iam-secret\"),\n\t\t\tType:          pulumi.String(\"aws-iam\"),\n\t\t\tDataWoVersion: pulumi.Float64(1),\n\t\t\tData: \u0026gcore.CloudInferenceSecretDataArgs{\n\t\t\t\tAwsAccessKeyIdWo:     pulumi.String(\"my-aws-access-key-id\"),\n\t\t\t\tAwsSecretAccessKeyWo: pulumi.String(\"my-aws-secret-key\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudInferenceSecret;\nimport com.pulumi.gcore.CloudInferenceSecretArgs;\nimport com.pulumi.gcore.inputs.CloudInferenceSecretDataArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create an AWS IAM secret for use with inference SQS triggers\n        var example = new CloudInferenceSecret(\"example\", CloudInferenceSecretArgs.builder()\n            .projectId(1.0)\n            .name(\"my-aws-iam-secret\")\n            .type(\"aws-iam\")\n            .dataWoVersion(1.0)\n            .data(CloudInferenceSecretDataArgs.builder()\n                .awsAccessKeyIdWo(\"my-aws-access-key-id\")\n                .awsSecretAccessKeyWo(\"my-aws-secret-key\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an AWS IAM secret for use with inference SQS triggers\n  example:\n    type: gcore:CloudInferenceSecret\n    properties:\n      projectId: 1\n      name: my-aws-iam-secret\n      type: aws-iam\n      dataWoVersion: 1\n      data:\n        awsAccessKeyIdWo: my-aws-access-key-id\n        awsSecretAccessKeyWo: my-aws-secret-key\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudInferenceSecret:CloudInferenceSecret example '\u003cproject_id\u003e/\u003csecret_name\u003e'\n```\n\n","properties":{"data":{"$ref":"#/types/gcore:index%2FCloudInferenceSecretData:CloudInferenceSecretData","description":"Secret data.\n"},"dataWoVersion":{"type":"number","description":"The version of the data sensitive params - used to trigger updates of write-only params.\n"},"name":{"type":"string","description":"Secret name.\n"},"projectId":{"type":"number","description":"Project ID\n"},"type":{"type":"string","description":"Secret type. Currently only `aws-iam` is supported.\n"}},"type":"object","required":["data","dataWoVersion","name","type"],"inputProperties":{"data":{"$ref":"#/types/gcore:index%2FCloudInferenceSecretData:CloudInferenceSecretData","description":"Secret data.\n"},"dataWoVersion":{"type":"number","description":"The version of the data sensitive params - used to trigger updates of write-only params.\n"},"name":{"type":"string","description":"Secret name.\n"},"projectId":{"type":"number","description":"Project ID\n"},"type":{"type":"string","description":"Secret type. Currently only `aws-iam` is supported.\n"}},"requiredInputs":["data","dataWoVersion","type"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudInferenceSecret resources.\n","properties":{"data":{"$ref":"#/types/gcore:index%2FCloudInferenceSecretData:CloudInferenceSecretData","description":"Secret data.\n"},"dataWoVersion":{"type":"number","description":"The version of the data sensitive params - used to trigger updates of write-only params.\n"},"name":{"type":"string","description":"Secret name.\n"},"projectId":{"type":"number","description":"Project ID\n"},"type":{"type":"string","description":"Secret type. Currently only `aws-iam` is supported.\n"}},"type":"object"}},"gcore:index/cloudInstance:CloudInstance":{"description":"Instances are cloud virtual machines with configurable CPU, memory, storage, and networking, supporting various operating systems and workloads.\n\n## Example Usage\n\n### Instance with one public interface\n\nCreate a basic instance with a single external IPv4 interface.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create an SSH key for instance access\nconst myKey = new gcore.CloudSshKey(\"my_key\", {\n    projectId: 1,\n    name: \"my-keypair\",\n    publicKey: \"ssh-ed25519 ...your public key... user@example.com\",\n});\n// Create a boot volume from an image\nconst bootVolume = new gcore.CloudVolume(\"boot_volume\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-boot-volume\",\n    source: \"image\",\n    imageId: \"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n    size: 20,\n    typeName: \"ssd_hiiops\",\n});\n// Create an instance with a single external interface\nconst instanceWithOneInterface = new gcore.CloudInstance(\"instance_with_one_interface\", {\n    projectId: 1,\n    regionId: 1,\n    flavor: \"g1-standard-2-4\",\n    name: \"my-instance\",\n    sshKeyName: myKey.name,\n    volumes: [{\n        volumeId: bootVolume.id,\n    }],\n    interfaces: [{\n        type: \"external\",\n        ipFamily: \"ipv4\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create an SSH key for instance access\nmy_key = gcore.CloudSshKey(\"my_key\",\n    project_id=1,\n    name=\"my-keypair\",\n    public_key=\"ssh-ed25519 ...your public key... user@example.com\")\n# Create a boot volume from an image\nboot_volume = gcore.CloudVolume(\"boot_volume\",\n    project_id=1,\n    region_id=1,\n    name=\"my-boot-volume\",\n    source=\"image\",\n    image_id=\"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n    size=20,\n    type_name=\"ssd_hiiops\")\n# Create an instance with a single external interface\ninstance_with_one_interface = gcore.CloudInstance(\"instance_with_one_interface\",\n    project_id=1,\n    region_id=1,\n    flavor=\"g1-standard-2-4\",\n    name=\"my-instance\",\n    ssh_key_name=my_key.name,\n    volumes=[{\n        \"volume_id\": boot_volume.id,\n    }],\n    interfaces=[{\n        \"type\": \"external\",\n        \"ip_family\": \"ipv4\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create an SSH key for instance access\n    var myKey = new Gcore.CloudSshKey(\"my_key\", new()\n    {\n        ProjectId = 1,\n        Name = \"my-keypair\",\n        PublicKey = \"ssh-ed25519 ...your public key... user@example.com\",\n    });\n\n    // Create a boot volume from an image\n    var bootVolume = new Gcore.CloudVolume(\"boot_volume\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-boot-volume\",\n        Source = \"image\",\n        ImageId = \"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n        Size = 20,\n        TypeName = \"ssd_hiiops\",\n    });\n\n    // Create an instance with a single external interface\n    var instanceWithOneInterface = new Gcore.CloudInstance(\"instance_with_one_interface\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Flavor = \"g1-standard-2-4\",\n        Name = \"my-instance\",\n        SshKeyName = myKey.Name,\n        Volumes = new[]\n        {\n            new Gcore.Inputs.CloudInstanceVolumeArgs\n            {\n                VolumeId = bootVolume.Id,\n            },\n        },\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.CloudInstanceInterfaceArgs\n            {\n                Type = \"external\",\n                IpFamily = \"ipv4\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create an SSH key for instance access\n\t\tmyKey, err := gcore.NewCloudSshKey(ctx, \"my_key\", \u0026gcore.CloudSshKeyArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-keypair\"),\n\t\t\tPublicKey: pulumi.String(\"ssh-ed25519 ...your public key... user@example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a boot volume from an image\n\t\tbootVolume, err := gcore.NewCloudVolume(ctx, \"boot_volume\", \u0026gcore.CloudVolumeArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-boot-volume\"),\n\t\t\tSource:    pulumi.String(\"image\"),\n\t\t\tImageId:   pulumi.String(\"6dc4e521-0c72-462f-b2d4-306bcf15e227\"),\n\t\t\tSize:      pulumi.Float64(20),\n\t\t\tTypeName:  pulumi.String(\"ssd_hiiops\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create an instance with a single external interface\n\t\t_, err = gcore.NewCloudInstance(ctx, \"instance_with_one_interface\", \u0026gcore.CloudInstanceArgs{\n\t\t\tProjectId:  pulumi.Float64(1),\n\t\t\tRegionId:   pulumi.Float64(1),\n\t\t\tFlavor:     pulumi.String(\"g1-standard-2-4\"),\n\t\t\tName:       pulumi.String(\"my-instance\"),\n\t\t\tSshKeyName: myKey.Name,\n\t\t\tVolumes: gcore.CloudInstanceVolumeArray{\n\t\t\t\t\u0026gcore.CloudInstanceVolumeArgs{\n\t\t\t\t\tVolumeId: bootVolume.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInterfaces: gcore.CloudInstanceInterfaceArray{\n\t\t\t\t\u0026gcore.CloudInstanceInterfaceArgs{\n\t\t\t\t\tType:     pulumi.String(\"external\"),\n\t\t\t\t\tIpFamily: pulumi.String(\"ipv4\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudSshKey;\nimport com.pulumi.gcore.CloudSshKeyArgs;\nimport com.pulumi.gcore.CloudVolume;\nimport com.pulumi.gcore.CloudVolumeArgs;\nimport com.pulumi.gcore.CloudInstance;\nimport com.pulumi.gcore.CloudInstanceArgs;\nimport com.pulumi.gcore.inputs.CloudInstanceVolumeArgs;\nimport com.pulumi.gcore.inputs.CloudInstanceInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create an SSH key for instance access\n        var myKey = new CloudSshKey(\"myKey\", CloudSshKeyArgs.builder()\n            .projectId(1.0)\n            .name(\"my-keypair\")\n            .publicKey(\"ssh-ed25519 ...your public key... user@example.com\")\n            .build());\n\n        // Create a boot volume from an image\n        var bootVolume = new CloudVolume(\"bootVolume\", CloudVolumeArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-boot-volume\")\n            .source(\"image\")\n            .imageId(\"6dc4e521-0c72-462f-b2d4-306bcf15e227\")\n            .size(20.0)\n            .typeName(\"ssd_hiiops\")\n            .build());\n\n        // Create an instance with a single external interface\n        var instanceWithOneInterface = new CloudInstance(\"instanceWithOneInterface\", CloudInstanceArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .flavor(\"g1-standard-2-4\")\n            .name(\"my-instance\")\n            .sshKeyName(myKey.name())\n            .volumes(CloudInstanceVolumeArgs.builder()\n                .volumeId(bootVolume.id())\n                .build())\n            .interfaces(CloudInstanceInterfaceArgs.builder()\n                .type(\"external\")\n                .ipFamily(\"ipv4\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an SSH key for instance access\n  myKey:\n    type: gcore:CloudSshKey\n    name: my_key\n    properties:\n      projectId: 1\n      name: my-keypair\n      publicKey: ssh-ed25519 ...your public key... user@example.com\n  # Create a boot volume from an image\n  bootVolume:\n    type: gcore:CloudVolume\n    name: boot_volume\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-boot-volume\n      source: image\n      imageId: 6dc4e521-0c72-462f-b2d4-306bcf15e227\n      size: 20\n      typeName: ssd_hiiops\n  # Create an instance with a single external interface\n  instanceWithOneInterface:\n    type: gcore:CloudInstance\n    name: instance_with_one_interface\n    properties:\n      projectId: 1\n      regionId: 1\n      flavor: g1-standard-2-4\n      name: my-instance\n      sshKeyName: ${myKey.name}\n      volumes:\n        - volumeId: ${bootVolume.id}\n      interfaces:\n        - type: external\n          ipFamily: ipv4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Instance with two interfaces\n\nCreate an instance with two network interfaces: one public and one private.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create a private network and subnet\nconst network = new gcore.CloudNetwork(\"network\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-network\",\n    type: \"vxlan\",\n});\nconst subnet = new gcore.CloudNetworkSubnet(\"subnet\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-subnet\",\n    cidr: \"192.168.10.0/24\",\n    networkId: network.id,\n    dnsNameservers: [\n        \"8.8.4.4\",\n        \"1.1.1.1\",\n    ],\n});\n// Create an SSH key for instance access\nconst myKey = new gcore.CloudSshKey(\"my_key\", {\n    projectId: 1,\n    name: \"my-keypair\",\n    publicKey: \"ssh-ed25519 ...your public key... user@example.com\",\n});\n// Create a boot volume from an image\nconst bootVolume = new gcore.CloudVolume(\"boot_volume\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-boot-volume\",\n    source: \"image\",\n    imageId: \"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n    size: 20,\n    typeName: \"ssd_hiiops\",\n});\n// Create an instance with two interfaces: one public, one private\nconst instanceWithTwoInterfaces = new gcore.CloudInstance(\"instance_with_two_interfaces\", {\n    projectId: 1,\n    regionId: 1,\n    flavor: \"g1-standard-2-4\",\n    name: \"my-instance\",\n    sshKeyName: myKey.name,\n    volumes: [{\n        volumeId: bootVolume.id,\n    }],\n    interfaces: [\n        {\n            type: \"external\",\n            ipFamily: \"ipv4\",\n        },\n        {\n            type: \"subnet\",\n            networkId: network.id,\n            subnetId: subnet.id,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create a private network and subnet\nnetwork = gcore.CloudNetwork(\"network\",\n    project_id=1,\n    region_id=1,\n    name=\"my-network\",\n    type=\"vxlan\")\nsubnet = gcore.CloudNetworkSubnet(\"subnet\",\n    project_id=1,\n    region_id=1,\n    name=\"my-subnet\",\n    cidr=\"192.168.10.0/24\",\n    network_id=network.id,\n    dns_nameservers=[\n        \"8.8.4.4\",\n        \"1.1.1.1\",\n    ])\n# Create an SSH key for instance access\nmy_key = gcore.CloudSshKey(\"my_key\",\n    project_id=1,\n    name=\"my-keypair\",\n    public_key=\"ssh-ed25519 ...your public key... user@example.com\")\n# Create a boot volume from an image\nboot_volume = gcore.CloudVolume(\"boot_volume\",\n    project_id=1,\n    region_id=1,\n    name=\"my-boot-volume\",\n    source=\"image\",\n    image_id=\"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n    size=20,\n    type_name=\"ssd_hiiops\")\n# Create an instance with two interfaces: one public, one private\ninstance_with_two_interfaces = gcore.CloudInstance(\"instance_with_two_interfaces\",\n    project_id=1,\n    region_id=1,\n    flavor=\"g1-standard-2-4\",\n    name=\"my-instance\",\n    ssh_key_name=my_key.name,\n    volumes=[{\n        \"volume_id\": boot_volume.id,\n    }],\n    interfaces=[\n        {\n            \"type\": \"external\",\n            \"ip_family\": \"ipv4\",\n        },\n        {\n            \"type\": \"subnet\",\n            \"network_id\": network.id,\n            \"subnet_id\": subnet.id,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a private network and subnet\n    var network = new Gcore.CloudNetwork(\"network\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-network\",\n        Type = \"vxlan\",\n    });\n\n    var subnet = new Gcore.CloudNetworkSubnet(\"subnet\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-subnet\",\n        Cidr = \"192.168.10.0/24\",\n        NetworkId = network.Id,\n        DnsNameservers = new[]\n        {\n            \"8.8.4.4\",\n            \"1.1.1.1\",\n        },\n    });\n\n    // Create an SSH key for instance access\n    var myKey = new Gcore.CloudSshKey(\"my_key\", new()\n    {\n        ProjectId = 1,\n        Name = \"my-keypair\",\n        PublicKey = \"ssh-ed25519 ...your public key... user@example.com\",\n    });\n\n    // Create a boot volume from an image\n    var bootVolume = new Gcore.CloudVolume(\"boot_volume\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-boot-volume\",\n        Source = \"image\",\n        ImageId = \"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n        Size = 20,\n        TypeName = \"ssd_hiiops\",\n    });\n\n    // Create an instance with two interfaces: one public, one private\n    var instanceWithTwoInterfaces = new Gcore.CloudInstance(\"instance_with_two_interfaces\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Flavor = \"g1-standard-2-4\",\n        Name = \"my-instance\",\n        SshKeyName = myKey.Name,\n        Volumes = new[]\n        {\n            new Gcore.Inputs.CloudInstanceVolumeArgs\n            {\n                VolumeId = bootVolume.Id,\n            },\n        },\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.CloudInstanceInterfaceArgs\n            {\n                Type = \"external\",\n                IpFamily = \"ipv4\",\n            },\n            new Gcore.Inputs.CloudInstanceInterfaceArgs\n            {\n                Type = \"subnet\",\n                NetworkId = network.Id,\n                SubnetId = subnet.Id,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a private network and subnet\n\t\tnetwork, err := gcore.NewCloudNetwork(ctx, \"network\", \u0026gcore.CloudNetworkArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-network\"),\n\t\t\tType:      pulumi.String(\"vxlan\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet, err := gcore.NewCloudNetworkSubnet(ctx, \"subnet\", \u0026gcore.CloudNetworkSubnetArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-subnet\"),\n\t\t\tCidr:      pulumi.String(\"192.168.10.0/24\"),\n\t\t\tNetworkId: network.ID(),\n\t\t\tDnsNameservers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"8.8.4.4\"),\n\t\t\t\tpulumi.String(\"1.1.1.1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create an SSH key for instance access\n\t\tmyKey, err := gcore.NewCloudSshKey(ctx, \"my_key\", \u0026gcore.CloudSshKeyArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-keypair\"),\n\t\t\tPublicKey: pulumi.String(\"ssh-ed25519 ...your public key... user@example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a boot volume from an image\n\t\tbootVolume, err := gcore.NewCloudVolume(ctx, \"boot_volume\", \u0026gcore.CloudVolumeArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-boot-volume\"),\n\t\t\tSource:    pulumi.String(\"image\"),\n\t\t\tImageId:   pulumi.String(\"6dc4e521-0c72-462f-b2d4-306bcf15e227\"),\n\t\t\tSize:      pulumi.Float64(20),\n\t\t\tTypeName:  pulumi.String(\"ssd_hiiops\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create an instance with two interfaces: one public, one private\n\t\t_, err = gcore.NewCloudInstance(ctx, \"instance_with_two_interfaces\", \u0026gcore.CloudInstanceArgs{\n\t\t\tProjectId:  pulumi.Float64(1),\n\t\t\tRegionId:   pulumi.Float64(1),\n\t\t\tFlavor:     pulumi.String(\"g1-standard-2-4\"),\n\t\t\tName:       pulumi.String(\"my-instance\"),\n\t\t\tSshKeyName: myKey.Name,\n\t\t\tVolumes: gcore.CloudInstanceVolumeArray{\n\t\t\t\t\u0026gcore.CloudInstanceVolumeArgs{\n\t\t\t\t\tVolumeId: bootVolume.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInterfaces: gcore.CloudInstanceInterfaceArray{\n\t\t\t\t\u0026gcore.CloudInstanceInterfaceArgs{\n\t\t\t\t\tType:     pulumi.String(\"external\"),\n\t\t\t\t\tIpFamily: pulumi.String(\"ipv4\"),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.CloudInstanceInterfaceArgs{\n\t\t\t\t\tType:      pulumi.String(\"subnet\"),\n\t\t\t\t\tNetworkId: network.ID(),\n\t\t\t\t\tSubnetId:  subnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudNetwork;\nimport com.pulumi.gcore.CloudNetworkArgs;\nimport com.pulumi.gcore.CloudNetworkSubnet;\nimport com.pulumi.gcore.CloudNetworkSubnetArgs;\nimport com.pulumi.gcore.CloudSshKey;\nimport com.pulumi.gcore.CloudSshKeyArgs;\nimport com.pulumi.gcore.CloudVolume;\nimport com.pulumi.gcore.CloudVolumeArgs;\nimport com.pulumi.gcore.CloudInstance;\nimport com.pulumi.gcore.CloudInstanceArgs;\nimport com.pulumi.gcore.inputs.CloudInstanceVolumeArgs;\nimport com.pulumi.gcore.inputs.CloudInstanceInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a private network and subnet\n        var network = new CloudNetwork(\"network\", CloudNetworkArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-network\")\n            .type(\"vxlan\")\n            .build());\n\n        var subnet = new CloudNetworkSubnet(\"subnet\", CloudNetworkSubnetArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-subnet\")\n            .cidr(\"192.168.10.0/24\")\n            .networkId(network.id())\n            .dnsNameservers(            \n                \"8.8.4.4\",\n                \"1.1.1.1\")\n            .build());\n\n        // Create an SSH key for instance access\n        var myKey = new CloudSshKey(\"myKey\", CloudSshKeyArgs.builder()\n            .projectId(1.0)\n            .name(\"my-keypair\")\n            .publicKey(\"ssh-ed25519 ...your public key... user@example.com\")\n            .build());\n\n        // Create a boot volume from an image\n        var bootVolume = new CloudVolume(\"bootVolume\", CloudVolumeArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-boot-volume\")\n            .source(\"image\")\n            .imageId(\"6dc4e521-0c72-462f-b2d4-306bcf15e227\")\n            .size(20.0)\n            .typeName(\"ssd_hiiops\")\n            .build());\n\n        // Create an instance with two interfaces: one public, one private\n        var instanceWithTwoInterfaces = new CloudInstance(\"instanceWithTwoInterfaces\", CloudInstanceArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .flavor(\"g1-standard-2-4\")\n            .name(\"my-instance\")\n            .sshKeyName(myKey.name())\n            .volumes(CloudInstanceVolumeArgs.builder()\n                .volumeId(bootVolume.id())\n                .build())\n            .interfaces(            \n                CloudInstanceInterfaceArgs.builder()\n                    .type(\"external\")\n                    .ipFamily(\"ipv4\")\n                    .build(),\n                CloudInstanceInterfaceArgs.builder()\n                    .type(\"subnet\")\n                    .networkId(network.id())\n                    .subnetId(subnet.id())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a private network and subnet\n  network:\n    type: gcore:CloudNetwork\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-network\n      type: vxlan\n  subnet:\n    type: gcore:CloudNetworkSubnet\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-subnet\n      cidr: 192.168.10.0/24\n      networkId: ${network.id}\n      dnsNameservers:\n        - 8.8.4.4\n        - 1.1.1.1\n  # Create an SSH key for instance access\n  myKey:\n    type: gcore:CloudSshKey\n    name: my_key\n    properties:\n      projectId: 1\n      name: my-keypair\n      publicKey: ssh-ed25519 ...your public key... user@example.com\n  # Create a boot volume from an image\n  bootVolume:\n    type: gcore:CloudVolume\n    name: boot_volume\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-boot-volume\n      source: image\n      imageId: 6dc4e521-0c72-462f-b2d4-306bcf15e227\n      size: 20\n      typeName: ssd_hiiops\n  # Create an instance with two interfaces: one public, one private\n  instanceWithTwoInterfaces:\n    type: gcore:CloudInstance\n    name: instance_with_two_interfaces\n    properties:\n      projectId: 1\n      regionId: 1\n      flavor: g1-standard-2-4\n      name: my-instance\n      sshKeyName: ${myKey.name}\n      volumes:\n        - volumeId: ${bootVolume.id}\n      interfaces:\n        - type: external\n          ipFamily: ipv4\n        - type: subnet\n          networkId: ${network.id}\n          subnetId: ${subnet.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Windows instance\n\nCreate a Windows instance with a public interface.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  bootVolumeWindows:\n    type: gcore:CloudVolume\n    name: boot_volume_windows\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-windows-boot-volume\n      source: image\n      imageId: a2c1681c-94e0-4aab-8fa3-09a8e662d4c0\n      size: 50\n      typeName: ssd_hiiops\n  windowsInstance:\n    type: gcore:CloudInstance\n    name: windows_instance\n    properties:\n      projectId: 1\n      regionId: 1\n      flavor: g1w-standard-4-8\n      name: my-windows-instance\n      password: my-s3cR3tP@ssw0rd\n      volumes:\n        - volumeId: ${bootVolumeWindows.id}\n      interfaces:\n        - type: external\n          ipFamily: ipv4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Dual-stack public interface\n\nCreate an instance with both IPv4 and IPv6 addresses on a single interface.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create an SSH key for instance access\nconst myKey = new gcore.CloudSshKey(\"my_key\", {\n    projectId: 1,\n    name: \"my-keypair\",\n    publicKey: \"ssh-ed25519 ...your public key... user@example.com\",\n});\n// Create a boot volume from an image\nconst bootVolume = new gcore.CloudVolume(\"boot_volume\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-boot-volume\",\n    source: \"image\",\n    imageId: \"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n    size: 20,\n    typeName: \"ssd_hiiops\",\n});\n// Create an instance with dual-stack (IPv4 + IPv6) public interface\nconst instanceWithDualstack = new gcore.CloudInstance(\"instance_with_dualstack\", {\n    projectId: 1,\n    regionId: 1,\n    flavor: \"g1-standard-2-4\",\n    name: \"my-instance\",\n    sshKeyName: myKey.name,\n    volumes: [{\n        volumeId: bootVolume.id,\n    }],\n    interfaces: [{\n        type: \"external\",\n        ipFamily: \"dual\",\n    }],\n});\nexport const addresses = instanceWithDualstack.addresses;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create an SSH key for instance access\nmy_key = gcore.CloudSshKey(\"my_key\",\n    project_id=1,\n    name=\"my-keypair\",\n    public_key=\"ssh-ed25519 ...your public key... user@example.com\")\n# Create a boot volume from an image\nboot_volume = gcore.CloudVolume(\"boot_volume\",\n    project_id=1,\n    region_id=1,\n    name=\"my-boot-volume\",\n    source=\"image\",\n    image_id=\"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n    size=20,\n    type_name=\"ssd_hiiops\")\n# Create an instance with dual-stack (IPv4 + IPv6) public interface\ninstance_with_dualstack = gcore.CloudInstance(\"instance_with_dualstack\",\n    project_id=1,\n    region_id=1,\n    flavor=\"g1-standard-2-4\",\n    name=\"my-instance\",\n    ssh_key_name=my_key.name,\n    volumes=[{\n        \"volume_id\": boot_volume.id,\n    }],\n    interfaces=[{\n        \"type\": \"external\",\n        \"ip_family\": \"dual\",\n    }])\npulumi.export(\"addresses\", instance_with_dualstack.addresses)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create an SSH key for instance access\n    var myKey = new Gcore.CloudSshKey(\"my_key\", new()\n    {\n        ProjectId = 1,\n        Name = \"my-keypair\",\n        PublicKey = \"ssh-ed25519 ...your public key... user@example.com\",\n    });\n\n    // Create a boot volume from an image\n    var bootVolume = new Gcore.CloudVolume(\"boot_volume\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-boot-volume\",\n        Source = \"image\",\n        ImageId = \"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n        Size = 20,\n        TypeName = \"ssd_hiiops\",\n    });\n\n    // Create an instance with dual-stack (IPv4 + IPv6) public interface\n    var instanceWithDualstack = new Gcore.CloudInstance(\"instance_with_dualstack\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Flavor = \"g1-standard-2-4\",\n        Name = \"my-instance\",\n        SshKeyName = myKey.Name,\n        Volumes = new[]\n        {\n            new Gcore.Inputs.CloudInstanceVolumeArgs\n            {\n                VolumeId = bootVolume.Id,\n            },\n        },\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.CloudInstanceInterfaceArgs\n            {\n                Type = \"external\",\n                IpFamily = \"dual\",\n            },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"addresses\"] = instanceWithDualstack.Addresses,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create an SSH key for instance access\n\t\tmyKey, err := gcore.NewCloudSshKey(ctx, \"my_key\", \u0026gcore.CloudSshKeyArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-keypair\"),\n\t\t\tPublicKey: pulumi.String(\"ssh-ed25519 ...your public key... user@example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a boot volume from an image\n\t\tbootVolume, err := gcore.NewCloudVolume(ctx, \"boot_volume\", \u0026gcore.CloudVolumeArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-boot-volume\"),\n\t\t\tSource:    pulumi.String(\"image\"),\n\t\t\tImageId:   pulumi.String(\"6dc4e521-0c72-462f-b2d4-306bcf15e227\"),\n\t\t\tSize:      pulumi.Float64(20),\n\t\t\tTypeName:  pulumi.String(\"ssd_hiiops\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create an instance with dual-stack (IPv4 + IPv6) public interface\n\t\tinstanceWithDualstack, err := gcore.NewCloudInstance(ctx, \"instance_with_dualstack\", \u0026gcore.CloudInstanceArgs{\n\t\t\tProjectId:  pulumi.Float64(1),\n\t\t\tRegionId:   pulumi.Float64(1),\n\t\t\tFlavor:     pulumi.String(\"g1-standard-2-4\"),\n\t\t\tName:       pulumi.String(\"my-instance\"),\n\t\t\tSshKeyName: myKey.Name,\n\t\t\tVolumes: gcore.CloudInstanceVolumeArray{\n\t\t\t\t\u0026gcore.CloudInstanceVolumeArgs{\n\t\t\t\t\tVolumeId: bootVolume.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInterfaces: gcore.CloudInstanceInterfaceArray{\n\t\t\t\t\u0026gcore.CloudInstanceInterfaceArgs{\n\t\t\t\t\tType:     pulumi.String(\"external\"),\n\t\t\t\t\tIpFamily: pulumi.String(\"dual\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"addresses\", instanceWithDualstack.Addresses)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudSshKey;\nimport com.pulumi.gcore.CloudSshKeyArgs;\nimport com.pulumi.gcore.CloudVolume;\nimport com.pulumi.gcore.CloudVolumeArgs;\nimport com.pulumi.gcore.CloudInstance;\nimport com.pulumi.gcore.CloudInstanceArgs;\nimport com.pulumi.gcore.inputs.CloudInstanceVolumeArgs;\nimport com.pulumi.gcore.inputs.CloudInstanceInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create an SSH key for instance access\n        var myKey = new CloudSshKey(\"myKey\", CloudSshKeyArgs.builder()\n            .projectId(1.0)\n            .name(\"my-keypair\")\n            .publicKey(\"ssh-ed25519 ...your public key... user@example.com\")\n            .build());\n\n        // Create a boot volume from an image\n        var bootVolume = new CloudVolume(\"bootVolume\", CloudVolumeArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-boot-volume\")\n            .source(\"image\")\n            .imageId(\"6dc4e521-0c72-462f-b2d4-306bcf15e227\")\n            .size(20.0)\n            .typeName(\"ssd_hiiops\")\n            .build());\n\n        // Create an instance with dual-stack (IPv4 + IPv6) public interface\n        var instanceWithDualstack = new CloudInstance(\"instanceWithDualstack\", CloudInstanceArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .flavor(\"g1-standard-2-4\")\n            .name(\"my-instance\")\n            .sshKeyName(myKey.name())\n            .volumes(CloudInstanceVolumeArgs.builder()\n                .volumeId(bootVolume.id())\n                .build())\n            .interfaces(CloudInstanceInterfaceArgs.builder()\n                .type(\"external\")\n                .ipFamily(\"dual\")\n                .build())\n            .build());\n\n        ctx.export(\"addresses\", instanceWithDualstack.addresses());\n    }\n}\n```\n```yaml\nresources:\n  # Create an SSH key for instance access\n  myKey:\n    type: gcore:CloudSshKey\n    name: my_key\n    properties:\n      projectId: 1\n      name: my-keypair\n      publicKey: ssh-ed25519 ...your public key... user@example.com\n  # Create a boot volume from an image\n  bootVolume:\n    type: gcore:CloudVolume\n    name: boot_volume\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-boot-volume\n      source: image\n      imageId: 6dc4e521-0c72-462f-b2d4-306bcf15e227\n      size: 20\n      typeName: ssd_hiiops\n  # Create an instance with dual-stack (IPv4 + IPv6) public interface\n  instanceWithDualstack:\n    type: gcore:CloudInstance\n    name: instance_with_dualstack\n    properties:\n      projectId: 1\n      regionId: 1\n      flavor: g1-standard-2-4\n      name: my-instance\n      sshKeyName: ${myKey.name}\n      volumes:\n        - volumeId: ${bootVolume.id}\n      interfaces:\n        - type: external\n          ipFamily: dual\noutputs:\n  addresses: ${instanceWithDualstack.addresses}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Instance with floating IP\n\nCreate an instance and attach a floating IP address for external access.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create a private network and subnet\nconst network = new gcore.CloudNetwork(\"network\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-network\",\n    type: \"vxlan\",\n});\nconst subnet = new gcore.CloudNetworkSubnet(\"subnet\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-subnet\",\n    cidr: \"192.168.10.0/24\",\n    networkId: network.id,\n    dnsNameservers: [\n        \"8.8.4.4\",\n        \"1.1.1.1\",\n    ],\n});\n// Create an SSH key for instance access\nconst myKey = new gcore.CloudSshKey(\"my_key\", {\n    projectId: 1,\n    name: \"my-keypair\",\n    publicKey: \"ssh-ed25519 ...your public key... user@example.com\",\n});\n// Create a boot volume from an image\nconst bootVolume = new gcore.CloudVolume(\"boot_volume\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-boot-volume\",\n    source: \"image\",\n    imageId: \"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n    size: 20,\n    typeName: \"ssd_hiiops\",\n});\n// Reserve a fixed IP on the private subnet\nconst fixedIp = new gcore.CloudReservedFixedIp(\"fixed_ip\", {\n    projectId: 1,\n    regionId: 1,\n    type: \"subnet\",\n    networkId: network.id,\n    subnetId: subnet.id,\n});\n// Create a floating IP and associate it with the fixed IP\nconst floatingIp = new gcore.CloudFloatingIp(\"floating_ip\", {\n    projectId: 1,\n    regionId: 1,\n    fixedIpAddress: fixedIp.fixedIpAddress,\n    portId: fixedIp.portId,\n});\n// Create an instance with floating IP for external access\nconst instanceWithFloatingIp = new gcore.CloudInstance(\"instance_with_floating_ip\", {\n    projectId: 1,\n    regionId: 1,\n    flavor: \"g1-standard-2-4\",\n    name: \"my-instance\",\n    sshKeyName: myKey.name,\n    volumes: [{\n        volumeId: bootVolume.id,\n    }],\n    interfaces: [{\n        type: \"reserved_fixed_ip\",\n        portId: fixedIp.portId,\n        floatingIp: {\n            source: \"existing\",\n            existingFloatingId: floatingIp.id,\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create a private network and subnet\nnetwork = gcore.CloudNetwork(\"network\",\n    project_id=1,\n    region_id=1,\n    name=\"my-network\",\n    type=\"vxlan\")\nsubnet = gcore.CloudNetworkSubnet(\"subnet\",\n    project_id=1,\n    region_id=1,\n    name=\"my-subnet\",\n    cidr=\"192.168.10.0/24\",\n    network_id=network.id,\n    dns_nameservers=[\n        \"8.8.4.4\",\n        \"1.1.1.1\",\n    ])\n# Create an SSH key for instance access\nmy_key = gcore.CloudSshKey(\"my_key\",\n    project_id=1,\n    name=\"my-keypair\",\n    public_key=\"ssh-ed25519 ...your public key... user@example.com\")\n# Create a boot volume from an image\nboot_volume = gcore.CloudVolume(\"boot_volume\",\n    project_id=1,\n    region_id=1,\n    name=\"my-boot-volume\",\n    source=\"image\",\n    image_id=\"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n    size=20,\n    type_name=\"ssd_hiiops\")\n# Reserve a fixed IP on the private subnet\nfixed_ip = gcore.CloudReservedFixedIp(\"fixed_ip\",\n    project_id=1,\n    region_id=1,\n    type=\"subnet\",\n    network_id=network.id,\n    subnet_id=subnet.id)\n# Create a floating IP and associate it with the fixed IP\nfloating_ip = gcore.CloudFloatingIp(\"floating_ip\",\n    project_id=1,\n    region_id=1,\n    fixed_ip_address=fixed_ip.fixed_ip_address,\n    port_id=fixed_ip.port_id)\n# Create an instance with floating IP for external access\ninstance_with_floating_ip = gcore.CloudInstance(\"instance_with_floating_ip\",\n    project_id=1,\n    region_id=1,\n    flavor=\"g1-standard-2-4\",\n    name=\"my-instance\",\n    ssh_key_name=my_key.name,\n    volumes=[{\n        \"volume_id\": boot_volume.id,\n    }],\n    interfaces=[{\n        \"type\": \"reserved_fixed_ip\",\n        \"port_id\": fixed_ip.port_id,\n        \"floating_ip\": {\n            \"source\": \"existing\",\n            \"existing_floating_id\": floating_ip.id,\n        },\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a private network and subnet\n    var network = new Gcore.CloudNetwork(\"network\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-network\",\n        Type = \"vxlan\",\n    });\n\n    var subnet = new Gcore.CloudNetworkSubnet(\"subnet\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-subnet\",\n        Cidr = \"192.168.10.0/24\",\n        NetworkId = network.Id,\n        DnsNameservers = new[]\n        {\n            \"8.8.4.4\",\n            \"1.1.1.1\",\n        },\n    });\n\n    // Create an SSH key for instance access\n    var myKey = new Gcore.CloudSshKey(\"my_key\", new()\n    {\n        ProjectId = 1,\n        Name = \"my-keypair\",\n        PublicKey = \"ssh-ed25519 ...your public key... user@example.com\",\n    });\n\n    // Create a boot volume from an image\n    var bootVolume = new Gcore.CloudVolume(\"boot_volume\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-boot-volume\",\n        Source = \"image\",\n        ImageId = \"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n        Size = 20,\n        TypeName = \"ssd_hiiops\",\n    });\n\n    // Reserve a fixed IP on the private subnet\n    var fixedIp = new Gcore.CloudReservedFixedIp(\"fixed_ip\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Type = \"subnet\",\n        NetworkId = network.Id,\n        SubnetId = subnet.Id,\n    });\n\n    // Create a floating IP and associate it with the fixed IP\n    var floatingIp = new Gcore.CloudFloatingIp(\"floating_ip\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        FixedIpAddress = fixedIp.FixedIpAddress,\n        PortId = fixedIp.PortId,\n    });\n\n    // Create an instance with floating IP for external access\n    var instanceWithFloatingIp = new Gcore.CloudInstance(\"instance_with_floating_ip\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Flavor = \"g1-standard-2-4\",\n        Name = \"my-instance\",\n        SshKeyName = myKey.Name,\n        Volumes = new[]\n        {\n            new Gcore.Inputs.CloudInstanceVolumeArgs\n            {\n                VolumeId = bootVolume.Id,\n            },\n        },\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.CloudInstanceInterfaceArgs\n            {\n                Type = \"reserved_fixed_ip\",\n                PortId = fixedIp.PortId,\n                FloatingIp = new Gcore.Inputs.CloudInstanceInterfaceFloatingIpArgs\n                {\n                    Source = \"existing\",\n                    ExistingFloatingId = floatingIp.Id,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a private network and subnet\n\t\tnetwork, err := gcore.NewCloudNetwork(ctx, \"network\", \u0026gcore.CloudNetworkArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-network\"),\n\t\t\tType:      pulumi.String(\"vxlan\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet, err := gcore.NewCloudNetworkSubnet(ctx, \"subnet\", \u0026gcore.CloudNetworkSubnetArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-subnet\"),\n\t\t\tCidr:      pulumi.String(\"192.168.10.0/24\"),\n\t\t\tNetworkId: network.ID(),\n\t\t\tDnsNameservers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"8.8.4.4\"),\n\t\t\t\tpulumi.String(\"1.1.1.1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create an SSH key for instance access\n\t\tmyKey, err := gcore.NewCloudSshKey(ctx, \"my_key\", \u0026gcore.CloudSshKeyArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-keypair\"),\n\t\t\tPublicKey: pulumi.String(\"ssh-ed25519 ...your public key... user@example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a boot volume from an image\n\t\tbootVolume, err := gcore.NewCloudVolume(ctx, \"boot_volume\", \u0026gcore.CloudVolumeArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-boot-volume\"),\n\t\t\tSource:    pulumi.String(\"image\"),\n\t\t\tImageId:   pulumi.String(\"6dc4e521-0c72-462f-b2d4-306bcf15e227\"),\n\t\t\tSize:      pulumi.Float64(20),\n\t\t\tTypeName:  pulumi.String(\"ssd_hiiops\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Reserve a fixed IP on the private subnet\n\t\tfixedIp, err := gcore.NewCloudReservedFixedIp(ctx, \"fixed_ip\", \u0026gcore.CloudReservedFixedIpArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tType:      pulumi.String(\"subnet\"),\n\t\t\tNetworkId: network.ID(),\n\t\t\tSubnetId:  subnet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a floating IP and associate it with the fixed IP\n\t\tfloatingIp, err := gcore.NewCloudFloatingIp(ctx, \"floating_ip\", \u0026gcore.CloudFloatingIpArgs{\n\t\t\tProjectId:      pulumi.Float64(1),\n\t\t\tRegionId:       pulumi.Float64(1),\n\t\t\tFixedIpAddress: fixedIp.FixedIpAddress,\n\t\t\tPortId:         fixedIp.PortId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create an instance with floating IP for external access\n\t\t_, err = gcore.NewCloudInstance(ctx, \"instance_with_floating_ip\", \u0026gcore.CloudInstanceArgs{\n\t\t\tProjectId:  pulumi.Float64(1),\n\t\t\tRegionId:   pulumi.Float64(1),\n\t\t\tFlavor:     pulumi.String(\"g1-standard-2-4\"),\n\t\t\tName:       pulumi.String(\"my-instance\"),\n\t\t\tSshKeyName: myKey.Name,\n\t\t\tVolumes: gcore.CloudInstanceVolumeArray{\n\t\t\t\t\u0026gcore.CloudInstanceVolumeArgs{\n\t\t\t\t\tVolumeId: bootVolume.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInterfaces: gcore.CloudInstanceInterfaceArray{\n\t\t\t\t\u0026gcore.CloudInstanceInterfaceArgs{\n\t\t\t\t\tType:   pulumi.String(\"reserved_fixed_ip\"),\n\t\t\t\t\tPortId: fixedIp.PortId,\n\t\t\t\t\tFloatingIp: \u0026gcore.CloudInstanceInterfaceFloatingIpArgs{\n\t\t\t\t\t\tSource:             pulumi.String(\"existing\"),\n\t\t\t\t\t\tExistingFloatingId: floatingIp.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudNetwork;\nimport com.pulumi.gcore.CloudNetworkArgs;\nimport com.pulumi.gcore.CloudNetworkSubnet;\nimport com.pulumi.gcore.CloudNetworkSubnetArgs;\nimport com.pulumi.gcore.CloudSshKey;\nimport com.pulumi.gcore.CloudSshKeyArgs;\nimport com.pulumi.gcore.CloudVolume;\nimport com.pulumi.gcore.CloudVolumeArgs;\nimport com.pulumi.gcore.CloudReservedFixedIp;\nimport com.pulumi.gcore.CloudReservedFixedIpArgs;\nimport com.pulumi.gcore.CloudFloatingIp;\nimport com.pulumi.gcore.CloudFloatingIpArgs;\nimport com.pulumi.gcore.CloudInstance;\nimport com.pulumi.gcore.CloudInstanceArgs;\nimport com.pulumi.gcore.inputs.CloudInstanceVolumeArgs;\nimport com.pulumi.gcore.inputs.CloudInstanceInterfaceArgs;\nimport com.pulumi.gcore.inputs.CloudInstanceInterfaceFloatingIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a private network and subnet\n        var network = new CloudNetwork(\"network\", CloudNetworkArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-network\")\n            .type(\"vxlan\")\n            .build());\n\n        var subnet = new CloudNetworkSubnet(\"subnet\", CloudNetworkSubnetArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-subnet\")\n            .cidr(\"192.168.10.0/24\")\n            .networkId(network.id())\n            .dnsNameservers(            \n                \"8.8.4.4\",\n                \"1.1.1.1\")\n            .build());\n\n        // Create an SSH key for instance access\n        var myKey = new CloudSshKey(\"myKey\", CloudSshKeyArgs.builder()\n            .projectId(1.0)\n            .name(\"my-keypair\")\n            .publicKey(\"ssh-ed25519 ...your public key... user@example.com\")\n            .build());\n\n        // Create a boot volume from an image\n        var bootVolume = new CloudVolume(\"bootVolume\", CloudVolumeArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-boot-volume\")\n            .source(\"image\")\n            .imageId(\"6dc4e521-0c72-462f-b2d4-306bcf15e227\")\n            .size(20.0)\n            .typeName(\"ssd_hiiops\")\n            .build());\n\n        // Reserve a fixed IP on the private subnet\n        var fixedIp = new CloudReservedFixedIp(\"fixedIp\", CloudReservedFixedIpArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .type(\"subnet\")\n            .networkId(network.id())\n            .subnetId(subnet.id())\n            .build());\n\n        // Create a floating IP and associate it with the fixed IP\n        var floatingIp = new CloudFloatingIp(\"floatingIp\", CloudFloatingIpArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .fixedIpAddress(fixedIp.fixedIpAddress())\n            .portId(fixedIp.portId())\n            .build());\n\n        // Create an instance with floating IP for external access\n        var instanceWithFloatingIp = new CloudInstance(\"instanceWithFloatingIp\", CloudInstanceArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .flavor(\"g1-standard-2-4\")\n            .name(\"my-instance\")\n            .sshKeyName(myKey.name())\n            .volumes(CloudInstanceVolumeArgs.builder()\n                .volumeId(bootVolume.id())\n                .build())\n            .interfaces(CloudInstanceInterfaceArgs.builder()\n                .type(\"reserved_fixed_ip\")\n                .portId(fixedIp.portId())\n                .floatingIp(CloudInstanceInterfaceFloatingIpArgs.builder()\n                    .source(\"existing\")\n                    .existingFloatingId(floatingIp.id())\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a private network and subnet\n  network:\n    type: gcore:CloudNetwork\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-network\n      type: vxlan\n  subnet:\n    type: gcore:CloudNetworkSubnet\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-subnet\n      cidr: 192.168.10.0/24\n      networkId: ${network.id}\n      dnsNameservers:\n        - 8.8.4.4\n        - 1.1.1.1\n  # Create an SSH key for instance access\n  myKey:\n    type: gcore:CloudSshKey\n    name: my_key\n    properties:\n      projectId: 1\n      name: my-keypair\n      publicKey: ssh-ed25519 ...your public key... user@example.com\n  # Create a boot volume from an image\n  bootVolume:\n    type: gcore:CloudVolume\n    name: boot_volume\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-boot-volume\n      source: image\n      imageId: 6dc4e521-0c72-462f-b2d4-306bcf15e227\n      size: 20\n      typeName: ssd_hiiops\n  # Reserve a fixed IP on the private subnet\n  fixedIp:\n    type: gcore:CloudReservedFixedIp\n    name: fixed_ip\n    properties:\n      projectId: 1\n      regionId: 1\n      type: subnet\n      networkId: ${network.id}\n      subnetId: ${subnet.id}\n  # Create a floating IP and associate it with the fixed IP\n  floatingIp:\n    type: gcore:CloudFloatingIp\n    name: floating_ip\n    properties:\n      projectId: 1\n      regionId: 1\n      fixedIpAddress: ${fixedIp.fixedIpAddress}\n      portId: ${fixedIp.portId}\n  # Create an instance with floating IP for external access\n  instanceWithFloatingIp:\n    type: gcore:CloudInstance\n    name: instance_with_floating_ip\n    properties:\n      projectId: 1\n      regionId: 1\n      flavor: g1-standard-2-4\n      name: my-instance\n      sshKeyName: ${myKey.name}\n      volumes:\n        - volumeId: ${bootVolume.id}\n      interfaces:\n        - type: reserved_fixed_ip\n          portId: ${fixedIp.portId}\n          floatingIp:\n            source: existing\n            existingFloatingId: ${floatingIp.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Instance with reserved public IP\n\nCreate an instance using a pre-allocated reserved fixed IP address.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create an SSH key for instance access\nconst myKey = new gcore.CloudSshKey(\"my_key\", {\n    projectId: 1,\n    name: \"my-keypair\",\n    publicKey: \"ssh-ed25519 ...your public key... user@example.com\",\n});\n// Create a boot volume from an image\nconst bootVolume = new gcore.CloudVolume(\"boot_volume\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-boot-volume\",\n    source: \"image\",\n    imageId: \"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n    size: 20,\n    typeName: \"ssd_hiiops\",\n});\n// Reserve a public IP address\nconst externalFixedIp = new gcore.CloudReservedFixedIp(\"external_fixed_ip\", {\n    projectId: 1,\n    regionId: 1,\n    type: \"external\",\n});\n// Create an instance using the reserved public IP\nconst instanceWithReservedAddress = new gcore.CloudInstance(\"instance_with_reserved_address\", {\n    projectId: 1,\n    regionId: 1,\n    flavor: \"g1-standard-2-4\",\n    name: \"my-instance\",\n    sshKeyName: myKey.name,\n    volumes: [{\n        volumeId: bootVolume.id,\n    }],\n    interfaces: [{\n        type: \"reserved_fixed_ip\",\n        portId: externalFixedIp.portId,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create an SSH key for instance access\nmy_key = gcore.CloudSshKey(\"my_key\",\n    project_id=1,\n    name=\"my-keypair\",\n    public_key=\"ssh-ed25519 ...your public key... user@example.com\")\n# Create a boot volume from an image\nboot_volume = gcore.CloudVolume(\"boot_volume\",\n    project_id=1,\n    region_id=1,\n    name=\"my-boot-volume\",\n    source=\"image\",\n    image_id=\"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n    size=20,\n    type_name=\"ssd_hiiops\")\n# Reserve a public IP address\nexternal_fixed_ip = gcore.CloudReservedFixedIp(\"external_fixed_ip\",\n    project_id=1,\n    region_id=1,\n    type=\"external\")\n# Create an instance using the reserved public IP\ninstance_with_reserved_address = gcore.CloudInstance(\"instance_with_reserved_address\",\n    project_id=1,\n    region_id=1,\n    flavor=\"g1-standard-2-4\",\n    name=\"my-instance\",\n    ssh_key_name=my_key.name,\n    volumes=[{\n        \"volume_id\": boot_volume.id,\n    }],\n    interfaces=[{\n        \"type\": \"reserved_fixed_ip\",\n        \"port_id\": external_fixed_ip.port_id,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create an SSH key for instance access\n    var myKey = new Gcore.CloudSshKey(\"my_key\", new()\n    {\n        ProjectId = 1,\n        Name = \"my-keypair\",\n        PublicKey = \"ssh-ed25519 ...your public key... user@example.com\",\n    });\n\n    // Create a boot volume from an image\n    var bootVolume = new Gcore.CloudVolume(\"boot_volume\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-boot-volume\",\n        Source = \"image\",\n        ImageId = \"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n        Size = 20,\n        TypeName = \"ssd_hiiops\",\n    });\n\n    // Reserve a public IP address\n    var externalFixedIp = new Gcore.CloudReservedFixedIp(\"external_fixed_ip\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Type = \"external\",\n    });\n\n    // Create an instance using the reserved public IP\n    var instanceWithReservedAddress = new Gcore.CloudInstance(\"instance_with_reserved_address\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Flavor = \"g1-standard-2-4\",\n        Name = \"my-instance\",\n        SshKeyName = myKey.Name,\n        Volumes = new[]\n        {\n            new Gcore.Inputs.CloudInstanceVolumeArgs\n            {\n                VolumeId = bootVolume.Id,\n            },\n        },\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.CloudInstanceInterfaceArgs\n            {\n                Type = \"reserved_fixed_ip\",\n                PortId = externalFixedIp.PortId,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create an SSH key for instance access\n\t\tmyKey, err := gcore.NewCloudSshKey(ctx, \"my_key\", \u0026gcore.CloudSshKeyArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-keypair\"),\n\t\t\tPublicKey: pulumi.String(\"ssh-ed25519 ...your public key... user@example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a boot volume from an image\n\t\tbootVolume, err := gcore.NewCloudVolume(ctx, \"boot_volume\", \u0026gcore.CloudVolumeArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-boot-volume\"),\n\t\t\tSource:    pulumi.String(\"image\"),\n\t\t\tImageId:   pulumi.String(\"6dc4e521-0c72-462f-b2d4-306bcf15e227\"),\n\t\t\tSize:      pulumi.Float64(20),\n\t\t\tTypeName:  pulumi.String(\"ssd_hiiops\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Reserve a public IP address\n\t\texternalFixedIp, err := gcore.NewCloudReservedFixedIp(ctx, \"external_fixed_ip\", \u0026gcore.CloudReservedFixedIpArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tType:      pulumi.String(\"external\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create an instance using the reserved public IP\n\t\t_, err = gcore.NewCloudInstance(ctx, \"instance_with_reserved_address\", \u0026gcore.CloudInstanceArgs{\n\t\t\tProjectId:  pulumi.Float64(1),\n\t\t\tRegionId:   pulumi.Float64(1),\n\t\t\tFlavor:     pulumi.String(\"g1-standard-2-4\"),\n\t\t\tName:       pulumi.String(\"my-instance\"),\n\t\t\tSshKeyName: myKey.Name,\n\t\t\tVolumes: gcore.CloudInstanceVolumeArray{\n\t\t\t\t\u0026gcore.CloudInstanceVolumeArgs{\n\t\t\t\t\tVolumeId: bootVolume.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInterfaces: gcore.CloudInstanceInterfaceArray{\n\t\t\t\t\u0026gcore.CloudInstanceInterfaceArgs{\n\t\t\t\t\tType:   pulumi.String(\"reserved_fixed_ip\"),\n\t\t\t\t\tPortId: externalFixedIp.PortId,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudSshKey;\nimport com.pulumi.gcore.CloudSshKeyArgs;\nimport com.pulumi.gcore.CloudVolume;\nimport com.pulumi.gcore.CloudVolumeArgs;\nimport com.pulumi.gcore.CloudReservedFixedIp;\nimport com.pulumi.gcore.CloudReservedFixedIpArgs;\nimport com.pulumi.gcore.CloudInstance;\nimport com.pulumi.gcore.CloudInstanceArgs;\nimport com.pulumi.gcore.inputs.CloudInstanceVolumeArgs;\nimport com.pulumi.gcore.inputs.CloudInstanceInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create an SSH key for instance access\n        var myKey = new CloudSshKey(\"myKey\", CloudSshKeyArgs.builder()\n            .projectId(1.0)\n            .name(\"my-keypair\")\n            .publicKey(\"ssh-ed25519 ...your public key... user@example.com\")\n            .build());\n\n        // Create a boot volume from an image\n        var bootVolume = new CloudVolume(\"bootVolume\", CloudVolumeArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-boot-volume\")\n            .source(\"image\")\n            .imageId(\"6dc4e521-0c72-462f-b2d4-306bcf15e227\")\n            .size(20.0)\n            .typeName(\"ssd_hiiops\")\n            .build());\n\n        // Reserve a public IP address\n        var externalFixedIp = new CloudReservedFixedIp(\"externalFixedIp\", CloudReservedFixedIpArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .type(\"external\")\n            .build());\n\n        // Create an instance using the reserved public IP\n        var instanceWithReservedAddress = new CloudInstance(\"instanceWithReservedAddress\", CloudInstanceArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .flavor(\"g1-standard-2-4\")\n            .name(\"my-instance\")\n            .sshKeyName(myKey.name())\n            .volumes(CloudInstanceVolumeArgs.builder()\n                .volumeId(bootVolume.id())\n                .build())\n            .interfaces(CloudInstanceInterfaceArgs.builder()\n                .type(\"reserved_fixed_ip\")\n                .portId(externalFixedIp.portId())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an SSH key for instance access\n  myKey:\n    type: gcore:CloudSshKey\n    name: my_key\n    properties:\n      projectId: 1\n      name: my-keypair\n      publicKey: ssh-ed25519 ...your public key... user@example.com\n  # Create a boot volume from an image\n  bootVolume:\n    type: gcore:CloudVolume\n    name: boot_volume\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-boot-volume\n      source: image\n      imageId: 6dc4e521-0c72-462f-b2d4-306bcf15e227\n      size: 20\n      typeName: ssd_hiiops\n  # Reserve a public IP address\n  externalFixedIp:\n    type: gcore:CloudReservedFixedIp\n    name: external_fixed_ip\n    properties:\n      projectId: 1\n      regionId: 1\n      type: external\n  # Create an instance using the reserved public IP\n  instanceWithReservedAddress:\n    type: gcore:CloudInstance\n    name: instance_with_reserved_address\n    properties:\n      projectId: 1\n      regionId: 1\n      flavor: g1-standard-2-4\n      name: my-instance\n      sshKeyName: ${myKey.name}\n      volumes:\n        - volumeId: ${bootVolume.id}\n      interfaces:\n        - type: reserved_fixed_ip\n          portId: ${externalFixedIp.portId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Instance with custom security group\n\nCreate an instance with a custom security group allowing SSH, HTTP, and HTTPS inbound traffic.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create an SSH key for instance access\nconst myKey = new gcore.CloudSshKey(\"my_key\", {\n    projectId: 1,\n    name: \"my-keypair\",\n    publicKey: \"ssh-ed25519 ...your public key... user@example.com\",\n});\n// Create a boot volume from an image\nconst bootVolume = new gcore.CloudVolume(\"boot_volume\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-boot-volume\",\n    source: \"image\",\n    imageId: \"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n    size: 20,\n    typeName: \"ssd_hiiops\",\n});\n// Create a security group, then add rules as separate resources\nconst webServer = new gcore.CloudSecurityGroup(\"web_server\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"web-server-only\",\n});\nconst egressLow = new gcore.CloudSecurityGroupRule(\"egress_low\", {\n    projectId: 1,\n    regionId: 1,\n    groupId: webServer.id,\n    direction: \"egress\",\n    ethertype: \"IPv4\",\n    protocol: \"tcp\",\n    portRangeMin: 1,\n    portRangeMax: 24,\n    description: \"Allow outgoing TCP except SMTP\",\n});\nconst egressHigh = new gcore.CloudSecurityGroupRule(\"egress_high\", {\n    projectId: 1,\n    regionId: 1,\n    groupId: webServer.id,\n    direction: \"egress\",\n    ethertype: \"IPv4\",\n    protocol: \"tcp\",\n    portRangeMin: 26,\n    portRangeMax: 65535,\n    description: \"Allow outgoing TCP except SMTP\",\n});\nconst ssh = new gcore.CloudSecurityGroupRule(\"ssh\", {\n    projectId: 1,\n    regionId: 1,\n    groupId: webServer.id,\n    direction: \"ingress\",\n    ethertype: \"IPv4\",\n    protocol: \"tcp\",\n    portRangeMin: 22,\n    portRangeMax: 22,\n    description: \"Allow SSH\",\n});\nconst http = new gcore.CloudSecurityGroupRule(\"http\", {\n    projectId: 1,\n    regionId: 1,\n    groupId: webServer.id,\n    direction: \"ingress\",\n    ethertype: \"IPv4\",\n    protocol: \"tcp\",\n    portRangeMin: 80,\n    portRangeMax: 80,\n    description: \"Allow HTTP\",\n});\nconst https = new gcore.CloudSecurityGroupRule(\"https\", {\n    projectId: 1,\n    regionId: 1,\n    groupId: webServer.id,\n    direction: \"ingress\",\n    ethertype: \"IPv4\",\n    protocol: \"tcp\",\n    portRangeMin: 443,\n    portRangeMax: 443,\n    description: \"Allow HTTPS\",\n});\n// Create an instance with the custom security group\nconst instanceWithCustomSg = new gcore.CloudInstance(\"instance_with_custom_sg\", {\n    projectId: 1,\n    regionId: 1,\n    flavor: \"g1-standard-2-4\",\n    name: \"my-instance\",\n    sshKeyName: myKey.name,\n    volumes: [{\n        volumeId: bootVolume.id,\n    }],\n    interfaces: [{\n        type: \"external\",\n        ipFamily: \"ipv4\",\n        securityGroups: [{\n            id: webServer.id,\n        }],\n    }],\n    securityGroups: [{\n        id: webServer.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create an SSH key for instance access\nmy_key = gcore.CloudSshKey(\"my_key\",\n    project_id=1,\n    name=\"my-keypair\",\n    public_key=\"ssh-ed25519 ...your public key... user@example.com\")\n# Create a boot volume from an image\nboot_volume = gcore.CloudVolume(\"boot_volume\",\n    project_id=1,\n    region_id=1,\n    name=\"my-boot-volume\",\n    source=\"image\",\n    image_id=\"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n    size=20,\n    type_name=\"ssd_hiiops\")\n# Create a security group, then add rules as separate resources\nweb_server = gcore.CloudSecurityGroup(\"web_server\",\n    project_id=1,\n    region_id=1,\n    name=\"web-server-only\")\negress_low = gcore.CloudSecurityGroupRule(\"egress_low\",\n    project_id=1,\n    region_id=1,\n    group_id=web_server.id,\n    direction=\"egress\",\n    ethertype=\"IPv4\",\n    protocol=\"tcp\",\n    port_range_min=1,\n    port_range_max=24,\n    description=\"Allow outgoing TCP except SMTP\")\negress_high = gcore.CloudSecurityGroupRule(\"egress_high\",\n    project_id=1,\n    region_id=1,\n    group_id=web_server.id,\n    direction=\"egress\",\n    ethertype=\"IPv4\",\n    protocol=\"tcp\",\n    port_range_min=26,\n    port_range_max=65535,\n    description=\"Allow outgoing TCP except SMTP\")\nssh = gcore.CloudSecurityGroupRule(\"ssh\",\n    project_id=1,\n    region_id=1,\n    group_id=web_server.id,\n    direction=\"ingress\",\n    ethertype=\"IPv4\",\n    protocol=\"tcp\",\n    port_range_min=22,\n    port_range_max=22,\n    description=\"Allow SSH\")\nhttp = gcore.CloudSecurityGroupRule(\"http\",\n    project_id=1,\n    region_id=1,\n    group_id=web_server.id,\n    direction=\"ingress\",\n    ethertype=\"IPv4\",\n    protocol=\"tcp\",\n    port_range_min=80,\n    port_range_max=80,\n    description=\"Allow HTTP\")\nhttps = gcore.CloudSecurityGroupRule(\"https\",\n    project_id=1,\n    region_id=1,\n    group_id=web_server.id,\n    direction=\"ingress\",\n    ethertype=\"IPv4\",\n    protocol=\"tcp\",\n    port_range_min=443,\n    port_range_max=443,\n    description=\"Allow HTTPS\")\n# Create an instance with the custom security group\ninstance_with_custom_sg = gcore.CloudInstance(\"instance_with_custom_sg\",\n    project_id=1,\n    region_id=1,\n    flavor=\"g1-standard-2-4\",\n    name=\"my-instance\",\n    ssh_key_name=my_key.name,\n    volumes=[{\n        \"volume_id\": boot_volume.id,\n    }],\n    interfaces=[{\n        \"type\": \"external\",\n        \"ip_family\": \"ipv4\",\n        \"security_groups\": [{\n            \"id\": web_server.id,\n        }],\n    }],\n    security_groups=[{\n        \"id\": web_server.id,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create an SSH key for instance access\n    var myKey = new Gcore.CloudSshKey(\"my_key\", new()\n    {\n        ProjectId = 1,\n        Name = \"my-keypair\",\n        PublicKey = \"ssh-ed25519 ...your public key... user@example.com\",\n    });\n\n    // Create a boot volume from an image\n    var bootVolume = new Gcore.CloudVolume(\"boot_volume\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-boot-volume\",\n        Source = \"image\",\n        ImageId = \"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n        Size = 20,\n        TypeName = \"ssd_hiiops\",\n    });\n\n    // Create a security group, then add rules as separate resources\n    var webServer = new Gcore.CloudSecurityGroup(\"web_server\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"web-server-only\",\n    });\n\n    var egressLow = new Gcore.CloudSecurityGroupRule(\"egress_low\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        GroupId = webServer.Id,\n        Direction = \"egress\",\n        Ethertype = \"IPv4\",\n        Protocol = \"tcp\",\n        PortRangeMin = 1,\n        PortRangeMax = 24,\n        Description = \"Allow outgoing TCP except SMTP\",\n    });\n\n    var egressHigh = new Gcore.CloudSecurityGroupRule(\"egress_high\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        GroupId = webServer.Id,\n        Direction = \"egress\",\n        Ethertype = \"IPv4\",\n        Protocol = \"tcp\",\n        PortRangeMin = 26,\n        PortRangeMax = 65535,\n        Description = \"Allow outgoing TCP except SMTP\",\n    });\n\n    var ssh = new Gcore.CloudSecurityGroupRule(\"ssh\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        GroupId = webServer.Id,\n        Direction = \"ingress\",\n        Ethertype = \"IPv4\",\n        Protocol = \"tcp\",\n        PortRangeMin = 22,\n        PortRangeMax = 22,\n        Description = \"Allow SSH\",\n    });\n\n    var http = new Gcore.CloudSecurityGroupRule(\"http\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        GroupId = webServer.Id,\n        Direction = \"ingress\",\n        Ethertype = \"IPv4\",\n        Protocol = \"tcp\",\n        PortRangeMin = 80,\n        PortRangeMax = 80,\n        Description = \"Allow HTTP\",\n    });\n\n    var https = new Gcore.CloudSecurityGroupRule(\"https\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        GroupId = webServer.Id,\n        Direction = \"ingress\",\n        Ethertype = \"IPv4\",\n        Protocol = \"tcp\",\n        PortRangeMin = 443,\n        PortRangeMax = 443,\n        Description = \"Allow HTTPS\",\n    });\n\n    // Create an instance with the custom security group\n    var instanceWithCustomSg = new Gcore.CloudInstance(\"instance_with_custom_sg\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Flavor = \"g1-standard-2-4\",\n        Name = \"my-instance\",\n        SshKeyName = myKey.Name,\n        Volumes = new[]\n        {\n            new Gcore.Inputs.CloudInstanceVolumeArgs\n            {\n                VolumeId = bootVolume.Id,\n            },\n        },\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.CloudInstanceInterfaceArgs\n            {\n                Type = \"external\",\n                IpFamily = \"ipv4\",\n                SecurityGroups = new[]\n                {\n                    new Gcore.Inputs.CloudInstanceInterfaceSecurityGroupArgs\n                    {\n                        Id = webServer.Id,\n                    },\n                },\n            },\n        },\n        SecurityGroups = new[]\n        {\n            new Gcore.Inputs.CloudInstanceSecurityGroupArgs\n            {\n                Id = webServer.Id,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create an SSH key for instance access\n\t\tmyKey, err := gcore.NewCloudSshKey(ctx, \"my_key\", \u0026gcore.CloudSshKeyArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-keypair\"),\n\t\t\tPublicKey: pulumi.String(\"ssh-ed25519 ...your public key... user@example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a boot volume from an image\n\t\tbootVolume, err := gcore.NewCloudVolume(ctx, \"boot_volume\", \u0026gcore.CloudVolumeArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-boot-volume\"),\n\t\t\tSource:    pulumi.String(\"image\"),\n\t\t\tImageId:   pulumi.String(\"6dc4e521-0c72-462f-b2d4-306bcf15e227\"),\n\t\t\tSize:      pulumi.Float64(20),\n\t\t\tTypeName:  pulumi.String(\"ssd_hiiops\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a security group, then add rules as separate resources\n\t\twebServer, err := gcore.NewCloudSecurityGroup(ctx, \"web_server\", \u0026gcore.CloudSecurityGroupArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"web-server-only\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCloudSecurityGroupRule(ctx, \"egress_low\", \u0026gcore.CloudSecurityGroupRuleArgs{\n\t\t\tProjectId:    pulumi.Float64(1),\n\t\t\tRegionId:     pulumi.Float64(1),\n\t\t\tGroupId:      webServer.ID(),\n\t\t\tDirection:    pulumi.String(\"egress\"),\n\t\t\tEthertype:    pulumi.String(\"IPv4\"),\n\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t\tPortRangeMin: pulumi.Float64(1),\n\t\t\tPortRangeMax: pulumi.Float64(24),\n\t\t\tDescription:  pulumi.String(\"Allow outgoing TCP except SMTP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCloudSecurityGroupRule(ctx, \"egress_high\", \u0026gcore.CloudSecurityGroupRuleArgs{\n\t\t\tProjectId:    pulumi.Float64(1),\n\t\t\tRegionId:     pulumi.Float64(1),\n\t\t\tGroupId:      webServer.ID(),\n\t\t\tDirection:    pulumi.String(\"egress\"),\n\t\t\tEthertype:    pulumi.String(\"IPv4\"),\n\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t\tPortRangeMin: pulumi.Float64(26),\n\t\t\tPortRangeMax: pulumi.Float64(65535),\n\t\t\tDescription:  pulumi.String(\"Allow outgoing TCP except SMTP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCloudSecurityGroupRule(ctx, \"ssh\", \u0026gcore.CloudSecurityGroupRuleArgs{\n\t\t\tProjectId:    pulumi.Float64(1),\n\t\t\tRegionId:     pulumi.Float64(1),\n\t\t\tGroupId:      webServer.ID(),\n\t\t\tDirection:    pulumi.String(\"ingress\"),\n\t\t\tEthertype:    pulumi.String(\"IPv4\"),\n\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t\tPortRangeMin: pulumi.Float64(22),\n\t\t\tPortRangeMax: pulumi.Float64(22),\n\t\t\tDescription:  pulumi.String(\"Allow SSH\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCloudSecurityGroupRule(ctx, \"http\", \u0026gcore.CloudSecurityGroupRuleArgs{\n\t\t\tProjectId:    pulumi.Float64(1),\n\t\t\tRegionId:     pulumi.Float64(1),\n\t\t\tGroupId:      webServer.ID(),\n\t\t\tDirection:    pulumi.String(\"ingress\"),\n\t\t\tEthertype:    pulumi.String(\"IPv4\"),\n\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t\tPortRangeMin: pulumi.Float64(80),\n\t\t\tPortRangeMax: pulumi.Float64(80),\n\t\t\tDescription:  pulumi.String(\"Allow HTTP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCloudSecurityGroupRule(ctx, \"https\", \u0026gcore.CloudSecurityGroupRuleArgs{\n\t\t\tProjectId:    pulumi.Float64(1),\n\t\t\tRegionId:     pulumi.Float64(1),\n\t\t\tGroupId:      webServer.ID(),\n\t\t\tDirection:    pulumi.String(\"ingress\"),\n\t\t\tEthertype:    pulumi.String(\"IPv4\"),\n\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t\tPortRangeMin: pulumi.Float64(443),\n\t\t\tPortRangeMax: pulumi.Float64(443),\n\t\t\tDescription:  pulumi.String(\"Allow HTTPS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create an instance with the custom security group\n\t\t_, err = gcore.NewCloudInstance(ctx, \"instance_with_custom_sg\", \u0026gcore.CloudInstanceArgs{\n\t\t\tProjectId:  pulumi.Float64(1),\n\t\t\tRegionId:   pulumi.Float64(1),\n\t\t\tFlavor:     pulumi.String(\"g1-standard-2-4\"),\n\t\t\tName:       pulumi.String(\"my-instance\"),\n\t\t\tSshKeyName: myKey.Name,\n\t\t\tVolumes: gcore.CloudInstanceVolumeArray{\n\t\t\t\t\u0026gcore.CloudInstanceVolumeArgs{\n\t\t\t\t\tVolumeId: bootVolume.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInterfaces: gcore.CloudInstanceInterfaceArray{\n\t\t\t\t\u0026gcore.CloudInstanceInterfaceArgs{\n\t\t\t\t\tType:     pulumi.String(\"external\"),\n\t\t\t\t\tIpFamily: pulumi.String(\"ipv4\"),\n\t\t\t\t\tSecurityGroups: gcore.CloudInstanceInterfaceSecurityGroupArray{\n\t\t\t\t\t\t\u0026gcore.CloudInstanceInterfaceSecurityGroupArgs{\n\t\t\t\t\t\t\tId: webServer.ID(),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tSecurityGroups: gcore.CloudInstanceSecurityGroupArray{\n\t\t\t\t\u0026gcore.CloudInstanceSecurityGroupArgs{\n\t\t\t\t\tId: webServer.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudSshKey;\nimport com.pulumi.gcore.CloudSshKeyArgs;\nimport com.pulumi.gcore.CloudVolume;\nimport com.pulumi.gcore.CloudVolumeArgs;\nimport com.pulumi.gcore.CloudSecurityGroup;\nimport com.pulumi.gcore.CloudSecurityGroupArgs;\nimport com.pulumi.gcore.CloudSecurityGroupRule;\nimport com.pulumi.gcore.CloudSecurityGroupRuleArgs;\nimport com.pulumi.gcore.CloudInstance;\nimport com.pulumi.gcore.CloudInstanceArgs;\nimport com.pulumi.gcore.inputs.CloudInstanceVolumeArgs;\nimport com.pulumi.gcore.inputs.CloudInstanceInterfaceArgs;\nimport com.pulumi.gcore.inputs.CloudInstanceSecurityGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create an SSH key for instance access\n        var myKey = new CloudSshKey(\"myKey\", CloudSshKeyArgs.builder()\n            .projectId(1.0)\n            .name(\"my-keypair\")\n            .publicKey(\"ssh-ed25519 ...your public key... user@example.com\")\n            .build());\n\n        // Create a boot volume from an image\n        var bootVolume = new CloudVolume(\"bootVolume\", CloudVolumeArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-boot-volume\")\n            .source(\"image\")\n            .imageId(\"6dc4e521-0c72-462f-b2d4-306bcf15e227\")\n            .size(20.0)\n            .typeName(\"ssd_hiiops\")\n            .build());\n\n        // Create a security group, then add rules as separate resources\n        var webServer = new CloudSecurityGroup(\"webServer\", CloudSecurityGroupArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"web-server-only\")\n            .build());\n\n        var egressLow = new CloudSecurityGroupRule(\"egressLow\", CloudSecurityGroupRuleArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .groupId(webServer.id())\n            .direction(\"egress\")\n            .ethertype(\"IPv4\")\n            .protocol(\"tcp\")\n            .portRangeMin(1.0)\n            .portRangeMax(24.0)\n            .description(\"Allow outgoing TCP except SMTP\")\n            .build());\n\n        var egressHigh = new CloudSecurityGroupRule(\"egressHigh\", CloudSecurityGroupRuleArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .groupId(webServer.id())\n            .direction(\"egress\")\n            .ethertype(\"IPv4\")\n            .protocol(\"tcp\")\n            .portRangeMin(26.0)\n            .portRangeMax(65535.0)\n            .description(\"Allow outgoing TCP except SMTP\")\n            .build());\n\n        var ssh = new CloudSecurityGroupRule(\"ssh\", CloudSecurityGroupRuleArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .groupId(webServer.id())\n            .direction(\"ingress\")\n            .ethertype(\"IPv4\")\n            .protocol(\"tcp\")\n            .portRangeMin(22.0)\n            .portRangeMax(22.0)\n            .description(\"Allow SSH\")\n            .build());\n\n        var http = new CloudSecurityGroupRule(\"http\", CloudSecurityGroupRuleArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .groupId(webServer.id())\n            .direction(\"ingress\")\n            .ethertype(\"IPv4\")\n            .protocol(\"tcp\")\n            .portRangeMin(80.0)\n            .portRangeMax(80.0)\n            .description(\"Allow HTTP\")\n            .build());\n\n        var https = new CloudSecurityGroupRule(\"https\", CloudSecurityGroupRuleArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .groupId(webServer.id())\n            .direction(\"ingress\")\n            .ethertype(\"IPv4\")\n            .protocol(\"tcp\")\n            .portRangeMin(443.0)\n            .portRangeMax(443.0)\n            .description(\"Allow HTTPS\")\n            .build());\n\n        // Create an instance with the custom security group\n        var instanceWithCustomSg = new CloudInstance(\"instanceWithCustomSg\", CloudInstanceArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .flavor(\"g1-standard-2-4\")\n            .name(\"my-instance\")\n            .sshKeyName(myKey.name())\n            .volumes(CloudInstanceVolumeArgs.builder()\n                .volumeId(bootVolume.id())\n                .build())\n            .interfaces(CloudInstanceInterfaceArgs.builder()\n                .type(\"external\")\n                .ipFamily(\"ipv4\")\n                .securityGroups(CloudInstanceInterfaceSecurityGroupArgs.builder()\n                    .id(webServer.id())\n                    .build())\n                .build())\n            .securityGroups(CloudInstanceSecurityGroupArgs.builder()\n                .id(webServer.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an SSH key for instance access\n  myKey:\n    type: gcore:CloudSshKey\n    name: my_key\n    properties:\n      projectId: 1\n      name: my-keypair\n      publicKey: ssh-ed25519 ...your public key... user@example.com\n  # Create a boot volume from an image\n  bootVolume:\n    type: gcore:CloudVolume\n    name: boot_volume\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-boot-volume\n      source: image\n      imageId: 6dc4e521-0c72-462f-b2d4-306bcf15e227\n      size: 20\n      typeName: ssd_hiiops\n  # Create a security group, then add rules as separate resources\n  webServer:\n    type: gcore:CloudSecurityGroup\n    name: web_server\n    properties:\n      projectId: 1\n      regionId: 1\n      name: web-server-only\n  egressLow:\n    type: gcore:CloudSecurityGroupRule\n    name: egress_low\n    properties:\n      projectId: 1\n      regionId: 1\n      groupId: ${webServer.id}\n      direction: egress\n      ethertype: IPv4\n      protocol: tcp\n      portRangeMin: 1\n      portRangeMax: 24\n      description: Allow outgoing TCP except SMTP\n  egressHigh:\n    type: gcore:CloudSecurityGroupRule\n    name: egress_high\n    properties:\n      projectId: 1\n      regionId: 1\n      groupId: ${webServer.id}\n      direction: egress\n      ethertype: IPv4\n      protocol: tcp\n      portRangeMin: 26\n      portRangeMax: 65535\n      description: Allow outgoing TCP except SMTP\n  ssh:\n    type: gcore:CloudSecurityGroupRule\n    properties:\n      projectId: 1\n      regionId: 1\n      groupId: ${webServer.id}\n      direction: ingress\n      ethertype: IPv4\n      protocol: tcp\n      portRangeMin: 22\n      portRangeMax: 22\n      description: Allow SSH\n  http:\n    type: gcore:CloudSecurityGroupRule\n    properties:\n      projectId: 1\n      regionId: 1\n      groupId: ${webServer.id}\n      direction: ingress\n      ethertype: IPv4\n      protocol: tcp\n      portRangeMin: 80\n      portRangeMax: 80\n      description: Allow HTTP\n  https:\n    type: gcore:CloudSecurityGroupRule\n    properties:\n      projectId: 1\n      regionId: 1\n      groupId: ${webServer.id}\n      direction: ingress\n      ethertype: IPv4\n      protocol: tcp\n      portRangeMin: 443\n      portRangeMax: 443\n      description: Allow HTTPS\n  # Create an instance with the custom security group\n  instanceWithCustomSg:\n    type: gcore:CloudInstance\n    name: instance_with_custom_sg\n    properties:\n      projectId: 1\n      regionId: 1\n      flavor: g1-standard-2-4\n      name: my-instance\n      sshKeyName: ${myKey.name}\n      volumes:\n        - volumeId: ${bootVolume.id}\n      interfaces:\n        - type: external\n          ipFamily: ipv4\n          securityGroups:\n            - id: ${webServer.id}\n      securityGroups:\n        - id: ${webServer.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudInstance:CloudInstance example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003cinstance_id\u003e'\n```\n\n","properties":{"addresses":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceAddresses:CloudInstanceAddresses"}},"description":"Map of \u003cspan pulumi-lang-nodejs=\"`networkName`\" pulumi-lang-dotnet=\"`NetworkName`\" pulumi-lang-go=\"`networkName`\" pulumi-lang-python=\"`network_name`\" pulumi-lang-yaml=\"`networkName`\" pulumi-lang-java=\"`networkName`\"\u003e`network_name`\u003c/span\u003e to list of addresses in that network"},"allowAppPorts":{"type":"boolean","description":"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 if creating the instance from an \u003cspan pulumi-lang-nodejs=\"`apptemplate`\" pulumi-lang-dotnet=\"`Apptemplate`\" pulumi-lang-go=\"`apptemplate`\" pulumi-lang-python=\"`apptemplate`\" pulumi-lang-yaml=\"`apptemplate`\" pulumi-lang-java=\"`apptemplate`\"\u003e`apptemplate`\u003c/span\u003e. This allows application ports in the security group for instances created from a marketplace application template."},"blackholePorts":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceBlackholePort:CloudInstanceBlackholePort"},"description":"IP addresses of the instances that are blackholed by DDoS mitigation system"},"configuration":{"type":"object","additionalProperties":{"type":"string"},"description":"Parameters for the application template if creating the instance from an \u003cspan pulumi-lang-nodejs=\"`apptemplate`\" pulumi-lang-dotnet=\"`Apptemplate`\" pulumi-lang-go=\"`apptemplate`\" pulumi-lang-python=\"`apptemplate`\" pulumi-lang-yaml=\"`apptemplate`\" pulumi-lang-java=\"`apptemplate`\"\u003e`apptemplate`\u003c/span\u003e."},"createdAt":{"type":"string","description":"Datetime when instance was created"},"creatorTaskId":{"type":"string","description":"Task that created this entity"},"ddosProfile":{"$ref":"#/types/gcore:index%2FCloudInstanceDdosProfile:CloudInstanceDdosProfile","description":"Advanced DDoS protection profile. It is always \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e if query parameter `with_ddos=true` is not set."},"fixedIpAssignments":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceFixedIpAssignment:CloudInstanceFixedIpAssignment"},"description":"Fixed IP assigned to instance"},"flavor":{"type":"string","description":"The flavor of the instance.\n"},"instanceDescription":{"type":"string","description":"Instance description"},"instanceIsolation":{"$ref":"#/types/gcore:index%2FCloudInstanceInstanceIsolation:CloudInstanceInstanceIsolation","description":"Instance isolation information"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceInterface:CloudInstanceInterface"},"description":"A list of network interfaces for the instance. You can create one or more interfaces - private, public, or both.\n"},"name":{"type":"string","description":"Instance name."},"nameTemplate":{"type":"string","description":"If you want the instance name to be automatically generated based on IP addresses, you can provide a name template instead of specifying the name manually. The template should include a placeholder that will be replaced during provisioning. Supported placeholders are: `{ip_octets}` (last 3 octets of the IP), `{two_ip_octets}`, and `{one_ip_octet}`."},"passwordWo":{"type":"string","description":"For Linux instances, 'username' and 'password' are used to create a new user. When only 'password' is provided, it is set as the password for the default user of the image. For Windows instances, 'username' cannot be specified. Use the 'password' field to set the password for the 'Admin' user on Windows. Use the 'user_data' field to provide a script to create new users on Windows. The password of the Admin user cannot be updated via 'user_data'."},"passwordWoVersion":{"type":"number","description":"Instance password write-only version. Used to trigger updates of the write-only password field."},"projectId":{"type":"number","description":"Project ID. If not specified, uses GCORE_CLOUD_PROJECT_ID environment variable."},"region":{"type":"string","description":"Region name"},"regionId":{"type":"number","description":"Region ID. If not specified, uses GCORE_CLOUD_REGION_ID environment variable."},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceSecurityGroup:CloudInstanceSecurityGroup"},"description":"Specifies security group UUIDs to be applied to all instance network interfaces."},"servergroupId":{"type":"string","description":"Placement group ID for instance placement policy.\n\nSupported group types:\n- `anti-affinity`: Ensures instances are placed on different hosts for high availability.\n- \u003cspan pulumi-lang-nodejs=\"`affinity`\" pulumi-lang-dotnet=\"`Affinity`\" pulumi-lang-go=\"`affinity`\" pulumi-lang-python=\"`affinity`\" pulumi-lang-yaml=\"`affinity`\" pulumi-lang-java=\"`affinity`\"\u003e`affinity`\u003c/span\u003e: Places instances on the same host for low-latency communication.\n- `soft-anti-affinity`: Tries to place instances on different hosts but allows sharing if needed."},"sshKeyName":{"type":"string","description":"Specifies the name of the SSH keypair, created via the\n[/v1/\u003cspan pulumi-lang-nodejs=\"`sshKeys`\" pulumi-lang-dotnet=\"`SshKeys`\" pulumi-lang-go=\"`sshKeys`\" pulumi-lang-python=\"`ssh_keys`\" pulumi-lang-yaml=\"`sshKeys`\" pulumi-lang-java=\"`sshKeys`\"\u003e`ssh_keys`\u003c/span\u003e endpoint](https://www.terraform.io/docs/api-reference/cloud/ssh-keys/add-or-generate-ssh-key)."},"status":{"type":"string","description":"Instance status\nAvailable values: \"ACTIVE\", \"BUILD\", \"DELETED\", \"ERROR\", \"HARD_REBOOT\", \"MIGRATING\", \"PASSWORD\", \"PAUSED\", \"REBOOT\", \"REBUILD\", \"RESCUE\", \"RESIZE\", \"REVERT_RESIZE\", \"SHELVED\", \"SHELVED_OFFLOADED\", \"SHUTOFF\", \"SOFT_DELETED\", \"SUSPENDED\", \"UNKNOWN\", \"VERIFY_RESIZE\"."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values."},"taskState":{"type":"string","description":"Task state"},"userData":{"type":"string","description":"String in base64 format. For Linux instances, 'user_data' is ignored when 'password' field is provided. For Windows instances, Admin user password is set by 'password' field and cannot be updated via 'user_data'. Examples of the \u003cspan pulumi-lang-nodejs=\"`userData`\" pulumi-lang-dotnet=\"`UserData`\" pulumi-lang-go=\"`userData`\" pulumi-lang-python=\"`user_data`\" pulumi-lang-yaml=\"`userData`\" pulumi-lang-java=\"`userData`\"\u003e`user_data`\u003c/span\u003e: https://cloudinit.readthedocs.io/en/latest/topics/examples.html"},"username":{"type":"string","description":"For Linux instances, 'username' and 'password' are used to create a new user. For Windows instances, 'username' cannot be specified. Use 'password' field to set the password for the 'Admin' user on Windows."},"vmState":{"type":"string","description":"Virtual machine state. Set to 'active' to start the instance or 'stopped' to stop it.\nAvailable values: \"active\", \"stopped\"."},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceVolume:CloudInstanceVolume"},"description":"List of existing volumes to attach to the instance. Create volumes separately using gcore*cloud*volume resource.\n"}},"type":"object","required":["addresses","blackholePorts","createdAt","creatorTaskId","ddosProfile","fixedIpAssignments","flavor","instanceDescription","instanceIsolation","interfaces","name","projectId","region","regionId","status","taskState","vmState","volumes"],"inputProperties":{"allowAppPorts":{"type":"boolean","description":"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 if creating the instance from an \u003cspan pulumi-lang-nodejs=\"`apptemplate`\" pulumi-lang-dotnet=\"`Apptemplate`\" pulumi-lang-go=\"`apptemplate`\" pulumi-lang-python=\"`apptemplate`\" pulumi-lang-yaml=\"`apptemplate`\" pulumi-lang-java=\"`apptemplate`\"\u003e`apptemplate`\u003c/span\u003e. This allows application ports in the security group for instances created from a marketplace application template."},"configuration":{"type":"object","additionalProperties":{"type":"string"},"description":"Parameters for the application template if creating the instance from an \u003cspan pulumi-lang-nodejs=\"`apptemplate`\" pulumi-lang-dotnet=\"`Apptemplate`\" pulumi-lang-go=\"`apptemplate`\" pulumi-lang-python=\"`apptemplate`\" pulumi-lang-yaml=\"`apptemplate`\" pulumi-lang-java=\"`apptemplate`\"\u003e`apptemplate`\u003c/span\u003e."},"flavor":{"type":"string","description":"The flavor of the instance.\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceInterface:CloudInstanceInterface"},"description":"A list of network interfaces for the instance. You can create one or more interfaces - private, public, or both.\n"},"name":{"type":"string","description":"Instance name."},"nameTemplate":{"type":"string","description":"If you want the instance name to be automatically generated based on IP addresses, you can provide a name template instead of specifying the name manually. The template should include a placeholder that will be replaced during provisioning. Supported placeholders are: `{ip_octets}` (last 3 octets of the IP), `{two_ip_octets}`, and `{one_ip_octet}`."},"passwordWo":{"type":"string","description":"For Linux instances, 'username' and 'password' are used to create a new user. When only 'password' is provided, it is set as the password for the default user of the image. For Windows instances, 'username' cannot be specified. Use the 'password' field to set the password for the 'Admin' user on Windows. Use the 'user_data' field to provide a script to create new users on Windows. The password of the Admin user cannot be updated via 'user_data'."},"passwordWoVersion":{"type":"number","description":"Instance password write-only version. Used to trigger updates of the write-only password field."},"projectId":{"type":"number","description":"Project ID. If not specified, uses GCORE_CLOUD_PROJECT_ID environment variable."},"regionId":{"type":"number","description":"Region ID. If not specified, uses GCORE_CLOUD_REGION_ID environment variable."},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceSecurityGroup:CloudInstanceSecurityGroup"},"description":"Specifies security group UUIDs to be applied to all instance network interfaces."},"servergroupId":{"type":"string","description":"Placement group ID for instance placement policy.\n\nSupported group types:\n- `anti-affinity`: Ensures instances are placed on different hosts for high availability.\n- \u003cspan pulumi-lang-nodejs=\"`affinity`\" pulumi-lang-dotnet=\"`Affinity`\" pulumi-lang-go=\"`affinity`\" pulumi-lang-python=\"`affinity`\" pulumi-lang-yaml=\"`affinity`\" pulumi-lang-java=\"`affinity`\"\u003e`affinity`\u003c/span\u003e: Places instances on the same host for low-latency communication.\n- `soft-anti-affinity`: Tries to place instances on different hosts but allows sharing if needed."},"sshKeyName":{"type":"string","description":"Specifies the name of the SSH keypair, created via the\n[/v1/\u003cspan pulumi-lang-nodejs=\"`sshKeys`\" pulumi-lang-dotnet=\"`SshKeys`\" pulumi-lang-go=\"`sshKeys`\" pulumi-lang-python=\"`ssh_keys`\" pulumi-lang-yaml=\"`sshKeys`\" pulumi-lang-java=\"`sshKeys`\"\u003e`ssh_keys`\u003c/span\u003e endpoint](https://www.terraform.io/docs/api-reference/cloud/ssh-keys/add-or-generate-ssh-key)."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values."},"userData":{"type":"string","description":"String in base64 format. For Linux instances, 'user_data' is ignored when 'password' field is provided. For Windows instances, Admin user password is set by 'password' field and cannot be updated via 'user_data'. Examples of the \u003cspan pulumi-lang-nodejs=\"`userData`\" pulumi-lang-dotnet=\"`UserData`\" pulumi-lang-go=\"`userData`\" pulumi-lang-python=\"`user_data`\" pulumi-lang-yaml=\"`userData`\" pulumi-lang-java=\"`userData`\"\u003e`user_data`\u003c/span\u003e: https://cloudinit.readthedocs.io/en/latest/topics/examples.html"},"username":{"type":"string","description":"For Linux instances, 'username' and 'password' are used to create a new user. For Windows instances, 'username' cannot be specified. Use 'password' field to set the password for the 'Admin' user on Windows."},"vmState":{"type":"string","description":"Virtual machine state. Set to 'active' to start the instance or 'stopped' to stop it.\nAvailable values: \"active\", \"stopped\"."},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceVolume:CloudInstanceVolume"},"description":"List of existing volumes to attach to the instance. Create volumes separately using gcore*cloud*volume resource.\n"}},"requiredInputs":["flavor","interfaces","volumes"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudInstance resources.\n","properties":{"addresses":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceAddresses:CloudInstanceAddresses"}},"description":"Map of \u003cspan pulumi-lang-nodejs=\"`networkName`\" pulumi-lang-dotnet=\"`NetworkName`\" pulumi-lang-go=\"`networkName`\" pulumi-lang-python=\"`network_name`\" pulumi-lang-yaml=\"`networkName`\" pulumi-lang-java=\"`networkName`\"\u003e`network_name`\u003c/span\u003e to list of addresses in that network"},"allowAppPorts":{"type":"boolean","description":"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 if creating the instance from an \u003cspan pulumi-lang-nodejs=\"`apptemplate`\" pulumi-lang-dotnet=\"`Apptemplate`\" pulumi-lang-go=\"`apptemplate`\" pulumi-lang-python=\"`apptemplate`\" pulumi-lang-yaml=\"`apptemplate`\" pulumi-lang-java=\"`apptemplate`\"\u003e`apptemplate`\u003c/span\u003e. This allows application ports in the security group for instances created from a marketplace application template."},"blackholePorts":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceBlackholePort:CloudInstanceBlackholePort"},"description":"IP addresses of the instances that are blackholed by DDoS mitigation system"},"configuration":{"type":"object","additionalProperties":{"type":"string"},"description":"Parameters for the application template if creating the instance from an \u003cspan pulumi-lang-nodejs=\"`apptemplate`\" pulumi-lang-dotnet=\"`Apptemplate`\" pulumi-lang-go=\"`apptemplate`\" pulumi-lang-python=\"`apptemplate`\" pulumi-lang-yaml=\"`apptemplate`\" pulumi-lang-java=\"`apptemplate`\"\u003e`apptemplate`\u003c/span\u003e."},"createdAt":{"type":"string","description":"Datetime when instance was created"},"creatorTaskId":{"type":"string","description":"Task that created this entity"},"ddosProfile":{"$ref":"#/types/gcore:index%2FCloudInstanceDdosProfile:CloudInstanceDdosProfile","description":"Advanced DDoS protection profile. It is always \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e if query parameter `with_ddos=true` is not set."},"fixedIpAssignments":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceFixedIpAssignment:CloudInstanceFixedIpAssignment"},"description":"Fixed IP assigned to instance"},"flavor":{"type":"string","description":"The flavor of the instance.\n"},"instanceDescription":{"type":"string","description":"Instance description"},"instanceIsolation":{"$ref":"#/types/gcore:index%2FCloudInstanceInstanceIsolation:CloudInstanceInstanceIsolation","description":"Instance isolation information"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceInterface:CloudInstanceInterface"},"description":"A list of network interfaces for the instance. You can create one or more interfaces - private, public, or both.\n"},"name":{"type":"string","description":"Instance name."},"nameTemplate":{"type":"string","description":"If you want the instance name to be automatically generated based on IP addresses, you can provide a name template instead of specifying the name manually. The template should include a placeholder that will be replaced during provisioning. Supported placeholders are: `{ip_octets}` (last 3 octets of the IP), `{two_ip_octets}`, and `{one_ip_octet}`."},"passwordWo":{"type":"string","description":"For Linux instances, 'username' and 'password' are used to create a new user. When only 'password' is provided, it is set as the password for the default user of the image. For Windows instances, 'username' cannot be specified. Use the 'password' field to set the password for the 'Admin' user on Windows. Use the 'user_data' field to provide a script to create new users on Windows. The password of the Admin user cannot be updated via 'user_data'."},"passwordWoVersion":{"type":"number","description":"Instance password write-only version. Used to trigger updates of the write-only password field."},"projectId":{"type":"number","description":"Project ID. If not specified, uses GCORE_CLOUD_PROJECT_ID environment variable."},"region":{"type":"string","description":"Region name"},"regionId":{"type":"number","description":"Region ID. If not specified, uses GCORE_CLOUD_REGION_ID environment variable."},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceSecurityGroup:CloudInstanceSecurityGroup"},"description":"Specifies security group UUIDs to be applied to all instance network interfaces."},"servergroupId":{"type":"string","description":"Placement group ID for instance placement policy.\n\nSupported group types:\n- `anti-affinity`: Ensures instances are placed on different hosts for high availability.\n- \u003cspan pulumi-lang-nodejs=\"`affinity`\" pulumi-lang-dotnet=\"`Affinity`\" pulumi-lang-go=\"`affinity`\" pulumi-lang-python=\"`affinity`\" pulumi-lang-yaml=\"`affinity`\" pulumi-lang-java=\"`affinity`\"\u003e`affinity`\u003c/span\u003e: Places instances on the same host for low-latency communication.\n- `soft-anti-affinity`: Tries to place instances on different hosts but allows sharing if needed."},"sshKeyName":{"type":"string","description":"Specifies the name of the SSH keypair, created via the\n[/v1/\u003cspan pulumi-lang-nodejs=\"`sshKeys`\" pulumi-lang-dotnet=\"`SshKeys`\" pulumi-lang-go=\"`sshKeys`\" pulumi-lang-python=\"`ssh_keys`\" pulumi-lang-yaml=\"`sshKeys`\" pulumi-lang-java=\"`sshKeys`\"\u003e`ssh_keys`\u003c/span\u003e endpoint](https://www.terraform.io/docs/api-reference/cloud/ssh-keys/add-or-generate-ssh-key)."},"status":{"type":"string","description":"Instance status\nAvailable values: \"ACTIVE\", \"BUILD\", \"DELETED\", \"ERROR\", \"HARD_REBOOT\", \"MIGRATING\", \"PASSWORD\", \"PAUSED\", \"REBOOT\", \"REBUILD\", \"RESCUE\", \"RESIZE\", \"REVERT_RESIZE\", \"SHELVED\", \"SHELVED_OFFLOADED\", \"SHUTOFF\", \"SOFT_DELETED\", \"SUSPENDED\", \"UNKNOWN\", \"VERIFY_RESIZE\"."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values."},"taskState":{"type":"string","description":"Task state"},"userData":{"type":"string","description":"String in base64 format. For Linux instances, 'user_data' is ignored when 'password' field is provided. For Windows instances, Admin user password is set by 'password' field and cannot be updated via 'user_data'. Examples of the \u003cspan pulumi-lang-nodejs=\"`userData`\" pulumi-lang-dotnet=\"`UserData`\" pulumi-lang-go=\"`userData`\" pulumi-lang-python=\"`user_data`\" pulumi-lang-yaml=\"`userData`\" pulumi-lang-java=\"`userData`\"\u003e`user_data`\u003c/span\u003e: https://cloudinit.readthedocs.io/en/latest/topics/examples.html"},"username":{"type":"string","description":"For Linux instances, 'username' and 'password' are used to create a new user. For Windows instances, 'username' cannot be specified. Use 'password' field to set the password for the 'Admin' user on Windows."},"vmState":{"type":"string","description":"Virtual machine state. Set to 'active' to start the instance or 'stopped' to stop it.\nAvailable values: \"active\", \"stopped\"."},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudInstanceVolume:CloudInstanceVolume"},"description":"List of existing volumes to attach to the instance. Create volumes separately using gcore*cloud*volume resource.\n"}},"type":"object"}},"gcore:index/cloudInstanceImage:CloudInstanceImage":{"description":"Instance images are operating system images (public, private, or shared) used to boot cloud instances.\n\n## Example Usage\n\n### Upload custom image from URL\n\nUpload a custom instance image from a publicly accessible URL.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Upload a custom instance image from URL\nconst ubuntu = new gcore.CloudInstanceImage(\"ubuntu\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"ubuntu-22.04-custom\",\n    url: \"https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\",\n    osDistro: \"ubuntu\",\n    osType: \"linux\",\n    osVersion: \"22.04\",\n    sshKey: \"allow\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Upload a custom instance image from URL\nubuntu = gcore.CloudInstanceImage(\"ubuntu\",\n    project_id=1,\n    region_id=1,\n    name=\"ubuntu-22.04-custom\",\n    url=\"https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\",\n    os_distro=\"ubuntu\",\n    os_type=\"linux\",\n    os_version=\"22.04\",\n    ssh_key=\"allow\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Upload a custom instance image from URL\n    var ubuntu = new Gcore.CloudInstanceImage(\"ubuntu\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"ubuntu-22.04-custom\",\n        Url = \"https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\",\n        OsDistro = \"ubuntu\",\n        OsType = \"linux\",\n        OsVersion = \"22.04\",\n        SshKey = \"allow\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Upload a custom instance image from URL\n\t\t_, err := gcore.NewCloudInstanceImage(ctx, \"ubuntu\", \u0026gcore.CloudInstanceImageArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"ubuntu-22.04-custom\"),\n\t\t\tUrl:       pulumi.String(\"https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\"),\n\t\t\tOsDistro:  pulumi.String(\"ubuntu\"),\n\t\t\tOsType:    pulumi.String(\"linux\"),\n\t\t\tOsVersion: pulumi.String(\"22.04\"),\n\t\t\tSshKey:    pulumi.String(\"allow\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudInstanceImage;\nimport com.pulumi.gcore.CloudInstanceImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Upload a custom instance image from URL\n        var ubuntu = new CloudInstanceImage(\"ubuntu\", CloudInstanceImageArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"ubuntu-22.04-custom\")\n            .url(\"https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\")\n            .osDistro(\"ubuntu\")\n            .osType(\"linux\")\n            .osVersion(\"22.04\")\n            .sshKey(\"allow\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Upload a custom instance image from URL\n  ubuntu:\n    type: gcore:CloudInstanceImage\n    properties:\n      projectId: 1\n      regionId: 1\n      name: ubuntu-22.04-custom\n      url: https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img\n      osDistro: ubuntu\n      osType: linux\n      osVersion: '22.04'\n      sshKey: allow\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudInstanceImage:CloudInstanceImage example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003cimage_id\u003e'\n```\n\n","properties":{"architecture":{"type":"string","description":"Image CPU architecture type: \u003cspan pulumi-lang-nodejs=\"`aarch64`\" pulumi-lang-dotnet=\"`Aarch64`\" pulumi-lang-go=\"`aarch64`\" pulumi-lang-python=\"`aarch64`\" pulumi-lang-yaml=\"`aarch64`\" pulumi-lang-java=\"`aarch64`\"\u003e`aarch64`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e\nAvailable values: \"aarch64\", \u003cspan pulumi-lang-nodejs=\"\"x8664\"\" pulumi-lang-dotnet=\"\"X8664\"\" pulumi-lang-go=\"\"x8664\"\" pulumi-lang-python=\"\"x86_64\"\" pulumi-lang-yaml=\"\"x8664\"\" pulumi-lang-java=\"\"x8664\"\"\u003e\"x86_64\"\u003c/span\u003e.\n"},"cowFormat":{"type":"boolean","description":"When True, image cannot be deleted unless all volumes, created from it, are deleted.\n"},"createdAt":{"type":"string","description":"Datetime when the image was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"description":{"type":"string","description":"Image description\n"},"diskFormat":{"type":"string","description":"Disk format\n"},"displayOrder":{"type":"number"},"gpuDriver":{"type":"string","description":"Name of the GPU driver vendor\n"},"gpuDriverType":{"type":"string","description":"Type of the GPU driver\n"},"gpuDriverVersion":{"type":"string","description":"Version of the installed GPU driver\n"},"hwFirmwareType":{"type":"string","description":"Specifies the type of firmware with which to boot the guest.\nAvailable values: \"bios\", \"uefi\".\n"},"hwMachineType":{"type":"string","description":"A virtual chipset type.\nAvailable values: \"pc\", \"q35\".\n"},"isBaremetal":{"type":"boolean","description":"Set to true if the image will be used by bare metal servers. Defaults to false.\n"},"minDisk":{"type":"number","description":"Minimal boot volume required\n"},"minRam":{"type":"number","description":"Minimal VM RAM required\n"},"name":{"type":"string","description":"Image name\n"},"osDistro":{"type":"string","description":"OS Distribution, i.e. Debian, CentOS, Ubuntu, CoreOS etc.\n"},"osType":{"type":"string","description":"The operating system installed on the image.\nAvailable values: \"linux\", \"windows\".\n"},"osVersion":{"type":"string","description":"OS version, i.e. 22.04 (for Ubuntu) or 9.4 for Debian\n"},"projectId":{"type":"number"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number"},"size":{"type":"number","description":"Image size in bytes\n"},"sshKey":{"type":"string","description":"Whether the image supports SSH key or not\nAvailable values: \"allow\", \"deny\", \"required\".\n"},"status":{"type":"string","description":"Image status, i.e. active\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the image was updated\n"},"url":{"type":"string","description":"URL of the image to download.\n"},"visibility":{"type":"string","description":"Image visibility. Globally visible images are public\n"}},"type":"object","required":["architecture","cowFormat","createdAt","creatorTaskId","description","diskFormat","displayOrder","gpuDriver","gpuDriverType","gpuDriverVersion","isBaremetal","minDisk","minRam","name","osType","region","size","sshKey","status","updatedAt","url","visibility"],"inputProperties":{"architecture":{"type":"string","description":"Image CPU architecture type: \u003cspan pulumi-lang-nodejs=\"`aarch64`\" pulumi-lang-dotnet=\"`Aarch64`\" pulumi-lang-go=\"`aarch64`\" pulumi-lang-python=\"`aarch64`\" pulumi-lang-yaml=\"`aarch64`\" pulumi-lang-java=\"`aarch64`\"\u003e`aarch64`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e\nAvailable values: \"aarch64\", \u003cspan pulumi-lang-nodejs=\"\"x8664\"\" pulumi-lang-dotnet=\"\"X8664\"\" pulumi-lang-go=\"\"x8664\"\" pulumi-lang-python=\"\"x86_64\"\" pulumi-lang-yaml=\"\"x8664\"\" pulumi-lang-java=\"\"x8664\"\"\u003e\"x86_64\"\u003c/span\u003e.\n"},"cowFormat":{"type":"boolean","description":"When True, image cannot be deleted unless all volumes, created from it, are deleted.\n"},"hwFirmwareType":{"type":"string","description":"Specifies the type of firmware with which to boot the guest.\nAvailable values: \"bios\", \"uefi\".\n"},"hwMachineType":{"type":"string","description":"A virtual chipset type.\nAvailable values: \"pc\", \"q35\".\n"},"isBaremetal":{"type":"boolean","description":"Set to true if the image will be used by bare metal servers. Defaults to false.\n"},"name":{"type":"string","description":"Image name\n"},"osDistro":{"type":"string","description":"OS Distribution, i.e. Debian, CentOS, Ubuntu, CoreOS etc.\n"},"osType":{"type":"string","description":"The operating system installed on the image.\nAvailable values: \"linux\", \"windows\".\n"},"osVersion":{"type":"string","description":"OS version, i.e. 22.04 (for Ubuntu) or 9.4 for Debian\n"},"projectId":{"type":"number"},"regionId":{"type":"number"},"sshKey":{"type":"string","description":"Whether the image supports SSH key or not\nAvailable values: \"allow\", \"deny\", \"required\".\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"url":{"type":"string","description":"URL of the image to download.\n"}},"requiredInputs":["url"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudInstanceImage resources.\n","properties":{"architecture":{"type":"string","description":"Image CPU architecture type: \u003cspan pulumi-lang-nodejs=\"`aarch64`\" pulumi-lang-dotnet=\"`Aarch64`\" pulumi-lang-go=\"`aarch64`\" pulumi-lang-python=\"`aarch64`\" pulumi-lang-yaml=\"`aarch64`\" pulumi-lang-java=\"`aarch64`\"\u003e`aarch64`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e\nAvailable values: \"aarch64\", \u003cspan pulumi-lang-nodejs=\"\"x8664\"\" pulumi-lang-dotnet=\"\"X8664\"\" pulumi-lang-go=\"\"x8664\"\" pulumi-lang-python=\"\"x86_64\"\" pulumi-lang-yaml=\"\"x8664\"\" pulumi-lang-java=\"\"x8664\"\"\u003e\"x86_64\"\u003c/span\u003e.\n"},"cowFormat":{"type":"boolean","description":"When True, image cannot be deleted unless all volumes, created from it, are deleted.\n"},"createdAt":{"type":"string","description":"Datetime when the image was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"description":{"type":"string","description":"Image description\n"},"diskFormat":{"type":"string","description":"Disk format\n"},"displayOrder":{"type":"number"},"gpuDriver":{"type":"string","description":"Name of the GPU driver vendor\n"},"gpuDriverType":{"type":"string","description":"Type of the GPU driver\n"},"gpuDriverVersion":{"type":"string","description":"Version of the installed GPU driver\n"},"hwFirmwareType":{"type":"string","description":"Specifies the type of firmware with which to boot the guest.\nAvailable values: \"bios\", \"uefi\".\n"},"hwMachineType":{"type":"string","description":"A virtual chipset type.\nAvailable values: \"pc\", \"q35\".\n"},"isBaremetal":{"type":"boolean","description":"Set to true if the image will be used by bare metal servers. Defaults to false.\n"},"minDisk":{"type":"number","description":"Minimal boot volume required\n"},"minRam":{"type":"number","description":"Minimal VM RAM required\n"},"name":{"type":"string","description":"Image name\n"},"osDistro":{"type":"string","description":"OS Distribution, i.e. Debian, CentOS, Ubuntu, CoreOS etc.\n"},"osType":{"type":"string","description":"The operating system installed on the image.\nAvailable values: \"linux\", \"windows\".\n"},"osVersion":{"type":"string","description":"OS version, i.e. 22.04 (for Ubuntu) or 9.4 for Debian\n"},"projectId":{"type":"number"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number"},"size":{"type":"number","description":"Image size in bytes\n"},"sshKey":{"type":"string","description":"Whether the image supports SSH key or not\nAvailable values: \"allow\", \"deny\", \"required\".\n"},"status":{"type":"string","description":"Image status, i.e. active\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the image was updated\n"},"url":{"type":"string","description":"URL of the image to download.\n"},"visibility":{"type":"string","description":"Image visibility. Globally visible images are public\n"}},"type":"object"}},"gcore:index/cloudK8sCluster:CloudK8sCluster":{"description":"Managed Kubernetes clusters with configurable worker node pools, networking, and cluster add-ons.\n\n## Example Usage\n\n### Managed Kubernetes cluster in a private network\n\nCreates a K8s cluster with a single node pool attached to an existing private network and subnet.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst network = new gcore.CloudNetwork(\"network\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-network\",\n});\nconst subnet = new gcore.CloudNetworkSubnet(\"subnet\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-subnet\",\n    cidr: \"192.168.10.0/24\",\n    networkId: network.id,\n});\nconst cluster = new gcore.CloudK8sCluster(\"cluster\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-k8s-cluster\",\n    fixedNetwork: network.id,\n    fixedSubnet: subnet.id,\n    keypair: myKeypair.name,\n    version: \"v1.31.9\",\n    pools: [{\n        name: \"my-k8s-pool\",\n        flavorId: \"g1-standard-2-4\",\n        servergroupPolicy: \"soft-anti-affinity\",\n        minNodeCount: 1,\n        maxNodeCount: 1,\n        bootVolumeSize: 10,\n        bootVolumeType: \"standard\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nnetwork = gcore.CloudNetwork(\"network\",\n    project_id=1,\n    region_id=1,\n    name=\"my-network\")\nsubnet = gcore.CloudNetworkSubnet(\"subnet\",\n    project_id=1,\n    region_id=1,\n    name=\"my-subnet\",\n    cidr=\"192.168.10.0/24\",\n    network_id=network.id)\ncluster = gcore.CloudK8sCluster(\"cluster\",\n    project_id=1,\n    region_id=1,\n    name=\"my-k8s-cluster\",\n    fixed_network=network.id,\n    fixed_subnet=subnet.id,\n    keypair=my_keypair[\"name\"],\n    version=\"v1.31.9\",\n    pools=[{\n        \"name\": \"my-k8s-pool\",\n        \"flavor_id\": \"g1-standard-2-4\",\n        \"servergroup_policy\": \"soft-anti-affinity\",\n        \"min_node_count\": 1,\n        \"max_node_count\": 1,\n        \"boot_volume_size\": 10,\n        \"boot_volume_type\": \"standard\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var network = new Gcore.CloudNetwork(\"network\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-network\",\n    });\n\n    var subnet = new Gcore.CloudNetworkSubnet(\"subnet\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-subnet\",\n        Cidr = \"192.168.10.0/24\",\n        NetworkId = network.Id,\n    });\n\n    var cluster = new Gcore.CloudK8sCluster(\"cluster\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-k8s-cluster\",\n        FixedNetwork = network.Id,\n        FixedSubnet = subnet.Id,\n        Keypair = myKeypair.Name,\n        Version = \"v1.31.9\",\n        Pools = new[]\n        {\n            new Gcore.Inputs.CloudK8sClusterPoolArgs\n            {\n                Name = \"my-k8s-pool\",\n                FlavorId = \"g1-standard-2-4\",\n                ServergroupPolicy = \"soft-anti-affinity\",\n                MinNodeCount = 1,\n                MaxNodeCount = 1,\n                BootVolumeSize = 10,\n                BootVolumeType = \"standard\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork, err := gcore.NewCloudNetwork(ctx, \"network\", \u0026gcore.CloudNetworkArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet, err := gcore.NewCloudNetworkSubnet(ctx, \"subnet\", \u0026gcore.CloudNetworkSubnetArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-subnet\"),\n\t\t\tCidr:      pulumi.String(\"192.168.10.0/24\"),\n\t\t\tNetworkId: network.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCloudK8sCluster(ctx, \"cluster\", \u0026gcore.CloudK8sClusterArgs{\n\t\t\tProjectId:    pulumi.Float64(1),\n\t\t\tRegionId:     pulumi.Float64(1),\n\t\t\tName:         pulumi.String(\"my-k8s-cluster\"),\n\t\t\tFixedNetwork: network.ID(),\n\t\t\tFixedSubnet:  subnet.ID(),\n\t\t\tKeypair:      pulumi.Any(myKeypair.Name),\n\t\t\tVersion:      pulumi.String(\"v1.31.9\"),\n\t\t\tPools: gcore.CloudK8sClusterPoolArray{\n\t\t\t\t\u0026gcore.CloudK8sClusterPoolArgs{\n\t\t\t\t\tName:              pulumi.String(\"my-k8s-pool\"),\n\t\t\t\t\tFlavorId:          pulumi.String(\"g1-standard-2-4\"),\n\t\t\t\t\tServergroupPolicy: pulumi.String(\"soft-anti-affinity\"),\n\t\t\t\t\tMinNodeCount:      pulumi.Float64(1),\n\t\t\t\t\tMaxNodeCount:      pulumi.Float64(1),\n\t\t\t\t\tBootVolumeSize:    pulumi.Float64(10),\n\t\t\t\t\tBootVolumeType:    pulumi.String(\"standard\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudNetwork;\nimport com.pulumi.gcore.CloudNetworkArgs;\nimport com.pulumi.gcore.CloudNetworkSubnet;\nimport com.pulumi.gcore.CloudNetworkSubnetArgs;\nimport com.pulumi.gcore.CloudK8sCluster;\nimport com.pulumi.gcore.CloudK8sClusterArgs;\nimport com.pulumi.gcore.inputs.CloudK8sClusterPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var network = new CloudNetwork(\"network\", CloudNetworkArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-network\")\n            .build());\n\n        var subnet = new CloudNetworkSubnet(\"subnet\", CloudNetworkSubnetArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-subnet\")\n            .cidr(\"192.168.10.0/24\")\n            .networkId(network.id())\n            .build());\n\n        var cluster = new CloudK8sCluster(\"cluster\", CloudK8sClusterArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-k8s-cluster\")\n            .fixedNetwork(network.id())\n            .fixedSubnet(subnet.id())\n            .keypair(myKeypair.name())\n            .version(\"v1.31.9\")\n            .pools(CloudK8sClusterPoolArgs.builder()\n                .name(\"my-k8s-pool\")\n                .flavorId(\"g1-standard-2-4\")\n                .servergroupPolicy(\"soft-anti-affinity\")\n                .minNodeCount(1.0)\n                .maxNodeCount(1.0)\n                .bootVolumeSize(10.0)\n                .bootVolumeType(\"standard\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  network:\n    type: gcore:CloudNetwork\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-network\n  subnet:\n    type: gcore:CloudNetworkSubnet\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-subnet\n      cidr: 192.168.10.0/24\n      networkId: ${network.id}\n  cluster:\n    type: gcore:CloudK8sCluster\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-k8s-cluster\n      fixedNetwork: ${network.id}\n      fixedSubnet: ${subnet.id}\n      keypair: ${myKeypair.name}\n      version: v1.31.9\n      pools:\n        - name: my-k8s-pool\n          flavorId: g1-standard-2-4\n          servergroupPolicy: soft-anti-affinity\n          minNodeCount: 1\n          maxNodeCount: 1\n          bootVolumeSize: 10\n          bootVolumeType: standard\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Managed Kubernetes cluster with VAST file share integration\n\nCreates a K8s cluster with Cilium CNI and VAST NFS CSI enabled for shared storage.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst vast = new gcore.CloudFileShare(\"vast\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"tf-file-share-vast\",\n    size: 10,\n    typeName: \"vast\",\n    protocol: \"NFS\",\n    shareSettings: {\n        allowedCharacters: \"LCD\",\n        pathLength: \"LCD\",\n        rootSquash: true,\n    },\n});\nconst network = new gcore.CloudNetwork(\"network\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-network\",\n});\nconst subnet = new gcore.CloudNetworkSubnet(\"subnet\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-subnet\",\n    cidr: \"192.168.10.0/24\",\n    networkId: network.id,\n});\nconst cluster = new gcore.CloudK8sCluster(\"cluster\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-k8s-cluster\",\n    fixedNetwork: network.id,\n    fixedSubnet: subnet.id,\n    keypair: myKeypair.name,\n    version: \"v1.33.3\",\n    cni: {\n        cloudK8sClusterProvider: \"cilium\",\n    },\n    csi: {\n        nfs: {\n            vastEnabled: true,\n        },\n    },\n    pools: [{\n        name: \"gpu-1\",\n        flavorId: \"bm3-ai-ndp-1xlarge-h100-80-8\",\n        isPublicIpv4: false,\n        minNodeCount: 1,\n        maxNodeCount: 1,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nvast = gcore.CloudFileShare(\"vast\",\n    project_id=1,\n    region_id=1,\n    name=\"tf-file-share-vast\",\n    size=10,\n    type_name=\"vast\",\n    protocol=\"NFS\",\n    share_settings={\n        \"allowed_characters\": \"LCD\",\n        \"path_length\": \"LCD\",\n        \"root_squash\": True,\n    })\nnetwork = gcore.CloudNetwork(\"network\",\n    project_id=1,\n    region_id=1,\n    name=\"my-network\")\nsubnet = gcore.CloudNetworkSubnet(\"subnet\",\n    project_id=1,\n    region_id=1,\n    name=\"my-subnet\",\n    cidr=\"192.168.10.0/24\",\n    network_id=network.id)\ncluster = gcore.CloudK8sCluster(\"cluster\",\n    project_id=1,\n    region_id=1,\n    name=\"my-k8s-cluster\",\n    fixed_network=network.id,\n    fixed_subnet=subnet.id,\n    keypair=my_keypair[\"name\"],\n    version=\"v1.33.3\",\n    cni={\n        \"cloud_k8s_cluster_provider\": \"cilium\",\n    },\n    csi={\n        \"nfs\": {\n            \"vast_enabled\": True,\n        },\n    },\n    pools=[{\n        \"name\": \"gpu-1\",\n        \"flavor_id\": \"bm3-ai-ndp-1xlarge-h100-80-8\",\n        \"is_public_ipv4\": False,\n        \"min_node_count\": 1,\n        \"max_node_count\": 1,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var vast = new Gcore.CloudFileShare(\"vast\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"tf-file-share-vast\",\n        Size = 10,\n        TypeName = \"vast\",\n        Protocol = \"NFS\",\n        ShareSettings = new Gcore.Inputs.CloudFileShareShareSettingsArgs\n        {\n            AllowedCharacters = \"LCD\",\n            PathLength = \"LCD\",\n            RootSquash = true,\n        },\n    });\n\n    var network = new Gcore.CloudNetwork(\"network\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-network\",\n    });\n\n    var subnet = new Gcore.CloudNetworkSubnet(\"subnet\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-subnet\",\n        Cidr = \"192.168.10.0/24\",\n        NetworkId = network.Id,\n    });\n\n    var cluster = new Gcore.CloudK8sCluster(\"cluster\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-k8s-cluster\",\n        FixedNetwork = network.Id,\n        FixedSubnet = subnet.Id,\n        Keypair = myKeypair.Name,\n        Version = \"v1.33.3\",\n        Cni = new Gcore.Inputs.CloudK8sClusterCniArgs\n        {\n            CloudK8sClusterProvider = \"cilium\",\n        },\n        Csi = new Gcore.Inputs.CloudK8sClusterCsiArgs\n        {\n            Nfs = new Gcore.Inputs.CloudK8sClusterCsiNfsArgs\n            {\n                VastEnabled = true,\n            },\n        },\n        Pools = new[]\n        {\n            new Gcore.Inputs.CloudK8sClusterPoolArgs\n            {\n                Name = \"gpu-1\",\n                FlavorId = \"bm3-ai-ndp-1xlarge-h100-80-8\",\n                IsPublicIpv4 = false,\n                MinNodeCount = 1,\n                MaxNodeCount = 1,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.NewCloudFileShare(ctx, \"vast\", \u0026gcore.CloudFileShareArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"tf-file-share-vast\"),\n\t\t\tSize:      pulumi.Float64(10),\n\t\t\tTypeName:  pulumi.String(\"vast\"),\n\t\t\tProtocol:  pulumi.String(\"NFS\"),\n\t\t\tShareSettings: \u0026gcore.CloudFileShareShareSettingsArgs{\n\t\t\t\tAllowedCharacters: pulumi.String(\"LCD\"),\n\t\t\t\tPathLength:        pulumi.String(\"LCD\"),\n\t\t\t\tRootSquash:        pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork, err := gcore.NewCloudNetwork(ctx, \"network\", \u0026gcore.CloudNetworkArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet, err := gcore.NewCloudNetworkSubnet(ctx, \"subnet\", \u0026gcore.CloudNetworkSubnetArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-subnet\"),\n\t\t\tCidr:      pulumi.String(\"192.168.10.0/24\"),\n\t\t\tNetworkId: network.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCloudK8sCluster(ctx, \"cluster\", \u0026gcore.CloudK8sClusterArgs{\n\t\t\tProjectId:    pulumi.Float64(1),\n\t\t\tRegionId:     pulumi.Float64(1),\n\t\t\tName:         pulumi.String(\"my-k8s-cluster\"),\n\t\t\tFixedNetwork: network.ID(),\n\t\t\tFixedSubnet:  subnet.ID(),\n\t\t\tKeypair:      pulumi.Any(myKeypair.Name),\n\t\t\tVersion:      pulumi.String(\"v1.33.3\"),\n\t\t\tCni: \u0026gcore.CloudK8sClusterCniArgs{\n\t\t\t\tCloudK8sClusterProvider: pulumi.String(\"cilium\"),\n\t\t\t},\n\t\t\tCsi: \u0026gcore.CloudK8sClusterCsiArgs{\n\t\t\t\tNfs: \u0026gcore.CloudK8sClusterCsiNfsArgs{\n\t\t\t\t\tVastEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPools: gcore.CloudK8sClusterPoolArray{\n\t\t\t\t\u0026gcore.CloudK8sClusterPoolArgs{\n\t\t\t\t\tName:         pulumi.String(\"gpu-1\"),\n\t\t\t\t\tFlavorId:     pulumi.String(\"bm3-ai-ndp-1xlarge-h100-80-8\"),\n\t\t\t\t\tIsPublicIpv4: pulumi.Bool(false),\n\t\t\t\t\tMinNodeCount: pulumi.Float64(1),\n\t\t\t\t\tMaxNodeCount: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudFileShare;\nimport com.pulumi.gcore.CloudFileShareArgs;\nimport com.pulumi.gcore.inputs.CloudFileShareShareSettingsArgs;\nimport com.pulumi.gcore.CloudNetwork;\nimport com.pulumi.gcore.CloudNetworkArgs;\nimport com.pulumi.gcore.CloudNetworkSubnet;\nimport com.pulumi.gcore.CloudNetworkSubnetArgs;\nimport com.pulumi.gcore.CloudK8sCluster;\nimport com.pulumi.gcore.CloudK8sClusterArgs;\nimport com.pulumi.gcore.inputs.CloudK8sClusterCniArgs;\nimport com.pulumi.gcore.inputs.CloudK8sClusterCsiArgs;\nimport com.pulumi.gcore.inputs.CloudK8sClusterCsiNfsArgs;\nimport com.pulumi.gcore.inputs.CloudK8sClusterPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vast = new CloudFileShare(\"vast\", CloudFileShareArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"tf-file-share-vast\")\n            .size(10.0)\n            .typeName(\"vast\")\n            .protocol(\"NFS\")\n            .shareSettings(CloudFileShareShareSettingsArgs.builder()\n                .allowedCharacters(\"LCD\")\n                .pathLength(\"LCD\")\n                .rootSquash(true)\n                .build())\n            .build());\n\n        var network = new CloudNetwork(\"network\", CloudNetworkArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-network\")\n            .build());\n\n        var subnet = new CloudNetworkSubnet(\"subnet\", CloudNetworkSubnetArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-subnet\")\n            .cidr(\"192.168.10.0/24\")\n            .networkId(network.id())\n            .build());\n\n        var cluster = new CloudK8sCluster(\"cluster\", CloudK8sClusterArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-k8s-cluster\")\n            .fixedNetwork(network.id())\n            .fixedSubnet(subnet.id())\n            .keypair(myKeypair.name())\n            .version(\"v1.33.3\")\n            .cni(CloudK8sClusterCniArgs.builder()\n                .cloudK8sClusterProvider(\"cilium\")\n                .build())\n            .csi(CloudK8sClusterCsiArgs.builder()\n                .nfs(CloudK8sClusterCsiNfsArgs.builder()\n                    .vastEnabled(true)\n                    .build())\n                .build())\n            .pools(CloudK8sClusterPoolArgs.builder()\n                .name(\"gpu-1\")\n                .flavorId(\"bm3-ai-ndp-1xlarge-h100-80-8\")\n                .isPublicIpv4(false)\n                .minNodeCount(1.0)\n                .maxNodeCount(1.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vast:\n    type: gcore:CloudFileShare\n    properties:\n      projectId: 1\n      regionId: 1\n      name: tf-file-share-vast\n      size: 10\n      typeName: vast\n      protocol: NFS\n      shareSettings:\n        allowedCharacters: LCD\n        pathLength: LCD\n        rootSquash: true\n  network:\n    type: gcore:CloudNetwork\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-network\n  subnet:\n    type: gcore:CloudNetworkSubnet\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-subnet\n      cidr: 192.168.10.0/24\n      networkId: ${network.id}\n  cluster:\n    type: gcore:CloudK8sCluster\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-k8s-cluster\n      fixedNetwork: ${network.id}\n      fixedSubnet: ${subnet.id}\n      keypair: ${myKeypair.name}\n      version: v1.33.3\n      cni:\n        cloudK8sClusterProvider: cilium\n      csi:\n        nfs:\n          vastEnabled: true\n      pools:\n        - name: gpu-1\n          flavorId: bm3-ai-ndp-1xlarge-h100-80-8\n          isPublicIpv4: false\n          minNodeCount: 1\n          maxNodeCount: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudK8sCluster:CloudK8sCluster example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003ccluster_name\u003e'\n```\n\n","properties":{"addOns":{"$ref":"#/types/gcore:index%2FCloudK8sClusterAddOns:CloudK8sClusterAddOns","description":"Cluster add-ons configuration\n"},"authentication":{"$ref":"#/types/gcore:index%2FCloudK8sClusterAuthentication:CloudK8sClusterAuthentication","description":"Authentication settings\n"},"autoscalerConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"Cluster autoscaler configuration.\n"},"cni":{"$ref":"#/types/gcore:index%2FCloudK8sClusterCni:CloudK8sClusterCni","description":"Cluster CNI settings"},"createdAt":{"type":"string","description":"Function creation date"},"creatorTaskId":{"type":"string","description":"Task that created this entity"},"csi":{"$ref":"#/types/gcore:index%2FCloudK8sClusterCsi:CloudK8sClusterCsi","description":"Container Storage Interface (CSI) driver settings"},"fixedNetwork":{"type":"string","description":"The network of the cluster"},"fixedSubnet":{"type":"string","description":"The subnet of the cluster"},"isIpv6":{"type":"boolean","description":"Enable public v6 address"},"isPublic":{"type":"boolean","description":"Cluster is public"},"keypair":{"type":"string","description":"The keypair of the cluster\n"},"logging":{"$ref":"#/types/gcore:index%2FCloudK8sClusterLogging:CloudK8sClusterLogging","description":"Logging configuration"},"name":{"type":"string","description":"The name of the cluster\n"},"podsIpPool":{"type":"string","description":"The IP pool for the pods"},"podsIpv6Pool":{"type":"string","description":"The IPv6 pool for the pods"},"pools":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudK8sClusterPool:CloudK8sClusterPool"},"description":"The pools of the cluster\n"},"projectId":{"type":"number","description":"Project ID"},"regionId":{"type":"number","description":"Region ID"},"servicesIpPool":{"type":"string","description":"The IP pool for the services"},"servicesIpv6Pool":{"type":"string","description":"The IPv6 pool for the services"},"status":{"type":"string","description":"Status\nAvailable values: \"Deleting\", \"Provisioned\", \"Provisioning\"."},"version":{"type":"string","description":"The version of the k8s cluster\n"}},"type":"object","required":["addOns","authentication","autoscalerConfig","cni","createdAt","creatorTaskId","csi","fixedNetwork","fixedSubnet","isIpv6","isPublic","keypair","logging","name","podsIpPool","podsIpv6Pool","pools","servicesIpPool","servicesIpv6Pool","status","version"],"inputProperties":{"addOns":{"$ref":"#/types/gcore:index%2FCloudK8sClusterAddOns:CloudK8sClusterAddOns","description":"Cluster add-ons configuration\n"},"authentication":{"$ref":"#/types/gcore:index%2FCloudK8sClusterAuthentication:CloudK8sClusterAuthentication","description":"Authentication settings\n"},"autoscalerConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"Cluster autoscaler configuration.\n"},"cni":{"$ref":"#/types/gcore:index%2FCloudK8sClusterCni:CloudK8sClusterCni","description":"Cluster CNI settings"},"csi":{"$ref":"#/types/gcore:index%2FCloudK8sClusterCsi:CloudK8sClusterCsi","description":"Container Storage Interface (CSI) driver settings"},"fixedNetwork":{"type":"string","description":"The network of the cluster"},"fixedSubnet":{"type":"string","description":"The subnet of the cluster"},"isIpv6":{"type":"boolean","description":"Enable public v6 address"},"keypair":{"type":"string","description":"The keypair of the cluster\n"},"logging":{"$ref":"#/types/gcore:index%2FCloudK8sClusterLogging:CloudK8sClusterLogging","description":"Logging configuration"},"name":{"type":"string","description":"The name of the cluster\n"},"podsIpPool":{"type":"string","description":"The IP pool for the pods"},"podsIpv6Pool":{"type":"string","description":"The IPv6 pool for the pods"},"pools":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudK8sClusterPool:CloudK8sClusterPool"},"description":"The pools of the cluster\n"},"projectId":{"type":"number","description":"Project ID"},"regionId":{"type":"number","description":"Region ID"},"servicesIpPool":{"type":"string","description":"The IP pool for the services"},"servicesIpv6Pool":{"type":"string","description":"The IPv6 pool for the services"},"version":{"type":"string","description":"The version of the k8s cluster\n"}},"requiredInputs":["keypair","pools","version"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudK8sCluster resources.\n","properties":{"addOns":{"$ref":"#/types/gcore:index%2FCloudK8sClusterAddOns:CloudK8sClusterAddOns","description":"Cluster add-ons configuration\n"},"authentication":{"$ref":"#/types/gcore:index%2FCloudK8sClusterAuthentication:CloudK8sClusterAuthentication","description":"Authentication settings\n"},"autoscalerConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"Cluster autoscaler configuration.\n"},"cni":{"$ref":"#/types/gcore:index%2FCloudK8sClusterCni:CloudK8sClusterCni","description":"Cluster CNI settings"},"createdAt":{"type":"string","description":"Function creation date"},"creatorTaskId":{"type":"string","description":"Task that created this entity"},"csi":{"$ref":"#/types/gcore:index%2FCloudK8sClusterCsi:CloudK8sClusterCsi","description":"Container Storage Interface (CSI) driver settings"},"fixedNetwork":{"type":"string","description":"The network of the cluster"},"fixedSubnet":{"type":"string","description":"The subnet of the cluster"},"isIpv6":{"type":"boolean","description":"Enable public v6 address"},"isPublic":{"type":"boolean","description":"Cluster is public"},"keypair":{"type":"string","description":"The keypair of the cluster\n"},"logging":{"$ref":"#/types/gcore:index%2FCloudK8sClusterLogging:CloudK8sClusterLogging","description":"Logging configuration"},"name":{"type":"string","description":"The name of the cluster\n"},"podsIpPool":{"type":"string","description":"The IP pool for the pods"},"podsIpv6Pool":{"type":"string","description":"The IPv6 pool for the pods"},"pools":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudK8sClusterPool:CloudK8sClusterPool"},"description":"The pools of the cluster\n"},"projectId":{"type":"number","description":"Project ID"},"regionId":{"type":"number","description":"Region ID"},"servicesIpPool":{"type":"string","description":"The IP pool for the services"},"servicesIpv6Pool":{"type":"string","description":"The IPv6 pool for the services"},"status":{"type":"string","description":"Status\nAvailable values: \"Deleting\", \"Provisioned\", \"Provisioning\"."},"version":{"type":"string","description":"The version of the k8s cluster\n"}},"type":"object"}},"gcore:index/cloudLoadBalancer:CloudLoadBalancer":{"description":"Load balancers distribute incoming traffic across multiple instances with support for listeners, pools, and health monitoring.\n\n## Example Usage\n\n### Public load balancer\n\nCreates a public load balancer with a public VIP address.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst publicLb = new gcore.CloudLoadBalancer(\"public_lb\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"My first public load balancer\",\n    flavor: \"lb1-1-2\",\n    tags: {\n        managed_by: \"terraform\",\n    },\n});\nexport const publicLbIp = publicLb.vipAddress;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npublic_lb = gcore.CloudLoadBalancer(\"public_lb\",\n    project_id=1,\n    region_id=1,\n    name=\"My first public load balancer\",\n    flavor=\"lb1-1-2\",\n    tags={\n        \"managed_by\": \"terraform\",\n    })\npulumi.export(\"publicLbIp\", public_lb.vip_address)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var publicLb = new Gcore.CloudLoadBalancer(\"public_lb\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"My first public load balancer\",\n        Flavor = \"lb1-1-2\",\n        Tags = \n        {\n            { \"managed_by\", \"terraform\" },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"publicLbIp\"] = publicLb.VipAddress,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpublicLb, err := gcore.NewCloudLoadBalancer(ctx, \"public_lb\", \u0026gcore.CloudLoadBalancerArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"My first public load balancer\"),\n\t\t\tFlavor:    pulumi.String(\"lb1-1-2\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"managed_by\": pulumi.String(\"terraform\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"publicLbIp\", publicLb.VipAddress)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudLoadBalancer;\nimport com.pulumi.gcore.CloudLoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var publicLb = new CloudLoadBalancer(\"publicLb\", CloudLoadBalancerArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"My first public load balancer\")\n            .flavor(\"lb1-1-2\")\n            .tags(Map.of(\"managed_by\", \"terraform\"))\n            .build());\n\n        ctx.export(\"publicLbIp\", publicLb.vipAddress());\n    }\n}\n```\n```yaml\nresources:\n  publicLb:\n    type: gcore:CloudLoadBalancer\n    name: public_lb\n    properties:\n      projectId: 1\n      regionId: 1\n      name: My first public load balancer\n      flavor: lb1-1-2\n      tags:\n        managed_by: terraform\noutputs:\n  publicLbIp: ${publicLb.vipAddress}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Public load balancer with reserved fixed IP\n\nAttaches a pre-allocated reserved fixed IP so the VIP address survives destroy/recreate cycles.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nexport = async () =\u003e {\n    // After destroying the load balancer, you can attach the Reserved Fixed IP to another load balancer or instance\n    const publicLbFixedIp = new gcore.CloudReservedFixedIp(\"public_lb_fixed_ip\", {\n        projectId: 1,\n        regionId: 1,\n        isVip: false,\n        type: \"external\",\n    });\n    const publicLbWithFixedIp = new gcore.CloudLoadBalancer(\"public_lb_with_fixed_ip\", {\n        projectId: 1,\n        regionId: 1,\n        name: \"My first public load balancer with reserved fixed ip\",\n        flavor: \"lb1-1-2\",\n        vipPortId: publicLbFixedIp.portId,\n    });\n    return {\n        publicLbWithFixedIp: publicLbWithFixedIp.vipAddress,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# After destroying the load balancer, you can attach the Reserved Fixed IP to another load balancer or instance\npublic_lb_fixed_ip = gcore.CloudReservedFixedIp(\"public_lb_fixed_ip\",\n    project_id=1,\n    region_id=1,\n    is_vip=False,\n    type=\"external\")\npublic_lb_with_fixed_ip = gcore.CloudLoadBalancer(\"public_lb_with_fixed_ip\",\n    project_id=1,\n    region_id=1,\n    name=\"My first public load balancer with reserved fixed ip\",\n    flavor=\"lb1-1-2\",\n    vip_port_id=public_lb_fixed_ip.port_id)\npulumi.export(\"publicLbWithFixedIp\", public_lb_with_fixed_ip.vip_address)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // After destroying the load balancer, you can attach the Reserved Fixed IP to another load balancer or instance\n    var publicLbFixedIp = new Gcore.CloudReservedFixedIp(\"public_lb_fixed_ip\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        IsVip = false,\n        Type = \"external\",\n    });\n\n    var publicLbWithFixedIp = new Gcore.CloudLoadBalancer(\"public_lb_with_fixed_ip\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"My first public load balancer with reserved fixed ip\",\n        Flavor = \"lb1-1-2\",\n        VipPortId = publicLbFixedIp.PortId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"publicLbWithFixedIp\"] = publicLbWithFixedIp.VipAddress,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// After destroying the load balancer, you can attach the Reserved Fixed IP to another load balancer or instance\n\t\tpublicLbFixedIp, err := gcore.NewCloudReservedFixedIp(ctx, \"public_lb_fixed_ip\", \u0026gcore.CloudReservedFixedIpArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tIsVip:     pulumi.Bool(false),\n\t\t\tType:      pulumi.String(\"external\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpublicLbWithFixedIp, err := gcore.NewCloudLoadBalancer(ctx, \"public_lb_with_fixed_ip\", \u0026gcore.CloudLoadBalancerArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"My first public load balancer with reserved fixed ip\"),\n\t\t\tFlavor:    pulumi.String(\"lb1-1-2\"),\n\t\t\tVipPortId: publicLbFixedIp.PortId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"publicLbWithFixedIp\", publicLbWithFixedIp.VipAddress)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudReservedFixedIp;\nimport com.pulumi.gcore.CloudReservedFixedIpArgs;\nimport com.pulumi.gcore.CloudLoadBalancer;\nimport com.pulumi.gcore.CloudLoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // After destroying the load balancer, you can attach the Reserved Fixed IP to another load balancer or instance\n        var publicLbFixedIp = new CloudReservedFixedIp(\"publicLbFixedIp\", CloudReservedFixedIpArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .isVip(false)\n            .type(\"external\")\n            .build());\n\n        var publicLbWithFixedIp = new CloudLoadBalancer(\"publicLbWithFixedIp\", CloudLoadBalancerArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"My first public load balancer with reserved fixed ip\")\n            .flavor(\"lb1-1-2\")\n            .vipPortId(publicLbFixedIp.portId())\n            .build());\n\n        ctx.export(\"publicLbWithFixedIp\", publicLbWithFixedIp.vipAddress());\n    }\n}\n```\n```yaml\nresources:\n  # After destroying the load balancer, you can attach the Reserved Fixed IP to another load balancer or instance\n  publicLbFixedIp:\n    type: gcore:CloudReservedFixedIp\n    name: public_lb_fixed_ip\n    properties:\n      projectId: 1\n      regionId: 1\n      isVip: false\n      type: external\n  publicLbWithFixedIp:\n    type: gcore:CloudLoadBalancer\n    name: public_lb_with_fixed_ip\n    properties:\n      projectId: 1\n      regionId: 1\n      name: My first public load balancer with reserved fixed ip\n      flavor: lb1-1-2\n      vipPortId: ${publicLbFixedIp.portId}\noutputs:\n  publicLbWithFixedIp: ${publicLbWithFixedIp.vipAddress}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Private load balancer\n\nCreates a load balancer on a private network with no public IP.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst privateNetwork = new gcore.CloudNetwork(\"private_network\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-private-network\",\n});\nconst privateSubnet = new gcore.CloudNetworkSubnet(\"private_subnet\", {\n    projectId: 1,\n    regionId: 1,\n    cidr: \"10.0.0.0/24\",\n    name: \"my-private-network-subnet\",\n    networkId: privateNetwork.id,\n});\nconst privateLb = new gcore.CloudLoadBalancer(\"private_lb\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"My first private load balancer\",\n    flavor: \"lb1-1-2\",\n    vipNetworkId: privateNetwork.id,\n    vipSubnetId: privateSubnet.id,\n});\nexport const privateLbIp = privateLb.vipAddress;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nprivate_network = gcore.CloudNetwork(\"private_network\",\n    project_id=1,\n    region_id=1,\n    name=\"my-private-network\")\nprivate_subnet = gcore.CloudNetworkSubnet(\"private_subnet\",\n    project_id=1,\n    region_id=1,\n    cidr=\"10.0.0.0/24\",\n    name=\"my-private-network-subnet\",\n    network_id=private_network.id)\nprivate_lb = gcore.CloudLoadBalancer(\"private_lb\",\n    project_id=1,\n    region_id=1,\n    name=\"My first private load balancer\",\n    flavor=\"lb1-1-2\",\n    vip_network_id=private_network.id,\n    vip_subnet_id=private_subnet.id)\npulumi.export(\"privateLbIp\", private_lb.vip_address)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var privateNetwork = new Gcore.CloudNetwork(\"private_network\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-private-network\",\n    });\n\n    var privateSubnet = new Gcore.CloudNetworkSubnet(\"private_subnet\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Cidr = \"10.0.0.0/24\",\n        Name = \"my-private-network-subnet\",\n        NetworkId = privateNetwork.Id,\n    });\n\n    var privateLb = new Gcore.CloudLoadBalancer(\"private_lb\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"My first private load balancer\",\n        Flavor = \"lb1-1-2\",\n        VipNetworkId = privateNetwork.Id,\n        VipSubnetId = privateSubnet.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"privateLbIp\"] = privateLb.VipAddress,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprivateNetwork, err := gcore.NewCloudNetwork(ctx, \"private_network\", \u0026gcore.CloudNetworkArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-private-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateSubnet, err := gcore.NewCloudNetworkSubnet(ctx, \"private_subnet\", \u0026gcore.CloudNetworkSubnetArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tCidr:      pulumi.String(\"10.0.0.0/24\"),\n\t\t\tName:      pulumi.String(\"my-private-network-subnet\"),\n\t\t\tNetworkId: privateNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateLb, err := gcore.NewCloudLoadBalancer(ctx, \"private_lb\", \u0026gcore.CloudLoadBalancerArgs{\n\t\t\tProjectId:    pulumi.Float64(1),\n\t\t\tRegionId:     pulumi.Float64(1),\n\t\t\tName:         pulumi.String(\"My first private load balancer\"),\n\t\t\tFlavor:       pulumi.String(\"lb1-1-2\"),\n\t\t\tVipNetworkId: privateNetwork.ID(),\n\t\t\tVipSubnetId:  privateSubnet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"privateLbIp\", privateLb.VipAddress)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudNetwork;\nimport com.pulumi.gcore.CloudNetworkArgs;\nimport com.pulumi.gcore.CloudNetworkSubnet;\nimport com.pulumi.gcore.CloudNetworkSubnetArgs;\nimport com.pulumi.gcore.CloudLoadBalancer;\nimport com.pulumi.gcore.CloudLoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var privateNetwork = new CloudNetwork(\"privateNetwork\", CloudNetworkArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-private-network\")\n            .build());\n\n        var privateSubnet = new CloudNetworkSubnet(\"privateSubnet\", CloudNetworkSubnetArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .cidr(\"10.0.0.0/24\")\n            .name(\"my-private-network-subnet\")\n            .networkId(privateNetwork.id())\n            .build());\n\n        var privateLb = new CloudLoadBalancer(\"privateLb\", CloudLoadBalancerArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"My first private load balancer\")\n            .flavor(\"lb1-1-2\")\n            .vipNetworkId(privateNetwork.id())\n            .vipSubnetId(privateSubnet.id())\n            .build());\n\n        ctx.export(\"privateLbIp\", privateLb.vipAddress());\n    }\n}\n```\n```yaml\nresources:\n  privateNetwork:\n    type: gcore:CloudNetwork\n    name: private_network\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-private-network\n  privateSubnet:\n    type: gcore:CloudNetworkSubnet\n    name: private_subnet\n    properties:\n      projectId: 1\n      regionId: 1\n      cidr: 10.0.0.0/24\n      name: my-private-network-subnet\n      networkId: ${privateNetwork.id}\n  privateLb:\n    type: gcore:CloudLoadBalancer\n    name: private_lb\n    properties:\n      projectId: 1\n      regionId: 1\n      name: My first private load balancer\n      flavor: lb1-1-2\n      vipNetworkId: ${privateNetwork.id}\n      vipSubnetId: ${privateSubnet.id}\noutputs:\n  privateLbIp: ${privateLb.vipAddress}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Private load balancer in dual-stack mode\n\nCreates a private load balancer with both IPv4 and IPv6 subnets.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst privateNetworkDualstack = new gcore.CloudNetwork(\"private_network_dualstack\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-private-network-dualstack\",\n});\nconst privateSubnetIpv4 = new gcore.CloudNetworkSubnet(\"private_subnet_ipv4\", {\n    projectId: 1,\n    regionId: 1,\n    cidr: \"10.0.0.0/24\",\n    name: \"my-private-network-subnet-ipv4\",\n    networkId: privateNetworkDualstack.id,\n});\nconst privateSubnetIpv6 = new gcore.CloudNetworkSubnet(\"private_subnet_ipv6\", {\n    projectId: 1,\n    regionId: 1,\n    cidr: \"fd00::/120\",\n    name: \"my-private-network-subnet-ipv6\",\n    networkId: privateNetworkDualstack.id,\n});\nconst privateLbDualstack = new gcore.CloudLoadBalancer(\"private_lb_dualstack\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"My first private dual stack load balancer\",\n    flavor: \"lb1-1-2\",\n    vipNetworkId: privateNetworkDualstack.id,\n    vipIpFamily: \"dual\",\n}, {\n    dependsOn: [\n        privateSubnetIpv4,\n        privateSubnetIpv6,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nprivate_network_dualstack = gcore.CloudNetwork(\"private_network_dualstack\",\n    project_id=1,\n    region_id=1,\n    name=\"my-private-network-dualstack\")\nprivate_subnet_ipv4 = gcore.CloudNetworkSubnet(\"private_subnet_ipv4\",\n    project_id=1,\n    region_id=1,\n    cidr=\"10.0.0.0/24\",\n    name=\"my-private-network-subnet-ipv4\",\n    network_id=private_network_dualstack.id)\nprivate_subnet_ipv6 = gcore.CloudNetworkSubnet(\"private_subnet_ipv6\",\n    project_id=1,\n    region_id=1,\n    cidr=\"fd00::/120\",\n    name=\"my-private-network-subnet-ipv6\",\n    network_id=private_network_dualstack.id)\nprivate_lb_dualstack = gcore.CloudLoadBalancer(\"private_lb_dualstack\",\n    project_id=1,\n    region_id=1,\n    name=\"My first private dual stack load balancer\",\n    flavor=\"lb1-1-2\",\n    vip_network_id=private_network_dualstack.id,\n    vip_ip_family=\"dual\",\n    opts = pulumi.ResourceOptions(depends_on=[\n            private_subnet_ipv4,\n            private_subnet_ipv6,\n        ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var privateNetworkDualstack = new Gcore.CloudNetwork(\"private_network_dualstack\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-private-network-dualstack\",\n    });\n\n    var privateSubnetIpv4 = new Gcore.CloudNetworkSubnet(\"private_subnet_ipv4\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Cidr = \"10.0.0.0/24\",\n        Name = \"my-private-network-subnet-ipv4\",\n        NetworkId = privateNetworkDualstack.Id,\n    });\n\n    var privateSubnetIpv6 = new Gcore.CloudNetworkSubnet(\"private_subnet_ipv6\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Cidr = \"fd00::/120\",\n        Name = \"my-private-network-subnet-ipv6\",\n        NetworkId = privateNetworkDualstack.Id,\n    });\n\n    var privateLbDualstack = new Gcore.CloudLoadBalancer(\"private_lb_dualstack\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"My first private dual stack load balancer\",\n        Flavor = \"lb1-1-2\",\n        VipNetworkId = privateNetworkDualstack.Id,\n        VipIpFamily = \"dual\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            privateSubnetIpv4,\n            privateSubnetIpv6,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprivateNetworkDualstack, err := gcore.NewCloudNetwork(ctx, \"private_network_dualstack\", \u0026gcore.CloudNetworkArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-private-network-dualstack\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateSubnetIpv4, err := gcore.NewCloudNetworkSubnet(ctx, \"private_subnet_ipv4\", \u0026gcore.CloudNetworkSubnetArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tCidr:      pulumi.String(\"10.0.0.0/24\"),\n\t\t\tName:      pulumi.String(\"my-private-network-subnet-ipv4\"),\n\t\t\tNetworkId: privateNetworkDualstack.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateSubnetIpv6, err := gcore.NewCloudNetworkSubnet(ctx, \"private_subnet_ipv6\", \u0026gcore.CloudNetworkSubnetArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tCidr:      pulumi.String(\"fd00::/120\"),\n\t\t\tName:      pulumi.String(\"my-private-network-subnet-ipv6\"),\n\t\t\tNetworkId: privateNetworkDualstack.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCloudLoadBalancer(ctx, \"private_lb_dualstack\", \u0026gcore.CloudLoadBalancerArgs{\n\t\t\tProjectId:    pulumi.Float64(1),\n\t\t\tRegionId:     pulumi.Float64(1),\n\t\t\tName:         pulumi.String(\"My first private dual stack load balancer\"),\n\t\t\tFlavor:       pulumi.String(\"lb1-1-2\"),\n\t\t\tVipNetworkId: privateNetworkDualstack.ID(),\n\t\t\tVipIpFamily:  pulumi.String(\"dual\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tprivateSubnetIpv4,\n\t\t\tprivateSubnetIpv6,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudNetwork;\nimport com.pulumi.gcore.CloudNetworkArgs;\nimport com.pulumi.gcore.CloudNetworkSubnet;\nimport com.pulumi.gcore.CloudNetworkSubnetArgs;\nimport com.pulumi.gcore.CloudLoadBalancer;\nimport com.pulumi.gcore.CloudLoadBalancerArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var privateNetworkDualstack = new CloudNetwork(\"privateNetworkDualstack\", CloudNetworkArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-private-network-dualstack\")\n            .build());\n\n        var privateSubnetIpv4 = new CloudNetworkSubnet(\"privateSubnetIpv4\", CloudNetworkSubnetArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .cidr(\"10.0.0.0/24\")\n            .name(\"my-private-network-subnet-ipv4\")\n            .networkId(privateNetworkDualstack.id())\n            .build());\n\n        var privateSubnetIpv6 = new CloudNetworkSubnet(\"privateSubnetIpv6\", CloudNetworkSubnetArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .cidr(\"fd00::/120\")\n            .name(\"my-private-network-subnet-ipv6\")\n            .networkId(privateNetworkDualstack.id())\n            .build());\n\n        var privateLbDualstack = new CloudLoadBalancer(\"privateLbDualstack\", CloudLoadBalancerArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"My first private dual stack load balancer\")\n            .flavor(\"lb1-1-2\")\n            .vipNetworkId(privateNetworkDualstack.id())\n            .vipIpFamily(\"dual\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    privateSubnetIpv4,\n                    privateSubnetIpv6)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  privateNetworkDualstack:\n    type: gcore:CloudNetwork\n    name: private_network_dualstack\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-private-network-dualstack\n  privateSubnetIpv4:\n    type: gcore:CloudNetworkSubnet\n    name: private_subnet_ipv4\n    properties:\n      projectId: 1\n      regionId: 1\n      cidr: 10.0.0.0/24\n      name: my-private-network-subnet-ipv4\n      networkId: ${privateNetworkDualstack.id}\n  privateSubnetIpv6:\n    type: gcore:CloudNetworkSubnet\n    name: private_subnet_ipv6\n    properties:\n      projectId: 1\n      regionId: 1\n      cidr: fd00::/120\n      name: my-private-network-subnet-ipv6\n      networkId: ${privateNetworkDualstack.id}\n  privateLbDualstack:\n    type: gcore:CloudLoadBalancer\n    name: private_lb_dualstack\n    properties:\n      projectId: 1\n      regionId: 1\n      name: My first private dual stack load balancer\n      flavor: lb1-1-2\n      vipNetworkId: ${privateNetworkDualstack.id}\n      vipIpFamily: dual\n    options:\n      dependsOn:\n        - ${privateSubnetIpv4}\n        - ${privateSubnetIpv6}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Floating IP for a private load balancer\n\nAssociates a floating IP with an existing private load balancer to provide public access.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nexport = async () =\u003e {\n    const privateLbFip = new gcore.CloudFloatingIp(\"private_lb_fip\", {\n        projectId: 1,\n        regionId: 1,\n        fixedIpAddress: privateLb.vipAddress,\n        portId: privateLb.vipPortId,\n    });\n    return {\n        privateLbFip: privateLbFip.floatingIpAddress,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nprivate_lb_fip = gcore.CloudFloatingIp(\"private_lb_fip\",\n    project_id=1,\n    region_id=1,\n    fixed_ip_address=private_lb[\"vipAddress\"],\n    port_id=private_lb[\"vipPortId\"])\npulumi.export(\"privateLbFip\", private_lb_fip.floating_ip_address)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var privateLbFip = new Gcore.CloudFloatingIp(\"private_lb_fip\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        FixedIpAddress = privateLb.VipAddress,\n        PortId = privateLb.VipPortId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"privateLbFip\"] = privateLbFip.FloatingIpAddress,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprivateLbFip, err := gcore.NewCloudFloatingIp(ctx, \"private_lb_fip\", \u0026gcore.CloudFloatingIpArgs{\n\t\t\tProjectId:      pulumi.Float64(1),\n\t\t\tRegionId:       pulumi.Float64(1),\n\t\t\tFixedIpAddress: pulumi.Any(privateLb.VipAddress),\n\t\t\tPortId:         pulumi.Any(privateLb.VipPortId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"privateLbFip\", privateLbFip.FloatingIpAddress)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudFloatingIp;\nimport com.pulumi.gcore.CloudFloatingIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var privateLbFip = new CloudFloatingIp(\"privateLbFip\", CloudFloatingIpArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .fixedIpAddress(privateLb.vipAddress())\n            .portId(privateLb.vipPortId())\n            .build());\n\n        ctx.export(\"privateLbFip\", privateLbFip.floatingIpAddress());\n    }\n}\n```\n```yaml\nresources:\n  privateLbFip:\n    type: gcore:CloudFloatingIp\n    name: private_lb_fip\n    properties:\n      projectId: 1\n      regionId: 1\n      fixedIpAddress: ${privateLb.vipAddress}\n      portId: ${privateLb.vipPortId}\noutputs:\n  privateLbFip: ${privateLbFip.floatingIpAddress}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudLoadBalancer:CloudLoadBalancer example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003cload_balancer_id\u003e'\n```\n\n","properties":{"additionalVips":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerAdditionalVip:CloudLoadBalancerAdditionalVip"},"description":"List of additional IP addresses\n"},"adminStateUp":{"type":"boolean","description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n"},"createdAt":{"type":"string","description":"Datetime when the load balancer was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"ddosProfile":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerDdosProfile:CloudLoadBalancerDdosProfile","description":"Loadbalancer advanced DDoS protection profile.\n"},"flavor":{"type":"string","description":"Load balancer flavor name\n"},"floatingIp":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerFloatingIp:CloudLoadBalancerFloatingIp","description":"Floating IP configuration for assignment\n"},"floatingIps":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerFloatingIp:CloudLoadBalancerFloatingIp"},"description":"List of assigned floating IPs\n"},"logging":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerLogging:CloudLoadBalancerLogging","description":"Logging configuration\n"},"name":{"type":"string","description":"Load balancer name. 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=\"`nameTemplate`\" pulumi-lang-dotnet=\"`NameTemplate`\" pulumi-lang-go=\"`nameTemplate`\" pulumi-lang-python=\"`name_template`\" pulumi-lang-yaml=\"`nameTemplate`\" pulumi-lang-java=\"`nameTemplate`\"\u003e`name_template`\u003c/span\u003e should be specified.\n"},"nameTemplate":{"type":"string","description":"Load balancer name which will be changed by template. 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=\"`nameTemplate`\" pulumi-lang-dotnet=\"`NameTemplate`\" pulumi-lang-go=\"`nameTemplate`\" pulumi-lang-python=\"`name_template`\" pulumi-lang-yaml=\"`nameTemplate`\" pulumi-lang-java=\"`nameTemplate`\"\u003e`name_template`\u003c/span\u003e should be specified.\n"},"operatingStatus":{"type":"string","description":"Load balancer operating status\nAvailable values: \"DEGRADED\", \"DRAINING\", \"ERROR\", \"NO_MONITOR\", \"OFFLINE\", \"ONLINE\".\n"},"preferredConnectivity":{"type":"string","description":"Preferred option to establish connectivity between load balancer and its pools members. L2 provides best performance, L3 provides less IPs usage. It is taking effect only if \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e + \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e is provided, not \u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e + \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e, because we're considering this as intentional \u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e specification.\nAvailable values: \"L2\", \"L3\".\n"},"projectId":{"type":"number","description":"Project ID\n"},"provisioningStatus":{"type":"string","description":"Load balancer lifecycle status\nAvailable values: \"ACTIVE\", \"DELETED\", \"ERROR\", \"PENDING*CREATE\", \"PENDING*DELETE\", \"PENDING_UPDATE\".\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"stats":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerStats:CloudLoadBalancerStats","description":"Statistics of load balancer.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"tagsV2s":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerTagsV2:CloudLoadBalancerTagsV2"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the load balancer was last updated\n"},"vipAddress":{"type":"string","description":"Load balancer IP address\n"},"vipFqdn":{"type":"string","description":"Fully qualified domain name for the load balancer VIP\n"},"vipIpFamily":{"type":"string","description":"IP family for load balancer subnet auto-selection if \u003cspan pulumi-lang-nodejs=\"`vipNetworkId`\" pulumi-lang-dotnet=\"`VipNetworkId`\" pulumi-lang-go=\"`vipNetworkId`\" pulumi-lang-python=\"`vip_network_id`\" pulumi-lang-yaml=\"`vipNetworkId`\" pulumi-lang-java=\"`vipNetworkId`\"\u003e`vip_network_id`\u003c/span\u003e is specified\nAvailable values: \"dual\", \"ipv4\", \"ipv6\".\n"},"vipNetworkId":{"type":"string","description":"Network ID for load balancer. If not specified, default external network will be used. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`vipPortId`\" pulumi-lang-dotnet=\"`VipPortId`\" pulumi-lang-go=\"`vipPortId`\" pulumi-lang-python=\"`vip_port_id`\" pulumi-lang-yaml=\"`vipPortId`\" pulumi-lang-java=\"`vipPortId`\"\u003e`vip_port_id`\u003c/span\u003e\n"},"vipPortId":{"type":"string","description":"Existing Reserved Fixed IP port ID for load balancer. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`vipNetworkId`\" pulumi-lang-dotnet=\"`VipNetworkId`\" pulumi-lang-go=\"`vipNetworkId`\" pulumi-lang-python=\"`vip_network_id`\" pulumi-lang-yaml=\"`vipNetworkId`\" pulumi-lang-java=\"`vipNetworkId`\"\u003e`vip_network_id`\u003c/span\u003e\n"},"vipSubnetId":{"type":"string","description":"Subnet ID for load balancer. If not specified, any subnet from \u003cspan pulumi-lang-nodejs=\"`vipNetworkId`\" pulumi-lang-dotnet=\"`VipNetworkId`\" pulumi-lang-go=\"`vipNetworkId`\" pulumi-lang-python=\"`vip_network_id`\" pulumi-lang-yaml=\"`vipNetworkId`\" pulumi-lang-java=\"`vipNetworkId`\"\u003e`vip_network_id`\u003c/span\u003e will be selected. Ignored when \u003cspan pulumi-lang-nodejs=\"`vipNetworkId`\" pulumi-lang-dotnet=\"`VipNetworkId`\" pulumi-lang-go=\"`vipNetworkId`\" pulumi-lang-python=\"`vip_network_id`\" pulumi-lang-yaml=\"`vipNetworkId`\" pulumi-lang-java=\"`vipNetworkId`\"\u003e`vip_network_id`\u003c/span\u003e is not specified.\n"},"vrrpIps":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerVrrpIp:CloudLoadBalancerVrrpIp"},"description":"List of VRRP IP addresses\n"}},"type":"object","required":["additionalVips","adminStateUp","createdAt","creatorTaskId","ddosProfile","floatingIps","logging","name","operatingStatus","preferredConnectivity","provisioningStatus","region","stats","tagsV2s","updatedAt","vipAddress","vipFqdn","vipIpFamily","vipPortId","vrrpIps"],"inputProperties":{"flavor":{"type":"string","description":"Load balancer flavor name\n"},"floatingIp":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerFloatingIp:CloudLoadBalancerFloatingIp","description":"Floating IP configuration for assignment\n"},"logging":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerLogging:CloudLoadBalancerLogging","description":"Logging configuration\n"},"name":{"type":"string","description":"Load balancer name. 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=\"`nameTemplate`\" pulumi-lang-dotnet=\"`NameTemplate`\" pulumi-lang-go=\"`nameTemplate`\" pulumi-lang-python=\"`name_template`\" pulumi-lang-yaml=\"`nameTemplate`\" pulumi-lang-java=\"`nameTemplate`\"\u003e`name_template`\u003c/span\u003e should be specified.\n"},"nameTemplate":{"type":"string","description":"Load balancer name which will be changed by template. 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=\"`nameTemplate`\" pulumi-lang-dotnet=\"`NameTemplate`\" pulumi-lang-go=\"`nameTemplate`\" pulumi-lang-python=\"`name_template`\" pulumi-lang-yaml=\"`nameTemplate`\" pulumi-lang-java=\"`nameTemplate`\"\u003e`name_template`\u003c/span\u003e should be specified.\n"},"preferredConnectivity":{"type":"string","description":"Preferred option to establish connectivity between load balancer and its pools members. L2 provides best performance, L3 provides less IPs usage. It is taking effect only if \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e + \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e is provided, not \u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e + \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e, because we're considering this as intentional \u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e specification.\nAvailable values: \"L2\", \"L3\".\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"vipIpFamily":{"type":"string","description":"IP family for load balancer subnet auto-selection if \u003cspan pulumi-lang-nodejs=\"`vipNetworkId`\" pulumi-lang-dotnet=\"`VipNetworkId`\" pulumi-lang-go=\"`vipNetworkId`\" pulumi-lang-python=\"`vip_network_id`\" pulumi-lang-yaml=\"`vipNetworkId`\" pulumi-lang-java=\"`vipNetworkId`\"\u003e`vip_network_id`\u003c/span\u003e is specified\nAvailable values: \"dual\", \"ipv4\", \"ipv6\".\n"},"vipNetworkId":{"type":"string","description":"Network ID for load balancer. If not specified, default external network will be used. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`vipPortId`\" pulumi-lang-dotnet=\"`VipPortId`\" pulumi-lang-go=\"`vipPortId`\" pulumi-lang-python=\"`vip_port_id`\" pulumi-lang-yaml=\"`vipPortId`\" pulumi-lang-java=\"`vipPortId`\"\u003e`vip_port_id`\u003c/span\u003e\n"},"vipPortId":{"type":"string","description":"Existing Reserved Fixed IP port ID for load balancer. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`vipNetworkId`\" pulumi-lang-dotnet=\"`VipNetworkId`\" pulumi-lang-go=\"`vipNetworkId`\" pulumi-lang-python=\"`vip_network_id`\" pulumi-lang-yaml=\"`vipNetworkId`\" pulumi-lang-java=\"`vipNetworkId`\"\u003e`vip_network_id`\u003c/span\u003e\n"},"vipSubnetId":{"type":"string","description":"Subnet ID for load balancer. If not specified, any subnet from \u003cspan pulumi-lang-nodejs=\"`vipNetworkId`\" pulumi-lang-dotnet=\"`VipNetworkId`\" pulumi-lang-go=\"`vipNetworkId`\" pulumi-lang-python=\"`vip_network_id`\" pulumi-lang-yaml=\"`vipNetworkId`\" pulumi-lang-java=\"`vipNetworkId`\"\u003e`vip_network_id`\u003c/span\u003e will be selected. Ignored when \u003cspan pulumi-lang-nodejs=\"`vipNetworkId`\" pulumi-lang-dotnet=\"`VipNetworkId`\" pulumi-lang-go=\"`vipNetworkId`\" pulumi-lang-python=\"`vip_network_id`\" pulumi-lang-yaml=\"`vipNetworkId`\" pulumi-lang-java=\"`vipNetworkId`\"\u003e`vip_network_id`\u003c/span\u003e is not specified.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CloudLoadBalancer resources.\n","properties":{"additionalVips":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerAdditionalVip:CloudLoadBalancerAdditionalVip"},"description":"List of additional IP addresses\n"},"adminStateUp":{"type":"boolean","description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n"},"createdAt":{"type":"string","description":"Datetime when the load balancer was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"ddosProfile":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerDdosProfile:CloudLoadBalancerDdosProfile","description":"Loadbalancer advanced DDoS protection profile.\n"},"flavor":{"type":"string","description":"Load balancer flavor name\n"},"floatingIp":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerFloatingIp:CloudLoadBalancerFloatingIp","description":"Floating IP configuration for assignment\n"},"floatingIps":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerFloatingIp:CloudLoadBalancerFloatingIp"},"description":"List of assigned floating IPs\n"},"logging":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerLogging:CloudLoadBalancerLogging","description":"Logging configuration\n"},"name":{"type":"string","description":"Load balancer name. 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=\"`nameTemplate`\" pulumi-lang-dotnet=\"`NameTemplate`\" pulumi-lang-go=\"`nameTemplate`\" pulumi-lang-python=\"`name_template`\" pulumi-lang-yaml=\"`nameTemplate`\" pulumi-lang-java=\"`nameTemplate`\"\u003e`name_template`\u003c/span\u003e should be specified.\n"},"nameTemplate":{"type":"string","description":"Load balancer name which will be changed by template. 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=\"`nameTemplate`\" pulumi-lang-dotnet=\"`NameTemplate`\" pulumi-lang-go=\"`nameTemplate`\" pulumi-lang-python=\"`name_template`\" pulumi-lang-yaml=\"`nameTemplate`\" pulumi-lang-java=\"`nameTemplate`\"\u003e`name_template`\u003c/span\u003e should be specified.\n"},"operatingStatus":{"type":"string","description":"Load balancer operating status\nAvailable values: \"DEGRADED\", \"DRAINING\", \"ERROR\", \"NO_MONITOR\", \"OFFLINE\", \"ONLINE\".\n"},"preferredConnectivity":{"type":"string","description":"Preferred option to establish connectivity between load balancer and its pools members. L2 provides best performance, L3 provides less IPs usage. It is taking effect only if \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e + \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e is provided, not \u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e + \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e, because we're considering this as intentional \u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e specification.\nAvailable values: \"L2\", \"L3\".\n"},"projectId":{"type":"number","description":"Project ID\n"},"provisioningStatus":{"type":"string","description":"Load balancer lifecycle status\nAvailable values: \"ACTIVE\", \"DELETED\", \"ERROR\", \"PENDING*CREATE\", \"PENDING*DELETE\", \"PENDING_UPDATE\".\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"stats":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerStats:CloudLoadBalancerStats","description":"Statistics of load balancer.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"tagsV2s":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerTagsV2:CloudLoadBalancerTagsV2"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the load balancer was last updated\n"},"vipAddress":{"type":"string","description":"Load balancer IP address\n"},"vipFqdn":{"type":"string","description":"Fully qualified domain name for the load balancer VIP\n"},"vipIpFamily":{"type":"string","description":"IP family for load balancer subnet auto-selection if \u003cspan pulumi-lang-nodejs=\"`vipNetworkId`\" pulumi-lang-dotnet=\"`VipNetworkId`\" pulumi-lang-go=\"`vipNetworkId`\" pulumi-lang-python=\"`vip_network_id`\" pulumi-lang-yaml=\"`vipNetworkId`\" pulumi-lang-java=\"`vipNetworkId`\"\u003e`vip_network_id`\u003c/span\u003e is specified\nAvailable values: \"dual\", \"ipv4\", \"ipv6\".\n"},"vipNetworkId":{"type":"string","description":"Network ID for load balancer. If not specified, default external network will be used. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`vipPortId`\" pulumi-lang-dotnet=\"`VipPortId`\" pulumi-lang-go=\"`vipPortId`\" pulumi-lang-python=\"`vip_port_id`\" pulumi-lang-yaml=\"`vipPortId`\" pulumi-lang-java=\"`vipPortId`\"\u003e`vip_port_id`\u003c/span\u003e\n"},"vipPortId":{"type":"string","description":"Existing Reserved Fixed IP port ID for load balancer. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`vipNetworkId`\" pulumi-lang-dotnet=\"`VipNetworkId`\" pulumi-lang-go=\"`vipNetworkId`\" pulumi-lang-python=\"`vip_network_id`\" pulumi-lang-yaml=\"`vipNetworkId`\" pulumi-lang-java=\"`vipNetworkId`\"\u003e`vip_network_id`\u003c/span\u003e\n"},"vipSubnetId":{"type":"string","description":"Subnet ID for load balancer. If not specified, any subnet from \u003cspan pulumi-lang-nodejs=\"`vipNetworkId`\" pulumi-lang-dotnet=\"`VipNetworkId`\" pulumi-lang-go=\"`vipNetworkId`\" pulumi-lang-python=\"`vip_network_id`\" pulumi-lang-yaml=\"`vipNetworkId`\" pulumi-lang-java=\"`vipNetworkId`\"\u003e`vip_network_id`\u003c/span\u003e will be selected. Ignored when \u003cspan pulumi-lang-nodejs=\"`vipNetworkId`\" pulumi-lang-dotnet=\"`VipNetworkId`\" pulumi-lang-go=\"`vipNetworkId`\" pulumi-lang-python=\"`vip_network_id`\" pulumi-lang-yaml=\"`vipNetworkId`\" pulumi-lang-java=\"`vipNetworkId`\"\u003e`vip_network_id`\u003c/span\u003e is not specified.\n"},"vrrpIps":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerVrrpIp:CloudLoadBalancerVrrpIp"},"description":"List of VRRP IP addresses\n"}},"type":"object"}},"gcore:index/cloudLoadBalancerListener:CloudLoadBalancerListener":{"description":"Load balancer listeners handle incoming traffic on specified protocols and ports, forwarding requests to backend pools.\n\n## Example Usage\n\n### TCP listener on port 80\n\nCreates a basic TCP listener on port 80.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst tcp80 = new gcore.CloudLoadBalancerListener(\"tcp_80\", {\n    projectId: 1,\n    regionId: 1,\n    loadBalancerId: lb.id,\n    name: \"tcp-80\",\n    protocol: \"TCP\",\n    protocolPort: 80,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ntcp80 = gcore.CloudLoadBalancerListener(\"tcp_80\",\n    project_id=1,\n    region_id=1,\n    load_balancer_id=lb[\"id\"],\n    name=\"tcp-80\",\n    protocol=\"TCP\",\n    protocol_port=80)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var tcp80 = new Gcore.CloudLoadBalancerListener(\"tcp_80\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        LoadBalancerId = lb.Id,\n        Name = \"tcp-80\",\n        Protocol = \"TCP\",\n        ProtocolPort = 80,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.NewCloudLoadBalancerListener(ctx, \"tcp_80\", \u0026gcore.CloudLoadBalancerListenerArgs{\n\t\t\tProjectId:      pulumi.Float64(1),\n\t\t\tRegionId:       pulumi.Float64(1),\n\t\t\tLoadBalancerId: pulumi.Any(lb.Id),\n\t\t\tName:           pulumi.String(\"tcp-80\"),\n\t\t\tProtocol:       pulumi.String(\"TCP\"),\n\t\t\tProtocolPort:   pulumi.Float64(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudLoadBalancerListener;\nimport com.pulumi.gcore.CloudLoadBalancerListenerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var tcp80 = new CloudLoadBalancerListener(\"tcp80\", CloudLoadBalancerListenerArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .loadBalancerId(lb.id())\n            .name(\"tcp-80\")\n            .protocol(\"TCP\")\n            .protocolPort(80.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  tcp80:\n    type: gcore:CloudLoadBalancerListener\n    name: tcp_80\n    properties:\n      projectId: 1\n      regionId: 1\n      loadBalancerId: ${lb.id}\n      name: tcp-80\n      protocol: TCP\n      protocolPort: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Prometheus metrics listener\n\nCreates a Prometheus listener on port 9101 restricted to a private network with basic auth.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\nimport * as random from \"@pulumi/random\";\n\nexport = async () =\u003e {\n    const prometheusPassword = new random.index.Password(\"prometheus_password\", {\n        length: 16,\n        special: true,\n        overrideSpecial: \"!#$%\u0026*()-_=+[]{}\u003c\u003e:?\",\n    });\n    const prometheus9101 = new gcore.CloudLoadBalancerListener(\"prometheus_9101\", {\n        projectId: 1,\n        regionId: 1,\n        loadBalancerId: lb.id,\n        name: \"prometheus-9101\",\n        protocol: \"PROMETHEUS\",\n        protocolPort: 9101,\n        allowedCidrs: [\"10.0.0.0/8\"],\n        userLists: [{\n            username: \"admin1\",\n            encryptedPassword: prometheusPassword.bcryptHash,\n        }],\n    });\n    return {\n        prometheusPassword: prometheusPassword.result,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\nimport pulumi_random as random\n\nprometheus_password = random.index.Password(\"prometheus_password\",\n    length=16,\n    special=True,\n    override_special=!#$%\u0026*()-_=+[]{}\u003c\u003e:?)\nprometheus9101 = gcore.CloudLoadBalancerListener(\"prometheus_9101\",\n    project_id=1,\n    region_id=1,\n    load_balancer_id=lb[\"id\"],\n    name=\"prometheus-9101\",\n    protocol=\"PROMETHEUS\",\n    protocol_port=9101,\n    allowed_cidrs=[\"10.0.0.0/8\"],\n    user_lists=[{\n        \"username\": \"admin1\",\n        \"encrypted_password\": prometheus_password[\"bcryptHash\"],\n    }])\npulumi.export(\"prometheusPassword\", prometheus_password[\"result\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var prometheusPassword = new Random.Index.Password(\"prometheus_password\", new()\n    {\n        Length = 16,\n        Special = true,\n        OverrideSpecial = \"!#$%\u0026*()-_=+[]{}\u003c\u003e:?\",\n    });\n\n    var prometheus9101 = new Gcore.CloudLoadBalancerListener(\"prometheus_9101\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        LoadBalancerId = lb.Id,\n        Name = \"prometheus-9101\",\n        Protocol = \"PROMETHEUS\",\n        ProtocolPort = 9101,\n        AllowedCidrs = new[]\n        {\n            \"10.0.0.0/8\",\n        },\n        UserLists = new[]\n        {\n            new Gcore.Inputs.CloudLoadBalancerListenerUserListArgs\n            {\n                Username = \"admin1\",\n                EncryptedPassword = prometheusPassword.BcryptHash,\n            },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"prometheusPassword\"] = prometheusPassword.Result,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-random/sdk/go/random\"\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprometheusPassword, err := random.NewPassword(ctx, \"prometheus_password\", \u0026random.PasswordArgs{\n\t\t\tLength:          16,\n\t\t\tSpecial:         true,\n\t\t\tOverrideSpecial: \"!#$%\u0026*()-_=+[]{}\u003c\u003e:?\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCloudLoadBalancerListener(ctx, \"prometheus_9101\", \u0026gcore.CloudLoadBalancerListenerArgs{\n\t\t\tProjectId:      pulumi.Float64(1),\n\t\t\tRegionId:       pulumi.Float64(1),\n\t\t\tLoadBalancerId: pulumi.Any(lb.Id),\n\t\t\tName:           pulumi.String(\"prometheus-9101\"),\n\t\t\tProtocol:       pulumi.String(\"PROMETHEUS\"),\n\t\t\tProtocolPort:   pulumi.Float64(9101),\n\t\t\tAllowedCidrs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/8\"),\n\t\t\t},\n\t\t\tUserLists: gcore.CloudLoadBalancerListenerUserListArray{\n\t\t\t\t\u0026gcore.CloudLoadBalancerListenerUserListArgs{\n\t\t\t\t\tUsername:          pulumi.String(\"admin1\"),\n\t\t\t\t\tEncryptedPassword: prometheusPassword.BcryptHash,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"prometheusPassword\", prometheusPassword.Result)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Password;\nimport com.pulumi.random.PasswordArgs;\nimport com.pulumi.gcore.CloudLoadBalancerListener;\nimport com.pulumi.gcore.CloudLoadBalancerListenerArgs;\nimport com.pulumi.gcore.inputs.CloudLoadBalancerListenerUserListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var prometheusPassword = new Password(\"prometheusPassword\", PasswordArgs.builder()\n            .length(16)\n            .special(true)\n            .overrideSpecial(\"!#$%\u0026*()-_=+[]{}\u003c\u003e:?\")\n            .build());\n\n        var prometheus9101 = new CloudLoadBalancerListener(\"prometheus9101\", CloudLoadBalancerListenerArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .loadBalancerId(lb.id())\n            .name(\"prometheus-9101\")\n            .protocol(\"PROMETHEUS\")\n            .protocolPort(9101.0)\n            .allowedCidrs(\"10.0.0.0/8\")\n            .userLists(CloudLoadBalancerListenerUserListArgs.builder()\n                .username(\"admin1\")\n                .encryptedPassword(prometheusPassword.bcryptHash())\n                .build())\n            .build());\n\n        ctx.export(\"prometheusPassword\", prometheusPassword.result());\n    }\n}\n```\n```yaml\nresources:\n  prometheusPassword:\n    type: random:Password\n    name: prometheus_password\n    properties:\n      length: 16\n      special: true\n      overrideSpecial: '!#$%\u0026*()-_=+[]{}\u003c\u003e:?'\n  prometheus9101:\n    type: gcore:CloudLoadBalancerListener\n    name: prometheus_9101\n    properties:\n      projectId: 1\n      regionId: 1\n      loadBalancerId: ${lb.id}\n      name: prometheus-9101\n      protocol: PROMETHEUS\n      protocolPort: 9101\n      allowedCidrs: # allow access only from private network\n        - 10.0.0.0/8\n      userLists:\n        - username: admin1\n          encryptedPassword: ${prometheusPassword.bcryptHash}\noutputs:\n  prometheusPassword: ${prometheusPassword.result}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudLoadBalancerListener:CloudLoadBalancerListener example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003clistener_id\u003e'\n```\n\n","properties":{"adminStateUp":{"type":"boolean","description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n"},"allowedCidrs":{"type":"array","items":{"type":"string"},"description":"Network CIDRs from which service will be accessible\n"},"connectionLimit":{"type":"number","description":"Limit of the simultaneous connections. If -1 is provided, it is translated to the default value 100000.\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"defaultPoolId":{"type":"string","description":"ID of already existent Load Balancer Pool to attach listener to.\n"},"insertHeaders":{"type":"string","description":"Dictionary of additional header insertion into HTTP headers. Only used with HTTP and `TERMINATED_HTTPS` protocols.\n"},"insertXForwarded":{"type":"boolean","description":"Add headers X-Forwarded-For, X-Forwarded-Port, X-Forwarded-Proto to requests. Only used with HTTP or `TERMINATED_HTTPS` protocols.\n"},"loadBalancerId":{"type":"string","description":"ID of already existent Load Balancer.\n"},"name":{"type":"string","description":"Load balancer listener name\n"},"operatingStatus":{"type":"string","description":"Listener operating status\nAvailable values: \"DEGRADED\", \"DRAINING\", \"ERROR\", \"NO_MONITOR\", \"OFFLINE\", \"ONLINE\".\n"},"poolCount":{"type":"number","description":"Number of pools (for UI)\n"},"projectId":{"type":"number","description":"Project ID\n"},"protocol":{"type":"string","description":"Load balancer listener protocol\nAvailable values: \"HTTP\", \"HTTPS\", \"PROMETHEUS\", \"TCP\", \"TERMINATED_HTTPS\", \"UDP\".\n"},"protocolPort":{"type":"number","description":"Protocol port\n"},"provisioningStatus":{"type":"string","description":"Listener lifecycle status\nAvailable values: \"ACTIVE\", \"DELETED\", \"ERROR\", \"PENDING*CREATE\", \"PENDING*DELETE\", \"PENDING_UPDATE\".\n"},"regionId":{"type":"number","description":"Region ID\n"},"secretId":{"type":"string","description":"ID of the secret where PKCS12 file is stored for `TERMINATED_HTTPS` or PROMETHEUS listener\nAvailable values: \"\".\n"},"sniSecretIds":{"type":"array","items":{"type":"string"},"description":"List of secrets IDs containing PKCS12 format certificate/key bundles for `TERMINATED_HTTPS` or PROMETHEUS listeners\n"},"stats":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerListenerStats:CloudLoadBalancerListenerStats","description":"Statistics of the load balancer. It is available only in get functions by a flag.\n"},"timeoutClientData":{"type":"number","description":"Frontend client inactivity timeout in milliseconds\n"},"userLists":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerListenerUserList:CloudLoadBalancerListenerUserList"},"description":"Load balancer listener list of username and encrypted password items\n"}},"type":"object","required":["connectionLimit","creatorTaskId","insertHeaders","loadBalancerId","name","operatingStatus","poolCount","protocol","protocolPort","provisioningStatus","sniSecretIds","stats","timeoutClientData"],"inputProperties":{"adminStateUp":{"type":"boolean","description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n"},"allowedCidrs":{"type":"array","items":{"type":"string"},"description":"Network CIDRs from which service will be accessible\n"},"connectionLimit":{"type":"number","description":"Limit of the simultaneous connections. If -1 is provided, it is translated to the default value 100000.\n"},"defaultPoolId":{"type":"string","description":"ID of already existent Load Balancer Pool to attach listener to.\n"},"insertXForwarded":{"type":"boolean","description":"Add headers X-Forwarded-For, X-Forwarded-Port, X-Forwarded-Proto to requests. Only used with HTTP or `TERMINATED_HTTPS` protocols.\n"},"loadBalancerId":{"type":"string","description":"ID of already existent Load Balancer.\n"},"name":{"type":"string","description":"Load balancer listener name\n"},"projectId":{"type":"number","description":"Project ID\n"},"protocol":{"type":"string","description":"Load balancer listener protocol\nAvailable values: \"HTTP\", \"HTTPS\", \"PROMETHEUS\", \"TCP\", \"TERMINATED_HTTPS\", \"UDP\".\n"},"protocolPort":{"type":"number","description":"Protocol port\n"},"regionId":{"type":"number","description":"Region ID\n"},"secretId":{"type":"string","description":"ID of the secret where PKCS12 file is stored for `TERMINATED_HTTPS` or PROMETHEUS listener\nAvailable values: \"\".\n"},"sniSecretIds":{"type":"array","items":{"type":"string"},"description":"List of secrets IDs containing PKCS12 format certificate/key bundles for `TERMINATED_HTTPS` or PROMETHEUS listeners\n"},"timeoutClientData":{"type":"number","description":"Frontend client inactivity timeout in milliseconds\n"},"userLists":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerListenerUserList:CloudLoadBalancerListenerUserList"},"description":"Load balancer listener list of username and encrypted password items\n"}},"requiredInputs":["loadBalancerId","protocol","protocolPort"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudLoadBalancerListener resources.\n","properties":{"adminStateUp":{"type":"boolean","description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n"},"allowedCidrs":{"type":"array","items":{"type":"string"},"description":"Network CIDRs from which service will be accessible\n"},"connectionLimit":{"type":"number","description":"Limit of the simultaneous connections. If -1 is provided, it is translated to the default value 100000.\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"defaultPoolId":{"type":"string","description":"ID of already existent Load Balancer Pool to attach listener to.\n"},"insertHeaders":{"type":"string","description":"Dictionary of additional header insertion into HTTP headers. Only used with HTTP and `TERMINATED_HTTPS` protocols.\n"},"insertXForwarded":{"type":"boolean","description":"Add headers X-Forwarded-For, X-Forwarded-Port, X-Forwarded-Proto to requests. Only used with HTTP or `TERMINATED_HTTPS` protocols.\n"},"loadBalancerId":{"type":"string","description":"ID of already existent Load Balancer.\n"},"name":{"type":"string","description":"Load balancer listener name\n"},"operatingStatus":{"type":"string","description":"Listener operating status\nAvailable values: \"DEGRADED\", \"DRAINING\", \"ERROR\", \"NO_MONITOR\", \"OFFLINE\", \"ONLINE\".\n"},"poolCount":{"type":"number","description":"Number of pools (for UI)\n"},"projectId":{"type":"number","description":"Project ID\n"},"protocol":{"type":"string","description":"Load balancer listener protocol\nAvailable values: \"HTTP\", \"HTTPS\", \"PROMETHEUS\", \"TCP\", \"TERMINATED_HTTPS\", \"UDP\".\n"},"protocolPort":{"type":"number","description":"Protocol port\n"},"provisioningStatus":{"type":"string","description":"Listener lifecycle status\nAvailable values: \"ACTIVE\", \"DELETED\", \"ERROR\", \"PENDING*CREATE\", \"PENDING*DELETE\", \"PENDING_UPDATE\".\n"},"regionId":{"type":"number","description":"Region ID\n"},"secretId":{"type":"string","description":"ID of the secret where PKCS12 file is stored for `TERMINATED_HTTPS` or PROMETHEUS listener\nAvailable values: \"\".\n"},"sniSecretIds":{"type":"array","items":{"type":"string"},"description":"List of secrets IDs containing PKCS12 format certificate/key bundles for `TERMINATED_HTTPS` or PROMETHEUS listeners\n"},"stats":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerListenerStats:CloudLoadBalancerListenerStats","description":"Statistics of the load balancer. It is available only in get functions by a flag.\n"},"timeoutClientData":{"type":"number","description":"Frontend client inactivity timeout in milliseconds\n"},"userLists":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerListenerUserList:CloudLoadBalancerListenerUserList"},"description":"Load balancer listener list of username and encrypted password items\n"}},"type":"object"}},"gcore:index/cloudLoadBalancerPool:CloudLoadBalancerPool":{"description":"Load balancer pools group backend instances with a load balancing algorithm and health monitoring configuration.\n\n## Example Usage\n\n### TCP pool with health monitor and session persistence\n\nCreates a TCP pool on port 80 with PING health checks and cookie-based session persistence.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst tcp80 = new gcore.CloudLoadBalancerListener(\"tcp_80\", {\n    projectId: 1,\n    regionId: 1,\n    loadBalancerId: lb.id,\n    name: \"My first tcp listener with pool\",\n    protocol: \"TCP\",\n    protocolPort: 80,\n});\nconst tcp80CloudLoadBalancerPool = new gcore.CloudLoadBalancerPool(\"tcp_80\", {\n    projectId: 1,\n    regionId: 1,\n    loadBalancerId: lb.id,\n    listenerId: tcp80.id,\n    name: \"My first tcp pool\",\n    protocol: \"TCP\",\n    lbAlgorithm: \"ROUND_ROBIN\",\n    healthmonitor: {\n        type: \"PING\",\n        delay: 10,\n        maxRetries: 5,\n        timeout: 5,\n    },\n    sessionPersistence: {\n        type: \"APP_COOKIE\",\n        cookieName: \"test_new_cookie\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ntcp80 = gcore.CloudLoadBalancerListener(\"tcp_80\",\n    project_id=1,\n    region_id=1,\n    load_balancer_id=lb[\"id\"],\n    name=\"My first tcp listener with pool\",\n    protocol=\"TCP\",\n    protocol_port=80)\ntcp80_cloud_load_balancer_pool = gcore.CloudLoadBalancerPool(\"tcp_80\",\n    project_id=1,\n    region_id=1,\n    load_balancer_id=lb[\"id\"],\n    listener_id=tcp80.id,\n    name=\"My first tcp pool\",\n    protocol=\"TCP\",\n    lb_algorithm=\"ROUND_ROBIN\",\n    healthmonitor={\n        \"type\": \"PING\",\n        \"delay\": 10,\n        \"max_retries\": 5,\n        \"timeout\": 5,\n    },\n    session_persistence={\n        \"type\": \"APP_COOKIE\",\n        \"cookie_name\": \"test_new_cookie\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var tcp80 = new Gcore.CloudLoadBalancerListener(\"tcp_80\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        LoadBalancerId = lb.Id,\n        Name = \"My first tcp listener with pool\",\n        Protocol = \"TCP\",\n        ProtocolPort = 80,\n    });\n\n    var tcp80CloudLoadBalancerPool = new Gcore.CloudLoadBalancerPool(\"tcp_80\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        LoadBalancerId = lb.Id,\n        ListenerId = tcp80.Id,\n        Name = \"My first tcp pool\",\n        Protocol = \"TCP\",\n        LbAlgorithm = \"ROUND_ROBIN\",\n        Healthmonitor = new Gcore.Inputs.CloudLoadBalancerPoolHealthmonitorArgs\n        {\n            Type = \"PING\",\n            Delay = 10,\n            MaxRetries = 5,\n            Timeout = 5,\n        },\n        SessionPersistence = new Gcore.Inputs.CloudLoadBalancerPoolSessionPersistenceArgs\n        {\n            Type = \"APP_COOKIE\",\n            CookieName = \"test_new_cookie\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttcp80, err := gcore.NewCloudLoadBalancerListener(ctx, \"tcp_80\", \u0026gcore.CloudLoadBalancerListenerArgs{\n\t\t\tProjectId:      pulumi.Float64(1),\n\t\t\tRegionId:       pulumi.Float64(1),\n\t\t\tLoadBalancerId: pulumi.Any(lb.Id),\n\t\t\tName:           pulumi.String(\"My first tcp listener with pool\"),\n\t\t\tProtocol:       pulumi.String(\"TCP\"),\n\t\t\tProtocolPort:   pulumi.Float64(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCloudLoadBalancerPool(ctx, \"tcp_80\", \u0026gcore.CloudLoadBalancerPoolArgs{\n\t\t\tProjectId:      pulumi.Float64(1),\n\t\t\tRegionId:       pulumi.Float64(1),\n\t\t\tLoadBalancerId: pulumi.Any(lb.Id),\n\t\t\tListenerId:     tcp80.ID(),\n\t\t\tName:           pulumi.String(\"My first tcp pool\"),\n\t\t\tProtocol:       pulumi.String(\"TCP\"),\n\t\t\tLbAlgorithm:    pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tHealthmonitor: \u0026gcore.CloudLoadBalancerPoolHealthmonitorArgs{\n\t\t\t\tType:       pulumi.String(\"PING\"),\n\t\t\t\tDelay:      pulumi.Float64(10),\n\t\t\t\tMaxRetries: pulumi.Float64(5),\n\t\t\t\tTimeout:    pulumi.Float64(5),\n\t\t\t},\n\t\t\tSessionPersistence: \u0026gcore.CloudLoadBalancerPoolSessionPersistenceArgs{\n\t\t\t\tType:       pulumi.String(\"APP_COOKIE\"),\n\t\t\t\tCookieName: pulumi.String(\"test_new_cookie\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudLoadBalancerListener;\nimport com.pulumi.gcore.CloudLoadBalancerListenerArgs;\nimport com.pulumi.gcore.CloudLoadBalancerPool;\nimport com.pulumi.gcore.CloudLoadBalancerPoolArgs;\nimport com.pulumi.gcore.inputs.CloudLoadBalancerPoolHealthmonitorArgs;\nimport com.pulumi.gcore.inputs.CloudLoadBalancerPoolSessionPersistenceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var tcp80 = new CloudLoadBalancerListener(\"tcp80\", CloudLoadBalancerListenerArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .loadBalancerId(lb.id())\n            .name(\"My first tcp listener with pool\")\n            .protocol(\"TCP\")\n            .protocolPort(80.0)\n            .build());\n\n        var tcp80CloudLoadBalancerPool = new CloudLoadBalancerPool(\"tcp80CloudLoadBalancerPool\", CloudLoadBalancerPoolArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .loadBalancerId(lb.id())\n            .listenerId(tcp80.id())\n            .name(\"My first tcp pool\")\n            .protocol(\"TCP\")\n            .lbAlgorithm(\"ROUND_ROBIN\")\n            .healthmonitor(CloudLoadBalancerPoolHealthmonitorArgs.builder()\n                .type(\"PING\")\n                .delay(10.0)\n                .maxRetries(5.0)\n                .timeout(5.0)\n                .build())\n            .sessionPersistence(CloudLoadBalancerPoolSessionPersistenceArgs.builder()\n                .type(\"APP_COOKIE\")\n                .cookieName(\"test_new_cookie\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  tcp80:\n    type: gcore:CloudLoadBalancerListener\n    name: tcp_80\n    properties:\n      projectId: 1\n      regionId: 1\n      loadBalancerId: ${lb.id}\n      name: My first tcp listener with pool\n      protocol: TCP\n      protocolPort: 80\n  tcp80CloudLoadBalancerPool:\n    type: gcore:CloudLoadBalancerPool\n    name: tcp_80\n    properties:\n      projectId: 1\n      regionId: 1\n      loadBalancerId: ${lb.id}\n      listenerId: ${tcp80.id}\n      name: My first tcp pool\n      protocol: TCP\n      lbAlgorithm: ROUND_ROBIN\n      healthmonitor:\n        type: PING\n        delay: 10\n        maxRetries: 5\n        timeout: 5\n      sessionPersistence:\n        type: APP_COOKIE\n        cookieName: test_new_cookie\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Proxy protocol pool\n\nCreates a pool using the PROXY protocol with least-connections algorithm on port 8080.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst proxy8080 = new gcore.CloudLoadBalancerListener(\"proxy_8080\", {\n    projectId: 1,\n    regionId: 1,\n    loadBalancerId: lb.id,\n    name: \"My first proxy listener with pool\",\n    protocol: \"TCP\",\n    protocolPort: 8080,\n});\nconst proxy8080CloudLoadBalancerPool = new gcore.CloudLoadBalancerPool(\"proxy_8080\", {\n    projectId: 1,\n    regionId: 1,\n    loadBalancerId: lb.id,\n    listenerId: proxy8080.id,\n    name: \"My first proxy pool\",\n    protocol: \"PROXY\",\n    lbAlgorithm: \"LEAST_CONNECTIONS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproxy8080 = gcore.CloudLoadBalancerListener(\"proxy_8080\",\n    project_id=1,\n    region_id=1,\n    load_balancer_id=lb[\"id\"],\n    name=\"My first proxy listener with pool\",\n    protocol=\"TCP\",\n    protocol_port=8080)\nproxy8080_cloud_load_balancer_pool = gcore.CloudLoadBalancerPool(\"proxy_8080\",\n    project_id=1,\n    region_id=1,\n    load_balancer_id=lb[\"id\"],\n    listener_id=proxy8080.id,\n    name=\"My first proxy pool\",\n    protocol=\"PROXY\",\n    lb_algorithm=\"LEAST_CONNECTIONS\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var proxy8080 = new Gcore.CloudLoadBalancerListener(\"proxy_8080\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        LoadBalancerId = lb.Id,\n        Name = \"My first proxy listener with pool\",\n        Protocol = \"TCP\",\n        ProtocolPort = 8080,\n    });\n\n    var proxy8080CloudLoadBalancerPool = new Gcore.CloudLoadBalancerPool(\"proxy_8080\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        LoadBalancerId = lb.Id,\n        ListenerId = proxy8080.Id,\n        Name = \"My first proxy pool\",\n        Protocol = \"PROXY\",\n        LbAlgorithm = \"LEAST_CONNECTIONS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproxy8080, err := gcore.NewCloudLoadBalancerListener(ctx, \"proxy_8080\", \u0026gcore.CloudLoadBalancerListenerArgs{\n\t\t\tProjectId:      pulumi.Float64(1),\n\t\t\tRegionId:       pulumi.Float64(1),\n\t\t\tLoadBalancerId: pulumi.Any(lb.Id),\n\t\t\tName:           pulumi.String(\"My first proxy listener with pool\"),\n\t\t\tProtocol:       pulumi.String(\"TCP\"),\n\t\t\tProtocolPort:   pulumi.Float64(8080),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCloudLoadBalancerPool(ctx, \"proxy_8080\", \u0026gcore.CloudLoadBalancerPoolArgs{\n\t\t\tProjectId:      pulumi.Float64(1),\n\t\t\tRegionId:       pulumi.Float64(1),\n\t\t\tLoadBalancerId: pulumi.Any(lb.Id),\n\t\t\tListenerId:     proxy8080.ID(),\n\t\t\tName:           pulumi.String(\"My first proxy pool\"),\n\t\t\tProtocol:       pulumi.String(\"PROXY\"),\n\t\t\tLbAlgorithm:    pulumi.String(\"LEAST_CONNECTIONS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudLoadBalancerListener;\nimport com.pulumi.gcore.CloudLoadBalancerListenerArgs;\nimport com.pulumi.gcore.CloudLoadBalancerPool;\nimport com.pulumi.gcore.CloudLoadBalancerPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var proxy8080 = new CloudLoadBalancerListener(\"proxy8080\", CloudLoadBalancerListenerArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .loadBalancerId(lb.id())\n            .name(\"My first proxy listener with pool\")\n            .protocol(\"TCP\")\n            .protocolPort(8080.0)\n            .build());\n\n        var proxy8080CloudLoadBalancerPool = new CloudLoadBalancerPool(\"proxy8080CloudLoadBalancerPool\", CloudLoadBalancerPoolArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .loadBalancerId(lb.id())\n            .listenerId(proxy8080.id())\n            .name(\"My first proxy pool\")\n            .protocol(\"PROXY\")\n            .lbAlgorithm(\"LEAST_CONNECTIONS\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  proxy8080:\n    type: gcore:CloudLoadBalancerListener\n    name: proxy_8080\n    properties:\n      projectId: 1\n      regionId: 1\n      loadBalancerId: ${lb.id}\n      name: My first proxy listener with pool\n      protocol: TCP\n      protocolPort: 8080\n  proxy8080CloudLoadBalancerPool:\n    type: gcore:CloudLoadBalancerPool\n    name: proxy_8080\n    properties:\n      projectId: 1\n      regionId: 1\n      loadBalancerId: ${lb.id}\n      listenerId: ${proxy8080.id}\n      name: My first proxy pool\n      protocol: PROXY\n      lbAlgorithm: LEAST_CONNECTIONS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudLoadBalancerPool:CloudLoadBalancerPool example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003cpool_id\u003e'\n```\n\n","properties":{"adminStateUp":{"type":"boolean","description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n"},"caSecretId":{"type":"string","description":"Secret ID of CA certificate bundle\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"crlSecretId":{"type":"string","description":"Secret ID of CA revocation list file\n"},"healthmonitor":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerPoolHealthmonitor:CloudLoadBalancerPoolHealthmonitor","description":"Health monitor details\n"},"lbAlgorithm":{"type":"string","description":"Load balancer algorithm\nAvailable values: \"LEAST*CONNECTIONS\", \"ROUND*ROBIN\", \"SOURCE_IP\".\n"},"listenerId":{"type":"string","description":"Listener ID\n"},"listeners":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerPoolListener:CloudLoadBalancerPoolListener"},"description":"Listeners IDs\n"},"loadBalancerId":{"type":"string","description":"Loadbalancer ID\n"},"loadbalancers":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerPoolLoadbalancer:CloudLoadBalancerPoolLoadbalancer"},"description":"Load balancers IDs\n"},"members":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerPoolMember:CloudLoadBalancerPoolMember"},"description":"Pool members\n"},"name":{"type":"string","description":"Pool name\n"},"operatingStatus":{"type":"string","description":"Pool operating status\nAvailable values: \"DEGRADED\", \"DRAINING\", \"ERROR\", \"NO_MONITOR\", \"OFFLINE\", \"ONLINE\".\n"},"projectId":{"type":"number","description":"Project ID\n"},"protocol":{"type":"string","description":"Protocol\nAvailable values: \"HTTP\", \"HTTPS\", \"PROXY\", \"PROXYV2\", \"TCP\", \"UDP\".\n"},"provisioningStatus":{"type":"string","description":"Pool lifecycle status\nAvailable values: \"ACTIVE\", \"DELETED\", \"ERROR\", \"PENDING*CREATE\", \"PENDING*DELETE\", \"PENDING_UPDATE\".\n"},"regionId":{"type":"number","description":"Region ID\n"},"secretId":{"type":"string","description":"Secret ID for TLS client authentication to the member servers\n"},"sessionPersistence":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerPoolSessionPersistence:CloudLoadBalancerPoolSessionPersistence","description":"Session persistence details\n"},"timeoutMemberConnect":{"type":"number","description":"Backend member connection timeout in milliseconds\n"},"timeoutMemberData":{"type":"number","description":"Backend member inactivity timeout in milliseconds\n"}},"type":"object","required":["creatorTaskId","lbAlgorithm","listeners","loadbalancers","members","name","operatingStatus","protocol","provisioningStatus"],"inputProperties":{"adminStateUp":{"type":"boolean","description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n"},"caSecretId":{"type":"string","description":"Secret ID of CA certificate bundle\n"},"crlSecretId":{"type":"string","description":"Secret ID of CA revocation list file\n"},"healthmonitor":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerPoolHealthmonitor:CloudLoadBalancerPoolHealthmonitor","description":"Health monitor details\n"},"lbAlgorithm":{"type":"string","description":"Load balancer algorithm\nAvailable values: \"LEAST*CONNECTIONS\", \"ROUND*ROBIN\", \"SOURCE_IP\".\n"},"listenerId":{"type":"string","description":"Listener ID\n"},"loadBalancerId":{"type":"string","description":"Loadbalancer ID\n"},"members":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerPoolMember:CloudLoadBalancerPoolMember"},"description":"Pool members\n"},"name":{"type":"string","description":"Pool name\n"},"projectId":{"type":"number","description":"Project ID\n"},"protocol":{"type":"string","description":"Protocol\nAvailable values: \"HTTP\", \"HTTPS\", \"PROXY\", \"PROXYV2\", \"TCP\", \"UDP\".\n"},"regionId":{"type":"number","description":"Region ID\n"},"secretId":{"type":"string","description":"Secret ID for TLS client authentication to the member servers\n"},"sessionPersistence":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerPoolSessionPersistence:CloudLoadBalancerPoolSessionPersistence","description":"Session persistence details\n"},"timeoutMemberConnect":{"type":"number","description":"Backend member connection timeout in milliseconds\n"},"timeoutMemberData":{"type":"number","description":"Backend member inactivity timeout in milliseconds\n"}},"requiredInputs":["lbAlgorithm","protocol"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudLoadBalancerPool resources.\n","properties":{"adminStateUp":{"type":"boolean","description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n"},"caSecretId":{"type":"string","description":"Secret ID of CA certificate bundle\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"crlSecretId":{"type":"string","description":"Secret ID of CA revocation list file\n"},"healthmonitor":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerPoolHealthmonitor:CloudLoadBalancerPoolHealthmonitor","description":"Health monitor details\n"},"lbAlgorithm":{"type":"string","description":"Load balancer algorithm\nAvailable values: \"LEAST*CONNECTIONS\", \"ROUND*ROBIN\", \"SOURCE_IP\".\n"},"listenerId":{"type":"string","description":"Listener ID\n"},"listeners":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerPoolListener:CloudLoadBalancerPoolListener"},"description":"Listeners IDs\n"},"loadBalancerId":{"type":"string","description":"Loadbalancer ID\n"},"loadbalancers":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerPoolLoadbalancer:CloudLoadBalancerPoolLoadbalancer"},"description":"Load balancers IDs\n"},"members":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerPoolMember:CloudLoadBalancerPoolMember"},"description":"Pool members\n"},"name":{"type":"string","description":"Pool name\n"},"operatingStatus":{"type":"string","description":"Pool operating status\nAvailable values: \"DEGRADED\", \"DRAINING\", \"ERROR\", \"NO_MONITOR\", \"OFFLINE\", \"ONLINE\".\n"},"projectId":{"type":"number","description":"Project ID\n"},"protocol":{"type":"string","description":"Protocol\nAvailable values: \"HTTP\", \"HTTPS\", \"PROXY\", \"PROXYV2\", \"TCP\", \"UDP\".\n"},"provisioningStatus":{"type":"string","description":"Pool lifecycle status\nAvailable values: \"ACTIVE\", \"DELETED\", \"ERROR\", \"PENDING*CREATE\", \"PENDING*DELETE\", \"PENDING_UPDATE\".\n"},"regionId":{"type":"number","description":"Region ID\n"},"secretId":{"type":"string","description":"Secret ID for TLS client authentication to the member servers\n"},"sessionPersistence":{"$ref":"#/types/gcore:index%2FCloudLoadBalancerPoolSessionPersistence:CloudLoadBalancerPoolSessionPersistence","description":"Session persistence details\n"},"timeoutMemberConnect":{"type":"number","description":"Backend member connection timeout in milliseconds\n"},"timeoutMemberData":{"type":"number","description":"Backend member inactivity timeout in milliseconds\n"}},"type":"object"}},"gcore:index/cloudLoadBalancerPoolMember:CloudLoadBalancerPoolMember":{"description":"Pool members represent backend instances that receive load-balanced traffic from a pool.\n\n## Example Usage\n\n### Instance member with private IP\n\nAdds a compute instance as a pool member using its reserved fixed IP address.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  instanceMemberPrivateNetwork:\n    type: gcore:CloudNetwork\n    name: instance_member_private_network\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-private-network\n  instanceMemberPrivateSubnet:\n    type: gcore:CloudNetworkSubnet\n    name: instance_member_private_subnet\n    properties:\n      projectId: 1\n      regionId: 1\n      cidr: 10.0.0.0/24\n      name: my-private-network-subnet\n      networkId: ${instanceMemberPrivateNetwork.id}\n  instanceMemberFixedIp:\n    type: gcore:CloudReservedFixedIp\n    name: instance_member_fixed_ip\n    properties:\n      projectId: 1\n      regionId: 1\n      type: ip_address\n      networkId: ${instanceMemberPrivateNetwork.id}\n      subnetId: ${instanceMemberPrivateSubnet.id}\n      fixedIpAddress: 10.0.0.11\n      isVip: false\n  instanceMemberVolume:\n    type: gcore:CloudVolume\n    name: instance_member_volume\n    properties:\n      projectId: 1\n      regionId: 1\n      name: boot volume\n      typeName: ssd_hiiops\n      size: 10\n      imageId: your-ubuntu-image-id\n  instanceMember:\n    type: gcore:CloudInstance\n    name: instance_member\n    properties:\n      projectId: 1\n      regionId: 1\n      nameTemplate: ed-c16-{ip_octets}\n      flavor: g1-standard-1-2\n      volumes:\n        - volumeId: ${instanceMemberVolume.id}\n          bootIndex: 0\n      interfaces:\n        - type: reserved_fixed_ip\n          name: my-private-network-interface\n          portId: ${instanceMemberFixedIp.portId}\n          securityGroups:\n            - id: your-security-group-id\n  instanceMemberCloudLoadBalancerPoolMember:\n    type: gcore:CloudLoadBalancerPoolMember\n    name: instance_member\n    properties:\n      projectId: 1\n      regionId: 1\n      poolId: ${http.id}\n      instanceId: ${instanceMember.id}\n      address: ${instanceMemberFixedIp.fixedIpAddress}\n      protocolPort: 80\n      weight: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Private member with subnet\n\nAdds a private IP address from a specific subnet as a pool member.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  privateNetwork:\n    type: gcore:CloudNetwork\n    name: private_network\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-private-network\n  privateSubnet:\n    type: gcore:CloudNetworkSubnet\n    name: private_subnet\n    properties:\n      projectId: 1\n      regionId: 1\n      cidr: 10.0.0.0/24\n      name: my-private-network-subnet\n      networkId: ${privateNetwork.id}\n  fixedIp:\n    type: gcore:CloudReservedFixedIp\n    name: fixed_ip\n    properties:\n      projectId: 1\n      regionId: 1\n      type: ip_address\n      networkId: ${privateNetwork.id}\n      subnetId: ${privateSubnet.id}\n      fixedIpAddress: 10.0.0.10\n      isVip: false\n  privateMember:\n    type: gcore:CloudLoadBalancerPoolMember\n    name: private_member\n    properties:\n      projectId: 1\n      regionId: 1\n      poolId: ${http.id}\n      address: ${fixedIp.fixedIpAddress}\n      subnetId: ${fixedIp.subnetId}\n      protocolPort: 80\n      weight: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Public member\n\nAdds a public IP address as a pool member.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst publicMember = new gcore.CloudLoadBalancerPoolMember(\"public_member\", {\n    projectId: 1,\n    regionId: 1,\n    poolId: http.id,\n    address: \"8.8.8.8\",\n    protocolPort: 80,\n    weight: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npublic_member = gcore.CloudLoadBalancerPoolMember(\"public_member\",\n    project_id=1,\n    region_id=1,\n    pool_id=http[\"id\"],\n    address=\"8.8.8.8\",\n    protocol_port=80,\n    weight=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var publicMember = new Gcore.CloudLoadBalancerPoolMember(\"public_member\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        PoolId = http.Id,\n        Address = \"8.8.8.8\",\n        ProtocolPort = 80,\n        Weight = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.NewCloudLoadBalancerPoolMember(ctx, \"public_member\", \u0026gcore.CloudLoadBalancerPoolMemberArgs{\n\t\t\tProjectId:    pulumi.Float64(1),\n\t\t\tRegionId:     pulumi.Float64(1),\n\t\t\tPoolId:       pulumi.Any(http.Id),\n\t\t\tAddress:      pulumi.String(\"8.8.8.8\"),\n\t\t\tProtocolPort: pulumi.Float64(80),\n\t\t\tWeight:       pulumi.Float64(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudLoadBalancerPoolMember;\nimport com.pulumi.gcore.CloudLoadBalancerPoolMemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var publicMember = new CloudLoadBalancerPoolMember(\"publicMember\", CloudLoadBalancerPoolMemberArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .poolId(http.id())\n            .address(\"8.8.8.8\")\n            .protocolPort(80.0)\n            .weight(1.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  publicMember:\n    type: gcore:CloudLoadBalancerPoolMember\n    name: public_member\n    properties:\n      projectId: 1\n      regionId: 1\n      poolId: ${http.id}\n      address: 8.8.8.8\n      protocolPort: 80\n      weight: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"address":{"type":"string","description":"Member IP address\n"},"adminStateUp":{"type":"boolean","description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n"},"backup":{"type":"boolean","description":"Set to true if the member is a backup member, to which traffic will be sent exclusively when all non-backup members will be unreachable. It allows to realize ACTIVE-BACKUP load balancing without thinking about VRRP and VIP configuration. Default is false.\n"},"instanceId":{"type":"string","description":"Either \u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e should be provided\n"},"monitorAddress":{"type":"string","description":"An alternate IP address used for health monitoring of a backend member. Default is null which monitors the member address.\n"},"monitorPort":{"type":"number","description":"An alternate protocol port used for health monitoring of a backend member. Default is null which monitors the member \u003cspan pulumi-lang-nodejs=\"`protocolPort`\" pulumi-lang-dotnet=\"`ProtocolPort`\" pulumi-lang-go=\"`protocolPort`\" pulumi-lang-python=\"`protocol_port`\" pulumi-lang-yaml=\"`protocolPort`\" pulumi-lang-java=\"`protocolPort`\"\u003e`protocol_port`\u003c/span\u003e.\n"},"poolId":{"type":"string","description":"Pool ID\n"},"projectId":{"type":"number","description":"Project ID\n"},"protocolPort":{"type":"number","description":"Member IP port\n"},"regionId":{"type":"number","description":"Region ID\n"},"subnetId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e in which \u003cspan pulumi-lang-nodejs=\"`address`\" pulumi-lang-dotnet=\"`Address`\" pulumi-lang-go=\"`address`\" pulumi-lang-python=\"`address`\" pulumi-lang-yaml=\"`address`\" pulumi-lang-java=\"`address`\"\u003e`address`\u003c/span\u003e is present. Either \u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e should be provided\n"},"weight":{"type":"number","description":"Member weight. Valid values are 0 \u003c \u003cspan pulumi-lang-nodejs=\"`weight`\" pulumi-lang-dotnet=\"`Weight`\" pulumi-lang-go=\"`weight`\" pulumi-lang-python=\"`weight`\" pulumi-lang-yaml=\"`weight`\" pulumi-lang-java=\"`weight`\"\u003e`weight`\u003c/span\u003e \u003c= 256, defaults to 1. Controls traffic distribution based on the pool's load balancing algorithm:\n"}},"type":"object","required":["address","adminStateUp","backup","poolId","protocolPort"],"inputProperties":{"address":{"type":"string","description":"Member IP address\n"},"adminStateUp":{"type":"boolean","description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n"},"backup":{"type":"boolean","description":"Set to true if the member is a backup member, to which traffic will be sent exclusively when all non-backup members will be unreachable. It allows to realize ACTIVE-BACKUP load balancing without thinking about VRRP and VIP configuration. Default is false.\n"},"instanceId":{"type":"string","description":"Either \u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e should be provided\n"},"monitorAddress":{"type":"string","description":"An alternate IP address used for health monitoring of a backend member. Default is null which monitors the member address.\n"},"monitorPort":{"type":"number","description":"An alternate protocol port used for health monitoring of a backend member. Default is null which monitors the member \u003cspan pulumi-lang-nodejs=\"`protocolPort`\" pulumi-lang-dotnet=\"`ProtocolPort`\" pulumi-lang-go=\"`protocolPort`\" pulumi-lang-python=\"`protocol_port`\" pulumi-lang-yaml=\"`protocolPort`\" pulumi-lang-java=\"`protocolPort`\"\u003e`protocol_port`\u003c/span\u003e.\n"},"poolId":{"type":"string","description":"Pool ID\n"},"projectId":{"type":"number","description":"Project ID\n"},"protocolPort":{"type":"number","description":"Member IP port\n"},"regionId":{"type":"number","description":"Region ID\n"},"subnetId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e in which \u003cspan pulumi-lang-nodejs=\"`address`\" pulumi-lang-dotnet=\"`Address`\" pulumi-lang-go=\"`address`\" pulumi-lang-python=\"`address`\" pulumi-lang-yaml=\"`address`\" pulumi-lang-java=\"`address`\"\u003e`address`\u003c/span\u003e is present. Either \u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e should be provided\n"},"weight":{"type":"number","description":"Member weight. Valid values are 0 \u003c \u003cspan pulumi-lang-nodejs=\"`weight`\" pulumi-lang-dotnet=\"`Weight`\" pulumi-lang-go=\"`weight`\" pulumi-lang-python=\"`weight`\" pulumi-lang-yaml=\"`weight`\" pulumi-lang-java=\"`weight`\"\u003e`weight`\u003c/span\u003e \u003c= 256, defaults to 1. Controls traffic distribution based on the pool's load balancing algorithm:\n"}},"requiredInputs":["address","poolId","protocolPort"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudLoadBalancerPoolMember resources.\n","properties":{"address":{"type":"string","description":"Member IP address\n"},"adminStateUp":{"type":"boolean","description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n"},"backup":{"type":"boolean","description":"Set to true if the member is a backup member, to which traffic will be sent exclusively when all non-backup members will be unreachable. It allows to realize ACTIVE-BACKUP load balancing without thinking about VRRP and VIP configuration. Default is false.\n"},"instanceId":{"type":"string","description":"Either \u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e should be provided\n"},"monitorAddress":{"type":"string","description":"An alternate IP address used for health monitoring of a backend member. Default is null which monitors the member address.\n"},"monitorPort":{"type":"number","description":"An alternate protocol port used for health monitoring of a backend member. Default is null which monitors the member \u003cspan pulumi-lang-nodejs=\"`protocolPort`\" pulumi-lang-dotnet=\"`ProtocolPort`\" pulumi-lang-go=\"`protocolPort`\" pulumi-lang-python=\"`protocol_port`\" pulumi-lang-yaml=\"`protocolPort`\" pulumi-lang-java=\"`protocolPort`\"\u003e`protocol_port`\u003c/span\u003e.\n"},"poolId":{"type":"string","description":"Pool ID\n"},"projectId":{"type":"number","description":"Project ID\n"},"protocolPort":{"type":"number","description":"Member IP port\n"},"regionId":{"type":"number","description":"Region ID\n"},"subnetId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e in which \u003cspan pulumi-lang-nodejs=\"`address`\" pulumi-lang-dotnet=\"`Address`\" pulumi-lang-go=\"`address`\" pulumi-lang-python=\"`address`\" pulumi-lang-yaml=\"`address`\" pulumi-lang-java=\"`address`\"\u003e`address`\u003c/span\u003e is present. Either \u003cspan pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\"\u003e`subnet_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e should be provided\n"},"weight":{"type":"number","description":"Member weight. Valid values are 0 \u003c \u003cspan pulumi-lang-nodejs=\"`weight`\" pulumi-lang-dotnet=\"`Weight`\" pulumi-lang-go=\"`weight`\" pulumi-lang-python=\"`weight`\" pulumi-lang-yaml=\"`weight`\" pulumi-lang-java=\"`weight`\"\u003e`weight`\u003c/span\u003e \u003c= 256, defaults to 1. Controls traffic distribution based on the pool's load balancing algorithm:\n"}},"type":"object"}},"gcore:index/cloudNetwork:CloudNetwork":{"description":"Networks provide software-defined networking infrastructure for connecting instances and other cloud resources within a region.\n\n## Example Usage\n\n### Network with subnet\n\nCreates a private network with a subnet and custom DNS nameservers.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create a private network\nconst network = new gcore.CloudNetwork(\"network\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-network\",\n    type: \"vxlan\",\n    tags: {\n        environment: \"production\",\n    },\n});\n// Create a subnet within the network\nconst subnet = new gcore.CloudNetworkSubnet(\"subnet\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-subnet\",\n    cidr: \"192.168.10.0/24\",\n    networkId: network.id,\n    dnsNameservers: [\n        \"8.8.4.4\",\n        \"1.1.1.1\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create a private network\nnetwork = gcore.CloudNetwork(\"network\",\n    project_id=1,\n    region_id=1,\n    name=\"my-network\",\n    type=\"vxlan\",\n    tags={\n        \"environment\": \"production\",\n    })\n# Create a subnet within the network\nsubnet = gcore.CloudNetworkSubnet(\"subnet\",\n    project_id=1,\n    region_id=1,\n    name=\"my-subnet\",\n    cidr=\"192.168.10.0/24\",\n    network_id=network.id,\n    dns_nameservers=[\n        \"8.8.4.4\",\n        \"1.1.1.1\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a private network\n    var network = new Gcore.CloudNetwork(\"network\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-network\",\n        Type = \"vxlan\",\n        Tags = \n        {\n            { \"environment\", \"production\" },\n        },\n    });\n\n    // Create a subnet within the network\n    var subnet = new Gcore.CloudNetworkSubnet(\"subnet\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-subnet\",\n        Cidr = \"192.168.10.0/24\",\n        NetworkId = network.Id,\n        DnsNameservers = new[]\n        {\n            \"8.8.4.4\",\n            \"1.1.1.1\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a private network\n\t\tnetwork, err := gcore.NewCloudNetwork(ctx, \"network\", \u0026gcore.CloudNetworkArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-network\"),\n\t\t\tType:      pulumi.String(\"vxlan\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a subnet within the network\n\t\t_, err = gcore.NewCloudNetworkSubnet(ctx, \"subnet\", \u0026gcore.CloudNetworkSubnetArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-subnet\"),\n\t\t\tCidr:      pulumi.String(\"192.168.10.0/24\"),\n\t\t\tNetworkId: network.ID(),\n\t\t\tDnsNameservers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"8.8.4.4\"),\n\t\t\t\tpulumi.String(\"1.1.1.1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudNetwork;\nimport com.pulumi.gcore.CloudNetworkArgs;\nimport com.pulumi.gcore.CloudNetworkSubnet;\nimport com.pulumi.gcore.CloudNetworkSubnetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a private network\n        var network = new CloudNetwork(\"network\", CloudNetworkArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-network\")\n            .type(\"vxlan\")\n            .tags(Map.of(\"environment\", \"production\"))\n            .build());\n\n        // Create a subnet within the network\n        var subnet = new CloudNetworkSubnet(\"subnet\", CloudNetworkSubnetArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-subnet\")\n            .cidr(\"192.168.10.0/24\")\n            .networkId(network.id())\n            .dnsNameservers(            \n                \"8.8.4.4\",\n                \"1.1.1.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a private network\n  network:\n    type: gcore:CloudNetwork\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-network\n      type: vxlan\n      tags:\n        environment: production\n  # Create a subnet within the network\n  subnet:\n    type: gcore:CloudNetworkSubnet\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-subnet\n      cidr: 192.168.10.0/24\n      networkId: ${network.id}\n      dnsNameservers:\n        - 8.8.4.4\n        - 1.1.1.1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudNetwork:CloudNetwork example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003cnetwork_id\u003e'\n```\n\n","properties":{"createdAt":{"type":"string","description":"Datetime when the network was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"default":{"type":"boolean","description":"True if network has \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e attribute\n"},"external":{"type":"boolean","description":"True if the network `router:external` attribute\n"},"mtu":{"type":"number","description":"MTU (maximum transmission unit). Default value is 1450\n"},"name":{"type":"string","description":"Network name\n"},"portSecurityEnabled":{"type":"boolean","description":"Indicates \u003cspan pulumi-lang-nodejs=\"`portSecurityEnabled`\" pulumi-lang-dotnet=\"`PortSecurityEnabled`\" pulumi-lang-go=\"`portSecurityEnabled`\" pulumi-lang-python=\"`port_security_enabled`\" pulumi-lang-yaml=\"`portSecurityEnabled`\" pulumi-lang-java=\"`portSecurityEnabled`\"\u003e`port_security_enabled`\u003c/span\u003e status of all newly created in the network ports.\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"segmentationId":{"type":"number","description":"Id of network segment\n"},"shared":{"type":"boolean","description":"True when the network is shared with your project by external owner\n"},"subnets":{"type":"array","items":{"type":"string"},"description":"List of subnetworks\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"type":{"type":"string","description":"vlan or vxlan network type is allowed. Default value is vxlan\nAvailable values: \"vlan\", \"vxlan\".\n"},"updatedAt":{"type":"string","description":"Datetime when the network was last updated\n"}},"type":"object","required":["createdAt","creatorTaskId","default","external","mtu","name","portSecurityEnabled","region","segmentationId","shared","subnets","type","updatedAt"],"inputProperties":{"name":{"type":"string","description":"Network name\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"type":{"type":"string","description":"vlan or vxlan network type is allowed. Default value is vxlan\nAvailable values: \"vlan\", \"vxlan\".\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CloudNetwork resources.\n","properties":{"createdAt":{"type":"string","description":"Datetime when the network was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"default":{"type":"boolean","description":"True if network has \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e attribute\n"},"external":{"type":"boolean","description":"True if the network `router:external` attribute\n"},"mtu":{"type":"number","description":"MTU (maximum transmission unit). Default value is 1450\n"},"name":{"type":"string","description":"Network name\n"},"portSecurityEnabled":{"type":"boolean","description":"Indicates \u003cspan pulumi-lang-nodejs=\"`portSecurityEnabled`\" pulumi-lang-dotnet=\"`PortSecurityEnabled`\" pulumi-lang-go=\"`portSecurityEnabled`\" pulumi-lang-python=\"`port_security_enabled`\" pulumi-lang-yaml=\"`portSecurityEnabled`\" pulumi-lang-java=\"`portSecurityEnabled`\"\u003e`port_security_enabled`\u003c/span\u003e status of all newly created in the network ports.\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"segmentationId":{"type":"number","description":"Id of network segment\n"},"shared":{"type":"boolean","description":"True when the network is shared with your project by external owner\n"},"subnets":{"type":"array","items":{"type":"string"},"description":"List of subnetworks\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"type":{"type":"string","description":"vlan or vxlan network type is allowed. Default value is vxlan\nAvailable values: \"vlan\", \"vxlan\".\n"},"updatedAt":{"type":"string","description":"Datetime when the network was last updated\n"}},"type":"object"}},"gcore:index/cloudNetworkRouter:CloudNetworkRouter":{"description":"Routers interconnect subnets and manage network routing, including external gateway connectivity and static routes.\n\n## Example Usage\n\n### Router with external gateway\n\nCreates a router with an external gateway (SNAT enabled) and a subnet interface.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create a router with external gateway and subnet interface\nconst main = new gcore.CloudNetworkRouter(\"main\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"main-router\",\n    externalGatewayInfo: {\n        enableSnat: true,\n        type: \"default\",\n    },\n    interfaces: [{\n        subnetId: _private.id,\n        type: \"subnet\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create a router with external gateway and subnet interface\nmain = gcore.CloudNetworkRouter(\"main\",\n    project_id=1,\n    region_id=1,\n    name=\"main-router\",\n    external_gateway_info={\n        \"enable_snat\": True,\n        \"type\": \"default\",\n    },\n    interfaces=[{\n        \"subnet_id\": private[\"id\"],\n        \"type\": \"subnet\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a router with external gateway and subnet interface\n    var main = new Gcore.CloudNetworkRouter(\"main\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"main-router\",\n        ExternalGatewayInfo = new Gcore.Inputs.CloudNetworkRouterExternalGatewayInfoArgs\n        {\n            EnableSnat = true,\n            Type = \"default\",\n        },\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.CloudNetworkRouterInterfaceArgs\n            {\n                SubnetId = @private.Id,\n                Type = \"subnet\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a router with external gateway and subnet interface\n\t\t_, err := gcore.NewCloudNetworkRouter(ctx, \"main\", \u0026gcore.CloudNetworkRouterArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"main-router\"),\n\t\t\tExternalGatewayInfo: \u0026gcore.CloudNetworkRouterExternalGatewayInfoArgs{\n\t\t\t\tEnableSnat: pulumi.Bool(true),\n\t\t\t\tType:       pulumi.String(\"default\"),\n\t\t\t},\n\t\t\tInterfaces: gcore.CloudNetworkRouterInterfaceArray{\n\t\t\t\t\u0026gcore.CloudNetworkRouterInterfaceArgs{\n\t\t\t\t\tSubnetId: pulumi.Any(private.Id),\n\t\t\t\t\tType:     pulumi.String(\"subnet\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudNetworkRouter;\nimport com.pulumi.gcore.CloudNetworkRouterArgs;\nimport com.pulumi.gcore.inputs.CloudNetworkRouterExternalGatewayInfoArgs;\nimport com.pulumi.gcore.inputs.CloudNetworkRouterInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a router with external gateway and subnet interface\n        var main = new CloudNetworkRouter(\"main\", CloudNetworkRouterArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"main-router\")\n            .externalGatewayInfo(CloudNetworkRouterExternalGatewayInfoArgs.builder()\n                .enableSnat(true)\n                .type(\"default\")\n                .build())\n            .interfaces(CloudNetworkRouterInterfaceArgs.builder()\n                .subnetId(private_.id())\n                .type(\"subnet\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a router with external gateway and subnet interface\n  main:\n    type: gcore:CloudNetworkRouter\n    properties:\n      projectId: 1\n      regionId: 1\n      name: main-router\n      externalGatewayInfo:\n        enableSnat: true\n        type: default\n      interfaces:\n        - subnetId: ${private.id}\n          type: subnet\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudNetworkRouter:CloudNetworkRouter example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003crouter_id\u003e'\n```\n\n","properties":{"createdAt":{"type":"string","description":"Datetime when the router was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"distributed":{"type":"boolean","description":"Whether the router is distributed or centralized.\n"},"externalGatewayInfo":{"$ref":"#/types/gcore:index%2FCloudNetworkRouterExternalGatewayInfo:CloudNetworkRouterExternalGatewayInfo"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudNetworkRouterInterface:CloudNetworkRouterInterface"},"description":"List of interfaces to attach to router immediately after creation.\n"},"name":{"type":"string","description":"name of router\n"},"projectId":{"type":"number"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number"},"routes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudNetworkRouterRoute:CloudNetworkRouterRoute"},"description":"List of custom routes.\n"},"status":{"type":"string","description":"Status of the router.\n"},"updatedAt":{"type":"string","description":"Datetime when the router was last updated\n"}},"type":"object","required":["createdAt","creatorTaskId","distributed","externalGatewayInfo","interfaces","name","region","routes","status","updatedAt"],"inputProperties":{"externalGatewayInfo":{"$ref":"#/types/gcore:index%2FCloudNetworkRouterExternalGatewayInfo:CloudNetworkRouterExternalGatewayInfo"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudNetworkRouterInterface:CloudNetworkRouterInterface"},"description":"List of interfaces to attach to router immediately after creation.\n"},"name":{"type":"string","description":"name of router\n"},"projectId":{"type":"number"},"regionId":{"type":"number"},"routes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudNetworkRouterRoute:CloudNetworkRouterRoute"},"description":"List of custom routes.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CloudNetworkRouter resources.\n","properties":{"createdAt":{"type":"string","description":"Datetime when the router was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"distributed":{"type":"boolean","description":"Whether the router is distributed or centralized.\n"},"externalGatewayInfo":{"$ref":"#/types/gcore:index%2FCloudNetworkRouterExternalGatewayInfo:CloudNetworkRouterExternalGatewayInfo"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudNetworkRouterInterface:CloudNetworkRouterInterface"},"description":"List of interfaces to attach to router immediately after creation.\n"},"name":{"type":"string","description":"name of router\n"},"projectId":{"type":"number"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number"},"routes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudNetworkRouterRoute:CloudNetworkRouterRoute"},"description":"List of custom routes.\n"},"status":{"type":"string","description":"Status of the router.\n"},"updatedAt":{"type":"string","description":"Datetime when the router was last updated\n"}},"type":"object"}},"gcore:index/cloudNetworkSubnet:CloudNetworkSubnet":{"description":"Subnets define IP address ranges within a network for instance connectivity, with support for DHCP and DNS configuration.\n\n## Example Usage\n\n### IPv4 subnet with custom DNS and host routes\n\nCreates an IPv4 subnet with DHCP, custom DNS nameservers, and static host routes.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create an IPv4 subnet with custom DNS and host routes\nconst subnetIpv4 = new gcore.CloudNetworkSubnet(\"subnet_ipv4\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"subnet-ipv4\",\n    cidr: \"192.168.10.0/24\",\n    networkId: network.id,\n    dnsNameservers: [\n        \"8.8.4.4\",\n        \"1.1.1.1\",\n    ],\n    enableDhcp: true,\n    gatewayIp: \"192.168.10.1\",\n    ipVersion: 4,\n    hostRoutes: [\n        {\n            destination: \"10.0.3.0/24\",\n            nexthop: \"10.0.0.13\",\n        },\n        {\n            destination: \"10.0.4.0/24\",\n            nexthop: \"10.0.0.14\",\n        },\n    ],\n    tags: {\n        environment: \"production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create an IPv4 subnet with custom DNS and host routes\nsubnet_ipv4 = gcore.CloudNetworkSubnet(\"subnet_ipv4\",\n    project_id=1,\n    region_id=1,\n    name=\"subnet-ipv4\",\n    cidr=\"192.168.10.0/24\",\n    network_id=network[\"id\"],\n    dns_nameservers=[\n        \"8.8.4.4\",\n        \"1.1.1.1\",\n    ],\n    enable_dhcp=True,\n    gateway_ip=\"192.168.10.1\",\n    ip_version=4,\n    host_routes=[\n        {\n            \"destination\": \"10.0.3.0/24\",\n            \"nexthop\": \"10.0.0.13\",\n        },\n        {\n            \"destination\": \"10.0.4.0/24\",\n            \"nexthop\": \"10.0.0.14\",\n        },\n    ],\n    tags={\n        \"environment\": \"production\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create an IPv4 subnet with custom DNS and host routes\n    var subnetIpv4 = new Gcore.CloudNetworkSubnet(\"subnet_ipv4\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"subnet-ipv4\",\n        Cidr = \"192.168.10.0/24\",\n        NetworkId = network.Id,\n        DnsNameservers = new[]\n        {\n            \"8.8.4.4\",\n            \"1.1.1.1\",\n        },\n        EnableDhcp = true,\n        GatewayIp = \"192.168.10.1\",\n        IpVersion = 4,\n        HostRoutes = new[]\n        {\n            new Gcore.Inputs.CloudNetworkSubnetHostRouteArgs\n            {\n                Destination = \"10.0.3.0/24\",\n                Nexthop = \"10.0.0.13\",\n            },\n            new Gcore.Inputs.CloudNetworkSubnetHostRouteArgs\n            {\n                Destination = \"10.0.4.0/24\",\n                Nexthop = \"10.0.0.14\",\n            },\n        },\n        Tags = \n        {\n            { \"environment\", \"production\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create an IPv4 subnet with custom DNS and host routes\n\t\t_, err := gcore.NewCloudNetworkSubnet(ctx, \"subnet_ipv4\", \u0026gcore.CloudNetworkSubnetArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"subnet-ipv4\"),\n\t\t\tCidr:      pulumi.String(\"192.168.10.0/24\"),\n\t\t\tNetworkId: pulumi.Any(network.Id),\n\t\t\tDnsNameservers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"8.8.4.4\"),\n\t\t\t\tpulumi.String(\"1.1.1.1\"),\n\t\t\t},\n\t\t\tEnableDhcp: pulumi.Bool(true),\n\t\t\tGatewayIp:  pulumi.String(\"192.168.10.1\"),\n\t\t\tIpVersion:  pulumi.Float64(4),\n\t\t\tHostRoutes: gcore.CloudNetworkSubnetHostRouteArray{\n\t\t\t\t\u0026gcore.CloudNetworkSubnetHostRouteArgs{\n\t\t\t\t\tDestination: pulumi.String(\"10.0.3.0/24\"),\n\t\t\t\t\tNexthop:     pulumi.String(\"10.0.0.13\"),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.CloudNetworkSubnetHostRouteArgs{\n\t\t\t\t\tDestination: pulumi.String(\"10.0.4.0/24\"),\n\t\t\t\t\tNexthop:     pulumi.String(\"10.0.0.14\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudNetworkSubnet;\nimport com.pulumi.gcore.CloudNetworkSubnetArgs;\nimport com.pulumi.gcore.inputs.CloudNetworkSubnetHostRouteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create an IPv4 subnet with custom DNS and host routes\n        var subnetIpv4 = new CloudNetworkSubnet(\"subnetIpv4\", CloudNetworkSubnetArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"subnet-ipv4\")\n            .cidr(\"192.168.10.0/24\")\n            .networkId(network.id())\n            .dnsNameservers(            \n                \"8.8.4.4\",\n                \"1.1.1.1\")\n            .enableDhcp(true)\n            .gatewayIp(\"192.168.10.1\")\n            .ipVersion(4.0)\n            .hostRoutes(            \n                CloudNetworkSubnetHostRouteArgs.builder()\n                    .destination(\"10.0.3.0/24\")\n                    .nexthop(\"10.0.0.13\")\n                    .build(),\n                CloudNetworkSubnetHostRouteArgs.builder()\n                    .destination(\"10.0.4.0/24\")\n                    .nexthop(\"10.0.0.14\")\n                    .build())\n            .tags(Map.of(\"environment\", \"production\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an IPv4 subnet with custom DNS and host routes\n  subnetIpv4:\n    type: gcore:CloudNetworkSubnet\n    name: subnet_ipv4\n    properties:\n      projectId: 1\n      regionId: 1\n      name: subnet-ipv4\n      cidr: 192.168.10.0/24\n      networkId: ${network.id}\n      dnsNameservers:\n        - 8.8.4.4\n        - 1.1.1.1\n      enableDhcp: true\n      gatewayIp: 192.168.10.1\n      ipVersion: 4\n      hostRoutes:\n        - destination: 10.0.3.0/24\n          nexthop: 10.0.0.13\n        - destination: 10.0.4.0/24\n          nexthop: 10.0.0.14\n      tags:\n        environment: production\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### IPv6 subnet\n\nCreates a basic IPv6 subnet.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create an IPv6 subnet\nconst subnetIpv6 = new gcore.CloudNetworkSubnet(\"subnet_ipv6\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"subnet-ipv6\",\n    cidr: \"fd00::/8\",\n    networkId: network.id,\n    ipVersion: 6,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create an IPv6 subnet\nsubnet_ipv6 = gcore.CloudNetworkSubnet(\"subnet_ipv6\",\n    project_id=1,\n    region_id=1,\n    name=\"subnet-ipv6\",\n    cidr=\"fd00::/8\",\n    network_id=network[\"id\"],\n    ip_version=6)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create an IPv6 subnet\n    var subnetIpv6 = new Gcore.CloudNetworkSubnet(\"subnet_ipv6\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"subnet-ipv6\",\n        Cidr = \"fd00::/8\",\n        NetworkId = network.Id,\n        IpVersion = 6,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create an IPv6 subnet\n\t\t_, err := gcore.NewCloudNetworkSubnet(ctx, \"subnet_ipv6\", \u0026gcore.CloudNetworkSubnetArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"subnet-ipv6\"),\n\t\t\tCidr:      pulumi.String(\"fd00::/8\"),\n\t\t\tNetworkId: pulumi.Any(network.Id),\n\t\t\tIpVersion: pulumi.Float64(6),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudNetworkSubnet;\nimport com.pulumi.gcore.CloudNetworkSubnetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create an IPv6 subnet\n        var subnetIpv6 = new CloudNetworkSubnet(\"subnetIpv6\", CloudNetworkSubnetArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"subnet-ipv6\")\n            .cidr(\"fd00::/8\")\n            .networkId(network.id())\n            .ipVersion(6.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an IPv6 subnet\n  subnetIpv6:\n    type: gcore:CloudNetworkSubnet\n    name: subnet_ipv6\n    properties:\n      projectId: 1\n      regionId: 1\n      name: subnet-ipv6\n      cidr: fd00::/8\n      networkId: ${network.id}\n      ipVersion: 6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudNetworkSubnet:CloudNetworkSubnet example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003csubnet_id\u003e'\n```\n\n","properties":{"availableIps":{"type":"number","description":"Number of available ips in subnet\n"},"cidr":{"type":"string","description":"CIDR\n"},"createdAt":{"type":"string","description":"Datetime when the subnet was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"dnsNameservers":{"type":"array","items":{"type":"string"},"description":"List IP addresses of DNS servers to advertise via DHCP.\n"},"enableDhcp":{"type":"boolean","description":"True if DHCP should be enabled\n"},"gatewayIp":{"type":"string","description":"Default GW IPv4 address to advertise in DHCP routes in this subnet. Omit this field to let the cloud backend allocate it automatically. Set to null if no gateway must be advertised by this subnet's DHCP (useful when attaching instances to multiple subnets in order to prevent default route conflicts).\n"},"hasRouter":{"type":"boolean","description":"Deprecated. Always returns \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.\n","deprecationMessage":"Deprecated"},"hostRoutes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudNetworkSubnetHostRoute:CloudNetworkSubnetHostRoute"},"description":"List of custom static routes to advertise via DHCP.\n"},"ipVersion":{"type":"number","description":"IP version\nAvailable values: 4, 6.\n"},"name":{"type":"string","description":"Subnet name\n"},"networkId":{"type":"string","description":"Network ID\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"totalIps":{"type":"number","description":"Total number of ips in subnet\n"},"updatedAt":{"type":"string","description":"Datetime when the subnet was last updated\n"}},"type":"object","required":["availableIps","cidr","createdAt","creatorTaskId","dnsNameservers","enableDhcp","gatewayIp","hasRouter","hostRoutes","ipVersion","name","networkId","region","totalIps","updatedAt"],"inputProperties":{"cidr":{"type":"string","description":"CIDR\n"},"dnsNameservers":{"type":"array","items":{"type":"string"},"description":"List IP addresses of DNS servers to advertise via DHCP.\n"},"enableDhcp":{"type":"boolean","description":"True if DHCP should be enabled\n"},"gatewayIp":{"type":"string","description":"Default GW IPv4 address to advertise in DHCP routes in this subnet. Omit this field to let the cloud backend allocate it automatically. Set to null if no gateway must be advertised by this subnet's DHCP (useful when attaching instances to multiple subnets in order to prevent default route conflicts).\n"},"hostRoutes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudNetworkSubnetHostRoute:CloudNetworkSubnetHostRoute"},"description":"List of custom static routes to advertise via DHCP.\n"},"ipVersion":{"type":"number","description":"IP version\nAvailable values: 4, 6.\n"},"name":{"type":"string","description":"Subnet name\n"},"networkId":{"type":"string","description":"Network ID\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"}},"requiredInputs":["cidr","networkId"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudNetworkSubnet resources.\n","properties":{"availableIps":{"type":"number","description":"Number of available ips in subnet\n"},"cidr":{"type":"string","description":"CIDR\n"},"createdAt":{"type":"string","description":"Datetime when the subnet was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"dnsNameservers":{"type":"array","items":{"type":"string"},"description":"List IP addresses of DNS servers to advertise via DHCP.\n"},"enableDhcp":{"type":"boolean","description":"True if DHCP should be enabled\n"},"gatewayIp":{"type":"string","description":"Default GW IPv4 address to advertise in DHCP routes in this subnet. Omit this field to let the cloud backend allocate it automatically. Set to null if no gateway must be advertised by this subnet's DHCP (useful when attaching instances to multiple subnets in order to prevent default route conflicts).\n"},"hasRouter":{"type":"boolean","description":"Deprecated. Always returns \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.\n","deprecationMessage":"Deprecated"},"hostRoutes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudNetworkSubnetHostRoute:CloudNetworkSubnetHostRoute"},"description":"List of custom static routes to advertise via DHCP.\n"},"ipVersion":{"type":"number","description":"IP version\nAvailable values: 4, 6.\n"},"name":{"type":"string","description":"Subnet name\n"},"networkId":{"type":"string","description":"Network ID\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"totalIps":{"type":"number","description":"Total number of ips in subnet\n"},"updatedAt":{"type":"string","description":"Datetime when the subnet was last updated\n"}},"type":"object"}},"gcore:index/cloudPlacementGroup:CloudPlacementGroup":{"description":"Placement groups enforce affinity or anti-affinity policies that control whether virtual machines are hosted on the same or different physical servers.\n\n## Example Usage\n\n### Basic placement group\n\nCreates an affinity placement group.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst servergroup = new gcore.CloudPlacementGroup(\"servergroup\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-servergroup\",\n    policy: \"affinity\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nservergroup = gcore.CloudPlacementGroup(\"servergroup\",\n    project_id=1,\n    region_id=1,\n    name=\"my-servergroup\",\n    policy=\"affinity\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var servergroup = new Gcore.CloudPlacementGroup(\"servergroup\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-servergroup\",\n        Policy = \"affinity\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.NewCloudPlacementGroup(ctx, \"servergroup\", \u0026gcore.CloudPlacementGroupArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-servergroup\"),\n\t\t\tPolicy:    pulumi.String(\"affinity\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudPlacementGroup;\nimport com.pulumi.gcore.CloudPlacementGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var servergroup = new CloudPlacementGroup(\"servergroup\", CloudPlacementGroupArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-servergroup\")\n            .policy(\"affinity\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  servergroup:\n    type: gcore:CloudPlacementGroup\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-servergroup\n      policy: affinity\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Placement group with two instances\n\nCreates a placement group and assigns two compute instances to it.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  bootVolume:\n    type: gcore:CloudVolume\n    name: boot_volume\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-boot-volume\n      typeName: ssd_hiiops\n      size: 5\n      imageId: your-ubuntu-image-id\n  bootVolume2:\n    type: gcore:CloudVolume\n    name: boot_volume2\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-boot-volume2\n      typeName: ssd_hiiops\n      size: 5\n      imageId: your-ubuntu-image-id\n  instance:\n    type: gcore:CloudInstance\n    properties:\n      projectId: 1\n      regionId: 1\n      flavor: g1-standard-2-4\n      name: my-instance\n      volumes:\n        - volumeId: ${bootVolume.id}\n          bootIndex: 0\n      interfaces:\n        - type: external\n          name: my-external-interface\n  instance2:\n    type: gcore:CloudInstance\n    properties:\n      projectId: 1\n      regionId: 1\n      flavor: g1-standard-2-4\n      name: my-instance2\n      volumes:\n        - volumeId: ${bootVolume2.id}\n          bootIndex: 0\n      interfaces:\n        - type: external\n          name: my-external-interface\n  servergroup:\n    type: gcore:CloudPlacementGroup\n    properties:\n      projectId: 1\n      regionId: 1\n      name: default\n      policy: affinity\n      instances:\n        - instanceId: ${instance.id}\n        - instanceId: ${instance2.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudPlacementGroup:CloudPlacementGroup example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003cgroup_id\u003e'\n```\n\n","properties":{"instances":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudPlacementGroupInstance:CloudPlacementGroupInstance"},"description":"The list of instances in this server group.\n"},"name":{"type":"string","description":"The name of the server group.\n"},"policy":{"type":"string","description":"The server group policy.\nAvailable values: \"affinity\", \"anti-affinity\", \"soft-anti-affinity\".\n"},"projectId":{"type":"number"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number"},"servergroupId":{"type":"string","description":"The ID of the server group.\n"}},"type":"object","required":["instances","name","policy","region","servergroupId"],"inputProperties":{"instances":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudPlacementGroupInstance:CloudPlacementGroupInstance"},"description":"The list of instances in this server group.\n"},"name":{"type":"string","description":"The name of the server group.\n"},"policy":{"type":"string","description":"The server group policy.\nAvailable values: \"affinity\", \"anti-affinity\", \"soft-anti-affinity\".\n"},"projectId":{"type":"number"},"regionId":{"type":"number"}},"requiredInputs":["policy"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudPlacementGroup resources.\n","properties":{"instances":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudPlacementGroupInstance:CloudPlacementGroupInstance"},"description":"The list of instances in this server group.\n"},"name":{"type":"string","description":"The name of the server group.\n"},"policy":{"type":"string","description":"The server group policy.\nAvailable values: \"affinity\", \"anti-affinity\", \"soft-anti-affinity\".\n"},"projectId":{"type":"number"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number"},"servergroupId":{"type":"string","description":"The ID of the server group.\n"}},"type":"object"}},"gcore:index/cloudProject:CloudProject":{"description":"Projects are organizational units that group cloud resources for access control and billing.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudProject = new gcore.CloudProject(\"example_cloud_project\", {\n    name: \"my-project\",\n    description: \"Project description\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_project = gcore.CloudProject(\"example_cloud_project\",\n    name=\"my-project\",\n    description=\"Project description\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudProject = new Gcore.CloudProject(\"example_cloud_project\", new()\n    {\n        Name = \"my-project\",\n        Description = \"Project description\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.NewCloudProject(ctx, \"example_cloud_project\", \u0026gcore.CloudProjectArgs{\n\t\t\tName:        pulumi.String(\"my-project\"),\n\t\t\tDescription: pulumi.String(\"Project description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudProject;\nimport com.pulumi.gcore.CloudProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleCloudProject = new CloudProject(\"exampleCloudProject\", CloudProjectArgs.builder()\n            .name(\"my-project\")\n            .description(\"Project description\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleCloudProject:\n    type: gcore:CloudProject\n    name: example_cloud_project\n    properties:\n      name: my-project\n      description: Project description\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n```sh\n$ pulumi import gcore:index/cloudProject:CloudProject example '\u003cproject_id\u003e'\n```\n\n","properties":{"clientId":{"type":"number","description":"ID associated with the client.\n"},"cloudProjectId":{"type":"number","description":"Project ID, which is automatically generated upon creation.\n"},"createdAt":{"type":"string","description":"Datetime of creation, which is automatically generated.\n"},"description":{"type":"string","description":"Description of the project.\n"},"isDefault":{"type":"boolean","description":"Indicates if the project is the default one. Each client always has one default project.\n"},"name":{"type":"string","description":"Unique project name for a client. Each client always has one \"default\" project.\n"},"state":{"type":"string","description":"The state of the project.\n"}},"type":"object","required":["clientId","cloudProjectId","createdAt","description","isDefault","name","state"],"inputProperties":{"description":{"type":"string","description":"Description of the project.\n"},"name":{"type":"string","description":"Unique project name for a client. Each client always has one \"default\" project.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CloudProject resources.\n","properties":{"clientId":{"type":"number","description":"ID associated with the client.\n"},"cloudProjectId":{"type":"number","description":"Project ID, which is automatically generated upon creation.\n"},"createdAt":{"type":"string","description":"Datetime of creation, which is automatically generated.\n"},"description":{"type":"string","description":"Description of the project.\n"},"isDefault":{"type":"boolean","description":"Indicates if the project is the default one. Each client always has one default project.\n"},"name":{"type":"string","description":"Unique project name for a client. Each client always has one \"default\" project.\n"},"state":{"type":"string","description":"The state of the project.\n"}},"type":"object"}},"gcore:index/cloudReservedFixedIp:CloudReservedFixedIp":{"description":"Reserved fixed IPs are static IP addresses that persist independently of instances and can be used as virtual IPs (VIPs) for high availability.\n\n## Example Usage\n\n### Reserve an external IP address\n\nReserves a public (external) IP address.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Reserve an external (public) IP address\nconst external = new gcore.CloudReservedFixedIp(\"external\", {\n    projectId: 1,\n    regionId: 1,\n    type: \"external\",\n    isVip: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Reserve an external (public) IP address\nexternal = gcore.CloudReservedFixedIp(\"external\",\n    project_id=1,\n    region_id=1,\n    type=\"external\",\n    is_vip=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Reserve an external (public) IP address\n    var external = new Gcore.CloudReservedFixedIp(\"external\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Type = \"external\",\n        IsVip = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Reserve an external (public) IP address\n\t\t_, err := gcore.NewCloudReservedFixedIp(ctx, \"external\", \u0026gcore.CloudReservedFixedIpArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tType:      pulumi.String(\"external\"),\n\t\t\tIsVip:     pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudReservedFixedIp;\nimport com.pulumi.gcore.CloudReservedFixedIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Reserve an external (public) IP address\n        var external = new CloudReservedFixedIp(\"external\", CloudReservedFixedIpArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .type(\"external\")\n            .isVip(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Reserve an external (public) IP address\n  external:\n    type: gcore:CloudReservedFixedIp\n    properties:\n      projectId: 1\n      regionId: 1\n      type: external\n      isVip: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Reserve a private IP in any subnet\n\nReserves a private IP in any available subnet of a network.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Reserve a private IP in any available subnet of the network\nconst inAnySubnet = new gcore.CloudReservedFixedIp(\"in_any_subnet\", {\n    projectId: 1,\n    regionId: 1,\n    type: \"any_subnet\",\n    networkId: privateNetwork.id,\n    isVip: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Reserve a private IP in any available subnet of the network\nin_any_subnet = gcore.CloudReservedFixedIp(\"in_any_subnet\",\n    project_id=1,\n    region_id=1,\n    type=\"any_subnet\",\n    network_id=private_network[\"id\"],\n    is_vip=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Reserve a private IP in any available subnet of the network\n    var inAnySubnet = new Gcore.CloudReservedFixedIp(\"in_any_subnet\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Type = \"any_subnet\",\n        NetworkId = privateNetwork.Id,\n        IsVip = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Reserve a private IP in any available subnet of the network\n\t\t_, err := gcore.NewCloudReservedFixedIp(ctx, \"in_any_subnet\", \u0026gcore.CloudReservedFixedIpArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tType:      pulumi.String(\"any_subnet\"),\n\t\t\tNetworkId: pulumi.Any(privateNetwork.Id),\n\t\t\tIsVip:     pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudReservedFixedIp;\nimport com.pulumi.gcore.CloudReservedFixedIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Reserve a private IP in any available subnet of the network\n        var inAnySubnet = new CloudReservedFixedIp(\"inAnySubnet\", CloudReservedFixedIpArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .type(\"any_subnet\")\n            .networkId(privateNetwork.id())\n            .isVip(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Reserve a private IP in any available subnet of the network\n  inAnySubnet:\n    type: gcore:CloudReservedFixedIp\n    name: in_any_subnet\n    properties:\n      projectId: 1\n      regionId: 1\n      type: any_subnet\n      networkId: ${privateNetwork.id}\n      isVip: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Reserve a private IP in a specific subnet\n\nReserves a private IP in a specific subnet of a network.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Reserve a private IP in a specific subnet\nconst inSubnet = new gcore.CloudReservedFixedIp(\"in_subnet\", {\n    projectId: 1,\n    regionId: 1,\n    type: \"subnet\",\n    networkId: privateNetwork.id,\n    subnetId: privateSubnet0.id,\n    isVip: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Reserve a private IP in a specific subnet\nin_subnet = gcore.CloudReservedFixedIp(\"in_subnet\",\n    project_id=1,\n    region_id=1,\n    type=\"subnet\",\n    network_id=private_network[\"id\"],\n    subnet_id=private_subnet0[\"id\"],\n    is_vip=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Reserve a private IP in a specific subnet\n    var inSubnet = new Gcore.CloudReservedFixedIp(\"in_subnet\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Type = \"subnet\",\n        NetworkId = privateNetwork.Id,\n        SubnetId = privateSubnet0.Id,\n        IsVip = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Reserve a private IP in a specific subnet\n\t\t_, err := gcore.NewCloudReservedFixedIp(ctx, \"in_subnet\", \u0026gcore.CloudReservedFixedIpArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tType:      pulumi.String(\"subnet\"),\n\t\t\tNetworkId: pulumi.Any(privateNetwork.Id),\n\t\t\tSubnetId:  pulumi.Any(privateSubnet0.Id),\n\t\t\tIsVip:     pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudReservedFixedIp;\nimport com.pulumi.gcore.CloudReservedFixedIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Reserve a private IP in a specific subnet\n        var inSubnet = new CloudReservedFixedIp(\"inSubnet\", CloudReservedFixedIpArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .type(\"subnet\")\n            .networkId(privateNetwork.id())\n            .subnetId(privateSubnet0.id())\n            .isVip(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Reserve a private IP in a specific subnet\n  inSubnet:\n    type: gcore:CloudReservedFixedIp\n    name: in_subnet\n    properties:\n      projectId: 1\n      regionId: 1\n      type: subnet\n      networkId: ${privateNetwork.id}\n      subnetId: ${privateSubnet0.id}\n      isVip: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Reserve a specific IP address\n\nReserves a specific IP address in a subnet.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Reserve a specific IP address in a subnet\nconst specificIp = new gcore.CloudReservedFixedIp(\"specific_ip\", {\n    projectId: 1,\n    regionId: 1,\n    type: \"ip_address\",\n    networkId: privateNetwork.id,\n    subnetId: privateSubnet0.id,\n    ipAddress: \"172.16.0.254\",\n    isVip: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Reserve a specific IP address in a subnet\nspecific_ip = gcore.CloudReservedFixedIp(\"specific_ip\",\n    project_id=1,\n    region_id=1,\n    type=\"ip_address\",\n    network_id=private_network[\"id\"],\n    subnet_id=private_subnet0[\"id\"],\n    ip_address=\"172.16.0.254\",\n    is_vip=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Reserve a specific IP address in a subnet\n    var specificIp = new Gcore.CloudReservedFixedIp(\"specific_ip\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Type = \"ip_address\",\n        NetworkId = privateNetwork.Id,\n        SubnetId = privateSubnet0.Id,\n        IpAddress = \"172.16.0.254\",\n        IsVip = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Reserve a specific IP address in a subnet\n\t\t_, err := gcore.NewCloudReservedFixedIp(ctx, \"specific_ip\", \u0026gcore.CloudReservedFixedIpArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tType:      pulumi.String(\"ip_address\"),\n\t\t\tNetworkId: pulumi.Any(privateNetwork.Id),\n\t\t\tSubnetId:  pulumi.Any(privateSubnet0.Id),\n\t\t\tIpAddress: pulumi.String(\"172.16.0.254\"),\n\t\t\tIsVip:     pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudReservedFixedIp;\nimport com.pulumi.gcore.CloudReservedFixedIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Reserve a specific IP address in a subnet\n        var specificIp = new CloudReservedFixedIp(\"specificIp\", CloudReservedFixedIpArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .type(\"ip_address\")\n            .networkId(privateNetwork.id())\n            .subnetId(privateSubnet0.id())\n            .ipAddress(\"172.16.0.254\")\n            .isVip(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Reserve a specific IP address in a subnet\n  specificIp:\n    type: gcore:CloudReservedFixedIp\n    name: specific_ip\n    properties:\n      projectId: 1\n      regionId: 1\n      type: ip_address\n      networkId: ${privateNetwork.id}\n      subnetId: ${privateSubnet0.id}\n      ipAddress: 172.16.0.254\n      isVip: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Reserve an existing port\n\nReserves an existing port, such as a load balancer VIP port.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Reserve an existing port (e.g., from a load balancer VIP)\nconst lb = new gcore.CloudLoadBalancer(\"lb\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-load-balancer\",\n    flavor: \"lb1-1-2\",\n});\nconst fromPort = new gcore.CloudReservedFixedIp(\"from_port\", {\n    projectId: 1,\n    regionId: 1,\n    type: \"port\",\n    portId: lb.vipPortId,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Reserve an existing port (e.g., from a load balancer VIP)\nlb = gcore.CloudLoadBalancer(\"lb\",\n    project_id=1,\n    region_id=1,\n    name=\"my-load-balancer\",\n    flavor=\"lb1-1-2\")\nfrom_port = gcore.CloudReservedFixedIp(\"from_port\",\n    project_id=1,\n    region_id=1,\n    type=\"port\",\n    port_id=lb.vip_port_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Reserve an existing port (e.g., from a load balancer VIP)\n    var lb = new Gcore.CloudLoadBalancer(\"lb\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-load-balancer\",\n        Flavor = \"lb1-1-2\",\n    });\n\n    var fromPort = new Gcore.CloudReservedFixedIp(\"from_port\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Type = \"port\",\n        PortId = lb.VipPortId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Reserve an existing port (e.g., from a load balancer VIP)\n\t\tlb, err := gcore.NewCloudLoadBalancer(ctx, \"lb\", \u0026gcore.CloudLoadBalancerArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-load-balancer\"),\n\t\t\tFlavor:    pulumi.String(\"lb1-1-2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCloudReservedFixedIp(ctx, \"from_port\", \u0026gcore.CloudReservedFixedIpArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tType:      pulumi.String(\"port\"),\n\t\t\tPortId:    lb.VipPortId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudLoadBalancer;\nimport com.pulumi.gcore.CloudLoadBalancerArgs;\nimport com.pulumi.gcore.CloudReservedFixedIp;\nimport com.pulumi.gcore.CloudReservedFixedIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Reserve an existing port (e.g., from a load balancer VIP)\n        var lb = new CloudLoadBalancer(\"lb\", CloudLoadBalancerArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-load-balancer\")\n            .flavor(\"lb1-1-2\")\n            .build());\n\n        var fromPort = new CloudReservedFixedIp(\"fromPort\", CloudReservedFixedIpArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .type(\"port\")\n            .portId(lb.vipPortId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Reserve an existing port (e.g., from a load balancer VIP)\n  lb:\n    type: gcore:CloudLoadBalancer\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-load-balancer\n      flavor: lb1-1-2\n  fromPort:\n    type: gcore:CloudReservedFixedIp\n    name: from_port\n    properties:\n      projectId: 1\n      regionId: 1\n      type: port\n      portId: ${lb.vipPortId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudReservedFixedIp:CloudReservedFixedIp example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003cport_id\u003e'\n```\n\n","properties":{"allowedAddressPairs":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudReservedFixedIpAllowedAddressPair:CloudReservedFixedIpAllowedAddressPair"},"description":"Group of subnet masks and/or IP addresses that share the current IP as VIP\n"},"attachments":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudReservedFixedIpAttachment:CloudReservedFixedIpAttachment"},"description":"Reserved fixed IP attachment entities\n"},"createdAt":{"type":"string","description":"Datetime when the reserved fixed IP was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"fixedIpAddress":{"type":"string","description":"IPv4 address of the reserved fixed IP\n"},"fixedIpv6Address":{"type":"string","description":"IPv6 address of the reserved fixed IP\n"},"ipAddress":{"type":"string","description":"Reserved fixed IP will be allocated the given IP address\n"},"ipFamily":{"type":"string","description":"Which subnets should be selected: IPv4, IPv6 or use dual stack.\nAvailable values: \"dual\", \"ipv4\", \"ipv6\".\n"},"isExternal":{"type":"boolean","description":"If reserved fixed IP belongs to a public network\n"},"isVip":{"type":"boolean","description":"If reserved fixed IP is a VIP\n"},"name":{"type":"string","description":"Reserved fixed IP name\n"},"network":{"$ref":"#/types/gcore:index%2FCloudReservedFixedIpNetwork:CloudReservedFixedIpNetwork","description":"Network details\n"},"networkId":{"type":"string","description":"Reserved fixed IP will be allocated in a subnet of this network\n"},"portId":{"type":"string","description":"Port ID to make a reserved fixed IP (for example, \u003cspan pulumi-lang-nodejs=\"`vipPortId`\" pulumi-lang-dotnet=\"`VipPortId`\" pulumi-lang-go=\"`vipPortId`\" pulumi-lang-python=\"`vip_port_id`\" pulumi-lang-yaml=\"`vipPortId`\" pulumi-lang-java=\"`vipPortId`\"\u003e`vip_port_id`\u003c/span\u003e of the Load Balancer entity).\n"},"projectId":{"type":"number"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number"},"status":{"type":"string","description":"Underlying port status\n"},"subnetId":{"type":"string","description":"Reserved fixed IP will be allocated in this subnet\n"},"subnetV6Id":{"type":"string","description":"ID of the subnet that owns the IPv6 address\n"},"type":{"type":"string","description":"Must be 'external'\nAvailable values: \"external\", \"subnet\", \"any*subnet\", \"ip*address\", \"port\".\n"},"updatedAt":{"type":"string","description":"Datetime when the reserved fixed IP was last updated\n"}},"type":"object","required":["allowedAddressPairs","attachments","createdAt","creatorTaskId","fixedIpAddress","fixedIpv6Address","isExternal","name","network","portId","region","status","subnetV6Id","type","updatedAt"],"inputProperties":{"ipAddress":{"type":"string","description":"Reserved fixed IP will be allocated the given IP address\n"},"ipFamily":{"type":"string","description":"Which subnets should be selected: IPv4, IPv6 or use dual stack.\nAvailable values: \"dual\", \"ipv4\", \"ipv6\".\n"},"isVip":{"type":"boolean","description":"If reserved fixed IP is a VIP\n"},"networkId":{"type":"string","description":"Reserved fixed IP will be allocated in a subnet of this network\n"},"portId":{"type":"string","description":"Port ID to make a reserved fixed IP (for example, \u003cspan pulumi-lang-nodejs=\"`vipPortId`\" pulumi-lang-dotnet=\"`VipPortId`\" pulumi-lang-go=\"`vipPortId`\" pulumi-lang-python=\"`vip_port_id`\" pulumi-lang-yaml=\"`vipPortId`\" pulumi-lang-java=\"`vipPortId`\"\u003e`vip_port_id`\u003c/span\u003e of the Load Balancer entity).\n"},"projectId":{"type":"number"},"regionId":{"type":"number"},"subnetId":{"type":"string","description":"Reserved fixed IP will be allocated in this subnet\n"},"type":{"type":"string","description":"Must be 'external'\nAvailable values: \"external\", \"subnet\", \"any*subnet\", \"ip*address\", \"port\".\n"}},"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudReservedFixedIp resources.\n","properties":{"allowedAddressPairs":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudReservedFixedIpAllowedAddressPair:CloudReservedFixedIpAllowedAddressPair"},"description":"Group of subnet masks and/or IP addresses that share the current IP as VIP\n"},"attachments":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudReservedFixedIpAttachment:CloudReservedFixedIpAttachment"},"description":"Reserved fixed IP attachment entities\n"},"createdAt":{"type":"string","description":"Datetime when the reserved fixed IP was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"fixedIpAddress":{"type":"string","description":"IPv4 address of the reserved fixed IP\n"},"fixedIpv6Address":{"type":"string","description":"IPv6 address of the reserved fixed IP\n"},"ipAddress":{"type":"string","description":"Reserved fixed IP will be allocated the given IP address\n"},"ipFamily":{"type":"string","description":"Which subnets should be selected: IPv4, IPv6 or use dual stack.\nAvailable values: \"dual\", \"ipv4\", \"ipv6\".\n"},"isExternal":{"type":"boolean","description":"If reserved fixed IP belongs to a public network\n"},"isVip":{"type":"boolean","description":"If reserved fixed IP is a VIP\n"},"name":{"type":"string","description":"Reserved fixed IP name\n"},"network":{"$ref":"#/types/gcore:index%2FCloudReservedFixedIpNetwork:CloudReservedFixedIpNetwork","description":"Network details\n"},"networkId":{"type":"string","description":"Reserved fixed IP will be allocated in a subnet of this network\n"},"portId":{"type":"string","description":"Port ID to make a reserved fixed IP (for example, \u003cspan pulumi-lang-nodejs=\"`vipPortId`\" pulumi-lang-dotnet=\"`VipPortId`\" pulumi-lang-go=\"`vipPortId`\" pulumi-lang-python=\"`vip_port_id`\" pulumi-lang-yaml=\"`vipPortId`\" pulumi-lang-java=\"`vipPortId`\"\u003e`vip_port_id`\u003c/span\u003e of the Load Balancer entity).\n"},"projectId":{"type":"number"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number"},"status":{"type":"string","description":"Underlying port status\n"},"subnetId":{"type":"string","description":"Reserved fixed IP will be allocated in this subnet\n"},"subnetV6Id":{"type":"string","description":"ID of the subnet that owns the IPv6 address\n"},"type":{"type":"string","description":"Must be 'external'\nAvailable values: \"external\", \"subnet\", \"any*subnet\", \"ip*address\", \"port\".\n"},"updatedAt":{"type":"string","description":"Datetime when the reserved fixed IP was last updated\n"}},"type":"object"}},"gcore:index/cloudSecret:CloudSecret":{"description":"Secrets store sensitive data such as TLS certificates and private keys in encrypted form within a cloud region.\n\n## Example Usage\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudSecret:CloudSecret example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003csecret_id\u003e'\n```\n\n","properties":{"algorithm":{"type":"string","description":"Metadata provided by a user or system for informational purposes. Defaults to None\n"},"bitLength":{"type":"number","description":"Metadata provided by a user or system for informational purposes. Value must be greater than zero. Defaults to None\n"},"contentTypes":{"type":"object","additionalProperties":{"type":"string"},"description":"Describes the content-types that can be used to retrieve the payload. The content-type used with symmetric secrets is application/octet-stream\n"},"created":{"type":"string","description":"Datetime when the secret was created. The format is 2020-01-01T12:00:00+00:00\n"},"expiration":{"type":"string","description":"Datetime when the secret will expire. Defaults to None\n"},"mode":{"type":"string","description":"Metadata provided by a user or system for informational purposes. Defaults to None\n"},"name":{"type":"string","description":"Secret name\n"},"payload":{"$ref":"#/types/gcore:index%2FCloudSecretPayload:CloudSecretPayload","description":"Secret payload.\n"},"payloadWoVersion":{"type":"number"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"secretType":{"type":"string","description":"Secret type, base64 encoded. symmetric - Used for storing byte arrays such as keys suitable for symmetric encryption; public - Used for storing the public key of an asymmetric keypair; private - Used for storing the private key of an asymmetric keypair; passphrase - Used for storing plain text passphrases; certificate - Used for storing cryptographic certificates such as X.509 certificates; opaque - Used for backwards compatibility with previous versions of the API\nAvailable values: \"certificate\", \"opaque\", \"passphrase\", \"private\", \"public\", \"symmetric\".\n"},"status":{"type":"string","description":"Status\n"}},"type":"object","required":["algorithm","bitLength","contentTypes","created","mode","name","payload","payloadWoVersion","secretType","status"],"inputProperties":{"expiration":{"type":"string","description":"Datetime when the secret will expire. Defaults to None\n"},"name":{"type":"string","description":"Secret name\n"},"payload":{"$ref":"#/types/gcore:index%2FCloudSecretPayload:CloudSecretPayload","description":"Secret payload.\n"},"payloadWoVersion":{"type":"number"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"}},"requiredInputs":["payload","payloadWoVersion"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudSecret resources.\n","properties":{"algorithm":{"type":"string","description":"Metadata provided by a user or system for informational purposes. Defaults to None\n"},"bitLength":{"type":"number","description":"Metadata provided by a user or system for informational purposes. Value must be greater than zero. Defaults to None\n"},"contentTypes":{"type":"object","additionalProperties":{"type":"string"},"description":"Describes the content-types that can be used to retrieve the payload. The content-type used with symmetric secrets is application/octet-stream\n"},"created":{"type":"string","description":"Datetime when the secret was created. The format is 2020-01-01T12:00:00+00:00\n"},"expiration":{"type":"string","description":"Datetime when the secret will expire. Defaults to None\n"},"mode":{"type":"string","description":"Metadata provided by a user or system for informational purposes. Defaults to None\n"},"name":{"type":"string","description":"Secret name\n"},"payload":{"$ref":"#/types/gcore:index%2FCloudSecretPayload:CloudSecretPayload","description":"Secret payload.\n"},"payloadWoVersion":{"type":"number"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"secretType":{"type":"string","description":"Secret type, base64 encoded. symmetric - Used for storing byte arrays such as keys suitable for symmetric encryption; public - Used for storing the public key of an asymmetric keypair; private - Used for storing the private key of an asymmetric keypair; passphrase - Used for storing plain text passphrases; certificate - Used for storing cryptographic certificates such as X.509 certificates; opaque - Used for backwards compatibility with previous versions of the API\nAvailable values: \"certificate\", \"opaque\", \"passphrase\", \"private\", \"public\", \"symmetric\".\n"},"status":{"type":"string","description":"Status\n"}},"type":"object"}},"gcore:index/cloudSecurityGroup:CloudSecurityGroup":{"description":"Security groups act as virtual firewalls controlling inbound and outbound traffic for instances and other resources.\n\n## Example Usage\n\n### Web server security group\n\nCreates a security group with HTTP/HTTPS ingress and outbound TCP/VRRP egress rules.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create a security group and manage rules as separate resources\nconst example = new gcore.CloudSecurityGroup(\"example\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"web-security-group\",\n    description: \"Allow HTTP, HTTPS, and outbound traffic\",\n    tags: {\n        environment: \"production\",\n    },\n});\nconst allowHttp = new gcore.CloudSecurityGroupRule(\"allow_http\", {\n    projectId: 1,\n    regionId: 1,\n    groupId: example.id,\n    direction: \"ingress\",\n    ethertype: \"IPv4\",\n    protocol: \"tcp\",\n    portRangeMin: 80,\n    portRangeMax: 80,\n    description: \"Allow HTTP\",\n});\nconst allowHttps = new gcore.CloudSecurityGroupRule(\"allow_https\", {\n    projectId: 1,\n    regionId: 1,\n    groupId: example.id,\n    direction: \"ingress\",\n    ethertype: \"IPv4\",\n    protocol: \"tcp\",\n    portRangeMin: 443,\n    portRangeMax: 443,\n    description: \"Allow HTTPS\",\n});\nconst allowEgressTcp = new gcore.CloudSecurityGroupRule(\"allow_egress_tcp\", {\n    projectId: 1,\n    regionId: 1,\n    groupId: example.id,\n    direction: \"egress\",\n    ethertype: \"IPv4\",\n    protocol: \"tcp\",\n    description: \"Allow all outbound TCP\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create a security group and manage rules as separate resources\nexample = gcore.CloudSecurityGroup(\"example\",\n    project_id=1,\n    region_id=1,\n    name=\"web-security-group\",\n    description=\"Allow HTTP, HTTPS, and outbound traffic\",\n    tags={\n        \"environment\": \"production\",\n    })\nallow_http = gcore.CloudSecurityGroupRule(\"allow_http\",\n    project_id=1,\n    region_id=1,\n    group_id=example.id,\n    direction=\"ingress\",\n    ethertype=\"IPv4\",\n    protocol=\"tcp\",\n    port_range_min=80,\n    port_range_max=80,\n    description=\"Allow HTTP\")\nallow_https = gcore.CloudSecurityGroupRule(\"allow_https\",\n    project_id=1,\n    region_id=1,\n    group_id=example.id,\n    direction=\"ingress\",\n    ethertype=\"IPv4\",\n    protocol=\"tcp\",\n    port_range_min=443,\n    port_range_max=443,\n    description=\"Allow HTTPS\")\nallow_egress_tcp = gcore.CloudSecurityGroupRule(\"allow_egress_tcp\",\n    project_id=1,\n    region_id=1,\n    group_id=example.id,\n    direction=\"egress\",\n    ethertype=\"IPv4\",\n    protocol=\"tcp\",\n    description=\"Allow all outbound TCP\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a security group and manage rules as separate resources\n    var example = new Gcore.CloudSecurityGroup(\"example\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"web-security-group\",\n        Description = \"Allow HTTP, HTTPS, and outbound traffic\",\n        Tags = \n        {\n            { \"environment\", \"production\" },\n        },\n    });\n\n    var allowHttp = new Gcore.CloudSecurityGroupRule(\"allow_http\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        GroupId = example.Id,\n        Direction = \"ingress\",\n        Ethertype = \"IPv4\",\n        Protocol = \"tcp\",\n        PortRangeMin = 80,\n        PortRangeMax = 80,\n        Description = \"Allow HTTP\",\n    });\n\n    var allowHttps = new Gcore.CloudSecurityGroupRule(\"allow_https\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        GroupId = example.Id,\n        Direction = \"ingress\",\n        Ethertype = \"IPv4\",\n        Protocol = \"tcp\",\n        PortRangeMin = 443,\n        PortRangeMax = 443,\n        Description = \"Allow HTTPS\",\n    });\n\n    var allowEgressTcp = new Gcore.CloudSecurityGroupRule(\"allow_egress_tcp\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        GroupId = example.Id,\n        Direction = \"egress\",\n        Ethertype = \"IPv4\",\n        Protocol = \"tcp\",\n        Description = \"Allow all outbound TCP\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a security group and manage rules as separate resources\n\t\texample, err := gcore.NewCloudSecurityGroup(ctx, \"example\", \u0026gcore.CloudSecurityGroupArgs{\n\t\t\tProjectId:   pulumi.Float64(1),\n\t\t\tRegionId:    pulumi.Float64(1),\n\t\t\tName:        pulumi.String(\"web-security-group\"),\n\t\t\tDescription: pulumi.String(\"Allow HTTP, HTTPS, and outbound traffic\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCloudSecurityGroupRule(ctx, \"allow_http\", \u0026gcore.CloudSecurityGroupRuleArgs{\n\t\t\tProjectId:    pulumi.Float64(1),\n\t\t\tRegionId:     pulumi.Float64(1),\n\t\t\tGroupId:      example.ID(),\n\t\t\tDirection:    pulumi.String(\"ingress\"),\n\t\t\tEthertype:    pulumi.String(\"IPv4\"),\n\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t\tPortRangeMin: pulumi.Float64(80),\n\t\t\tPortRangeMax: pulumi.Float64(80),\n\t\t\tDescription:  pulumi.String(\"Allow HTTP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCloudSecurityGroupRule(ctx, \"allow_https\", \u0026gcore.CloudSecurityGroupRuleArgs{\n\t\t\tProjectId:    pulumi.Float64(1),\n\t\t\tRegionId:     pulumi.Float64(1),\n\t\t\tGroupId:      example.ID(),\n\t\t\tDirection:    pulumi.String(\"ingress\"),\n\t\t\tEthertype:    pulumi.String(\"IPv4\"),\n\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t\tPortRangeMin: pulumi.Float64(443),\n\t\t\tPortRangeMax: pulumi.Float64(443),\n\t\t\tDescription:  pulumi.String(\"Allow HTTPS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCloudSecurityGroupRule(ctx, \"allow_egress_tcp\", \u0026gcore.CloudSecurityGroupRuleArgs{\n\t\t\tProjectId:   pulumi.Float64(1),\n\t\t\tRegionId:    pulumi.Float64(1),\n\t\t\tGroupId:     example.ID(),\n\t\t\tDirection:   pulumi.String(\"egress\"),\n\t\t\tEthertype:   pulumi.String(\"IPv4\"),\n\t\t\tProtocol:    pulumi.String(\"tcp\"),\n\t\t\tDescription: pulumi.String(\"Allow all outbound TCP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudSecurityGroup;\nimport com.pulumi.gcore.CloudSecurityGroupArgs;\nimport com.pulumi.gcore.CloudSecurityGroupRule;\nimport com.pulumi.gcore.CloudSecurityGroupRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a security group and manage rules as separate resources\n        var example = new CloudSecurityGroup(\"example\", CloudSecurityGroupArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"web-security-group\")\n            .description(\"Allow HTTP, HTTPS, and outbound traffic\")\n            .tags(Map.of(\"environment\", \"production\"))\n            .build());\n\n        var allowHttp = new CloudSecurityGroupRule(\"allowHttp\", CloudSecurityGroupRuleArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .groupId(example.id())\n            .direction(\"ingress\")\n            .ethertype(\"IPv4\")\n            .protocol(\"tcp\")\n            .portRangeMin(80.0)\n            .portRangeMax(80.0)\n            .description(\"Allow HTTP\")\n            .build());\n\n        var allowHttps = new CloudSecurityGroupRule(\"allowHttps\", CloudSecurityGroupRuleArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .groupId(example.id())\n            .direction(\"ingress\")\n            .ethertype(\"IPv4\")\n            .protocol(\"tcp\")\n            .portRangeMin(443.0)\n            .portRangeMax(443.0)\n            .description(\"Allow HTTPS\")\n            .build());\n\n        var allowEgressTcp = new CloudSecurityGroupRule(\"allowEgressTcp\", CloudSecurityGroupRuleArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .groupId(example.id())\n            .direction(\"egress\")\n            .ethertype(\"IPv4\")\n            .protocol(\"tcp\")\n            .description(\"Allow all outbound TCP\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a security group and manage rules as separate resources\n  example:\n    type: gcore:CloudSecurityGroup\n    properties:\n      projectId: 1\n      regionId: 1\n      name: web-security-group\n      description: Allow HTTP, HTTPS, and outbound traffic\n      tags:\n        environment: production\n  allowHttp:\n    type: gcore:CloudSecurityGroupRule\n    name: allow_http\n    properties:\n      projectId: 1\n      regionId: 1\n      groupId: ${example.id}\n      direction: ingress\n      ethertype: IPv4\n      protocol: tcp\n      portRangeMin: 80\n      portRangeMax: 80\n      description: Allow HTTP\n  allowHttps:\n    type: gcore:CloudSecurityGroupRule\n    name: allow_https\n    properties:\n      projectId: 1\n      regionId: 1\n      groupId: ${example.id}\n      direction: ingress\n      ethertype: IPv4\n      protocol: tcp\n      portRangeMin: 443\n      portRangeMax: 443\n      description: Allow HTTPS\n  allowEgressTcp:\n    type: gcore:CloudSecurityGroupRule\n    name: allow_egress_tcp\n    properties:\n      projectId: 1\n      regionId: 1\n      groupId: ${example.id}\n      direction: egress\n      ethertype: IPv4\n      protocol: tcp\n      description: Allow all outbound TCP\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudSecurityGroup:CloudSecurityGroup example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003cgroup_id\u003e'\n```\n\n","properties":{"createdAt":{"type":"string","description":"Datetime when the security group was created\n"},"description":{"type":"string","description":"Security group description\n"},"name":{"type":"string","description":"Security group name\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"revisionNumber":{"type":"number","description":"The number of revisions\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"tagsV2s":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudSecurityGroupTagsV2:CloudSecurityGroupTagsV2"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the security group was last updated\n"}},"type":"object","required":["createdAt","description","name","region","revisionNumber","tagsV2s","updatedAt"],"inputProperties":{"description":{"type":"string","description":"Security group description\n"},"name":{"type":"string","description":"Security group name\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CloudSecurityGroup resources.\n","properties":{"createdAt":{"type":"string","description":"Datetime when the security group was created\n"},"description":{"type":"string","description":"Security group description\n"},"name":{"type":"string","description":"Security group name\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"Region name\n"},"regionId":{"type":"number","description":"Region ID\n"},"revisionNumber":{"type":"number","description":"The number of revisions\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"tagsV2s":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudSecurityGroupTagsV2:CloudSecurityGroupTagsV2"},"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"updatedAt":{"type":"string","description":"Datetime when the security group was last updated\n"}},"type":"object"}},"gcore:index/cloudSecurityGroupRule:CloudSecurityGroupRule":{"description":"Security group rules define individual traffic permissions specifying protocol, port range, direction, and allowed sources.\n\n## Example Usage\n\n### Allow HTTPS ingress from internal network\n\nCreates an ingress rule allowing HTTPS traffic from a specific CIDR range.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Allow inbound HTTPS traffic from a specific CIDR\nconst allowHttps = new gcore.CloudSecurityGroupRule(\"allow_https\", {\n    projectId: 1,\n    regionId: 1,\n    groupId: web.id,\n    direction: \"ingress\",\n    ethertype: \"IPv4\",\n    protocol: \"tcp\",\n    portRangeMin: 443,\n    portRangeMax: 443,\n    remoteIpPrefix: \"10.0.0.0/8\",\n    description: \"Allow HTTPS from internal network\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Allow inbound HTTPS traffic from a specific CIDR\nallow_https = gcore.CloudSecurityGroupRule(\"allow_https\",\n    project_id=1,\n    region_id=1,\n    group_id=web[\"id\"],\n    direction=\"ingress\",\n    ethertype=\"IPv4\",\n    protocol=\"tcp\",\n    port_range_min=443,\n    port_range_max=443,\n    remote_ip_prefix=\"10.0.0.0/8\",\n    description=\"Allow HTTPS from internal network\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Allow inbound HTTPS traffic from a specific CIDR\n    var allowHttps = new Gcore.CloudSecurityGroupRule(\"allow_https\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        GroupId = web.Id,\n        Direction = \"ingress\",\n        Ethertype = \"IPv4\",\n        Protocol = \"tcp\",\n        PortRangeMin = 443,\n        PortRangeMax = 443,\n        RemoteIpPrefix = \"10.0.0.0/8\",\n        Description = \"Allow HTTPS from internal network\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Allow inbound HTTPS traffic from a specific CIDR\n\t\t_, err := gcore.NewCloudSecurityGroupRule(ctx, \"allow_https\", \u0026gcore.CloudSecurityGroupRuleArgs{\n\t\t\tProjectId:      pulumi.Float64(1),\n\t\t\tRegionId:       pulumi.Float64(1),\n\t\t\tGroupId:        pulumi.Any(web.Id),\n\t\t\tDirection:      pulumi.String(\"ingress\"),\n\t\t\tEthertype:      pulumi.String(\"IPv4\"),\n\t\t\tProtocol:       pulumi.String(\"tcp\"),\n\t\t\tPortRangeMin:   pulumi.Float64(443),\n\t\t\tPortRangeMax:   pulumi.Float64(443),\n\t\t\tRemoteIpPrefix: pulumi.String(\"10.0.0.0/8\"),\n\t\t\tDescription:    pulumi.String(\"Allow HTTPS from internal network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudSecurityGroupRule;\nimport com.pulumi.gcore.CloudSecurityGroupRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Allow inbound HTTPS traffic from a specific CIDR\n        var allowHttps = new CloudSecurityGroupRule(\"allowHttps\", CloudSecurityGroupRuleArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .groupId(web.id())\n            .direction(\"ingress\")\n            .ethertype(\"IPv4\")\n            .protocol(\"tcp\")\n            .portRangeMin(443.0)\n            .portRangeMax(443.0)\n            .remoteIpPrefix(\"10.0.0.0/8\")\n            .description(\"Allow HTTPS from internal network\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Allow inbound HTTPS traffic from a specific CIDR\n  allowHttps:\n    type: gcore:CloudSecurityGroupRule\n    name: allow_https\n    properties:\n      projectId: 1\n      regionId: 1\n      groupId: ${web.id}\n      direction: ingress\n      ethertype: IPv4\n      protocol: tcp\n      portRangeMin: 443\n      portRangeMax: 443\n      remoteIpPrefix: 10.0.0.0/8\n      description: Allow HTTPS from internal network\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudSecurityGroupRule:CloudSecurityGroupRule example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003cgroup_id\u003e/\u003crule_id\u003e'\n```\n\n","properties":{"description":{"type":"string","description":"Rule description\n"},"direction":{"type":"string","description":"Ingress or egress, which is the direction in which the security group is applied\nAvailable values: \"egress\", \"ingress\".\n"},"ethertype":{"type":"string","description":"Ether type\nAvailable values: \"IPv4\", \"IPv6\".\n"},"groupId":{"type":"string","description":"Security group ID\n"},"portRangeMax":{"type":"number","description":"The maximum port number in the range that is matched by the security group rule\n"},"portRangeMin":{"type":"number","description":"The minimum port number in the range that is matched by the security group rule\n"},"projectId":{"type":"number","description":"Project ID\n"},"protocol":{"type":"string","description":"Protocol\nAvailable values: \"ah\", \"any\", \"dccp\", \"egp\", \"esp\", \"gre\", \"icmp\", \"igmp\", \"ipencap\", \"ipip\", \"ipv6-encap\", \"ipv6-frag\", \"ipv6-icmp\", \"ipv6-nonxt\", \"ipv6-opts\", \"ipv6-route\", \"ospf\", \"pgm\", \"rsvp\", \"sctp\", \"tcp\", \"udp\", \"udplite\", \"vrrp\".\n"},"regionId":{"type":"number","description":"Region ID\n"},"remoteGroupId":{"type":"string","description":"The remote group UUID to associate with this security group\n"},"remoteIpPrefix":{"type":"string","description":"The remote IP prefix that is matched by this security group rule\n"}},"type":"object","required":["direction","groupId"],"inputProperties":{"description":{"type":"string","description":"Rule description\n"},"direction":{"type":"string","description":"Ingress or egress, which is the direction in which the security group is applied\nAvailable values: \"egress\", \"ingress\".\n"},"ethertype":{"type":"string","description":"Ether type\nAvailable values: \"IPv4\", \"IPv6\".\n"},"groupId":{"type":"string","description":"Security group ID\n"},"portRangeMax":{"type":"number","description":"The maximum port number in the range that is matched by the security group rule\n"},"portRangeMin":{"type":"number","description":"The minimum port number in the range that is matched by the security group rule\n"},"projectId":{"type":"number","description":"Project ID\n"},"protocol":{"type":"string","description":"Protocol\nAvailable values: \"ah\", \"any\", \"dccp\", \"egp\", \"esp\", \"gre\", \"icmp\", \"igmp\", \"ipencap\", \"ipip\", \"ipv6-encap\", \"ipv6-frag\", \"ipv6-icmp\", \"ipv6-nonxt\", \"ipv6-opts\", \"ipv6-route\", \"ospf\", \"pgm\", \"rsvp\", \"sctp\", \"tcp\", \"udp\", \"udplite\", \"vrrp\".\n"},"regionId":{"type":"number","description":"Region ID\n"},"remoteGroupId":{"type":"string","description":"The remote group UUID to associate with this security group\n"},"remoteIpPrefix":{"type":"string","description":"The remote IP prefix that is matched by this security group rule\n"}},"requiredInputs":["direction","groupId"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudSecurityGroupRule resources.\n","properties":{"description":{"type":"string","description":"Rule description\n"},"direction":{"type":"string","description":"Ingress or egress, which is the direction in which the security group is applied\nAvailable values: \"egress\", \"ingress\".\n"},"ethertype":{"type":"string","description":"Ether type\nAvailable values: \"IPv4\", \"IPv6\".\n"},"groupId":{"type":"string","description":"Security group ID\n"},"portRangeMax":{"type":"number","description":"The maximum port number in the range that is matched by the security group rule\n"},"portRangeMin":{"type":"number","description":"The minimum port number in the range that is matched by the security group rule\n"},"projectId":{"type":"number","description":"Project ID\n"},"protocol":{"type":"string","description":"Protocol\nAvailable values: \"ah\", \"any\", \"dccp\", \"egp\", \"esp\", \"gre\", \"icmp\", \"igmp\", \"ipencap\", \"ipip\", \"ipv6-encap\", \"ipv6-frag\", \"ipv6-icmp\", \"ipv6-nonxt\", \"ipv6-opts\", \"ipv6-route\", \"ospf\", \"pgm\", \"rsvp\", \"sctp\", \"tcp\", \"udp\", \"udplite\", \"vrrp\".\n"},"regionId":{"type":"number","description":"Region ID\n"},"remoteGroupId":{"type":"string","description":"The remote group UUID to associate with this security group\n"},"remoteIpPrefix":{"type":"string","description":"The remote IP prefix that is matched by this security group rule\n"}},"type":"object"}},"gcore:index/cloudSshKey:CloudSshKey":{"description":"SSH key pairs provide secure authentication to cloud instances, supporting both generated and imported public keys.\n\n## Example Usage\n\n### Upload an existing SSH key\n\nAdd an SSH public key that can be used when creating instances.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Upload an existing SSH public key\nconst deployer = new gcore.CloudSshKey(\"deployer\", {\n    projectId: 1,\n    name: \"deployer-key\",\n    publicKey: \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJe8rDJP... deployer@workstation\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Upload an existing SSH public key\ndeployer = gcore.CloudSshKey(\"deployer\",\n    project_id=1,\n    name=\"deployer-key\",\n    public_key=\"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJe8rDJP... deployer@workstation\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Upload an existing SSH public key\n    var deployer = new Gcore.CloudSshKey(\"deployer\", new()\n    {\n        ProjectId = 1,\n        Name = \"deployer-key\",\n        PublicKey = \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJe8rDJP... deployer@workstation\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Upload an existing SSH public key\n\t\t_, err := gcore.NewCloudSshKey(ctx, \"deployer\", \u0026gcore.CloudSshKeyArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"deployer-key\"),\n\t\t\tPublicKey: pulumi.String(\"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJe8rDJP... deployer@workstation\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudSshKey;\nimport com.pulumi.gcore.CloudSshKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Upload an existing SSH public key\n        var deployer = new CloudSshKey(\"deployer\", CloudSshKeyArgs.builder()\n            .projectId(1.0)\n            .name(\"deployer-key\")\n            .publicKey(\"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJe8rDJP... deployer@workstation\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Upload an existing SSH public key\n  deployer:\n    type: gcore:CloudSshKey\n    properties:\n      projectId: 1\n      name: deployer-key\n      publicKey: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJe8rDJP... deployer@workstation\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **Tip:** Generate a key pair locally with `ssh-keygen -t ed25519`, then paste the contents of the `.pub` file into \u003cspan pulumi-lang-nodejs=\"`publicKey`\" pulumi-lang-dotnet=\"`PublicKey`\" pulumi-lang-go=\"`publicKey`\" pulumi-lang-python=\"`public_key`\" pulumi-lang-yaml=\"`publicKey`\" pulumi-lang-java=\"`publicKey`\"\u003e`public_key`\u003c/span\u003e.\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudSshKey:CloudSshKey example '\u003cproject_id\u003e/\u003cssh_key_id\u003e'\n```\n\n","properties":{"createdAt":{"type":"string","description":"SSH key creation time\n"},"fingerprint":{"type":"string","description":"Fingerprint\n"},"name":{"type":"string","description":"SSH key name\n"},"projectId":{"type":"number","description":"Project ID\n"},"publicKey":{"type":"string","description":"The public part of an SSH key is the shareable portion of an SSH key pair. It can be safely sent to servers or services to grant access. It does not contain sensitive information. You must provide your own public key (usually found in a file like `id_ed25519.pub` or `id_rsa.pub`). Generate your SSH keypair locally using `ssh-keygen` before providing it here.\n"},"sharedInProject":{"type":"boolean","description":"SSH key is shared with all users in the project\n"},"state":{"type":"string","description":"SSH key state\nAvailable values: \"ACTIVE\", \"DELETING\".\n"}},"type":"object","required":["createdAt","fingerprint","name","publicKey","sharedInProject","state"],"inputProperties":{"name":{"type":"string","description":"SSH key name\n"},"projectId":{"type":"number","description":"Project ID\n"},"publicKey":{"type":"string","description":"The public part of an SSH key is the shareable portion of an SSH key pair. It can be safely sent to servers or services to grant access. It does not contain sensitive information. You must provide your own public key (usually found in a file like `id_ed25519.pub` or `id_rsa.pub`). Generate your SSH keypair locally using `ssh-keygen` before providing it here.\n"},"sharedInProject":{"type":"boolean","description":"SSH key is shared with all users in the project\n"}},"requiredInputs":["publicKey"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudSshKey resources.\n","properties":{"createdAt":{"type":"string","description":"SSH key creation time\n"},"fingerprint":{"type":"string","description":"Fingerprint\n"},"name":{"type":"string","description":"SSH key name\n"},"projectId":{"type":"number","description":"Project ID\n"},"publicKey":{"type":"string","description":"The public part of an SSH key is the shareable portion of an SSH key pair. It can be safely sent to servers or services to grant access. It does not contain sensitive information. You must provide your own public key (usually found in a file like `id_ed25519.pub` or `id_rsa.pub`). Generate your SSH keypair locally using `ssh-keygen` before providing it here.\n"},"sharedInProject":{"type":"boolean","description":"SSH key is shared with all users in the project\n"},"state":{"type":"string","description":"SSH key state\nAvailable values: \"ACTIVE\", \"DELETING\".\n"}},"type":"object"}},"gcore:index/cloudVolume:CloudVolume":{"description":"Volumes are block storage devices that can be attached to instances as boot or data disks, with support for resizing and type changes.\n\n## Example Usage\n\n### Boot volume from image\n\nCreates a boot volume from an OS image.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create a boot volume from an image\nconst bootVolume = new gcore.CloudVolume(\"boot_volume\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-boot-volume\",\n    source: \"image\",\n    imageId: \"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n    size: 20,\n    typeName: \"ssd_hiiops\",\n    tags: {\n        environment: \"production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create a boot volume from an image\nboot_volume = gcore.CloudVolume(\"boot_volume\",\n    project_id=1,\n    region_id=1,\n    name=\"my-boot-volume\",\n    source=\"image\",\n    image_id=\"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n    size=20,\n    type_name=\"ssd_hiiops\",\n    tags={\n        \"environment\": \"production\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a boot volume from an image\n    var bootVolume = new Gcore.CloudVolume(\"boot_volume\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-boot-volume\",\n        Source = \"image\",\n        ImageId = \"6dc4e521-0c72-462f-b2d4-306bcf15e227\",\n        Size = 20,\n        TypeName = \"ssd_hiiops\",\n        Tags = \n        {\n            { \"environment\", \"production\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a boot volume from an image\n\t\t_, err := gcore.NewCloudVolume(ctx, \"boot_volume\", \u0026gcore.CloudVolumeArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-boot-volume\"),\n\t\t\tSource:    pulumi.String(\"image\"),\n\t\t\tImageId:   pulumi.String(\"6dc4e521-0c72-462f-b2d4-306bcf15e227\"),\n\t\t\tSize:      pulumi.Float64(20),\n\t\t\tTypeName:  pulumi.String(\"ssd_hiiops\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudVolume;\nimport com.pulumi.gcore.CloudVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a boot volume from an image\n        var bootVolume = new CloudVolume(\"bootVolume\", CloudVolumeArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-boot-volume\")\n            .source(\"image\")\n            .imageId(\"6dc4e521-0c72-462f-b2d4-306bcf15e227\")\n            .size(20.0)\n            .typeName(\"ssd_hiiops\")\n            .tags(Map.of(\"environment\", \"production\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a boot volume from an image\n  bootVolume:\n    type: gcore:CloudVolume\n    name: boot_volume\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-boot-volume\n      source: image\n      imageId: 6dc4e521-0c72-462f-b2d4-306bcf15e227\n      size: 20\n      typeName: ssd_hiiops\n      tags:\n        environment: production\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Standalone data volume\n\nCreates a blank data volume for additional storage.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create a standalone data volume\nconst dataVolume = new gcore.CloudVolume(\"data_volume\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"my-data-volume\",\n    source: \"new-volume\",\n    size: 50,\n    typeName: \"standard\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create a standalone data volume\ndata_volume = gcore.CloudVolume(\"data_volume\",\n    project_id=1,\n    region_id=1,\n    name=\"my-data-volume\",\n    source=\"new-volume\",\n    size=50,\n    type_name=\"standard\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a standalone data volume\n    var dataVolume = new Gcore.CloudVolume(\"data_volume\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-data-volume\",\n        Source = \"new-volume\",\n        Size = 50,\n        TypeName = \"standard\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a standalone data volume\n\t\t_, err := gcore.NewCloudVolume(ctx, \"data_volume\", \u0026gcore.CloudVolumeArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"my-data-volume\"),\n\t\t\tSource:    pulumi.String(\"new-volume\"),\n\t\t\tSize:      pulumi.Float64(50),\n\t\t\tTypeName:  pulumi.String(\"standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.CloudVolume;\nimport com.pulumi.gcore.CloudVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a standalone data volume\n        var dataVolume = new CloudVolume(\"dataVolume\", CloudVolumeArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"my-data-volume\")\n            .source(\"new-volume\")\n            .size(50.0)\n            .typeName(\"standard\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a standalone data volume\n  dataVolume:\n    type: gcore:CloudVolume\n    name: data_volume\n    properties:\n      projectId: 1\n      regionId: 1\n      name: my-data-volume\n      source: new-volume\n      size: 50\n      typeName: standard\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/cloudVolume:CloudVolume example '\u003cproject_id\u003e/\u003cregion_id\u003e/\u003cvolume_id\u003e'\n```\n\n","properties":{"attachmentTag":{"type":"string","description":"Block device attachment tag (not exposed in the user tags). Only used in conjunction with \u003cspan pulumi-lang-nodejs=\"`instanceIdToAttachTo`\" pulumi-lang-dotnet=\"`InstanceIdToAttachTo`\" pulumi-lang-go=\"`instanceIdToAttachTo`\" pulumi-lang-python=\"`instance_id_to_attach_to`\" pulumi-lang-yaml=\"`instanceIdToAttachTo`\" pulumi-lang-java=\"`instanceIdToAttachTo`\"\u003e`instance_id_to_attach_to`\u003c/span\u003e\n"},"attachments":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudVolumeAttachment:CloudVolumeAttachment"},"description":"List of attachments associated with the volume.\n"},"bootable":{"type":"boolean","description":"Indicates whether the volume is bootable.\n"},"createdAt":{"type":"string","description":"The date and time when the volume was created.\n"},"creatorTaskId":{"type":"string","description":"The ID of the task that created this volume.\n"},"imageId":{"type":"string","description":"Image ID\n"},"instanceIdToAttachTo":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e to attach newly-created volume to\n"},"isRootVolume":{"type":"boolean","description":"Indicates whether this is a root volume.\n"},"lifecyclePolicyIds":{"type":"array","items":{"type":"number"},"description":"List of lifecycle policy IDs (snapshot creation schedules) to associate with the volume\n"},"limiterStats":{"$ref":"#/types/gcore:index%2FCloudVolumeLimiterStats:CloudVolumeLimiterStats","description":"Schema representing the Quality of Service (QoS) parameters for a volume.\n"},"name":{"type":"string","description":"Volume name\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"The region where the volume is located.\n"},"regionId":{"type":"number","description":"Region ID\n"},"size":{"type":"number","description":"Volume size in GiB\n"},"snapshotId":{"type":"string","description":"Snapshot ID\n"},"snapshotIds":{"type":"array","items":{"type":"string"},"description":"List of snapshot IDs associated with this volume.\n"},"source":{"type":"string","description":"Volume source type\nAvailable values: \"image\", \"snapshot\", \"new-volume\".\n"},"status":{"type":"string","description":"The current status of the volume.\nAvailable values: \"attaching\", \"available\", \"awaiting-transfer\", \"backing-up\", \"creating\", \"deleting\", \"detaching\", \"downloading\", \"error\", \"error*backing-up\", \"error*deleting\", \"error*extending\", \"error*restoring\", \"extending\", \"in-use\", \"maintenance\", \"reserved\", \"restoring-backup\", \"retyping\", \"reverting\", \"uploading\".\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"typeName":{"type":"string","description":"Volume type. Defaults to \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e. If not specified for source \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, volume type will be derived from the snapshot volume.\nAvailable values: \"cold\", \"ssd*hiiops\", \"ssd*local\", \u003cspan pulumi-lang-nodejs=\"\"ssdLowlatency\"\" pulumi-lang-dotnet=\"\"SsdLowlatency\"\" pulumi-lang-go=\"\"ssdLowlatency\"\" pulumi-lang-python=\"\"ssd_lowlatency\"\" pulumi-lang-yaml=\"\"ssdLowlatency\"\" pulumi-lang-java=\"\"ssdLowlatency\"\"\u003e\"ssd_lowlatency\"\u003c/span\u003e, \"standard\", \"ultra\".\n"},"updatedAt":{"type":"string","description":"The date and time when the volume was last updated.\n"},"volumeImageMetadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Image metadata for volumes created from an image.\n"},"volumeType":{"type":"string","description":"The type of volume storage.\n"}},"type":"object","required":["attachments","bootable","createdAt","creatorTaskId","isRootVolume","limiterStats","name","region","snapshotIds","source","status","updatedAt","volumeImageMetadata","volumeType"],"inputProperties":{"attachmentTag":{"type":"string","description":"Block device attachment tag (not exposed in the user tags). Only used in conjunction with \u003cspan pulumi-lang-nodejs=\"`instanceIdToAttachTo`\" pulumi-lang-dotnet=\"`InstanceIdToAttachTo`\" pulumi-lang-go=\"`instanceIdToAttachTo`\" pulumi-lang-python=\"`instance_id_to_attach_to`\" pulumi-lang-yaml=\"`instanceIdToAttachTo`\" pulumi-lang-java=\"`instanceIdToAttachTo`\"\u003e`instance_id_to_attach_to`\u003c/span\u003e\n"},"imageId":{"type":"string","description":"Image ID\n"},"instanceIdToAttachTo":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e to attach newly-created volume to\n"},"lifecyclePolicyIds":{"type":"array","items":{"type":"number"},"description":"List of lifecycle policy IDs (snapshot creation schedules) to associate with the volume\n"},"name":{"type":"string","description":"Volume name\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"size":{"type":"number","description":"Volume size in GiB\n"},"snapshotId":{"type":"string","description":"Snapshot ID\n"},"source":{"type":"string","description":"Volume source type\nAvailable values: \"image\", \"snapshot\", \"new-volume\".\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"typeName":{"type":"string","description":"Volume type. Defaults to \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e. If not specified for source \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, volume type will be derived from the snapshot volume.\nAvailable values: \"cold\", \"ssd*hiiops\", \"ssd*local\", \u003cspan pulumi-lang-nodejs=\"\"ssdLowlatency\"\" pulumi-lang-dotnet=\"\"SsdLowlatency\"\" pulumi-lang-go=\"\"ssdLowlatency\"\" pulumi-lang-python=\"\"ssd_lowlatency\"\" pulumi-lang-yaml=\"\"ssdLowlatency\"\" pulumi-lang-java=\"\"ssdLowlatency\"\"\u003e\"ssd_lowlatency\"\u003c/span\u003e, \"standard\", \"ultra\".\n"}},"requiredInputs":["source"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudVolume resources.\n","properties":{"attachmentTag":{"type":"string","description":"Block device attachment tag (not exposed in the user tags). Only used in conjunction with \u003cspan pulumi-lang-nodejs=\"`instanceIdToAttachTo`\" pulumi-lang-dotnet=\"`InstanceIdToAttachTo`\" pulumi-lang-go=\"`instanceIdToAttachTo`\" pulumi-lang-python=\"`instance_id_to_attach_to`\" pulumi-lang-yaml=\"`instanceIdToAttachTo`\" pulumi-lang-java=\"`instanceIdToAttachTo`\"\u003e`instance_id_to_attach_to`\u003c/span\u003e\n"},"attachments":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCloudVolumeAttachment:CloudVolumeAttachment"},"description":"List of attachments associated with the volume.\n"},"bootable":{"type":"boolean","description":"Indicates whether the volume is bootable.\n"},"createdAt":{"type":"string","description":"The date and time when the volume was created.\n"},"creatorTaskId":{"type":"string","description":"The ID of the task that created this volume.\n"},"imageId":{"type":"string","description":"Image ID\n"},"instanceIdToAttachTo":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e to attach newly-created volume to\n"},"isRootVolume":{"type":"boolean","description":"Indicates whether this is a root volume.\n"},"lifecyclePolicyIds":{"type":"array","items":{"type":"number"},"description":"List of lifecycle policy IDs (snapshot creation schedules) to associate with the volume\n"},"limiterStats":{"$ref":"#/types/gcore:index%2FCloudVolumeLimiterStats:CloudVolumeLimiterStats","description":"Schema representing the Quality of Service (QoS) parameters for a volume.\n"},"name":{"type":"string","description":"Volume name\n"},"projectId":{"type":"number","description":"Project ID\n"},"region":{"type":"string","description":"The region where the volume is located.\n"},"regionId":{"type":"number","description":"Region ID\n"},"size":{"type":"number","description":"Volume size in GiB\n"},"snapshotId":{"type":"string","description":"Snapshot ID\n"},"snapshotIds":{"type":"array","items":{"type":"string"},"description":"List of snapshot IDs associated with this volume.\n"},"source":{"type":"string","description":"Volume source type\nAvailable values: \"image\", \"snapshot\", \"new-volume\".\n"},"status":{"type":"string","description":"The current status of the volume.\nAvailable values: \"attaching\", \"available\", \"awaiting-transfer\", \"backing-up\", \"creating\", \"deleting\", \"detaching\", \"downloading\", \"error\", \"error*backing-up\", \"error*deleting\", \"error*extending\", \"error*restoring\", \"extending\", \"in-use\", \"maintenance\", \"reserved\", \"restoring-backup\", \"retyping\", \"reverting\", \"uploading\".\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value tags to associate with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Both tag keys and values have a maximum length of 255 characters. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n"},"typeName":{"type":"string","description":"Volume type. Defaults to \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e. If not specified for source \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, volume type will be derived from the snapshot volume.\nAvailable values: \"cold\", \"ssd*hiiops\", \"ssd*local\", \u003cspan pulumi-lang-nodejs=\"\"ssdLowlatency\"\" pulumi-lang-dotnet=\"\"SsdLowlatency\"\" pulumi-lang-go=\"\"ssdLowlatency\"\" pulumi-lang-python=\"\"ssd_lowlatency\"\" pulumi-lang-yaml=\"\"ssdLowlatency\"\" pulumi-lang-java=\"\"ssdLowlatency\"\"\u003e\"ssd_lowlatency\"\u003c/span\u003e, \"standard\", \"ultra\".\n"},"updatedAt":{"type":"string","description":"The date and time when the volume was last updated.\n"},"volumeImageMetadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Image metadata for volumes created from an image.\n"},"volumeType":{"type":"string","description":"The type of volume storage.\n"}},"type":"object"}},"gcore:index/dnsNetworkMapping:DnsNetworkMapping":{"description":"DNS network mappings associate CIDR ranges with network tags for private DNS resolution and traffic-based routing.\n\n## Example Usage\n\n### Private DNS network mapping\n\nCreates a DNS network mapping with IPv4 and IPv6 CIDRs for private DNS resolution.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create a DNS network mapping for private DNS resolution\nconst example = new gcore.DnsNetworkMapping(\"example\", {\n    name: \"DevNetwork\",\n    mappings: [{\n        tags: [\n            \"development\",\n            \"test\",\n        ],\n        cidr4s: [\n            \"10.0.0.0/16\",\n            \"10.1.0.0/16\",\n        ],\n        cidr6s: [\"fd00::/8\"],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create a DNS network mapping for private DNS resolution\nexample = gcore.DnsNetworkMapping(\"example\",\n    name=\"DevNetwork\",\n    mappings=[{\n        \"tags\": [\n            \"development\",\n            \"test\",\n        ],\n        \"cidr4s\": [\n            \"10.0.0.0/16\",\n            \"10.1.0.0/16\",\n        ],\n        \"cidr6s\": [\"fd00::/8\"],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a DNS network mapping for private DNS resolution\n    var example = new Gcore.DnsNetworkMapping(\"example\", new()\n    {\n        Name = \"DevNetwork\",\n        Mappings = new[]\n        {\n            new Gcore.Inputs.DnsNetworkMappingMappingArgs\n            {\n                Tags = new[]\n                {\n                    \"development\",\n                    \"test\",\n                },\n                Cidr4s = new[]\n                {\n                    \"10.0.0.0/16\",\n                    \"10.1.0.0/16\",\n                },\n                Cidr6s = new[]\n                {\n                    \"fd00::/8\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a DNS network mapping for private DNS resolution\n\t\t_, err := gcore.NewDnsNetworkMapping(ctx, \"example\", \u0026gcore.DnsNetworkMappingArgs{\n\t\t\tName: pulumi.String(\"DevNetwork\"),\n\t\t\tMappings: gcore.DnsNetworkMappingMappingArray{\n\t\t\t\t\u0026gcore.DnsNetworkMappingMappingArgs{\n\t\t\t\t\tTags: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"development\"),\n\t\t\t\t\t\tpulumi.String(\"test\"),\n\t\t\t\t\t},\n\t\t\t\t\tCidr4s: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t\t\t\tpulumi.String(\"10.1.0.0/16\"),\n\t\t\t\t\t},\n\t\t\t\t\tCidr6s: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"fd00::/8\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.DnsNetworkMapping;\nimport com.pulumi.gcore.DnsNetworkMappingArgs;\nimport com.pulumi.gcore.inputs.DnsNetworkMappingMappingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a DNS network mapping for private DNS resolution\n        var example = new DnsNetworkMapping(\"example\", DnsNetworkMappingArgs.builder()\n            .name(\"DevNetwork\")\n            .mappings(DnsNetworkMappingMappingArgs.builder()\n                .tags(                \n                    \"development\",\n                    \"test\")\n                .cidr4s(                \n                    \"10.0.0.0/16\",\n                    \"10.1.0.0/16\")\n                .cidr6s(\"fd00::/8\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a DNS network mapping for private DNS resolution\n  example:\n    type: gcore:DnsNetworkMapping\n    properties:\n      name: DevNetwork\n      mappings:\n        - tags:\n            - development\n            - test\n          cidr4s:\n            - 10.0.0.0/16\n            - 10.1.0.0/16\n          cidr6s:\n            - fd00::/8\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/dnsNetworkMapping:DnsNetworkMapping example '\u003cid\u003e'\n```\n\n","properties":{"dnsNetworkMappingId":{"type":"number","description":"The ID of this resource.\n"},"mappings":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsNetworkMappingMapping:DnsNetworkMappingMapping"}},"name":{"type":"string"}},"type":"object","required":["dnsNetworkMappingId","name"],"inputProperties":{"mappings":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsNetworkMappingMapping:DnsNetworkMappingMapping"}},"name":{"type":"string"}},"stateInputs":{"description":"Input properties used for looking up and filtering DnsNetworkMapping resources.\n","properties":{"dnsNetworkMappingId":{"type":"number","description":"The ID of this resource.\n"},"mappings":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsNetworkMappingMapping:DnsNetworkMappingMapping"}},"name":{"type":"string"}},"type":"object"}},"gcore:index/dnsZone:DnsZone":{"description":"DNS zones are authoritative containers for domain name records, with support for DNSSEC and SOA configuration.\n\n## Example Usage\n\n### Basic DNS zone\n\nCreates a DNS zone with default settings.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Basic DNS Zone\nconst example = new gcore.DnsZone(\"example\", {name: \"example.com\"});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Basic DNS Zone\nexample = gcore.DnsZone(\"example\", name=\"example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Basic DNS Zone\n    var example = new Gcore.DnsZone(\"example\", new()\n    {\n        Name = \"example.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Basic DNS Zone\n\t\t_, err := gcore.NewDnsZone(ctx, \"example\", \u0026gcore.DnsZoneArgs{\n\t\t\tName: pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.DnsZone;\nimport com.pulumi.gcore.DnsZoneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Basic DNS Zone\n        var example = new DnsZone(\"example\", DnsZoneArgs.builder()\n            .name(\"example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Basic DNS Zone\n  example:\n    type: gcore:DnsZone\n    properties:\n      name: example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### DNS zone with SOA configuration\n\nCreates a DNS zone with custom SOA record fields.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// DNS Zone with SOA configuration\nconst advanced = new gcore.DnsZone(\"advanced\", {\n    name: \"advanced-example.com\",\n    enabled: true,\n    contact: \"admin@advanced-example.com\",\n    expiry: 604800,\n    nxTtl: 3600,\n    primaryServer: \"ns1.advanced-example.com.\",\n    refresh: 3600,\n    retry: 1800,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# DNS Zone with SOA configuration\nadvanced = gcore.DnsZone(\"advanced\",\n    name=\"advanced-example.com\",\n    enabled=True,\n    contact=\"admin@advanced-example.com\",\n    expiry=604800,\n    nx_ttl=3600,\n    primary_server=\"ns1.advanced-example.com.\",\n    refresh=3600,\n    retry=1800)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // DNS Zone with SOA configuration\n    var advanced = new Gcore.DnsZone(\"advanced\", new()\n    {\n        Name = \"advanced-example.com\",\n        Enabled = true,\n        Contact = \"admin@advanced-example.com\",\n        Expiry = 604800,\n        NxTtl = 3600,\n        PrimaryServer = \"ns1.advanced-example.com.\",\n        Refresh = 3600,\n        Retry = 1800,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// DNS Zone with SOA configuration\n\t\t_, err := gcore.NewDnsZone(ctx, \"advanced\", \u0026gcore.DnsZoneArgs{\n\t\t\tName:          pulumi.String(\"advanced-example.com\"),\n\t\t\tEnabled:       pulumi.Bool(true),\n\t\t\tContact:       pulumi.String(\"admin@advanced-example.com\"),\n\t\t\tExpiry:        pulumi.Float64(604800),\n\t\t\tNxTtl:         pulumi.Float64(3600),\n\t\t\tPrimaryServer: pulumi.String(\"ns1.advanced-example.com.\"),\n\t\t\tRefresh:       pulumi.Float64(3600),\n\t\t\tRetry:         pulumi.Float64(1800),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.DnsZone;\nimport com.pulumi.gcore.DnsZoneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // DNS Zone with SOA configuration\n        var advanced = new DnsZone(\"advanced\", DnsZoneArgs.builder()\n            .name(\"advanced-example.com\")\n            .enabled(true)\n            .contact(\"admin@advanced-example.com\")\n            .expiry(604800.0)\n            .nxTtl(3600.0)\n            .primaryServer(\"ns1.advanced-example.com.\")\n            .refresh(3600.0)\n            .retry(1800.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # DNS Zone with SOA configuration\n  advanced:\n    type: gcore:DnsZone\n    properties:\n      name: advanced-example.com\n      enabled: true # SOA record fields\n      contact: admin@advanced-example.com\n      expiry: 604800\n      nxTtl: 3600\n      primaryServer: ns1.advanced-example.com.\n      refresh: 3600\n      retry: 1800\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/dnsZone:DnsZone example '\u003cname\u003e'\n```\n\n","properties":{"contact":{"type":"string","description":"email address of the administrator responsible for this zone\n"},"dnssecEnabled":{"type":"boolean","description":"Whether DNSSEC is enabled for the zone. Set to true to enable DNSSEC, false to disable. Managed via a separate API endpoint.\n"},"enabled":{"type":"boolean","description":"If a zone is disabled, then its records will not be resolved on dns servers\n"},"expiry":{"type":"number","description":"number of seconds after which secondary name servers should stop answering request for this zone\n"},"meta":{"type":"object","additionalProperties":{"type":"string"},"description":"arbitrarily data of zone in json format\nyou can specify \u003cspan pulumi-lang-nodejs=\"`webhook`\" pulumi-lang-dotnet=\"`Webhook`\" pulumi-lang-go=\"`webhook`\" pulumi-lang-python=\"`webhook`\" pulumi-lang-yaml=\"`webhook`\" pulumi-lang-java=\"`webhook`\"\u003e`webhook`\u003c/span\u003e url and \u003cspan pulumi-lang-nodejs=\"`webhookMethod`\" pulumi-lang-dotnet=\"`WebhookMethod`\" pulumi-lang-go=\"`webhookMethod`\" pulumi-lang-python=\"`webhook_method`\" pulumi-lang-yaml=\"`webhookMethod`\" pulumi-lang-java=\"`webhookMethod`\"\u003e`webhook_method`\u003c/span\u003e here\nwebhook will get a map with three arrays: for created, updated and deleted rrsets\n\u003cspan pulumi-lang-nodejs=\"`webhookMethod`\" pulumi-lang-dotnet=\"`WebhookMethod`\" pulumi-lang-go=\"`webhookMethod`\" pulumi-lang-python=\"`webhook_method`\" pulumi-lang-yaml=\"`webhookMethod`\" pulumi-lang-java=\"`webhookMethod`\"\u003e`webhook_method`\u003c/span\u003e can be omitted, POST will be used by default\n"},"name":{"type":"string","description":"name of DNS zone\n"},"nxTtl":{"type":"number","description":"Time To Live of cache\n"},"primaryServer":{"type":"string","description":"primary master name server for zone\n"},"records":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRecord:DnsZoneRecord"}},"refresh":{"type":"number","description":"number of seconds after which secondary name servers should query the master for the SOA record, to detect zone changes.\n"},"retry":{"type":"number","description":"number of seconds after which secondary name servers should retry to request the serial number\n"},"rrsetsAmount":{"$ref":"#/types/gcore:index%2FDnsZoneRrsetsAmount:DnsZoneRrsetsAmount"},"serial":{"type":"number","description":"Serial number for this zone. Server-managed: always derived from the zone's last modification timestamp.\n"},"status":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"}}},"type":"object","required":["contact","dnssecEnabled","enabled","expiry","name","nxTtl","primaryServer","records","refresh","retry","rrsetsAmount","serial","status","warnings"],"inputProperties":{"contact":{"type":"string","description":"email address of the administrator responsible for this zone\n"},"dnssecEnabled":{"type":"boolean","description":"Whether DNSSEC is enabled for the zone. Set to true to enable DNSSEC, false to disable. Managed via a separate API endpoint.\n"},"enabled":{"type":"boolean","description":"If a zone is disabled, then its records will not be resolved on dns servers\n"},"expiry":{"type":"number","description":"number of seconds after which secondary name servers should stop answering request for this zone\n"},"meta":{"type":"object","additionalProperties":{"type":"string"},"description":"arbitrarily data of zone in json format\nyou can specify \u003cspan pulumi-lang-nodejs=\"`webhook`\" pulumi-lang-dotnet=\"`Webhook`\" pulumi-lang-go=\"`webhook`\" pulumi-lang-python=\"`webhook`\" pulumi-lang-yaml=\"`webhook`\" pulumi-lang-java=\"`webhook`\"\u003e`webhook`\u003c/span\u003e url and \u003cspan pulumi-lang-nodejs=\"`webhookMethod`\" pulumi-lang-dotnet=\"`WebhookMethod`\" pulumi-lang-go=\"`webhookMethod`\" pulumi-lang-python=\"`webhook_method`\" pulumi-lang-yaml=\"`webhookMethod`\" pulumi-lang-java=\"`webhookMethod`\"\u003e`webhook_method`\u003c/span\u003e here\nwebhook will get a map with three arrays: for created, updated and deleted rrsets\n\u003cspan pulumi-lang-nodejs=\"`webhookMethod`\" pulumi-lang-dotnet=\"`WebhookMethod`\" pulumi-lang-go=\"`webhookMethod`\" pulumi-lang-python=\"`webhook_method`\" pulumi-lang-yaml=\"`webhookMethod`\" pulumi-lang-java=\"`webhookMethod`\"\u003e`webhook_method`\u003c/span\u003e can be omitted, POST will be used by default\n"},"name":{"type":"string","description":"name of DNS zone\n"},"nxTtl":{"type":"number","description":"Time To Live of cache\n"},"primaryServer":{"type":"string","description":"primary master name server for zone\n"},"refresh":{"type":"number","description":"number of seconds after which secondary name servers should query the master for the SOA record, to detect zone changes.\n"},"retry":{"type":"number","description":"number of seconds after which secondary name servers should retry to request the serial number\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering DnsZone resources.\n","properties":{"contact":{"type":"string","description":"email address of the administrator responsible for this zone\n"},"dnssecEnabled":{"type":"boolean","description":"Whether DNSSEC is enabled for the zone. Set to true to enable DNSSEC, false to disable. Managed via a separate API endpoint.\n"},"enabled":{"type":"boolean","description":"If a zone is disabled, then its records will not be resolved on dns servers\n"},"expiry":{"type":"number","description":"number of seconds after which secondary name servers should stop answering request for this zone\n"},"meta":{"type":"object","additionalProperties":{"type":"string"},"description":"arbitrarily data of zone in json format\nyou can specify \u003cspan pulumi-lang-nodejs=\"`webhook`\" pulumi-lang-dotnet=\"`Webhook`\" pulumi-lang-go=\"`webhook`\" pulumi-lang-python=\"`webhook`\" pulumi-lang-yaml=\"`webhook`\" pulumi-lang-java=\"`webhook`\"\u003e`webhook`\u003c/span\u003e url and \u003cspan pulumi-lang-nodejs=\"`webhookMethod`\" pulumi-lang-dotnet=\"`WebhookMethod`\" pulumi-lang-go=\"`webhookMethod`\" pulumi-lang-python=\"`webhook_method`\" pulumi-lang-yaml=\"`webhookMethod`\" pulumi-lang-java=\"`webhookMethod`\"\u003e`webhook_method`\u003c/span\u003e here\nwebhook will get a map with three arrays: for created, updated and deleted rrsets\n\u003cspan pulumi-lang-nodejs=\"`webhookMethod`\" pulumi-lang-dotnet=\"`WebhookMethod`\" pulumi-lang-go=\"`webhookMethod`\" pulumi-lang-python=\"`webhook_method`\" pulumi-lang-yaml=\"`webhookMethod`\" pulumi-lang-java=\"`webhookMethod`\"\u003e`webhook_method`\u003c/span\u003e can be omitted, POST will be used by default\n"},"name":{"type":"string","description":"name of DNS zone\n"},"nxTtl":{"type":"number","description":"Time To Live of cache\n"},"primaryServer":{"type":"string","description":"primary master name server for zone\n"},"records":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRecord:DnsZoneRecord"}},"refresh":{"type":"number","description":"number of seconds after which secondary name servers should query the master for the SOA record, to detect zone changes.\n"},"retry":{"type":"number","description":"number of seconds after which secondary name servers should retry to request the serial number\n"},"rrsetsAmount":{"$ref":"#/types/gcore:index%2FDnsZoneRrsetsAmount:DnsZoneRrsetsAmount"},"serial":{"type":"number","description":"Serial number for this zone. Server-managed: always derived from the zone's last modification timestamp.\n"},"status":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"}}},"type":"object"}},"gcore:index/dnsZoneRrset:DnsZoneRrset":{"description":"DNS resource record sets (RRsets) define individual DNS records such as A, AAAA, CNAME, MX, and TXT with TTL and geo-balancing settings.\n\n## Example Usage\n\n### A record\n\nCreates an A record set with multiple IP addresses.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create an A record set\nconst aRecord = new gcore.DnsZoneRrset(\"a_record\", {\n    zoneName: \"example.com\",\n    rrsetName: \"example.com\",\n    rrsetType: \"A\",\n    ttl: 120,\n    resourceRecords: [\n        {\n            contents: [JSON.stringify(\"127.0.0.100\")],\n        },\n        {\n            contents: [JSON.stringify(\"127.0.0.200\")],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_gcore as gcore\n\n# Create an A record set\na_record = gcore.DnsZoneRrset(\"a_record\",\n    zone_name=\"example.com\",\n    rrset_name=\"example.com\",\n    rrset_type=\"A\",\n    ttl=120,\n    resource_records=[\n        {\n            \"contents\": [json.dumps(\"127.0.0.100\")],\n        },\n        {\n            \"contents\": [json.dumps(\"127.0.0.200\")],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create an A record set\n    var aRecord = new Gcore.DnsZoneRrset(\"a_record\", new()\n    {\n        ZoneName = \"example.com\",\n        RrsetName = \"example.com\",\n        RrsetType = \"A\",\n        Ttl = 120,\n        ResourceRecords = new[]\n        {\n            new Gcore.Inputs.DnsZoneRrsetResourceRecordArgs\n            {\n                Contents = new[]\n                {\n                    JsonSerializer.Serialize(\"127.0.0.100\"),\n                },\n            },\n            new Gcore.Inputs.DnsZoneRrsetResourceRecordArgs\n            {\n                Contents = new[]\n                {\n                    JsonSerializer.Serialize(\"127.0.0.200\"),\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(\"127.0.0.100\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal(\"127.0.0.200\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t// Create an A record set\n\t\t_, err = gcore.NewDnsZoneRrset(ctx, \"a_record\", \u0026gcore.DnsZoneRrsetArgs{\n\t\t\tZoneName:  pulumi.String(\"example.com\"),\n\t\t\tRrsetName: pulumi.String(\"example.com\"),\n\t\t\tRrsetType: pulumi.String(\"A\"),\n\t\t\tTtl:       pulumi.Float64(120),\n\t\t\tResourceRecords: gcore.DnsZoneRrsetResourceRecordArray{\n\t\t\t\t\u0026gcore.DnsZoneRrsetResourceRecordArgs{\n\t\t\t\t\tContents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(json0),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026gcore.DnsZoneRrsetResourceRecordArgs{\n\t\t\t\t\tContents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(json1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.DnsZoneRrset;\nimport com.pulumi.gcore.DnsZoneRrsetArgs;\nimport com.pulumi.gcore.inputs.DnsZoneRrsetResourceRecordArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create an A record set\n        var aRecord = new DnsZoneRrset(\"aRecord\", DnsZoneRrsetArgs.builder()\n            .zoneName(\"example.com\")\n            .rrsetName(\"example.com\")\n            .rrsetType(\"A\")\n            .ttl(120.0)\n            .resourceRecords(            \n                DnsZoneRrsetResourceRecordArgs.builder()\n                    .contents(serializeJson(\n                        \"127.0.0.100\"))\n                    .build(),\n                DnsZoneRrsetResourceRecordArgs.builder()\n                    .contents(serializeJson(\n                        \"127.0.0.200\"))\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an A record set\n  aRecord:\n    type: gcore:DnsZoneRrset\n    name: a_record\n    properties:\n      zoneName: example.com\n      rrsetName: example.com\n      rrsetType: A\n      ttl: 120\n      resourceRecords:\n        - contents:\n            - fn::toJSON: 127.0.0.100\n        - contents:\n            - fn::toJSON: 127.0.0.200\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### MX record\n\nCreates an MX record for mail routing.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create an MX record\nconst mxRecord = new gcore.DnsZoneRrset(\"mx_record\", {\n    zoneName: \"example.com\",\n    rrsetName: \"example.com\",\n    rrsetType: \"MX\",\n    ttl: 300,\n    resourceRecords: [{\n        contents: [JSON.stringify(\"10 mail.example.com.\")],\n        enabled: true,\n    }],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_gcore as gcore\n\n# Create an MX record\nmx_record = gcore.DnsZoneRrset(\"mx_record\",\n    zone_name=\"example.com\",\n    rrset_name=\"example.com\",\n    rrset_type=\"MX\",\n    ttl=300,\n    resource_records=[{\n        \"contents\": [json.dumps(\"10 mail.example.com.\")],\n        \"enabled\": True,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create an MX record\n    var mxRecord = new Gcore.DnsZoneRrset(\"mx_record\", new()\n    {\n        ZoneName = \"example.com\",\n        RrsetName = \"example.com\",\n        RrsetType = \"MX\",\n        Ttl = 300,\n        ResourceRecords = new[]\n        {\n            new Gcore.Inputs.DnsZoneRrsetResourceRecordArgs\n            {\n                Contents = new[]\n                {\n                    JsonSerializer.Serialize(\"10 mail.example.com.\"),\n                },\n                Enabled = true,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(\"10 mail.example.com.\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t// Create an MX record\n\t\t_, err = gcore.NewDnsZoneRrset(ctx, \"mx_record\", \u0026gcore.DnsZoneRrsetArgs{\n\t\t\tZoneName:  pulumi.String(\"example.com\"),\n\t\t\tRrsetName: pulumi.String(\"example.com\"),\n\t\t\tRrsetType: pulumi.String(\"MX\"),\n\t\t\tTtl:       pulumi.Float64(300),\n\t\t\tResourceRecords: gcore.DnsZoneRrsetResourceRecordArray{\n\t\t\t\t\u0026gcore.DnsZoneRrsetResourceRecordArgs{\n\t\t\t\t\tContents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(json0),\n\t\t\t\t\t},\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.DnsZoneRrset;\nimport com.pulumi.gcore.DnsZoneRrsetArgs;\nimport com.pulumi.gcore.inputs.DnsZoneRrsetResourceRecordArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create an MX record\n        var mxRecord = new DnsZoneRrset(\"mxRecord\", DnsZoneRrsetArgs.builder()\n            .zoneName(\"example.com\")\n            .rrsetName(\"example.com\")\n            .rrsetType(\"MX\")\n            .ttl(300.0)\n            .resourceRecords(DnsZoneRrsetResourceRecordArgs.builder()\n                .contents(serializeJson(\n                    \"10 mail.example.com.\"))\n                .enabled(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an MX record\n  mxRecord:\n    type: gcore:DnsZoneRrset\n    name: mx_record\n    properties:\n      zoneName: example.com\n      rrsetName: example.com\n      rrsetType: MX\n      ttl: 300\n      resourceRecords:\n        - contents:\n            - fn::toJSON: 10 mail.example.com.\n          enabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### TXT record with GeoDNS picker\n\nCreates a TXT record on a subdomain with a GeoDNS picker for location-based responses.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create a TXT record on a subdomain\nconst txtRecord = new gcore.DnsZoneRrset(\"txt_record\", {\n    zoneName: \"example.com\",\n    rrsetName: \"subdomain.example.com\",\n    rrsetType: \"TXT\",\n    ttl: 120,\n    resourceRecords: [{\n        contents: [JSON.stringify(\"v=spf1 include:_spf.google.com ~all\")],\n        enabled: true,\n    }],\n    pickers: [{\n        type: \"geodns\",\n        limit: 1,\n        strict: true,\n    }],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_gcore as gcore\n\n# Create a TXT record on a subdomain\ntxt_record = gcore.DnsZoneRrset(\"txt_record\",\n    zone_name=\"example.com\",\n    rrset_name=\"subdomain.example.com\",\n    rrset_type=\"TXT\",\n    ttl=120,\n    resource_records=[{\n        \"contents\": [json.dumps(\"v=spf1 include:_spf.google.com ~all\")],\n        \"enabled\": True,\n    }],\n    pickers=[{\n        \"type\": \"geodns\",\n        \"limit\": 1,\n        \"strict\": True,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a TXT record on a subdomain\n    var txtRecord = new Gcore.DnsZoneRrset(\"txt_record\", new()\n    {\n        ZoneName = \"example.com\",\n        RrsetName = \"subdomain.example.com\",\n        RrsetType = \"TXT\",\n        Ttl = 120,\n        ResourceRecords = new[]\n        {\n            new Gcore.Inputs.DnsZoneRrsetResourceRecordArgs\n            {\n                Contents = new[]\n                {\n                    JsonSerializer.Serialize(\"v=spf1 include:_spf.google.com ~all\"),\n                },\n                Enabled = true,\n            },\n        },\n        Pickers = new[]\n        {\n            new Gcore.Inputs.DnsZoneRrsetPickerArgs\n            {\n                Type = \"geodns\",\n                Limit = 1,\n                Strict = true,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(\"v=spf1 include:_spf.google.com ~all\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t// Create a TXT record on a subdomain\n\t\t_, err = gcore.NewDnsZoneRrset(ctx, \"txt_record\", \u0026gcore.DnsZoneRrsetArgs{\n\t\t\tZoneName:  pulumi.String(\"example.com\"),\n\t\t\tRrsetName: pulumi.String(\"subdomain.example.com\"),\n\t\t\tRrsetType: pulumi.String(\"TXT\"),\n\t\t\tTtl:       pulumi.Float64(120),\n\t\t\tResourceRecords: gcore.DnsZoneRrsetResourceRecordArray{\n\t\t\t\t\u0026gcore.DnsZoneRrsetResourceRecordArgs{\n\t\t\t\t\tContents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(json0),\n\t\t\t\t\t},\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPickers: gcore.DnsZoneRrsetPickerArray{\n\t\t\t\t\u0026gcore.DnsZoneRrsetPickerArgs{\n\t\t\t\t\tType:   pulumi.String(\"geodns\"),\n\t\t\t\t\tLimit:  pulumi.Float64(1),\n\t\t\t\t\tStrict: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.DnsZoneRrset;\nimport com.pulumi.gcore.DnsZoneRrsetArgs;\nimport com.pulumi.gcore.inputs.DnsZoneRrsetResourceRecordArgs;\nimport com.pulumi.gcore.inputs.DnsZoneRrsetPickerArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a TXT record on a subdomain\n        var txtRecord = new DnsZoneRrset(\"txtRecord\", DnsZoneRrsetArgs.builder()\n            .zoneName(\"example.com\")\n            .rrsetName(\"subdomain.example.com\")\n            .rrsetType(\"TXT\")\n            .ttl(120.0)\n            .resourceRecords(DnsZoneRrsetResourceRecordArgs.builder()\n                .contents(serializeJson(\n                    \"v=spf1 include:_spf.google.com ~all\"))\n                .enabled(true)\n                .build())\n            .pickers(DnsZoneRrsetPickerArgs.builder()\n                .type(\"geodns\")\n                .limit(1.0)\n                .strict(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a TXT record on a subdomain\n  txtRecord:\n    type: gcore:DnsZoneRrset\n    name: txt_record\n    properties:\n      zoneName: example.com\n      rrsetName: subdomain.example.com\n      rrsetType: TXT\n      ttl: 120\n      resourceRecords:\n        - contents:\n            - fn::toJSON: v=spf1 include:_spf.google.com ~all\n          enabled: true\n      pickers:\n        - type: geodns\n          limit: 1\n          strict: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import gcore:index/dnsZoneRrset:DnsZoneRrset example '\u003czone_name\u003e/\u003crrset_name\u003e/\u003crrset_type\u003e'\n```\n\n","properties":{"filterSetId":{"type":"number"},"meta":{"type":"object","additionalProperties":{"type":"string"},"description":"Meta information for rrset"},"name":{"type":"string"},"pickers":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRrsetPicker:DnsZoneRrsetPicker"},"description":"Set of pickers"},"resourceRecords":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRrsetResourceRecord:DnsZoneRrsetResourceRecord"},"description":"List of resource record from rrset"},"rrsetName":{"type":"string"},"rrsetType":{"type":"string"},"ttl":{"type":"number"},"type":{"type":"string","description":"RRSet type\nAvailable values: \"A\", \"AAAA\", \"NS\", \"CNAME\", \"MX\", \"TXT\", \"SRV\", \"SOA\"."},"warning":{"type":"string","description":"Warning about some possible side effects without strictly disallowing operations on rrset\nreadonly\nDeprecated: use Warnings instead"},"warnings":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRrsetWarning:DnsZoneRrsetWarning"},"description":"Warning about some possible side effects without strictly disallowing operations on rrset\nreadonly"},"zoneName":{"type":"string"}},"type":"object","required":["filterSetId","name","resourceRecords","rrsetName","rrsetType","type","warning","warnings","zoneName"],"inputProperties":{"meta":{"type":"object","additionalProperties":{"type":"string"},"description":"Meta information for rrset"},"pickers":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRrsetPicker:DnsZoneRrsetPicker"},"description":"Set of pickers"},"resourceRecords":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRrsetResourceRecord:DnsZoneRrsetResourceRecord"},"description":"List of resource record from rrset"},"rrsetName":{"type":"string"},"rrsetType":{"type":"string"},"ttl":{"type":"number"},"zoneName":{"type":"string"}},"requiredInputs":["resourceRecords","rrsetName","rrsetType","zoneName"],"stateInputs":{"description":"Input properties used for looking up and filtering DnsZoneRrset resources.\n","properties":{"filterSetId":{"type":"number"},"meta":{"type":"object","additionalProperties":{"type":"string"},"description":"Meta information for rrset"},"name":{"type":"string"},"pickers":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRrsetPicker:DnsZoneRrsetPicker"},"description":"Set of pickers"},"resourceRecords":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRrsetResourceRecord:DnsZoneRrsetResourceRecord"},"description":"List of resource record from rrset"},"rrsetName":{"type":"string"},"rrsetType":{"type":"string"},"ttl":{"type":"number"},"type":{"type":"string","description":"RRSet type\nAvailable values: \"A\", \"AAAA\", \"NS\", \"CNAME\", \"MX\", \"TXT\", \"SRV\", \"SOA\"."},"warning":{"type":"string","description":"Warning about some possible side effects without strictly disallowing operations on rrset\nreadonly\nDeprecated: use Warnings instead"},"warnings":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRrsetWarning:DnsZoneRrsetWarning"},"description":"Warning about some possible side effects without strictly disallowing operations on rrset\nreadonly"},"zoneName":{"type":"string"}},"type":"object"}},"gcore:index/fastedgeApp:FastedgeApp":{"description":"FastEdge applications combine a WebAssembly binary with configuration, environment variables, and secrets for deployment at the CDN edge.\n\n## Example Usage\n\n### Basic FastEdge app\n\nCreate a FastEdge application from a Wasm binary with environment variables.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create a FastEdge app from a Wasm binary\nconst example = new gcore.FastedgeApp(\"example\", {\n    name: \"my-edge-app\",\n    comment: \"My FastEdge application\",\n    binary: wasmModule.id,\n    status: 1,\n    env: {\n        API_URL: \"https://api.example.com\",\n        DEBUG: \"false\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create a FastEdge app from a Wasm binary\nexample = gcore.FastedgeApp(\"example\",\n    name=\"my-edge-app\",\n    comment=\"My FastEdge application\",\n    binary=wasm_module[\"id\"],\n    status=1,\n    env={\n        \"API_URL\": \"https://api.example.com\",\n        \"DEBUG\": \"false\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a FastEdge app from a Wasm binary\n    var example = new Gcore.FastedgeApp(\"example\", new()\n    {\n        Name = \"my-edge-app\",\n        Comment = \"My FastEdge application\",\n        Binary = wasmModule.Id,\n        Status = 1,\n        Env = \n        {\n            { \"API_URL\", \"https://api.example.com\" },\n            { \"DEBUG\", \"false\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a FastEdge app from a Wasm binary\n\t\t_, err := gcore.NewFastedgeApp(ctx, \"example\", \u0026gcore.FastedgeAppArgs{\n\t\t\tName:    pulumi.String(\"my-edge-app\"),\n\t\t\tComment: pulumi.String(\"My FastEdge application\"),\n\t\t\tBinary:  pulumi.Any(wasmModule.Id),\n\t\t\tStatus:  pulumi.Float64(1),\n\t\t\tEnv: pulumi.StringMap{\n\t\t\t\t\"API_URL\": pulumi.String(\"https://api.example.com\"),\n\t\t\t\t\"DEBUG\":   pulumi.String(\"false\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.FastedgeApp;\nimport com.pulumi.gcore.FastedgeAppArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a FastEdge app from a Wasm binary\n        var example = new FastedgeApp(\"example\", FastedgeAppArgs.builder()\n            .name(\"my-edge-app\")\n            .comment(\"My FastEdge application\")\n            .binary(wasmModule.id())\n            .status(1.0)\n            .env(Map.ofEntries(\n                Map.entry(\"API_URL\", \"https://api.example.com\"),\n                Map.entry(\"DEBUG\", \"false\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a FastEdge app from a Wasm binary\n  example:\n    type: gcore:FastedgeApp\n    properties:\n      name: my-edge-app\n      comment: My FastEdge application\n      binary: ${wasmModule.id}\n      status: 1\n      env:\n        API_URL: https://api.example.com\n        DEBUG: 'false'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### App with secrets and response headers\n\nCreate a FastEdge app that references secrets and sets custom response headers.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  # FastEdge app with secret references and response headers\n  apiGateway:\n    type: gcore:FastedgeApp\n    name: api_gateway\n    properties:\n      name: api-gateway\n      binary: ${wasmModule.id}\n      status: 1\n      env:\n        BACKEND_URL: https://api.example.com\n      secretIds:\n        - 101\n        - 102\n      responseHeaders:\n        x-Powered-By: Gcore FastEdge\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n```sh\n$ pulumi import gcore:index/fastedgeApp:FastedgeApp example '\u003capp_id\u003e'\n```\n\n","properties":{"apiType":{"type":"string","description":"Wasm API type"},"binary":{"type":"number","description":"ID of the WebAssembly binary to deploy"},"comment":{"type":"string","description":"Optional human-readable description of the application's purpose"},"debug":{"type":"boolean","description":"Enable verbose debug logging for 30 minutes. Automatically expires to prevent performance impact."},"debugUntil":{"type":"string","description":"When debugging finishes"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables"},"fastedgeAppId":{"type":"number","description":"App ID"},"log":{"type":"string","description":"Logging channel. Use 'kafka' to enable log collection (queryable via API), or 'none' to disable logging.\nAvailable values: \"kafka\", \"none\"."},"name":{"type":"string","description":"Unique application name (alphanumeric, hyphens allowed)"},"networks":{"type":"array","items":{"type":"string"},"description":"Networks"},"plan":{"type":"string","description":"Plan name"},"planId":{"type":"number","description":"Plan ID"},"rspHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"Extra headers to add to the response"},"secrets":{"type":"object","additionalProperties":{"$ref":"#/types/gcore:index%2FFastedgeAppSecrets:FastedgeAppSecrets"},"description":"Application secrets"},"status":{"type":"number","description":"Status code:  \n0 - draft (inactive)  \n1 - enabled  \n2 - disabled  \n5 - suspended"},"stores":{"type":"object","additionalProperties":{"$ref":"#/types/gcore:index%2FFastedgeAppStores:FastedgeAppStores"},"description":"Application edge stores"},"template":{"type":"number","description":"Template ID"},"templateName":{"type":"string","description":"Template name"},"upgradeableTo":{"type":"number","description":"ID of the binary the app can be upgraded to"},"url":{"type":"string","description":"Auto-generated URL where the application is accessible"}},"type":"object","required":["apiType","binary","comment","debug","debugUntil","env","fastedgeAppId","log","name","networks","plan","planId","rspHeaders","secrets","status","stores","templateName","upgradeableTo","url"],"inputProperties":{"binary":{"type":"number","description":"ID of the WebAssembly binary to deploy"},"comment":{"type":"string","description":"Optional human-readable description of the application's purpose"},"debug":{"type":"boolean","description":"Enable verbose debug logging for 30 minutes. Automatically expires to prevent performance impact."},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables"},"log":{"type":"string","description":"Logging channel. Use 'kafka' to enable log collection (queryable via API), or 'none' to disable logging.\nAvailable values: \"kafka\", \"none\"."},"name":{"type":"string","description":"Unique application name (alphanumeric, hyphens allowed)"},"rspHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"Extra headers to add to the response"},"secrets":{"type":"object","additionalProperties":{"$ref":"#/types/gcore:index%2FFastedgeAppSecrets:FastedgeAppSecrets"},"description":"Application secrets"},"status":{"type":"number","description":"Status code:  \n0 - draft (inactive)  \n1 - enabled  \n2 - disabled  \n5 - suspended"},"stores":{"type":"object","additionalProperties":{"$ref":"#/types/gcore:index%2FFastedgeAppStores:FastedgeAppStores"},"description":"Application edge stores"},"template":{"type":"number","description":"Template ID"}},"stateInputs":{"description":"Input properties used for looking up and filtering FastedgeApp resources.\n","properties":{"apiType":{"type":"string","description":"Wasm API type"},"binary":{"type":"number","description":"ID of the WebAssembly binary to deploy"},"comment":{"type":"string","description":"Optional human-readable description of the application's purpose"},"debug":{"type":"boolean","description":"Enable verbose debug logging for 30 minutes. Automatically expires to prevent performance impact."},"debugUntil":{"type":"string","description":"When debugging finishes"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables"},"fastedgeAppId":{"type":"number","description":"App ID"},"log":{"type":"string","description":"Logging channel. Use 'kafka' to enable log collection (queryable via API), or 'none' to disable logging.\nAvailable values: \"kafka\", \"none\"."},"name":{"type":"string","description":"Unique application name (alphanumeric, hyphens allowed)"},"networks":{"type":"array","items":{"type":"string"},"description":"Networks"},"plan":{"type":"string","description":"Plan name"},"planId":{"type":"number","description":"Plan ID"},"rspHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"Extra headers to add to the response"},"secrets":{"type":"object","additionalProperties":{"$ref":"#/types/gcore:index%2FFastedgeAppSecrets:FastedgeAppSecrets"},"description":"Application secrets"},"status":{"type":"number","description":"Status code:  \n0 - draft (inactive)  \n1 - enabled  \n2 - disabled  \n5 - suspended"},"stores":{"type":"object","additionalProperties":{"$ref":"#/types/gcore:index%2FFastedgeAppStores:FastedgeAppStores"},"description":"Application edge stores"},"template":{"type":"number","description":"Template ID"},"templateName":{"type":"string","description":"Template name"},"upgradeableTo":{"type":"number","description":"ID of the binary the app can be upgraded to"},"url":{"type":"string","description":"Auto-generated URL where the application is accessible"}},"type":"object"}},"gcore:index/fastedgeBinary:FastedgeBinary":{"description":"Manages a FastEdge WebAssembly binary. Binaries are immutable - any change to the file content will trigger resource replacement.\n\n## Example Usage\n\n### All attributes\n\nThe following example shows all configurable attributes for this resource.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst example = new gcore.FastedgeBinary(\"example\", {filename: \"path/to/your/wasm/binary.wasm\"});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample = gcore.FastedgeBinary(\"example\", filename=\"path/to/your/wasm/binary.wasm\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Gcore.FastedgeBinary(\"example\", new()\n    {\n        Filename = \"path/to/your/wasm/binary.wasm\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.NewFastedgeBinary(ctx, \"example\", \u0026gcore.FastedgeBinaryArgs{\n\t\t\tFilename: pulumi.String(\"path/to/your/wasm/binary.wasm\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.FastedgeBinary;\nimport com.pulumi.gcore.FastedgeBinaryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new FastedgeBinary(\"example\", FastedgeBinaryArgs.builder()\n            .filename(\"path/to/your/wasm/binary.wasm\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: gcore:FastedgeBinary\n    properties:\n      filename: path/to/your/wasm/binary.wasm\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n```sh\n$ pulumi import gcore:index/fastedgeBinary:FastedgeBinary example '\u003cbinary_id\u003e'\n```\n\n","properties":{"apiType":{"type":"string","description":"Wasm API type"},"checksum":{"type":"string","description":"MD5 hash of the binary. Computed from the local file and verified against the API response."},"fastedgeBinaryId":{"type":"number","description":"Binary ID"},"filename":{"type":"string","description":"Path to the WebAssembly binary file to upload. Changes to file content (detected via checksum) will trigger resource replacement."},"source":{"type":"number","description":"Source language:  \n0 - unknown  \n1 - Rust  \n2 - JavaScript"},"status":{"type":"number","description":"Status code:  \n0 - pending  \n1 - compiled  \n2 - compilation failed (errors available)  \n3 - compilation failed (errors not available)  \n4 - resulting binary exceeded the limit  \n5 - unsupported source language"},"unrefSince":{"type":"string","description":"Not used since (UTC)"}},"type":"object","required":["apiType","checksum","fastedgeBinaryId","filename","source","status","unrefSince"],"inputProperties":{"filename":{"type":"string","description":"Path to the WebAssembly binary file to upload. Changes to file content (detected via checksum) will trigger resource replacement."}},"requiredInputs":["filename"],"stateInputs":{"description":"Input properties used for looking up and filtering FastedgeBinary resources.\n","properties":{"apiType":{"type":"string","description":"Wasm API type"},"checksum":{"type":"string","description":"MD5 hash of the binary. Computed from the local file and verified against the API response."},"fastedgeBinaryId":{"type":"number","description":"Binary ID"},"filename":{"type":"string","description":"Path to the WebAssembly binary file to upload. Changes to file content (detected via checksum) will trigger resource replacement."},"source":{"type":"number","description":"Source language:  \n0 - unknown  \n1 - Rust  \n2 - JavaScript"},"status":{"type":"number","description":"Status code:  \n0 - pending  \n1 - compiled  \n2 - compilation failed (errors available)  \n3 - compilation failed (errors not available)  \n4 - resulting binary exceeded the limit  \n5 - unsupported source language"},"unrefSince":{"type":"string","description":"Not used since (UTC)"}},"type":"object"}},"gcore:index/fastedgeSecret:FastedgeSecret":{"description":"FastEdge secrets store sensitive values such as API keys and tokens that can be referenced by FastEdge applications.\n\n## Example Usage\n\n### Secret with multiple slots\n\nCreates a FastEdge secret with two secret slots using variables.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Create a FastEdge secret with multiple slots\nconst example = new gcore.FastedgeSecret(\"example\", {\n    name: \"my-edge-secret\",\n    comment: \"API keys for edge functions\",\n    secretSlots: [\n        {\n            slot: 0,\n            value: secretSlot0,\n        },\n        {\n            slot: 1,\n            value: secretSlot1,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Create a FastEdge secret with multiple slots\nexample = gcore.FastedgeSecret(\"example\",\n    name=\"my-edge-secret\",\n    comment=\"API keys for edge functions\",\n    secret_slots=[\n        {\n            \"slot\": 0,\n            \"value\": secret_slot0,\n        },\n        {\n            \"slot\": 1,\n            \"value\": secret_slot1,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a FastEdge secret with multiple slots\n    var example = new Gcore.FastedgeSecret(\"example\", new()\n    {\n        Name = \"my-edge-secret\",\n        Comment = \"API keys for edge functions\",\n        SecretSlots = new[]\n        {\n            new Gcore.Inputs.FastedgeSecretSecretSlotArgs\n            {\n                Slot = 0,\n                Value = secretSlot0,\n            },\n            new Gcore.Inputs.FastedgeSecretSecretSlotArgs\n            {\n                Slot = 1,\n                Value = secretSlot1,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a FastEdge secret with multiple slots\n\t\t_, err := gcore.NewFastedgeSecret(ctx, \"example\", \u0026gcore.FastedgeSecretArgs{\n\t\t\tName:    pulumi.String(\"my-edge-secret\"),\n\t\t\tComment: pulumi.String(\"API keys for edge functions\"),\n\t\t\tSecretSlots: gcore.FastedgeSecretSecretSlotArray{\n\t\t\t\t\u0026gcore.FastedgeSecretSecretSlotArgs{\n\t\t\t\t\tSlot:  pulumi.Float64(0),\n\t\t\t\t\tValue: pulumi.Any(secretSlot0),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.FastedgeSecretSecretSlotArgs{\n\t\t\t\t\tSlot:  pulumi.Float64(1),\n\t\t\t\t\tValue: pulumi.Any(secretSlot1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.FastedgeSecret;\nimport com.pulumi.gcore.FastedgeSecretArgs;\nimport com.pulumi.gcore.inputs.FastedgeSecretSecretSlotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a FastEdge secret with multiple slots\n        var example = new FastedgeSecret(\"example\", FastedgeSecretArgs.builder()\n            .name(\"my-edge-secret\")\n            .comment(\"API keys for edge functions\")\n            .secretSlots(            \n                FastedgeSecretSecretSlotArgs.builder()\n                    .slot(0.0)\n                    .value(secretSlot0)\n                    .build(),\n                FastedgeSecretSecretSlotArgs.builder()\n                    .slot(1.0)\n                    .value(secretSlot1)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a FastEdge secret with multiple slots\n  example:\n    type: gcore:FastedgeSecret\n    properties:\n      name: my-edge-secret\n      comment: API keys for edge functions\n      secretSlots:\n        - slot: 0\n          value: ${secretSlot0}\n        - slot: 1\n          value: ${secretSlot1}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\n```sh\n$ pulumi import gcore:index/fastedgeSecret:FastedgeSecret example '\u003csecret_id\u003e'\n```\n\n","properties":{"appCount":{"type":"number","description":"The number of applications that use this secret.\n"},"comment":{"type":"string","description":"A description or comment about the secret.\n"},"fastedgeSecretId":{"type":"number","description":"The unique identifier of the secret.\n"},"name":{"type":"string","description":"The unique name of the secret.\n"},"secretSlots":{"type":"array","items":{"$ref":"#/types/gcore:index%2FFastedgeSecretSecretSlot:FastedgeSecretSecretSlot"},"description":"A list of secret slots associated with this secret.\n"}},"type":"object","required":["appCount","fastedgeSecretId","name","secretSlots"],"inputProperties":{"comment":{"type":"string","description":"A description or comment about the secret.\n"},"name":{"type":"string","description":"The unique name of the secret.\n"},"secretSlots":{"type":"array","items":{"$ref":"#/types/gcore:index%2FFastedgeSecretSecretSlot:FastedgeSecretSecretSlot"},"description":"A list of secret slots associated with this secret.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering FastedgeSecret resources.\n","properties":{"appCount":{"type":"number","description":"The number of applications that use this secret.\n"},"comment":{"type":"string","description":"A description or comment about the secret.\n"},"fastedgeSecretId":{"type":"number","description":"The unique identifier of the secret.\n"},"name":{"type":"string","description":"The unique name of the secret.\n"},"secretSlots":{"type":"array","items":{"$ref":"#/types/gcore:index%2FFastedgeSecretSecretSlot:FastedgeSecretSecretSlot"},"description":"A list of secret slots associated with this secret.\n"}},"type":"object"}},"gcore:index/waapDomain:WaapDomain":{"description":"WAAP domains enable Web Application and API Protection for monitoring and defending web applications against security threats.\n\n## Example Usage\n\n### All attributes\n\nThe following example shows all configurable attributes for this resource.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleWaapDomain = new gcore.WaapDomain(\"example_waap_domain\", {\n    domainId: 1,\n    status: \"active\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_waap_domain = gcore.WaapDomain(\"example_waap_domain\",\n    domain_id=1,\n    status=\"active\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleWaapDomain = new Gcore.WaapDomain(\"example_waap_domain\", new()\n    {\n        DomainId = 1,\n        Status = \"active\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.NewWaapDomain(ctx, \"example_waap_domain\", \u0026gcore.WaapDomainArgs{\n\t\t\tDomainId: pulumi.Float64(1),\n\t\t\tStatus:   pulumi.String(\"active\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.WaapDomain;\nimport com.pulumi.gcore.WaapDomainArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleWaapDomain = new WaapDomain(\"exampleWaapDomain\", WaapDomainArgs.builder()\n            .domainId(1.0)\n            .status(\"active\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleWaapDomain:\n    type: gcore:WaapDomain\n    name: example_waap_domain\n    properties:\n      domainId: 1\n      status: active\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"createdAt":{"type":"string","description":"The date and time the domain was created in ISO 8601 format\n"},"customPageSet":{"type":"number","description":"The ID of the custom page set\n"},"domainId":{"type":"number","description":"The domain ID\n"},"name":{"type":"string","description":"The domain name\n"},"quotas":{"type":"object","additionalProperties":{"$ref":"#/types/gcore:index%2FWaapDomainQuotas:WaapDomainQuotas"},"description":"Domain level quotas\n"},"status":{"type":"string","description":"The current status of the domain\nAvailable values: \"active\", \"monitor\".\n"},"waapDomainId":{"type":"number","description":"The domain ID\n"}},"type":"object","required":["createdAt","customPageSet","domainId","name","quotas","status","waapDomainId"],"inputProperties":{"domainId":{"type":"number","description":"The domain ID\n"},"status":{"type":"string","description":"The current status of the domain\nAvailable values: \"active\", \"monitor\".\n"}},"requiredInputs":["domainId","status"],"stateInputs":{"description":"Input properties used for looking up and filtering WaapDomain resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time the domain was created in ISO 8601 format\n"},"customPageSet":{"type":"number","description":"The ID of the custom page set\n"},"domainId":{"type":"number","description":"The domain ID\n"},"name":{"type":"string","description":"The domain name\n"},"quotas":{"type":"object","additionalProperties":{"$ref":"#/types/gcore:index%2FWaapDomainQuotas:WaapDomainQuotas"},"description":"Domain level quotas\n"},"status":{"type":"string","description":"The current status of the domain\nAvailable values: \"active\", \"monitor\".\n"},"waapDomainId":{"type":"number","description":"The domain ID\n"}},"type":"object"}}},"functions":{"gcore:index/getCdnCertificate:getCdnCertificate":{"description":"CDN SSL certificates enable HTTPS content delivery, supporting both uploaded certificates and automated Let's Encrypt provisioning.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCdnCertificate = gcore.getCdnCertificate({\n    sslId: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cdn_certificate = gcore.get_cdn_certificate(ssl_id=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCdnCertificate = Gcore.GetCdnCertificate.Invoke(new()\n    {\n        SslId = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCdnCertificate(ctx, \u0026gcore.LookupCdnCertificateArgs{\n\t\t\tSslId: 0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCdnCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCdnCertificate = GcoreFunctions.getCdnCertificate(GetCdnCertificateArgs.builder()\n            .sslId(0)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCdnCertificate:\n    fn::invoke:\n      function: gcore:getCdnCertificate\n      arguments:\n        sslId: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCdnCertificate.\n","properties":{"sslId":{"type":"number"}},"type":"object","required":["sslId"]},"outputs":{"description":"A collection of values returned by getCdnCertificate.\n","properties":{"automated":{"description":"How the SSL certificate was issued.\n","type":"boolean"},"certIssuer":{"type":"string"},"certSubjectAlt":{"type":"string"},"certSubjectCn":{"type":"string"},"deleted":{"type":"boolean"},"hasRelatedResources":{"type":"boolean"},"id":{"type":"number"},"name":{"type":"string"},"sslCertificateChain":{"type":"string"},"sslId":{"type":"number"},"validityNotAfter":{"type":"string"},"validityNotBefore":{"type":"string"}},"required":["automated","certIssuer","certSubjectAlt","certSubjectCn","deleted","hasRelatedResources","id","name","sslCertificateChain","sslId","validityNotAfter","validityNotBefore"],"type":"object"}},"gcore:index/getCdnOriginGroup:getCdnOriginGroup":{"description":"CDN origin groups aggregate one or more origin servers with failover and load balancing for content delivery.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCdnOriginGroup = gcore.getCdnOriginGroup({\n    originGroupId: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cdn_origin_group = gcore.get_cdn_origin_group(origin_group_id=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCdnOriginGroup = Gcore.GetCdnOriginGroup.Invoke(new()\n    {\n        OriginGroupId = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCdnOriginGroup(ctx, \u0026gcore.LookupCdnOriginGroupArgs{\n\t\t\tOriginGroupId: 0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCdnOriginGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCdnOriginGroup = GcoreFunctions.getCdnOriginGroup(GetCdnOriginGroupArgs.builder()\n            .originGroupId(0)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCdnOriginGroup:\n    fn::invoke:\n      function: gcore:getCdnOriginGroup\n      arguments:\n        originGroupId: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCdnOriginGroup.\n","properties":{"originGroupId":{"type":"number"}},"type":"object","required":["originGroupId"]},"outputs":{"description":"A collection of values returned by getCdnOriginGroup.\n","properties":{"auth":{"$ref":"#/types/gcore:index%2FgetCdnOriginGroupAuth:getCdnOriginGroupAuth","description":"Credentials to access the private bucket.\n"},"authType":{"description":"Origin authentication type.\n","type":"string"},"hasRelatedResources":{"type":"boolean"},"id":{"type":"number"},"name":{"type":"string"},"originGroupId":{"type":"number"},"path":{"type":"string"},"proxyNextUpstreams":{"items":{"type":"string"},"type":"array"},"sources":{"items":{"$ref":"#/types/gcore:index%2FgetCdnOriginGroupSource:getCdnOriginGroupSource"},"type":"array"},"useNext":{"type":"boolean"}},"required":["auth","authType","hasRelatedResources","id","name","originGroupId","path","proxyNextUpstreams","sources","useNext"],"type":"object"}},"gcore:index/getCdnResource:getCdnResource":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCdnResource = gcore.getCdnResource({\n    resourceId: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cdn_resource = gcore.get_cdn_resource(resource_id=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCdnResource = Gcore.GetCdnResource.Invoke(new()\n    {\n        ResourceId = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCdnResource(ctx, \u0026gcore.LookupCdnResourceArgs{\n\t\t\tResourceId: 0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCdnResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCdnResource = GcoreFunctions.getCdnResource(GetCdnResourceArgs.builder()\n            .resourceId(0)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCdnResource:\n    fn::invoke:\n      function: gcore:getCdnResource\n      arguments:\n        resourceId: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCdnResource.\n","properties":{"resourceId":{"type":"number"}},"type":"object","required":["resourceId"]},"outputs":{"description":"A collection of values returned by getCdnResource.\n","properties":{"active":{"description":"Enables or disables a CDN resource.\n","type":"boolean"},"canPurgeByUrls":{"type":"boolean"},"client":{"type":"number"},"cname":{"type":"string"},"created":{"type":"string"},"deleted":{"type":"boolean"},"description":{"type":"string"},"enabled":{"type":"boolean"},"fullCustomEnabled":{"type":"boolean"},"id":{"type":"number"},"isPrimary":{"type":"boolean"},"name":{"type":"string"},"options":{"$ref":"#/types/gcore:index%2FgetCdnResourceOptions:getCdnResourceOptions"},"originGroup":{"type":"number"},"originGroupName":{"type":"string"},"originProtocol":{"type":"string"},"presetApplied":{"type":"boolean"},"primaryResource":{"type":"number"},"proxySslCa":{"type":"number"},"proxySslData":{"type":"number"},"proxySslEnabled":{"type":"boolean"},"resourceId":{"type":"number"},"rules":{"items":{"type":"string"},"type":"array"},"secondaryHostnames":{"items":{"type":"string"},"type":"array"},"shieldDc":{"type":"string"},"shieldEnabled":{"type":"boolean"},"shieldRoutingMap":{"type":"number"},"shielded":{"type":"boolean"},"sslData":{"type":"number"},"sslEnabled":{"type":"boolean"},"status":{"type":"string"},"suspendDate":{"type":"string"},"suspended":{"type":"boolean"},"updated":{"type":"string"},"vpEnabled":{"type":"boolean"},"waapDomainId":{"type":"string"}},"required":["active","canPurgeByUrls","client","cname","created","deleted","description","enabled","fullCustomEnabled","id","isPrimary","name","options","originGroup","originGroupName","originProtocol","presetApplied","primaryResource","proxySslCa","proxySslData","proxySslEnabled","resourceId","rules","secondaryHostnames","shieldDc","shieldEnabled","shieldRoutingMap","shielded","sslData","sslEnabled","status","suspendDate","suspended","updated","vpEnabled","waapDomainId"],"type":"object"}},"gcore:index/getCdnResourceRule:getCdnResourceRule":{"description":"CDN resource rules set custom caching, delivery, and security options for specific URL patterns or file types.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCdnResourceRule = gcore.getCdnResourceRule({\n    resourceId: 0,\n    ruleId: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cdn_resource_rule = gcore.get_cdn_resource_rule(resource_id=0,\n    rule_id=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCdnResourceRule = Gcore.GetCdnResourceRule.Invoke(new()\n    {\n        ResourceId = 0,\n        RuleId = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCdnResourceRule(ctx, \u0026gcore.LookupCdnResourceRuleArgs{\n\t\t\tResourceId: 0,\n\t\t\tRuleId:     0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCdnResourceRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCdnResourceRule = GcoreFunctions.getCdnResourceRule(GetCdnResourceRuleArgs.builder()\n            .resourceId(0)\n            .ruleId(0)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCdnResourceRule:\n    fn::invoke:\n      function: gcore:getCdnResourceRule\n      arguments:\n        resourceId: 0\n        ruleId: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCdnResourceRule.\n","properties":{"resourceId":{"type":"number"},"ruleId":{"type":"number"}},"type":"object","required":["resourceId","ruleId"]},"outputs":{"description":"A collection of values returned by getCdnResourceRule.\n","properties":{"active":{"description":"Enables or disables a rule.\n","type":"boolean"},"deleted":{"type":"boolean"},"id":{"type":"number"},"name":{"type":"string"},"options":{"$ref":"#/types/gcore:index%2FgetCdnResourceRuleOptions:getCdnResourceRuleOptions"},"originGroup":{"type":"number"},"originProtocol":{"type":"string"},"overrideOriginProtocol":{"type":"string"},"presetApplied":{"type":"boolean"},"primaryRule":{"type":"number"},"resourceId":{"type":"number"},"rule":{"type":"string"},"ruleId":{"type":"number"},"ruleType":{"type":"number"},"weight":{"type":"number"}},"required":["active","deleted","id","name","options","originGroup","originProtocol","overrideOriginProtocol","presetApplied","primaryRule","resourceId","rule","ruleId","ruleType","weight"],"type":"object"}},"gcore:index/getCdnTrustedCaCertificate:getCdnTrustedCaCertificate":{"description":"Trusted CA certificates verify the authenticity of CDN origin servers during HTTPS connections.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCdnTrustedCaCertificate = gcore.getCdnTrustedCaCertificate({\n    id: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cdn_trusted_ca_certificate = gcore.get_cdn_trusted_ca_certificate(id=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCdnTrustedCaCertificate = Gcore.GetCdnTrustedCaCertificate.Invoke(new()\n    {\n        Id = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCdnTrustedCaCertificate(ctx, \u0026gcore.LookupCdnTrustedCaCertificateArgs{\n\t\t\tId: 0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCdnTrustedCaCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCdnTrustedCaCertificate = GcoreFunctions.getCdnTrustedCaCertificate(GetCdnTrustedCaCertificateArgs.builder()\n            .id(0)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCdnTrustedCaCertificate:\n    fn::invoke:\n      function: gcore:getCdnTrustedCaCertificate\n      arguments:\n        id: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCdnTrustedCaCertificate.\n","properties":{"id":{"type":"number"}},"type":"object","required":["id"]},"outputs":{"description":"A collection of values returned by getCdnTrustedCaCertificate.\n","properties":{"certIssuer":{"description":"Name of the certification center that issued the CA certificate.\n","type":"string"},"certSubjectAlt":{"description":"Alternative domain names that the CA certificate secures.\n","type":"string"},"certSubjectCn":{"description":"Domain name that the CA certificate secures.\n","type":"string"},"deleted":{"description":"Defines whether the certificate has been deleted. Parameter is **deprecated**.\n","type":"boolean"},"hasRelatedResources":{"type":"boolean"},"id":{"type":"number"},"name":{"type":"string"},"sslCertificateChain":{"type":"string"},"validityNotAfter":{"type":"string"},"validityNotBefore":{"type":"string"}},"required":["certIssuer","certSubjectAlt","certSubjectCn","deleted","hasRelatedResources","id","name","sslCertificateChain","validityNotAfter","validityNotBefore"],"type":"object"}},"gcore:index/getCloudFileShare:getCloudFileShare":{"description":"File shares provide NFS-based shared storage that can be mounted by virtual machines and Kubernetes clusters for persistent data.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudFileShare = gcore.getCloudFileShare({\n    projectId: 1,\n    regionId: 1,\n    fileShareId: \"bd8c47ee-e565-4e26-8840-b537e6827b08\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_file_share = gcore.get_cloud_file_share(project_id=1,\n    region_id=1,\n    file_share_id=\"bd8c47ee-e565-4e26-8840-b537e6827b08\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudFileShare = Gcore.GetCloudFileShare.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        FileShareId = \"bd8c47ee-e565-4e26-8840-b537e6827b08\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudFileShare(ctx, \u0026gcore.LookupCloudFileShareArgs{\n\t\t\tProjectId:   pulumi.Float64Ref(1),\n\t\t\tRegionId:    pulumi.Float64Ref(1),\n\t\t\tFileShareId: pulumi.StringRef(\"bd8c47ee-e565-4e26-8840-b537e6827b08\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudFileShareArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudFileShare = GcoreFunctions.getCloudFileShare(GetCloudFileShareArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .fileShareId(\"bd8c47ee-e565-4e26-8840-b537e6827b08\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudFileShare:\n    fn::invoke:\n      function: gcore:getCloudFileShare\n      arguments:\n        projectId: 1\n        regionId: 1\n        fileShareId: bd8c47ee-e565-4e26-8840-b537e6827b08\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudFileShare.\n","properties":{"fileShareId":{"type":"string"},"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudFileShareFindOneBy:getCloudFileShareFindOneBy"},"projectId":{"type":"number"},"regionId":{"type":"number"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudFileShare.\n","properties":{"connectionPoint":{"type":"string"},"createdAt":{"type":"string"},"creatorTaskId":{"type":"string"},"fileShareId":{"type":"string"},"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudFileShareFindOneBy:getCloudFileShareFindOneBy"},"id":{"type":"string"},"name":{"type":"string"},"networkId":{"type":"string"},"networkName":{"type":"string"},"projectId":{"type":"number"},"protocol":{"type":"string"},"region":{"type":"string"},"regionId":{"type":"number"},"shareNetworkName":{"type":"string"},"shareSettings":{"$ref":"#/types/gcore:index%2FgetCloudFileShareShareSettings:getCloudFileShareShareSettings"},"size":{"type":"number"},"status":{"type":"string"},"subnetId":{"type":"string"},"subnetName":{"type":"string"},"tags":{"items":{"$ref":"#/types/gcore:index%2FgetCloudFileShareTag:getCloudFileShareTag"},"type":"array"},"typeName":{"type":"string"}},"required":["connectionPoint","createdAt","creatorTaskId","id","name","networkId","networkName","protocol","region","shareNetworkName","shareSettings","size","status","subnetId","subnetName","tags","typeName"],"type":"object"}},"gcore:index/getCloudFileShares:getCloudFileShares":{"description":"File shares provide NFS-based shared storage that can be mounted by virtual machines and Kubernetes clusters for persistent data.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudFileShares = gcore.getCloudFileShares({\n    projectId: 1,\n    regionId: 1,\n    name: \"test-sfs\",\n    typeName: \"standard\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_file_shares = gcore.get_cloud_file_shares(project_id=1,\n    region_id=1,\n    name=\"test-sfs\",\n    type_name=\"standard\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudFileShares = Gcore.GetCloudFileShares.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"test-sfs\",\n        TypeName = \"standard\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudFileShares(ctx, \u0026gcore.GetCloudFileSharesArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(1),\n\t\t\tName:      pulumi.StringRef(\"test-sfs\"),\n\t\t\tTypeName:  pulumi.StringRef(\"standard\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudFileSharesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudFileShares = GcoreFunctions.getCloudFileShares(GetCloudFileSharesArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .name(\"test-sfs\")\n            .typeName(\"standard\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudFileShares:\n    fn::invoke:\n      function: gcore:getCloudFileShares\n      arguments:\n        projectId: 1\n        regionId: 1\n        name: test-sfs\n        typeName: standard\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudFileShares.\n","properties":{"maxItems":{"type":"number"},"name":{"type":"string"},"projectId":{"type":"number"},"regionId":{"type":"number"},"typeName":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudFileShares.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"items":{"items":{"$ref":"#/types/gcore:index%2FgetCloudFileSharesItem:getCloudFileSharesItem"},"type":"array"},"maxItems":{"type":"number"},"name":{"type":"string"},"projectId":{"type":"number"},"regionId":{"type":"number"},"typeName":{"type":"string"}},"required":["id","items"],"type":"object"}},"gcore:index/getCloudFloatingIp:getCloudFloatingIp":{"description":"A floating IP is a static IP address that points to one of your Instances. It allows you to redirect network traffic to any of your Instances in the same datacenter.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudFloatingIp = gcore.getCloudFloatingIp({\n    projectId: 1,\n    regionId: 1,\n    floatingIpId: \"c64e5db1-5f1f-43ec-a8d9-5090df85b82d\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_floating_ip = gcore.get_cloud_floating_ip(project_id=1,\n    region_id=1,\n    floating_ip_id=\"c64e5db1-5f1f-43ec-a8d9-5090df85b82d\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudFloatingIp = Gcore.GetCloudFloatingIp.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        FloatingIpId = \"c64e5db1-5f1f-43ec-a8d9-5090df85b82d\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudFloatingIp(ctx, \u0026gcore.LookupCloudFloatingIpArgs{\n\t\t\tProjectId:    pulumi.Float64Ref(1),\n\t\t\tRegionId:     pulumi.Float64Ref(1),\n\t\t\tFloatingIpId: pulumi.StringRef(\"c64e5db1-5f1f-43ec-a8d9-5090df85b82d\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudFloatingIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudFloatingIp = GcoreFunctions.getCloudFloatingIp(GetCloudFloatingIpArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .floatingIpId(\"c64e5db1-5f1f-43ec-a8d9-5090df85b82d\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudFloatingIp:\n    fn::invoke:\n      function: gcore:getCloudFloatingIp\n      arguments:\n        projectId: 1\n        regionId: 1\n        floatingIpId: c64e5db1-5f1f-43ec-a8d9-5090df85b82d\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudFloatingIp.\n","properties":{"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpFindOneBy:getCloudFloatingIpFindOneBy"},"floatingIpId":{"type":"string","description":"Floating IP ID\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudFloatingIp.\n","properties":{"createdAt":{"description":"Datetime when the floating IP was created\n","type":"string"},"creatorTaskId":{"description":"Task that created this entity\n","type":"string"},"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpFindOneBy:getCloudFloatingIpFindOneBy"},"fixedIpAddress":{"description":"IP address of the port the floating IP is attached to\n","type":"string"},"floatingIpAddress":{"description":"IP Address of the floating IP\n","type":"string"},"floatingIpId":{"description":"Floating IP ID\n","type":"string"},"id":{"description":"Floating IP ID\n","type":"string"},"portId":{"description":"Port ID the floating IP is attached to. The \u003cspan pulumi-lang-nodejs=\"`fixedIpAddress`\" pulumi-lang-dotnet=\"`FixedIpAddress`\" pulumi-lang-go=\"`fixedIpAddress`\" pulumi-lang-python=\"`fixed_ip_address`\" pulumi-lang-yaml=\"`fixedIpAddress`\" pulumi-lang-java=\"`fixedIpAddress`\"\u003e`fixed_ip_address`\u003c/span\u003e is the IP address of the port.\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"region":{"description":"Region name\n","type":"string"},"regionId":{"description":"Region ID\n","type":"number"},"routerId":{"description":"Router ID\n","type":"string"},"status":{"description":"Floating IP status. DOWN - unassigned (available). ACTIVE - attached to a port (in use). ERROR - error state.\nAvailable values: \"ACTIVE\", \"DOWN\", \"ERROR\".\n","type":"string"},"tags":{"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n","items":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpTag:getCloudFloatingIpTag"},"type":"array"},"updatedAt":{"description":"Datetime when the floating IP was last updated\n","type":"string"}},"required":["createdAt","creatorTaskId","fixedIpAddress","floatingIpAddress","id","portId","region","routerId","status","tags","updatedAt"],"type":"object"}},"gcore:index/getCloudFloatingIps:getCloudFloatingIps":{"description":"A floating IP is a static IP address that points to one of your Instances. It allows you to redirect network traffic to any of your Instances in the same datacenter.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudFloatingIps = gcore.getCloudFloatingIps({\n    projectId: 1,\n    regionId: 1,\n    status: \"ACTIVE\",\n    tagKeys: [\n        \"key1\",\n        \"key2\",\n    ],\n    tagKeyValue: \"tag_key_value\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_floating_ips = gcore.get_cloud_floating_ips(project_id=1,\n    region_id=1,\n    status=\"ACTIVE\",\n    tag_keys=[\n        \"key1\",\n        \"key2\",\n    ],\n    tag_key_value=\"tag_key_value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudFloatingIps = Gcore.GetCloudFloatingIps.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Status = \"ACTIVE\",\n        TagKeys = new[]\n        {\n            \"key1\",\n            \"key2\",\n        },\n        TagKeyValue = \"tag_key_value\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudFloatingIps(ctx, \u0026gcore.GetCloudFloatingIpsArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(1),\n\t\t\tStatus:    pulumi.StringRef(\"ACTIVE\"),\n\t\t\tTagKeys: []string{\n\t\t\t\t\"key1\",\n\t\t\t\t\"key2\",\n\t\t\t},\n\t\t\tTagKeyValue: pulumi.StringRef(\"tag_key_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudFloatingIpsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudFloatingIps = GcoreFunctions.getCloudFloatingIps(GetCloudFloatingIpsArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .status(\"ACTIVE\")\n            .tagKeys(            \n                \"key1\",\n                \"key2\")\n            .tagKeyValue(\"tag_key_value\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudFloatingIps:\n    fn::invoke:\n      function: gcore:getCloudFloatingIps\n      arguments:\n        projectId: 1\n        regionId: 1\n        status: ACTIVE\n        tagKeys:\n          - key1\n          - key2\n        tagKeyValue: tag_key_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudFloatingIps.\n","properties":{"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"status":{"type":"string","description":"Filter by floating IP status. DOWN - unassigned (available). ACTIVE - attached to a port (in use). ERROR - error state.\nAvailable values: \"ACTIVE\", \"DOWN\", \"ERROR\".\n"},"tagKeyValue":{"type":"string","description":"Optional. Filter by tag key-value pairs.\n"},"tagKeys":{"type":"array","items":{"type":"string"},"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudFloatingIps.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetCloudFloatingIpsItem:getCloudFloatingIpsItem"},"type":"array"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"projectId":{"description":"Project ID\n","type":"number"},"regionId":{"description":"Region ID\n","type":"number"},"status":{"description":"Filter by floating IP status. DOWN - unassigned (available). ACTIVE - attached to a port (in use). ERROR - error state.\nAvailable values: \"ACTIVE\", \"DOWN\", \"ERROR\".\n","type":"string"},"tagKeyValue":{"description":"Optional. Filter by tag key-value pairs.\n","type":"string"},"tagKeys":{"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n","items":{"type":"string"},"type":"array"}},"required":["id","items"],"type":"object"}},"gcore:index/getCloudGpuBaremetalCluster:getCloudGpuBaremetalCluster":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudGpuBaremetalCluster = gcore.getCloudGpuBaremetalCluster({\n    projectId: 1,\n    regionId: 7,\n    clusterId: \"1aaaab48-10d0-46d9-80cc-85209284ceb4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_gpu_baremetal_cluster = gcore.get_cloud_gpu_baremetal_cluster(project_id=1,\n    region_id=7,\n    cluster_id=\"1aaaab48-10d0-46d9-80cc-85209284ceb4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudGpuBaremetalCluster = Gcore.GetCloudGpuBaremetalCluster.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 7,\n        ClusterId = \"1aaaab48-10d0-46d9-80cc-85209284ceb4\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudGpuBaremetalCluster(ctx, \u0026gcore.LookupCloudGpuBaremetalClusterArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(7),\n\t\t\tClusterId: pulumi.StringRef(\"1aaaab48-10d0-46d9-80cc-85209284ceb4\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudGpuBaremetalClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudGpuBaremetalCluster = GcoreFunctions.getCloudGpuBaremetalCluster(GetCloudGpuBaremetalClusterArgs.builder()\n            .projectId(1)\n            .regionId(7)\n            .clusterId(\"1aaaab48-10d0-46d9-80cc-85209284ceb4\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudGpuBaremetalCluster:\n    fn::invoke:\n      function: gcore:getCloudGpuBaremetalCluster\n      arguments:\n        projectId: 1\n        regionId: 7\n        clusterId: 1aaaab48-10d0-46d9-80cc-85209284ceb4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudGpuBaremetalCluster.\n","properties":{"clusterId":{"type":"string","description":"Cluster unique identifier\n"},"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudGpuBaremetalClusterFindOneBy:getCloudGpuBaremetalClusterFindOneBy"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudGpuBaremetalCluster.\n","properties":{"clusterId":{"description":"Cluster unique identifier\n","type":"string"},"createdAt":{"description":"Cluster creation date time\n","type":"string"},"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudGpuBaremetalClusterFindOneBy:getCloudGpuBaremetalClusterFindOneBy"},"flavor":{"description":"Cluster flavor name\n","type":"string"},"id":{"description":"Cluster unique identifier\n","type":"string"},"imageId":{"description":"Image ID\n","type":"string"},"managedBy":{"description":"User type managing the resource\nAvailable values: \"k8s\", \"user\".\n","type":"string"},"name":{"description":"Cluster name\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"regionId":{"description":"Region ID\n","type":"number"},"serversCount":{"description":"Cluster servers count\n","type":"number"},"serversIds":{"description":"List of cluster nodes\n","items":{"type":"string"},"type":"array"},"serversSettings":{"$ref":"#/types/gcore:index%2FgetCloudGpuBaremetalClusterServersSettings:getCloudGpuBaremetalClusterServersSettings"},"status":{"description":"Cluster status\nAvailable values: \"active\", \"creating\", \"degraded\", \"deleting\", \"error\", \"rebooting\", \"rebuilding\", \"resizing\", \"shutoff\".\n","type":"string"},"tags":{"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuBaremetalClusterTag:getCloudGpuBaremetalClusterTag"},"type":"array"},"updatedAt":{"description":"Cluster update date time\n","type":"string"}},"required":["createdAt","flavor","id","imageId","managedBy","name","serversCount","serversIds","serversSettings","status","tags","updatedAt"],"type":"object"}},"gcore:index/getCloudGpuBaremetalClusterImage:getCloudGpuBaremetalClusterImage":{"description":"GPU bare metal images are custom boot images for bare metal GPU servers.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudGpuBaremetalClusterImage = gcore.getCloudGpuBaremetalClusterImage({\n    projectId: 1,\n    regionId: 7,\n    imageId: \"8cab6f28-09ca-4201-b3f7-23c7893f4bd6\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_gpu_baremetal_cluster_image = gcore.get_cloud_gpu_baremetal_cluster_image(project_id=1,\n    region_id=7,\n    image_id=\"8cab6f28-09ca-4201-b3f7-23c7893f4bd6\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudGpuBaremetalClusterImage = Gcore.GetCloudGpuBaremetalClusterImage.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 7,\n        ImageId = \"8cab6f28-09ca-4201-b3f7-23c7893f4bd6\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudGpuBaremetalClusterImage(ctx, \u0026gcore.LookupCloudGpuBaremetalClusterImageArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(7),\n\t\t\tImageId:   \"8cab6f28-09ca-4201-b3f7-23c7893f4bd6\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudGpuBaremetalClusterImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudGpuBaremetalClusterImage = GcoreFunctions.getCloudGpuBaremetalClusterImage(GetCloudGpuBaremetalClusterImageArgs.builder()\n            .projectId(1)\n            .regionId(7)\n            .imageId(\"8cab6f28-09ca-4201-b3f7-23c7893f4bd6\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudGpuBaremetalClusterImage:\n    fn::invoke:\n      function: gcore:getCloudGpuBaremetalClusterImage\n      arguments:\n        projectId: 1\n        regionId: 7\n        imageId: 8cab6f28-09ca-4201-b3f7-23c7893f4bd6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudGpuBaremetalClusterImage.\n","properties":{"imageId":{"type":"string","description":"Image ID\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"}},"type":"object","required":["imageId"]},"outputs":{"description":"A collection of values returned by getCloudGpuBaremetalClusterImage.\n","properties":{"architecture":{"description":"Image architecture type\n","type":"string"},"createdAt":{"description":"Datetime when the image was created\n","type":"string"},"gpuDriver":{"description":"Name of the GPU driver vendor\n","type":"string"},"gpuDriverType":{"description":"Type of the GPU driver\n","type":"string"},"gpuDriverVersion":{"description":"Version of the installed GPU driver\n","type":"string"},"id":{"description":"Image ID\n","type":"string"},"imageId":{"description":"Image ID\n","type":"string"},"minDisk":{"description":"Minimal boot volume required\n","type":"number"},"minRam":{"description":"Minimal VM RAM required\n","type":"number"},"name":{"description":"Image name\n","type":"string"},"osDistro":{"description":"OS Distribution\n","type":"string"},"osType":{"description":"The operating system installed on the image\n","type":"string"},"osVersion":{"description":"OS version, i.e. 19.04 (for Ubuntu) or 9.4 for Debian\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"regionId":{"description":"Region ID\n","type":"number"},"size":{"description":"Image size in bytes.\n","type":"number"},"sshKey":{"description":"Whether the image supports SSH key or not\n","type":"string"},"status":{"description":"Image status\n","type":"string"},"tags":{"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuBaremetalClusterImageTag:getCloudGpuBaremetalClusterImageTag"},"type":"array"},"updatedAt":{"description":"Datetime when the image was updated\n","type":"string"},"visibility":{"description":"Image visibility. Globally visible images are public\n","type":"string"}},"required":["architecture","createdAt","gpuDriver","gpuDriverType","gpuDriverVersion","id","imageId","minDisk","minRam","name","osDistro","osType","osVersion","size","sshKey","status","tags","updatedAt","visibility"],"type":"object"}},"gcore:index/getCloudGpuBaremetalClusters:getCloudGpuBaremetalClusters":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudGpuBaremetalClusters = gcore.getCloudGpuBaremetalClusters({\n    projectId: 1,\n    regionId: 7,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_gpu_baremetal_clusters = gcore.get_cloud_gpu_baremetal_clusters(project_id=1,\n    region_id=7)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudGpuBaremetalClusters = Gcore.GetCloudGpuBaremetalClusters.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 7,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudGpuBaremetalClusters(ctx, \u0026gcore.GetCloudGpuBaremetalClustersArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(7),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudGpuBaremetalClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudGpuBaremetalClusters = GcoreFunctions.getCloudGpuBaremetalClusters(GetCloudGpuBaremetalClustersArgs.builder()\n            .projectId(1)\n            .regionId(7)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudGpuBaremetalClusters:\n    fn::invoke:\n      function: gcore:getCloudGpuBaremetalClusters\n      arguments:\n        projectId: 1\n        regionId: 7\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudGpuBaremetalClusters.\n","properties":{"managedBies":{"type":"array","items":{"type":"string"},"description":"Specifies the entity responsible for managing the resource.\n"},"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudGpuBaremetalClusters.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuBaremetalClustersItem:getCloudGpuBaremetalClustersItem"},"type":"array"},"managedBies":{"description":"Specifies the entity responsible for managing the resource.\n","items":{"type":"string"},"type":"array"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"projectId":{"description":"Project ID\n","type":"number"},"regionId":{"description":"Region ID\n","type":"number"}},"required":["id","items","managedBies"],"type":"object"}},"gcore:index/getCloudGpuVirtualCluster:getCloudGpuVirtualCluster":{"description":"GPU virtual clusters provide managed virtual GPU servers with auto-scaling for parallel computation workloads.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudGpuVirtualCluster = gcore.getCloudGpuVirtualCluster({\n    projectId: 1,\n    regionId: 7,\n    clusterId: \"1aaaab48-10d0-46d9-80cc-85209284ceb4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_gpu_virtual_cluster = gcore.get_cloud_gpu_virtual_cluster(project_id=1,\n    region_id=7,\n    cluster_id=\"1aaaab48-10d0-46d9-80cc-85209284ceb4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudGpuVirtualCluster = Gcore.GetCloudGpuVirtualCluster.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 7,\n        ClusterId = \"1aaaab48-10d0-46d9-80cc-85209284ceb4\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudGpuVirtualCluster(ctx, \u0026gcore.LookupCloudGpuVirtualClusterArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(7),\n\t\t\tClusterId: \"1aaaab48-10d0-46d9-80cc-85209284ceb4\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudGpuVirtualClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudGpuVirtualCluster = GcoreFunctions.getCloudGpuVirtualCluster(GetCloudGpuVirtualClusterArgs.builder()\n            .projectId(1)\n            .regionId(7)\n            .clusterId(\"1aaaab48-10d0-46d9-80cc-85209284ceb4\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudGpuVirtualCluster:\n    fn::invoke:\n      function: gcore:getCloudGpuVirtualCluster\n      arguments:\n        projectId: 1\n        regionId: 7\n        clusterId: 1aaaab48-10d0-46d9-80cc-85209284ceb4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudGpuVirtualCluster.\n","properties":{"clusterId":{"type":"string","description":"Cluster unique identifier\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"}},"type":"object","required":["clusterId"]},"outputs":{"description":"A collection of values returned by getCloudGpuVirtualCluster.\n","properties":{"clusterId":{"description":"Cluster unique identifier\n","type":"string"},"createdAt":{"description":"Cluster creation date time\n","type":"string"},"flavor":{"description":"Cluster flavor name\n","type":"string"},"id":{"description":"Cluster unique identifier\n","type":"string"},"name":{"description":"Cluster name\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"regionId":{"description":"Region ID\n","type":"number"},"serversCount":{"description":"Cluster servers count\n","type":"number"},"serversIds":{"description":"List of cluster nodes\n","items":{"type":"string"},"type":"array"},"serversSettings":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClusterServersSettings:getCloudGpuVirtualClusterServersSettings"},"status":{"description":"Cluster status\nAvailable values: \"active\", \"creating\", \"degraded\", \"deleting\", \"error\", \"rebooting\", \"rebuilding\", \"resizing\", \"shutoff\".\n","type":"string"},"tags":{"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClusterTag:getCloudGpuVirtualClusterTag"},"type":"array"},"updatedAt":{"description":"Cluster update date time\n","type":"string"}},"required":["clusterId","createdAt","flavor","id","name","serversCount","serversIds","serversSettings","status","tags","updatedAt"],"type":"object"}},"gcore:index/getCloudGpuVirtualClusterImage:getCloudGpuVirtualClusterImage":{"description":"GPU virtual images are custom boot images for virtual GPU cluster instances.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudGpuVirtualClusterImage = gcore.getCloudGpuVirtualClusterImage({\n    projectId: 1,\n    regionId: 7,\n    imageId: \"8cab6f28-09ca-4201-b3f7-23c7893f4bd6\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_gpu_virtual_cluster_image = gcore.get_cloud_gpu_virtual_cluster_image(project_id=1,\n    region_id=7,\n    image_id=\"8cab6f28-09ca-4201-b3f7-23c7893f4bd6\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudGpuVirtualClusterImage = Gcore.GetCloudGpuVirtualClusterImage.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 7,\n        ImageId = \"8cab6f28-09ca-4201-b3f7-23c7893f4bd6\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudGpuVirtualClusterImage(ctx, \u0026gcore.LookupCloudGpuVirtualClusterImageArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(7),\n\t\t\tImageId:   \"8cab6f28-09ca-4201-b3f7-23c7893f4bd6\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudGpuVirtualClusterImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudGpuVirtualClusterImage = GcoreFunctions.getCloudGpuVirtualClusterImage(GetCloudGpuVirtualClusterImageArgs.builder()\n            .projectId(1)\n            .regionId(7)\n            .imageId(\"8cab6f28-09ca-4201-b3f7-23c7893f4bd6\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudGpuVirtualClusterImage:\n    fn::invoke:\n      function: gcore:getCloudGpuVirtualClusterImage\n      arguments:\n        projectId: 1\n        regionId: 7\n        imageId: 8cab6f28-09ca-4201-b3f7-23c7893f4bd6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudGpuVirtualClusterImage.\n","properties":{"imageId":{"type":"string","description":"Image ID\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"}},"type":"object","required":["imageId"]},"outputs":{"description":"A collection of values returned by getCloudGpuVirtualClusterImage.\n","properties":{"architecture":{"description":"Image architecture type\n","type":"string"},"createdAt":{"description":"Datetime when the image was created\n","type":"string"},"gpuDriver":{"description":"Name of the GPU driver vendor\n","type":"string"},"gpuDriverType":{"description":"Type of the GPU driver\n","type":"string"},"gpuDriverVersion":{"description":"Version of the installed GPU driver\n","type":"string"},"id":{"description":"Image ID\n","type":"string"},"imageId":{"description":"Image ID\n","type":"string"},"minDisk":{"description":"Minimal boot volume required\n","type":"number"},"minRam":{"description":"Minimal VM RAM required\n","type":"number"},"name":{"description":"Image name\n","type":"string"},"osDistro":{"description":"OS Distribution\n","type":"string"},"osType":{"description":"The operating system installed on the image\n","type":"string"},"osVersion":{"description":"OS version, i.e. 19.04 (for Ubuntu) or 9.4 for Debian\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"regionId":{"description":"Region ID\n","type":"number"},"size":{"description":"Image size in bytes.\n","type":"number"},"sshKey":{"description":"Whether the image supports SSH key or not\n","type":"string"},"status":{"description":"Image status\n","type":"string"},"tags":{"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClusterImageTag:getCloudGpuVirtualClusterImageTag"},"type":"array"},"updatedAt":{"description":"Datetime when the image was updated\n","type":"string"},"visibility":{"description":"Image visibility. Globally visible images are public\n","type":"string"}},"required":["architecture","createdAt","gpuDriver","gpuDriverType","gpuDriverVersion","id","imageId","minDisk","minRam","name","osDistro","osType","osVersion","size","sshKey","status","tags","updatedAt","visibility"],"type":"object"}},"gcore:index/getCloudGpuVirtualClusters:getCloudGpuVirtualClusters":{"description":"GPU virtual clusters provide managed virtual GPU servers with auto-scaling for parallel computation workloads.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudGpuVirtualClusters = gcore.getCloudGpuVirtualClusters({\n    projectId: 1,\n    regionId: 7,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_gpu_virtual_clusters = gcore.get_cloud_gpu_virtual_clusters(project_id=1,\n    region_id=7)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudGpuVirtualClusters = Gcore.GetCloudGpuVirtualClusters.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 7,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudGpuVirtualClusters(ctx, \u0026gcore.GetCloudGpuVirtualClustersArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(7),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudGpuVirtualClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudGpuVirtualClusters = GcoreFunctions.getCloudGpuVirtualClusters(GetCloudGpuVirtualClustersArgs.builder()\n            .projectId(1)\n            .regionId(7)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudGpuVirtualClusters:\n    fn::invoke:\n      function: gcore:getCloudGpuVirtualClusters\n      arguments:\n        projectId: 1\n        regionId: 7\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudGpuVirtualClusters.\n","properties":{"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudGpuVirtualClusters.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetCloudGpuVirtualClustersItem:getCloudGpuVirtualClustersItem"},"type":"array"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"projectId":{"description":"Project ID\n","type":"number"},"regionId":{"description":"Region ID\n","type":"number"}},"required":["id","items"],"type":"object"}},"gcore:index/getCloudInferenceRegistryCredential:getCloudInferenceRegistryCredential":{"description":"Registry credentials store authentication details for private container registries used by inference deployments.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudInferenceRegistryCredential = gcore.getCloudInferenceRegistryCredential({\n    projectId: 1,\n    credentialName: \"docker-io\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_inference_registry_credential = gcore.get_cloud_inference_registry_credential(project_id=1,\n    credential_name=\"docker-io\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudInferenceRegistryCredential = Gcore.GetCloudInferenceRegistryCredential.Invoke(new()\n    {\n        ProjectId = 1,\n        CredentialName = \"docker-io\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudInferenceRegistryCredential(ctx, \u0026gcore.LookupCloudInferenceRegistryCredentialArgs{\n\t\t\tProjectId:      pulumi.Float64Ref(1),\n\t\t\tCredentialName: \"docker-io\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudInferenceRegistryCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudInferenceRegistryCredential = GcoreFunctions.getCloudInferenceRegistryCredential(GetCloudInferenceRegistryCredentialArgs.builder()\n            .projectId(1)\n            .credentialName(\"docker-io\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudInferenceRegistryCredential:\n    fn::invoke:\n      function: gcore:getCloudInferenceRegistryCredential\n      arguments:\n        projectId: 1\n        credentialName: docker-io\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudInferenceRegistryCredential.\n","properties":{"credentialName":{"type":"string","description":"Registry credential name.\n"},"projectId":{"type":"number","description":"Project ID\n"}},"type":"object","required":["credentialName"]},"outputs":{"description":"A collection of values returned by getCloudInferenceRegistryCredential.\n","properties":{"credentialName":{"description":"Registry credential name.\n","type":"string"},"id":{"description":"Registry credential name.\n","type":"string"},"name":{"description":"Registry credential name.\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"registryUrl":{"description":"Registry URL.\n","type":"string"},"username":{"description":"Registry username.\n","type":"string"}},"required":["credentialName","id","name","registryUrl","username"],"type":"object"}},"gcore:index/getCloudInferenceRegistryCredentials:getCloudInferenceRegistryCredentials":{"description":"Registry credentials store authentication details for private container registries used by inference deployments.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudInferenceRegistryCredentials = gcore.getCloudInferenceRegistryCredentials({\n    projectId: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_inference_registry_credentials = gcore.get_cloud_inference_registry_credentials(project_id=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudInferenceRegistryCredentials = Gcore.GetCloudInferenceRegistryCredentials.Invoke(new()\n    {\n        ProjectId = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudInferenceRegistryCredentials(ctx, \u0026gcore.GetCloudInferenceRegistryCredentialsArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudInferenceRegistryCredentialsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudInferenceRegistryCredentials = GcoreFunctions.getCloudInferenceRegistryCredentials(GetCloudInferenceRegistryCredentialsArgs.builder()\n            .projectId(1)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudInferenceRegistryCredentials:\n    fn::invoke:\n      function: gcore:getCloudInferenceRegistryCredentials\n      arguments:\n        projectId: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudInferenceRegistryCredentials.\n","properties":{"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"projectId":{"type":"number","description":"Project ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudInferenceRegistryCredentials.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetCloudInferenceRegistryCredentialsItem:getCloudInferenceRegistryCredentialsItem"},"type":"array"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"projectId":{"description":"Project ID\n","type":"number"}},"required":["id","items"],"type":"object"}},"gcore:index/getCloudInferenceSecret:getCloudInferenceSecret":{"description":"Inference secrets store sensitive values such as AWS credentials used for SQS-based autoscaling triggers in deployments.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudInferenceSecret = gcore.getCloudInferenceSecret({\n    projectId: 1,\n    secretName: \"aws-dev\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_inference_secret = gcore.get_cloud_inference_secret(project_id=1,\n    secret_name=\"aws-dev\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudInferenceSecret = Gcore.GetCloudInferenceSecret.Invoke(new()\n    {\n        ProjectId = 1,\n        SecretName = \"aws-dev\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudInferenceSecret(ctx, \u0026gcore.LookupCloudInferenceSecretArgs{\n\t\t\tProjectId:  pulumi.Float64Ref(1),\n\t\t\tSecretName: \"aws-dev\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudInferenceSecretArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudInferenceSecret = GcoreFunctions.getCloudInferenceSecret(GetCloudInferenceSecretArgs.builder()\n            .projectId(1)\n            .secretName(\"aws-dev\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudInferenceSecret:\n    fn::invoke:\n      function: gcore:getCloudInferenceSecret\n      arguments:\n        projectId: 1\n        secretName: aws-dev\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudInferenceSecret.\n","properties":{"projectId":{"type":"number","description":"Project ID\n"},"secretName":{"type":"string","description":"Inference secret name.\n"}},"type":"object","required":["secretName"]},"outputs":{"description":"A collection of values returned by getCloudInferenceSecret.\n","properties":{"data":{"$ref":"#/types/gcore:index%2FgetCloudInferenceSecretData:getCloudInferenceSecretData","description":"Secret data.\n"},"id":{"description":"Inference secret name.\n","type":"string"},"name":{"description":"Secret name.\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"secretName":{"description":"Inference secret name.\n","type":"string"},"type":{"description":"Secret type.\n","type":"string"}},"required":["data","id","name","secretName","type"],"type":"object"}},"gcore:index/getCloudInferenceSecrets:getCloudInferenceSecrets":{"description":"Inference secrets store sensitive values such as AWS credentials used for SQS-based autoscaling triggers in deployments.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudInferenceSecrets = gcore.getCloudInferenceSecrets({\n    projectId: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_inference_secrets = gcore.get_cloud_inference_secrets(project_id=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudInferenceSecrets = Gcore.GetCloudInferenceSecrets.Invoke(new()\n    {\n        ProjectId = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudInferenceSecrets(ctx, \u0026gcore.GetCloudInferenceSecretsArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudInferenceSecretsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudInferenceSecrets = GcoreFunctions.getCloudInferenceSecrets(GetCloudInferenceSecretsArgs.builder()\n            .projectId(1)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudInferenceSecrets:\n    fn::invoke:\n      function: gcore:getCloudInferenceSecrets\n      arguments:\n        projectId: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudInferenceSecrets.\n","properties":{"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"projectId":{"type":"number","description":"Project ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudInferenceSecrets.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetCloudInferenceSecretsItem:getCloudInferenceSecretsItem"},"type":"array"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"projectId":{"description":"Project ID\n","type":"number"}},"required":["id","items"],"type":"object"}},"gcore:index/getCloudInstance:getCloudInstance":{"description":"Instances are cloud virtual machines with configurable CPU, memory, storage, and networking, supporting various operating systems and workloads.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudInstance = gcore.getCloudInstance({\n    projectId: 0,\n    regionId: 0,\n    instanceId: \"instance_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_instance = gcore.get_cloud_instance(project_id=0,\n    region_id=0,\n    instance_id=\"instance_id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudInstance = Gcore.GetCloudInstance.Invoke(new()\n    {\n        ProjectId = 0,\n        RegionId = 0,\n        InstanceId = \"instance_id\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudInstance(ctx, \u0026gcore.LookupCloudInstanceArgs{\n\t\t\tProjectId:  pulumi.Float64Ref(0),\n\t\t\tRegionId:   pulumi.Float64Ref(0),\n\t\t\tInstanceId: pulumi.StringRef(\"instance_id\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudInstance = GcoreFunctions.getCloudInstance(GetCloudInstanceArgs.builder()\n            .projectId(0)\n            .regionId(0)\n            .instanceId(\"instance_id\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudInstance:\n    fn::invoke:\n      function: gcore:getCloudInstance\n      arguments:\n        projectId: 0\n        regionId: 0\n        instanceId: instance_id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudInstance.\n","properties":{"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudInstanceFindOneBy:getCloudInstanceFindOneBy"},"instanceId":{"type":"string","description":"Instance ID\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudInstance.\n","properties":{"addresses":{"additionalProperties":{"items":{"$ref":"#/types/gcore:index%2FgetCloudInstanceAddresses:getCloudInstanceAddresses"},"type":"array"},"description":"Map of \u003cspan pulumi-lang-nodejs=\"`networkName`\" pulumi-lang-dotnet=\"`NetworkName`\" pulumi-lang-go=\"`networkName`\" pulumi-lang-python=\"`network_name`\" pulumi-lang-yaml=\"`networkName`\" pulumi-lang-java=\"`networkName`\"\u003e`network_name`\u003c/span\u003e to list of addresses in that network\n","type":"object"},"blackholePorts":{"description":"IP addresses of the instances that are blackholed by DDoS mitigation system\n","items":{"$ref":"#/types/gcore:index%2FgetCloudInstanceBlackholePort:getCloudInstanceBlackholePort"},"type":"array"},"createdAt":{"description":"Datetime when instance was created\n","type":"string"},"creatorTaskId":{"description":"Task that created this entity\n","type":"string"},"ddosProfile":{"$ref":"#/types/gcore:index%2FgetCloudInstanceDdosProfile:getCloudInstanceDdosProfile","description":"Advanced DDoS protection profile. It is always \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e if query parameter `with_ddos=true` is not set.\n"},"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudInstanceFindOneBy:getCloudInstanceFindOneBy"},"fixedIpAssignments":{"description":"Fixed IP assigned to instance\n","items":{"$ref":"#/types/gcore:index%2FgetCloudInstanceFixedIpAssignment:getCloudInstanceFixedIpAssignment"},"type":"array"},"flavor":{"$ref":"#/types/gcore:index%2FgetCloudInstanceFlavor:getCloudInstanceFlavor","description":"Flavor\n"},"id":{"description":"Instance ID\n","type":"string"},"instanceDescription":{"description":"Instance description\n","type":"string"},"instanceId":{"description":"Instance ID\n","type":"string"},"instanceIsolation":{"$ref":"#/types/gcore:index%2FgetCloudInstanceInstanceIsolation:getCloudInstanceInstanceIsolation","description":"Instance isolation information\n"},"name":{"description":"Instance name\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"region":{"description":"Region name\n","type":"string"},"regionId":{"description":"Region ID\n","type":"number"},"securityGroups":{"description":"Security groups\n","items":{"$ref":"#/types/gcore:index%2FgetCloudInstanceSecurityGroup:getCloudInstanceSecurityGroup"},"type":"array"},"sshKeyName":{"description":"SSH key assigned to instance\n","type":"string"},"status":{"description":"Instance status\nAvailable values: \"ACTIVE\", \"BUILD\", \"DELETED\", \"ERROR\", \"HARD*REBOOT\", \"MIGRATING\", \"PASSWORD\", \"PAUSED\", \"REBOOT\", \"REBUILD\", \"RESCUE\", \"RESIZE\", \"REVERT*RESIZE\", \"SHELVED\", \"SHELVED*OFFLOADED\", \"SHUTOFF\", \"SOFT*DELETED\", \"SUSPENDED\", \"UNKNOWN\", \"VERIFY_RESIZE\".\n","type":"string"},"tags":{"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n","items":{"$ref":"#/types/gcore:index%2FgetCloudInstanceTag:getCloudInstanceTag"},"type":"array"},"taskState":{"description":"Task state\n","type":"string"},"vmState":{"description":"Virtual machine state (active)\nAvailable values: \"active\", \"building\", \"deleted\", \"error\", \"paused\", \"rescued\", \"resized\", \"shelved\", \u003cspan pulumi-lang-nodejs=\"\"shelvedOffloaded\"\" pulumi-lang-dotnet=\"\"ShelvedOffloaded\"\" pulumi-lang-go=\"\"shelvedOffloaded\"\" pulumi-lang-python=\"\"shelved_offloaded\"\" pulumi-lang-yaml=\"\"shelvedOffloaded\"\" pulumi-lang-java=\"\"shelvedOffloaded\"\"\u003e\"shelved_offloaded\"\u003c/span\u003e, \"soft-deleted\", \"stopped\", \"suspended\".\n","type":"string"},"volumes":{"description":"List of volumes\n","items":{"$ref":"#/types/gcore:index%2FgetCloudInstanceVolume:getCloudInstanceVolume"},"type":"array"}},"required":["addresses","blackholePorts","createdAt","creatorTaskId","ddosProfile","fixedIpAssignments","flavor","id","instanceDescription","instanceIsolation","name","region","securityGroups","sshKeyName","status","tags","taskState","vmState","volumes"],"type":"object"}},"gcore:index/getCloudInstanceImage:getCloudInstanceImage":{"description":"Instance images are operating system images (public, private, or shared) used to boot cloud instances.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudInstanceImage = gcore.getCloudInstanceImage({\n    projectId: 0,\n    regionId: 0,\n    imageId: \"image_id\",\n    includePrices: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_instance_image = gcore.get_cloud_instance_image(project_id=0,\n    region_id=0,\n    image_id=\"image_id\",\n    include_prices=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudInstanceImage = Gcore.GetCloudInstanceImage.Invoke(new()\n    {\n        ProjectId = 0,\n        RegionId = 0,\n        ImageId = \"image_id\",\n        IncludePrices = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudInstanceImage(ctx, \u0026gcore.LookupCloudInstanceImageArgs{\n\t\t\tProjectId:     pulumi.Float64Ref(0),\n\t\t\tRegionId:      pulumi.Float64Ref(0),\n\t\t\tImageId:       \"image_id\",\n\t\t\tIncludePrices: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudInstanceImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudInstanceImage = GcoreFunctions.getCloudInstanceImage(GetCloudInstanceImageArgs.builder()\n            .projectId(0)\n            .regionId(0)\n            .imageId(\"image_id\")\n            .includePrices(true)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudInstanceImage:\n    fn::invoke:\n      function: gcore:getCloudInstanceImage\n      arguments:\n        projectId: 0\n        regionId: 0\n        imageId: image_id\n        includePrices: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudInstanceImage.\n","properties":{"imageId":{"type":"string"},"includePrices":{"type":"boolean","description":"Show price\n"},"projectId":{"type":"number"},"regionId":{"type":"number"}},"type":"object","required":["imageId"]},"outputs":{"description":"A collection of values returned by getCloudInstanceImage.\n","properties":{"architecture":{"description":"An image architecture type: aarch64, \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e\nAvailable values: \"aarch64\", \u003cspan pulumi-lang-nodejs=\"\"x8664\"\" pulumi-lang-dotnet=\"\"X8664\"\" pulumi-lang-go=\"\"x8664\"\" pulumi-lang-python=\"\"x86_64\"\" pulumi-lang-yaml=\"\"x8664\"\" pulumi-lang-java=\"\"x8664\"\"\u003e\"x86_64\"\u003c/span\u003e.\n","type":"string"},"createdAt":{"description":"Datetime when the image was created\n","type":"string"},"creatorTaskId":{"description":"Task that created this entity\n","type":"string"},"description":{"description":"Image description\n","type":"string"},"diskFormat":{"description":"Disk format\n","type":"string"},"displayOrder":{"type":"number"},"gpuDriver":{"description":"Name of the GPU driver vendor\n","type":"string"},"gpuDriverType":{"description":"Type of the GPU driver\n","type":"string"},"gpuDriverVersion":{"description":"Version of the installed GPU driver\n","type":"string"},"hwFirmwareType":{"description":"Specifies the type of firmware with which to boot the guest.\nAvailable values: \"bios\", \"uefi\".\n","type":"string"},"hwMachineType":{"description":"A virtual chipset type.\nAvailable values: \"pc\", \"q35\".\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"imageId":{"type":"string"},"includePrices":{"description":"Show price\n","type":"boolean"},"isBaremetal":{"description":"Set to true if the image will be used by bare metal servers. Defaults to false.\n","type":"boolean"},"minDisk":{"description":"Minimal boot volume required\n","type":"number"},"minRam":{"description":"Minimal VM RAM required\n","type":"number"},"name":{"description":"Image display name\n","type":"string"},"osDistro":{"description":"OS Distribution, i.e. Debian, CentOS, Ubuntu, CoreOS etc.\n","type":"string"},"osType":{"description":"The operating system installed on the image.\nAvailable values: \"linux\", \"windows\".\n","type":"string"},"osVersion":{"description":"OS version, i.e. 19.04 (for Ubuntu) or 9.4 for Debian\n","type":"string"},"projectId":{"type":"number"},"region":{"description":"Region name\n","type":"string"},"regionId":{"type":"number"},"size":{"description":"Image size in bytes\n","type":"number"},"sshKey":{"description":"Whether the image supports SSH key or not\nAvailable values: \"allow\", \"deny\", \"required\".\n","type":"string"},"status":{"description":"Image status, i.e. active\n","type":"string"},"tags":{"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n","items":{"$ref":"#/types/gcore:index%2FgetCloudInstanceImageTag:getCloudInstanceImageTag"},"type":"array"},"updatedAt":{"description":"Datetime when the image was updated\n","type":"string"},"visibility":{"description":"Image visibility. Globally visible images are public\n","type":"string"}},"required":["architecture","createdAt","creatorTaskId","description","diskFormat","displayOrder","gpuDriver","gpuDriverType","gpuDriverVersion","hwFirmwareType","hwMachineType","id","imageId","isBaremetal","minDisk","minRam","name","osDistro","osType","osVersion","region","size","sshKey","status","tags","updatedAt","visibility"],"type":"object"}},"gcore:index/getCloudInstances:getCloudInstances":{"description":"Instances are cloud virtual machines with configurable CPU, memory, storage, and networking, supporting various operating systems and workloads.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudInstances = gcore.getCloudInstances({\n    projectId: 1,\n    regionId: 1,\n    availableFloating: true,\n    changesBefore: \"2025-10-01T12:00:00Z\",\n    changesSince: \"2025-10-01T12:00:00Z\",\n    excludeFlavorPrefix: \"g1-\",\n    excludeSecgroup: \"secgroup_name\",\n    flavorId: \"g2-standard-32-64\",\n    flavorPrefix: \"g2-\",\n    ip: \"192.168.0.1\",\n    name: \"name\",\n    onlyWithFixedExternalIp: true,\n    profileName: \"profile_name\",\n    protectionStatus: \"Active\",\n    status: \"ACTIVE\",\n    tagKeyValue: \"tag_key_value\",\n    tagValues: [\n        \"value1\",\n        \"value2\",\n    ],\n    typeDdosProfile: \"advanced\",\n    uuid: \"b5b4d65d-945f-4b98-ab6f-332319c724ef\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_instances = gcore.get_cloud_instances(project_id=1,\n    region_id=1,\n    available_floating=True,\n    changes_before=\"2025-10-01T12:00:00Z\",\n    changes_since=\"2025-10-01T12:00:00Z\",\n    exclude_flavor_prefix=\"g1-\",\n    exclude_secgroup=\"secgroup_name\",\n    flavor_id=\"g2-standard-32-64\",\n    flavor_prefix=\"g2-\",\n    ip=\"192.168.0.1\",\n    name=\"name\",\n    only_with_fixed_external_ip=True,\n    profile_name=\"profile_name\",\n    protection_status=\"Active\",\n    status=\"ACTIVE\",\n    tag_key_value=\"tag_key_value\",\n    tag_values=[\n        \"value1\",\n        \"value2\",\n    ],\n    type_ddos_profile=\"advanced\",\n    uuid=\"b5b4d65d-945f-4b98-ab6f-332319c724ef\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudInstances = Gcore.GetCloudInstances.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        AvailableFloating = true,\n        ChangesBefore = \"2025-10-01T12:00:00Z\",\n        ChangesSince = \"2025-10-01T12:00:00Z\",\n        ExcludeFlavorPrefix = \"g1-\",\n        ExcludeSecgroup = \"secgroup_name\",\n        FlavorId = \"g2-standard-32-64\",\n        FlavorPrefix = \"g2-\",\n        Ip = \"192.168.0.1\",\n        Name = \"name\",\n        OnlyWithFixedExternalIp = true,\n        ProfileName = \"profile_name\",\n        ProtectionStatus = \"Active\",\n        Status = \"ACTIVE\",\n        TagKeyValue = \"tag_key_value\",\n        TagValues = new[]\n        {\n            \"value1\",\n            \"value2\",\n        },\n        TypeDdosProfile = \"advanced\",\n        Uuid = \"b5b4d65d-945f-4b98-ab6f-332319c724ef\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudInstances(ctx, \u0026gcore.GetCloudInstancesArgs{\n\t\t\tProjectId:               pulumi.Float64Ref(1),\n\t\t\tRegionId:                pulumi.Float64Ref(1),\n\t\t\tAvailableFloating:       pulumi.BoolRef(true),\n\t\t\tChangesBefore:           pulumi.StringRef(\"2025-10-01T12:00:00Z\"),\n\t\t\tChangesSince:            pulumi.StringRef(\"2025-10-01T12:00:00Z\"),\n\t\t\tExcludeFlavorPrefix:     pulumi.StringRef(\"g1-\"),\n\t\t\tExcludeSecgroup:         pulumi.StringRef(\"secgroup_name\"),\n\t\t\tFlavorId:                pulumi.StringRef(\"g2-standard-32-64\"),\n\t\t\tFlavorPrefix:            pulumi.StringRef(\"g2-\"),\n\t\t\tIp:                      pulumi.StringRef(\"192.168.0.1\"),\n\t\t\tName:                    pulumi.StringRef(\"name\"),\n\t\t\tOnlyWithFixedExternalIp: pulumi.BoolRef(true),\n\t\t\tProfileName:             pulumi.StringRef(\"profile_name\"),\n\t\t\tProtectionStatus:        pulumi.StringRef(\"Active\"),\n\t\t\tStatus:                  pulumi.StringRef(\"ACTIVE\"),\n\t\t\tTagKeyValue:             pulumi.StringRef(\"tag_key_value\"),\n\t\t\tTagValues: []string{\n\t\t\t\t\"value1\",\n\t\t\t\t\"value2\",\n\t\t\t},\n\t\t\tTypeDdosProfile: pulumi.StringRef(\"advanced\"),\n\t\t\tUuid:            pulumi.StringRef(\"b5b4d65d-945f-4b98-ab6f-332319c724ef\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudInstances = GcoreFunctions.getCloudInstances(GetCloudInstancesArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .availableFloating(true)\n            .changesBefore(\"2025-10-01T12:00:00Z\")\n            .changesSince(\"2025-10-01T12:00:00Z\")\n            .excludeFlavorPrefix(\"g1-\")\n            .excludeSecgroup(\"secgroup_name\")\n            .flavorId(\"g2-standard-32-64\")\n            .flavorPrefix(\"g2-\")\n            .ip(\"192.168.0.1\")\n            .name(\"name\")\n            .onlyWithFixedExternalIp(true)\n            .profileName(\"profile_name\")\n            .protectionStatus(\"Active\")\n            .status(\"ACTIVE\")\n            .tagKeyValue(\"tag_key_value\")\n            .tagValues(            \n                \"value1\",\n                \"value2\")\n            .typeDdosProfile(\"advanced\")\n            .uuid(\"b5b4d65d-945f-4b98-ab6f-332319c724ef\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudInstances:\n    fn::invoke:\n      function: gcore:getCloudInstances\n      arguments:\n        projectId: 1\n        regionId: 1\n        availableFloating: true\n        changesBefore: 2025-10-01T12:00:00Z\n        changesSince: 2025-10-01T12:00:00Z\n        excludeFlavorPrefix: g1-\n        excludeSecgroup: secgroup_name\n        flavorId: g2-standard-32-64\n        flavorPrefix: g2-\n        ip: 192.168.0.1\n        name: name\n        onlyWithFixedExternalIp: true\n        profileName: profile_name\n        protectionStatus: Active\n        status: ACTIVE\n        tagKeyValue: tag_key_value\n        tagValues:\n          - value1\n          - value2\n        typeDdosProfile: advanced\n        uuid: b5b4d65d-945f-4b98-ab6f-332319c724ef\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudInstances.\n","properties":{"availableFloating":{"type":"boolean","description":"Only show instances which are able to handle floating address\n"},"changesBefore":{"type":"string","description":"Filters the instances by a date and time stamp when the instances last changed.\n"},"changesSince":{"type":"string","description":"Filters the instances by a date and time stamp when the instances last changed status.\n"},"excludeFlavorPrefix":{"type":"string","description":"Exclude instances with specified flavor prefix\n"},"excludeSecgroup":{"type":"string","description":"Exclude instances with specified security group name\n"},"flavorId":{"type":"string","description":"Filter out instances by \u003cspan pulumi-lang-nodejs=\"`flavorId`\" pulumi-lang-dotnet=\"`FlavorId`\" pulumi-lang-go=\"`flavorId`\" pulumi-lang-python=\"`flavor_id`\" pulumi-lang-yaml=\"`flavorId`\" pulumi-lang-java=\"`flavorId`\"\u003e`flavor_id`\u003c/span\u003e. Flavor id must match exactly.\n"},"flavorPrefix":{"type":"string","description":"Filter out instances by \u003cspan pulumi-lang-nodejs=\"`flavorPrefix`\" pulumi-lang-dotnet=\"`FlavorPrefix`\" pulumi-lang-go=\"`flavorPrefix`\" pulumi-lang-python=\"`flavor_prefix`\" pulumi-lang-yaml=\"`flavorPrefix`\" pulumi-lang-java=\"`flavorPrefix`\"\u003e`flavor_prefix`\u003c/span\u003e.\n"},"includeAi":{"type":"boolean","description":"Include GPU clusters' servers\n","deprecationMessage":"Deprecated"},"includeBaremetal":{"type":"boolean","description":"Include bare metal servers. Please, use `GET /v1/bminstances/` instead\n","deprecationMessage":"Deprecated"},"includeK8s":{"type":"boolean","description":"Include managed k8s worker nodes\n"},"ip":{"type":"string","description":"An IPv4 address to filter results by. Note: partial matches are allowed. For example, searching for 192.168.0.1 will return 192.168.0.1, 192.168.0.10, 192.168.0.110, and so on.\n"},"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"name":{"type":"string","description":"Filter instances by name. You can provide a full or partial name, instances with matching names will be returned. For example, entering 'test' will return all instances that contain 'test' in their name.\n"},"onlyIsolated":{"type":"boolean","description":"Include only isolated instances\n"},"onlyWithFixedExternalIp":{"type":"boolean","description":"Return bare metals only with external fixed IP addresses.\n"},"orderBy":{"type":"string","description":"Order by field and direction.\nAvailable values: \"created.asc\", \"created.desc\", \"name.asc\", \"name.desc\", \"status.asc\", \"status.desc\".\n"},"profileName":{"type":"string","description":"Filter result by ddos protection profile name. Effective only with \u003cspan pulumi-lang-nodejs=\"`withDdos`\" pulumi-lang-dotnet=\"`WithDdos`\" pulumi-lang-go=\"`withDdos`\" pulumi-lang-python=\"`with_ddos`\" pulumi-lang-yaml=\"`withDdos`\" pulumi-lang-java=\"`withDdos`\"\u003e`with_ddos`\u003c/span\u003e set to true.\n"},"projectId":{"type":"number","description":"Project ID\n"},"protectionStatus":{"type":"string","description":"Filter result by DDoS \u003cspan pulumi-lang-nodejs=\"`protectionStatus`\" pulumi-lang-dotnet=\"`ProtectionStatus`\" pulumi-lang-go=\"`protectionStatus`\" pulumi-lang-python=\"`protection_status`\" pulumi-lang-yaml=\"`protectionStatus`\" pulumi-lang-java=\"`protectionStatus`\"\u003e`protection_status`\u003c/span\u003e. if parameter is provided. Effective only with \u003cspan pulumi-lang-nodejs=\"`withDdos`\" pulumi-lang-dotnet=\"`WithDdos`\" pulumi-lang-go=\"`withDdos`\" pulumi-lang-python=\"`with_ddos`\" pulumi-lang-yaml=\"`withDdos`\" pulumi-lang-java=\"`withDdos`\"\u003e`with_ddos`\u003c/span\u003e set to true. (Active, Queued or Error)\nAvailable values: \"Active\", \"Queued\", \"Error\".\n"},"regionId":{"type":"number","description":"Region ID\n"},"status":{"type":"string","description":"Filters instances by status.\nAvailable values: \"ACTIVE\", \"BUILD\", \"ERROR\", \"HARD*REBOOT\", \"MIGRATING\", \"PAUSED\", \"REBOOT\", \"REBUILD\", \"RESIZE\", \"REVERT*RESIZE\", \"SHELVED\", \"SHELVED*OFFLOADED\", \"SHUTOFF\", \"SOFT*DELETED\", \"SUSPENDED\", \"VERIFY_RESIZE\".\n"},"tagKeyValue":{"type":"string","description":"Optional. Filter by tag key-value pairs.\n"},"tagValues":{"type":"array","items":{"type":"string"},"description":"Optional. Filter by tag values. ?\u003cspan pulumi-lang-nodejs=\"`tagValue`\" pulumi-lang-dotnet=\"`TagValue`\" pulumi-lang-go=\"`tagValue`\" pulumi-lang-python=\"`tag_value`\" pulumi-lang-yaml=\"`tagValue`\" pulumi-lang-java=\"`tagValue`\"\u003e`tag_value`\u003c/span\u003e=value1\u0026\u003cspan pulumi-lang-nodejs=\"`tagValue`\" pulumi-lang-dotnet=\"`TagValue`\" pulumi-lang-go=\"`tagValue`\" pulumi-lang-python=\"`tag_value`\" pulumi-lang-yaml=\"`tagValue`\" pulumi-lang-java=\"`tagValue`\"\u003e`tag_value`\u003c/span\u003e=value2\n"},"typeDdosProfile":{"type":"string","description":"Return bare metals either only with advanced or only basic DDoS protection. Effective only with \u003cspan pulumi-lang-nodejs=\"`withDdos`\" pulumi-lang-dotnet=\"`WithDdos`\" pulumi-lang-go=\"`withDdos`\" pulumi-lang-python=\"`with_ddos`\" pulumi-lang-yaml=\"`withDdos`\" pulumi-lang-java=\"`withDdos`\"\u003e`with_ddos`\u003c/span\u003e set to true. (advanced or basic)\nAvailable values: \"basic\", \"advanced\".\n"},"uuid":{"type":"string","description":"Filter the server list result by the UUID of the server. Allowed UUID part\n"},"withDdos":{"type":"boolean","description":"Include DDoS profile information in the response when 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. Otherwise, the \u003cspan pulumi-lang-nodejs=\"`ddosProfile`\" pulumi-lang-dotnet=\"`DdosProfile`\" pulumi-lang-go=\"`ddosProfile`\" pulumi-lang-python=\"`ddos_profile`\" pulumi-lang-yaml=\"`ddosProfile`\" pulumi-lang-java=\"`ddosProfile`\"\u003e`ddos_profile`\u003c/span\u003e field in the response is \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e by default.\n"},"withInterfacesName":{"type":"boolean","description":"Include \u003cspan pulumi-lang-nodejs=\"`interfaceName`\" pulumi-lang-dotnet=\"`InterfaceName`\" pulumi-lang-go=\"`interfaceName`\" pulumi-lang-python=\"`interface_name`\" pulumi-lang-yaml=\"`interfaceName`\" pulumi-lang-java=\"`interfaceName`\"\u003e`interface_name`\u003c/span\u003e in the addresses\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudInstances.\n","properties":{"availableFloating":{"description":"Only show instances which are able to handle floating address\n","type":"boolean"},"changesBefore":{"description":"Filters the instances by a date and time stamp when the instances last changed.\n","type":"string"},"changesSince":{"description":"Filters the instances by a date and time stamp when the instances last changed status.\n","type":"string"},"excludeFlavorPrefix":{"description":"Exclude instances with specified flavor prefix\n","type":"string"},"excludeSecgroup":{"description":"Exclude instances with specified security group name\n","type":"string"},"flavorId":{"description":"Filter out instances by \u003cspan pulumi-lang-nodejs=\"`flavorId`\" pulumi-lang-dotnet=\"`FlavorId`\" pulumi-lang-go=\"`flavorId`\" pulumi-lang-python=\"`flavor_id`\" pulumi-lang-yaml=\"`flavorId`\" pulumi-lang-java=\"`flavorId`\"\u003e`flavor_id`\u003c/span\u003e. Flavor id must match exactly.\n","type":"string"},"flavorPrefix":{"description":"Filter out instances by \u003cspan pulumi-lang-nodejs=\"`flavorPrefix`\" pulumi-lang-dotnet=\"`FlavorPrefix`\" pulumi-lang-go=\"`flavorPrefix`\" pulumi-lang-python=\"`flavor_prefix`\" pulumi-lang-yaml=\"`flavorPrefix`\" pulumi-lang-java=\"`flavorPrefix`\"\u003e`flavor_prefix`\u003c/span\u003e.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"includeAi":{"deprecationMessage":"Deprecated","description":"Include GPU clusters' servers\n","type":"boolean"},"includeBaremetal":{"deprecationMessage":"Deprecated","description":"Include bare metal servers. Please, use `GET /v1/bminstances/` instead\n","type":"boolean"},"includeK8s":{"description":"Include managed k8s worker nodes\n","type":"boolean"},"ip":{"description":"An IPv4 address to filter results by. Note: partial matches are allowed. For example, searching for 192.168.0.1 will return 192.168.0.1, 192.168.0.10, 192.168.0.110, and so on.\n","type":"string"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetCloudInstancesItem:getCloudInstancesItem"},"type":"array"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"name":{"description":"Filter instances by name. You can provide a full or partial name, instances with matching names will be returned. For example, entering 'test' will return all instances that contain 'test' in their name.\n","type":"string"},"onlyIsolated":{"description":"Include only isolated instances\n","type":"boolean"},"onlyWithFixedExternalIp":{"description":"Return bare metals only with external fixed IP addresses.\n","type":"boolean"},"orderBy":{"description":"Order by field and direction.\nAvailable values: \"created.asc\", \"created.desc\", \"name.asc\", \"name.desc\", \"status.asc\", \"status.desc\".\n","type":"string"},"profileName":{"description":"Filter result by ddos protection profile name. Effective only with \u003cspan pulumi-lang-nodejs=\"`withDdos`\" pulumi-lang-dotnet=\"`WithDdos`\" pulumi-lang-go=\"`withDdos`\" pulumi-lang-python=\"`with_ddos`\" pulumi-lang-yaml=\"`withDdos`\" pulumi-lang-java=\"`withDdos`\"\u003e`with_ddos`\u003c/span\u003e set to true.\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"protectionStatus":{"description":"Filter result by DDoS \u003cspan pulumi-lang-nodejs=\"`protectionStatus`\" pulumi-lang-dotnet=\"`ProtectionStatus`\" pulumi-lang-go=\"`protectionStatus`\" pulumi-lang-python=\"`protection_status`\" pulumi-lang-yaml=\"`protectionStatus`\" pulumi-lang-java=\"`protectionStatus`\"\u003e`protection_status`\u003c/span\u003e. if parameter is provided. Effective only with \u003cspan pulumi-lang-nodejs=\"`withDdos`\" pulumi-lang-dotnet=\"`WithDdos`\" pulumi-lang-go=\"`withDdos`\" pulumi-lang-python=\"`with_ddos`\" pulumi-lang-yaml=\"`withDdos`\" pulumi-lang-java=\"`withDdos`\"\u003e`with_ddos`\u003c/span\u003e set to true. (Active, Queued or Error)\nAvailable values: \"Active\", \"Queued\", \"Error\".\n","type":"string"},"regionId":{"description":"Region ID\n","type":"number"},"status":{"description":"Filters instances by status.\nAvailable values: \"ACTIVE\", \"BUILD\", \"ERROR\", \"HARD*REBOOT\", \"MIGRATING\", \"PAUSED\", \"REBOOT\", \"REBUILD\", \"RESIZE\", \"REVERT*RESIZE\", \"SHELVED\", \"SHELVED*OFFLOADED\", \"SHUTOFF\", \"SOFT*DELETED\", \"SUSPENDED\", \"VERIFY_RESIZE\".\n","type":"string"},"tagKeyValue":{"description":"Optional. Filter by tag key-value pairs.\n","type":"string"},"tagValues":{"description":"Optional. Filter by tag values. ?\u003cspan pulumi-lang-nodejs=\"`tagValue`\" pulumi-lang-dotnet=\"`TagValue`\" pulumi-lang-go=\"`tagValue`\" pulumi-lang-python=\"`tag_value`\" pulumi-lang-yaml=\"`tagValue`\" pulumi-lang-java=\"`tagValue`\"\u003e`tag_value`\u003c/span\u003e=value1\u0026\u003cspan pulumi-lang-nodejs=\"`tagValue`\" pulumi-lang-dotnet=\"`TagValue`\" pulumi-lang-go=\"`tagValue`\" pulumi-lang-python=\"`tag_value`\" pulumi-lang-yaml=\"`tagValue`\" pulumi-lang-java=\"`tagValue`\"\u003e`tag_value`\u003c/span\u003e=value2\n","items":{"type":"string"},"type":"array"},"typeDdosProfile":{"description":"Return bare metals either only with advanced or only basic DDoS protection. Effective only with \u003cspan pulumi-lang-nodejs=\"`withDdos`\" pulumi-lang-dotnet=\"`WithDdos`\" pulumi-lang-go=\"`withDdos`\" pulumi-lang-python=\"`with_ddos`\" pulumi-lang-yaml=\"`withDdos`\" pulumi-lang-java=\"`withDdos`\"\u003e`with_ddos`\u003c/span\u003e set to true. (advanced or basic)\nAvailable values: \"basic\", \"advanced\".\n","type":"string"},"uuid":{"description":"Filter the server list result by the UUID of the server. Allowed UUID part\n","type":"string"},"withDdos":{"description":"Include DDoS profile information in the response when 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. Otherwise, the \u003cspan pulumi-lang-nodejs=\"`ddosProfile`\" pulumi-lang-dotnet=\"`DdosProfile`\" pulumi-lang-go=\"`ddosProfile`\" pulumi-lang-python=\"`ddos_profile`\" pulumi-lang-yaml=\"`ddosProfile`\" pulumi-lang-java=\"`ddosProfile`\"\u003e`ddos_profile`\u003c/span\u003e field in the response is \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e by default.\n","type":"boolean"},"withInterfacesName":{"description":"Include \u003cspan pulumi-lang-nodejs=\"`interfaceName`\" pulumi-lang-dotnet=\"`InterfaceName`\" pulumi-lang-go=\"`interfaceName`\" pulumi-lang-python=\"`interface_name`\" pulumi-lang-yaml=\"`interfaceName`\" pulumi-lang-java=\"`interfaceName`\"\u003e`interface_name`\u003c/span\u003e in the addresses\n","type":"boolean"}},"required":["id","includeAi","includeBaremetal","includeK8s","items","onlyIsolated","orderBy","withDdos","withInterfacesName"],"type":"object"}},"gcore:index/getCloudK8sCluster:getCloudK8sCluster":{"description":"Managed Kubernetes clusters with configurable worker node pools, networking, and cluster add-ons.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudK8sCluster = gcore.getCloudK8sCluster({\n    projectId: 1,\n    regionId: 7,\n    clusterName: \"my-cluster\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_k8s_cluster = gcore.get_cloud_k8s_cluster(project_id=1,\n    region_id=7,\n    cluster_name=\"my-cluster\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudK8sCluster = Gcore.GetCloudK8sCluster.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 7,\n        ClusterName = \"my-cluster\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudK8sCluster(ctx, \u0026gcore.LookupCloudK8sClusterArgs{\n\t\t\tProjectId:   pulumi.Float64Ref(1),\n\t\t\tRegionId:    pulumi.Float64Ref(7),\n\t\t\tClusterName: \"my-cluster\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudK8sClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudK8sCluster = GcoreFunctions.getCloudK8sCluster(GetCloudK8sClusterArgs.builder()\n            .projectId(1)\n            .regionId(7)\n            .clusterName(\"my-cluster\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudK8sCluster:\n    fn::invoke:\n      function: gcore:getCloudK8sCluster\n      arguments:\n        projectId: 1\n        regionId: 7\n        clusterName: my-cluster\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudK8sCluster.\n","properties":{"clusterName":{"type":"string","description":"Cluster name\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"}},"type":"object","required":["clusterName"]},"outputs":{"description":"A collection of values returned by getCloudK8sCluster.\n","properties":{"addOns":{"$ref":"#/types/gcore:index%2FgetCloudK8sClusterAddOns:getCloudK8sClusterAddOns","description":"Cluster add-ons configuration\n"},"authentication":{"$ref":"#/types/gcore:index%2FgetCloudK8sClusterAuthentication:getCloudK8sClusterAuthentication","description":"Cluster authentication settings\n"},"autoscalerConfig":{"additionalProperties":{"type":"string"},"description":"Cluster autoscaler configuration.\n","type":"object"},"clusterName":{"description":"Cluster name\n","type":"string"},"cni":{"$ref":"#/types/gcore:index%2FgetCloudK8sClusterCni:getCloudK8sClusterCni"},"createdAt":{"type":"string"},"creatorTaskId":{"type":"string"},"csi":{"$ref":"#/types/gcore:index%2FgetCloudK8sClusterCsi:getCloudK8sClusterCsi"},"fixedNetwork":{"type":"string"},"fixedSubnet":{"type":"string"},"id":{"type":"string"},"isIpv6":{"type":"boolean"},"isPublic":{"type":"boolean"},"keypair":{"type":"string"},"logging":{"$ref":"#/types/gcore:index%2FgetCloudK8sClusterLogging:getCloudK8sClusterLogging"},"name":{"type":"string"},"podsIpPool":{"type":"string"},"podsIpv6Pool":{"type":"string"},"pools":{"items":{"$ref":"#/types/gcore:index%2FgetCloudK8sClusterPool:getCloudK8sClusterPool"},"type":"array"},"projectId":{"description":"Project ID\n","type":"number"},"regionId":{"description":"Region ID\n","type":"number"},"servicesIpPool":{"type":"string"},"servicesIpv6Pool":{"type":"string"},"status":{"type":"string"},"version":{"type":"string"}},"required":["addOns","authentication","autoscalerConfig","clusterName","cni","createdAt","creatorTaskId","csi","fixedNetwork","fixedSubnet","id","isIpv6","isPublic","keypair","logging","name","podsIpPool","podsIpv6Pool","pools","servicesIpPool","servicesIpv6Pool","status","version"],"type":"object"}},"gcore:index/getCloudLoadBalancer:getCloudLoadBalancer":{"description":"Load balancers distribute incoming traffic across multiple instances with support for listeners, pools, and health monitoring.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudLoadBalancer = gcore.getCloudLoadBalancer({\n    projectId: 1,\n    regionId: 7,\n    loadBalancerId: \"ac307687-31a4-4a11-a949-6bea1b2878f5\",\n    showStats: true,\n    withDdos: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_load_balancer = gcore.get_cloud_load_balancer(project_id=1,\n    region_id=7,\n    load_balancer_id=\"ac307687-31a4-4a11-a949-6bea1b2878f5\",\n    show_stats=True,\n    with_ddos=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudLoadBalancer = Gcore.GetCloudLoadBalancer.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 7,\n        LoadBalancerId = \"ac307687-31a4-4a11-a949-6bea1b2878f5\",\n        ShowStats = true,\n        WithDdos = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudLoadBalancer(ctx, \u0026gcore.LookupCloudLoadBalancerArgs{\n\t\t\tProjectId:      pulumi.Float64Ref(1),\n\t\t\tRegionId:       pulumi.Float64Ref(7),\n\t\t\tLoadBalancerId: pulumi.StringRef(\"ac307687-31a4-4a11-a949-6bea1b2878f5\"),\n\t\t\tShowStats:      pulumi.BoolRef(true),\n\t\t\tWithDdos:       pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudLoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudLoadBalancer = GcoreFunctions.getCloudLoadBalancer(GetCloudLoadBalancerArgs.builder()\n            .projectId(1)\n            .regionId(7)\n            .loadBalancerId(\"ac307687-31a4-4a11-a949-6bea1b2878f5\")\n            .showStats(true)\n            .withDdos(true)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudLoadBalancer:\n    fn::invoke:\n      function: gcore:getCloudLoadBalancer\n      arguments:\n        projectId: 1\n        regionId: 7\n        loadBalancerId: ac307687-31a4-4a11-a949-6bea1b2878f5\n        showStats: true\n        withDdos: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudLoadBalancer.\n","properties":{"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerFindOneBy:getCloudLoadBalancerFindOneBy"},"loadBalancerId":{"type":"string","description":"Load-Balancer ID\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"showStats":{"type":"boolean","description":"Show statistics\n"},"withDdos":{"type":"boolean","description":"Show Advanced DDoS protection profile, if exists\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudLoadBalancer.\n","properties":{"additionalVips":{"description":"List of additional IP addresses\n","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerAdditionalVip:getCloudLoadBalancerAdditionalVip"},"type":"array"},"adminStateUp":{"description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n","type":"boolean"},"createdAt":{"description":"Datetime when the load balancer was created\n","type":"string"},"creatorTaskId":{"description":"Task that created this entity\n","type":"string"},"ddosProfile":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerDdosProfile:getCloudLoadBalancerDdosProfile","description":"Loadbalancer advanced DDoS protection profile.\n"},"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerFindOneBy:getCloudLoadBalancerFindOneBy"},"flavor":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerFlavor:getCloudLoadBalancerFlavor","description":"Load balancer flavor (if not default)\n"},"floatingIps":{"description":"List of assigned floating IPs\n","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerFloatingIp:getCloudLoadBalancerFloatingIp"},"type":"array"},"id":{"description":"Load-Balancer ID\n","type":"string"},"listeners":{"description":"Load balancer listeners\n","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerListener:getCloudLoadBalancerListener"},"type":"array"},"loadBalancerId":{"description":"Load-Balancer ID\n","type":"string"},"logging":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerLogging:getCloudLoadBalancerLogging","description":"Logging configuration\n"},"name":{"description":"Load balancer name\n","type":"string"},"operatingStatus":{"description":"Load balancer operating status\nAvailable values: \"DEGRADED\", \"DRAINING\", \"ERROR\", \"NO_MONITOR\", \"OFFLINE\", \"ONLINE\".\n","type":"string"},"preferredConnectivity":{"description":"Preferred option to establish connectivity between load balancer and its pools members\nAvailable values: \"L2\", \"L3\".\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"provisioningStatus":{"description":"Load balancer lifecycle status\nAvailable values: \"ACTIVE\", \"DELETED\", \"ERROR\", \"PENDING*CREATE\", \"PENDING*DELETE\", \"PENDING_UPDATE\".\n","type":"string"},"region":{"description":"Region name\n","type":"string"},"regionId":{"description":"Region ID\n","type":"number"},"showStats":{"description":"Show statistics\n","type":"boolean"},"stats":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerStats:getCloudLoadBalancerStats","description":"Statistics of load balancer.\n"},"tagsV2s":{"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerTagsV2:getCloudLoadBalancerTagsV2"},"type":"array"},"updatedAt":{"description":"Datetime when the load balancer was last updated\n","type":"string"},"vipAddress":{"description":"Load balancer IP address\n","type":"string"},"vipFqdn":{"description":"Fully qualified domain name for the load balancer VIP\n","type":"string"},"vipIpFamily":{"description":"Load balancer IP family\nAvailable values: \"dual\", \"ipv4\", \"ipv6\".\n","type":"string"},"vipPortId":{"description":"The ID of the Virtual IP (VIP) port.\n","type":"string"},"vrrpIps":{"description":"List of VRRP IP addresses\n","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerVrrpIp:getCloudLoadBalancerVrrpIp"},"type":"array"},"withDdos":{"description":"Show Advanced DDoS protection profile, if exists\n","type":"boolean"}},"required":["additionalVips","adminStateUp","createdAt","creatorTaskId","ddosProfile","flavor","floatingIps","id","listeners","logging","name","operatingStatus","preferredConnectivity","provisioningStatus","region","showStats","stats","tagsV2s","updatedAt","vipAddress","vipFqdn","vipIpFamily","vipPortId","vrrpIps","withDdos"],"type":"object"}},"gcore:index/getCloudLoadBalancerListener:getCloudLoadBalancerListener":{"description":"Load balancer listeners handle incoming traffic on specified protocols and ports, forwarding requests to backend pools.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudLoadBalancerListener = gcore.getCloudLoadBalancerListener({\n    projectId: 1,\n    regionId: 1,\n    listenerId: \"00000000-0000-4000-8000-000000000000\",\n    showStats: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_load_balancer_listener = gcore.get_cloud_load_balancer_listener(project_id=1,\n    region_id=1,\n    listener_id=\"00000000-0000-4000-8000-000000000000\",\n    show_stats=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudLoadBalancerListener = Gcore.GetCloudLoadBalancerListener.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        ListenerId = \"00000000-0000-4000-8000-000000000000\",\n        ShowStats = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudLoadBalancerListener(ctx, \u0026gcore.LookupCloudLoadBalancerListenerArgs{\n\t\t\tProjectId:  pulumi.Float64Ref(1),\n\t\t\tRegionId:   pulumi.Float64Ref(1),\n\t\t\tListenerId: \"00000000-0000-4000-8000-000000000000\",\n\t\t\tShowStats:  pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudLoadBalancerListenerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudLoadBalancerListener = GcoreFunctions.getCloudLoadBalancerListener(GetCloudLoadBalancerListenerArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .listenerId(\"00000000-0000-4000-8000-000000000000\")\n            .showStats(true)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudLoadBalancerListener:\n    fn::invoke:\n      function: gcore:getCloudLoadBalancerListener\n      arguments:\n        projectId: 1\n        regionId: 1\n        listenerId: 00000000-0000-4000-8000-000000000000\n        showStats: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudLoadBalancerListener.\n","properties":{"listenerId":{"type":"string","description":"Listener ID\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"showStats":{"type":"boolean","description":"Show stats\n"}},"type":"object","required":["listenerId"]},"outputs":{"description":"A collection of values returned by getCloudLoadBalancerListener.\n","properties":{"adminStateUp":{"description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n","type":"boolean"},"allowedCidrs":{"description":"Network CIDRs from which service will be accessible\n","items":{"type":"string"},"type":"array"},"connectionLimit":{"description":"Limit of simultaneous connections\n","type":"number"},"creatorTaskId":{"description":"Task that created this entity\n","type":"string"},"id":{"description":"Listener ID\n","type":"string"},"insertHeaders":{"additionalProperties":{"type":"string"},"description":"Dictionary of additional header insertion into HTTP headers. Only used with HTTP and `TERMINATED_HTTPS` protocols.\n","type":"object"},"listenerId":{"description":"Listener ID\n","type":"string"},"loadBalancerId":{"description":"Load balancer ID\n","type":"string"},"name":{"description":"Load balancer listener name\n","type":"string"},"operatingStatus":{"description":"Listener operating status\nAvailable values: \"DEGRADED\", \"DRAINING\", \"ERROR\", \"NO_MONITOR\", \"OFFLINE\", \"ONLINE\".\n","type":"string"},"poolCount":{"description":"Number of pools (for UI)\n","type":"number"},"projectId":{"description":"Project ID\n","type":"number"},"protocol":{"description":"Load balancer protocol\nAvailable values: \"HTTP\", \"HTTPS\", \"PROMETHEUS\", \"TCP\", \"TERMINATED_HTTPS\", \"UDP\".\n","type":"string"},"protocolPort":{"description":"Protocol port\n","type":"number"},"provisioningStatus":{"description":"Listener lifecycle status\nAvailable values: \"ACTIVE\", \"DELETED\", \"ERROR\", \"PENDING*CREATE\", \"PENDING*DELETE\", \"PENDING_UPDATE\".\n","type":"string"},"regionId":{"description":"Region ID\n","type":"number"},"secretId":{"description":"ID of the secret where PKCS12 file is stored for `TERMINATED_HTTPS` or PROMETHEUS load balancer\n","type":"string"},"showStats":{"description":"Show stats\n","type":"boolean"},"sniSecretIds":{"description":"List of secret's ID containing PKCS12 format certificate/key bundles for `TERMINATED_HTTPS` or PROMETHEUS listeners\n","items":{"type":"string"},"type":"array"},"stats":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerListenerStats:getCloudLoadBalancerListenerStats","description":"Statistics of the load balancer. It is available only in get functions by a flag.\n"},"timeoutClientData":{"description":"Frontend client inactivity timeout in milliseconds\n","type":"number"},"userLists":{"description":"Load balancer listener users list\n","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerListenerUserList:getCloudLoadBalancerListenerUserList"},"type":"array"}},"required":["adminStateUp","allowedCidrs","connectionLimit","creatorTaskId","id","insertHeaders","listenerId","loadBalancerId","name","operatingStatus","poolCount","protocol","protocolPort","provisioningStatus","secretId","showStats","sniSecretIds","stats","timeoutClientData","userLists"],"type":"object"}},"gcore:index/getCloudLoadBalancerPool:getCloudLoadBalancerPool":{"description":"Load balancer pools group backend instances with a load balancing algorithm and health monitoring configuration.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudLoadBalancerPool = gcore.getCloudLoadBalancerPool({\n    projectId: 1,\n    regionId: 1,\n    poolId: \"00000000-0000-4000-8000-000000000000\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_load_balancer_pool = gcore.get_cloud_load_balancer_pool(project_id=1,\n    region_id=1,\n    pool_id=\"00000000-0000-4000-8000-000000000000\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudLoadBalancerPool = Gcore.GetCloudLoadBalancerPool.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        PoolId = \"00000000-0000-4000-8000-000000000000\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudLoadBalancerPool(ctx, \u0026gcore.LookupCloudLoadBalancerPoolArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(1),\n\t\t\tPoolId:    \"00000000-0000-4000-8000-000000000000\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudLoadBalancerPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudLoadBalancerPool = GcoreFunctions.getCloudLoadBalancerPool(GetCloudLoadBalancerPoolArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .poolId(\"00000000-0000-4000-8000-000000000000\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudLoadBalancerPool:\n    fn::invoke:\n      function: gcore:getCloudLoadBalancerPool\n      arguments:\n        projectId: 1\n        regionId: 1\n        poolId: 00000000-0000-4000-8000-000000000000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudLoadBalancerPool.\n","properties":{"poolId":{"type":"string","description":"Pool ID\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"}},"type":"object","required":["poolId"]},"outputs":{"description":"A collection of values returned by getCloudLoadBalancerPool.\n","properties":{"adminStateUp":{"description":"Administrative state of the resource. When set to true, the resource is enabled and operational. When set to false, the resource is disabled and will not process traffic. Defaults to true.\n","type":"boolean"},"caSecretId":{"description":"Secret ID of CA certificate bundle\n","type":"string"},"creatorTaskId":{"description":"Task that created this entity\n","type":"string"},"crlSecretId":{"description":"Secret ID of CA revocation list file\n","type":"string"},"healthmonitor":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerPoolHealthmonitor:getCloudLoadBalancerPoolHealthmonitor","description":"Health monitor parameters\n"},"id":{"description":"Pool ID\n","type":"string"},"lbAlgorithm":{"description":"Load balancer algorithm\nAvailable values: \"LEAST*CONNECTIONS\", \"ROUND*ROBIN\", \"SOURCE_IP\".\n","type":"string"},"listeners":{"description":"Listeners IDs\n","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerPoolListener:getCloudLoadBalancerPoolListener"},"type":"array"},"loadbalancers":{"description":"Load balancers IDs\n","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerPoolLoadbalancer:getCloudLoadBalancerPoolLoadbalancer"},"type":"array"},"members":{"description":"Pool members\n","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerPoolMember:getCloudLoadBalancerPoolMember"},"type":"array"},"name":{"description":"Pool name\n","type":"string"},"operatingStatus":{"description":"Pool operating status\nAvailable values: \"DEGRADED\", \"DRAINING\", \"ERROR\", \"NO_MONITOR\", \"OFFLINE\", \"ONLINE\".\n","type":"string"},"poolId":{"description":"Pool ID\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"protocol":{"description":"Protocol\nAvailable values: \"HTTP\", \"HTTPS\", \"PROXY\", \"PROXYV2\", \"TCP\", \"UDP\".\n","type":"string"},"provisioningStatus":{"description":"Pool lifecycle status\nAvailable values: \"ACTIVE\", \"DELETED\", \"ERROR\", \"PENDING*CREATE\", \"PENDING*DELETE\", \"PENDING_UPDATE\".\n","type":"string"},"regionId":{"description":"Region ID\n","type":"number"},"secretId":{"description":"Secret ID for TLS client authentication to the member servers\n","type":"string"},"sessionPersistence":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancerPoolSessionPersistence:getCloudLoadBalancerPoolSessionPersistence","description":"Session persistence parameters\n"},"timeoutMemberConnect":{"description":"Backend member connection timeout in milliseconds\n","type":"number"},"timeoutMemberData":{"description":"Backend member inactivity timeout in milliseconds\n","type":"number"}},"required":["adminStateUp","caSecretId","creatorTaskId","crlSecretId","healthmonitor","id","lbAlgorithm","listeners","loadbalancers","members","name","operatingStatus","poolId","protocol","provisioningStatus","secretId","sessionPersistence","timeoutMemberConnect","timeoutMemberData"],"type":"object"}},"gcore:index/getCloudLoadBalancers:getCloudLoadBalancers":{"description":"Load balancers distribute incoming traffic across multiple instances with support for listeners, pools, and health monitoring.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudLoadBalancers = gcore.getCloudLoadBalancers({\n    projectId: 1,\n    regionId: 7,\n    assignedFloating: true,\n    loggingEnabled: true,\n    name: \"lb_name\",\n    tagKeys: [\n        \"key1\",\n        \"key2\",\n    ],\n    tagKeyValue: \"tag_key_value\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_load_balancers = gcore.get_cloud_load_balancers(project_id=1,\n    region_id=7,\n    assigned_floating=True,\n    logging_enabled=True,\n    name=\"lb_name\",\n    tag_keys=[\n        \"key1\",\n        \"key2\",\n    ],\n    tag_key_value=\"tag_key_value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudLoadBalancers = Gcore.GetCloudLoadBalancers.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 7,\n        AssignedFloating = true,\n        LoggingEnabled = true,\n        Name = \"lb_name\",\n        TagKeys = new[]\n        {\n            \"key1\",\n            \"key2\",\n        },\n        TagKeyValue = \"tag_key_value\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudLoadBalancers(ctx, \u0026gcore.GetCloudLoadBalancersArgs{\n\t\t\tProjectId:        pulumi.Float64Ref(1),\n\t\t\tRegionId:         pulumi.Float64Ref(7),\n\t\t\tAssignedFloating: pulumi.BoolRef(true),\n\t\t\tLoggingEnabled:   pulumi.BoolRef(true),\n\t\t\tName:             pulumi.StringRef(\"lb_name\"),\n\t\t\tTagKeys: []string{\n\t\t\t\t\"key1\",\n\t\t\t\t\"key2\",\n\t\t\t},\n\t\t\tTagKeyValue: pulumi.StringRef(\"tag_key_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudLoadBalancersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudLoadBalancers = GcoreFunctions.getCloudLoadBalancers(GetCloudLoadBalancersArgs.builder()\n            .projectId(1)\n            .regionId(7)\n            .assignedFloating(true)\n            .loggingEnabled(true)\n            .name(\"lb_name\")\n            .tagKeys(            \n                \"key1\",\n                \"key2\")\n            .tagKeyValue(\"tag_key_value\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudLoadBalancers:\n    fn::invoke:\n      function: gcore:getCloudLoadBalancers\n      arguments:\n        projectId: 1\n        regionId: 7\n        assignedFloating: true\n        loggingEnabled: true\n        name: lb_name\n        tagKeys:\n          - key1\n          - key2\n        tagKeyValue: tag_key_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudLoadBalancers.\n","properties":{"assignedFloating":{"type":"boolean","description":"With or without assigned floating IP\n"},"loggingEnabled":{"type":"boolean","description":"With or without logging enabled\n"},"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"name":{"type":"string","description":"Filter by name\n"},"orderBy":{"type":"string","description":"Order by field and direction.\nAvailable values: \"created*at.asc\", \"created*at.desc\", \"flavor.asc\", \"flavor.desc\", \"name.asc\", \"name.desc\", \"operating*status.asc\", \"operating*status.desc\", \"provisioning*status.asc\", \"provisioning*status.desc\", \"updated*at.asc\", \"updated*at.desc\", \"vip*address.asc\", \"vip*address.desc\", \"vip*ip*family.asc\", \"vip*ip*family.desc\".\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"showStats":{"type":"boolean","description":"Show statistics\n"},"tagKeyValue":{"type":"string","description":"Optional. Filter by tag key-value pairs.\n"},"tagKeys":{"type":"array","items":{"type":"string"},"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n"},"withDdos":{"type":"boolean","description":"Show Advanced DDoS protection profile, if exists\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudLoadBalancers.\n","properties":{"assignedFloating":{"description":"With or without assigned floating IP\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetCloudLoadBalancersItem:getCloudLoadBalancersItem"},"type":"array"},"loggingEnabled":{"description":"With or without logging enabled\n","type":"boolean"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"name":{"description":"Filter by name\n","type":"string"},"orderBy":{"description":"Order by field and direction.\nAvailable values: \"created*at.asc\", \"created*at.desc\", \"flavor.asc\", \"flavor.desc\", \"name.asc\", \"name.desc\", \"operating*status.asc\", \"operating*status.desc\", \"provisioning*status.asc\", \"provisioning*status.desc\", \"updated*at.asc\", \"updated*at.desc\", \"vip*address.asc\", \"vip*address.desc\", \"vip*ip*family.asc\", \"vip*ip*family.desc\".\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"regionId":{"description":"Region ID\n","type":"number"},"showStats":{"description":"Show statistics\n","type":"boolean"},"tagKeyValue":{"description":"Optional. Filter by tag key-value pairs.\n","type":"string"},"tagKeys":{"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n","items":{"type":"string"},"type":"array"},"withDdos":{"description":"Show Advanced DDoS protection profile, if exists\n","type":"boolean"}},"required":["id","items","orderBy","showStats","withDdos"],"type":"object"}},"gcore:index/getCloudNetwork:getCloudNetwork":{"description":"Networks provide software-defined networking infrastructure for connecting instances and other cloud resources within a region.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudNetwork = gcore.getCloudNetwork({\n    projectId: 1,\n    regionId: 1,\n    networkId: \"b39792c3-3160-4356-912e-ba396c95cdcf\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_network = gcore.get_cloud_network(project_id=1,\n    region_id=1,\n    network_id=\"b39792c3-3160-4356-912e-ba396c95cdcf\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudNetwork = Gcore.GetCloudNetwork.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        NetworkId = \"b39792c3-3160-4356-912e-ba396c95cdcf\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudNetwork(ctx, \u0026gcore.LookupCloudNetworkArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(1),\n\t\t\tNetworkId: pulumi.StringRef(\"b39792c3-3160-4356-912e-ba396c95cdcf\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudNetwork = GcoreFunctions.getCloudNetwork(GetCloudNetworkArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .networkId(\"b39792c3-3160-4356-912e-ba396c95cdcf\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudNetwork:\n    fn::invoke:\n      function: gcore:getCloudNetwork\n      arguments:\n        projectId: 1\n        regionId: 1\n        networkId: b39792c3-3160-4356-912e-ba396c95cdcf\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudNetwork.\n","properties":{"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudNetworkFindOneBy:getCloudNetworkFindOneBy"},"networkId":{"type":"string","description":"Network ID\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudNetwork.\n","properties":{"createdAt":{"description":"Datetime when the network was created\n","type":"string"},"creatorTaskId":{"description":"Task that created this entity\n","type":"string"},"default":{"description":"True if network has \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e attribute\n","type":"boolean"},"external":{"description":"True if the network `router:external` attribute\n","type":"boolean"},"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudNetworkFindOneBy:getCloudNetworkFindOneBy"},"id":{"description":"Network ID\n","type":"string"},"mtu":{"description":"MTU (maximum transmission unit). Default value is 1450\n","type":"number"},"name":{"description":"Network name\n","type":"string"},"networkId":{"description":"Network ID\n","type":"string"},"portSecurityEnabled":{"description":"Indicates \u003cspan pulumi-lang-nodejs=\"`portSecurityEnabled`\" pulumi-lang-dotnet=\"`PortSecurityEnabled`\" pulumi-lang-go=\"`portSecurityEnabled`\" pulumi-lang-python=\"`port_security_enabled`\" pulumi-lang-yaml=\"`portSecurityEnabled`\" pulumi-lang-java=\"`portSecurityEnabled`\"\u003e`port_security_enabled`\u003c/span\u003e status of all newly created in the network ports.\n","type":"boolean"},"projectId":{"description":"Project ID\n","type":"number"},"region":{"description":"Region name\n","type":"string"},"regionId":{"description":"Region ID\n","type":"number"},"segmentationId":{"description":"Id of network segment\n","type":"number"},"shared":{"description":"True when the network is shared with your project by external owner\n","type":"boolean"},"subnets":{"description":"List of subnetworks\n","items":{"type":"string"},"type":"array"},"tags":{"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n","items":{"$ref":"#/types/gcore:index%2FgetCloudNetworkTag:getCloudNetworkTag"},"type":"array"},"type":{"description":"Network type (vlan, vxlan)\n","type":"string"},"updatedAt":{"description":"Datetime when the network was last updated\n","type":"string"}},"required":["createdAt","creatorTaskId","default","external","id","mtu","name","portSecurityEnabled","region","segmentationId","shared","subnets","tags","type","updatedAt"],"type":"object"}},"gcore:index/getCloudNetworkRouter:getCloudNetworkRouter":{"description":"Routers interconnect subnets and manage network routing, including external gateway connectivity and static routes.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudNetworkRouter = gcore.getCloudNetworkRouter({\n    projectId: 0,\n    regionId: 0,\n    routerId: \"router_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_network_router = gcore.get_cloud_network_router(project_id=0,\n    region_id=0,\n    router_id=\"router_id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudNetworkRouter = Gcore.GetCloudNetworkRouter.Invoke(new()\n    {\n        ProjectId = 0,\n        RegionId = 0,\n        RouterId = \"router_id\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudNetworkRouter(ctx, \u0026gcore.LookupCloudNetworkRouterArgs{\n\t\t\tProjectId: pulumi.Float64Ref(0),\n\t\t\tRegionId:  pulumi.Float64Ref(0),\n\t\t\tRouterId:  \"router_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudNetworkRouterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudNetworkRouter = GcoreFunctions.getCloudNetworkRouter(GetCloudNetworkRouterArgs.builder()\n            .projectId(0)\n            .regionId(0)\n            .routerId(\"router_id\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudNetworkRouter:\n    fn::invoke:\n      function: gcore:getCloudNetworkRouter\n      arguments:\n        projectId: 0\n        regionId: 0\n        routerId: router_id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudNetworkRouter.\n","properties":{"projectId":{"type":"number"},"regionId":{"type":"number"},"routerId":{"type":"string"}},"type":"object","required":["routerId"]},"outputs":{"description":"A collection of values returned by getCloudNetworkRouter.\n","properties":{"createdAt":{"description":"Datetime when the router was created\n","type":"string"},"creatorTaskId":{"description":"Task that created this entity\n","type":"string"},"distributed":{"description":"Whether the router is distributed or centralized.\n","type":"boolean"},"externalGatewayInfo":{"$ref":"#/types/gcore:index%2FgetCloudNetworkRouterExternalGatewayInfo:getCloudNetworkRouterExternalGatewayInfo","description":"State of this router's external gateway.\n"},"id":{"description":"The ID of this resource.\n","type":"string"},"interfaces":{"description":"List of router interfaces.\n","items":{"$ref":"#/types/gcore:index%2FgetCloudNetworkRouterInterface:getCloudNetworkRouterInterface"},"type":"array"},"name":{"description":"Router name\n","type":"string"},"projectId":{"type":"number"},"region":{"description":"Region name\n","type":"string"},"regionId":{"type":"number"},"routerId":{"type":"string"},"routes":{"description":"List of custom routes.\n","items":{"$ref":"#/types/gcore:index%2FgetCloudNetworkRouterRoute:getCloudNetworkRouterRoute"},"type":"array"},"status":{"description":"Status of the router.\n","type":"string"},"updatedAt":{"description":"Datetime when the router was last updated\n","type":"string"}},"required":["createdAt","creatorTaskId","distributed","externalGatewayInfo","id","interfaces","name","region","routerId","routes","status","updatedAt"],"type":"object"}},"gcore:index/getCloudNetworkRouters:getCloudNetworkRouters":{"description":"Routers interconnect subnets and manage network routing, including external gateway connectivity and static routes.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudNetworkRouters = gcore.getCloudNetworkRouters({\n    projectId: 0,\n    regionId: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_network_routers = gcore.get_cloud_network_routers(project_id=0,\n    region_id=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudNetworkRouters = Gcore.GetCloudNetworkRouters.Invoke(new()\n    {\n        ProjectId = 0,\n        RegionId = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudNetworkRouters(ctx, \u0026gcore.GetCloudNetworkRoutersArgs{\n\t\t\tProjectId: pulumi.Float64Ref(0),\n\t\t\tRegionId:  pulumi.Float64Ref(0),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudNetworkRoutersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudNetworkRouters = GcoreFunctions.getCloudNetworkRouters(GetCloudNetworkRoutersArgs.builder()\n            .projectId(0)\n            .regionId(0)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudNetworkRouters:\n    fn::invoke:\n      function: gcore:getCloudNetworkRouters\n      arguments:\n        projectId: 0\n        regionId: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudNetworkRouters.\n","properties":{"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"projectId":{"type":"number"},"regionId":{"type":"number"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudNetworkRouters.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetCloudNetworkRoutersItem:getCloudNetworkRoutersItem"},"type":"array"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"projectId":{"type":"number"},"regionId":{"type":"number"}},"required":["id","items"],"type":"object"}},"gcore:index/getCloudNetworkSubnet:getCloudNetworkSubnet":{"description":"Subnets define IP address ranges within a network for instance connectivity, with support for DHCP and DNS configuration.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudNetworkSubnet = gcore.getCloudNetworkSubnet({\n    projectId: 1,\n    regionId: 1,\n    subnetId: \"b39792c3-3160-4356-912e-ba396c95cdcf\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_network_subnet = gcore.get_cloud_network_subnet(project_id=1,\n    region_id=1,\n    subnet_id=\"b39792c3-3160-4356-912e-ba396c95cdcf\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudNetworkSubnet = Gcore.GetCloudNetworkSubnet.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        SubnetId = \"b39792c3-3160-4356-912e-ba396c95cdcf\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudNetworkSubnet(ctx, \u0026gcore.LookupCloudNetworkSubnetArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(1),\n\t\t\tSubnetId:  pulumi.StringRef(\"b39792c3-3160-4356-912e-ba396c95cdcf\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudNetworkSubnetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudNetworkSubnet = GcoreFunctions.getCloudNetworkSubnet(GetCloudNetworkSubnetArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .subnetId(\"b39792c3-3160-4356-912e-ba396c95cdcf\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudNetworkSubnet:\n    fn::invoke:\n      function: gcore:getCloudNetworkSubnet\n      arguments:\n        projectId: 1\n        regionId: 1\n        subnetId: b39792c3-3160-4356-912e-ba396c95cdcf\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudNetworkSubnet.\n","properties":{"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudNetworkSubnetFindOneBy:getCloudNetworkSubnetFindOneBy"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"subnetId":{"type":"string","description":"Subnet ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudNetworkSubnet.\n","properties":{"availableIps":{"description":"Number of available ips in subnet\n","type":"number"},"cidr":{"description":"CIDR\n","type":"string"},"createdAt":{"description":"Datetime when the subnet was created\n","type":"string"},"creatorTaskId":{"description":"Task that created this entity\n","type":"string"},"dnsNameservers":{"description":"List IP addresses of a DNS resolver reachable from the network\n","items":{"type":"string"},"type":"array"},"enableDhcp":{"description":"True if DHCP should be enabled\n","type":"boolean"},"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudNetworkSubnetFindOneBy:getCloudNetworkSubnetFindOneBy"},"gatewayIp":{"description":"Default GW IPv4 address, advertised in DHCP routes of this subnet. If null, no gateway is advertised by this subnet.\n","type":"string"},"hasRouter":{"deprecationMessage":"Deprecated","description":"Deprecated. Always returns \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.\n","type":"boolean"},"hostRoutes":{"description":"List of custom static routes to advertise via DHCP.\n","items":{"$ref":"#/types/gcore:index%2FgetCloudNetworkSubnetHostRoute:getCloudNetworkSubnetHostRoute"},"type":"array"},"id":{"description":"Subnet ID\n","type":"string"},"ipVersion":{"description":"IP version\nAvailable values: 4, 6.\n","type":"number"},"name":{"description":"Subnet name\n","type":"string"},"networkId":{"description":"Network ID\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"region":{"description":"Region name\n","type":"string"},"regionId":{"description":"Region ID\n","type":"number"},"subnetId":{"description":"Subnet ID\n","type":"string"},"tags":{"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n","items":{"$ref":"#/types/gcore:index%2FgetCloudNetworkSubnetTag:getCloudNetworkSubnetTag"},"type":"array"},"totalIps":{"description":"Total number of ips in subnet\n","type":"number"},"updatedAt":{"description":"Datetime when the subnet was last updated\n","type":"string"}},"required":["availableIps","cidr","createdAt","creatorTaskId","dnsNameservers","enableDhcp","gatewayIp","hasRouter","hostRoutes","id","ipVersion","name","networkId","region","tags","totalIps","updatedAt"],"type":"object"}},"gcore:index/getCloudNetworkSubnets:getCloudNetworkSubnets":{"description":"Subnets define IP address ranges within a network for instance connectivity, with support for DHCP and DNS configuration.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudNetworkSubnets = gcore.getCloudNetworkSubnets({\n    projectId: 1,\n    regionId: 1,\n    networkId: \"b30d0de7-bca2-4c83-9c57-9e645bd2cc92\",\n    tagKeys: [\n        \"key1\",\n        \"key2\",\n    ],\n    tagKeyValue: \"tag_key_value\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_network_subnets = gcore.get_cloud_network_subnets(project_id=1,\n    region_id=1,\n    network_id=\"b30d0de7-bca2-4c83-9c57-9e645bd2cc92\",\n    tag_keys=[\n        \"key1\",\n        \"key2\",\n    ],\n    tag_key_value=\"tag_key_value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudNetworkSubnets = Gcore.GetCloudNetworkSubnets.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        NetworkId = \"b30d0de7-bca2-4c83-9c57-9e645bd2cc92\",\n        TagKeys = new[]\n        {\n            \"key1\",\n            \"key2\",\n        },\n        TagKeyValue = \"tag_key_value\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudNetworkSubnets(ctx, \u0026gcore.GetCloudNetworkSubnetsArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(1),\n\t\t\tNetworkId: pulumi.StringRef(\"b30d0de7-bca2-4c83-9c57-9e645bd2cc92\"),\n\t\t\tTagKeys: []string{\n\t\t\t\t\"key1\",\n\t\t\t\t\"key2\",\n\t\t\t},\n\t\t\tTagKeyValue: pulumi.StringRef(\"tag_key_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudNetworkSubnetsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudNetworkSubnets = GcoreFunctions.getCloudNetworkSubnets(GetCloudNetworkSubnetsArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .networkId(\"b30d0de7-bca2-4c83-9c57-9e645bd2cc92\")\n            .tagKeys(            \n                \"key1\",\n                \"key2\")\n            .tagKeyValue(\"tag_key_value\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudNetworkSubnets:\n    fn::invoke:\n      function: gcore:getCloudNetworkSubnets\n      arguments:\n        projectId: 1\n        regionId: 1\n        networkId: b30d0de7-bca2-4c83-9c57-9e645bd2cc92\n        tagKeys:\n          - key1\n          - key2\n        tagKeyValue: tag_key_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudNetworkSubnets.\n","properties":{"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"networkId":{"type":"string","description":"Only list subnets of this network\n"},"orderBy":{"type":"string","description":"Ordering subnets list result by \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, \u003cspan pulumi-lang-nodejs=\"`createdAt`\" pulumi-lang-dotnet=\"`CreatedAt`\" pulumi-lang-go=\"`createdAt`\" pulumi-lang-python=\"`created_at`\" pulumi-lang-yaml=\"`createdAt`\" pulumi-lang-java=\"`createdAt`\"\u003e`created_at`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`updatedAt`\" pulumi-lang-dotnet=\"`UpdatedAt`\" pulumi-lang-go=\"`updatedAt`\" pulumi-lang-python=\"`updated_at`\" pulumi-lang-yaml=\"`updatedAt`\" pulumi-lang-java=\"`updatedAt`\"\u003e`updated_at`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`availableIps`\" pulumi-lang-dotnet=\"`AvailableIps`\" pulumi-lang-go=\"`availableIps`\" pulumi-lang-python=\"`available_ips`\" pulumi-lang-yaml=\"`availableIps`\" pulumi-lang-java=\"`availableIps`\"\u003e`available_ips`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`totalIps`\" pulumi-lang-dotnet=\"`TotalIps`\" pulumi-lang-go=\"`totalIps`\" pulumi-lang-python=\"`total_ips`\" pulumi-lang-yaml=\"`totalIps`\" pulumi-lang-java=\"`totalIps`\"\u003e`total_ips`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`cidr`\" pulumi-lang-dotnet=\"`Cidr`\" pulumi-lang-go=\"`cidr`\" pulumi-lang-python=\"`cidr`\" pulumi-lang-yaml=\"`cidr`\" pulumi-lang-java=\"`cidr`\"\u003e`cidr`\u003c/span\u003e (default) fields of the subnet and directions (`name.asc`).\nAvailable values: \"available*ips.asc\", \"available*ips.desc\", \"cidr.asc\", \"cidr.desc\", \"created*at.asc\", \"created*at.desc\", \"name.asc\", \"name.desc\", \"total*ips.asc\", \"total*ips.desc\", \"updated*at.asc\", \"updated*at.desc\".\n"},"ownedBy":{"type":"string","description":"Controls which subnets are returned. 'project' (default) returns only subnets owned by the project. 'any' returns all subnets from networks available to the project, including subnets from shared networks.\nAvailable values: \"any\", \"project\".\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"tagKeyValue":{"type":"string","description":"Optional. Filter by tag key-value pairs.\n"},"tagKeys":{"type":"array","items":{"type":"string"},"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudNetworkSubnets.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetCloudNetworkSubnetsItem:getCloudNetworkSubnetsItem"},"type":"array"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"networkId":{"description":"Only list subnets of this network\n","type":"string"},"orderBy":{"description":"Ordering subnets list result by \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, \u003cspan pulumi-lang-nodejs=\"`createdAt`\" pulumi-lang-dotnet=\"`CreatedAt`\" pulumi-lang-go=\"`createdAt`\" pulumi-lang-python=\"`created_at`\" pulumi-lang-yaml=\"`createdAt`\" pulumi-lang-java=\"`createdAt`\"\u003e`created_at`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`updatedAt`\" pulumi-lang-dotnet=\"`UpdatedAt`\" pulumi-lang-go=\"`updatedAt`\" pulumi-lang-python=\"`updated_at`\" pulumi-lang-yaml=\"`updatedAt`\" pulumi-lang-java=\"`updatedAt`\"\u003e`updated_at`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`availableIps`\" pulumi-lang-dotnet=\"`AvailableIps`\" pulumi-lang-go=\"`availableIps`\" pulumi-lang-python=\"`available_ips`\" pulumi-lang-yaml=\"`availableIps`\" pulumi-lang-java=\"`availableIps`\"\u003e`available_ips`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`totalIps`\" pulumi-lang-dotnet=\"`TotalIps`\" pulumi-lang-go=\"`totalIps`\" pulumi-lang-python=\"`total_ips`\" pulumi-lang-yaml=\"`totalIps`\" pulumi-lang-java=\"`totalIps`\"\u003e`total_ips`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`cidr`\" pulumi-lang-dotnet=\"`Cidr`\" pulumi-lang-go=\"`cidr`\" pulumi-lang-python=\"`cidr`\" pulumi-lang-yaml=\"`cidr`\" pulumi-lang-java=\"`cidr`\"\u003e`cidr`\u003c/span\u003e (default) fields of the subnet and directions (`name.asc`).\nAvailable values: \"available*ips.asc\", \"available*ips.desc\", \"cidr.asc\", \"cidr.desc\", \"created*at.asc\", \"created*at.desc\", \"name.asc\", \"name.desc\", \"total*ips.asc\", \"total*ips.desc\", \"updated*at.asc\", \"updated*at.desc\".\n","type":"string"},"ownedBy":{"description":"Controls which subnets are returned. 'project' (default) returns only subnets owned by the project. 'any' returns all subnets from networks available to the project, including subnets from shared networks.\nAvailable values: \"any\", \"project\".\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"regionId":{"description":"Region ID\n","type":"number"},"tagKeyValue":{"description":"Optional. Filter by tag key-value pairs.\n","type":"string"},"tagKeys":{"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n","items":{"type":"string"},"type":"array"}},"required":["id","items","orderBy","ownedBy"],"type":"object"}},"gcore:index/getCloudNetworks:getCloudNetworks":{"description":"Networks provide software-defined networking infrastructure for connecting instances and other cloud resources within a region.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudNetworks = gcore.getCloudNetworks({\n    projectId: 1,\n    regionId: 1,\n    name: \"my-network\",\n    tagKeys: [\n        \"key1\",\n        \"key2\",\n    ],\n    tagKeyValue: \"tag_key_value\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_networks = gcore.get_cloud_networks(project_id=1,\n    region_id=1,\n    name=\"my-network\",\n    tag_keys=[\n        \"key1\",\n        \"key2\",\n    ],\n    tag_key_value=\"tag_key_value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudNetworks = Gcore.GetCloudNetworks.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my-network\",\n        TagKeys = new[]\n        {\n            \"key1\",\n            \"key2\",\n        },\n        TagKeyValue = \"tag_key_value\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudNetworks(ctx, \u0026gcore.GetCloudNetworksArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(1),\n\t\t\tName:      pulumi.StringRef(\"my-network\"),\n\t\t\tTagKeys: []string{\n\t\t\t\t\"key1\",\n\t\t\t\t\"key2\",\n\t\t\t},\n\t\t\tTagKeyValue: pulumi.StringRef(\"tag_key_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudNetworksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudNetworks = GcoreFunctions.getCloudNetworks(GetCloudNetworksArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .name(\"my-network\")\n            .tagKeys(            \n                \"key1\",\n                \"key2\")\n            .tagKeyValue(\"tag_key_value\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudNetworks:\n    fn::invoke:\n      function: gcore:getCloudNetworks\n      arguments:\n        projectId: 1\n        regionId: 1\n        name: my-network\n        tagKeys:\n          - key1\n          - key2\n        tagKeyValue: tag_key_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudNetworks.\n","properties":{"external":{"type":"boolean","description":"Filter by external network status\n"},"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"name":{"type":"string","description":"Filter networks by name\n"},"networkType":{"type":"string","description":"Filter by network type (vlan or vxlan)\nAvailable values: \"vlan\", \"vxlan\".\n"},"orderBy":{"type":"string","description":"Ordering networks list result by \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, \u003cspan pulumi-lang-nodejs=\"`createdAt`\" pulumi-lang-dotnet=\"`CreatedAt`\" pulumi-lang-go=\"`createdAt`\" pulumi-lang-python=\"`created_at`\" pulumi-lang-yaml=\"`createdAt`\" pulumi-lang-java=\"`createdAt`\"\u003e`created_at`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`priority`\" pulumi-lang-dotnet=\"`Priority`\" pulumi-lang-go=\"`priority`\" pulumi-lang-python=\"`priority`\" pulumi-lang-yaml=\"`priority`\" pulumi-lang-java=\"`priority`\"\u003e`priority`\u003c/span\u003e fields and directions (e.g. `created_at.desc`). Default is `created_at.desc`. Use `priority.desc` to sort by shared network priority (relevant when `owned_by=any`).\nAvailable values: \"created*at.asc\", \"created*at.desc\", \"name.asc\", \"name.desc\", \"priority.desc\".\n"},"ownedBy":{"type":"string","description":"Controls which networks are returned. 'project' (default) returns only networks owned by the project. 'any' returns all networks that the project can use, including shared networks from other projects.\nAvailable values: \"any\", \"project\".\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"tagKeyValue":{"type":"string","description":"Optional. Filter by tag key-value pairs.\n"},"tagKeys":{"type":"array","items":{"type":"string"},"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudNetworks.\n","properties":{"external":{"description":"Filter by external network status\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetCloudNetworksItem:getCloudNetworksItem"},"type":"array"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"name":{"description":"Filter networks by name\n","type":"string"},"networkType":{"description":"Filter by network type (vlan or vxlan)\nAvailable values: \"vlan\", \"vxlan\".\n","type":"string"},"orderBy":{"description":"Ordering networks list result by \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, \u003cspan pulumi-lang-nodejs=\"`createdAt`\" pulumi-lang-dotnet=\"`CreatedAt`\" pulumi-lang-go=\"`createdAt`\" pulumi-lang-python=\"`created_at`\" pulumi-lang-yaml=\"`createdAt`\" pulumi-lang-java=\"`createdAt`\"\u003e`created_at`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`priority`\" pulumi-lang-dotnet=\"`Priority`\" pulumi-lang-go=\"`priority`\" pulumi-lang-python=\"`priority`\" pulumi-lang-yaml=\"`priority`\" pulumi-lang-java=\"`priority`\"\u003e`priority`\u003c/span\u003e fields and directions (e.g. `created_at.desc`). Default is `created_at.desc`. Use `priority.desc` to sort by shared network priority (relevant when `owned_by=any`).\nAvailable values: \"created*at.asc\", \"created*at.desc\", \"name.asc\", \"name.desc\", \"priority.desc\".\n","type":"string"},"ownedBy":{"description":"Controls which networks are returned. 'project' (default) returns only networks owned by the project. 'any' returns all networks that the project can use, including shared networks from other projects.\nAvailable values: \"any\", \"project\".\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"regionId":{"description":"Region ID\n","type":"number"},"tagKeyValue":{"description":"Optional. Filter by tag key-value pairs.\n","type":"string"},"tagKeys":{"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n","items":{"type":"string"},"type":"array"}},"required":["id","items","orderBy","ownedBy"],"type":"object"}},"gcore:index/getCloudPlacementGroup:getCloudPlacementGroup":{"description":"Placement groups enforce affinity or anti-affinity policies that control whether virtual machines are hosted on the same or different physical servers.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudPlacementGroup = gcore.getCloudPlacementGroup({\n    projectId: 0,\n    regionId: 0,\n    groupId: \"group_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_placement_group = gcore.get_cloud_placement_group(project_id=0,\n    region_id=0,\n    group_id=\"group_id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudPlacementGroup = Gcore.GetCloudPlacementGroup.Invoke(new()\n    {\n        ProjectId = 0,\n        RegionId = 0,\n        GroupId = \"group_id\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudPlacementGroup(ctx, \u0026gcore.LookupCloudPlacementGroupArgs{\n\t\t\tProjectId: pulumi.Float64Ref(0),\n\t\t\tRegionId:  pulumi.Float64Ref(0),\n\t\t\tGroupId:   \"group_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudPlacementGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudPlacementGroup = GcoreFunctions.getCloudPlacementGroup(GetCloudPlacementGroupArgs.builder()\n            .projectId(0)\n            .regionId(0)\n            .groupId(\"group_id\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudPlacementGroup:\n    fn::invoke:\n      function: gcore:getCloudPlacementGroup\n      arguments:\n        projectId: 0\n        regionId: 0\n        groupId: group_id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudPlacementGroup.\n","properties":{"groupId":{"type":"string"},"projectId":{"type":"number"},"regionId":{"type":"number"}},"type":"object","required":["groupId"]},"outputs":{"description":"A collection of values returned by getCloudPlacementGroup.\n","properties":{"groupId":{"type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"instances":{"description":"The list of instances in this server group.\n","items":{"$ref":"#/types/gcore:index%2FgetCloudPlacementGroupInstance:getCloudPlacementGroupInstance"},"type":"array"},"name":{"description":"The name of the server group.\n","type":"string"},"policy":{"description":"The server group policy. Options are: anti-affinity, affinity, or soft-anti-affinity.\n","type":"string"},"projectId":{"type":"number"},"region":{"description":"Region name\n","type":"string"},"regionId":{"type":"number"},"servergroupId":{"description":"The ID of the server group.\n","type":"string"}},"required":["groupId","id","instances","name","policy","region","servergroupId"],"type":"object"}},"gcore:index/getCloudProject:getCloudProject":{"description":"Projects are organizational units that group cloud resources for access control and billing.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudProject = gcore.getCloudProject({\n    projectId: 4,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_project = gcore.get_cloud_project(project_id=4)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudProject = Gcore.GetCloudProject.Invoke(new()\n    {\n        ProjectId = 4,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudProject(ctx, \u0026gcore.LookupCloudProjectArgs{\n\t\t\tProjectId: pulumi.Float64Ref(4),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudProject = GcoreFunctions.getCloudProject(GetCloudProjectArgs.builder()\n            .projectId(4)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudProject:\n    fn::invoke:\n      function: gcore:getCloudProject\n      arguments:\n        projectId: 4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudProject.\n","properties":{"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudProjectFindOneBy:getCloudProjectFindOneBy"},"projectId":{"type":"number","description":"Project ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudProject.\n","properties":{"clientId":{"description":"ID associated with the client.\n","type":"number"},"createdAt":{"description":"Datetime of creation, which is automatically generated.\n","type":"string"},"deletedAt":{"description":"Datetime of deletion, which is automatically generated if the project is deleted.\n","type":"string"},"description":{"description":"Description of the project.\n","type":"string"},"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudProjectFindOneBy:getCloudProjectFindOneBy"},"id":{"description":"Project ID\n","type":"number"},"isDefault":{"description":"Indicates if the project is the default one. Each client always has one default project.\n","type":"boolean"},"name":{"description":"Unique project name for a client.\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"state":{"description":"The state of the project.\n","type":"string"}},"required":["clientId","createdAt","deletedAt","description","id","isDefault","name","state"],"type":"object"}},"gcore:index/getCloudProjects:getCloudProjects":{"description":"Projects are organizational units that group cloud resources for access control and billing.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudProjects = gcore.getCloudProjects({\n    clientId: 1,\n    name: \"my-project\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_projects = gcore.get_cloud_projects(client_id=1,\n    name=\"my-project\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudProjects = Gcore.GetCloudProjects.Invoke(new()\n    {\n        ClientId = 1,\n        Name = \"my-project\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudProjects(ctx, \u0026gcore.GetCloudProjectsArgs{\n\t\t\tClientId: pulumi.Float64Ref(1),\n\t\t\tName:     pulumi.StringRef(\"my-project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudProjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudProjects = GcoreFunctions.getCloudProjects(GetCloudProjectsArgs.builder()\n            .clientId(1)\n            .name(\"my-project\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudProjects:\n    fn::invoke:\n      function: gcore:getCloudProjects\n      arguments:\n        clientId: 1\n        name: my-project\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudProjects.\n","properties":{"clientId":{"type":"number","description":"Client ID filter for administrators.\n"},"includeDeleted":{"type":"boolean","description":"Whether to include deleted projects in the response.\n"},"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"name":{"type":"string","description":"Name to filter the results by.\n"},"orderBy":{"type":"string","description":"Order by field and direction.\nAvailable values: \"created*at.asc\", \"created*at.desc\", \"name.asc\", \"name.desc\".\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudProjects.\n","properties":{"clientId":{"description":"Client ID filter for administrators.\n","type":"number"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"includeDeleted":{"description":"Whether to include deleted projects in the response.\n","type":"boolean"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetCloudProjectsItem:getCloudProjectsItem"},"type":"array"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"name":{"description":"Name to filter the results by.\n","type":"string"},"orderBy":{"description":"Order by field and direction.\nAvailable values: \"created*at.asc\", \"created*at.desc\", \"name.asc\", \"name.desc\".\n","type":"string"}},"required":["id","includeDeleted","items","orderBy"],"type":"object"}},"gcore:index/getCloudRegion:getCloudRegion":{"description":"Regions represent available Gcore cloud data centers with information about supported services and volume types.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudRegion = gcore.getCloudRegion({\n    regionId: 11,\n    showVolumeTypes: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_region = gcore.get_cloud_region(region_id=11,\n    show_volume_types=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudRegion = Gcore.GetCloudRegion.Invoke(new()\n    {\n        RegionId = 11,\n        ShowVolumeTypes = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudRegion(ctx, \u0026gcore.GetCloudRegionArgs{\n\t\t\tRegionId:        pulumi.Float64Ref(11),\n\t\t\tShowVolumeTypes: pulumi.BoolRef(false),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudRegionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudRegion = GcoreFunctions.getCloudRegion(GetCloudRegionArgs.builder()\n            .regionId(11)\n            .showVolumeTypes(false)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudRegion:\n    fn::invoke:\n      function: gcore:getCloudRegion\n      arguments:\n        regionId: 11\n        showVolumeTypes: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudRegion.\n","properties":{"regionId":{"type":"number","description":"Region ID\n"},"showVolumeTypes":{"type":"boolean","description":"If true, null \u003cspan pulumi-lang-nodejs=\"`availableVolumeType`\" pulumi-lang-dotnet=\"`AvailableVolumeType`\" pulumi-lang-go=\"`availableVolumeType`\" pulumi-lang-python=\"`available_volume_type`\" pulumi-lang-yaml=\"`availableVolumeType`\" pulumi-lang-java=\"`availableVolumeType`\"\u003e`available_volume_type`\u003c/span\u003e is replaced with a list of available volume types.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudRegion.\n","properties":{"accessLevel":{"description":"The access level of the region.\nAvailable values: \"core\", \"edge\".\n","type":"string"},"availableVolumeTypes":{"description":"List of available volume types, 'standard', 'ssd_hiiops', 'cold'].\n","items":{"type":"string"},"type":"array"},"coordinates":{"$ref":"#/types/gcore:index%2FgetCloudRegionCoordinates:getCloudRegionCoordinates","description":"Coordinates of the region\n"},"country":{"description":"Two-letter country code, ISO 3166-1 alpha-2\n","type":"string"},"createdAt":{"description":"Region creation date and time\n","type":"string"},"createdOn":{"deprecationMessage":"Deprecated","description":"This field is deprecated. Use \u003cspan pulumi-lang-nodejs=\"`createdAt`\" pulumi-lang-dotnet=\"`CreatedAt`\" pulumi-lang-go=\"`createdAt`\" pulumi-lang-python=\"`created_at`\" pulumi-lang-yaml=\"`createdAt`\" pulumi-lang-java=\"`createdAt`\"\u003e`created_at`\u003c/span\u003e instead.\n","type":"string"},"ddosEndpointId":{"deprecationMessage":"Deprecated","description":"DDoS endpoint ID\n","type":"number"},"displayName":{"description":"Human-readable region name\n","type":"string"},"endpointType":{"description":"Endpoint type\nAvailable values: \"admin\", \"internal\", \"public\".\n","type":"string"},"externalNetworkId":{"description":"External network ID for Neutron\n","type":"string"},"fileShareTypes":{"description":"List of available file share types\n","items":{"type":"string"},"type":"array"},"hasAi":{"description":"Region has AI capability\n","type":"boolean"},"hasAiGpu":{"description":"Region has AI GPU capability\n","type":"boolean"},"hasBaremetal":{"description":"Region has bare metal capability\n","type":"boolean"},"hasBasicVm":{"description":"Region has basic vm capability\n","type":"boolean"},"hasDbaas":{"description":"Region has DBAAS service\n","type":"boolean"},"hasDdos":{"description":"Region has Advanced DDoS Protection capability\n","type":"boolean"},"hasK8s":{"description":"Region has managed kubernetes capability\n","type":"boolean"},"hasKvm":{"description":"Region has KVM virtualization capability\n","type":"boolean"},"hasSfs":{"description":"Region has SFS capability\n","type":"boolean"},"id":{"description":"Region ID\n","type":"number"},"keystoneId":{"description":"Foreign key to Keystone entity\n","type":"number"},"keystoneName":{"description":"Technical region name\n","type":"string"},"metricsDatabaseId":{"description":"Foreign key to Metrics database entity\n","type":"number"},"regionId":{"description":"Region ID\n","type":"number"},"showVolumeTypes":{"description":"If true, null \u003cspan pulumi-lang-nodejs=\"`availableVolumeType`\" pulumi-lang-dotnet=\"`AvailableVolumeType`\" pulumi-lang-go=\"`availableVolumeType`\" pulumi-lang-python=\"`available_volume_type`\" pulumi-lang-yaml=\"`availableVolumeType`\" pulumi-lang-java=\"`availableVolumeType`\"\u003e`available_volume_type`\u003c/span\u003e is replaced with a list of available volume types.\n","type":"boolean"},"state":{"description":"Region state\nAvailable values: \"ACTIVE\", \"DELETED\", \"DELETING\", \"DELETION_FAILED\", \"INACTIVE\", \"MAINTENANCE\", \"NEW\".\n","type":"string"},"vlanPhysicalNetwork":{"description":"Physical network name to create vlan networks\n","type":"string"},"zone":{"description":"Geographical zone\nAvailable values: \"AMERICAS\", \"APAC\", \"EMEA\", \"RUSSIA*AND*CIS\".\n","type":"string"}},"required":["accessLevel","availableVolumeTypes","coordinates","country","createdAt","createdOn","ddosEndpointId","displayName","endpointType","externalNetworkId","fileShareTypes","hasAi","hasAiGpu","hasBaremetal","hasBasicVm","hasDbaas","hasDdos","hasK8s","hasKvm","hasSfs","id","keystoneId","keystoneName","metricsDatabaseId","showVolumeTypes","state","vlanPhysicalNetwork","zone"],"type":"object"}},"gcore:index/getCloudRegions:getCloudRegions":{"description":"Regions represent available Gcore cloud data centers with information about supported services and volume types.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudRegions = gcore.getCloudRegions({\n    displayName: \"Luxembourg\",\n    product: \"inference\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_regions = gcore.get_cloud_regions(display_name=\"Luxembourg\",\n    product=\"inference\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudRegions = Gcore.GetCloudRegions.Invoke(new()\n    {\n        DisplayName = \"Luxembourg\",\n        Product = \"inference\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudRegions(ctx, \u0026gcore.GetCloudRegionsArgs{\n\t\t\tDisplayName: pulumi.StringRef(\"Luxembourg\"),\n\t\t\tProduct:     pulumi.StringRef(\"inference\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudRegionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudRegions = GcoreFunctions.getCloudRegions(GetCloudRegionsArgs.builder()\n            .displayName(\"Luxembourg\")\n            .product(\"inference\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudRegions:\n    fn::invoke:\n      function: gcore:getCloudRegions\n      arguments:\n        displayName: Luxembourg\n        product: inference\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudRegions.\n","properties":{"displayName":{"type":"string","description":"Filter regions by display name. Case-insensitive exact match.\n"},"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"orderBy":{"type":"string","description":"Order by field and direction.\nAvailable values: \"created*at.asc\", \"created*at.desc\", \"display*name.asc\", \"display*name.desc\".\n"},"product":{"type":"string","description":"If defined then return only regions that support given product.\nAvailable values: \"containers\", \"inference\".\n"},"showVolumeTypes":{"type":"boolean","description":"If true, null \u003cspan pulumi-lang-nodejs=\"`availableVolumeType`\" pulumi-lang-dotnet=\"`AvailableVolumeType`\" pulumi-lang-go=\"`availableVolumeType`\" pulumi-lang-python=\"`available_volume_type`\" pulumi-lang-yaml=\"`availableVolumeType`\" pulumi-lang-java=\"`availableVolumeType`\"\u003e`available_volume_type`\u003c/span\u003e is replaced with a list of available volume types.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudRegions.\n","properties":{"displayName":{"description":"Filter regions by display name. Case-insensitive exact match.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetCloudRegionsItem:getCloudRegionsItem"},"type":"array"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"orderBy":{"description":"Order by field and direction.\nAvailable values: \"created*at.asc\", \"created*at.desc\", \"display*name.asc\", \"display*name.desc\".\n","type":"string"},"product":{"description":"If defined then return only regions that support given product.\nAvailable values: \"containers\", \"inference\".\n","type":"string"},"showVolumeTypes":{"description":"If true, null \u003cspan pulumi-lang-nodejs=\"`availableVolumeType`\" pulumi-lang-dotnet=\"`AvailableVolumeType`\" pulumi-lang-go=\"`availableVolumeType`\" pulumi-lang-python=\"`available_volume_type`\" pulumi-lang-yaml=\"`availableVolumeType`\" pulumi-lang-java=\"`availableVolumeType`\"\u003e`available_volume_type`\u003c/span\u003e is replaced with a list of available volume types.\n","type":"boolean"}},"required":["id","items","orderBy","showVolumeTypes"],"type":"object"}},"gcore:index/getCloudReservedFixedIp:getCloudReservedFixedIp":{"description":"Reserved fixed IPs are static IP addresses that persist independently of instances and can be used as virtual IPs (VIPs) for high availability.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudReservedFixedIp = gcore.getCloudReservedFixedIp({\n    projectId: 0,\n    regionId: 0,\n    portId: \"port_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_reserved_fixed_ip = gcore.get_cloud_reserved_fixed_ip(project_id=0,\n    region_id=0,\n    port_id=\"port_id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudReservedFixedIp = Gcore.GetCloudReservedFixedIp.Invoke(new()\n    {\n        ProjectId = 0,\n        RegionId = 0,\n        PortId = \"port_id\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudReservedFixedIp(ctx, \u0026gcore.LookupCloudReservedFixedIpArgs{\n\t\t\tProjectId: pulumi.Float64Ref(0),\n\t\t\tRegionId:  pulumi.Float64Ref(0),\n\t\t\tPortId:    \"port_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudReservedFixedIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudReservedFixedIp = GcoreFunctions.getCloudReservedFixedIp(GetCloudReservedFixedIpArgs.builder()\n            .projectId(0)\n            .regionId(0)\n            .portId(\"port_id\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudReservedFixedIp:\n    fn::invoke:\n      function: gcore:getCloudReservedFixedIp\n      arguments:\n        projectId: 0\n        regionId: 0\n        portId: port_id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudReservedFixedIp.\n","properties":{"portId":{"type":"string"},"projectId":{"type":"number"},"regionId":{"type":"number"}},"type":"object","required":["portId"]},"outputs":{"description":"A collection of values returned by getCloudReservedFixedIp.\n","properties":{"allowedAddressPairs":{"description":"Group of subnet masks and/or IP addresses that share the current IP as VIP\n","items":{"$ref":"#/types/gcore:index%2FgetCloudReservedFixedIpAllowedAddressPair:getCloudReservedFixedIpAllowedAddressPair"},"type":"array"},"attachments":{"description":"Reserved fixed IP attachment entities\n","items":{"$ref":"#/types/gcore:index%2FgetCloudReservedFixedIpAttachment:getCloudReservedFixedIpAttachment"},"type":"array"},"createdAt":{"description":"Datetime when the reserved fixed IP was created\n","type":"string"},"creatorTaskId":{"description":"Task that created this entity\n","type":"string"},"fixedIpAddress":{"description":"IPv4 address of the reserved fixed IP\n","type":"string"},"fixedIpv6Address":{"description":"IPv6 address of the reserved fixed IP\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"isExternal":{"description":"If reserved fixed IP belongs to a public network\n","type":"boolean"},"isVip":{"description":"If reserved fixed IP is a VIP\n","type":"boolean"},"name":{"description":"Reserved fixed IP name\n","type":"string"},"network":{"$ref":"#/types/gcore:index%2FgetCloudReservedFixedIpNetwork:getCloudReservedFixedIpNetwork","description":"Network details\n"},"networkId":{"description":"ID of the network the port is attached to\n","type":"string"},"portId":{"type":"string"},"projectId":{"type":"number"},"region":{"description":"Region name\n","type":"string"},"regionId":{"type":"number"},"status":{"description":"Underlying port status\n","type":"string"},"subnetId":{"description":"ID of the subnet that owns the IP address\n","type":"string"},"subnetV6Id":{"description":"ID of the subnet that owns the IPv6 address\n","type":"string"},"updatedAt":{"description":"Datetime when the reserved fixed IP was last updated\n","type":"string"}},"required":["allowedAddressPairs","attachments","createdAt","creatorTaskId","fixedIpAddress","fixedIpv6Address","id","isExternal","isVip","name","network","networkId","portId","region","status","subnetId","subnetV6Id","updatedAt"],"type":"object"}},"gcore:index/getCloudReservedFixedIps:getCloudReservedFixedIps":{"description":"Reserved fixed IPs are static IP addresses that persist independently of instances and can be used as virtual IPs (VIPs) for high availability.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudReservedFixedIps = gcore.getCloudReservedFixedIps({\n    projectId: 0,\n    regionId: 0,\n    availableOnly: true,\n    deviceId: \"device_id\",\n    externalOnly: true,\n    internalOnly: true,\n    ipAddress: \"ip_address\",\n    orderBy: \"order_by\",\n    vipOnly: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_reserved_fixed_ips = gcore.get_cloud_reserved_fixed_ips(project_id=0,\n    region_id=0,\n    available_only=True,\n    device_id=\"device_id\",\n    external_only=True,\n    internal_only=True,\n    ip_address=\"ip_address\",\n    order_by=\"order_by\",\n    vip_only=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudReservedFixedIps = Gcore.GetCloudReservedFixedIps.Invoke(new()\n    {\n        ProjectId = 0,\n        RegionId = 0,\n        AvailableOnly = true,\n        DeviceId = \"device_id\",\n        ExternalOnly = true,\n        InternalOnly = true,\n        IpAddress = \"ip_address\",\n        OrderBy = \"order_by\",\n        VipOnly = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudReservedFixedIps(ctx, \u0026gcore.GetCloudReservedFixedIpsArgs{\n\t\t\tProjectId:     pulumi.Float64Ref(0),\n\t\t\tRegionId:      pulumi.Float64Ref(0),\n\t\t\tAvailableOnly: pulumi.BoolRef(true),\n\t\t\tDeviceId:      pulumi.StringRef(\"device_id\"),\n\t\t\tExternalOnly:  pulumi.BoolRef(true),\n\t\t\tInternalOnly:  pulumi.BoolRef(true),\n\t\t\tIpAddress:     pulumi.StringRef(\"ip_address\"),\n\t\t\tOrderBy:       pulumi.StringRef(\"order_by\"),\n\t\t\tVipOnly:       pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudReservedFixedIpsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudReservedFixedIps = GcoreFunctions.getCloudReservedFixedIps(GetCloudReservedFixedIpsArgs.builder()\n            .projectId(0)\n            .regionId(0)\n            .availableOnly(true)\n            .deviceId(\"device_id\")\n            .externalOnly(true)\n            .internalOnly(true)\n            .ipAddress(\"ip_address\")\n            .orderBy(\"order_by\")\n            .vipOnly(true)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudReservedFixedIps:\n    fn::invoke:\n      function: gcore:getCloudReservedFixedIps\n      arguments:\n        projectId: 0\n        regionId: 0\n        availableOnly: true\n        deviceId: device_id\n        externalOnly: true\n        internalOnly: true\n        ipAddress: ip_address\n        orderBy: order_by\n        vipOnly: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudReservedFixedIps.\n","properties":{"availableOnly":{"type":"boolean","description":"Set to true if the response should only list IP addresses that are not attached to any instance\n"},"deviceId":{"type":"string","description":"Filter IPs by device ID it is attached to\n"},"externalOnly":{"type":"boolean","description":"Set to true if the response should only list public IP addresses\n"},"internalOnly":{"type":"boolean","description":"Set to true if the response should only list private IP addresses\n"},"ipAddress":{"type":"string","description":"An IPv4 address to filter results by. Regular expression allowed\n"},"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"orderBy":{"type":"string","description":"Ordering reserved fixed IP list result by name, status, \u003cspan pulumi-lang-nodejs=\"`updatedAt`\" pulumi-lang-dotnet=\"`UpdatedAt`\" pulumi-lang-go=\"`updatedAt`\" pulumi-lang-python=\"`updated_at`\" pulumi-lang-yaml=\"`updatedAt`\" pulumi-lang-java=\"`updatedAt`\"\u003e`updated_at`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`createdAt`\" pulumi-lang-dotnet=\"`CreatedAt`\" pulumi-lang-go=\"`createdAt`\" pulumi-lang-python=\"`created_at`\" pulumi-lang-yaml=\"`createdAt`\" pulumi-lang-java=\"`createdAt`\"\u003e`created_at`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`fixedIpAddress`\" pulumi-lang-dotnet=\"`FixedIpAddress`\" pulumi-lang-go=\"`fixedIpAddress`\" pulumi-lang-python=\"`fixed_ip_address`\" pulumi-lang-yaml=\"`fixedIpAddress`\" pulumi-lang-java=\"`fixedIpAddress`\"\u003e`fixed_ip_address`\u003c/span\u003e fields and directions (status.asc), default is \"fixed*ip*address.asc\"\n"},"projectId":{"type":"number"},"regionId":{"type":"number"},"vipOnly":{"type":"boolean","description":"Set to true if the response should only list VIPs\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudReservedFixedIps.\n","properties":{"availableOnly":{"description":"Set to true if the response should only list IP addresses that are not attached to any instance\n","type":"boolean"},"deviceId":{"description":"Filter IPs by device ID it is attached to\n","type":"string"},"externalOnly":{"description":"Set to true if the response should only list public IP addresses\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"internalOnly":{"description":"Set to true if the response should only list private IP addresses\n","type":"boolean"},"ipAddress":{"description":"An IPv4 address to filter results by. Regular expression allowed\n","type":"string"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetCloudReservedFixedIpsItem:getCloudReservedFixedIpsItem"},"type":"array"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"orderBy":{"description":"Ordering reserved fixed IP list result by name, status, \u003cspan pulumi-lang-nodejs=\"`updatedAt`\" pulumi-lang-dotnet=\"`UpdatedAt`\" pulumi-lang-go=\"`updatedAt`\" pulumi-lang-python=\"`updated_at`\" pulumi-lang-yaml=\"`updatedAt`\" pulumi-lang-java=\"`updatedAt`\"\u003e`updated_at`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`createdAt`\" pulumi-lang-dotnet=\"`CreatedAt`\" pulumi-lang-go=\"`createdAt`\" pulumi-lang-python=\"`created_at`\" pulumi-lang-yaml=\"`createdAt`\" pulumi-lang-java=\"`createdAt`\"\u003e`created_at`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`fixedIpAddress`\" pulumi-lang-dotnet=\"`FixedIpAddress`\" pulumi-lang-go=\"`fixedIpAddress`\" pulumi-lang-python=\"`fixed_ip_address`\" pulumi-lang-yaml=\"`fixedIpAddress`\" pulumi-lang-java=\"`fixedIpAddress`\"\u003e`fixed_ip_address`\u003c/span\u003e fields and directions (status.asc), default is \"fixed*ip*address.asc\"\n","type":"string"},"projectId":{"type":"number"},"regionId":{"type":"number"},"vipOnly":{"description":"Set to true if the response should only list VIPs\n","type":"boolean"}},"required":["id","items"],"type":"object"}},"gcore:index/getCloudSecret:getCloudSecret":{"description":"Secrets store sensitive data such as TLS certificates and private keys in encrypted form within a cloud region.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudSecret = gcore.getCloudSecret({\n    projectId: 1,\n    regionId: 1,\n    secretId: \"bfc7824b-31b6-4a28-a0c4-7df137139215\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_secret = gcore.get_cloud_secret(project_id=1,\n    region_id=1,\n    secret_id=\"bfc7824b-31b6-4a28-a0c4-7df137139215\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudSecret = Gcore.GetCloudSecret.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        SecretId = \"bfc7824b-31b6-4a28-a0c4-7df137139215\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudSecret(ctx, \u0026gcore.LookupCloudSecretArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(1),\n\t\t\tSecretId:  \"bfc7824b-31b6-4a28-a0c4-7df137139215\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudSecretArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudSecret = GcoreFunctions.getCloudSecret(GetCloudSecretArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .secretId(\"bfc7824b-31b6-4a28-a0c4-7df137139215\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudSecret:\n    fn::invoke:\n      function: gcore:getCloudSecret\n      arguments:\n        projectId: 1\n        regionId: 1\n        secretId: bfc7824b-31b6-4a28-a0c4-7df137139215\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudSecret.\n","properties":{"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"secretId":{"type":"string","description":"Secret ID\n"}},"type":"object","required":["secretId"]},"outputs":{"description":"A collection of values returned by getCloudSecret.\n","properties":{"algorithm":{"description":"Metadata provided by a user or system for informational purposes. Defaults to None\n","type":"string"},"bitLength":{"description":"Metadata provided by a user or system for informational purposes. Value must be greater than zero. Defaults to None\n","type":"number"},"contentTypes":{"additionalProperties":{"type":"string"},"description":"Describes the content-types that can be used to retrieve the payload. The content-type used with symmetric secrets is application/octet-stream\n","type":"object"},"created":{"description":"Datetime when the secret was created. The format is 2020-01-01T12:00:00+00:00\n","type":"string"},"expiration":{"description":"Datetime when the secret will expire. The format is 2020-01-01T12:00:00+00:00. Defaults to None\n","type":"string"},"id":{"description":"Secret ID\n","type":"string"},"mode":{"description":"Metadata provided by a user or system for informational purposes. Defaults to None\n","type":"string"},"name":{"description":"Secret name\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"regionId":{"description":"Region ID\n","type":"number"},"secretId":{"description":"Secret ID\n","type":"string"},"secretType":{"description":"Secret type, base64 encoded. symmetric - Used for storing byte arrays such as keys suitable for symmetric encryption; public - Used for storing the public key of an asymmetric keypair; private - Used for storing the private key of an asymmetric keypair; passphrase - Used for storing plain text passphrases; certificate - Used for storing cryptographic certificates such as X.509 certificates; opaque - Used for backwards compatibility with previous versions of the API\nAvailable values: \"certificate\", \"opaque\", \"passphrase\", \"private\", \"public\", \"symmetric\".\n","type":"string"},"status":{"description":"Status\n","type":"string"}},"required":["algorithm","bitLength","contentTypes","created","expiration","id","mode","name","secretId","secretType","status"],"type":"object"}},"gcore:index/getCloudSecrets:getCloudSecrets":{"description":"Secrets store sensitive data such as TLS certificates and private keys in encrypted form within a cloud region.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudSecrets = gcore.getCloudSecrets({\n    projectId: 1,\n    regionId: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_secrets = gcore.get_cloud_secrets(project_id=1,\n    region_id=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudSecrets = Gcore.GetCloudSecrets.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudSecrets(ctx, \u0026gcore.GetCloudSecretsArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(1),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudSecretsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudSecrets = GcoreFunctions.getCloudSecrets(GetCloudSecretsArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudSecrets:\n    fn::invoke:\n      function: gcore:getCloudSecrets\n      arguments:\n        projectId: 1\n        regionId: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudSecrets.\n","properties":{"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudSecrets.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetCloudSecretsItem:getCloudSecretsItem"},"type":"array"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"projectId":{"description":"Project ID\n","type":"number"},"regionId":{"description":"Region ID\n","type":"number"}},"required":["id","items"],"type":"object"}},"gcore:index/getCloudSecurityGroup:getCloudSecurityGroup":{"description":"Security groups act as virtual firewalls controlling inbound and outbound traffic for instances and other resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudSecurityGroup = gcore.getCloudSecurityGroup({\n    projectId: 1,\n    regionId: 1,\n    groupId: \"024a29e9-b4b7-4c91-9a46-505be123d9f8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_security_group = gcore.get_cloud_security_group(project_id=1,\n    region_id=1,\n    group_id=\"024a29e9-b4b7-4c91-9a46-505be123d9f8\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudSecurityGroup = Gcore.GetCloudSecurityGroup.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        GroupId = \"024a29e9-b4b7-4c91-9a46-505be123d9f8\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudSecurityGroup(ctx, \u0026gcore.LookupCloudSecurityGroupArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(1),\n\t\t\tGroupId:   pulumi.StringRef(\"024a29e9-b4b7-4c91-9a46-505be123d9f8\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudSecurityGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudSecurityGroup = GcoreFunctions.getCloudSecurityGroup(GetCloudSecurityGroupArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .groupId(\"024a29e9-b4b7-4c91-9a46-505be123d9f8\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudSecurityGroup:\n    fn::invoke:\n      function: gcore:getCloudSecurityGroup\n      arguments:\n        projectId: 1\n        regionId: 1\n        groupId: 024a29e9-b4b7-4c91-9a46-505be123d9f8\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudSecurityGroup.\n","properties":{"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudSecurityGroupFindOneBy:getCloudSecurityGroupFindOneBy"},"groupId":{"type":"string","description":"Group ID\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudSecurityGroup.\n","properties":{"createdAt":{"description":"Datetime when the security group was created\n","type":"string"},"description":{"description":"Security group description\n","type":"string"},"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudSecurityGroupFindOneBy:getCloudSecurityGroupFindOneBy"},"groupId":{"description":"Group ID\n","type":"string"},"id":{"description":"Group ID\n","type":"string"},"name":{"description":"Security group name\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"region":{"description":"Region name\n","type":"string"},"regionId":{"description":"Region ID\n","type":"number"},"revisionNumber":{"description":"The number of revisions\n","type":"number"},"securityGroupRules":{"description":"Security group rules\n","items":{"$ref":"#/types/gcore:index%2FgetCloudSecurityGroupSecurityGroupRule:getCloudSecurityGroupSecurityGroupRule"},"type":"array"},"tagsV2s":{"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n","items":{"$ref":"#/types/gcore:index%2FgetCloudSecurityGroupTagsV2:getCloudSecurityGroupTagsV2"},"type":"array"},"updatedAt":{"description":"Datetime when the security group was last updated\n","type":"string"}},"required":["createdAt","description","id","name","region","revisionNumber","securityGroupRules","tagsV2s","updatedAt"],"type":"object"}},"gcore:index/getCloudSecurityGroups:getCloudSecurityGroups":{"description":"Security groups act as virtual firewalls controlling inbound and outbound traffic for instances and other resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudSecurityGroups = gcore.getCloudSecurityGroups({\n    projectId: 1,\n    regionId: 1,\n    name: \"my_security_group\",\n    tagKeys: [\n        \"key1\",\n        \"key2\",\n    ],\n    tagKeyValue: \"tag_key_value\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_security_groups = gcore.get_cloud_security_groups(project_id=1,\n    region_id=1,\n    name=\"my_security_group\",\n    tag_keys=[\n        \"key1\",\n        \"key2\",\n    ],\n    tag_key_value=\"tag_key_value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudSecurityGroups = Gcore.GetCloudSecurityGroups.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"my_security_group\",\n        TagKeys = new[]\n        {\n            \"key1\",\n            \"key2\",\n        },\n        TagKeyValue = \"tag_key_value\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudSecurityGroups(ctx, \u0026gcore.GetCloudSecurityGroupsArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(1),\n\t\t\tName:      pulumi.StringRef(\"my_security_group\"),\n\t\t\tTagKeys: []string{\n\t\t\t\t\"key1\",\n\t\t\t\t\"key2\",\n\t\t\t},\n\t\t\tTagKeyValue: pulumi.StringRef(\"tag_key_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudSecurityGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudSecurityGroups = GcoreFunctions.getCloudSecurityGroups(GetCloudSecurityGroupsArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .name(\"my_security_group\")\n            .tagKeys(            \n                \"key1\",\n                \"key2\")\n            .tagKeyValue(\"tag_key_value\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudSecurityGroups:\n    fn::invoke:\n      function: gcore:getCloudSecurityGroups\n      arguments:\n        projectId: 1\n        regionId: 1\n        name: my_security_group\n        tagKeys:\n          - key1\n          - key2\n        tagKeyValue: tag_key_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudSecurityGroups.\n","properties":{"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"name":{"type":"string","description":"Optional. Filter by name. Must be specified a full name of the security group.\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"tagKeyValue":{"type":"string","description":"Optional. Filter by tag key-value pairs.\n"},"tagKeys":{"type":"array","items":{"type":"string"},"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudSecurityGroups.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetCloudSecurityGroupsItem:getCloudSecurityGroupsItem"},"type":"array"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"name":{"description":"Optional. Filter by name. Must be specified a full name of the security group.\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"regionId":{"description":"Region ID\n","type":"number"},"tagKeyValue":{"description":"Optional. Filter by tag key-value pairs.\n","type":"string"},"tagKeys":{"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n","items":{"type":"string"},"type":"array"}},"required":["id","items"],"type":"object"}},"gcore:index/getCloudSshKey:getCloudSshKey":{"description":"SSH key pairs provide secure authentication to cloud instances, supporting both generated and imported public keys.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudSshKey = gcore.getCloudSshKey({\n    projectId: 1,\n    sshKeyId: \"36a7a97a-0672-4911-8f2b-92cd4e5b0d91\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_ssh_key = gcore.get_cloud_ssh_key(project_id=1,\n    ssh_key_id=\"36a7a97a-0672-4911-8f2b-92cd4e5b0d91\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudSshKey = Gcore.GetCloudSshKey.Invoke(new()\n    {\n        ProjectId = 1,\n        SshKeyId = \"36a7a97a-0672-4911-8f2b-92cd4e5b0d91\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudSshKey(ctx, \u0026gcore.LookupCloudSshKeyArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tSshKeyId:  pulumi.StringRef(\"36a7a97a-0672-4911-8f2b-92cd4e5b0d91\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudSshKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudSshKey = GcoreFunctions.getCloudSshKey(GetCloudSshKeyArgs.builder()\n            .projectId(1)\n            .sshKeyId(\"36a7a97a-0672-4911-8f2b-92cd4e5b0d91\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudSshKey:\n    fn::invoke:\n      function: gcore:getCloudSshKey\n      arguments:\n        projectId: 1\n        sshKeyId: 36a7a97a-0672-4911-8f2b-92cd4e5b0d91\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudSshKey.\n","properties":{"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudSshKeyFindOneBy:getCloudSshKeyFindOneBy"},"projectId":{"type":"number","description":"Project ID\n"},"sshKeyId":{"type":"string","description":"SSH key ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudSshKey.\n","properties":{"createdAt":{"description":"SSH key creation time\n","type":"string"},"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudSshKeyFindOneBy:getCloudSshKeyFindOneBy"},"fingerprint":{"description":"Fingerprint\n","type":"string"},"id":{"description":"SSH key ID\n","type":"string"},"name":{"description":"SSH key name\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"publicKey":{"description":"The public part of an SSH key is the shareable portion of an SSH key pair. It can be safely sent to servers or services to grant access. It does not contain sensitive information.\n","type":"string"},"sharedInProject":{"description":"SSH key will be visible to all users in the project\n","type":"boolean"},"sshKeyId":{"description":"SSH key ID\n","type":"string"},"state":{"description":"SSH key state\nAvailable values: \"ACTIVE\", \"DELETING\".\n","type":"string"}},"required":["createdAt","fingerprint","id","name","publicKey","sharedInProject","state"],"type":"object"}},"gcore:index/getCloudSshKeys:getCloudSshKeys":{"description":"SSH key pairs provide secure authentication to cloud instances, supporting both generated and imported public keys.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudSshKeys = gcore.getCloudSshKeys({\n    projectId: 1,\n    name: \"my-ssh-key\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_ssh_keys = gcore.get_cloud_ssh_keys(project_id=1,\n    name=\"my-ssh-key\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudSshKeys = Gcore.GetCloudSshKeys.Invoke(new()\n    {\n        ProjectId = 1,\n        Name = \"my-ssh-key\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudSshKeys(ctx, \u0026gcore.GetCloudSshKeysArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tName:      pulumi.StringRef(\"my-ssh-key\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudSshKeysArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudSshKeys = GcoreFunctions.getCloudSshKeys(GetCloudSshKeysArgs.builder()\n            .projectId(1)\n            .name(\"my-ssh-key\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudSshKeys:\n    fn::invoke:\n      function: gcore:getCloudSshKeys\n      arguments:\n        projectId: 1\n        name: my-ssh-key\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudSshKeys.\n","properties":{"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"name":{"type":"string","description":"SSH key name. Partial substring match. Example: `name=abc` matches any key containing \u003cspan pulumi-lang-nodejs=\"`abc`\" pulumi-lang-dotnet=\"`Abc`\" pulumi-lang-go=\"`abc`\" pulumi-lang-python=\"`abc`\" pulumi-lang-yaml=\"`abc`\" pulumi-lang-java=\"`abc`\"\u003e`abc`\u003c/span\u003e in name.\n"},"orderBy":{"type":"string","description":"Sort order for the SSH keys\nAvailable values: \"created*at.asc\", \"created*at.desc\", \"name.asc\", \"name.desc\".\n"},"projectId":{"type":"number","description":"Project ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudSshKeys.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetCloudSshKeysItem:getCloudSshKeysItem"},"type":"array"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"name":{"description":"SSH key name. Partial substring match. Example: `name=abc` matches any key containing \u003cspan pulumi-lang-nodejs=\"`abc`\" pulumi-lang-dotnet=\"`Abc`\" pulumi-lang-go=\"`abc`\" pulumi-lang-python=\"`abc`\" pulumi-lang-yaml=\"`abc`\" pulumi-lang-java=\"`abc`\"\u003e`abc`\u003c/span\u003e in name.\n","type":"string"},"orderBy":{"description":"Sort order for the SSH keys\nAvailable values: \"created*at.asc\", \"created*at.desc\", \"name.asc\", \"name.desc\".\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"}},"required":["id","items","orderBy"],"type":"object"}},"gcore:index/getCloudVolume:getCloudVolume":{"description":"Volumes are block storage devices that can be attached to instances as boot or data disks, with support for resizing and type changes.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudVolume = gcore.getCloudVolume({\n    projectId: 1,\n    regionId: 1,\n    volumeId: \"726ecfcc-7fd0-4e30-a86e-7892524aa483\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_volume = gcore.get_cloud_volume(project_id=1,\n    region_id=1,\n    volume_id=\"726ecfcc-7fd0-4e30-a86e-7892524aa483\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudVolume = Gcore.GetCloudVolume.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        VolumeId = \"726ecfcc-7fd0-4e30-a86e-7892524aa483\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupCloudVolume(ctx, \u0026gcore.LookupCloudVolumeArgs{\n\t\t\tProjectId: pulumi.Float64Ref(1),\n\t\t\tRegionId:  pulumi.Float64Ref(1),\n\t\t\tVolumeId:  pulumi.StringRef(\"726ecfcc-7fd0-4e30-a86e-7892524aa483\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudVolume = GcoreFunctions.getCloudVolume(GetCloudVolumeArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .volumeId(\"726ecfcc-7fd0-4e30-a86e-7892524aa483\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudVolume:\n    fn::invoke:\n      function: gcore:getCloudVolume\n      arguments:\n        projectId: 1\n        regionId: 1\n        volumeId: 726ecfcc-7fd0-4e30-a86e-7892524aa483\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudVolume.\n","properties":{"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudVolumeFindOneBy:getCloudVolumeFindOneBy"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"volumeId":{"type":"string","description":"Volume ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudVolume.\n","properties":{"attachments":{"description":"List of attachments associated with the volume.\n","items":{"$ref":"#/types/gcore:index%2FgetCloudVolumeAttachment:getCloudVolumeAttachment"},"type":"array"},"bootable":{"description":"Indicates whether the volume is bootable.\n","type":"boolean"},"createdAt":{"description":"The date and time when the volume was created.\n","type":"string"},"creatorTaskId":{"description":"The ID of the task that created this volume.\n","type":"string"},"findOneBy":{"$ref":"#/types/gcore:index%2FgetCloudVolumeFindOneBy:getCloudVolumeFindOneBy"},"id":{"description":"Volume ID\n","type":"string"},"isRootVolume":{"description":"Indicates whether this is a root volume.\n","type":"boolean"},"limiterStats":{"$ref":"#/types/gcore:index%2FgetCloudVolumeLimiterStats:getCloudVolumeLimiterStats","description":"Schema representing the Quality of Service (QoS) parameters for a volume.\n"},"name":{"description":"The name of the volume.\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"region":{"description":"The region where the volume is located.\n","type":"string"},"regionId":{"description":"Region ID\n","type":"number"},"size":{"description":"The size of the volume in gibibytes (GiB).\n","type":"number"},"snapshotIds":{"description":"List of snapshot IDs associated with this volume.\n","items":{"type":"string"},"type":"array"},"status":{"description":"The current status of the volume.\nAvailable values: \"attaching\", \"available\", \"awaiting-transfer\", \"backing-up\", \"creating\", \"deleting\", \"detaching\", \"downloading\", \"error\", \"error*backing-up\", \"error*deleting\", \"error*extending\", \"error*restoring\", \"extending\", \"in-use\", \"maintenance\", \"reserved\", \"restoring-backup\", \"retyping\", \"reverting\", \"uploading\".\n","type":"string"},"tags":{"description":"List of key-value tags associated with the resource. A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.\n","items":{"$ref":"#/types/gcore:index%2FgetCloudVolumeTag:getCloudVolumeTag"},"type":"array"},"updatedAt":{"description":"The date and time when the volume was last updated.\n","type":"string"},"volumeId":{"description":"Volume ID\n","type":"string"},"volumeImageMetadata":{"additionalProperties":{"type":"string"},"description":"Image metadata for volumes created from an image.\n","type":"object"},"volumeType":{"description":"The type of volume storage.\n","type":"string"}},"required":["attachments","bootable","createdAt","creatorTaskId","id","isRootVolume","limiterStats","name","region","size","snapshotIds","status","tags","updatedAt","volumeImageMetadata","volumeType"],"type":"object"}},"gcore:index/getCloudVolumes:getCloudVolumes":{"description":"Volumes are block storage devices that can be attached to instances as boot or data disks, with support for resizing and type changes.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleCloudVolumes = gcore.getCloudVolumes({\n    projectId: 1,\n    regionId: 1,\n    bootable: false,\n    clusterId: \"t12345\",\n    hasAttachments: true,\n    idPart: \"726ecfcc-7fd0-4e30-a86e-7892524aa483\",\n    instanceId: \"169942e0-9b53-42df-95ef-1a8b6525c2bd\",\n    namePart: \"test\",\n    tagKeys: [\n        \"key1\",\n        \"key2\",\n    ],\n    tagKeyValue: \"tag_key_value\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_cloud_volumes = gcore.get_cloud_volumes(project_id=1,\n    region_id=1,\n    bootable=False,\n    cluster_id=\"t12345\",\n    has_attachments=True,\n    id_part=\"726ecfcc-7fd0-4e30-a86e-7892524aa483\",\n    instance_id=\"169942e0-9b53-42df-95ef-1a8b6525c2bd\",\n    name_part=\"test\",\n    tag_keys=[\n        \"key1\",\n        \"key2\",\n    ],\n    tag_key_value=\"tag_key_value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleCloudVolumes = Gcore.GetCloudVolumes.Invoke(new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Bootable = false,\n        ClusterId = \"t12345\",\n        HasAttachments = true,\n        IdPart = \"726ecfcc-7fd0-4e30-a86e-7892524aa483\",\n        InstanceId = \"169942e0-9b53-42df-95ef-1a8b6525c2bd\",\n        NamePart = \"test\",\n        TagKeys = new[]\n        {\n            \"key1\",\n            \"key2\",\n        },\n        TagKeyValue = \"tag_key_value\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetCloudVolumes(ctx, \u0026gcore.GetCloudVolumesArgs{\n\t\t\tProjectId:      pulumi.Float64Ref(1),\n\t\t\tRegionId:       pulumi.Float64Ref(1),\n\t\t\tBootable:       pulumi.BoolRef(false),\n\t\t\tClusterId:      pulumi.StringRef(\"t12345\"),\n\t\t\tHasAttachments: pulumi.BoolRef(true),\n\t\t\tIdPart:         pulumi.StringRef(\"726ecfcc-7fd0-4e30-a86e-7892524aa483\"),\n\t\t\tInstanceId:     pulumi.StringRef(\"169942e0-9b53-42df-95ef-1a8b6525c2bd\"),\n\t\t\tNamePart:       pulumi.StringRef(\"test\"),\n\t\t\tTagKeys: []string{\n\t\t\t\t\"key1\",\n\t\t\t\t\"key2\",\n\t\t\t},\n\t\t\tTagKeyValue: pulumi.StringRef(\"tag_key_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCloudVolumesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleCloudVolumes = GcoreFunctions.getCloudVolumes(GetCloudVolumesArgs.builder()\n            .projectId(1)\n            .regionId(1)\n            .bootable(false)\n            .clusterId(\"t12345\")\n            .hasAttachments(true)\n            .idPart(\"726ecfcc-7fd0-4e30-a86e-7892524aa483\")\n            .instanceId(\"169942e0-9b53-42df-95ef-1a8b6525c2bd\")\n            .namePart(\"test\")\n            .tagKeys(            \n                \"key1\",\n                \"key2\")\n            .tagKeyValue(\"tag_key_value\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleCloudVolumes:\n    fn::invoke:\n      function: gcore:getCloudVolumes\n      arguments:\n        projectId: 1\n        regionId: 1\n        bootable: false\n        clusterId: t12345\n        hasAttachments: true\n        idPart: 726ecfcc-7fd0-4e30-a86e-7892524aa483\n        instanceId: 169942e0-9b53-42df-95ef-1a8b6525c2bd\n        namePart: test\n        tagKeys:\n          - key1\n          - key2\n        tagKeyValue: tag_key_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudVolumes.\n","properties":{"bootable":{"type":"boolean","description":"Filter by bootable field\n"},"clusterId":{"type":"string","description":"Filter volumes by k8s cluster ID\n"},"hasAttachments":{"type":"boolean","description":"Filter by the presence of attachments\n"},"idPart":{"type":"string","description":"Filter the volume list result by the ID part of the volume\n"},"instanceId":{"type":"string","description":"Filter volumes by instance ID\n"},"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"namePart":{"type":"string","description":"Filter volumes by \u003cspan pulumi-lang-nodejs=\"`namePart`\" pulumi-lang-dotnet=\"`NamePart`\" pulumi-lang-go=\"`namePart`\" pulumi-lang-python=\"`name_part`\" pulumi-lang-yaml=\"`namePart`\" pulumi-lang-java=\"`namePart`\"\u003e`name_part`\u003c/span\u003e inclusion in volume name.Any substring can be used and volumes will be returned with names containing the substring.\n"},"projectId":{"type":"number","description":"Project ID\n"},"regionId":{"type":"number","description":"Region ID\n"},"tagKeyValue":{"type":"string","description":"Optional. Filter by tag key-value pairs.\n"},"tagKeys":{"type":"array","items":{"type":"string"},"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCloudVolumes.\n","properties":{"bootable":{"description":"Filter by bootable field\n","type":"boolean"},"clusterId":{"description":"Filter volumes by k8s cluster ID\n","type":"string"},"hasAttachments":{"description":"Filter by the presence of attachments\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"idPart":{"description":"Filter the volume list result by the ID part of the volume\n","type":"string"},"instanceId":{"description":"Filter volumes by instance ID\n","type":"string"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetCloudVolumesItem:getCloudVolumesItem"},"type":"array"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"namePart":{"description":"Filter volumes by \u003cspan pulumi-lang-nodejs=\"`namePart`\" pulumi-lang-dotnet=\"`NamePart`\" pulumi-lang-go=\"`namePart`\" pulumi-lang-python=\"`name_part`\" pulumi-lang-yaml=\"`namePart`\" pulumi-lang-java=\"`namePart`\"\u003e`name_part`\u003c/span\u003e inclusion in volume name.Any substring can be used and volumes will be returned with names containing the substring.\n","type":"string"},"projectId":{"description":"Project ID\n","type":"number"},"regionId":{"description":"Region ID\n","type":"number"},"tagKeyValue":{"description":"Optional. Filter by tag key-value pairs.\n","type":"string"},"tagKeys":{"description":"Optional. Filter by tag keys. ?\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key1\u0026\u003cspan pulumi-lang-nodejs=\"`tagKey`\" pulumi-lang-dotnet=\"`TagKey`\" pulumi-lang-go=\"`tagKey`\" pulumi-lang-python=\"`tag_key`\" pulumi-lang-yaml=\"`tagKey`\" pulumi-lang-java=\"`tagKey`\"\u003e`tag_key`\u003c/span\u003e=key2\n","items":{"type":"string"},"type":"array"}},"required":["id","items"],"type":"object"}},"gcore:index/getDnsNetworkMapping:getDnsNetworkMapping":{"description":"DNS network mappings associate CIDR ranges with network tags for private DNS resolution and traffic-based routing.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleDnsNetworkMapping = gcore.getDnsNetworkMapping({\n    id: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_dns_network_mapping = gcore.get_dns_network_mapping(id=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleDnsNetworkMapping = Gcore.GetDnsNetworkMapping.Invoke(new()\n    {\n        Id = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupDnsNetworkMapping(ctx, \u0026gcore.LookupDnsNetworkMappingArgs{\n\t\t\tId: 0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetDnsNetworkMappingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleDnsNetworkMapping = GcoreFunctions.getDnsNetworkMapping(GetDnsNetworkMappingArgs.builder()\n            .id(0)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleDnsNetworkMapping:\n    fn::invoke:\n      function: gcore:getDnsNetworkMapping\n      arguments:\n        id: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDnsNetworkMapping.\n","properties":{"id":{"type":"number","description":"The ID of this resource.\n"}},"type":"object","required":["id"]},"outputs":{"description":"A collection of values returned by getDnsNetworkMapping.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"number"},"mappings":{"items":{"$ref":"#/types/gcore:index%2FgetDnsNetworkMappingMapping:getDnsNetworkMappingMapping"},"type":"array"},"name":{"type":"string"}},"required":["id","mappings","name"],"type":"object"}},"gcore:index/getDnsZone:getDnsZone":{"description":"DNS zones are authoritative containers for domain name records, with support for DNSSEC and SOA configuration.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleDnsZone = gcore.getDnsZone({\n    name: \"name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_dns_zone = gcore.get_dns_zone(name=\"name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleDnsZone = Gcore.GetDnsZone.Invoke(new()\n    {\n        Name = \"name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupDnsZone(ctx, \u0026gcore.LookupDnsZoneArgs{\n\t\t\tName: \"name\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetDnsZoneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleDnsZone = GcoreFunctions.getDnsZone(GetDnsZoneArgs.builder()\n            .name(\"name\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleDnsZone:\n    fn::invoke:\n      function: gcore:getDnsZone\n      arguments:\n        name: name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDnsZone.\n","properties":{"name":{"type":"string"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getDnsZone.\n","properties":{"contact":{"description":"email address of the administrator responsible for this zone\n","type":"string"},"dnssecEnabled":{"description":"describe dnssec status\ntrue means dnssec is enabled for the zone\nfalse means dnssec is disabled for the zone\n","type":"boolean"},"enabled":{"type":"boolean"},"expiry":{"description":"number of seconds after which secondary name servers should stop answering request for this zone\n","type":"number"},"id":{"description":"ID of zone.\nThis field usually is omitted in response and available only in\ncase of getting deleted zones by admin.\n","type":"number"},"meta":{"additionalProperties":{"type":"string"},"description":"arbitrarily data of zone in json format\n","type":"object"},"name":{"type":"string"},"nxTtl":{"description":"Time To Live of cache\n","type":"number"},"primaryServer":{"description":"primary master name server for zone\n","type":"string"},"records":{"items":{"$ref":"#/types/gcore:index%2FgetDnsZoneRecord:getDnsZoneRecord"},"type":"array"},"refresh":{"description":"number of seconds after which secondary name servers should query the master for the SOA record, to detect zone changes.\n","type":"number"},"retry":{"description":"number of seconds after which secondary name servers should retry to request the serial number\n","type":"number"},"rrsetsAmount":{"$ref":"#/types/gcore:index%2FgetDnsZoneRrsetsAmount:getDnsZoneRrsetsAmount"},"serial":{"description":"Serial number for this zone or Timestamp of zone modification moment.\nIf a secondary name server slaved to this one observes an increase in this number,\nthe slave will assume that the zone has been updated and initiate a zone transfer.\n","type":"number"},"status":{"type":"string"}},"required":["contact","dnssecEnabled","enabled","expiry","id","meta","name","nxTtl","primaryServer","records","refresh","retry","rrsetsAmount","serial","status"],"type":"object"}},"gcore:index/getDnsZoneRrset:getDnsZoneRrset":{"description":"DNS resource record sets (RRsets) define individual DNS records such as A, AAAA, CNAME, MX, and TXT with TTL and geo-balancing settings.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleDnsZoneRrset = gcore.getDnsZoneRrset({\n    zoneName: \"zoneName\",\n    rrsetName: \"rrsetName\",\n    rrsetType: \"rrsetType\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_dns_zone_rrset = gcore.get_dns_zone_rrset(zone_name=\"zoneName\",\n    rrset_name=\"rrsetName\",\n    rrset_type=\"rrsetType\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleDnsZoneRrset = Gcore.GetDnsZoneRrset.Invoke(new()\n    {\n        ZoneName = \"zoneName\",\n        RrsetName = \"rrsetName\",\n        RrsetType = \"rrsetType\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupDnsZoneRrset(ctx, \u0026gcore.LookupDnsZoneRrsetArgs{\n\t\t\tZoneName:  \"zoneName\",\n\t\t\tRrsetName: \"rrsetName\",\n\t\t\tRrsetType: \"rrsetType\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetDnsZoneRrsetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleDnsZoneRrset = GcoreFunctions.getDnsZoneRrset(GetDnsZoneRrsetArgs.builder()\n            .zoneName(\"zoneName\")\n            .rrsetName(\"rrsetName\")\n            .rrsetType(\"rrsetType\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleDnsZoneRrset:\n    fn::invoke:\n      function: gcore:getDnsZoneRrset\n      arguments:\n        zoneName: zoneName\n        rrsetName: rrsetName\n        rrsetType: rrsetType\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDnsZoneRrset.\n","properties":{"rrsetName":{"type":"string"},"rrsetType":{"type":"string"},"zoneName":{"type":"string"}},"type":"object","required":["rrsetName","rrsetType","zoneName"]},"outputs":{"description":"A collection of values returned by getDnsZoneRrset.\n","properties":{"filterSetId":{"type":"number"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"meta":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"type":"string"},"pickers":{"items":{"$ref":"#/types/gcore:index%2FgetDnsZoneRrsetPicker:getDnsZoneRrsetPicker"},"type":"array"},"resourceRecords":{"items":{"$ref":"#/types/gcore:index%2FgetDnsZoneRrsetResourceRecord:getDnsZoneRrsetResourceRecord"},"type":"array"},"rrsetName":{"type":"string"},"rrsetType":{"type":"string"},"ttl":{"type":"number"},"type":{"type":"string"},"updatedAt":{"type":"string"},"warning":{"type":"string"},"warnings":{"items":{"$ref":"#/types/gcore:index%2FgetDnsZoneRrsetWarning:getDnsZoneRrsetWarning"},"type":"array"},"zoneName":{"type":"string"}},"required":["filterSetId","id","meta","name","pickers","resourceRecords","rrsetName","rrsetType","ttl","type","updatedAt","warning","warnings","zoneName"],"type":"object"}},"gcore:index/getFastedgeApp:getFastedgeApp":{"description":"FastEdge applications combine a WebAssembly binary with configuration, environment variables, and secrets for deployment at the CDN edge.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleFastedgeApp = gcore.getFastedgeApp({\n    appId: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_fastedge_app = gcore.get_fastedge_app(app_id=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleFastedgeApp = Gcore.GetFastedgeApp.Invoke(new()\n    {\n        AppId = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupFastedgeApp(ctx, \u0026gcore.LookupFastedgeAppArgs{\n\t\t\tAppId: pulumi.Float64Ref(0),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetFastedgeAppArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleFastedgeApp = GcoreFunctions.getFastedgeApp(GetFastedgeAppArgs.builder()\n            .appId(0)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleFastedgeApp:\n    fn::invoke:\n      function: gcore:getFastedgeApp\n      arguments:\n        appId: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFastedgeApp.\n","properties":{"appId":{"type":"number"},"findOneBy":{"$ref":"#/types/gcore:index%2FgetFastedgeAppFindOneBy:getFastedgeAppFindOneBy"}},"type":"object"},"outputs":{"description":"A collection of values returned by getFastedgeApp.\n","properties":{"apiType":{"type":"string"},"appId":{"type":"number"},"binary":{"type":"number"},"comment":{"type":"string"},"debug":{"type":"boolean"},"debugUntil":{"type":"string"},"env":{"additionalProperties":{"type":"string"},"type":"object"},"findOneBy":{"$ref":"#/types/gcore:index%2FgetFastedgeAppFindOneBy:getFastedgeAppFindOneBy"},"id":{"type":"number"},"log":{"type":"string"},"name":{"type":"string"},"networks":{"items":{"type":"string"},"type":"array"},"plan":{"type":"string"},"planId":{"type":"number"},"rspHeaders":{"additionalProperties":{"type":"string"},"type":"object"},"secrets":{"additionalProperties":{"$ref":"#/types/gcore:index%2FgetFastedgeAppSecrets:getFastedgeAppSecrets"},"type":"object"},"status":{"type":"number"},"stores":{"additionalProperties":{"$ref":"#/types/gcore:index%2FgetFastedgeAppStores:getFastedgeAppStores"},"type":"object"},"template":{"type":"number"},"templateName":{"type":"string"},"url":{"type":"string"}},"required":["apiType","binary","comment","debug","debugUntil","env","id","log","name","networks","plan","planId","rspHeaders","secrets","status","stores","template","templateName","url"],"type":"object"}},"gcore:index/getFastedgeApps:getFastedgeApps":{"description":"FastEdge applications combine a WebAssembly binary with configuration, environment variables, and secrets for deployment at the CDN edge.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleFastedgeApps = gcore.getFastedgeApps({\n    apiType: \"wasi-http\",\n    binary: 1,\n    name: \"x\",\n    ordering: \"name\",\n    plan: 1,\n    status: 0,\n    template: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_fastedge_apps = gcore.get_fastedge_apps(api_type=\"wasi-http\",\n    binary=1,\n    name=\"x\",\n    ordering=\"name\",\n    plan=1,\n    status=0,\n    template=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleFastedgeApps = Gcore.GetFastedgeApps.Invoke(new()\n    {\n        ApiType = \"wasi-http\",\n        Binary = 1,\n        Name = \"x\",\n        Ordering = \"name\",\n        Plan = 1,\n        Status = 0,\n        Template = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetFastedgeApps(ctx, \u0026gcore.GetFastedgeAppsArgs{\n\t\t\tApiType:  pulumi.StringRef(\"wasi-http\"),\n\t\t\tBinary:   pulumi.Float64Ref(1),\n\t\t\tName:     pulumi.StringRef(\"x\"),\n\t\t\tOrdering: pulumi.StringRef(\"name\"),\n\t\t\tPlan:     pulumi.Float64Ref(1),\n\t\t\tStatus:   pulumi.Float64Ref(0),\n\t\t\tTemplate: pulumi.Float64Ref(1),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetFastedgeAppsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleFastedgeApps = GcoreFunctions.getFastedgeApps(GetFastedgeAppsArgs.builder()\n            .apiType(\"wasi-http\")\n            .binary(1)\n            .name(\"x\")\n            .ordering(\"name\")\n            .plan(1)\n            .status(0)\n            .template(1)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleFastedgeApps:\n    fn::invoke:\n      function: gcore:getFastedgeApps\n      arguments:\n        apiType: wasi-http\n        binary: 1\n        name: x\n        ordering: name\n        plan: 1\n        status: 0\n        template: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFastedgeApps.\n","properties":{"apiType":{"type":"string"},"binary":{"type":"number"},"maxItems":{"type":"number"},"name":{"type":"string"},"ordering":{"type":"string"},"plan":{"type":"number"},"status":{"type":"number"},"template":{"type":"number"}},"type":"object"},"outputs":{"description":"A collection of values returned by getFastedgeApps.\n","properties":{"apiType":{"type":"string"},"binary":{"type":"number"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"items":{"items":{"$ref":"#/types/gcore:index%2FgetFastedgeAppsItem:getFastedgeAppsItem"},"type":"array"},"maxItems":{"type":"number"},"name":{"type":"string"},"ordering":{"type":"string"},"plan":{"type":"number"},"status":{"type":"number"},"template":{"type":"number"}},"required":["id","items"],"type":"object"}},"gcore:index/getFastedgeBinary:getFastedgeBinary":{"description":"FastEdge binaries are immutable WebAssembly modules that implement edge application logic.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: gcore:getFastedgeBinary\n      arguments:\n        id: 12345\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFastedgeBinary.\n","properties":{"binaryId":{"type":"number"}},"type":"object","required":["binaryId"]},"outputs":{"description":"A collection of values returned by getFastedgeBinary.\n","properties":{"apiType":{"type":"string"},"binaryId":{"type":"number"},"checksum":{"type":"string"},"id":{"type":"number"},"source":{"type":"number"},"status":{"type":"number"},"unrefSince":{"type":"string"}},"required":["apiType","binaryId","checksum","id","source","status","unrefSince"],"type":"object"}},"gcore:index/getFastedgeSecret:getFastedgeSecret":{"description":"FastEdge secrets store sensitive values such as API keys and tokens that can be referenced by FastEdge applications.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleFastedgeSecret = gcore.getFastedgeSecret({\n    secretId: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_fastedge_secret = gcore.get_fastedge_secret(secret_id=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleFastedgeSecret = Gcore.GetFastedgeSecret.Invoke(new()\n    {\n        SecretId = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupFastedgeSecret(ctx, \u0026gcore.LookupFastedgeSecretArgs{\n\t\t\tSecretId: 0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetFastedgeSecretArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleFastedgeSecret = GcoreFunctions.getFastedgeSecret(GetFastedgeSecretArgs.builder()\n            .secretId(0)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleFastedgeSecret:\n    fn::invoke:\n      function: gcore:getFastedgeSecret\n      arguments:\n        secretId: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFastedgeSecret.\n","properties":{"secretId":{"type":"number"}},"type":"object","required":["secretId"]},"outputs":{"description":"A collection of values returned by getFastedgeSecret.\n","properties":{"appCount":{"description":"The number of applications that use this secret.\n","type":"number"},"comment":{"description":"A description or comment about the secret.\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"number"},"name":{"description":"The unique name of the secret.\n","type":"string"},"secretId":{"type":"number"},"secretSlots":{"description":"A list of secret slots associated with this secret.\n","items":{"$ref":"#/types/gcore:index%2FgetFastedgeSecretSecretSlot:getFastedgeSecretSecretSlot"},"type":"array"}},"required":["appCount","comment","id","name","secretId","secretSlots"],"type":"object"}},"gcore:index/getWaapDomain:getWaapDomain":{"description":"WAAP domains enable Web Application and API Protection for monitoring and defending web applications against security threats.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleWaapDomain = gcore.getWaapDomain({\n    domainId: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_waap_domain = gcore.get_waap_domain(domain_id=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleWaapDomain = Gcore.GetWaapDomain.Invoke(new()\n    {\n        DomainId = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.LookupWaapDomain(ctx, \u0026gcore.LookupWaapDomainArgs{\n\t\t\tDomainId: 1,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetWaapDomainArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleWaapDomain = GcoreFunctions.getWaapDomain(GetWaapDomainArgs.builder()\n            .domainId(1)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleWaapDomain:\n    fn::invoke:\n      function: gcore:getWaapDomain\n      arguments:\n        domainId: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getWaapDomain.\n","properties":{"domainId":{"type":"number","description":"The domain ID\n"}},"type":"object","required":["domainId"]},"outputs":{"description":"A collection of values returned by getWaapDomain.\n","properties":{"createdAt":{"description":"The date and time the domain was created in ISO 8601 format\n","type":"string"},"customPageSet":{"description":"The ID of the custom page set\n","type":"number"},"domainId":{"description":"The domain ID\n","type":"number"},"id":{"description":"The domain ID\n","type":"number"},"name":{"description":"The domain name\n","type":"string"},"quotas":{"additionalProperties":{"$ref":"#/types/gcore:index%2FgetWaapDomainQuotas:getWaapDomainQuotas"},"description":"Domain level quotas\n","type":"object"},"status":{"description":"The different statuses a domain can have\nAvailable values: \"active\", \"bypass\", \"monitor\", \"locked\".\n","type":"string"}},"required":["createdAt","customPageSet","domainId","id","name","quotas","status"],"type":"object"}},"gcore:index/getWaapDomains:getWaapDomains":{"description":"WAAP domains enable Web Application and API Protection for monitoring and defending web applications against security threats.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst exampleWaapDomains = gcore.getWaapDomains({\n    ids: [1],\n    name: \"*example.com\",\n    ordering: \"id\",\n    status: \"active\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_waap_domains = gcore.get_waap_domains(ids=[1],\n    name=\"*example.com\",\n    ordering=\"id\",\n    status=\"active\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleWaapDomains = Gcore.GetWaapDomains.Invoke(new()\n    {\n        Ids = new[]\n        {\n            1,\n        },\n        Name = \"*example.com\",\n        Ordering = \"id\",\n        Status = \"active\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/v2/gcore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gcore.GetWaapDomains(ctx, \u0026gcore.GetWaapDomainsArgs{\n\t\t\tIds: []float64{\n\t\t\t\t1,\n\t\t\t},\n\t\t\tName:     pulumi.StringRef(\"*example.com\"),\n\t\t\tOrdering: pulumi.StringRef(\"id\"),\n\t\t\tStatus:   pulumi.StringRef(\"active\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetWaapDomainsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleWaapDomains = GcoreFunctions.getWaapDomains(GetWaapDomainsArgs.builder()\n            .ids(1)\n            .name(\"*example.com\")\n            .ordering(\"id\")\n            .status(\"active\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleWaapDomains:\n    fn::invoke:\n      function: gcore:getWaapDomains\n      arguments:\n        ids:\n          - 1\n        name: '*example.com'\n        ordering: id\n        status: active\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getWaapDomains.\n","properties":{"ids":{"type":"array","items":{"type":"number"},"description":"Filter domains based on their IDs\n"},"maxItems":{"type":"number","description":"Max items to fetch, default: 1000\n"},"name":{"type":"string","description":"Filter domains based on the domain name. Supports '*' as a wildcard character\n"},"ordering":{"type":"string","description":"Sort the response by given field.\nAvailable values: \"id\", \"name\", \"status\", \"created*at\", \"-id\", \"-name\", \"-status\", \"-created*at\".\n"},"status":{"type":"string","description":"Filter domains based on the domain status\nAvailable values: \"active\", \"bypass\", \"monitor\", \"locked\".\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getWaapDomains.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"Filter domains based on their IDs\n","items":{"type":"number"},"type":"array"},"items":{"description":"The items returned by the data source\n","items":{"$ref":"#/types/gcore:index%2FgetWaapDomainsItem:getWaapDomainsItem"},"type":"array"},"maxItems":{"description":"Max items to fetch, default: 1000\n","type":"number"},"name":{"description":"Filter domains based on the domain name. Supports '*' as a wildcard character\n","type":"string"},"ordering":{"description":"Sort the response by given field.\nAvailable values: \"id\", \"name\", \"status\", \"created*at\", \"-id\", \"-name\", \"-status\", \"-created*at\".\n","type":"string"},"status":{"description":"Filter domains based on the domain status\nAvailable values: \"active\", \"bypass\", \"monitor\", \"locked\".\n","type":"string"}},"required":["id","items"],"type":"object"}},"pulumi:providers:gcore/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"$ref":"#/resources/pulumi:providers:gcore"}},"type":"object","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}}},"parameterization":{"baseProvider":{"name":"terraform-provider","version":"1.0.1"},"parameter":"eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2ctY29yZS9nY29yZSIsInZlcnNpb24iOiIyLjAuMC1hbHBoYS4yIn19"}}