{"name":"gcore","version":"0.32.8","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/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":{"apiEndpoint":{"type":"string","description":"A single API endpoint for all products. Will be used when specific product API url is not defined. Can also be set with the GCORE_API_ENDPOINT environment variable."},"gcoreApi":{"type":"string","description":"Region API.","deprecationMessage":"Deprecated"},"gcoreCdnApi":{"type":"string","description":"CDN API (define only if you want to override CDN API endpoint). Can also be set with the GCORE_CDN_API environment variable."},"gcoreClientId":{"type":"string","description":"Client ID. Can also be set with the GCORE_CLIENT_ID environment variable."},"gcoreCloudApi":{"type":"string","description":"Region API (define only if you want to override Region API endpoint). Can also be set with the GCORE_CLOUD_API environment variable."},"gcoreDnsApi":{"type":"string","description":"DNS API (define only if you want to override DNS API endpoint). Can also be set with the GCORE_DNS_API environment variable."},"gcoreFastedgeApi":{"type":"string","description":"FastEdge API (define only if you want to override FastEdge API endpoint). Can also be set with the GCORE_FASTEDGE_API environment variable."},"gcorePlatform":{"type":"string","description":"Platform URL is used for generate JWT.","deprecationMessage":"Deprecated"},"gcorePlatformApi":{"type":"string","description":"Platform URL is used for generate JWT (define only if you want to override Platform API endpoint). Can also be set with the GCORE_PLATFORM_API environment variable."},"gcoreStorageApi":{"type":"string","description":"Storage API (define only if you want to override Storage API endpoint). Can also be set with the GCORE_STORAGE_API environment variable."},"gcoreWaapApi":{"type":"string","description":"WAAP API (define only if you want to override WAAP API endpoint). Can also be set with the GCORE_WAAP_API environment variable."},"ignoreCredsAuthError":{"type":"boolean","description":"Should be set to true when you are gonna to use storage resource with permanent API-token only.","deprecationMessage":"Deprecated"},"password":{"type":"string","description":"Gcore account password. Can also be set with the GCORE_PASSWORD environment variable.","deprecationMessage":"Deprecated"},"permanentApiToken":{"type":"string","description":"A permanent [API-token](https://gcore.com/docs/account-settings/create-use-or-delete-a-permanent-api-token). Can also be set with the GCORE_PERMANENT_TOKEN environment variable.","secret":true},"userName":{"type":"string","description":"Gcore account username. Can also be set with the GCORE_USERNAME environment variable.","deprecationMessage":"Deprecated"}}},"types":{"gcore:index/AiClusterAttachedInterface:AiClusterAttachedInterface":{"properties":{"ipAddress":{"type":"string"},"networkId":{"type":"string"},"portId":{"type":"string"},"subnetId":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["ipAddress","networkId","portId","subnetId","type"]},"gcore:index/AiClusterInterface:AiClusterInterface":{"properties":{"networkId":{"type":"string","description":"Network ID the interface belongs to. Required for external type.\n"},"portId":{"type":"string","description":"Port is assigned to IP address from the subnet\n","deprecationMessage":"Deprecated"},"subnetId":{"type":"string","description":"Subnet ID the subnet belongs to. Port will be plugged in this subnet. Required for subnet type.\n"},"type":{"type":"string","description":"Network type only available values are 'external' and 'subnet'\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["networkId","subnetId","type"]}}},"gcore:index/AiClusterPoplarServer:AiClusterPoplarServer":{"properties":{"addresses":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterPoplarServerAddress:AiClusterPoplarServerAddress"}},"creatorTaskId":{"type":"string"},"flavor":{"type":"object","additionalProperties":{"type":"string"}},"flavorId":{"type":"string"},"instanceCreated":{"type":"string"},"instanceDescription":{"type":"string"},"instanceId":{"type":"string"},"instanceName":{"type":"string"},"metadata":{"type":"object","additionalProperties":{"type":"string"}},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterPoplarServerSecurityGroup:AiClusterPoplarServerSecurityGroup"}},"status":{"type":"string"},"taskId":{"type":"string"},"taskState":{"type":"string"},"vmState":{"type":"string"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterPoplarServerVolume:AiClusterPoplarServerVolume"}}},"type":"object","required":["addresses","creatorTaskId","flavor","flavorId","instanceCreated","instanceDescription","instanceId","instanceName","metadata","securityGroups","status","taskId","taskState","vmState","volumes"]},"gcore:index/AiClusterPoplarServerAddress:AiClusterPoplarServerAddress":{"properties":{"addresses":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterPoplarServerAddressAddress:AiClusterPoplarServerAddressAddress"}},"networkName":{"type":"string"}},"type":"object","required":["addresses","networkName"]},"gcore:index/AiClusterPoplarServerAddressAddress:AiClusterPoplarServerAddressAddress":{"properties":{"addr":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["addr","type"]},"gcore:index/AiClusterPoplarServerSecurityGroup:AiClusterPoplarServerSecurityGroup":{"properties":{"name":{"type":"string"}},"type":"object","required":["name"]},"gcore:index/AiClusterPoplarServerVolume:AiClusterPoplarServerVolume":{"properties":{"deleteOnTermination":{"type":"boolean"},"id":{"type":"string"}},"type":"object","required":["deleteOnTermination","id"]},"gcore:index/AiClusterSecurityGroup:AiClusterSecurityGroup":{"properties":{"id":{"type":"string","description":"Security group ID\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id"]}}},"gcore:index/AiClusterVolume:AiClusterVolume":{"properties":{"attachments":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterVolumeAttachment:AiClusterVolumeAttachment"},"description":"Attachment list\n"},"createdAt":{"type":"string","description":"Datetime when the volume was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"imageId":{"type":"string","description":"Volume ID. Mandatory if volume is pre-existing volume\n"},"name":{"type":"string","description":"Volume name\n"},"size":{"type":"number","description":"Volume size, GiB\n"},"source":{"type":"string","description":"Currently available only value\n"},"status":{"type":"string","description":"Volume status\n"},"updatedAt":{"type":"string","description":"Datetime when the volume was last updated\n"},"volumeId":{"type":"string","description":"Volume ID\n"},"volumeImageMetadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Image information for volumes that were created from image\n"},"volumeType":{"type":"string","description":"Volume type\n"}},"type":"object","required":["imageId"],"language":{"nodejs":{"requiredOutputs":["createdAt","creatorTaskId","imageId","name","source","status","updatedAt","volumeId","volumeImageMetadata","volumeType"]}}},"gcore:index/AiClusterVolumeAttachment:AiClusterVolumeAttachment":{"properties":{"attachedAt":{"type":"string","description":"Attachment creation datetime\n"},"attachmentId":{"type":"string","description":"ID of attachment object\n"},"device":{"type":"string","description":"Block device name in guest\n"},"instanceName":{"type":"string","description":"Instance name (if attached and server name is known)\n"},"serverId":{"type":"string","description":"Instance ID\n"},"volumeId":{"type":"string","description":"Volume ID\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["attachedAt","attachmentId","device","instanceName","serverId","volumeId"]}}},"gcore:index/BaremetalAddress:BaremetalAddress":{"properties":{"nets":{"type":"array","items":{"$ref":"#/types/gcore:index%2FBaremetalAddressNet:BaremetalAddressNet"}}},"type":"object","required":["nets"]},"gcore:index/BaremetalAddressNet:BaremetalAddressNet":{"properties":{"addr":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["addr","type"]},"gcore:index/BaremetalInterface:BaremetalInterface":{"properties":{"existingFipId":{"type":"string","description":"The ID of the existing floating IP that will be attached to the interface\n"},"fipSource":{"type":"string","description":"The source of floating IP. Can be 'new' or 'existing'\n"},"ipAddress":{"type":"string","description":"The IP address for the interface\n"},"isParent":{"type":"boolean","description":"Indicates whether this interface is the parent. If not set will be calculated after creation. Trunk interface always attached first. Can't detach interface if\u003cspan pulumi-lang-nodejs=\" isParent \" pulumi-lang-dotnet=\" IsParent \" pulumi-lang-go=\" isParent \" pulumi-lang-python=\" is_parent \" pulumi-lang-yaml=\" isParent \" pulumi-lang-java=\" isParent \"\u003e is_parent \u003c/span\u003etrue. Fields affect only on creation\n"},"networkId":{"type":"string","description":"The network ID to attach the interface to. Required if type is 'subnet' or 'any_subnet'\n"},"order":{"type":"number","description":"Order of attaching interface. Trunk (parent) interface always attached first, fields affect only on creation\n"},"portId":{"type":"string","description":"The port ID for reserved fixed IP. Required if type is  'reserved*fixed*ip'\n"},"subnetId":{"type":"string","description":"The subnet ID to attach the interface to. Required if type is 'subnet'\n"},"type":{"type":"string","description":"The type of the network interface. Available value is 'subnet', 'any*subnet', 'external', 'reserved*fixed_ip'\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["ipAddress","isParent","networkId","portId","subnetId","type"]}}},"gcore:index/BaremetalMetadata:BaremetalMetadata":{"properties":{"key":{"type":"string","description":"Metadata key\n"},"value":{"type":"string","description":"Metadata value\n"}},"type":"object","required":["key","value"]},"gcore:index/BaremetalTimeouts:BaremetalTimeouts":{"properties":{"create":{"type":"string"}},"type":"object"},"gcore:index/CdnClientConfigService:CdnClientConfigService":{"properties":{"enabled":{"type":"boolean"},"status":{"type":"string"},"updated":{"type":"string"}},"type":"object","required":["enabled","status","updated"]},"gcore:index/CdnLogsUploaderTargetConfig:CdnLogsUploaderTargetConfig":{"properties":{"ftp":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfigFtp:CdnLogsUploaderTargetConfigFtp"},"http":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfigHttp:CdnLogsUploaderTargetConfigHttp"},"s3Amazon":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfigS3Amazon:CdnLogsUploaderTargetConfigS3Amazon"},"s3Gcore":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfigS3Gcore:CdnLogsUploaderTargetConfigS3Gcore"},"s3Oss":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfigS3Oss:CdnLogsUploaderTargetConfigS3Oss"},"s3Other":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfigS3Other:CdnLogsUploaderTargetConfigS3Other"},"s3V1":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfigS3V1:CdnLogsUploaderTargetConfigS3V1"},"sftp":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfigSftp:CdnLogsUploaderTargetConfigSftp"}},"type":"object"},"gcore:index/CdnLogsUploaderTargetConfigFtp:CdnLogsUploaderTargetConfigFtp":{"properties":{"directory":{"type":"string","description":"Directory on the FTP server where logs will be uploaded.\n"},"hostname":{"type":"string","description":"Hostname or IP address of the FTP server.\n"},"password":{"type":"string","description":"Password for the FTP account.\n","secret":true},"timeoutSeconds":{"type":"number","description":"Timeout for the FTP connection in seconds. Default value is 10.\n"},"user":{"type":"string","description":"Username for the FTP account.\n"}},"type":"object","required":["hostname","password","user"]},"gcore:index/CdnLogsUploaderTargetConfigHttp:CdnLogsUploaderTargetConfigHttp":{"properties":{"append":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfigHttpAppend:CdnLogsUploaderTargetConfigHttpAppend","description":"Append action configuration.\n"},"auth":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfigHttpAuth:CdnLogsUploaderTargetConfigHttpAuth","description":"Authentication configuration for HTTP target.\n"},"contentType":{"type":"string","description":"Content type of the logs being uploaded. Supported values are 'json' and 'text'.\n"},"retry":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfigHttpRetry:CdnLogsUploaderTargetConfigHttpRetry","description":"Retry action configuration.\n"},"upload":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfigHttpUpload:CdnLogsUploaderTargetConfigHttpUpload","description":"Upload action configuration.\n"}},"type":"object","required":["upload"]},"gcore:index/CdnLogsUploaderTargetConfigHttpAppend:CdnLogsUploaderTargetConfigHttpAppend":{"properties":{"headers":{"type":"object","additionalProperties":{"type":"string"}},"method":{"type":"string","description":"HTTP method to use for the request. Supported values are 'POST' and 'PUT'.\n"},"responseActions":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfigHttpAppendResponseAction:CdnLogsUploaderTargetConfigHttpAppendResponseAction"},"description":"List of actions to perform based on the response from the server.\n"},"timeoutSeconds":{"type":"number","description":"Timeout for the HTTP request in seconds. Default value is 30.\n"},"url":{"type":"string","description":"URL to which logs should be uploaded.\n"},"useCompression":{"type":"boolean","description":"Default value is false.\n"}},"type":"object","required":["url"]},"gcore:index/CdnLogsUploaderTargetConfigHttpAppendResponseAction:CdnLogsUploaderTargetConfigHttpAppendResponseAction":{"properties":{"action":{"type":"string","description":"Action to perform if the response matches the specified criteria. Supported values are 'drop', 'retry', and 'append'.\n"},"description":{"type":"string","description":"Default value is empty string.\n"},"matchPayload":{"type":"string","description":"Payload to match in the response. If not specified, no payload will be matched.\n"},"matchStatusCode":{"type":"number","description":"HTTP status code to match. If not specified, no status code will be matched.\n"}},"type":"object","required":["action"]},"gcore:index/CdnLogsUploaderTargetConfigHttpAuth:CdnLogsUploaderTargetConfigHttpAuth":{"properties":{"config":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfigHttpAuthConfig:CdnLogsUploaderTargetConfigHttpAuthConfig","description":"Configuration for the authentication type.\n"},"type":{"type":"string","description":"Type of authentication. Supported values are 'token'.\n"}},"type":"object","required":["config","type"]},"gcore:index/CdnLogsUploaderTargetConfigHttpAuthConfig:CdnLogsUploaderTargetConfigHttpAuthConfig":{"properties":{"headerName":{"type":"string","description":"Name of the header to which the token will be added.\n"},"token":{"type":"string","description":"Token to be used for authentication.\n","secret":true}},"type":"object","required":["headerName","token"]},"gcore:index/CdnLogsUploaderTargetConfigHttpRetry:CdnLogsUploaderTargetConfigHttpRetry":{"properties":{"headers":{"type":"object","additionalProperties":{"type":"string"}},"method":{"type":"string","description":"HTTP method to use for the request. Supported values are 'POST' and 'PUT'.\n"},"responseActions":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfigHttpRetryResponseAction:CdnLogsUploaderTargetConfigHttpRetryResponseAction"},"description":"List of actions to perform based on the response from the server.\n"},"timeoutSeconds":{"type":"number","description":"Timeout for the HTTP request in seconds. Default value is 30.\n"},"url":{"type":"string","description":"URL to which logs should be uploaded.\n"},"useCompression":{"type":"boolean","description":"Default value is false.\n"}},"type":"object","required":["url"]},"gcore:index/CdnLogsUploaderTargetConfigHttpRetryResponseAction:CdnLogsUploaderTargetConfigHttpRetryResponseAction":{"properties":{"action":{"type":"string","description":"Action to perform if the response matches the specified criteria. Supported values are 'drop', 'retry', and 'append'.\n"},"description":{"type":"string","description":"Default value is empty string.\n"},"matchPayload":{"type":"string","description":"Payload to match in the response. If not specified, no payload will be matched.\n"},"matchStatusCode":{"type":"number","description":"HTTP status code to match. If not specified, no status code will be matched.\n"}},"type":"object","required":["action"]},"gcore:index/CdnLogsUploaderTargetConfigHttpUpload:CdnLogsUploaderTargetConfigHttpUpload":{"properties":{"headers":{"type":"object","additionalProperties":{"type":"string"}},"method":{"type":"string","description":"HTTP method to use for the request. Supported values are 'POST' and 'PUT'.\n"},"responseActions":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfigHttpUploadResponseAction:CdnLogsUploaderTargetConfigHttpUploadResponseAction"},"description":"List of actions to perform based on the response from the server.\n"},"timeoutSeconds":{"type":"number","description":"Timeout for the HTTP request in seconds. Default value is 30.\n"},"url":{"type":"string","description":"URL to which logs should be uploaded.\n"},"useCompression":{"type":"boolean","description":"Default value is false.\n"}},"type":"object","required":["url"]},"gcore:index/CdnLogsUploaderTargetConfigHttpUploadResponseAction:CdnLogsUploaderTargetConfigHttpUploadResponseAction":{"properties":{"action":{"type":"string","description":"Action to perform if the response matches the specified criteria. Supported values are 'drop', 'retry', and 'append'.\n"},"description":{"type":"string","description":"Default value is empty string.\n"},"matchPayload":{"type":"string","description":"Payload to match in the response. If not specified, no payload will be matched.\n"},"matchStatusCode":{"type":"number","description":"HTTP status code to match. If not specified, no status code will be matched.\n"}},"type":"object","required":["action"]},"gcore:index/CdnLogsUploaderTargetConfigS3Amazon:CdnLogsUploaderTargetConfigS3Amazon":{"properties":{"accessKeyId":{"type":"string","description":"Access key ID for the Amazon S3 account.\n"},"bucketName":{"type":"string","description":"Name of the Amazon S3 bucket.\n"},"directory":{"type":"string","description":"Directory in the Amazon S3 bucket where logs will be uploaded.\n"},"region":{"type":"string","description":"Region of the Amazon S3 bucket.\n"},"secretAccessKey":{"type":"string","description":"Secret access key for the Amazon S3 account.\n","secret":true}},"type":"object","required":["accessKeyId","bucketName","region","secretAccessKey"]},"gcore:index/CdnLogsUploaderTargetConfigS3Gcore:CdnLogsUploaderTargetConfigS3Gcore":{"properties":{"accessKeyId":{"type":"string","description":"Access key ID for the S3-compatible storage account.\n"},"bucketName":{"type":"string","description":"Name of the S3-compatible storage bucket.\n"},"directory":{"type":"string","description":"Directory in the S3-compatible storage bucket where logs will be uploaded.\n"},"endpoint":{"type":"string","description":"Endpoint of the S3-compatible storage service.\n"},"region":{"type":"string","description":"Region of the S3-compatible storage bucket.\n"},"secretAccessKey":{"type":"string","description":"Secret access key for the S3-compatible storage account.\n","secret":true},"usePathStyle":{"type":"boolean","description":"Default value is true.\n"}},"type":"object","required":["accessKeyId","bucketName","endpoint","region","secretAccessKey"]},"gcore:index/CdnLogsUploaderTargetConfigS3Oss:CdnLogsUploaderTargetConfigS3Oss":{"properties":{"accessKeyId":{"type":"string","description":"Access key ID for the OSS account.\n"},"bucketName":{"type":"string","description":"Name of the OSS bucket.\n"},"directory":{"type":"string","description":"Directory in the OSS bucket where logs will be uploaded.\n"},"region":{"type":"string","description":"Region of the OSS bucket.\n"},"secretAccessKey":{"type":"string","description":"Secret access key for the OSS account.\n","secret":true}},"type":"object","required":["accessKeyId","bucketName","secretAccessKey"]},"gcore:index/CdnLogsUploaderTargetConfigS3Other:CdnLogsUploaderTargetConfigS3Other":{"properties":{"accessKeyId":{"type":"string","description":"Access key ID for the S3-compatible storage account.\n"},"bucketName":{"type":"string","description":"Name of the S3-compatible storage bucket.\n"},"directory":{"type":"string","description":"Directory in the S3-compatible storage bucket where logs will be uploaded.\n"},"endpoint":{"type":"string","description":"Endpoint of the S3-compatible storage service.\n"},"region":{"type":"string","description":"Region of the S3-compatible storage bucket.\n"},"secretAccessKey":{"type":"string","description":"Secret access key for the S3-compatible storage account.\n","secret":true},"usePathStyle":{"type":"boolean","description":"Default value is true.\n"}},"type":"object","required":["accessKeyId","bucketName","endpoint","region","secretAccessKey"]},"gcore:index/CdnLogsUploaderTargetConfigS3V1:CdnLogsUploaderTargetConfigS3V1":{"properties":{"accessKeyId":{"type":"string","description":"Access key ID for the S3-compatible storage account.\n"},"bucketName":{"type":"string","description":"Name of the S3-compatible storage bucket.\n"},"directory":{"type":"string","description":"Directory in the S3-compatible storage bucket where logs will be uploaded.\n"},"endpoint":{"type":"string","description":"Endpoint of the S3-compatible storage service.\n"},"region":{"type":"string","description":"Region of the S3-compatible storage bucket.\n"},"secretAccessKey":{"type":"string","description":"Secret access key for the S3-compatible storage account.\n","secret":true},"usePathStyle":{"type":"boolean","description":"Default value is true.\n"}},"type":"object","required":["accessKeyId","bucketName","endpoint","region","secretAccessKey"]},"gcore:index/CdnLogsUploaderTargetConfigSftp:CdnLogsUploaderTargetConfigSftp":{"properties":{"directory":{"type":"string","description":"Directory on the SFTP server where logs will be uploaded.\n"},"hostname":{"type":"string","description":"Hostname or IP address of the SFTP server.\n"},"keyPassphrase":{"type":"string","description":"Passphrase for the private key.\n","secret":true},"password":{"type":"string","description":"Password for the SFTP account.\n","secret":true},"privateKey":{"type":"string","description":"Private key for the SFTP account.\n","secret":true},"timeoutSeconds":{"type":"number","description":"Timeout for the SFTP connection in seconds. Default value is 10.\n"},"user":{"type":"string","description":"Username for the SFTP account.\n"}},"type":"object","required":["hostname","user"]},"gcore:index/CdnOrigingroupAuth:CdnOrigingroupAuth":{"properties":{"s3AccessKeyId":{"type":"string","description":"Access key ID for the S3 storage\n","secret":true},"s3BucketName":{"type":"string","description":"Bucket name of the S3 storage\n"},"s3Region":{"type":"string","description":"Region of the S3 storage, 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\u003eis 'amazon'\n"},"s3SecretAccessKey":{"type":"string","description":"Secret access key for the S3 storage\n","secret":true},"s3StorageHostname":{"type":"string","description":"Hostname of the S3 storage, 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\u003eis 'other'\n"},"s3Type":{"type":"string","description":"Type of the S3 storage, accepted values: 'other' or 'amazon'\n"}},"type":"object","required":["s3AccessKeyId","s3BucketName","s3SecretAccessKey","s3Type"]},"gcore:index/CdnOrigingroupOrigin:CdnOrigingroupOrigin":{"properties":{"backup":{"type":"boolean","description":"true — The option is active. The origin will not be used until one of active origins become unavailable. false — The option is disabled.\n"},"enabled":{"type":"boolean","description":"The setting allows to enable or disable an Origin source in the Origins group\n"},"source":{"type":"string","description":"IP address or Domain name of your origin and the port if custom\n"}},"type":"object","required":["source"]},"gcore:index/CdnResourceOptions:CdnResourceOptions":{"properties":{"allowedHttpMethods":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsAllowedHttpMethods:CdnResourceOptionsAllowedHttpMethods","description":"Specify allowed HTTP methods.\n"},"brotliCompression":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsBrotliCompression:CdnResourceOptionsBrotliCompression","description":"Brotli compression option allows to compress content with brotli on the CDN's end. CDN servers will request only uncompressed content from the origin.\n"},"browserCacheSettings":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsBrowserCacheSettings:CdnResourceOptionsBrowserCacheSettings","description":"Specify the cache expiration time for customers' browsers in seconds.\n"},"cors":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsCors:CdnResourceOptionsCors","description":"CORS header support option adds the Access-Control-Allow-Origin header to responses from CDN servers.\n"},"countryAcl":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsCountryAcl:CdnResourceOptionsCountryAcl","description":"Country access policy enables control access to content for specified countries.\n"},"disableProxyForceRanges":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsDisableProxyForceRanges:CdnResourceOptionsDisableProxyForceRanges","description":"The option allows getting 206 responses regardless settings of an origin source. Enabled by default.\n"},"edgeCacheSettings":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsEdgeCacheSettings:CdnResourceOptionsEdgeCacheSettings","description":"The cache expiration time for CDN servers.\n"},"fastedge":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsFastedge:CdnResourceOptionsFastedge","description":"Allows to configure FastEdge app to be called on different request/response phases.\n"},"fetchCompressed":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsFetchCompressed:CdnResourceOptionsFetchCompressed","description":"Option allows to enable fetch compressed. CDN request and cache already compressed content. Your server should support compression. CDN servers will not ungzip your content even if a user's browser doesn't accept compression (nowadays almost all browsers support it).\n"},"followOriginRedirect":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsFollowOriginRedirect:CdnResourceOptionsFollowOriginRedirect","description":"Enable redirection from origin. If 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":"Allows to apply custom HTTP code to the CDN content. Specify HTTP-code you need and text or URL if you are going to set up redirect.\n"},"forwardHostHeader":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsForwardHostHeader:CdnResourceOptionsForwardHostHeader","description":"When a CDN requests content from an origin server, the option allows to forward the Host header used in the request made to a CDN.\n"},"gzipOn":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsGzipOn:CdnResourceOptionsGzipOn","description":"GZip compression option allows to compress content with gzip on the CDN`s end. CDN servers will request only uncompressed content from the origin.\n"},"hostHeader":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsHostHeader:CdnResourceOptionsHostHeader","description":"Option allows to set Host header that CDN servers use when request content from an origin server. Your server must be able to process requests with the chosen header. If the option is NULL, Host Header value is taken from the parent CDN resource's value.\n"},"http3Enabled":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsHttp3Enabled:CdnResourceOptionsHttp3Enabled","description":"Use HTTP/3 protocol for content delivery if supported by the end users browser.\n"},"ignoreCookie":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsIgnoreCookie:CdnResourceOptionsIgnoreCookie","description":"By default, files pulled from an origin source with cookies are not cached in a CDN. Enable this option to cache such objects.\n"},"ignoreQueryString":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsIgnoreQueryString:CdnResourceOptionsIgnoreQueryString","description":"Ignore query string option determines how files with different query strings will be cached: either as one object (option is enabled) or as different objects (option is disabled).\n"},"imageStack":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsImageStack:CdnResourceOptionsImageStack","description":"Image stack option allows transforming JPG and PNG images (such as resizing or cropping) and automatically converting them to WebP or AVIF format. It is a paid option.\n"},"ipAddressAcl":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsIpAddressAcl:CdnResourceOptionsIpAddressAcl","description":"IP access policy option allows to control access to the CDN Resource content for specific IP addresses.\n"},"limitBandwidth":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsLimitBandwidth:CdnResourceOptionsLimitBandwidth","description":"The option allows to control the download speed per connection.\n"},"proxyCacheKey":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsProxyCacheKey:CdnResourceOptionsProxyCacheKey","description":"The option allows to modify the cache key. If omitted, the default value is $request*uri. 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":"Allows caching for GET, HEAD and POST requests.\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. If no response is received within this time, the connection will be closed.\n"},"queryParamsBlacklist":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsQueryParamsBlacklist:CdnResourceOptionsQueryParamsBlacklist","description":"Specify list of query strings. Files with those query strings will be cached as one object.\n"},"queryParamsWhitelist":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsQueryParamsWhitelist:CdnResourceOptionsQueryParamsWhitelist","description":"Specify list of query strings. Files with those query strings will be cached as different objects.\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.\n"},"redirectHttpToHttps":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsRedirectHttpToHttps:CdnResourceOptionsRedirectHttpToHttps","description":"When enabled, HTTP requests are redirected to HTTPS.\n"},"redirectHttpsToHttp":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsRedirectHttpsToHttp:CdnResourceOptionsRedirectHttpsToHttp","description":"When enabled, HTTPS requests are redirected to HTTP.\n"},"referrerAcl":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsReferrerAcl:CdnResourceOptionsReferrerAcl","description":"Referrer access policy option allows to control access to the CDN Resource content for specified domain names.\n"},"requestLimiter":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsRequestLimiter:CdnResourceOptionsRequestLimiter","description":"It allows to limit the amount of HTTP requests\n"},"responseHeadersHidingPolicy":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsResponseHeadersHidingPolicy:CdnResourceOptionsResponseHeadersHidingPolicy","description":"Define HTTP headers (specified at an origin server) that a CDN server hides from the response.\n"},"rewrite":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsRewrite:CdnResourceOptionsRewrite","description":"Rewrite option changes and redirects the requests from the CDN to the origin. It operates according to the Nginx configuration.\n"},"secureKey":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsSecureKey:CdnResourceOptionsSecureKey","description":"The option allows configuring an access with tokenized URLs. It makes impossible to access content without a valid (unexpired) hash key. When enabled, you need to specify a key that you use to generate a token.\n"},"slice":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsSlice:CdnResourceOptionsSlice","description":"When enabled, files larger than 10 MB are requested and cached in parts (no larger than 10 MB each). It reduces time to first byte. The origin must support HTTP Range requests.\n"},"sni":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsSni:CdnResourceOptionsSni","description":"Specify the SNI (Server Name Indication). SNI (Server Name Indication) is generally only required if your origin is using shared hosting or does not have a dedicated IP address. If the origin server presents multiple certificates, SNI allows the origin server to know which certificate to use for the connection. The option works only if originProtocol parameter is HTTPS or MATCH.\n"},"stale":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsStale:CdnResourceOptionsStale","description":"The list of errors which Always Online option is applied for.\n"},"staticRequestHeaders":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsStaticRequestHeaders:CdnResourceOptionsStaticRequestHeaders","description":"Specify custom HTTP Headers for a CDN server to add to request.\n"},"staticResponseHeaders":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsStaticResponseHeaders:CdnResourceOptionsStaticResponseHeaders","description":"Specify custom HTTP Headers that a CDN server adds to a response.\n"},"tlsVersions":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsTlsVersions:CdnResourceOptionsTlsVersions","description":"The option specifies a list of allowed SSL/TLS protocol versions. The list cannot be empty. By default, the option is disabled (all protocols versions are allowed).\n"},"useDefaultLeChain":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsUseDefaultLeChain:CdnResourceOptionsUseDefaultLeChain","description":"The option allows choosing a Let's Encrypt certificate chain. The specified chain will be used during the next Let's Encrypt certificate issue or renewal.\n"},"useDns01LeChallenge":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsUseDns01LeChallenge:CdnResourceOptionsUseDns01LeChallenge","description":"The option allows to enable DNS-01 challenge to issue a Let's Encrypt certificate for the resource. DNS service should be activated to enable this option.\n"},"useRsaLeCert":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsUseRsaLeCert:CdnResourceOptionsUseRsaLeCert","description":"The option allows choosing the RSA Let's Encrypt certificate type for the resource.\n"},"userAgentAcl":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsUserAgentAcl:CdnResourceOptionsUserAgentAcl","description":"User agents policy option allows to control access to the content for specified user-agent.\n"},"waap":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsWaap:CdnResourceOptionsWaap","description":"Option allows to enable WAAP (Web Application and API Protection).\n"},"waf":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsWaf:CdnResourceOptionsWaf","description":"Option allows to enable Basic WAF to protect you against the most common threats.\n"},"websockets":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsWebsockets:CdnResourceOptionsWebsockets","description":"WebSockets option allows WebSockets connections to an origin server.\n"}},"type":"object"},"gcore:index/CdnResourceOptionsAllowedHttpMethods:CdnResourceOptionsAllowedHttpMethods":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"},"description":"Available methods: GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS.\n"}},"type":"object","required":["values"]},"gcore:index/CdnResourceOptionsBrotliCompression:CdnResourceOptionsBrotliCompression":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"},"description":"Specify the content-type for each type of content you wish to have compressed.\n"}},"type":"object","required":["values"]},"gcore:index/CdnResourceOptionsBrowserCacheSettings:CdnResourceOptionsBrowserCacheSettings":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"string","description":"Use '0s' to disable caching. The value applies for a response with codes 200, 201, 204, 206, 301, 302, 303, 304, 307, 308.\n"}},"type":"object"},"gcore:index/CdnResourceOptionsCors:CdnResourceOptionsCors":{"properties":{"always":{"type":"boolean","description":"Specify if the Access-Control-Allow-Origin header should be added to a response from CDN regardless of response code.\n"},"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"},"description":"Specify a value of the Access-Control-Allow-Origin header. Possible values: '*', '$http_origin', 'example.com'.\n"}},"type":"object","required":["values"],"language":{"nodejs":{"requiredOutputs":["always","values"]}}},"gcore:index/CdnResourceOptionsCountryAcl:CdnResourceOptionsCountryAcl":{"properties":{"enabled":{"type":"boolean"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of countries according to ISO-3166-1.\n"},"policyType":{"type":"string","description":"Possible values: allow, deny.\n"}},"type":"object","required":["exceptedValues","policyType"]},"gcore:index/CdnResourceOptionsDisableProxyForceRanges:CdnResourceOptionsDisableProxyForceRanges":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsEdgeCacheSettings:CdnResourceOptionsEdgeCacheSettings":{"properties":{"customValues":{"type":"object","additionalProperties":{"type":"string"},"description":"Specify caching time in seconds ('0s', '600s' for example) for a response with specific response code ('304', '404' for example). Use 'any' to specify caching time for all response codes. Use '0s' to disable caching for a specific response code. These settings have a higher priority than the value field.\n"},"default":{"type":"string","description":"Content will be cached according to origin cache settings. The value applies for a response with codes 200, 201, 204, 206, 301, 302, 303, 304, 307, 308, if an origin server does not have caching HTTP headers. Responses with other codes will not be cached.\n"},"enabled":{"type":"boolean"},"value":{"type":"string","description":"Specify caching time for the response with codes 200, 206, 301, 302. Responses with codes 4xx, 5xx will not be cached. Use '0s' to disable caching. Use\u003cspan pulumi-lang-nodejs=\" customValues \" pulumi-lang-dotnet=\" CustomValues \" pulumi-lang-go=\" customValues \" pulumi-lang-python=\" custom_values \" pulumi-lang-yaml=\" customValues \" pulumi-lang-java=\" customValues \"\u003e custom_values \u003c/span\u003efield to specify a custom caching time for a response with specific codes.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["customValues"]}}},"gcore:index/CdnResourceOptionsFastedge:CdnResourceOptionsFastedge":{"properties":{"enabled":{"type":"boolean"},"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.\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"},"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"]},"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"]},"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"]},"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"]},"gcore:index/CdnResourceOptionsFetchCompressed:CdnResourceOptionsFetchCompressed":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsFollowOriginRedirect:CdnResourceOptionsFollowOriginRedirect":{"properties":{"codes":{"type":"array","items":{"type":"number"},"description":"Specify the redirect status code that the origin server returns. Possible values: 301, 302, 303, 307, 308.\n"},"enabled":{"type":"boolean"}},"type":"object","required":["codes"]},"gcore:index/CdnResourceOptionsForceReturn:CdnResourceOptionsForceReturn":{"properties":{"body":{"type":"string","description":"Response text or URL if you're going to set up redirection. Max length = 100.\n"},"code":{"type":"number","description":"HTTP response status code. Available codes: 100 \u003c= value \u003c= 599. Reserved codes: 408, 444, 477, 494, 495, 496, 497, 499\n"},"enabled":{"type":"boolean"}},"type":"object","required":["code"]},"gcore:index/CdnResourceOptionsForwardHostHeader:CdnResourceOptionsForwardHostHeader":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsGzipOn:CdnResourceOptionsGzipOn":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsHostHeader:CdnResourceOptionsHostHeader":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsHttp3Enabled:CdnResourceOptionsHttp3Enabled":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsIgnoreCookie:CdnResourceOptionsIgnoreCookie":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsIgnoreQueryString:CdnResourceOptionsIgnoreQueryString":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsImageStack:CdnResourceOptionsImageStack":{"properties":{"avifEnabled":{"type":"boolean","description":"If enabled, JPG and PNG images automatically convert to AVIF format when supported by the end users browser.\n"},"enabled":{"type":"boolean"},"pngLossless":{"type":"boolean","description":"Represents compression without quality loss for PNG format.\n"},"quality":{"type":"number","description":"Quality settings for JPG and PNG images. Specify a value from 1 to 100. The higher the value, the better the image quality and the larger the file size after conversion.\n"},"webpEnabled":{"type":"boolean","description":"If enabled, JPG and PNG images automatically convert to WebP format when supported by the end users browser.\n"}},"type":"object","required":["quality"],"language":{"nodejs":{"requiredOutputs":["avifEnabled","pngLossless","quality","webpEnabled"]}}},"gcore:index/CdnResourceOptionsIpAddressAcl:CdnResourceOptionsIpAddressAcl":{"properties":{"enabled":{"type":"boolean"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"Specify list of IP address with a subnet mask.\n"},"policyType":{"type":"string","description":"Possible values: allow, deny.\n"}},"type":"object","required":["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"},"limitType":{"type":"string","description":"The way of controlling the download speed per each connection. Possible values are: static, dynamic.\n"},"speed":{"type":"number","description":"Maximum download speed per connection. Must be greater than 0.\n"}},"type":"object","required":["limitType"],"language":{"nodejs":{"requiredOutputs":["buffer","limitType","speed"]}}},"gcore:index/CdnResourceOptionsProxyCacheKey:CdnResourceOptionsProxyCacheKey":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"string","description":"Key for caching. Should be a combination of the specified variables: $request_uri, $scheme, $uri.\n"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsProxyCacheMethodsSet:CdnResourceOptionsProxyCacheMethodsSet":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsProxyConnectTimeout:CdnResourceOptionsProxyConnectTimeout":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"string","description":"Specify time in seconds ('1s', '30s' for example).\n"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsProxyReadTimeout:CdnResourceOptionsProxyReadTimeout":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"string","description":"Specify time in seconds ('1s', '30s' for example).\n"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsQueryParamsBlacklist:CdnResourceOptionsQueryParamsBlacklist":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"}}},"type":"object","required":["values"]},"gcore:index/CdnResourceOptionsQueryParamsWhitelist:CdnResourceOptionsQueryParamsWhitelist":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"}}},"type":"object","required":["values"]},"gcore:index/CdnResourceOptionsQueryStringForwarding:CdnResourceOptionsQueryStringForwarding":{"properties":{"enabled":{"type":"boolean"},"forwardExceptKeys":{"type":"array","items":{"type":"string"},"description":"Specify the keys that will not be forwarded from playlist files to media chunk files.\n"},"forwardFromFileTypes":{"type":"array","items":{"type":"string"},"description":"Specify the types of playlist files from which parameters will be extracted and forwarded.\n"},"forwardOnlyKeys":{"type":"array","items":{"type":"string"},"description":"Specify the keys that will be forwarded from playlist files to media chunk files.\n"},"forwardToFileTypes":{"type":"array","items":{"type":"string"},"description":"Specify the types of media chunk files to which parameters, extracted from playlist files, will be forwarded.\n"}},"type":"object","required":["forwardFromFileTypes","forwardToFileTypes"]},"gcore:index/CdnResourceOptionsRedirectHttpToHttps:CdnResourceOptionsRedirectHttpToHttps":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsRedirectHttpsToHttp:CdnResourceOptionsRedirectHttpsToHttp":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsReferrerAcl:CdnResourceOptionsReferrerAcl":{"properties":{"enabled":{"type":"boolean"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"Specify list of domain names or wildcard domains (without http:// or https://). For example, example.com or *.example.com.\n"},"policyType":{"type":"string","description":"Possible values: allow, deny.\n"}},"type":"object","required":["exceptedValues","policyType"]},"gcore:index/CdnResourceOptionsRequestLimiter:CdnResourceOptionsRequestLimiter":{"properties":{"burst":{"type":"number"},"delay":{"type":"number"},"enabled":{"type":"boolean"},"rate":{"type":"number"},"rateUnit":{"type":"string"}},"type":"object","required":["burst","rate"]},"gcore:index/CdnResourceOptionsResponseHeadersHidingPolicy:CdnResourceOptionsResponseHeadersHidingPolicy":{"properties":{"enabled":{"type":"boolean"},"excepteds":{"type":"array","items":{"type":"string"},"description":"List of HTTP headers. The following required headers cannot be hidden from response: Connection, Content-Length, Content-Type, Date, Server.\n"},"mode":{"type":"string","description":"Specify a mode of hiding HTTP headers from the response. Possible values are: hide, show.\n"}},"type":"object","required":["excepteds","mode"]},"gcore:index/CdnResourceOptionsRewrite:CdnResourceOptionsRewrite":{"properties":{"body":{"type":"string","description":"The pattern for Rewrite. At least one group should be specified. For Example: /rewrite*from/(.*) /rewrite*to/$1\n"},"enabled":{"type":"boolean"},"flag":{"type":"string","description":"Define flag for the Rewrite option. Possible values: last, break, redirect, permanent.\n"}},"type":"object","required":["body"]},"gcore:index/CdnResourceOptionsSecureKey:CdnResourceOptionsSecureKey":{"properties":{"enabled":{"type":"boolean"},"key":{"type":"string","description":"A key generated on your side that will be used for URL signing.\n"},"type":{"type":"number","description":"Specify the type of URL Signing. It can be either 0 or 2. Type 0 - includes end user's IP to secure token generation. Type 2 - excludes end user's IP from secure token generation.\n"}},"type":"object","required":["key","type"]},"gcore:index/CdnResourceOptionsSlice:CdnResourceOptionsSlice":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsSni:CdnResourceOptionsSni":{"properties":{"customHostname":{"type":"string","description":"Custom SNI hostname. Required if\u003cspan pulumi-lang-nodejs=\" sniType \" pulumi-lang-dotnet=\" SniType \" pulumi-lang-go=\" sniType \" pulumi-lang-python=\" sni_type \" pulumi-lang-yaml=\" sniType \" pulumi-lang-java=\" sniType \"\u003e sni_type \u003c/span\u003eis set to 'custom'.\n"},"enabled":{"type":"boolean"},"sniType":{"type":"string","description":"Specify SNI type. Possible values: dynamic, custom. dynamic - SNI hostname depends on the hostHeader and the forward*host*header options. custom - custom SNI hostname.\n"}},"type":"object"},"gcore:index/CdnResourceOptionsStale:CdnResourceOptionsStale":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"},"description":"Possible values: error, http*403, http*404, http*429, http*500, http*502, http*503, http*504, invalid*header, timeout, updating.\n"}},"type":"object","required":["values"]},"gcore:index/CdnResourceOptionsStaticRequestHeaders:CdnResourceOptionsStaticRequestHeaders":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"object","additionalProperties":{"type":"string"},"description":"Header name is restricted to 255 symbols and can contain latin letters (A-Z, a-z), numbers (0-9), dashes, and underscores. Header value is restricted to 512 symbols and can contain latin letters (a-z), numbers (0-9), spaces, underscores and symbols (-/.:). Space can be used only between words.\n"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsStaticResponseHeaders:CdnResourceOptionsStaticResponseHeaders":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCdnResourceOptionsStaticResponseHeadersValue:CdnResourceOptionsStaticResponseHeadersValue"}}},"type":"object","required":["values"]},"gcore:index/CdnResourceOptionsStaticResponseHeadersValue:CdnResourceOptionsStaticResponseHeadersValue":{"properties":{"always":{"type":"boolean","description":"Specifies if the header will be added to a response from CDN regardless of response code.\n"},"name":{"type":"string","description":"Header name.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Header value.\n"}},"type":"object","required":["name","values"],"language":{"nodejs":{"requiredOutputs":["always","name","values"]}}},"gcore:index/CdnResourceOptionsTlsVersions:CdnResourceOptionsTlsVersions":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"},"description":"Possible values (case sensitive): SSLv3, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3.\n"}},"type":"object","required":["values"]},"gcore:index/CdnResourceOptionsUseDefaultLeChain:CdnResourceOptionsUseDefaultLeChain":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsUseDns01LeChallenge:CdnResourceOptionsUseDns01LeChallenge":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsUseRsaLeCert:CdnResourceOptionsUseRsaLeCert":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsUserAgentAcl:CdnResourceOptionsUserAgentAcl":{"properties":{"enabled":{"type":"boolean"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of User-Agents. Use \"\" to allow/deny access when the User-Agent header is empty.\n"},"policyType":{"type":"string","description":"Possible values: allow, deny.\n"}},"type":"object","required":["exceptedValues","policyType"]},"gcore:index/CdnResourceOptionsWaap:CdnResourceOptionsWaap":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsWaf:CdnResourceOptionsWaf":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnResourceOptionsWebsockets:CdnResourceOptionsWebsockets":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptions:CdnRuleOptions":{"properties":{"allowedHttpMethods":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsAllowedHttpMethods:CdnRuleOptionsAllowedHttpMethods","description":"Specify allowed HTTP methods.\n"},"brotliCompression":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsBrotliCompression:CdnRuleOptionsBrotliCompression","description":"Brotli compression option allows to compress content with brotli on the CDN's end. CDN servers will request only uncompressed content from the origin.\n"},"browserCacheSettings":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsBrowserCacheSettings:CdnRuleOptionsBrowserCacheSettings","description":"Specify the cache expiration time for customers' browsers in seconds.\n"},"cors":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsCors:CdnRuleOptionsCors","description":"CORS header support option adds the Access-Control-Allow-Origin header to responses from CDN servers.\n"},"countryAcl":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsCountryAcl:CdnRuleOptionsCountryAcl","description":"Country access policy enables control access to content for specified countries.\n"},"disableProxyForceRanges":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsDisableProxyForceRanges:CdnRuleOptionsDisableProxyForceRanges","description":"The option allows getting 206 responses regardless settings of an origin source. Enabled by default.\n"},"edgeCacheSettings":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsEdgeCacheSettings:CdnRuleOptionsEdgeCacheSettings","description":"The cache expiration time for CDN servers.\n"},"fastedge":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsFastedge:CdnRuleOptionsFastedge","description":"Allows to configure FastEdge app to be called on different request/response phases.\n"},"fetchCompressed":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsFetchCompressed:CdnRuleOptionsFetchCompressed","description":"Option allows to enable fetch compressed. CDN request and cache already compressed content. Your server should support compression. CDN servers will not ungzip your content even if a user's browser doesn't accept compression (nowadays almost all browsers support it).\n"},"followOriginRedirect":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsFollowOriginRedirect:CdnRuleOptionsFollowOriginRedirect","description":"Enable redirection from origin. If 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%2FCdnRuleOptionsForceReturn:CdnRuleOptionsForceReturn","description":"Allows to apply custom HTTP code to the CDN content. Specify HTTP-code you need and text or URL if you are going to set up redirect.\n"},"forwardHostHeader":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsForwardHostHeader:CdnRuleOptionsForwardHostHeader","description":"When a CDN requests content from an origin server, the option allows to forward the Host header used in the request made to a CDN.\n"},"gzipOn":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsGzipOn:CdnRuleOptionsGzipOn","description":"GZip compression option allows to compress content with gzip on the CDN`s end. CDN servers will request only uncompressed content from the origin.\n"},"hostHeader":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsHostHeader:CdnRuleOptionsHostHeader","description":"Option allows to set Host header that CDN servers use when request content from an origin server. Your server must be able to process requests with the chosen header. If the option is NULL, Host Header value is taken from the parent CDN resource's value.\n"},"ignoreCookie":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsIgnoreCookie:CdnRuleOptionsIgnoreCookie","description":"By default, files pulled from an origin source with cookies are not cached in a CDN. Enable this option to cache such objects.\n"},"ignoreQueryString":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsIgnoreQueryString:CdnRuleOptionsIgnoreQueryString","description":"Ignore query string option determines how files with different query strings will be cached: either as one object (option is enabled) or as different objects (option is disabled).\n"},"imageStack":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsImageStack:CdnRuleOptionsImageStack","description":"Image stack option allows transforming JPG and PNG images (such as resizing or cropping) and automatically converting them to WebP or AVIF format. It is a paid option.\n"},"ipAddressAcl":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsIpAddressAcl:CdnRuleOptionsIpAddressAcl","description":"IP access policy option allows to control access to the CDN Resource content for specific IP addresses.\n"},"limitBandwidth":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsLimitBandwidth:CdnRuleOptionsLimitBandwidth","description":"The option allows to control the download speed per connection.\n"},"proxyCacheKey":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsProxyCacheKey:CdnRuleOptionsProxyCacheKey","description":"The option allows to modify the cache key. If omitted, the default value is $request*uri. 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%2FCdnRuleOptionsProxyCacheMethodsSet:CdnRuleOptionsProxyCacheMethodsSet","description":"Allows caching for GET, HEAD and POST requests.\n"},"proxyConnectTimeout":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsProxyConnectTimeout:CdnRuleOptionsProxyConnectTimeout","description":"The time limit for establishing a connection with the origin.\n"},"proxyReadTimeout":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsProxyReadTimeout:CdnRuleOptionsProxyReadTimeout","description":"The time limit for receiving a partial response from the origin. If no response is received within this time, the connection will be closed.\n"},"queryParamsBlacklist":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsQueryParamsBlacklist:CdnRuleOptionsQueryParamsBlacklist","description":"Specify list of query strings. Files with those query strings will be cached as one object.\n"},"queryParamsWhitelist":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsQueryParamsWhitelist:CdnRuleOptionsQueryParamsWhitelist","description":"Specify list of query strings. Files with those query strings will be cached as different objects.\n"},"queryStringForwarding":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsQueryStringForwarding:CdnRuleOptionsQueryStringForwarding","description":"The Query String Forwarding feature allows for the seamless transfer of parameters embedded in playlist files to the corresponding media chunk files.\n"},"redirectHttpToHttps":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsRedirectHttpToHttps:CdnRuleOptionsRedirectHttpToHttps","description":"When enabled, HTTP requests are redirected to HTTPS.\n"},"redirectHttpsToHttp":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsRedirectHttpsToHttp:CdnRuleOptionsRedirectHttpsToHttp","description":"When enabled, HTTPS requests are redirected to HTTP.\n"},"referrerAcl":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsReferrerAcl:CdnRuleOptionsReferrerAcl","description":"Referrer access policy option allows to control access to the CDN Resource content for specified domain names.\n"},"requestLimiter":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsRequestLimiter:CdnRuleOptionsRequestLimiter","description":"It allows to limit the amount of HTTP requests\n"},"responseHeadersHidingPolicy":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsResponseHeadersHidingPolicy:CdnRuleOptionsResponseHeadersHidingPolicy","description":"Define HTTP headers (specified at an origin server) that a CDN server hides from the response.\n"},"rewrite":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsRewrite:CdnRuleOptionsRewrite","description":"Rewrite option changes and redirects the requests from the CDN to the origin. It operates according to the Nginx configuration.\n"},"secureKey":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsSecureKey:CdnRuleOptionsSecureKey","description":"The option allows configuring an access with tokenized URLs. It makes impossible to access content without a valid (unexpired) hash key. When enabled, you need to specify a key that you use to generate a token.\n"},"slice":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsSlice:CdnRuleOptionsSlice","description":"When enabled, files larger than 10 MB are requested and cached in parts (no larger than 10 MB each). It reduces time to first byte. The origin must support HTTP Range requests.\n"},"sni":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsSni:CdnRuleOptionsSni","description":"Specify the SNI (Server Name Indication). SNI (Server Name Indication) is generally only required if your origin is using shared hosting or does not have a dedicated IP address. If the origin server presents multiple certificates, SNI allows the origin server to know which certificate to use for the connection. The option works only if originProtocol parameter is HTTPS or MATCH.\n"},"stale":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsStale:CdnRuleOptionsStale","description":"The list of errors which Always Online option is applied for.\n"},"staticRequestHeaders":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsStaticRequestHeaders:CdnRuleOptionsStaticRequestHeaders","description":"Specify custom HTTP Headers for a CDN server to add to request.\n"},"staticResponseHeaders":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsStaticResponseHeaders:CdnRuleOptionsStaticResponseHeaders","description":"Specify custom HTTP Headers that a CDN server adds to a response.\n"},"userAgentAcl":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsUserAgentAcl:CdnRuleOptionsUserAgentAcl","description":"User agents policy option allows to control access to the content for specified user-agent.\n"},"waap":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsWaap:CdnRuleOptionsWaap","description":"Option allows to enable WAAP (Web Application and API Protection).\n"},"waf":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsWaf:CdnRuleOptionsWaf","description":"Option allows to enable Basic WAF to protect you against the most common threats.\n"},"websockets":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsWebsockets:CdnRuleOptionsWebsockets","description":"WebSockets option allows WebSockets connections to an origin server.\n"}},"type":"object"},"gcore:index/CdnRuleOptionsAllowedHttpMethods:CdnRuleOptionsAllowedHttpMethods":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"},"description":"Available methods: GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS.\n"}},"type":"object","required":["values"]},"gcore:index/CdnRuleOptionsBrotliCompression:CdnRuleOptionsBrotliCompression":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"},"description":"Specify the content-type for each type of content you wish to have compressed.\n"}},"type":"object","required":["values"]},"gcore:index/CdnRuleOptionsBrowserCacheSettings:CdnRuleOptionsBrowserCacheSettings":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"string","description":"Use '0s' to disable caching. The value applies for a response with codes 200, 201, 204, 206, 301, 302, 303, 304, 307, 308.\n"}},"type":"object"},"gcore:index/CdnRuleOptionsCors:CdnRuleOptionsCors":{"properties":{"always":{"type":"boolean","description":"Specify if the Access-Control-Allow-Origin header should be added to a response from CDN regardless of response code.\n"},"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"},"description":"Specify a value of the Access-Control-Allow-Origin header. Possible values: '*', '$http_origin', 'example.com'.\n"}},"type":"object","required":["values"],"language":{"nodejs":{"requiredOutputs":["always","values"]}}},"gcore:index/CdnRuleOptionsCountryAcl:CdnRuleOptionsCountryAcl":{"properties":{"enabled":{"type":"boolean"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of countries according to ISO-3166-1.\n"},"policyType":{"type":"string","description":"Possible values: allow, deny.\n"}},"type":"object","required":["exceptedValues","policyType"]},"gcore:index/CdnRuleOptionsDisableProxyForceRanges:CdnRuleOptionsDisableProxyForceRanges":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptionsEdgeCacheSettings:CdnRuleOptionsEdgeCacheSettings":{"properties":{"customValues":{"type":"object","additionalProperties":{"type":"string"},"description":"Specify caching time in seconds ('0s', '600s' for example) for a response with specific response code ('304', '404' for example). Use 'any' to specify caching time for all response codes. Use '0s' to disable caching for a specific response code. These settings have a higher priority than the value field.\n"},"default":{"type":"string","description":"Content will be cached according to origin cache settings. The value applies for a response with codes 200, 201, 204, 206, 301, 302, 303, 304, 307, 308, if an origin server does not have caching HTTP headers. Responses with other codes will not be cached.\n"},"enabled":{"type":"boolean"},"value":{"type":"string","description":"Specify caching time for the response with codes 200, 206, 301, 302. Responses with codes 4xx, 5xx will not be cached. Use '0s' to disable caching. Use\u003cspan pulumi-lang-nodejs=\" customValues \" pulumi-lang-dotnet=\" CustomValues \" pulumi-lang-go=\" customValues \" pulumi-lang-python=\" custom_values \" pulumi-lang-yaml=\" customValues \" pulumi-lang-java=\" customValues \"\u003e custom_values \u003c/span\u003efield to specify a custom caching time for a response with specific codes.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["customValues"]}}},"gcore:index/CdnRuleOptionsFastedge:CdnRuleOptionsFastedge":{"properties":{"enabled":{"type":"boolean"},"onRequestBody":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsFastedgeOnRequestBody:CdnRuleOptionsFastedgeOnRequestBody","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%2FCdnRuleOptionsFastedgeOnRequestHeaders:CdnRuleOptionsFastedgeOnRequestHeaders","description":"Allows to configure FastEdge application that will be called to handle request headers as soon as CDN receives incoming HTTP request.\n"},"onResponseBody":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsFastedgeOnResponseBody:CdnRuleOptionsFastedgeOnResponseBody","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%2FCdnRuleOptionsFastedgeOnResponseHeaders:CdnRuleOptionsFastedgeOnResponseHeaders","description":"Allows to configure FastEdge application that will be called to handle response headers before CDN sends the HTTP response.\n"}},"type":"object"},"gcore:index/CdnRuleOptionsFastedgeOnRequestBody:CdnRuleOptionsFastedgeOnRequestBody":{"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"]},"gcore:index/CdnRuleOptionsFastedgeOnRequestHeaders:CdnRuleOptionsFastedgeOnRequestHeaders":{"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"]},"gcore:index/CdnRuleOptionsFastedgeOnResponseBody:CdnRuleOptionsFastedgeOnResponseBody":{"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"]},"gcore:index/CdnRuleOptionsFastedgeOnResponseHeaders:CdnRuleOptionsFastedgeOnResponseHeaders":{"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"]},"gcore:index/CdnRuleOptionsFetchCompressed:CdnRuleOptionsFetchCompressed":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptionsFollowOriginRedirect:CdnRuleOptionsFollowOriginRedirect":{"properties":{"codes":{"type":"array","items":{"type":"number"},"description":"Specify the redirect status code that the origin server returns. Possible values: 301, 302, 303, 307, 308.\n"},"enabled":{"type":"boolean"}},"type":"object","required":["codes"]},"gcore:index/CdnRuleOptionsForceReturn:CdnRuleOptionsForceReturn":{"properties":{"body":{"type":"string","description":"Response text or URL if you're going to set up redirection. Max length = 100.\n"},"code":{"type":"number","description":"HTTP response status code. Available codes: 100 \u003c= value \u003c= 599. Reserved codes: 408, 444, 477, 494, 495, 496, 497, 499\n"},"enabled":{"type":"boolean"}},"type":"object","required":["code"]},"gcore:index/CdnRuleOptionsForwardHostHeader:CdnRuleOptionsForwardHostHeader":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptionsGzipOn:CdnRuleOptionsGzipOn":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptionsHostHeader:CdnRuleOptionsHostHeader":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptionsIgnoreCookie:CdnRuleOptionsIgnoreCookie":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptionsIgnoreQueryString:CdnRuleOptionsIgnoreQueryString":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptionsImageStack:CdnRuleOptionsImageStack":{"properties":{"avifEnabled":{"type":"boolean","description":"If enabled, JPG and PNG images automatically convert to AVIF format when supported by the end users browser.\n"},"enabled":{"type":"boolean"},"pngLossless":{"type":"boolean","description":"Represents compression without quality loss for PNG format.\n"},"quality":{"type":"number","description":"Quality settings for JPG and PNG images. Specify a value from 1 to 100. The higher the value, the better the image quality and the larger the file size after conversion.\n"},"webpEnabled":{"type":"boolean","description":"If enabled, JPG and PNG images automatically convert to WebP format when supported by the end users browser.\n"}},"type":"object","required":["quality"],"language":{"nodejs":{"requiredOutputs":["avifEnabled","pngLossless","quality","webpEnabled"]}}},"gcore:index/CdnRuleOptionsIpAddressAcl:CdnRuleOptionsIpAddressAcl":{"properties":{"enabled":{"type":"boolean"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"Specify list of IP address with a subnet mask.\n"},"policyType":{"type":"string","description":"Possible values: allow, deny.\n"}},"type":"object","required":["exceptedValues","policyType"]},"gcore:index/CdnRuleOptionsLimitBandwidth:CdnRuleOptionsLimitBandwidth":{"properties":{"buffer":{"type":"number","description":"Amount of downloaded data after which the user will be rate limited.\n"},"enabled":{"type":"boolean"},"limitType":{"type":"string","description":"The way of controlling the download speed per each connection. Possible values are: static, dynamic.\n"},"speed":{"type":"number","description":"Maximum download speed per connection. Must be greater than 0.\n"}},"type":"object","required":["limitType"],"language":{"nodejs":{"requiredOutputs":["buffer","limitType","speed"]}}},"gcore:index/CdnRuleOptionsProxyCacheKey:CdnRuleOptionsProxyCacheKey":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"string","description":"Key for caching. Should be a combination of the specified variables: $request_uri, $scheme, $uri.\n"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptionsProxyCacheMethodsSet:CdnRuleOptionsProxyCacheMethodsSet":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptionsProxyConnectTimeout:CdnRuleOptionsProxyConnectTimeout":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"string","description":"Specify time in seconds ('1s', '30s' for example).\n"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptionsProxyReadTimeout:CdnRuleOptionsProxyReadTimeout":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"string","description":"Specify time in seconds ('1s', '30s' for example).\n"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptionsQueryParamsBlacklist:CdnRuleOptionsQueryParamsBlacklist":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"}}},"type":"object","required":["values"]},"gcore:index/CdnRuleOptionsQueryParamsWhitelist:CdnRuleOptionsQueryParamsWhitelist":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"}}},"type":"object","required":["values"]},"gcore:index/CdnRuleOptionsQueryStringForwarding:CdnRuleOptionsQueryStringForwarding":{"properties":{"enabled":{"type":"boolean"},"forwardExceptKeys":{"type":"array","items":{"type":"string"},"description":"Specify the keys that will not be forwarded from playlist files to media chunk files.\n"},"forwardFromFileTypes":{"type":"array","items":{"type":"string"},"description":"Specify the types of playlist files from which parameters will be extracted and forwarded.\n"},"forwardOnlyKeys":{"type":"array","items":{"type":"string"},"description":"Specify the keys that will be forwarded from playlist files to media chunk files.\n"},"forwardToFileTypes":{"type":"array","items":{"type":"string"},"description":"Specify the types of media chunk files to which parameters, extracted from playlist files, will be forwarded.\n"}},"type":"object","required":["forwardFromFileTypes","forwardToFileTypes"]},"gcore:index/CdnRuleOptionsRedirectHttpToHttps:CdnRuleOptionsRedirectHttpToHttps":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptionsRedirectHttpsToHttp:CdnRuleOptionsRedirectHttpsToHttp":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptionsReferrerAcl:CdnRuleOptionsReferrerAcl":{"properties":{"enabled":{"type":"boolean"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"Specify list of domain names or wildcard domains (without http:// or https://). For example, example.com or *.example.com.\n"},"policyType":{"type":"string","description":"Possible values: allow, deny.\n"}},"type":"object","required":["exceptedValues","policyType"]},"gcore:index/CdnRuleOptionsRequestLimiter:CdnRuleOptionsRequestLimiter":{"properties":{"burst":{"type":"number"},"delay":{"type":"number"},"enabled":{"type":"boolean"},"rate":{"type":"number"},"rateUnit":{"type":"string"}},"type":"object","required":["burst","rate"]},"gcore:index/CdnRuleOptionsResponseHeadersHidingPolicy:CdnRuleOptionsResponseHeadersHidingPolicy":{"properties":{"enabled":{"type":"boolean"},"excepteds":{"type":"array","items":{"type":"string"},"description":"List of HTTP headers. The following required headers cannot be hidden from response: Connection, Content-Length, Content-Type, Date, Server.\n"},"mode":{"type":"string","description":"Specify a mode of hiding HTTP headers from the response. Possible values are: hide, show.\n"}},"type":"object","required":["excepteds","mode"]},"gcore:index/CdnRuleOptionsRewrite:CdnRuleOptionsRewrite":{"properties":{"body":{"type":"string","description":"The pattern for Rewrite. At least one group should be specified. For Example: /rewrite*from/(.*) /rewrite*to/$1\n"},"enabled":{"type":"boolean"},"flag":{"type":"string","description":"Define flag for the Rewrite option. Possible values: last, break, redirect, permanent.\n"}},"type":"object","required":["body"]},"gcore:index/CdnRuleOptionsSecureKey:CdnRuleOptionsSecureKey":{"properties":{"enabled":{"type":"boolean"},"key":{"type":"string","description":"A key generated on your side that will be used for URL signing.\n"},"type":{"type":"number","description":"Specify the type of URL Signing. It can be either 0 or 2. Type 0 - includes end user's IP to secure token generation. Type 2 - excludes end user's IP from secure token generation.\n"}},"type":"object","required":["key","type"]},"gcore:index/CdnRuleOptionsSlice:CdnRuleOptionsSlice":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptionsSni:CdnRuleOptionsSni":{"properties":{"customHostname":{"type":"string","description":"Custom SNI hostname. Required if\u003cspan pulumi-lang-nodejs=\" sniType \" pulumi-lang-dotnet=\" SniType \" pulumi-lang-go=\" sniType \" pulumi-lang-python=\" sni_type \" pulumi-lang-yaml=\" sniType \" pulumi-lang-java=\" sniType \"\u003e sni_type \u003c/span\u003eis set to 'custom'.\n"},"enabled":{"type":"boolean"},"sniType":{"type":"string","description":"Specify SNI type. Possible values: dynamic, custom. dynamic - SNI hostname depends on the hostHeader and the forward*host*header options. custom - custom SNI hostname.\n"}},"type":"object"},"gcore:index/CdnRuleOptionsStale:CdnRuleOptionsStale":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"},"description":"Possible values: error, http*403, http*404, http*429, http*500, http*502, http*503, http*504, invalid*header, timeout, updating.\n"}},"type":"object","required":["values"]},"gcore:index/CdnRuleOptionsStaticRequestHeaders:CdnRuleOptionsStaticRequestHeaders":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"object","additionalProperties":{"type":"string"},"description":"Header name is restricted to 255 symbols and can contain latin letters (A-Z, a-z), numbers (0-9), dashes, and underscores. Header value is restricted to 512 symbols and can contain latin letters (a-z), numbers (0-9), spaces, underscores and symbols (-/.:). Space can be used only between words.\n"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptionsStaticResponseHeaders:CdnRuleOptionsStaticResponseHeaders":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCdnRuleOptionsStaticResponseHeadersValue:CdnRuleOptionsStaticResponseHeadersValue"}}},"type":"object","required":["values"]},"gcore:index/CdnRuleOptionsStaticResponseHeadersValue:CdnRuleOptionsStaticResponseHeadersValue":{"properties":{"always":{"type":"boolean","description":"Specifies if the header will be added to a response from CDN regardless of response code.\n"},"name":{"type":"string","description":"Header name.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Header value.\n"}},"type":"object","required":["name","values"],"language":{"nodejs":{"requiredOutputs":["always","name","values"]}}},"gcore:index/CdnRuleOptionsUserAgentAcl:CdnRuleOptionsUserAgentAcl":{"properties":{"enabled":{"type":"boolean"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of User-Agents. Use \"\" to allow/deny access when the User-Agent header is empty.\n"},"policyType":{"type":"string","description":"Possible values: allow, deny.\n"}},"type":"object","required":["exceptedValues","policyType"]},"gcore:index/CdnRuleOptionsWaap:CdnRuleOptionsWaap":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptionsWaf:CdnRuleOptionsWaf":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleOptionsWebsockets:CdnRuleOptionsWebsockets":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptions:CdnRuleTemplateOptions":{"properties":{"allowedHttpMethods":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsAllowedHttpMethods:CdnRuleTemplateOptionsAllowedHttpMethods","description":"Specify allowed HTTP methods.\n"},"brotliCompression":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsBrotliCompression:CdnRuleTemplateOptionsBrotliCompression","description":"Brotli compression option allows to compress content with brotli on the CDN's end. CDN servers will request only uncompressed content from the origin.\n"},"browserCacheSettings":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsBrowserCacheSettings:CdnRuleTemplateOptionsBrowserCacheSettings","description":"Specify the cache expiration time for customers' browsers in seconds.\n"},"cors":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsCors:CdnRuleTemplateOptionsCors","description":"CORS header support option adds the Access-Control-Allow-Origin header to responses from CDN servers.\n"},"countryAcl":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsCountryAcl:CdnRuleTemplateOptionsCountryAcl","description":"Country access policy enables control access to content for specified countries.\n"},"disableProxyForceRanges":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsDisableProxyForceRanges:CdnRuleTemplateOptionsDisableProxyForceRanges","description":"The option allows getting 206 responses regardless settings of an origin source. Enabled by default.\n"},"edgeCacheSettings":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsEdgeCacheSettings:CdnRuleTemplateOptionsEdgeCacheSettings","description":"The cache expiration time for CDN servers.\n"},"fastedge":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsFastedge:CdnRuleTemplateOptionsFastedge","description":"Allows to configure FastEdge app to be called on different request/response phases.\n"},"fetchCompressed":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsFetchCompressed:CdnRuleTemplateOptionsFetchCompressed","description":"Option allows to enable fetch compressed. CDN request and cache already compressed content. Your server should support compression. CDN servers will not ungzip your content even if a user's browser doesn't accept compression (nowadays almost all browsers support it).\n"},"followOriginRedirect":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsFollowOriginRedirect:CdnRuleTemplateOptionsFollowOriginRedirect","description":"Enable redirection from origin. If 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%2FCdnRuleTemplateOptionsForceReturn:CdnRuleTemplateOptionsForceReturn","description":"Allows to apply custom HTTP code to the CDN content. Specify HTTP-code you need and text or URL if you are going to set up redirect.\n"},"forwardHostHeader":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsForwardHostHeader:CdnRuleTemplateOptionsForwardHostHeader","description":"When a CDN requests content from an origin server, the option allows to forward the Host header used in the request made to a CDN.\n"},"gzipOn":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsGzipOn:CdnRuleTemplateOptionsGzipOn","description":"GZip compression option allows to compress content with gzip on the CDN`s end. CDN servers will request only uncompressed content from the origin.\n"},"hostHeader":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsHostHeader:CdnRuleTemplateOptionsHostHeader","description":"Option allows to set Host header that CDN servers use when request content from an origin server. Your server must be able to process requests with the chosen header. If the option is NULL, Host Header value is taken from the parent CDN resource's value.\n"},"ignoreCookie":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsIgnoreCookie:CdnRuleTemplateOptionsIgnoreCookie","description":"By default, files pulled from an origin source with cookies are not cached in a CDN. Enable this option to cache such objects.\n"},"ignoreQueryString":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsIgnoreQueryString:CdnRuleTemplateOptionsIgnoreQueryString","description":"Ignore query string option determines how files with different query strings will be cached: either as one object (option is enabled) or as different objects (option is disabled).\n"},"imageStack":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsImageStack:CdnRuleTemplateOptionsImageStack","description":"Image stack option allows transforming JPG and PNG images (such as resizing or cropping) and automatically converting them to WebP or AVIF format. It is a paid option.\n"},"ipAddressAcl":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsIpAddressAcl:CdnRuleTemplateOptionsIpAddressAcl","description":"IP access policy option allows to control access to the CDN Resource content for specific IP addresses.\n"},"limitBandwidth":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsLimitBandwidth:CdnRuleTemplateOptionsLimitBandwidth","description":"The option allows to control the download speed per connection.\n"},"proxyCacheKey":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsProxyCacheKey:CdnRuleTemplateOptionsProxyCacheKey","description":"The option allows to modify the cache key. If omitted, the default value is $request*uri. 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%2FCdnRuleTemplateOptionsProxyCacheMethodsSet:CdnRuleTemplateOptionsProxyCacheMethodsSet","description":"Allows caching for GET, HEAD and POST requests.\n"},"proxyConnectTimeout":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsProxyConnectTimeout:CdnRuleTemplateOptionsProxyConnectTimeout","description":"The time limit for establishing a connection with the origin.\n"},"proxyReadTimeout":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsProxyReadTimeout:CdnRuleTemplateOptionsProxyReadTimeout","description":"The time limit for receiving a partial response from the origin. If no response is received within this time, the connection will be closed.\n"},"queryParamsBlacklist":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsQueryParamsBlacklist:CdnRuleTemplateOptionsQueryParamsBlacklist","description":"Specify list of query strings. Files with those query strings will be cached as one object.\n"},"queryParamsWhitelist":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsQueryParamsWhitelist:CdnRuleTemplateOptionsQueryParamsWhitelist","description":"Specify list of query strings. Files with those query strings will be cached as different objects.\n"},"queryStringForwarding":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsQueryStringForwarding:CdnRuleTemplateOptionsQueryStringForwarding","description":"The Query String Forwarding feature allows for the seamless transfer of parameters embedded in playlist files to the corresponding media chunk files.\n"},"redirectHttpToHttps":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsRedirectHttpToHttps:CdnRuleTemplateOptionsRedirectHttpToHttps","description":"When enabled, HTTP requests are redirected to HTTPS.\n"},"redirectHttpsToHttp":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsRedirectHttpsToHttp:CdnRuleTemplateOptionsRedirectHttpsToHttp","description":"When enabled, HTTPS requests are redirected to HTTP.\n"},"referrerAcl":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsReferrerAcl:CdnRuleTemplateOptionsReferrerAcl","description":"Referrer access policy option allows to control access to the CDN Resource content for specified domain names.\n"},"requestLimiter":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsRequestLimiter:CdnRuleTemplateOptionsRequestLimiter","description":"It allows to limit the amount of HTTP requests\n"},"responseHeadersHidingPolicy":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsResponseHeadersHidingPolicy:CdnRuleTemplateOptionsResponseHeadersHidingPolicy","description":"Define HTTP headers (specified at an origin server) that a CDN server hides from the response.\n"},"rewrite":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsRewrite:CdnRuleTemplateOptionsRewrite","description":"Rewrite option changes and redirects the requests from the CDN to the origin. It operates according to the Nginx configuration.\n"},"secureKey":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsSecureKey:CdnRuleTemplateOptionsSecureKey","description":"The option allows configuring an access with tokenized URLs. It makes impossible to access content without a valid (unexpired) hash key. When enabled, you need to specify a key that you use to generate a token.\n"},"slice":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsSlice:CdnRuleTemplateOptionsSlice","description":"When enabled, files larger than 10 MB are requested and cached in parts (no larger than 10 MB each). It reduces time to first byte. The origin must support HTTP Range requests.\n"},"sni":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsSni:CdnRuleTemplateOptionsSni","description":"Specify the SNI (Server Name Indication). SNI (Server Name Indication) is generally only required if your origin is using shared hosting or does not have a dedicated IP address. If the origin server presents multiple certificates, SNI allows the origin server to know which certificate to use for the connection. The option works only if originProtocol parameter is HTTPS or MATCH.\n"},"stale":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsStale:CdnRuleTemplateOptionsStale","description":"The list of errors which Always Online option is applied for.\n"},"staticRequestHeaders":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsStaticRequestHeaders:CdnRuleTemplateOptionsStaticRequestHeaders","description":"Specify custom HTTP Headers for a CDN server to add to request.\n"},"staticResponseHeaders":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsStaticResponseHeaders:CdnRuleTemplateOptionsStaticResponseHeaders","description":"Specify custom HTTP Headers that a CDN server adds to a response.\n"},"userAgentAcl":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsUserAgentAcl:CdnRuleTemplateOptionsUserAgentAcl","description":"User agents policy option allows to control access to the content for specified user-agent.\n"},"waap":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsWaap:CdnRuleTemplateOptionsWaap","description":"Option allows to enable WAAP (Web Application and API Protection).\n"},"waf":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsWaf:CdnRuleTemplateOptionsWaf","description":"Option allows to enable Basic WAF to protect you against the most common threats.\n"},"websockets":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsWebsockets:CdnRuleTemplateOptionsWebsockets","description":"WebSockets option allows WebSockets connections to an origin server.\n"}},"type":"object"},"gcore:index/CdnRuleTemplateOptionsAllowedHttpMethods:CdnRuleTemplateOptionsAllowedHttpMethods":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"},"description":"Available methods: GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS.\n"}},"type":"object","required":["values"]},"gcore:index/CdnRuleTemplateOptionsBrotliCompression:CdnRuleTemplateOptionsBrotliCompression":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"},"description":"Specify the content-type for each type of content you wish to have compressed.\n"}},"type":"object","required":["values"]},"gcore:index/CdnRuleTemplateOptionsBrowserCacheSettings:CdnRuleTemplateOptionsBrowserCacheSettings":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"string","description":"Use '0s' to disable caching. The value applies for a response with codes 200, 201, 204, 206, 301, 302, 303, 304, 307, 308.\n"}},"type":"object"},"gcore:index/CdnRuleTemplateOptionsCors:CdnRuleTemplateOptionsCors":{"properties":{"always":{"type":"boolean","description":"Specify if the Access-Control-Allow-Origin header should be added to a response from CDN regardless of response code.\n"},"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"},"description":"Specify a value of the Access-Control-Allow-Origin header. Possible values: '*', '$http_origin', 'example.com'.\n"}},"type":"object","required":["values"],"language":{"nodejs":{"requiredOutputs":["always","values"]}}},"gcore:index/CdnRuleTemplateOptionsCountryAcl:CdnRuleTemplateOptionsCountryAcl":{"properties":{"enabled":{"type":"boolean"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of countries according to ISO-3166-1.\n"},"policyType":{"type":"string","description":"Possible values: allow, deny.\n"}},"type":"object","required":["exceptedValues","policyType"]},"gcore:index/CdnRuleTemplateOptionsDisableProxyForceRanges:CdnRuleTemplateOptionsDisableProxyForceRanges":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptionsEdgeCacheSettings:CdnRuleTemplateOptionsEdgeCacheSettings":{"properties":{"customValues":{"type":"object","additionalProperties":{"type":"string"},"description":"Specify caching time in seconds ('0s', '600s' for example) for a response with specific response code ('304', '404' for example). Use 'any' to specify caching time for all response codes. Use '0s' to disable caching for a specific response code. These settings have a higher priority than the value field.\n"},"default":{"type":"string","description":"Content will be cached according to origin cache settings. The value applies for a response with codes 200, 201, 204, 206, 301, 302, 303, 304, 307, 308, if an origin server does not have caching HTTP headers. Responses with other codes will not be cached.\n"},"enabled":{"type":"boolean"},"value":{"type":"string","description":"Specify caching time for the response with codes 200, 206, 301, 302. Responses with codes 4xx, 5xx will not be cached. Use '0s' to disable caching. Use\u003cspan pulumi-lang-nodejs=\" customValues \" pulumi-lang-dotnet=\" CustomValues \" pulumi-lang-go=\" customValues \" pulumi-lang-python=\" custom_values \" pulumi-lang-yaml=\" customValues \" pulumi-lang-java=\" customValues \"\u003e custom_values \u003c/span\u003efield to specify a custom caching time for a response with specific codes.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["customValues"]}}},"gcore:index/CdnRuleTemplateOptionsFastedge:CdnRuleTemplateOptionsFastedge":{"properties":{"enabled":{"type":"boolean"},"onRequestBody":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsFastedgeOnRequestBody:CdnRuleTemplateOptionsFastedgeOnRequestBody","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%2FCdnRuleTemplateOptionsFastedgeOnRequestHeaders:CdnRuleTemplateOptionsFastedgeOnRequestHeaders","description":"Allows to configure FastEdge application that will be called to handle request headers as soon as CDN receives incoming HTTP request.\n"},"onResponseBody":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsFastedgeOnResponseBody:CdnRuleTemplateOptionsFastedgeOnResponseBody","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%2FCdnRuleTemplateOptionsFastedgeOnResponseHeaders:CdnRuleTemplateOptionsFastedgeOnResponseHeaders","description":"Allows to configure FastEdge application that will be called to handle response headers before CDN sends the HTTP response.\n"}},"type":"object"},"gcore:index/CdnRuleTemplateOptionsFastedgeOnRequestBody:CdnRuleTemplateOptionsFastedgeOnRequestBody":{"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"]},"gcore:index/CdnRuleTemplateOptionsFastedgeOnRequestHeaders:CdnRuleTemplateOptionsFastedgeOnRequestHeaders":{"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"]},"gcore:index/CdnRuleTemplateOptionsFastedgeOnResponseBody:CdnRuleTemplateOptionsFastedgeOnResponseBody":{"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"]},"gcore:index/CdnRuleTemplateOptionsFastedgeOnResponseHeaders:CdnRuleTemplateOptionsFastedgeOnResponseHeaders":{"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"]},"gcore:index/CdnRuleTemplateOptionsFetchCompressed:CdnRuleTemplateOptionsFetchCompressed":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptionsFollowOriginRedirect:CdnRuleTemplateOptionsFollowOriginRedirect":{"properties":{"codes":{"type":"array","items":{"type":"number"},"description":"Specify the redirect status code that the origin server returns. Possible values: 301, 302, 303, 307, 308.\n"},"enabled":{"type":"boolean"}},"type":"object","required":["codes"]},"gcore:index/CdnRuleTemplateOptionsForceReturn:CdnRuleTemplateOptionsForceReturn":{"properties":{"body":{"type":"string","description":"Response text or URL if you're going to set up redirection. Max length = 100.\n"},"code":{"type":"number","description":"HTTP response status code. Available codes: 100 \u003c= value \u003c= 599. Reserved codes: 408, 444, 477, 494, 495, 496, 497, 499\n"},"enabled":{"type":"boolean"}},"type":"object","required":["code"]},"gcore:index/CdnRuleTemplateOptionsForwardHostHeader:CdnRuleTemplateOptionsForwardHostHeader":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptionsGzipOn:CdnRuleTemplateOptionsGzipOn":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptionsHostHeader:CdnRuleTemplateOptionsHostHeader":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptionsIgnoreCookie:CdnRuleTemplateOptionsIgnoreCookie":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptionsIgnoreQueryString:CdnRuleTemplateOptionsIgnoreQueryString":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptionsImageStack:CdnRuleTemplateOptionsImageStack":{"properties":{"avifEnabled":{"type":"boolean","description":"If enabled, JPG and PNG images automatically convert to AVIF format when supported by the end users browser.\n"},"enabled":{"type":"boolean"},"pngLossless":{"type":"boolean","description":"Represents compression without quality loss for PNG format.\n"},"quality":{"type":"number","description":"Quality settings for JPG and PNG images. Specify a value from 1 to 100. The higher the value, the better the image quality and the larger the file size after conversion.\n"},"webpEnabled":{"type":"boolean","description":"If enabled, JPG and PNG images automatically convert to WebP format when supported by the end users browser.\n"}},"type":"object","required":["quality"],"language":{"nodejs":{"requiredOutputs":["avifEnabled","pngLossless","quality","webpEnabled"]}}},"gcore:index/CdnRuleTemplateOptionsIpAddressAcl:CdnRuleTemplateOptionsIpAddressAcl":{"properties":{"enabled":{"type":"boolean"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"Specify list of IP address with a subnet mask.\n"},"policyType":{"type":"string","description":"Possible values: allow, deny.\n"}},"type":"object","required":["exceptedValues","policyType"]},"gcore:index/CdnRuleTemplateOptionsLimitBandwidth:CdnRuleTemplateOptionsLimitBandwidth":{"properties":{"buffer":{"type":"number","description":"Amount of downloaded data after which the user will be rate limited.\n"},"enabled":{"type":"boolean"},"limitType":{"type":"string","description":"The way of controlling the download speed per each connection. Possible values are: static, dynamic.\n"},"speed":{"type":"number","description":"Maximum download speed per connection. Must be greater than 0.\n"}},"type":"object","required":["limitType"],"language":{"nodejs":{"requiredOutputs":["buffer","limitType","speed"]}}},"gcore:index/CdnRuleTemplateOptionsProxyCacheKey:CdnRuleTemplateOptionsProxyCacheKey":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"string","description":"Key for caching. Should be a combination of the specified variables: $request_uri, $scheme, $uri.\n"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptionsProxyCacheMethodsSet:CdnRuleTemplateOptionsProxyCacheMethodsSet":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptionsProxyConnectTimeout:CdnRuleTemplateOptionsProxyConnectTimeout":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"string","description":"Specify time in seconds ('1s', '30s' for example).\n"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptionsProxyReadTimeout:CdnRuleTemplateOptionsProxyReadTimeout":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"string","description":"Specify time in seconds ('1s', '30s' for example).\n"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptionsQueryParamsBlacklist:CdnRuleTemplateOptionsQueryParamsBlacklist":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"}}},"type":"object","required":["values"]},"gcore:index/CdnRuleTemplateOptionsQueryParamsWhitelist:CdnRuleTemplateOptionsQueryParamsWhitelist":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"}}},"type":"object","required":["values"]},"gcore:index/CdnRuleTemplateOptionsQueryStringForwarding:CdnRuleTemplateOptionsQueryStringForwarding":{"properties":{"enabled":{"type":"boolean"},"forwardExceptKeys":{"type":"array","items":{"type":"string"},"description":"Specify the keys that will not be forwarded from playlist files to media chunk files.\n"},"forwardFromFileTypes":{"type":"array","items":{"type":"string"},"description":"Specify the types of playlist files from which parameters will be extracted and forwarded.\n"},"forwardOnlyKeys":{"type":"array","items":{"type":"string"},"description":"Specify the keys that will be forwarded from playlist files to media chunk files.\n"},"forwardToFileTypes":{"type":"array","items":{"type":"string"},"description":"Specify the types of media chunk files to which parameters, extracted from playlist files, will be forwarded.\n"}},"type":"object","required":["forwardFromFileTypes","forwardToFileTypes"]},"gcore:index/CdnRuleTemplateOptionsRedirectHttpToHttps:CdnRuleTemplateOptionsRedirectHttpToHttps":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptionsRedirectHttpsToHttp:CdnRuleTemplateOptionsRedirectHttpsToHttp":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptionsReferrerAcl:CdnRuleTemplateOptionsReferrerAcl":{"properties":{"enabled":{"type":"boolean"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"Specify list of domain names or wildcard domains (without http:// or https://). For example, example.com or *.example.com.\n"},"policyType":{"type":"string","description":"Possible values: allow, deny.\n"}},"type":"object","required":["exceptedValues","policyType"]},"gcore:index/CdnRuleTemplateOptionsRequestLimiter:CdnRuleTemplateOptionsRequestLimiter":{"properties":{"burst":{"type":"number"},"delay":{"type":"number"},"enabled":{"type":"boolean"},"rate":{"type":"number"},"rateUnit":{"type":"string"}},"type":"object","required":["burst","rate"]},"gcore:index/CdnRuleTemplateOptionsResponseHeadersHidingPolicy:CdnRuleTemplateOptionsResponseHeadersHidingPolicy":{"properties":{"enabled":{"type":"boolean"},"excepteds":{"type":"array","items":{"type":"string"},"description":"List of HTTP headers. The following required headers cannot be hidden from response: Connection, Content-Length, Content-Type, Date, Server.\n"},"mode":{"type":"string","description":"Specify a mode of hiding HTTP headers from the response. Possible values are: hide, show.\n"}},"type":"object","required":["excepteds","mode"]},"gcore:index/CdnRuleTemplateOptionsRewrite:CdnRuleTemplateOptionsRewrite":{"properties":{"body":{"type":"string","description":"The pattern for Rewrite. At least one group should be specified. For Example: /rewrite*from/(.*) /rewrite*to/$1\n"},"enabled":{"type":"boolean"},"flag":{"type":"string","description":"Define flag for the Rewrite option. Possible values: last, break, redirect, permanent.\n"}},"type":"object","required":["body"]},"gcore:index/CdnRuleTemplateOptionsSecureKey:CdnRuleTemplateOptionsSecureKey":{"properties":{"enabled":{"type":"boolean"},"key":{"type":"string","description":"A key generated on your side that will be used for URL signing.\n"},"type":{"type":"number","description":"Specify the type of URL Signing. It can be either 0 or 2. Type 0 - includes end user's IP to secure token generation. Type 2 - excludes end user's IP from secure token generation.\n"}},"type":"object","required":["key","type"]},"gcore:index/CdnRuleTemplateOptionsSlice:CdnRuleTemplateOptionsSlice":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptionsSni:CdnRuleTemplateOptionsSni":{"properties":{"customHostname":{"type":"string","description":"Custom SNI hostname. Required if\u003cspan pulumi-lang-nodejs=\" sniType \" pulumi-lang-dotnet=\" SniType \" pulumi-lang-go=\" sniType \" pulumi-lang-python=\" sni_type \" pulumi-lang-yaml=\" sniType \" pulumi-lang-java=\" sniType \"\u003e sni_type \u003c/span\u003eis set to 'custom'.\n"},"enabled":{"type":"boolean"},"sniType":{"type":"string","description":"Specify SNI type. Possible values: dynamic, custom. dynamic - SNI hostname depends on the hostHeader and the forward*host*header options. custom - custom SNI hostname.\n"}},"type":"object"},"gcore:index/CdnRuleTemplateOptionsStale:CdnRuleTemplateOptionsStale":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"},"description":"Possible values: error, http*403, http*404, http*429, http*500, http*502, http*503, http*504, invalid*header, timeout, updating.\n"}},"type":"object","required":["values"]},"gcore:index/CdnRuleTemplateOptionsStaticRequestHeaders:CdnRuleTemplateOptionsStaticRequestHeaders":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"object","additionalProperties":{"type":"string"},"description":"Header name is restricted to 255 symbols and can contain latin letters (A-Z, a-z), numbers (0-9), dashes, and underscores. Header value is restricted to 512 symbols and can contain latin letters (a-z), numbers (0-9), spaces, underscores and symbols (-/.:). Space can be used only between words.\n"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptionsStaticResponseHeaders:CdnRuleTemplateOptionsStaticResponseHeaders":{"properties":{"enabled":{"type":"boolean"},"values":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptionsStaticResponseHeadersValue:CdnRuleTemplateOptionsStaticResponseHeadersValue"}}},"type":"object","required":["values"]},"gcore:index/CdnRuleTemplateOptionsStaticResponseHeadersValue:CdnRuleTemplateOptionsStaticResponseHeadersValue":{"properties":{"always":{"type":"boolean","description":"Specifies if the header will be added to a response from CDN regardless of response code.\n"},"name":{"type":"string","description":"Header name.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Header value.\n"}},"type":"object","required":["name","values"],"language":{"nodejs":{"requiredOutputs":["always","name","values"]}}},"gcore:index/CdnRuleTemplateOptionsUserAgentAcl:CdnRuleTemplateOptionsUserAgentAcl":{"properties":{"enabled":{"type":"boolean"},"exceptedValues":{"type":"array","items":{"type":"string"},"description":"List of User-Agents. Use \"\" to allow/deny access when the User-Agent header is empty.\n"},"policyType":{"type":"string","description":"Possible values: allow, deny.\n"}},"type":"object","required":["exceptedValues","policyType"]},"gcore:index/CdnRuleTemplateOptionsWaap:CdnRuleTemplateOptionsWaap":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptionsWaf:CdnRuleTemplateOptionsWaf":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/CdnRuleTemplateOptionsWebsockets:CdnRuleTemplateOptionsWebsockets":{"properties":{"enabled":{"type":"boolean"},"value":{"type":"boolean"}},"type":"object","required":["value"]},"gcore:index/DdosProtectionField:DdosProtectionField":{"properties":{"baseField":{"type":"number"},"default":{"type":"string"},"description":{"type":"string","description":"Field description\n"},"fieldType":{"type":"string"},"fieldValue":{"type":"string","description":"Complex value. Only one of 'value' or 'field_value' must be specified.\n"},"id":{"type":"number"},"name":{"type":"string"},"required":{"type":"boolean"},"validationSchema":{"type":"string","description":"Json schema to validate field_values\n"},"value":{"type":"string","description":"Basic type value. Only one of 'value' or 'field_value' must be specified.\n"}},"type":"object","required":["baseField"],"language":{"nodejs":{"requiredOutputs":["baseField","default","description","fieldType","id","name","required","validationSchema"]}}},"gcore:index/DdosProtectionProtocol:DdosProtectionProtocol":{"properties":{"port":{"type":"string"},"protocols":{"type":"array","items":{"type":"string"}}},"type":"object","required":["port","protocols"]},"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","required":["tags"]},"gcore:index/DnsZoneRecordFilter:DnsZoneRecordFilter":{"properties":{"limit":{"type":"number","description":"A DNS Zone Record filter option that describe how many records will be percolated.\n"},"strict":{"type":"boolean","description":"A DNS Zone Record filter option that describe possibility to return answers if no records were percolated through filter.\n"},"type":{"type":"string","description":"A DNS Zone Record filter option that describe a name of filter.\n"}},"type":"object","required":["type"]},"gcore:index/DnsZoneRecordMeta:DnsZoneRecordMeta":{"properties":{"cidrMapping":{"type":"string","description":"Cidr mapping rule name of DNS Zone RRSet resource.\n"},"failovers":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRecordMetaFailover:DnsZoneRecordMetaFailover"},"description":"Failover meta (eg. {\"frequency\": 60,\"host\": \"www.gcore.com\",\"http*status*code\": null,\"method\": \"GET\",\"port\": 80,\"protocol\": \"HTTP\",\"regexp\": \"\",\"timeout\": 10,\"tls\": false,\"url\": \"/\"}).\n"},"geodnsLink":{"type":"string","description":"Geodns link (domain, or cl-) of DNS Zone RRSet resource.\n"},"healthchecks":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRecordMetaHealthcheck:DnsZoneRecordMetaHealthcheck"},"description":"**Deprecated:** Use 'failover' instead. This field is deprecated and will be removed in a future version.\n","deprecationMessage":"Deprecated"}},"type":"object","language":{"nodejs":{"requiredOutputs":["geodnsLink"]}}},"gcore:index/DnsZoneRecordMetaFailover:DnsZoneRecordMetaFailover":{"properties":{"command":{"type":"string","description":"Command to send if protocol=TCP/UDP, maximum length: 255.\n"},"frequency":{"type":"number","description":"Frequency in seconds (10-3600).\n"},"host":{"type":"string","description":"Request host/virtualhost to send if protocol=HTTP, must be empty for non-HTTP\n"},"httpStatusCode":{"type":"number","description":"Expected status code if protocol=HTTP, must be empty for non-HTTP.\n"},"method":{"type":"string","description":"HTTP Method required if protocol=HTTP, must be empty for non-HTTP.\n"},"port":{"type":"number","description":"Port to check (1-65535).\n"},"protocol":{"type":"string","description":"Protocol, possible value: HTTP, TCP, UDP, ICMP.\n"},"regexp":{"type":"string","description":"HTTP body or response payload to check if protocol\u003c\u003eICMP, must be empty for ICMP.\n"},"timeout":{"type":"number","description":"Timeout in seconds (1-10).\n"},"tls":{"type":"boolean","description":"TLS/HTTPS enabled if protocol=HTTP, must be empty for non-HTTP.\n"},"url":{"type":"string","description":"URL path to check required if protocol=HTTP, must be empty for non-HTTP.\n"}},"type":"object","required":["frequency","protocol","timeout"]},"gcore:index/DnsZoneRecordMetaHealthcheck:DnsZoneRecordMetaHealthcheck":{"properties":{"command":{"type":"string","description":"Command to send if protocol=TCP/UDP, maximum length: 255.\n"},"frequency":{"type":"number","description":"Frequency in seconds (10-3600).\n"},"host":{"type":"string","description":"Request host/virtualhost to send if protocol=HTTP, must be empty for non-HTTP\n"},"httpStatusCode":{"type":"number","description":"Expected status code if protocol=HTTP, must be empty for non-HTTP.\n"},"method":{"type":"string","description":"HTTP Method required if protocol=HTTP, must be empty for non-HTTP.\n"},"port":{"type":"number","description":"Port to check (1-65535).\n"},"protocol":{"type":"string","description":"Protocol, possible value: HTTP, TCP, UDP, ICMP.\n"},"regexp":{"type":"string","description":"HTTP body or response payload to check if protocol\u003c\u003eICMP, must be empty for ICMP.\n"},"timeout":{"type":"number","description":"Timeout in seconds (1-10).\n"},"tls":{"type":"boolean","description":"TLS/HTTPS enabled if protocol=HTTP, must be empty for non-HTTP.\n"},"url":{"type":"string","description":"URL path to check required if protocol=HTTP, must be empty for non-HTTP.\n"}},"type":"object","required":["frequency","protocol","timeout"]},"gcore:index/DnsZoneRecordResourceRecord:DnsZoneRecordResourceRecord":{"properties":{"content":{"type":"string","description":"A content of DNS Zone Record resource. (TXT: 'anyString', MX: '50 mail.company.io.', CAA: '0 issue \"company.org; account=12345\"')\n"},"enabled":{"type":"boolean","description":"Manage of public appearing of DNS Zone Record resource.\n"},"meta":{"$ref":"#/types/gcore:index%2FDnsZoneRecordResourceRecordMeta:DnsZoneRecordResourceRecordMeta"}},"type":"object","required":["content"]},"gcore:index/DnsZoneRecordResourceRecordMeta:DnsZoneRecordResourceRecordMeta":{"properties":{"asns":{"type":"array","items":{"type":"number"},"description":"An asn meta (eg. 12345) of DNS Zone Record resource.\n"},"backup":{"type":"boolean","description":"Set as backup record\n"},"cidrLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of CIDR tags for this record, where key is tag name and value is tag value. Example: {\"tag*name*1\": 10, \"tag*name*2\": 50}.\n"},"continents":{"type":"array","items":{"type":"string"},"description":"Continents meta (eg. Asia) of DNS Zone Record resource.\n"},"countries":{"type":"array","items":{"type":"string"},"description":"Countries ISO codes meta (eg. us) of DNS Zone Record resource.\n"},"default":{"type":"boolean","description":"Fallback meta equals true marks records which are used as a default answer (when nothing was selected by specified meta fields).\n"},"failover":{"type":"object","additionalProperties":{"type":"string"},"description":"Computed UUID of failover healtcheck property\n"},"ips":{"type":"array","items":{"type":"string"},"description":"An ip meta (eg. 127.0.0.0) of DNS Zone Record resource.\n"},"latlongs":{"type":"array","items":{"type":"number"},"description":"A latlong meta (eg. 27.988056, 86.925278) of DNS Zone Record resource.\n"},"notes":{"type":"string","description":"A notes meta (eg. Miami DC) of DNS Zone Record resource.\n"},"weight":{"type":"number","description":"A weight for this record\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["failover"]}}},"gcore:index/DnsZoneRecordTimeouts:DnsZoneRecordTimeouts":{"properties":{"create":{"type":"string"},"delete":{"type":"string"}},"type":"object"},"gcore:index/DnsZoneTimeouts:DnsZoneTimeouts":{"properties":{"create":{"type":"string"},"delete":{"type":"string"}},"type":"object"},"gcore:index/FaasKeyFunction:FaasKeyFunction":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object","required":["name","namespace"]},"gcore:index/FastedgeSecretSlot:FastedgeSecretSlot":{"properties":{"checksum":{"type":"string","description":"Secret value checksum.\n"},"id":{"type":"number","description":"Secret slot id, often used as 'effective from' timestamp.\n"},"value":{"type":"string","description":"Secret value.\n","secret":true}},"type":"object","required":["id","value"],"language":{"nodejs":{"requiredOutputs":["checksum","id","value"]}}},"gcore:index/FastedgeTemplateParam:FastedgeTemplateParam":{"properties":{"descr":{"type":"string","description":"Parameter description.\n"},"mandatory":{"type":"boolean","description":"Is parameter mandatory, true/false (false by default).\n"},"name":{"type":"string","description":"Parameter name.\n"},"type":{"type":"string","description":"Parameter type. Possible values are: string, number, date, time, secret.\n"}},"type":"object","required":["name","type"]},"gcore:index/FileShareAccess:FileShareAccess":{"properties":{"accessMode":{"type":"string","description":"The access mode of the file share (ro/rw).\n"},"ipAddress":{"type":"string","description":"The IP address of the file share.\n"}},"type":"object","required":["accessMode","ipAddress"]},"gcore:index/FileShareNetwork:FileShareNetwork":{"properties":{"networkId":{"type":"string","description":"The ID of the network to which the file share will be connected. This is required for 'standard'.\n"},"subnetId":{"type":"string","description":"The ID of the subnet within the network. This is optional and can be used to specify a particular subnet for the file share.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["networkId","subnetId"]}}},"gcore:index/FileShareShareSettings:FileShareShareSettings":{"properties":{"allowedCharacters":{"type":"string","description":"Allowed characters in file names.\n"},"pathLength":{"type":"string","description":"Affects the maximum limit of file path component name length.\n"},"rootSquash":{"type":"boolean","description":"Indicates if root squash is enabled.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedCharacters","pathLength","rootSquash"]}}},"gcore:index/FloatingipMetadataReadOnly:FloatingipMetadataReadOnly":{"properties":{"key":{"type":"string"},"readOnly":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["key","readOnly","value"]},"gcore:index/GpuVirtualClusterServersSettings:GpuVirtualClusterServersSettings":{"properties":{"credentials":{"$ref":"#/types/gcore:index%2FGpuVirtualClusterServersSettingsCredentials:GpuVirtualClusterServersSettingsCredentials","description":"Credentials for accessing the instances\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FGpuVirtualClusterServersSettingsInterface:GpuVirtualClusterServersSettingsInterface"},"description":"List of interfaces to attach to the instance\n"},"securityGroups":{"type":"array","items":{"type":"string"},"description":"List of security group IDs to associate with the cluster\n"},"userData":{"type":"string","description":"User data to provide to the instance for cloud-init\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FGpuVirtualClusterServersSettingsVolume:GpuVirtualClusterServersSettingsVolume"},"description":"Volumes to attach to the cluster servers\n"}},"type":"object","required":["interfaces","volumes"],"language":{"nodejs":{"requiredOutputs":["interfaces","userData","volumes"]}}},"gcore:index/GpuVirtualClusterServersSettingsCredentials:GpuVirtualClusterServersSettingsCredentials":{"properties":{"password":{"type":"string","description":"Password for the instance\n"},"sshKeyName":{"type":"string","description":"Name of the keypair to use for SSH access\n"},"username":{"type":"string","description":"Username for the instance\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["password","username"]}}},"gcore:index/GpuVirtualClusterServersSettingsInterface:GpuVirtualClusterServersSettingsInterface":{"properties":{"floatingIp":{"$ref":"#/types/gcore:index%2FGpuVirtualClusterServersSettingsInterfaceFloatingIp:GpuVirtualClusterServersSettingsInterfaceFloatingIp","description":"Floating IP configuration\n"},"ipAddress":{"type":"string","description":"IP address for the interface\n"},"ipFamily":{"type":"string","description":"IP family for the interface (dual, ipv4, ipv6)\n"},"name":{"type":"string","description":"Name of interface, should be unique for the instance\n"},"networkId":{"type":"string","description":"Required if type is 'subnet' or 'any_subnet'\n"},"subnetId":{"type":"string","description":"Required if type is 'subnet'\n"},"type":{"type":"string","description":"Interface type (subnet, any_subnet, external)\n"}},"type":"object","required":["name","type"]},"gcore:index/GpuVirtualClusterServersSettingsInterfaceFloatingIp:GpuVirtualClusterServersSettingsInterfaceFloatingIp":{"properties":{"source":{"type":"string","description":"Source of the floating IP\n"}},"type":"object","required":["source"]},"gcore:index/GpuVirtualClusterServersSettingsVolume:GpuVirtualClusterServersSettingsVolume":{"properties":{"bootIndex":{"type":"number","description":"Boot order for the volume\n"},"deleteOnTermination":{"type":"boolean","description":"Whether to delete the volume when the cluster is terminated\n"},"imageId":{"type":"string","description":"ID of the image to use (required if source is 'image')\n"},"name":{"type":"string","description":"Name of the volume\n"},"size":{"type":"number","description":"Size of the volume in GB\n"},"snapshotId":{"type":"string","description":"ID of the snapshot to use (required if source is 'snapshot')\n"},"source":{"type":"string","description":"Volume source (new, image, snapshot)\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to associate with the volume\n"},"type":{"type":"string","description":"Type of volume\n"}},"type":"object","required":["bootIndex","name","size","source","type"],"language":{"nodejs":{"requiredOutputs":["bootIndex","imageId","name","size","snapshotId","source","type"]}}},"gcore:index/InferenceDeploymentContainer:InferenceDeploymentContainer":{"properties":{"cooldownPeriod":{"type":"number","description":"Cooldown period between scaling actions in seconds\n"},"pollingInterval":{"type":"number","description":"Polling interval for scaling triggers in seconds\n"},"readyContainers":{"type":"number","description":"Status of the containers deployment. Number of ready instances\n"},"regionId":{"type":"number","description":"Region id for the container\n"},"scaleMax":{"type":"number","description":"Maximum scale for the container\n"},"scaleMin":{"type":"number","description":"Minimum scale for the container. It can be set to 0, in which case the container will be downscaled to 0 when there is no load.\n"},"totalContainers":{"type":"number","description":"Status of the containers deployment. Total number of instances\n"},"triggersCpuThreshold":{"type":"number","description":"CPU trigger threshold configuration\n"},"triggersGpuMemoryThreshold":{"type":"number","description":"GPU memory trigger threshold configuration. Calculated by DCGM*FI*DEV*MEM*COPY_UTIL metric\n"},"triggersGpuUtilizationThreshold":{"type":"number","description":"GPU utilization trigger threshold configuration. Calculated by DCGM*FI*DEV*GPU*UTIL metric\n"},"triggersHttpRate":{"type":"number","description":"Request count per 'window' seconds for the http trigger. Required if you use http trigger\n"},"triggersHttpWindow":{"type":"number","description":"Time window for rate calculation in seconds. Required if you use http trigger\n"},"triggersMemoryThreshold":{"type":"number","description":"Memory trigger threshold configuration\n"},"triggersSqsActivationQueueLength":{"type":"number","description":"Number of messages for activation\n"},"triggersSqsAwsEndpoint":{"type":"string","description":"Custom AWS endpoint, left empty to use default aws endpoint\n"},"triggersSqsAwsRegion":{"type":"string","description":"AWS region. Required if you use SQS trigger\n"},"triggersSqsQueueLength":{"type":"number","description":"Number of messages for one replica\n"},"triggersSqsQueueUrl":{"type":"string","description":"URL of the SQS queue. Required if you use SQS trigger\n"},"triggersSqsScaleOnDelayed":{"type":"boolean","description":"Scale on delayed messages\n"},"triggersSqsScaleOnFlight":{"type":"boolean","description":"Scale on in-flight messages\n"},"triggersSqsSecretName":{"type":"string","description":"Name of the secret with AWS credentials. Required if you use SQS trigger\n"}},"type":"object","required":["cooldownPeriod","regionId","scaleMax","scaleMin"],"language":{"nodejs":{"requiredOutputs":["cooldownPeriod","pollingInterval","readyContainers","regionId","scaleMax","scaleMin","totalContainers"]}}},"gcore:index/InferenceDeploymentLivenessProbe:InferenceDeploymentLivenessProbe":{"properties":{"enabled":{"type":"boolean","description":"Enable or disable probe\n"},"execCommand":{"type":"string","description":"Command to execute in the container to determine the health\n"},"failureThreshold":{"type":"number","description":"Number of failed probes before the container is considered unhealthy\n"},"httpGetHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP headers to use when sending a HTTP GET request, valid only for HTTP probes\n"},"httpGetHost":{"type":"string","description":"Host name to connect to, valid only for HTTP probes\n"},"httpGetPath":{"type":"string","description":"Path to access on the HTTP server, valid only for HTTP probes\n"},"httpGetPort":{"type":"number","description":"Number of the port to access on the HTTP server, valid only for HTTP probes\n"},"httpGetSchema":{"type":"string","description":"Scheme to use for connecting to the host, valid only for HTTP probes\n"},"initialDelaySeconds":{"type":"number","description":"Number of seconds after the container has started before liveness probes are initiated\n"},"periodSeconds":{"type":"number","description":"How often (in seconds) to perform the probe\n"},"successThreshold":{"type":"number","description":"Minimum consecutive successes for the probe to be considered successful after having failed\n"},"tcpSocketPort":{"type":"number","description":"Port to connect to\n"},"timeoutSeconds":{"type":"number","description":"Number of seconds after which the probe times out\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","failureThreshold","httpGetHeaders","httpGetSchema","initialDelaySeconds","periodSeconds","successThreshold","timeoutSeconds"]}}},"gcore:index/InferenceDeploymentLogging:InferenceDeploymentLogging":{"properties":{"destinationRegionId":{"type":"number"},"enabled":{"type":"boolean"},"retentionPolicyPeriod":{"type":"number"},"topicName":{"type":"string"}},"type":"object"},"gcore:index/InferenceDeploymentReadinessProbe:InferenceDeploymentReadinessProbe":{"properties":{"enabled":{"type":"boolean","description":"Enable or disable probe\n"},"execCommand":{"type":"string","description":"Command to execute in the container to determine the health\n"},"failureThreshold":{"type":"number","description":"Number of failed probes before the container is considered unhealthy\n"},"httpGetHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP headers to use when sending a HTTP GET request, valid only for HTTP probes\n"},"httpGetHost":{"type":"string","description":"Host name to connect to, valid only for HTTP probes\n"},"httpGetPath":{"type":"string","description":"Path to access on the HTTP server, valid only for HTTP probes\n"},"httpGetPort":{"type":"number","description":"Number of the port to access on the HTTP server, valid only for HTTP probes\n"},"httpGetSchema":{"type":"string","description":"Scheme to use for connecting to the host, valid only for HTTP probes\n"},"initialDelaySeconds":{"type":"number","description":"Number of seconds after the container has started before liveness probes are initiated\n"},"periodSeconds":{"type":"number","description":"How often (in seconds) to perform the probe\n"},"successThreshold":{"type":"number","description":"Minimum consecutive successes for the probe to be considered successful after having failed\n"},"tcpSocketPort":{"type":"number","description":"Port to connect to\n"},"timeoutSeconds":{"type":"number","description":"Number of seconds after which the probe times out\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","failureThreshold","httpGetHeaders","httpGetSchema","initialDelaySeconds","periodSeconds","successThreshold","timeoutSeconds"]}}},"gcore:index/InferenceDeploymentStartupProbe:InferenceDeploymentStartupProbe":{"properties":{"enabled":{"type":"boolean","description":"Enable or disable probe\n"},"execCommand":{"type":"string","description":"Command to execute in the container to determine the health\n"},"failureThreshold":{"type":"number","description":"Number of failed probes before the container is considered unhealthy\n"},"httpGetHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP headers to use when sending a HTTP GET request, valid only for HTTP probes\n"},"httpGetHost":{"type":"string","description":"Host name to connect to, valid only for HTTP probes\n"},"httpGetPath":{"type":"string","description":"Path to access on the HTTP server, valid only for HTTP probes\n"},"httpGetPort":{"type":"number","description":"Number of the port to access on the HTTP server, valid only for HTTP probes\n"},"httpGetSchema":{"type":"string","description":"Scheme to use for connecting to the host, valid only for HTTP probes\n"},"initialDelaySeconds":{"type":"number","description":"Number of seconds after the container has started before liveness probes are initiated\n"},"periodSeconds":{"type":"number","description":"How often (in seconds) to perform the probe\n"},"successThreshold":{"type":"number","description":"Minimum consecutive successes for the probe to be considered successful after having failed\n"},"tcpSocketPort":{"type":"number","description":"Port to connect to\n"},"timeoutSeconds":{"type":"number","description":"Number of seconds after which the probe times out\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","failureThreshold","httpGetHeaders","httpGetSchema","initialDelaySeconds","periodSeconds","successThreshold","timeoutSeconds"]}}},"gcore:index/InstanceAddress:InstanceAddress":{"properties":{"nets":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceAddressNet:InstanceAddressNet"}}},"type":"object","required":["nets"]},"gcore:index/InstanceAddressNet:InstanceAddressNet":{"properties":{"addr":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["addr","type"]},"gcore:index/InstanceConfiguration:InstanceConfiguration":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object","required":["key","value"]},"gcore:index/InstanceInterface:InstanceInterface":{"properties":{"existingFipId":{"type":"string"},"fipSource":{"type":"string"},"ipAddress":{"type":"string"},"networkId":{"type":"string","description":"required if type is 'subnet' or 'any_subnet'\n"},"order":{"type":"number","description":"Order of attaching interface\n"},"portId":{"type":"string","description":"required if type is  'reserved*fixed*ip'\n"},"securityGroups":{"type":"array","items":{"type":"string"},"description":"list of security group IDs\n"},"subnetId":{"type":"string","description":"required if type is 'subnet'\n"},"type":{"type":"string","description":"Available value is 'subnet', 'any*subnet', 'external', 'reserved*fixed_ip'\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipAddress","networkId","portId","subnetId"]}}},"gcore:index/InstanceMetadata:InstanceMetadata":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object","required":["key","value"]},"gcore:index/InstanceSecurityGroup:InstanceSecurityGroup":{"properties":{"id":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["id","name"]},"gcore:index/InstanceVolume:InstanceVolume":{"properties":{"attachmentTag":{"type":"string"},"bootIndex":{"type":"number","description":"If boot_index==0 volumes can not detached\n"},"deleteOnTermination":{"type":"boolean"},"id":{"type":"string"},"imageId":{"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"source":{"type":"string","description":"Currently available only 'existing-volume' value\n"},"typeName":{"type":"string"},"volumeId":{"type":"string"}},"type":"object","required":["source"],"language":{"nodejs":{"requiredOutputs":["deleteOnTermination","id","size","source"]}}},"gcore:index/Instancev2Address:Instancev2Address":{"properties":{"nets":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstancev2AddressNet:Instancev2AddressNet"}}},"type":"object","required":["nets"]},"gcore:index/Instancev2AddressNet:Instancev2AddressNet":{"properties":{"addr":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["addr","type"]},"gcore:index/Instancev2Configuration:Instancev2Configuration":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object","required":["key","value"]},"gcore:index/Instancev2Interface:Instancev2Interface":{"properties":{"existingFipId":{"type":"string","description":"The id of the existing floating IP that will be attached to the interface\n"},"ipAddress":{"type":"string","description":"IP address for the interface.\n"},"ipFamily":{"type":"string","description":"IP family for the interface, available values are 'dual', 'ipv4' and 'ipv6'\n"},"name":{"type":"string","description":"Name of interface, should be unique for the instance\n"},"networkId":{"type":"string","description":"required if type is 'subnet' or 'any_subnet'\n"},"order":{"type":"number","description":"Order of attaching interface\n"},"portId":{"type":"string","description":"required if type is  'reserved*fixed*ip'\n"},"securityGroups":{"type":"array","items":{"type":"string"},"description":"list of security group IDs, they will be attached to exact interface\n"},"subnetId":{"type":"string","description":"required if type is 'subnet'\n"},"type":{"type":"string","description":"Available value is 'subnet', 'any*subnet', 'external', 'reserved*fixed_ip'\n"}},"type":"object","required":["name","securityGroups"],"language":{"nodejs":{"requiredOutputs":["ipAddress","name","networkId","portId","securityGroups","subnetId"]}}},"gcore:index/Instancev2MetadataReadOnly:Instancev2MetadataReadOnly":{"properties":{"key":{"type":"string"},"readOnly":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["key","readOnly","value"]},"gcore:index/Instancev2Volume:Instancev2Volume":{"properties":{"attachmentTag":{"type":"string","description":"Tag for the volume attachment\n"},"bootIndex":{"type":"number","description":"If boot_index==0 volumes can not detached\n"},"deleteOnTermination":{"type":"boolean","description":"Delete volume on termination\n"},"id":{"type":"string"},"imageId":{"type":"string","description":"Image ID for the volume\n"},"name":{"type":"string","description":"Name of the volume\n"},"size":{"type":"number","description":"Size of the volume in GiB\n"},"typeName":{"type":"string","description":"Volume type name\n"},"volumeId":{"type":"string"}},"type":"object","required":["volumeId"],"language":{"nodejs":{"requiredOutputs":["attachmentTag","deleteOnTermination","id","imageId","name","size","typeName","volumeId"]}}},"gcore:index/K8sv2Authentication:K8sv2Authentication":{"properties":{"oidc":{"$ref":"#/types/gcore:index%2FK8sv2AuthenticationOidc:K8sv2AuthenticationOidc","description":"OpenID Connect configuration settings.\n"}},"type":"object"},"gcore:index/K8sv2AuthenticationOidc:K8sv2AuthenticationOidc":{"properties":{"clientId":{"type":"string","description":"A client id that all tokens must be issued for.\n"},"groupsClaim":{"type":"string","description":"JWT claim to use as the user's group.\n"},"groupsPrefix":{"type":"string","description":"Prefix prepended to group claims to prevent clashes with existing names.\n"},"issuerUrl":{"type":"string","description":"URL of the provider that allows the API server to discover public signing keys. Only URLs that use the https:// scheme are accepted.\n"},"requiredClaims":{"type":"object","additionalProperties":{"type":"string"},"description":"A map describing required claims in the ID Token. Each claim is verified to be present in the ID Token with a matching value.\n"},"signingAlgs":{"type":"array","items":{"type":"string"},"description":"Accepted signing algorithms. Supported values are: RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512.\n"},"usernameClaim":{"type":"string","description":"JWT claim to use as the user name. When not specified, the \u003cspan pulumi-lang-nodejs=\"`sub`\" pulumi-lang-dotnet=\"`Sub`\" pulumi-lang-go=\"`sub`\" pulumi-lang-python=\"`sub`\" pulumi-lang-yaml=\"`sub`\" pulumi-lang-java=\"`sub`\"\u003e`sub`\u003c/span\u003e claim will be used.\n"},"usernamePrefix":{"type":"string","description":"Prefix prepended to username claims to prevent clashes with existing names.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clientId","groupsClaim","groupsPrefix","issuerUrl","requiredClaims","signingAlgs","usernameClaim","usernamePrefix"]}}},"gcore:index/K8sv2Cni:K8sv2Cni":{"properties":{"cilium":{"$ref":"#/types/gcore:index%2FK8sv2CniCilium:K8sv2CniCilium","description":"Cilium CNI configuration.\n"},"provider":{"type":"string","description":"CNI provider to use when creating the cluster. Supported values are: calico, cilium. The default value is calico.\n"}},"type":"object"},"gcore:index/K8sv2CniCilium:K8sv2CniCilium":{"properties":{"encryption":{"type":"boolean","description":"Enables transparent network encryption. The default value is false.\n"},"hubbleRelay":{"type":"boolean","description":"Enables Hubble Relay. The default value is false.\n"},"hubbleUi":{"type":"boolean","description":"Enables Hubble UI. Requires `hubble_relay=true`. The default value is false.\n"},"lbAcceleration":{"type":"boolean","description":"Enables load balancer acceleration via XDP. The default value is false.\n"},"lbMode":{"type":"string","description":"The operation mode of load balancing for remote backends. Supported values are snat, dsr, hybrid. The default value is snat.\n"},"maskSize":{"type":"number","description":"Specifies the size allocated from pods*ip*pool CIDR to node.ipam.podCIDRs. The default value is 24.\n"},"maskSizeV6":{"type":"number","description":"Specifies the size allocated from pods*ipv6*pool CIDR to node.ipam.podCIDRs. The default value is 120.\n"},"routingMode":{"type":"string","description":"Enables native-routing mode or tunneling mode. The default value is tunnel.\n"},"tunnel":{"type":"string","description":"Tunneling protocol to use in tunneling mode and for ad-hoc tunnels. The default value is geneve.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maskSize","maskSizeV6"]}}},"gcore:index/K8sv2Csi:K8sv2Csi":{"properties":{"nfs":{"$ref":"#/types/gcore:index%2FK8sv2CsiNfs:K8sv2CsiNfs","description":"NFS CSI driver settings.\n"}},"type":"object"},"gcore:index/K8sv2CsiNfs:K8sv2CsiNfs":{"properties":{"vastEnabled":{"type":"boolean","description":"Enable or disable VAST NFS integration. The default value is false. When set to true, 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/K8sv2DdosProfile:K8sv2DdosProfile":{"properties":{"enabled":{"type":"boolean","description":"Indicates if the DDoS profile is enabled.\n"},"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FK8sv2DdosProfileField:K8sv2DdosProfileField"},"description":"List of fields for the DDoS profile.\n"},"profileTemplate":{"type":"number","description":"Profile template ID.\n"},"profileTemplateName":{"type":"string","description":"Profile template name.\n"}},"type":"object","required":["enabled"]},"gcore:index/K8sv2DdosProfileField:K8sv2DdosProfileField":{"properties":{"baseField":{"type":"number","description":"Base field ID.\n"},"fieldValue":{"type":"string","description":"Complex value. Only one of 'value' or 'field_value' must be specified.\n"},"value":{"type":"string","description":"Basic type value. Only one of 'value' or 'field_value' must be specified.\n"}},"type":"object","required":["baseField"]},"gcore:index/K8sv2Pool:K8sv2Pool":{"properties":{"autoHealingEnabled":{"type":"boolean","description":"Enable/disable auto healing of cluster pool nodes.\n"},"bootVolumeSize":{"type":"number","description":"Cluster pool boot volume size. Must be set only for VM pools. Changing the value of this attribute will trigger recreation of the cluster pool.\n"},"bootVolumeType":{"type":"string","description":"Cluster pool boot volume type. Must be set only for VM pools. Available values are 'standard', 'ssd_hiiops', 'cold', 'ultra'. Changing the value of this attribute will trigger recreation of the cluster pool.\n"},"createdAt":{"type":"string","description":"Cluster pool creation date.\n"},"crioConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"Crio configuration for pool nodes. Keys and values are expected to follow the crio option format.\n"},"flavorId":{"type":"string","description":"Cluster pool node flavor ID. Changing the value of this attribute will trigger recreation of the cluster pool.\n"},"isPublicIpv4":{"type":"boolean","description":"Assign public IPv4 address to nodes in this pool. Changing the value of this attribute will trigger recreation of the cluster pool.\n"},"kubeletConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"Kubelet configuration for pool nodes. Keys and values are expected to follow the kubelet configuration file format.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Labels applied to the cluster pool nodes.\n"},"maxNodeCount":{"type":"number","description":"Maximum number of nodes in the cluster pool.\n"},"minNodeCount":{"type":"number","description":"Minimum number of nodes in the cluster pool.\n"},"name":{"type":"string","description":"Cluster pool name. Changing the value of this attribute will trigger recreation of the cluster pool.\n"},"nodeCount":{"type":"number","description":"Current 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":"Server group policy: anti-affinity, soft-anti-affinity or affinity\n"},"status":{"type":"string","description":"Cluster pool status.\n"},"taints":{"type":"object","additionalProperties":{"type":"string"},"description":"Taints applied to the cluster pool nodes.\n"}},"type":"object","required":["flavorId","minNodeCount","name"],"language":{"nodejs":{"requiredOutputs":["autoHealingEnabled","bootVolumeSize","bootVolumeType","createdAt","crioConfig","flavorId","isPublicIpv4","kubeletConfig","labels","maxNodeCount","minNodeCount","name","nodeCount","servergroupId","servergroupName","status","taints"]}}},"gcore:index/K8sv2SecurityGroupRule:K8sv2SecurityGroupRule":{"properties":{"createdAt":{"type":"string"},"description":{"type":"string"},"direction":{"type":"string","description":"Available value is 'ingress', 'egress'\n"},"ethertype":{"type":"string","description":"Available value is 'IPv4', 'IPv6'\n"},"id":{"type":"string"},"portRangeMax":{"type":"number"},"portRangeMin":{"type":"number"},"protocol":{"type":"string","description":"Available value is udp,tcp,any,ipv6-icmp,ipv6-route,ipv6-opts,ipv6-nonxt,ipv6-frag,ipv6-encap,icmp,ah,dccp,egp,esp,gre,igmp,ospf,pgm,rsvp,sctp,udplite,vrrp,51,50,112,0,4,ipip,ipencap\n"},"remoteGroupId":{"type":"string"},"remoteIpPrefix":{"type":"string"},"updatedAt":{"type":"string"}},"type":"object","required":["direction","ethertype","protocol"],"language":{"nodejs":{"requiredOutputs":["createdAt","direction","ethertype","id","protocol","updatedAt"]}}},"gcore:index/K8sv2Timeouts:K8sv2Timeouts":{"properties":{"create":{"type":"string"},"update":{"type":"string"}},"type":"object"},"gcore:index/LblistenerTimeouts:LblistenerTimeouts":{"properties":{"create":{"type":"string"},"delete":{"type":"string"},"update":{"type":"string"}},"type":"object"},"gcore:index/LblistenerUserList:LblistenerUserList":{"properties":{"encryptedPassword":{"type":"string","description":"Encrypted password (hash) to auth via Basic Authentication\n","secret":true},"username":{"type":"string","description":"Username to auth via Basic Authentication\n"}},"type":"object","required":["encryptedPassword","username"]},"gcore:index/LbmemberTimeouts:LbmemberTimeouts":{"properties":{"create":{"type":"string"},"delete":{"type":"string"},"update":{"type":"string"}},"type":"object"},"gcore:index/LbpoolHealthMonitor:LbpoolHealthMonitor":{"properties":{"delay":{"type":"number","description":"The time, in seconds, between sending probes to members.\n"},"expectedCodes":{"type":"string","description":"The list of HTTP status codes expected in response from the member to declare it healthy.\n"},"httpMethod":{"type":"string","description":"The HTTP method that the health monitor uses for requests.\n"},"id":{"type":"string","description":"Health Monitor ID.\n"},"maxRetries":{"type":"number","description":"The number of successful checks before changing the operating status of the member to ONLINE.\n"},"maxRetriesDown":{"type":"number","description":"The number of allowed check failures before changing the operating status of the member to ERROR.\n"},"timeout":{"type":"number","description":"The maximum time, in seconds, that a monitor waits to connect before it times out.\n"},"type":{"type":"string","description":"Available values is 'HTTP', 'HTTPS', 'PING', 'TCP', 'TLS-HELLO', 'UDP-CONNECT\n"},"urlPath":{"type":"string","description":"The HTTP URL path of the request sent by the monitor to test the health of a backend member.\n"}},"type":"object","required":["delay","maxRetries","timeout","type"],"language":{"nodejs":{"requiredOutputs":["delay","expectedCodes","httpMethod","id","maxRetries","maxRetriesDown","timeout","type","urlPath"]}}},"gcore:index/LbpoolSessionPersistence:LbpoolSessionPersistence":{"properties":{"cookieName":{"type":"string","description":"The name of the application cookie to use for session persistence.\n"},"persistenceGranularity":{"type":"string","description":"The netmask used to determine SCTP or UDP SOURCE_IP session persistence.\n"},"persistenceTimeout":{"type":"number","description":"The timeout, in seconds, after which a SCTP or UDP flow may be rescheduled to a different member.\n"},"type":{"type":"string","description":"One of: 'APP*COOKIE' (an application supplied cookie), 'HTTP*COOKIE' (a cookie created by the load balancer), 'SOURCE_IP' (the source IP address).\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["cookieName","persistenceGranularity","persistenceTimeout","type"]}}},"gcore:index/LbpoolTimeouts:LbpoolTimeouts":{"properties":{"create":{"type":"string"},"delete":{"type":"string"},"update":{"type":"string"}},"type":"object"},"gcore:index/LifecyclepolicySchedule:LifecyclepolicySchedule":{"properties":{"cron":{"$ref":"#/types/gcore:index%2FLifecyclepolicyScheduleCron:LifecyclepolicyScheduleCron","description":"Use for taking actions at specified moments of time. Exactly one of interval and cron blocks should be provided\n"},"id":{"type":"string"},"interval":{"$ref":"#/types/gcore:index%2FLifecyclepolicyScheduleInterval:LifecyclepolicyScheduleInterval","description":"Use for taking actions with equal time intervals between them. Exactly one of interval and cron blocks should be provided\n"},"maxQuantity":{"type":"number","description":"Maximum number of stored resources\n"},"resourceNameTemplate":{"type":"string","description":"Used to name snapshots. {volume_id} is substituted with volume.id on creation\n"},"retentionTime":{"$ref":"#/types/gcore:index%2FLifecyclepolicyScheduleRetentionTime:LifecyclepolicyScheduleRetentionTime","description":"If it is set, new resource will be deleted after time\n"},"type":{"type":"string"}},"type":"object","required":["maxQuantity"],"language":{"nodejs":{"requiredOutputs":["id","maxQuantity","type"]}}},"gcore:index/LifecyclepolicyScheduleCron:LifecyclepolicyScheduleCron":{"properties":{"day":{"type":"string","description":"Either single asterisk or comma-separated list of integers (1-31)\n"},"dayOfWeek":{"type":"string","description":"Either single asterisk or comma-separated list of integers (0-6)\n"},"hour":{"type":"string","description":"Either single asterisk or comma-separated list of integers (0-23)\n"},"minute":{"type":"string","description":"Either single asterisk or comma-separated list of integers (0-59)\n"},"month":{"type":"string","description":"Either single asterisk or comma-separated list of integers (1-12)\n"},"timezone":{"type":"string"},"week":{"type":"string","description":"Either single asterisk or comma-separated list of integers (1-53)\n"}},"type":"object"},"gcore:index/LifecyclepolicyScheduleInterval:LifecyclepolicyScheduleInterval":{"properties":{"days":{"type":"number","description":"Number of days to wait between actions\n"},"hours":{"type":"number","description":"Number of hours to wait between actions\n"},"minutes":{"type":"number","description":"Number of minutes to wait between actions\n"},"weeks":{"type":"number","description":"Number of weeks to wait between actions\n"}},"type":"object"},"gcore:index/LifecyclepolicyScheduleRetentionTime:LifecyclepolicyScheduleRetentionTime":{"properties":{"days":{"type":"number","description":"Number of days to wait before deleting snapshot\n"},"hours":{"type":"number","description":"Number of hours to wait before deleting snapshot\n"},"minutes":{"type":"number","description":"Number of minutes to wait before deleting snapshot\n"},"weeks":{"type":"number","description":"Number of weeks to wait before deleting snapshot\n"}},"type":"object"},"gcore:index/LifecyclepolicyVolume:LifecyclepolicyVolume":{"properties":{"id":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["id","name"]}}},"gcore:index/LoadbalancerListener:LoadbalancerListener":{"properties":{"certificate":{"type":"string"},"certificateChain":{"type":"string"},"id":{"type":"string"},"insertXForwarded":{"type":"boolean"},"name":{"type":"string"},"privateKey":{"type":"string"},"protocol":{"type":"string","description":"Available values are 'HTTP', 'HTTPS', 'TCP', 'UDP'\n"},"protocolPort":{"type":"number"},"secretId":{"type":"string"},"sniSecretIds":{"type":"array","items":{"type":"string"}}},"type":"object","required":["name","protocol","protocolPort"],"language":{"nodejs":{"requiredOutputs":["id","name","protocol","protocolPort"]}}},"gcore:index/LoadbalancerMetadataReadOnly:LoadbalancerMetadataReadOnly":{"properties":{"key":{"type":"string"},"readOnly":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["key","readOnly","value"]},"gcore:index/LoadbalancerTimeouts:LoadbalancerTimeouts":{"properties":{"create":{"type":"string"},"delete":{"type":"string"},"update":{"type":"string"}},"type":"object"},"gcore:index/Loadbalancerv2AdditionalVip:Loadbalancerv2AdditionalVip":{"properties":{"ipAddress":{"type":"string"},"subnetId":{"type":"string"}},"type":"object","required":["ipAddress","subnetId"]},"gcore:index/Loadbalancerv2MetadataReadOnly:Loadbalancerv2MetadataReadOnly":{"properties":{"key":{"type":"string"},"readOnly":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["key","readOnly","value"]},"gcore:index/Loadbalancerv2Timeouts:Loadbalancerv2Timeouts":{"properties":{"create":{"type":"string"},"delete":{"type":"string"},"update":{"type":"string"}},"type":"object"},"gcore:index/Loadbalancerv2VrrpIp:Loadbalancerv2VrrpIp":{"properties":{"ipAddress":{"type":"string"},"subnetId":{"type":"string"}},"type":"object","required":["ipAddress","subnetId"]},"gcore:index/NetworkMetadataReadOnly:NetworkMetadataReadOnly":{"properties":{"key":{"type":"string"},"readOnly":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["key","readOnly","value"]},"gcore:index/PortAllowedAddressPairsAllowedAddressPair:PortAllowedAddressPairsAllowedAddressPair":{"properties":{"ipAddress":{"type":"string","description":"IP address or subnet of the allowed address pair (e.g., 192.0.2.10/32).\n"},"macAddress":{"type":"string","description":"MAC address of the allowed address pair. If omitted, port's MAC address will be used.\n"}},"type":"object","required":["ipAddress"]},"gcore:index/PostgresClusterDatabase:PostgresClusterDatabase":{"properties":{"name":{"type":"string","description":"Database name.\n"},"owner":{"type":"string","description":"Owner of the database. Must be one of the users defined in the \u003cspan pulumi-lang-nodejs=\"`users`\" pulumi-lang-dotnet=\"`Users`\" pulumi-lang-go=\"`users`\" pulumi-lang-python=\"`users`\" pulumi-lang-yaml=\"`users`\" pulumi-lang-java=\"`users`\"\u003e`users`\u003c/span\u003e block.\n"},"size":{"type":"number","description":"Size of the database in MiB.\n"}},"type":"object","required":["name","owner"],"language":{"nodejs":{"requiredOutputs":["name","owner","size"]}}},"gcore:index/PostgresClusterFlavor:PostgresClusterFlavor":{"properties":{"cpu":{"type":"number","description":"Number of CPU cores.\n"},"memory":{"type":"number","description":"Amount of RAM in GiB.\n"}},"type":"object","required":["cpu","memory"]},"gcore:index/PostgresClusterNetwork:PostgresClusterNetwork":{"properties":{"acls":{"type":"array","items":{"type":"string"},"description":"List of IP addresses or CIDR blocks allowed to access the cluster.\n"},"connectionString":{"type":"string","description":"Connection string for the cluster.\n"},"host":{"type":"string","description":"Host address for the cluster.\n"},"networkType":{"type":"string","description":"Network type. Currently, only \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e is supported.\n"}},"type":"object","required":["acls"],"language":{"nodejs":{"requiredOutputs":["acls","connectionString","host"]}}},"gcore:index/PostgresClusterPgConfig:PostgresClusterPgConfig":{"properties":{"pgConf":{"type":"string","description":"PostgreSQL configuration in `key=value` format, one per line.\n"},"poolerMode":{"type":"string","description":"Connection pooler mode. Possible values are \u003cspan pulumi-lang-nodejs=\"`session`\" pulumi-lang-dotnet=\"`Session`\" pulumi-lang-go=\"`session`\" pulumi-lang-python=\"`session`\" pulumi-lang-yaml=\"`session`\" pulumi-lang-java=\"`session`\"\u003e`session`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`transaction`\" pulumi-lang-dotnet=\"`Transaction`\" pulumi-lang-go=\"`transaction`\" pulumi-lang-python=\"`transaction`\" pulumi-lang-yaml=\"`transaction`\" pulumi-lang-java=\"`transaction`\"\u003e`transaction`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`statement`\" pulumi-lang-dotnet=\"`Statement`\" pulumi-lang-go=\"`statement`\" pulumi-lang-python=\"`statement`\" pulumi-lang-yaml=\"`statement`\" pulumi-lang-java=\"`statement`\"\u003e`statement`\u003c/span\u003e. If not set, connection pooler is not enabled.\n"},"poolerType":{"type":"string","description":"Connection pooler type. Currently, only \u003cspan pulumi-lang-nodejs=\"`pgbouncer`\" pulumi-lang-dotnet=\"`Pgbouncer`\" pulumi-lang-go=\"`pgbouncer`\" pulumi-lang-python=\"`pgbouncer`\" pulumi-lang-yaml=\"`pgbouncer`\" pulumi-lang-java=\"`pgbouncer`\"\u003e`pgbouncer`\u003c/span\u003e is supported.\n"},"version":{"type":"string","description":"PostgreSQL version. Possible values are \u003cspan pulumi-lang-nodejs=\"`13`\" pulumi-lang-dotnet=\"`13`\" pulumi-lang-go=\"`13`\" pulumi-lang-python=\"`13`\" pulumi-lang-yaml=\"`13`\" pulumi-lang-java=\"`13`\"\u003e`13`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`14`\" pulumi-lang-dotnet=\"`14`\" pulumi-lang-go=\"`14`\" pulumi-lang-python=\"`14`\" pulumi-lang-yaml=\"`14`\" pulumi-lang-java=\"`14`\"\u003e`14`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e.\n"}},"type":"object","required":["version"]},"gcore:index/PostgresClusterStorage:PostgresClusterStorage":{"properties":{"size":{"type":"number","description":"Storage size in GiB. Must be between 1 and 100.\n"},"type":{"type":"string","description":"Storage type.\n"}},"type":"object","required":["size","type"]},"gcore:index/PostgresClusterTimeouts:PostgresClusterTimeouts":{"properties":{"create":{"type":"string"},"update":{"type":"string"}},"type":"object"},"gcore:index/PostgresClusterUser:PostgresClusterUser":{"properties":{"isSecretRevealed":{"type":"boolean","description":"Whether the password for the default \u003cspan pulumi-lang-nodejs=\"`postgres`\" pulumi-lang-dotnet=\"`Postgres`\" pulumi-lang-go=\"`postgres`\" pulumi-lang-python=\"`postgres`\" pulumi-lang-yaml=\"`postgres`\" pulumi-lang-java=\"`postgres`\"\u003e`postgres`\u003c/span\u003e user is revealed.\n"},"name":{"type":"string","description":"User name.\n"},"roleAttributes":{"type":"array","items":{"type":"string"},"description":"List of role attributes. Possible values are: BYPASSRLS, CREATEROLE, CREATEDB, INHERIT, LOGIN, NOLOGIN.\n"}},"type":"object","required":["name","roleAttributes"],"language":{"nodejs":{"requiredOutputs":["isSecretRevealed","name","roleAttributes"]}}},"gcore:index/ReservedfixedipAllowedAddressPair:ReservedfixedipAllowedAddressPair":{"properties":{"ipAddress":{"type":"string","description":"IPv4 or IPv6 address.\n"},"macAddress":{"type":"string","description":"MAC address.\n"}},"type":"object"},"gcore:index/RouterExternalGatewayInfo:RouterExternalGatewayInfo":{"properties":{"enableSnat":{"type":"boolean"},"externalFixedIps":{"type":"array","items":{"$ref":"#/types/gcore:index%2FRouterExternalGatewayInfoExternalFixedIp:RouterExternalGatewayInfoExternalFixedIp"}},"networkId":{"type":"string","description":"Id of the external network\n"},"type":{"type":"string","description":"Must be 'manual' or 'default'\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableSnat","externalFixedIps","networkId","type"]}}},"gcore:index/RouterExternalGatewayInfoExternalFixedIp:RouterExternalGatewayInfoExternalFixedIp":{"properties":{"ipAddress":{"type":"string"},"subnetId":{"type":"string"}},"type":"object","required":["ipAddress","subnetId"]},"gcore:index/RouterInterface:RouterInterface":{"properties":{"ipAddress":{"type":"string"},"macAddress":{"type":"string"},"networkId":{"type":"string"},"portId":{"type":"string"},"subnetId":{"type":"string","description":"Subnet for router interface must have a gateway IP\n"},"type":{"type":"string","description":"must be 'subnet'\n"}},"type":"object","required":["subnetId","type"],"language":{"nodejs":{"requiredOutputs":["ipAddress","macAddress","networkId","portId","subnetId","type"]}}},"gcore:index/RouterRoute:RouterRoute":{"properties":{"destination":{"type":"string"},"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/SecuritygroupMetadataReadOnly:SecuritygroupMetadataReadOnly":{"properties":{"key":{"type":"string"},"readOnly":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["key","readOnly","value"]},"gcore:index/SecuritygroupSecurityGroupRule:SecuritygroupSecurityGroupRule":{"properties":{"createdAt":{"type":"string"},"description":{"type":"string"},"direction":{"type":"string","description":"Available value is 'ingress', 'egress'\n"},"ethertype":{"type":"string","description":"Available value is 'IPv4', 'IPv6'\n"},"id":{"type":"string"},"portRangeMax":{"type":"number"},"portRangeMin":{"type":"number"},"protocol":{"type":"string","description":"Available value is udp,tcp,any,ipv6-icmp,ipv6-route,ipv6-opts,ipv6-nonxt,ipv6-frag,ipv6-encap,icmp,ah,dccp,egp,esp,gre,igmp,ospf,pgm,rsvp,sctp,udplite,vrrp,51,50,112,0,4,ipip,ipencap\n"},"remoteGroupId":{"type":"string"},"remoteIpPrefix":{"type":"string"},"updatedAt":{"type":"string"}},"type":"object","required":["direction","ethertype","protocol"],"language":{"nodejs":{"requiredOutputs":["createdAt","direction","ethertype","id","protocol","updatedAt"]}}},"gcore:index/ServergroupInstance:ServergroupInstance":{"properties":{"instanceId":{"type":"string"},"instanceName":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["instanceName"]}}},"gcore:index/SubnetHostRoute:SubnetHostRoute":{"properties":{"destination":{"type":"string","description":"Classless Inter-Domain Routing, can be IPv4 or IPv6.\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/SubnetMetadataReadOnly:SubnetMetadataReadOnly":{"properties":{"key":{"type":"string"},"readOnly":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["key","readOnly","value"]},"gcore:index/SubnetTimeouts:SubnetTimeouts":{"properties":{"create":{"type":"string"},"delete":{"type":"string"}},"type":"object"},"gcore:index/VolumeMetadataReadOnly:VolumeMetadataReadOnly":{"properties":{"key":{"type":"string"},"readOnly":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["key","readOnly","value"]},"gcore:index/WaapAdvancedRuleAction:WaapAdvancedRuleAction":{"properties":{"allow":{"type":"boolean","description":"The WAAP allows the request.\n"},"block":{"$ref":"#/types/gcore:index%2FWaapAdvancedRuleActionBlock:WaapAdvancedRuleActionBlock","description":"The WAAP blocks the request.\n"},"captcha":{"type":"boolean","description":"The WAAP requires the user to solve a CAPTCHA challenge.\n"},"handshake":{"type":"boolean","description":"The WAAP performs automatic browser validation.\n"},"monitor":{"type":"boolean","description":"The WAAP monitors the request but took no action.\n"},"tag":{"$ref":"#/types/gcore:index%2FWaapAdvancedRuleActionTag:WaapAdvancedRuleActionTag","description":"The WAAP tags the request.\n"}},"type":"object"},"gcore:index/WaapAdvancedRuleActionBlock:WaapAdvancedRuleActionBlock":{"properties":{"actionDuration":{"type":"string","description":"How long a rule's block action will apply to subsequent requests. Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or 'd' to represent time format (seconds, minutes, hours, or days). Example: 12h. Must match the pattern ^[0-9]*[smhd]?$\n"},"statusCode":{"type":"number","description":"A custom HTTP status code that the WAAP returns if a rule blocks a request. It must be one of these values {403, 405, 418, 429}. Default is 403.\n"}},"type":"object"},"gcore:index/WaapAdvancedRuleActionTag:WaapAdvancedRuleActionTag":{"properties":{"tags":{"type":"array","items":{"type":"string"},"description":"The list of user defined tags to tag the request with.\n"}},"type":"object","required":["tags"]},"gcore:index/WaapCustomPageSetBlock:WaapCustomPageSetBlock":{"properties":{"enabled":{"type":"boolean","description":"Indicates whether the custom custom page is active or inactive.\n"},"header":{"type":"string","description":"The text to display in the header of the custom page.\n"},"logo":{"type":"string","description":"A base64 encoded image of the logo to present. Supported image types are JPEG, PNG and JPG, size is limited to width 450px, height 130px. This should be a base 64 encoding of the full HTML img tag compatible image, with the header included.\n"},"text":{"type":"string","description":"The text to display in the body of the custom page.\n"},"title":{"type":"string","description":"The text to display in the title of the custom page.\n"}},"type":"object","required":["enabled"]},"gcore:index/WaapCustomPageSetBlockCsrf:WaapCustomPageSetBlockCsrf":{"properties":{"enabled":{"type":"boolean","description":"Indicates whether the custom custom page is active or inactive.\n"},"header":{"type":"string","description":"The text to display in the header of the custom page.\n"},"logo":{"type":"string","description":"A base64 encoded image of the logo to present. Supported image types are JPEG, PNG and JPG, size is limited to width 450px, height 130px. This should be a base 64 encoding of the full HTML img tag compatible image, with the header included.\n"},"text":{"type":"string","description":"The text to display in the body of the custom page.\n"},"title":{"type":"string","description":"The text to display in the title of the custom page.\n"}},"type":"object","required":["enabled"]},"gcore:index/WaapCustomPageSetCaptcha:WaapCustomPageSetCaptcha":{"properties":{"enabled":{"type":"boolean","description":"Indicates whether the custom custom page is active or inactive.\n"},"error":{"type":"string","description":"Error message.\n"},"header":{"type":"string","description":"The text to display in the header of the custom page.\n"},"logo":{"type":"string","description":"A base64 encoded image of the logo to present. Supported image types are JPEG, PNG and JPG, size is limited to width 450px, height 130px. This should be a base 64 encoding of the full HTML img tag compatible image, with the header included.\n"},"text":{"type":"string","description":"The text to display in the body of the custom page.\n"},"title":{"type":"string","description":"The text to display in the title of the custom page.\n"}},"type":"object","required":["enabled"]},"gcore:index/WaapCustomPageSetCookieDisabled:WaapCustomPageSetCookieDisabled":{"properties":{"enabled":{"type":"boolean","description":"Indicates whether the custom custom page is active or inactive.\n"},"header":{"type":"string","description":"The text to display in the header of the custom page.\n"},"text":{"type":"string","description":"The text to display in the body of the custom page.\n"}},"type":"object","required":["enabled"]},"gcore:index/WaapCustomPageSetHandshake:WaapCustomPageSetHandshake":{"properties":{"enabled":{"type":"boolean","description":"Indicates whether the custom custom page is active or inactive.\n"},"header":{"type":"string","description":"The text to display in the header of the custom page.\n"},"logo":{"type":"string","description":"A base64 encoded image of the logo to present. Supported image types are JPEG, PNG and JPG, size is limited to width 450px, height 130px. This should be a base 64 encoding of the full HTML img tag compatible image, with the header included.\n"},"title":{"type":"string","description":"The text to display in the title of the custom page.\n"}},"type":"object","required":["enabled"]},"gcore:index/WaapCustomPageSetJavascriptDisabled:WaapCustomPageSetJavascriptDisabled":{"properties":{"enabled":{"type":"boolean","description":"Indicates whether the custom custom page is active or inactive.\n"},"header":{"type":"string","description":"The text to display in the header of the custom page.\n"},"text":{"type":"string","description":"The text to display in the body of the custom page.\n"}},"type":"object","required":["enabled"]},"gcore:index/WaapCustomRuleAction:WaapCustomRuleAction":{"properties":{"allow":{"type":"boolean","description":"The WAAP allows the request.\n"},"block":{"$ref":"#/types/gcore:index%2FWaapCustomRuleActionBlock:WaapCustomRuleActionBlock","description":"The WAAP blocks the request.\n"},"captcha":{"type":"boolean","description":"The WAAP requires the user to solve a CAPTCHA challenge.\n"},"handshake":{"type":"boolean","description":"The WAAP performs automatic browser validation.\n"},"monitor":{"type":"boolean","description":"The WAAP monitors the request but took no action.\n"},"tag":{"$ref":"#/types/gcore:index%2FWaapCustomRuleActionTag:WaapCustomRuleActionTag","description":"The WAAP tags the request.\n"}},"type":"object"},"gcore:index/WaapCustomRuleActionBlock:WaapCustomRuleActionBlock":{"properties":{"actionDuration":{"type":"string","description":"How long a rule's block action will apply to subsequent requests. Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or 'd' to represent time format (seconds, minutes, hours, or days). Example: 12h. Must match the pattern ^[0-9]*[smhd]?$\n"},"statusCode":{"type":"number","description":"A custom HTTP status code that the WAAP returns if a rule blocks a request. It must be one of these values {403, 405, 418, 429}. Default is 403.\n"}},"type":"object"},"gcore:index/WaapCustomRuleActionTag:WaapCustomRuleActionTag":{"properties":{"tags":{"type":"array","items":{"type":"string"},"description":"The list of user defined tags to tag the request with.\n"}},"type":"object","required":["tags"]},"gcore:index/WaapCustomRuleConditions:WaapCustomRuleConditions":{"properties":{"contentTypes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsContentType:WaapCustomRuleConditionsContentType"},"description":"Content type condition. This condition matches the content type of the request.\n"},"countries":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsCountry:WaapCustomRuleConditionsCountry"},"description":"Country condition. This condition matches the country of the request based on the source IP address.\n"},"fileExtensions":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsFileExtension:WaapCustomRuleConditionsFileExtension"},"description":"File extension condition. This condition matches the file extension of the request.\n"},"headerExists":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsHeaderExist:WaapCustomRuleConditionsHeaderExist"},"description":"Request header exists condition. This condition checks if a request header exists.\n"},"headers":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsHeader:WaapCustomRuleConditionsHeader"},"description":"Request header condition. This condition matches a request header and its value.\n"},"httpMethods":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsHttpMethod:WaapCustomRuleConditionsHttpMethod"},"description":"HTTP method condition. This condition matches the HTTP method of the request.\n"},"ipRanges":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsIpRange:WaapCustomRuleConditionsIpRange"},"description":"IP range condition. This condition matches a range of IP addresses.\n"},"ips":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsIp:WaapCustomRuleConditionsIp"},"description":"IP address condition. This condition matches a single IP address.\n"},"organizations":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsOrganization:WaapCustomRuleConditionsOrganization"},"description":"Organization condition. This condition matches the organization of the request based on the source IP address.\n"},"ownerTypes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsOwnerType:WaapCustomRuleConditionsOwnerType"}},"requestRates":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsRequestRate:WaapCustomRuleConditionsRequestRate"},"description":"Request rate condition. This condition matches the request rate.\n"},"responseHeaderExists":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsResponseHeaderExist:WaapCustomRuleConditionsResponseHeaderExist"},"description":"Response header exists condition. This condition checks if a response header exists.\n"},"responseHeaders":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsResponseHeader:WaapCustomRuleConditionsResponseHeader"}},"sessionRequestCounts":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsSessionRequestCount:WaapCustomRuleConditionsSessionRequestCount"},"description":"Session request count condition. This condition matches the number of dynamic requests in the session.\n"},"tags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsTag:WaapCustomRuleConditionsTag"},"description":"Tags condition. This condition matches the request tags.\n"},"urls":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsUrl:WaapCustomRuleConditionsUrl"},"description":"URL condition. This condition matches a URL path.\n"},"userAgents":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsUserAgent:WaapCustomRuleConditionsUserAgent"},"description":"User agent condition. This condition matches the user agent of the request.\n"},"userDefinedTags":{"type":"array","items":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditionsUserDefinedTag:WaapCustomRuleConditionsUserDefinedTag"}}},"type":"object"},"gcore:index/WaapCustomRuleConditionsContentType:WaapCustomRuleConditionsContentType":{"properties":{"contentTypes":{"type":"array","items":{"type":"string"},"description":"The list of content types to match against.\n"},"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"}},"type":"object","required":["contentTypes"]},"gcore:index/WaapCustomRuleConditionsCountry:WaapCustomRuleConditionsCountry":{"properties":{"countryCodes":{"type":"array","items":{"type":"string"},"description":"A list of ISO 3166-1 alpha-2 formatted strings representing the countries to match against.\n"},"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"}},"type":"object","required":["countryCodes"]},"gcore:index/WaapCustomRuleConditionsFileExtension:WaapCustomRuleConditionsFileExtension":{"properties":{"fileExtensions":{"type":"array","items":{"type":"string"},"description":"The list of file extensions to match against.\n"},"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"}},"type":"object","required":["fileExtensions"]},"gcore:index/WaapCustomRuleConditionsHeader:WaapCustomRuleConditionsHeader":{"properties":{"header":{"type":"string","description":"The request header name.\n"},"matchType":{"type":"string","description":"The type of matching condition. Valid values are 'Exact', 'Contains'. Default is 'Contains'.\n"},"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"},"value":{"type":"string","description":"The request header value.\n"}},"type":"object","required":["header","value"]},"gcore:index/WaapCustomRuleConditionsHeaderExist:WaapCustomRuleConditionsHeaderExist":{"properties":{"header":{"type":"string","description":"The request header name.\n"},"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"}},"type":"object","required":["header"]},"gcore:index/WaapCustomRuleConditionsHttpMethod:WaapCustomRuleConditionsHttpMethod":{"properties":{"httpMethod":{"type":"string","description":"The HTTP method to match against. Valid values are 'CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', and 'TRACE'.\n"},"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"}},"type":"object","required":["httpMethod"]},"gcore:index/WaapCustomRuleConditionsIp:WaapCustomRuleConditionsIp":{"properties":{"ipAddress":{"type":"string","description":"A single IPv4 or IPv6 address\n"},"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"}},"type":"object","required":["ipAddress"]},"gcore:index/WaapCustomRuleConditionsIpRange:WaapCustomRuleConditionsIpRange":{"properties":{"lowerBound":{"type":"string","description":"The lower bound IPv4 or IPv6 address to match against.\n"},"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"},"upperBound":{"type":"string","description":"The upper bound IPv4 or IPv6 address to match against.\n"}},"type":"object","required":["lowerBound","upperBound"]},"gcore:index/WaapCustomRuleConditionsOrganization:WaapCustomRuleConditionsOrganization":{"properties":{"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"},"organization":{"type":"string","description":"The organization to match against.\n"}},"type":"object","required":["organization"]},"gcore:index/WaapCustomRuleConditionsOwnerType:WaapCustomRuleConditionsOwnerType":{"properties":{"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"},"ownerTypes":{"type":"array","items":{"type":"string"},"description":"Match the type of organization that owns the IP address making an incoming request. Valid values are 'COMMERCIAL', 'EDUCATIONAL', 'GOVERNMENT', 'HOSTING*SERVICES', 'ISP', 'MOBILE*NETWORK', 'NETWORK', and 'RESERVED'.\n"}},"type":"object","required":["ownerTypes"]},"gcore:index/WaapCustomRuleConditionsRequestRate:WaapCustomRuleConditionsRequestRate":{"properties":{"httpMethods":{"type":"array","items":{"type":"string"},"description":"Possible HTTP request methods that can trigger a request rate condition. Valid values are 'CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', and 'TRACE'.\n"},"ips":{"type":"array","items":{"type":"string"},"description":"A list of source IPs that can trigger a request rate condition.\n"},"pathPattern":{"type":"string","description":"A regular expression matching the URL path of the incoming request.\n"},"requests":{"type":"number","description":"The number of incoming requests over the given time that can trigger a request rate condition.\n"},"time":{"type":"number","description":"The number of seconds that the WAAP measures incoming requests over before triggering a request rate condition.\n"},"userDefinedTag":{"type":"string","description":"A user-defined tag that can be included in incoming requests and used to trigger a request rate condition.\n"}},"type":"object","required":["pathPattern","requests","time"]},"gcore:index/WaapCustomRuleConditionsResponseHeader:WaapCustomRuleConditionsResponseHeader":{"properties":{"header":{"type":"string","description":"The request header name.\n"},"matchType":{"type":"string","description":"The type of matching condition. Valid values are 'Exact', 'Contains'. Default is 'Contains'.\n"},"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"},"value":{"type":"string","description":"The request header value.\n"}},"type":"object","required":["header","value"]},"gcore:index/WaapCustomRuleConditionsResponseHeaderExist:WaapCustomRuleConditionsResponseHeaderExist":{"properties":{"header":{"type":"string","description":"The request header name.\n"},"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"}},"type":"object","required":["header"]},"gcore:index/WaapCustomRuleConditionsSessionRequestCount:WaapCustomRuleConditionsSessionRequestCount":{"properties":{"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"},"requestCount":{"type":"number","description":"The number of dynamic requests in the session.\n"}},"type":"object","required":["requestCount"]},"gcore:index/WaapCustomRuleConditionsTag:WaapCustomRuleConditionsTag":{"properties":{"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to match against the request tags. Tags can be obtained from the API endpoint /v1/tags or you can use the gcore*waap*tag data source.\n"}},"type":"object","required":["tags"]},"gcore:index/WaapCustomRuleConditionsUrl:WaapCustomRuleConditionsUrl":{"properties":{"matchType":{"type":"string","description":"The type of matching condition. Valid values are 'Exact', 'Contains', and 'Regex'. Default is 'Contains'.\n"},"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"},"url":{"type":"string","description":"The URL to match.\n"}},"type":"object","required":["url"]},"gcore:index/WaapCustomRuleConditionsUserAgent:WaapCustomRuleConditionsUserAgent":{"properties":{"matchType":{"type":"string","description":"The type of matching condition. Valid values are 'Exact', 'Contains'. Default is 'Contains'.\n"},"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"},"userAgent":{"type":"string","description":"The user agent value to match.\n"}},"type":"object","required":["userAgent"]},"gcore:index/WaapCustomRuleConditionsUserDefinedTag:WaapCustomRuleConditionsUserDefinedTag":{"properties":{"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of user-defined tags to match against the request tags.\n"}},"type":"object","required":["tags"]},"gcore:index/WaapDomainApiDiscoverySettings:WaapDomainApiDiscoverySettings":{"properties":{"descriptionFileLocation":{"type":"string","description":"The URL of the API description file. This will be periodically scanned if \u003cspan pulumi-lang-nodejs=\"`descriptionFileScanEnabled`\" pulumi-lang-dotnet=\"`DescriptionFileScanEnabled`\" pulumi-lang-go=\"`descriptionFileScanEnabled`\" pulumi-lang-python=\"`description_file_scan_enabled`\" pulumi-lang-yaml=\"`descriptionFileScanEnabled`\" pulumi-lang-java=\"`descriptionFileScanEnabled`\"\u003e`description_file_scan_enabled`\u003c/span\u003e is enabled. Supported formats are YAML and JSON, and it must adhere to OpenAPI versions 2, 3, or 3.1.\n"},"descriptionFileScanEnabled":{"type":"boolean","description":"Indicates if periodic scan of the description file is enabled.\n"},"descriptionFileScanIntervalHours":{"type":"number","description":"The interval in hours for scanning the description file.\n"},"trafficScanEnabled":{"type":"boolean","description":"Indicates if traffic scan is enabled.\n"},"trafficScanIntervalHours":{"type":"number","description":"The interval in hours for scanning the traffic.\n"}},"type":"object","required":["descriptionFileLocation"],"language":{"nodejs":{"requiredOutputs":["descriptionFileLocation","descriptionFileScanEnabled","descriptionFileScanIntervalHours","trafficScanEnabled","trafficScanIntervalHours"]}}},"gcore:index/WaapDomainSettings:WaapDomainSettings":{"properties":{"api":{"$ref":"#/types/gcore:index%2FWaapDomainSettingsApi:WaapDomainSettingsApi"},"ddos":{"$ref":"#/types/gcore:index%2FWaapDomainSettingsDdos:WaapDomainSettingsDdos"}},"type":"object"},"gcore:index/WaapDomainSettingsApi:WaapDomainSettingsApi":{"properties":{"apiUrls":{"type":"array","items":{"type":"string"},"description":"List of API URL patterns.\n"},"isApi":{"type":"boolean","description":"Indicates if the domain is an API domain. All requests to an API domain are treated as API requests. If this is set to true then the\u003cspan pulumi-lang-nodejs=\" apiUrls \" pulumi-lang-dotnet=\" ApiUrls \" pulumi-lang-go=\" apiUrls \" pulumi-lang-python=\" api_urls \" pulumi-lang-yaml=\" apiUrls \" pulumi-lang-java=\" apiUrls \"\u003e api_urls \u003c/span\u003efield is ignored.\n"}},"type":"object"},"gcore:index/WaapDomainSettingsDdos:WaapDomainSettingsDdos":{"properties":{"burstThreshold":{"type":"number","description":"Burst threshold for DDoS protection.\n"},"globalThreshold":{"type":"number","description":"Global threshold for DDoS protection.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["burstThreshold","globalThreshold"]}}},"gcore:index/WaapFirewallRuleAction:WaapFirewallRuleAction":{"properties":{"allow":{"type":"boolean","description":"The WAAP allows the request.\n"},"block":{"$ref":"#/types/gcore:index%2FWaapFirewallRuleActionBlock:WaapFirewallRuleActionBlock","description":"The WAAP blocks the request.\n"}},"type":"object"},"gcore:index/WaapFirewallRuleActionBlock:WaapFirewallRuleActionBlock":{"properties":{"actionDuration":{"type":"string","description":"How long a rule's block action will apply to subsequent requests. Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or 'd' to represent time format (seconds, minutes, hours, or days). Example: 12h. Must match the pattern ^[0-9]*[smhd]?$\n"},"statusCode":{"type":"number","description":"A custom HTTP status code that the WAAP returns if a rule blocks a request. It must be one of these values {403, 405, 418, 429}. Default is 403.\n"}},"type":"object"},"gcore:index/WaapFirewallRuleConditions:WaapFirewallRuleConditions":{"properties":{"ip":{"$ref":"#/types/gcore:index%2FWaapFirewallRuleConditionsIp:WaapFirewallRuleConditionsIp","description":"IP address condition. This condition matches a single IP address.\n"},"ipRange":{"$ref":"#/types/gcore:index%2FWaapFirewallRuleConditionsIpRange:WaapFirewallRuleConditionsIpRange","description":"IP range condition. This condition matches a range of IP addresses.\n"}},"type":"object"},"gcore:index/WaapFirewallRuleConditionsIp:WaapFirewallRuleConditionsIp":{"properties":{"ipAddress":{"type":"string","description":"A single IPv4 or IPv6 address to match.\n"},"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"}},"type":"object","required":["ipAddress"]},"gcore:index/WaapFirewallRuleConditionsIpRange:WaapFirewallRuleConditionsIpRange":{"properties":{"lowerBound":{"type":"string","description":"The lower bound IPv4 or IPv6 address to match against.\n"},"negation":{"type":"boolean","description":"Whether or not to apply a boolean NOT operation to the rule's condition.\n"},"upperBound":{"type":"string","description":"The upper bound IPv4 or IPv6 address to match against.\n"}},"type":"object","required":["lowerBound","upperBound"]},"gcore:index/getAiClusterAttachedInterface:getAiClusterAttachedInterface":{"properties":{"ipAddress":{"type":"string"},"networkId":{"type":"string"},"portId":{"type":"string"},"subnetId":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["ipAddress","networkId","portId","subnetId","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getAiClusterInterface:getAiClusterInterface":{"properties":{"networkId":{"type":"string"},"portId":{"type":"string"},"subnetId":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["networkId","portId","subnetId","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getAiClusterPoplarServer:getAiClusterPoplarServer":{"properties":{"addresses":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetAiClusterPoplarServerAddress:getAiClusterPoplarServerAddress"}},"creatorTaskId":{"type":"string"},"flavor":{"type":"object","additionalProperties":{"type":"string"}},"flavorId":{"type":"string"},"instanceCreated":{"type":"string"},"instanceDescription":{"type":"string"},"instanceId":{"type":"string"},"instanceName":{"type":"string"},"metadata":{"type":"object","additionalProperties":{"type":"string"}},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetAiClusterPoplarServerSecurityGroup:getAiClusterPoplarServerSecurityGroup"}},"status":{"type":"string"},"taskId":{"type":"string"},"taskState":{"type":"string"},"vmState":{"type":"string"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetAiClusterPoplarServerVolume:getAiClusterPoplarServerVolume"}}},"type":"object","required":["addresses","creatorTaskId","flavor","flavorId","instanceCreated","instanceDescription","instanceId","instanceName","metadata","securityGroups","status","taskId","taskState","vmState","volumes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getAiClusterPoplarServerAddress:getAiClusterPoplarServerAddress":{"properties":{"addresses":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetAiClusterPoplarServerAddressAddress:getAiClusterPoplarServerAddressAddress"}},"networkName":{"type":"string"}},"type":"object","required":["addresses","networkName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getAiClusterPoplarServerAddressAddress:getAiClusterPoplarServerAddressAddress":{"properties":{"addr":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["addr","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getAiClusterPoplarServerSecurityGroup:getAiClusterPoplarServerSecurityGroup":{"properties":{"name":{"type":"string"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getAiClusterPoplarServerVolume:getAiClusterPoplarServerVolume":{"properties":{"deleteOnTermination":{"type":"boolean"},"id":{"type":"string"}},"type":"object","required":["deleteOnTermination","id"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getAiClusterSecurityGroup:getAiClusterSecurityGroup":{"properties":{"id":{"type":"string"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getAiClusterVolume:getAiClusterVolume":{"properties":{"attachments":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetAiClusterVolumeAttachment:getAiClusterVolumeAttachment"}},"createdAt":{"type":"string"},"creatorTaskId":{"type":"string"},"imageId":{"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"source":{"type":"string"},"status":{"type":"string"},"updatedAt":{"type":"string"},"volumeId":{"type":"string"},"volumeImageMetadata":{"type":"object","additionalProperties":{"type":"string"}},"volumeType":{"type":"string"}},"type":"object","required":["attachments","createdAt","creatorTaskId","imageId","name","size","source","status","updatedAt","volumeId","volumeImageMetadata","volumeType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getAiClusterVolumeAttachment:getAiClusterVolumeAttachment":{"properties":{"attachedAt":{"type":"string"},"attachmentId":{"type":"string"},"device":{"type":"string"},"instanceName":{"type":"string"},"serverId":{"type":"string"},"volumeId":{"type":"string"}},"type":"object","required":["attachedAt","attachmentId","device","instanceName","serverId","volumeId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getDdosProfileTemplateField:getDdosProfileTemplateField":{"properties":{"default":{"type":"string"},"description":{"type":"string"},"fieldType":{"type":"string"},"id":{"type":"number"},"name":{"type":"string"},"required":{"type":"boolean"},"validationSchema":{"type":"string"}},"type":"object","required":["default","description","fieldType","id","name","required","validationSchema"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getFaasKeyFunction:getFaasKeyFunction":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object","required":["name","namespace"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getFileShareShareSettings:getFileShareShareSettings":{"properties":{"allowedCharacters":{"type":"string","description":"Allowed characters in file names.\n"},"pathLength":{"type":"string","description":"Affects the maximum limit of file path component name length.\n"},"rootSquash":{"type":"boolean","description":"Indicates if root squash is enabled.\n"},"typeName":{"type":"string","description":"The type of the file share (standard or vast).\n"}},"type":"object","required":["allowedCharacters","pathLength","rootSquash","typeName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getFloatingipMetadataReadOnly:getFloatingipMetadataReadOnly":{"properties":{"key":{"type":"string"},"readOnly":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getFloatingipTag:getFloatingipTag":{"properties":{"key":{"type":"string"},"readOnly":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getImageMetadataReadOnly:getImageMetadataReadOnly":{"properties":{"key":{"type":"string"},"readOnly":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getInstanceAddress:getInstanceAddress":{"properties":{"nets":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetInstanceAddressNet:getInstanceAddressNet"}}},"type":"object","required":["nets"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getInstanceAddressNet:getInstanceAddressNet":{"properties":{"addr":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["addr","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getInstanceInterface:getInstanceInterface":{"properties":{"ipAddress":{"type":"string"},"networkId":{"type":"string"},"portId":{"type":"string"},"subnetId":{"type":"string"}},"type":"object","required":["ipAddress","networkId","portId","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getInstanceMetadata:getInstanceMetadata":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getInstanceSecurityGroup:getInstanceSecurityGroup":{"properties":{"name":{"type":"string"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getInstanceVolume:getInstanceVolume":{"properties":{"deleteOnTermination":{"type":"boolean"},"volumeId":{"type":"string"}},"type":"object","required":["deleteOnTermination","volumeId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getK8sv2Authentication:getK8sv2Authentication":{"properties":{"oidcs":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetK8sv2AuthenticationOidc:getK8sv2AuthenticationOidc"}}},"type":"object","required":["oidcs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getK8sv2AuthenticationOidc:getK8sv2AuthenticationOidc":{"properties":{"clientId":{"type":"string"},"groupsClaim":{"type":"string"},"groupsPrefix":{"type":"string"},"issuerUrl":{"type":"string"},"requiredClaims":{"type":"object","additionalProperties":{"type":"string"}},"signingAlgs":{"type":"array","items":{"type":"string"}},"usernameClaim":{"type":"string"},"usernamePrefix":{"type":"string"}},"type":"object","required":["clientId","groupsClaim","groupsPrefix","issuerUrl","requiredClaims","signingAlgs","usernameClaim","usernamePrefix"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getK8sv2Cni:getK8sv2Cni":{"properties":{"cilia":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetK8sv2CniCilium:getK8sv2CniCilium"}},"provider":{"type":"string"}},"type":"object","required":["cilia","provider"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getK8sv2CniCilium:getK8sv2CniCilium":{"properties":{"encryption":{"type":"boolean"},"hubbleRelay":{"type":"boolean"},"hubbleUi":{"type":"boolean"},"lbAcceleration":{"type":"boolean"},"lbMode":{"type":"string"},"maskSize":{"type":"number"},"maskSizeV6":{"type":"number"},"routingMode":{"type":"string"},"tunnel":{"type":"string"}},"type":"object","required":["encryption","hubbleRelay","hubbleUi","lbAcceleration","lbMode","maskSize","maskSizeV6","routingMode","tunnel"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getK8sv2Csi:getK8sv2Csi":{"properties":{"nfs":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetK8sv2CsiNf:getK8sv2CsiNf"}}},"type":"object","required":["nfs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getK8sv2CsiNf:getK8sv2CsiNf":{"properties":{"vastEnabled":{"type":"boolean"}},"type":"object","required":["vastEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getK8sv2DdosProfile:getK8sv2DdosProfile":{"properties":{"enabled":{"type":"boolean"},"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetK8sv2DdosProfileField:getK8sv2DdosProfileField"}},"profileTemplate":{"type":"number"},"profileTemplateName":{"type":"string"}},"type":"object","required":["enabled","fields","profileTemplate","profileTemplateName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getK8sv2DdosProfileField:getK8sv2DdosProfileField":{"properties":{"baseField":{"type":"number"},"fieldValue":{"type":"string"},"value":{"type":"string"}},"type":"object","required":["baseField","fieldValue","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getK8sv2Pool:getK8sv2Pool":{"properties":{"autoHealingEnabled":{"type":"boolean"},"bootVolumeSize":{"type":"number"},"bootVolumeType":{"type":"string"},"createdAt":{"type":"string"},"crioConfig":{"type":"object","additionalProperties":{"type":"string"}},"flavorId":{"type":"string"},"isPublicIpv4":{"type":"boolean"},"kubeletConfig":{"type":"object","additionalProperties":{"type":"string"}},"labels":{"type":"object","additionalProperties":{"type":"string"}},"maxNodeCount":{"type":"number"},"minNodeCount":{"type":"number"},"name":{"type":"string"},"nodeCount":{"type":"number"},"servergroupId":{"type":"string"},"servergroupName":{"type":"string"},"servergroupPolicy":{"type":"string"},"status":{"type":"string"},"taints":{"type":"object","additionalProperties":{"type":"string"}}},"type":"object","required":["autoHealingEnabled","bootVolumeSize","bootVolumeType","createdAt","crioConfig","flavorId","isPublicIpv4","kubeletConfig","labels","maxNodeCount","minNodeCount","name","nodeCount","servergroupId","servergroupName","servergroupPolicy","status","taints"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getLblistenerUserList:getLblistenerUserList":{"properties":{"encryptedPassword":{"type":"string","description":"Encrypted password (hash) to auth via Basic Authentication\n","secret":true},"username":{"type":"string","description":"Username to auth via Basic Authentication\n"}},"type":"object","required":["encryptedPassword","username"]},"gcore:index/getLbpoolHealthMonitor:getLbpoolHealthMonitor":{"properties":{"delay":{"type":"number"},"expectedCodes":{"type":"string"},"httpMethod":{"type":"string"},"id":{"type":"string"},"maxRetries":{"type":"number"},"maxRetriesDown":{"type":"number"},"timeout":{"type":"number"},"type":{"type":"string"},"urlPath":{"type":"string"}},"type":"object","required":["delay","expectedCodes","httpMethod","id","maxRetries","maxRetriesDown","timeout","type","urlPath"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getLbpoolSessionPersistence:getLbpoolSessionPersistence":{"properties":{"cookieName":{"type":"string"},"persistenceGranularity":{"type":"string"},"persistenceTimeout":{"type":"number"},"type":{"type":"string"}},"type":"object","required":["cookieName","persistenceGranularity","persistenceTimeout","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getLoadbalancerListener:getLoadbalancerListener":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"protocol":{"type":"string"},"protocolPort":{"type":"number"}},"type":"object","required":["id","name","protocol","protocolPort"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getLoadbalancerMetadataReadOnly:getLoadbalancerMetadataReadOnly":{"properties":{"key":{"type":"string"},"readOnly":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getLoadbalancerv2AdditionalVip:getLoadbalancerv2AdditionalVip":{"properties":{"ipAddress":{"type":"string"},"subnetId":{"type":"string"}},"type":"object","required":["ipAddress","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getLoadbalancerv2MetadataReadOnly:getLoadbalancerv2MetadataReadOnly":{"properties":{"key":{"type":"string"},"readOnly":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getLoadbalancerv2VrrpIp:getLoadbalancerv2VrrpIp":{"properties":{"ipAddress":{"type":"string"},"subnetId":{"type":"string"}},"type":"object","required":["ipAddress","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getNetworkMetadataReadOnly:getNetworkMetadataReadOnly":{"properties":{"key":{"type":"string"},"readOnly":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getPostgresClusterDatabase:getPostgresClusterDatabase":{"properties":{"name":{"type":"string"},"owner":{"type":"string"},"size":{"type":"number"}},"type":"object","required":["name","owner","size"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getPostgresClusterFlavor:getPostgresClusterFlavor":{"properties":{"cpu":{"type":"number"},"memory":{"type":"number"}},"type":"object","required":["cpu","memory"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getPostgresClusterNetwork:getPostgresClusterNetwork":{"properties":{"acls":{"type":"array","items":{"type":"string"}},"connectionString":{"type":"string"},"host":{"type":"string"},"networkType":{"type":"string"}},"type":"object","required":["acls","connectionString","host","networkType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getPostgresClusterPgConfig:getPostgresClusterPgConfig":{"properties":{"pgConf":{"type":"string"},"poolerMode":{"type":"string"},"poolerType":{"type":"string"},"version":{"type":"string"}},"type":"object","required":["pgConf","poolerMode","poolerType","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getPostgresClusterStorage:getPostgresClusterStorage":{"properties":{"size":{"type":"number"},"type":{"type":"string"}},"type":"object","required":["size","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getPostgresClusterUser:getPostgresClusterUser":{"properties":{"isSecretRevealed":{"type":"boolean"},"name":{"type":"string"},"roleAttributes":{"type":"array","items":{"type":"string"}}},"type":"object","required":["isSecretRevealed","name","roleAttributes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getReservedfixedipAllowedAddressPair:getReservedfixedipAllowedAddressPair":{"properties":{"ipAddress":{"type":"string"},"macAddress":{"type":"string"}},"type":"object","required":["ipAddress","macAddress"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getRouterExternalGatewayInfo:getRouterExternalGatewayInfo":{"properties":{"enableSnat":{"type":"boolean"},"externalFixedIps":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetRouterExternalGatewayInfoExternalFixedIp:getRouterExternalGatewayInfoExternalFixedIp"}},"networkId":{"type":"string"}},"type":"object","required":["enableSnat","externalFixedIps","networkId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getRouterExternalGatewayInfoExternalFixedIp:getRouterExternalGatewayInfoExternalFixedIp":{"properties":{"ipAddress":{"type":"string"},"subnetId":{"type":"string"}},"type":"object","required":["ipAddress","subnetId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getRouterInterface:getRouterInterface":{"properties":{"ipAddress":{"type":"string"},"macAddress":{"type":"string"},"networkId":{"type":"string"},"portId":{"type":"string"},"subnetId":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["ipAddress","macAddress","networkId","portId","subnetId","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getRouterRoute:getRouterRoute":{"properties":{"destination":{"type":"string"},"nexthop":{"type":"string"}},"type":"object","required":["destination","nexthop"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getSecuritygroupMetadataReadOnly:getSecuritygroupMetadataReadOnly":{"properties":{"key":{"type":"string"},"readOnly":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getSecuritygroupSecurityGroupRule:getSecuritygroupSecurityGroupRule":{"properties":{"createdAt":{"type":"string"},"description":{"type":"string"},"direction":{"type":"string"},"ethertype":{"type":"string"},"id":{"type":"string"},"portRangeMax":{"type":"number"},"portRangeMin":{"type":"number"},"protocol":{"type":"string"},"remoteGroupId":{"type":"string"},"remoteIpPrefix":{"type":"string"},"updatedAt":{"type":"string"}},"type":"object","required":["createdAt","description","direction","ethertype","id","portRangeMax","portRangeMin","protocol","remoteGroupId","remoteIpPrefix","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getServergroupInstance:getServergroupInstance":{"properties":{"instanceId":{"type":"string"},"instanceName":{"type":"string"}},"type":"object","required":["instanceId","instanceName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getSubnetHostRoute:getSubnetHostRoute":{"properties":{"destination":{"type":"string"},"nexthop":{"type":"string"}},"type":"object","required":["destination","nexthop"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getSubnetMetadataReadOnly:getSubnetMetadataReadOnly":{"properties":{"key":{"type":"string"},"readOnly":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["key","readOnly","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcore:index/getVolumeMetadataReadOnly:getVolumeMetadataReadOnly":{"properties":{"key":{"type":"string"},"readOnly":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["key","readOnly","value"],"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":{"apiEndpoint":{"type":"string","description":"A single API endpoint for all products. Will be used when specific product API url is not defined. Can also be set with the GCORE_API_ENDPOINT environment variable."},"gcoreApi":{"type":"string","description":"Region API.","deprecationMessage":"Deprecated"},"gcoreCdnApi":{"type":"string","description":"CDN API (define only if you want to override CDN API endpoint). Can also be set with the GCORE_CDN_API environment variable."},"gcoreClientId":{"type":"string","description":"Client ID. Can also be set with the GCORE_CLIENT_ID environment variable."},"gcoreCloudApi":{"type":"string","description":"Region API (define only if you want to override Region API endpoint). Can also be set with the GCORE_CLOUD_API environment variable."},"gcoreDnsApi":{"type":"string","description":"DNS API (define only if you want to override DNS API endpoint). Can also be set with the GCORE_DNS_API environment variable."},"gcoreFastedgeApi":{"type":"string","description":"FastEdge API (define only if you want to override FastEdge API endpoint). Can also be set with the GCORE_FASTEDGE_API environment variable."},"gcorePlatform":{"type":"string","description":"Platform URL is used for generate JWT.","deprecationMessage":"Deprecated"},"gcorePlatformApi":{"type":"string","description":"Platform URL is used for generate JWT (define only if you want to override Platform API endpoint). Can also be set with the GCORE_PLATFORM_API environment variable."},"gcoreStorageApi":{"type":"string","description":"Storage API (define only if you want to override Storage API endpoint). Can also be set with the GCORE_STORAGE_API environment variable."},"gcoreWaapApi":{"type":"string","description":"WAAP API (define only if you want to override WAAP API endpoint). Can also be set with the GCORE_WAAP_API environment variable."},"password":{"type":"string","description":"Gcore account password. Can also be set with the GCORE_PASSWORD environment variable.","deprecationMessage":"Deprecated"},"permanentApiToken":{"type":"string","description":"A permanent [API-token](https://gcore.com/docs/account-settings/create-use-or-delete-a-permanent-api-token). Can also be set with the GCORE_PERMANENT_TOKEN environment variable.","secret":true},"userName":{"type":"string","description":"Gcore account username. Can also be set with the GCORE_USERNAME environment variable.","deprecationMessage":"Deprecated"}},"type":"object","inputProperties":{"apiEndpoint":{"type":"string","description":"A single API endpoint for all products. Will be used when specific product API url is not defined. Can also be set with the GCORE_API_ENDPOINT environment variable."},"gcoreApi":{"type":"string","description":"Region API.","deprecationMessage":"Deprecated"},"gcoreCdnApi":{"type":"string","description":"CDN API (define only if you want to override CDN API endpoint). Can also be set with the GCORE_CDN_API environment variable."},"gcoreClientId":{"type":"string","description":"Client ID. Can also be set with the GCORE_CLIENT_ID environment variable."},"gcoreCloudApi":{"type":"string","description":"Region API (define only if you want to override Region API endpoint). Can also be set with the GCORE_CLOUD_API environment variable."},"gcoreDnsApi":{"type":"string","description":"DNS API (define only if you want to override DNS API endpoint). Can also be set with the GCORE_DNS_API environment variable."},"gcoreFastedgeApi":{"type":"string","description":"FastEdge API (define only if you want to override FastEdge API endpoint). Can also be set with the GCORE_FASTEDGE_API environment variable."},"gcorePlatform":{"type":"string","description":"Platform URL is used for generate JWT.","deprecationMessage":"Deprecated"},"gcorePlatformApi":{"type":"string","description":"Platform URL is used for generate JWT (define only if you want to override Platform API endpoint). Can also be set with the GCORE_PLATFORM_API environment variable."},"gcoreStorageApi":{"type":"string","description":"Storage API (define only if you want to override Storage API endpoint). Can also be set with the GCORE_STORAGE_API environment variable."},"gcoreWaapApi":{"type":"string","description":"WAAP API (define only if you want to override WAAP API endpoint). Can also be set with the GCORE_WAAP_API environment variable."},"ignoreCredsAuthError":{"type":"boolean","description":"Should be set to true when you are gonna to use storage resource with permanent API-token only.","deprecationMessage":"Deprecated"},"password":{"type":"string","description":"Gcore account password. Can also be set with the GCORE_PASSWORD environment variable.","deprecationMessage":"Deprecated"},"permanentApiToken":{"type":"string","description":"A permanent [API-token](https://gcore.com/docs/account-settings/create-use-or-delete-a-permanent-api-token). Can also be set with the GCORE_PERMANENT_TOKEN environment variable.","secret":true},"userName":{"type":"string","description":"Gcore account username. Can also be set with the GCORE_USERNAME environment variable.","deprecationMessage":"Deprecated"}},"methods":{"terraformConfig":"pulumi:providers:gcore/terraformConfig"}},"resources":{"gcore:index/aiCluster:AiCluster":{"description":"Represent GPU cluster\n\n## 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\nconst project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\nconst network = new gcore.Network(\"network\", {\n    name: \"my-network\",\n    type: \"vlan\",\n    projectId: project.then(project =\u003e project.id),\n    regionId: region.then(region =\u003e region.id),\n});\nconst subnet = new gcore.Subnet(\"subnet\", {\n    name: \"my-subnet\",\n    cidr: \"192.168.10.0/24\",\n    networkId: network.networkId,\n    projectId: project.then(project =\u003e project.id),\n    regionId: region.then(region =\u003e region.id),\n});\nconst keypair = new gcore.Keypair(\"keypair\", {\n    projectId: project.then(project =\u003e project.id),\n    sshkeyName: \"my-keypair\",\n    publicKey: \"ssh-ed25519 ...your public key... gcore@gcore.com\",\n});\nconst vast = Promise.all([project, region]).then(([project, region]) =\u003e gcore.getFileShare({\n    name: \"my-files-share\",\n    projectId: project.id,\n    regionId: region.id,\n}));\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\nnetwork = gcore.Network(\"network\",\n    name=\"my-network\",\n    type=\"vlan\",\n    project_id=project.id,\n    region_id=region.id)\nsubnet = gcore.Subnet(\"subnet\",\n    name=\"my-subnet\",\n    cidr=\"192.168.10.0/24\",\n    network_id=network.network_id,\n    project_id=project.id,\n    region_id=region.id)\nkeypair = gcore.Keypair(\"keypair\",\n    project_id=project.id,\n    sshkey_name=\"my-keypair\",\n    public_key=\"ssh-ed25519 ...your public key... gcore@gcore.com\")\nvast = gcore.get_file_share(name=\"my-files-share\",\n    project_id=project.id,\n    region_id=region.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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n    var network = new Gcore.Network(\"network\", new()\n    {\n        Name = \"my-network\",\n        Type = \"vlan\",\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n    });\n\n    var subnet = new Gcore.Subnet(\"subnet\", new()\n    {\n        Name = \"my-subnet\",\n        Cidr = \"192.168.10.0/24\",\n        NetworkId = network.NetworkId,\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n    });\n\n    var keypair = new Gcore.Keypair(\"keypair\", new()\n    {\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        SshkeyName = \"my-keypair\",\n        PublicKey = \"ssh-ed25519 ...your public key... gcore@gcore.com\",\n    });\n\n    var vast = Gcore.GetFileShare.Invoke(new()\n    {\n        Name = \"my-files-share\",\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tproject, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tregion, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork, err := gcore.NewNetwork(ctx, \"network\", \u0026gcore.NetworkArgs{\n\t\t\tName:      pulumi.String(\"my-network\"),\n\t\t\tType:      pulumi.String(\"vlan\"),\n\t\t\tProjectId: pulumi.String(project.Id),\n\t\t\tRegionId:  pulumi.String(region.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewSubnet(ctx, \"subnet\", \u0026gcore.SubnetArgs{\n\t\t\tName:      pulumi.String(\"my-subnet\"),\n\t\t\tCidr:      pulumi.String(\"192.168.10.0/24\"),\n\t\t\tNetworkId: network.NetworkId,\n\t\t\tProjectId: pulumi.String(project.Id),\n\t\t\tRegionId:  pulumi.String(region.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewKeypair(ctx, \"keypair\", \u0026gcore.KeypairArgs{\n\t\t\tProjectId:  pulumi.String(project.Id),\n\t\t\tSshkeyName: 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.LookupFileShare(ctx, \u0026gcore.LookupFileShareArgs{\n\t\t\tName:      \"my-files-share\",\n\t\t\tProjectId: pulumi.Float64Ref(project.Id),\n\t\t\tRegionId:  pulumi.Float64Ref(region.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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.Network;\nimport com.pulumi.gcore.NetworkArgs;\nimport com.pulumi.gcore.Subnet;\nimport com.pulumi.gcore.SubnetArgs;\nimport com.pulumi.gcore.Keypair;\nimport com.pulumi.gcore.KeypairArgs;\nimport com.pulumi.gcore.inputs.GetFileShareArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n        var network = new Network(\"network\", NetworkArgs.builder()\n            .name(\"my-network\")\n            .type(\"vlan\")\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        var subnet = new Subnet(\"subnet\", SubnetArgs.builder()\n            .name(\"my-subnet\")\n            .cidr(\"192.168.10.0/24\")\n            .networkId(network.networkId())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        var keypair = new Keypair(\"keypair\", KeypairArgs.builder()\n            .projectId(project.id())\n            .sshkeyName(\"my-keypair\")\n            .publicKey(\"ssh-ed25519 ...your public key... gcore@gcore.com\")\n            .build());\n\n        final var vast = GcoreFunctions.getFileShare(GetFileShareArgs.builder()\n            .name(\"my-files-share\")\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  network:\n    type: gcore:Network\n    properties:\n      name: my-network\n      type: vlan\n      projectId: ${project.id}\n      regionId: ${region.id}\n  subnet:\n    type: gcore:Subnet\n    properties:\n      name: my-subnet\n      cidr: 192.168.10.0/24\n      networkId: ${network.networkId}\n      projectId: ${project.id}\n      regionId: ${region.id}\n  keypair:\n    type: gcore:Keypair\n    properties:\n      projectId: ${project.id}\n      sshkeyName: my-keypair\n      publicKey: ssh-ed25519 ...your public key... gcore@gcore.com\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n  vast:\n    fn::invoke:\n      function: gcore:getFileShare\n      arguments:\n        name: my-files-share\n        projectId: ${project.id}\n        regionId: ${region.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Basic example\n\n### Creating GPU cluster of one node with one public interface and metadata provided\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst gpuCluster = new gcore.AiCluster(\"gpu_cluster\", {\n    flavor: \"bm3-ai-1xlarge-h100-80-8\",\n    imageId: \"37c4fa17-1f18-4904-95f2-dbf39d0318fe\",\n    clusterName: \"my-gpu-cluster\",\n    keypairName: \"my-keypair\",\n    instancesCount: 1,\n    interfaces: [{\n        type: \"external\",\n    }],\n    clusterMetadata: {\n        \"my-metadata-key\": \"my-metadata-value\",\n    },\n    projectId: project.id,\n    regionId: region.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ngpu_cluster = gcore.AiCluster(\"gpu_cluster\",\n    flavor=\"bm3-ai-1xlarge-h100-80-8\",\n    image_id=\"37c4fa17-1f18-4904-95f2-dbf39d0318fe\",\n    cluster_name=\"my-gpu-cluster\",\n    keypair_name=\"my-keypair\",\n    instances_count=1,\n    interfaces=[{\n        \"type\": \"external\",\n    }],\n    cluster_metadata={\n        \"my-metadata-key\": \"my-metadata-value\",\n    },\n    project_id=project[\"id\"],\n    region_id=region[\"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 gpuCluster = new Gcore.AiCluster(\"gpu_cluster\", new()\n    {\n        Flavor = \"bm3-ai-1xlarge-h100-80-8\",\n        ImageId = \"37c4fa17-1f18-4904-95f2-dbf39d0318fe\",\n        ClusterName = \"my-gpu-cluster\",\n        KeypairName = \"my-keypair\",\n        InstancesCount = 1,\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.AiClusterInterfaceArgs\n            {\n                Type = \"external\",\n            },\n        },\n        ClusterMetadata = \n        {\n            { \"my-metadata-key\", \"my-metadata-value\" },\n        },\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewAiCluster(ctx, \"gpu_cluster\", \u0026gcore.AiClusterArgs{\n\t\t\tFlavor:         pulumi.String(\"bm3-ai-1xlarge-h100-80-8\"),\n\t\t\tImageId:        pulumi.String(\"37c4fa17-1f18-4904-95f2-dbf39d0318fe\"),\n\t\t\tClusterName:    pulumi.String(\"my-gpu-cluster\"),\n\t\t\tKeypairName:    pulumi.String(\"my-keypair\"),\n\t\t\tInstancesCount: pulumi.Float64(1),\n\t\t\tInterfaces: gcore.AiClusterInterfaceArray{\n\t\t\t\t\u0026gcore.AiClusterInterfaceArgs{\n\t\t\t\t\tType: pulumi.String(\"external\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tClusterMetadata: pulumi.StringMap{\n\t\t\t\t\"my-metadata-key\": pulumi.String(\"my-metadata-value\"),\n\t\t\t},\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.AiCluster;\nimport com.pulumi.gcore.AiClusterArgs;\nimport com.pulumi.gcore.inputs.AiClusterInterfaceArgs;\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 gpuCluster = new AiCluster(\"gpuCluster\", AiClusterArgs.builder()\n            .flavor(\"bm3-ai-1xlarge-h100-80-8\")\n            .imageId(\"37c4fa17-1f18-4904-95f2-dbf39d0318fe\")\n            .clusterName(\"my-gpu-cluster\")\n            .keypairName(\"my-keypair\")\n            .instancesCount(1.0)\n            .interfaces(AiClusterInterfaceArgs.builder()\n                .type(\"external\")\n                .build())\n            .clusterMetadata(Map.of(\"my-metadata-key\", \"my-metadata-value\"))\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  gpuCluster:\n    type: gcore:AiCluster\n    name: gpu_cluster\n    properties:\n      flavor: bm3-ai-1xlarge-h100-80-8\n      imageId: 37c4fa17-1f18-4904-95f2-dbf39d0318fe\n      clusterName: my-gpu-cluster\n      keypairName: my-keypair\n      instancesCount: 1\n      interfaces:\n        - type: external\n      clusterMetadata:\n        my-metadata-key: my-metadata-value\n      projectId: ${project.id}\n      regionId: ${region.id}\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\nconst gpuCluster = new gcore.AiCluster(\"gpu_cluster\", {\n    flavor: \"bm3-ai-1xlarge-h100-80-8\",\n    imageId: \"37c4fa17-1f18-4904-95f2-dbf39d0318fe\",\n    clusterName: \"my-gpu-cluster\",\n    keypairName: \"my-keypair\",\n    instancesCount: 1,\n    interfaces: [\n        {\n            type: \"external\",\n        },\n        {\n            type: \"subnet\",\n            networkId: network.id,\n            subnetId: subnet.id,\n        },\n    ],\n    projectId: project.id,\n    regionId: region.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ngpu_cluster = gcore.AiCluster(\"gpu_cluster\",\n    flavor=\"bm3-ai-1xlarge-h100-80-8\",\n    image_id=\"37c4fa17-1f18-4904-95f2-dbf39d0318fe\",\n    cluster_name=\"my-gpu-cluster\",\n    keypair_name=\"my-keypair\",\n    instances_count=1,\n    interfaces=[\n        {\n            \"type\": \"external\",\n        },\n        {\n            \"type\": \"subnet\",\n            \"network_id\": network[\"id\"],\n            \"subnet_id\": subnet[\"id\"],\n        },\n    ],\n    project_id=project[\"id\"],\n    region_id=region[\"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 gpuCluster = new Gcore.AiCluster(\"gpu_cluster\", new()\n    {\n        Flavor = \"bm3-ai-1xlarge-h100-80-8\",\n        ImageId = \"37c4fa17-1f18-4904-95f2-dbf39d0318fe\",\n        ClusterName = \"my-gpu-cluster\",\n        KeypairName = \"my-keypair\",\n        InstancesCount = 1,\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.AiClusterInterfaceArgs\n            {\n                Type = \"external\",\n            },\n            new Gcore.Inputs.AiClusterInterfaceArgs\n            {\n                Type = \"subnet\",\n                NetworkId = network.Id,\n                SubnetId = subnet.Id,\n            },\n        },\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewAiCluster(ctx, \"gpu_cluster\", \u0026gcore.AiClusterArgs{\n\t\t\tFlavor:         pulumi.String(\"bm3-ai-1xlarge-h100-80-8\"),\n\t\t\tImageId:        pulumi.String(\"37c4fa17-1f18-4904-95f2-dbf39d0318fe\"),\n\t\t\tClusterName:    pulumi.String(\"my-gpu-cluster\"),\n\t\t\tKeypairName:    pulumi.String(\"my-keypair\"),\n\t\t\tInstancesCount: pulumi.Float64(1),\n\t\t\tInterfaces: gcore.AiClusterInterfaceArray{\n\t\t\t\t\u0026gcore.AiClusterInterfaceArgs{\n\t\t\t\t\tType: pulumi.String(\"external\"),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.AiClusterInterfaceArgs{\n\t\t\t\t\tType:      pulumi.String(\"subnet\"),\n\t\t\t\t\tNetworkId: pulumi.Any(network.Id),\n\t\t\t\t\tSubnetId:  pulumi.Any(subnet.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.AiCluster;\nimport com.pulumi.gcore.AiClusterArgs;\nimport com.pulumi.gcore.inputs.AiClusterInterfaceArgs;\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 gpuCluster = new AiCluster(\"gpuCluster\", AiClusterArgs.builder()\n            .flavor(\"bm3-ai-1xlarge-h100-80-8\")\n            .imageId(\"37c4fa17-1f18-4904-95f2-dbf39d0318fe\")\n            .clusterName(\"my-gpu-cluster\")\n            .keypairName(\"my-keypair\")\n            .instancesCount(1.0)\n            .interfaces(            \n                AiClusterInterfaceArgs.builder()\n                    .type(\"external\")\n                    .build(),\n                AiClusterInterfaceArgs.builder()\n                    .type(\"subnet\")\n                    .networkId(network.id())\n                    .subnetId(subnet.id())\n                    .build())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  gpuCluster:\n    type: gcore:AiCluster\n    name: gpu_cluster\n    properties:\n      flavor: bm3-ai-1xlarge-h100-80-8\n      imageId: 37c4fa17-1f18-4904-95f2-dbf39d0318fe\n      clusterName: my-gpu-cluster\n      keypairName: my-keypair\n      instancesCount: 1\n      interfaces:\n        - type: external\n        - type: subnet\n          networkId: ${network.id}\n          subnetId: ${subnet.id}\n      projectId: ${project.id}\n      regionId: ${region.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003ccluster_id\u003e format\n\n```sh\n$ pulumi import gcore:index/aiCluster:AiCluster cluster1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"aiClusterId":{"type":"string","description":"The ID of this resource.\n"},"attachedInterfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterAttachedInterface:AiClusterAttachedInterface"},"description":"List of attached interfaces to all instances of the cluster.\n"},"clusterMetadata":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of metadata items. Key-value pairs for GPU cluster metadata. Example: {'environment': 'production', 'owner': 'user'}\n"},"clusterName":{"type":"string","description":"GPU Cluster Name\n"},"clusterStatus":{"type":"string","description":"GPU Cluster status\n"},"createdAt":{"type":"string","description":"Datetime when the GPU cluster was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"flavor":{"type":"string","description":"Flavor ID (name)\n"},"imageId":{"type":"string","description":"Image ID\n"},"imageName":{"type":"string","description":"Image name\n"},"instancesCount":{"type":"number","description":"Number of servers in the GPU cluster\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterInterface:AiClusterInterface"},"description":"Networks managed by user and associated with the cluster\n"},"keypairName":{"type":"string","description":"The name of the SSH keypair to use for the GPU servers\n"},"password":{"type":"string","description":"A password for servers in GPU cluster. This parameter is used to set a password for the Admin user on a Windows instance, a default user or a new user on a Linux instance\n"},"poplarServers":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterPoplarServer:AiClusterPoplarServer"},"description":"GPU cluster servers list\n"},"projectId":{"type":"number","description":"Project ID, only one of project*id or project*name should be set\n"},"projectName":{"type":"string","description":"Project name, only one of project*id or project*name should be set\n"},"regionId":{"type":"number","description":"Region ID, only one of region*id or region*name should be set\n"},"regionName":{"type":"string","description":"Region name, only one of region*id or region*name should be set\n"},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterSecurityGroup:AiClusterSecurityGroup"},"description":"Security groups attached to the cluster\n"},"taskId":{"type":"string","description":"Task ID associated with the cluster\n"},"taskStatus":{"type":"string","description":"Task status\n"},"userData":{"type":"string","description":"User data string in base64 format. This is passed to the instance at launch. 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'\n"},"username":{"type":"string","description":"A name of a new user in the Linux instance. It may be passed with a 'password' parameter\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterVolume:AiClusterVolume"},"description":"List of volumes attached to the cluster\n"}},"type":"object","required":["aiClusterId","attachedInterfaces","clusterMetadata","clusterName","clusterStatus","createdAt","creatorTaskId","flavor","imageId","imageName","interfaces","password","poplarServers","regionName","taskId","taskStatus","userData","username"],"inputProperties":{"aiClusterId":{"type":"string","description":"The ID of this resource.\n"},"clusterMetadata":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of metadata items. Key-value pairs for GPU cluster metadata. Example: {'environment': 'production', 'owner': 'user'}\n"},"clusterName":{"type":"string","description":"GPU Cluster Name\n"},"clusterStatus":{"type":"string","description":"GPU Cluster status\n"},"flavor":{"type":"string","description":"Flavor ID (name)\n"},"imageId":{"type":"string","description":"Image ID\n"},"instancesCount":{"type":"number","description":"Number of servers in the GPU cluster\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterInterface:AiClusterInterface"},"description":"Networks managed by user and associated with the cluster\n"},"keypairName":{"type":"string","description":"The name of the SSH keypair to use for the GPU servers\n"},"password":{"type":"string","description":"A password for servers in GPU cluster. This parameter is used to set a password for the Admin user on a Windows instance, a default user or a new user on a Linux instance\n"},"projectId":{"type":"number","description":"Project ID, only one of project*id or project*name should be set\n"},"projectName":{"type":"string","description":"Project name, only one of project*id or project*name should be set\n"},"regionId":{"type":"number","description":"Region ID, only one of region*id or region*name should be set\n"},"regionName":{"type":"string","description":"Region name, only one of region*id or region*name should be set\n"},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterSecurityGroup:AiClusterSecurityGroup"},"description":"Security groups attached to the cluster\n"},"userData":{"type":"string","description":"User data string in base64 format. This is passed to the instance at launch. 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'\n"},"username":{"type":"string","description":"A name of a new user in the Linux instance. It may be passed with a 'password' parameter\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterVolume:AiClusterVolume"},"description":"List of volumes attached to the cluster\n"}},"requiredInputs":["clusterName","flavor","imageId","interfaces"],"stateInputs":{"description":"Input properties used for looking up and filtering AiCluster resources.\n","properties":{"aiClusterId":{"type":"string","description":"The ID of this resource.\n"},"attachedInterfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterAttachedInterface:AiClusterAttachedInterface"},"description":"List of attached interfaces to all instances of the cluster.\n"},"clusterMetadata":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of metadata items. Key-value pairs for GPU cluster metadata. Example: {'environment': 'production', 'owner': 'user'}\n"},"clusterName":{"type":"string","description":"GPU Cluster Name\n"},"clusterStatus":{"type":"string","description":"GPU Cluster status\n"},"createdAt":{"type":"string","description":"Datetime when the GPU cluster was created\n"},"creatorTaskId":{"type":"string","description":"Task that created this entity\n"},"flavor":{"type":"string","description":"Flavor ID (name)\n"},"imageId":{"type":"string","description":"Image ID\n"},"imageName":{"type":"string","description":"Image name\n"},"instancesCount":{"type":"number","description":"Number of servers in the GPU cluster\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterInterface:AiClusterInterface"},"description":"Networks managed by user and associated with the cluster\n"},"keypairName":{"type":"string","description":"The name of the SSH keypair to use for the GPU servers\n"},"password":{"type":"string","description":"A password for servers in GPU cluster. This parameter is used to set a password for the Admin user on a Windows instance, a default user or a new user on a Linux instance\n"},"poplarServers":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterPoplarServer:AiClusterPoplarServer"},"description":"GPU cluster servers list\n"},"projectId":{"type":"number","description":"Project ID, only one of project*id or project*name should be set\n"},"projectName":{"type":"string","description":"Project name, only one of project*id or project*name should be set\n"},"regionId":{"type":"number","description":"Region ID, only one of region*id or region*name should be set\n"},"regionName":{"type":"string","description":"Region name, only one of region*id or region*name should be set\n"},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterSecurityGroup:AiClusterSecurityGroup"},"description":"Security groups attached to the cluster\n"},"taskId":{"type":"string","description":"Task ID associated with the cluster\n"},"taskStatus":{"type":"string","description":"Task status\n"},"userData":{"type":"string","description":"User data string in base64 format. This is passed to the instance at launch. 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'\n"},"username":{"type":"string","description":"A name of a new user in the Linux instance. It may be passed with a 'password' parameter\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FAiClusterVolume:AiClusterVolume"},"description":"List of volumes attached to the cluster\n"}},"type":"object"}},"gcore:index/baremetal:Baremetal":{"description":"Represent baremetal instance\n\n## 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\nconst project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\nconst network = new gcore.Network(\"network\", {\n    name: \"my-network\",\n    type: \"vlan\",\n    projectId: project.then(project =\u003e project.id),\n    regionId: region.then(region =\u003e region.id),\n});\nconst subnet = new gcore.Subnet(\"subnet\", {\n    name: \"my-subnet\",\n    cidr: \"192.168.10.0/24\",\n    networkId: network.networkId,\n    projectId: project.then(project =\u003e project.id),\n    regionId: region.then(region =\u003e region.id),\n});\nconst ubuntu = Promise.all([region, project]).then(([region, project]) =\u003e gcore.getImage({\n    name: \"ubuntu-24.04-x64\",\n    isBaremetal: true,\n    regionId: region.id,\n    projectId: project.id,\n}));\nconst keypair = new gcore.Keypair(\"keypair\", {\n    projectId: project.then(project =\u003e project.id),\n    sshkeyName: \"my-keypair\",\n    publicKey: \"ssh-ed25519 ...your public key... gcore@gcore.com\",\n});\nconst windows = Promise.all([region, project]).then(([region, project]) =\u003e gcore.getImage({\n    name: \"windows-server-standard-2022-ironic\",\n    isBaremetal: true,\n    regionId: region.id,\n    projectId: project.id,\n}));\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\nnetwork = gcore.Network(\"network\",\n    name=\"my-network\",\n    type=\"vlan\",\n    project_id=project.id,\n    region_id=region.id)\nsubnet = gcore.Subnet(\"subnet\",\n    name=\"my-subnet\",\n    cidr=\"192.168.10.0/24\",\n    network_id=network.network_id,\n    project_id=project.id,\n    region_id=region.id)\nubuntu = gcore.get_image(name=\"ubuntu-24.04-x64\",\n    is_baremetal=True,\n    region_id=region.id,\n    project_id=project.id)\nkeypair = gcore.Keypair(\"keypair\",\n    project_id=project.id,\n    sshkey_name=\"my-keypair\",\n    public_key=\"ssh-ed25519 ...your public key... gcore@gcore.com\")\nwindows = gcore.get_image(name=\"windows-server-standard-2022-ironic\",\n    is_baremetal=True,\n    region_id=region.id,\n    project_id=project.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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n    var network = new Gcore.Network(\"network\", new()\n    {\n        Name = \"my-network\",\n        Type = \"vlan\",\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n    });\n\n    var subnet = new Gcore.Subnet(\"subnet\", new()\n    {\n        Name = \"my-subnet\",\n        Cidr = \"192.168.10.0/24\",\n        NetworkId = network.NetworkId,\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n    });\n\n    var ubuntu = Gcore.GetImage.Invoke(new()\n    {\n        Name = \"ubuntu-24.04-x64\",\n        IsBaremetal = true,\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    var keypair = new Gcore.Keypair(\"keypair\", new()\n    {\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        SshkeyName = \"my-keypair\",\n        PublicKey = \"ssh-ed25519 ...your public key... gcore@gcore.com\",\n    });\n\n    var windows = Gcore.GetImage.Invoke(new()\n    {\n        Name = \"windows-server-standard-2022-ironic\",\n        IsBaremetal = true,\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tproject, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tregion, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork, err := gcore.NewNetwork(ctx, \"network\", \u0026gcore.NetworkArgs{\n\t\t\tName:      pulumi.String(\"my-network\"),\n\t\t\tType:      pulumi.String(\"vlan\"),\n\t\t\tProjectId: pulumi.String(project.Id),\n\t\t\tRegionId:  pulumi.String(region.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewSubnet(ctx, \"subnet\", \u0026gcore.SubnetArgs{\n\t\t\tName:      pulumi.String(\"my-subnet\"),\n\t\t\tCidr:      pulumi.String(\"192.168.10.0/24\"),\n\t\t\tNetworkId: network.NetworkId,\n\t\t\tProjectId: pulumi.String(project.Id),\n\t\t\tRegionId:  pulumi.String(region.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.GetImage(ctx, \u0026gcore.GetImageArgs{\n\t\t\tName:        pulumi.StringRef(\"ubuntu-24.04-x64\"),\n\t\t\tIsBaremetal: pulumi.BoolRef(true),\n\t\t\tRegionId:    pulumi.Float64Ref(region.Id),\n\t\t\tProjectId:   pulumi.Float64Ref(project.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewKeypair(ctx, \"keypair\", \u0026gcore.KeypairArgs{\n\t\t\tProjectId:  pulumi.String(project.Id),\n\t\t\tSshkeyName: 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.GetImage(ctx, \u0026gcore.GetImageArgs{\n\t\t\tName:        pulumi.StringRef(\"windows-server-standard-2022-ironic\"),\n\t\t\tIsBaremetal: pulumi.BoolRef(true),\n\t\t\tRegionId:    pulumi.Float64Ref(region.Id),\n\t\t\tProjectId:   pulumi.Float64Ref(project.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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.Network;\nimport com.pulumi.gcore.NetworkArgs;\nimport com.pulumi.gcore.Subnet;\nimport com.pulumi.gcore.SubnetArgs;\nimport com.pulumi.gcore.inputs.GetImageArgs;\nimport com.pulumi.gcore.Keypair;\nimport com.pulumi.gcore.KeypairArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n        var network = new Network(\"network\", NetworkArgs.builder()\n            .name(\"my-network\")\n            .type(\"vlan\")\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        var subnet = new Subnet(\"subnet\", SubnetArgs.builder()\n            .name(\"my-subnet\")\n            .cidr(\"192.168.10.0/24\")\n            .networkId(network.networkId())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        final var ubuntu = GcoreFunctions.getImage(GetImageArgs.builder()\n            .name(\"ubuntu-24.04-x64\")\n            .isBaremetal(true)\n            .regionId(region.id())\n            .projectId(project.id())\n            .build());\n\n        var keypair = new Keypair(\"keypair\", KeypairArgs.builder()\n            .projectId(project.id())\n            .sshkeyName(\"my-keypair\")\n            .publicKey(\"ssh-ed25519 ...your public key... gcore@gcore.com\")\n            .build());\n\n        final var windows = GcoreFunctions.getImage(GetImageArgs.builder()\n            .name(\"windows-server-standard-2022-ironic\")\n            .isBaremetal(true)\n            .regionId(region.id())\n            .projectId(project.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  network:\n    type: gcore:Network\n    properties:\n      name: my-network\n      type: vlan\n      projectId: ${project.id}\n      regionId: ${region.id}\n  subnet:\n    type: gcore:Subnet\n    properties:\n      name: my-subnet\n      cidr: 192.168.10.0/24\n      networkId: ${network.networkId}\n      projectId: ${project.id}\n      regionId: ${region.id}\n  keypair:\n    type: gcore:Keypair\n    properties:\n      projectId: ${project.id}\n      sshkeyName: my-keypair\n      publicKey: ssh-ed25519 ...your public key... gcore@gcore.com\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n  ubuntu:\n    fn::invoke:\n      function: gcore:getImage\n      arguments:\n        name: ubuntu-24.04-x64\n        isBaremetal: true\n        regionId: ${region.id}\n        projectId: ${project.id}\n  windows:\n    fn::invoke:\n      function: gcore:getImage\n      arguments:\n        name: windows-server-standard-2022-ironic\n        isBaremetal: true\n        regionId: ${region.id}\n        projectId: ${project.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Basic example\n\n### Creating baremetal instance with one public interface\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst baremetalWithOneInterface = new gcore.Baremetal(\"baremetal_with_one_interface\", {\n    flavorId: \"bm1-infrastructure-small\",\n    name: \"my-baremetal\",\n    keypairName: \"my-keypair\",\n    imageId: ubuntu.id,\n    interfaces: [{\n        type: \"external\",\n    }],\n    projectId: project.id,\n    regionId: region.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nbaremetal_with_one_interface = gcore.Baremetal(\"baremetal_with_one_interface\",\n    flavor_id=\"bm1-infrastructure-small\",\n    name=\"my-baremetal\",\n    keypair_name=\"my-keypair\",\n    image_id=ubuntu[\"id\"],\n    interfaces=[{\n        \"type\": \"external\",\n    }],\n    project_id=project[\"id\"],\n    region_id=region[\"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 baremetalWithOneInterface = new Gcore.Baremetal(\"baremetal_with_one_interface\", new()\n    {\n        FlavorId = \"bm1-infrastructure-small\",\n        Name = \"my-baremetal\",\n        KeypairName = \"my-keypair\",\n        ImageId = ubuntu.Id,\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.BaremetalInterfaceArgs\n            {\n                Type = \"external\",\n            },\n        },\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewBaremetal(ctx, \"baremetal_with_one_interface\", \u0026gcore.BaremetalArgs{\n\t\t\tFlavorId:    pulumi.String(\"bm1-infrastructure-small\"),\n\t\t\tName:        pulumi.String(\"my-baremetal\"),\n\t\t\tKeypairName: pulumi.String(\"my-keypair\"),\n\t\t\tImageId:     pulumi.Any(ubuntu.Id),\n\t\t\tInterfaces: gcore.BaremetalInterfaceArray{\n\t\t\t\t\u0026gcore.BaremetalInterfaceArgs{\n\t\t\t\t\tType: pulumi.String(\"external\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.Baremetal;\nimport com.pulumi.gcore.BaremetalArgs;\nimport com.pulumi.gcore.inputs.BaremetalInterfaceArgs;\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 baremetalWithOneInterface = new Baremetal(\"baremetalWithOneInterface\", BaremetalArgs.builder()\n            .flavorId(\"bm1-infrastructure-small\")\n            .name(\"my-baremetal\")\n            .keypairName(\"my-keypair\")\n            .imageId(ubuntu.id())\n            .interfaces(BaremetalInterfaceArgs.builder()\n                .type(\"external\")\n                .build())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  baremetalWithOneInterface:\n    type: gcore:Baremetal\n    name: baremetal_with_one_interface\n    properties:\n      flavorId: bm1-infrastructure-small\n      name: my-baremetal\n      keypairName: my-keypair\n      imageId: ${ubuntu.id}\n      interfaces:\n        - type: external\n      projectId: ${project.id}\n      regionId: ${region.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating instance with two interfaces\n\nThis example demonstrates how to create a baremetal 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\nconst baremetalWithTwoInterface = new gcore.Baremetal(\"baremetal_with_two_interface\", {\n    flavorId: \"bm1-infrastructure-small\",\n    name: \"my-baremetal\",\n    keypairName: \"my-keypair\",\n    imageId: ubuntu.id,\n    interfaces: [\n        {\n            type: \"external\",\n        },\n        {\n            type: \"subnet\",\n            networkId: network.id,\n            subnetId: subnet.id,\n        },\n    ],\n    projectId: project.id,\n    regionId: region.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nbaremetal_with_two_interface = gcore.Baremetal(\"baremetal_with_two_interface\",\n    flavor_id=\"bm1-infrastructure-small\",\n    name=\"my-baremetal\",\n    keypair_name=\"my-keypair\",\n    image_id=ubuntu[\"id\"],\n    interfaces=[\n        {\n            \"type\": \"external\",\n        },\n        {\n            \"type\": \"subnet\",\n            \"network_id\": network[\"id\"],\n            \"subnet_id\": subnet[\"id\"],\n        },\n    ],\n    project_id=project[\"id\"],\n    region_id=region[\"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 baremetalWithTwoInterface = new Gcore.Baremetal(\"baremetal_with_two_interface\", new()\n    {\n        FlavorId = \"bm1-infrastructure-small\",\n        Name = \"my-baremetal\",\n        KeypairName = \"my-keypair\",\n        ImageId = ubuntu.Id,\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.BaremetalInterfaceArgs\n            {\n                Type = \"external\",\n            },\n            new Gcore.Inputs.BaremetalInterfaceArgs\n            {\n                Type = \"subnet\",\n                NetworkId = network.Id,\n                SubnetId = subnet.Id,\n            },\n        },\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewBaremetal(ctx, \"baremetal_with_two_interface\", \u0026gcore.BaremetalArgs{\n\t\t\tFlavorId:    pulumi.String(\"bm1-infrastructure-small\"),\n\t\t\tName:        pulumi.String(\"my-baremetal\"),\n\t\t\tKeypairName: pulumi.String(\"my-keypair\"),\n\t\t\tImageId:     pulumi.Any(ubuntu.Id),\n\t\t\tInterfaces: gcore.BaremetalInterfaceArray{\n\t\t\t\t\u0026gcore.BaremetalInterfaceArgs{\n\t\t\t\t\tType: pulumi.String(\"external\"),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.BaremetalInterfaceArgs{\n\t\t\t\t\tType:      pulumi.String(\"subnet\"),\n\t\t\t\t\tNetworkId: pulumi.Any(network.Id),\n\t\t\t\t\tSubnetId:  pulumi.Any(subnet.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.Baremetal;\nimport com.pulumi.gcore.BaremetalArgs;\nimport com.pulumi.gcore.inputs.BaremetalInterfaceArgs;\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 baremetalWithTwoInterface = new Baremetal(\"baremetalWithTwoInterface\", BaremetalArgs.builder()\n            .flavorId(\"bm1-infrastructure-small\")\n            .name(\"my-baremetal\")\n            .keypairName(\"my-keypair\")\n            .imageId(ubuntu.id())\n            .interfaces(            \n                BaremetalInterfaceArgs.builder()\n                    .type(\"external\")\n                    .build(),\n                BaremetalInterfaceArgs.builder()\n                    .type(\"subnet\")\n                    .networkId(network.id())\n                    .subnetId(subnet.id())\n                    .build())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  baremetalWithTwoInterface:\n    type: gcore:Baremetal\n    name: baremetal_with_two_interface\n    properties:\n      flavorId: bm1-infrastructure-small\n      name: my-baremetal\n      keypairName: my-keypair\n      imageId: ${ubuntu.id}\n      interfaces:\n        - type: external\n        - type: subnet\n          networkId: ${network.id}\n          subnetId: ${subnet.id}\n      projectId: ${project.id}\n      regionId: ${region.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Windows baremetal instance with one public interface\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst windowsBaremetal = new gcore.Baremetal(\"windows_baremetal\", {\n    flavorId: \"bm1-infrastructure-small\",\n    name: \"my-windows-baremetal\",\n    password: \"my-s3cR3tP@ssw0rd\",\n    imageId: windows.id,\n    interfaces: [{\n        type: \"external\",\n    }],\n    projectId: project.id,\n    regionId: region.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nwindows_baremetal = gcore.Baremetal(\"windows_baremetal\",\n    flavor_id=\"bm1-infrastructure-small\",\n    name=\"my-windows-baremetal\",\n    password=\"my-s3cR3tP@ssw0rd\",\n    image_id=windows[\"id\"],\n    interfaces=[{\n        \"type\": \"external\",\n    }],\n    project_id=project[\"id\"],\n    region_id=region[\"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 windowsBaremetal = new Gcore.Baremetal(\"windows_baremetal\", new()\n    {\n        FlavorId = \"bm1-infrastructure-small\",\n        Name = \"my-windows-baremetal\",\n        Password = \"my-s3cR3tP@ssw0rd\",\n        ImageId = windows.Id,\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.BaremetalInterfaceArgs\n            {\n                Type = \"external\",\n            },\n        },\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewBaremetal(ctx, \"windows_baremetal\", \u0026gcore.BaremetalArgs{\n\t\t\tFlavorId: pulumi.String(\"bm1-infrastructure-small\"),\n\t\t\tName:     pulumi.String(\"my-windows-baremetal\"),\n\t\t\tPassword: pulumi.String(\"my-s3cR3tP@ssw0rd\"),\n\t\t\tImageId:  pulumi.Any(windows.Id),\n\t\t\tInterfaces: gcore.BaremetalInterfaceArray{\n\t\t\t\t\u0026gcore.BaremetalInterfaceArgs{\n\t\t\t\t\tType: pulumi.String(\"external\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.Baremetal;\nimport com.pulumi.gcore.BaremetalArgs;\nimport com.pulumi.gcore.inputs.BaremetalInterfaceArgs;\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 windowsBaremetal = new Baremetal(\"windowsBaremetal\", BaremetalArgs.builder()\n            .flavorId(\"bm1-infrastructure-small\")\n            .name(\"my-windows-baremetal\")\n            .password(\"my-s3cR3tP@ssw0rd\")\n            .imageId(windows.id())\n            .interfaces(BaremetalInterfaceArgs.builder()\n                .type(\"external\")\n                .build())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  windowsBaremetal:\n    type: gcore:Baremetal\n    name: windows_baremetal\n    properties:\n      flavorId: bm1-infrastructure-small\n      name: my-windows-baremetal\n      password: my-s3cR3tP@ssw0rd\n      imageId: ${windows.id}\n      interfaces:\n        - type: external\n      projectId: ${project.id}\n      regionId: ${region.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Advanced examples\n\n### Creating baremetal instance with floating ip\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst fixedIp = new gcore.Reservedfixedip(\"fixed_ip\", {\n    projectId: project.id,\n    regionId: region.id,\n    type: \"subnet\",\n    networkId: network.id,\n    subnetId: subnet.id,\n});\nconst floatingIp = new gcore.Floatingip(\"floating_ip\", {\n    projectId: project.id,\n    regionId: region.id,\n    fixedIpAddress: fixedIp.fixedIpAddress,\n    portId: fixedIp.portId,\n});\nconst baremetalWithFloatingIp = new gcore.Baremetal(\"baremetal_with_floating_ip\", {\n    flavorId: \"bm1-infrastructure-small\",\n    name: \"my-baremetal\",\n    keypairName: \"my-keypair\",\n    imageId: ubuntu.id,\n    interfaces: [{\n        type: \"reserved_fixed_ip\",\n        portId: fixedIp.portId,\n        existingFipId: floatingIp.floatingipId,\n    }],\n    projectId: project.id,\n    regionId: region.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nfixed_ip = gcore.Reservedfixedip(\"fixed_ip\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    type=\"subnet\",\n    network_id=network[\"id\"],\n    subnet_id=subnet[\"id\"])\nfloating_ip = gcore.Floatingip(\"floating_ip\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    fixed_ip_address=fixed_ip.fixed_ip_address,\n    port_id=fixed_ip.port_id)\nbaremetal_with_floating_ip = gcore.Baremetal(\"baremetal_with_floating_ip\",\n    flavor_id=\"bm1-infrastructure-small\",\n    name=\"my-baremetal\",\n    keypair_name=\"my-keypair\",\n    image_id=ubuntu[\"id\"],\n    interfaces=[{\n        \"type\": \"reserved_fixed_ip\",\n        \"port_id\": fixed_ip.port_id,\n        \"existing_fip_id\": floating_ip.floatingip_id,\n    }],\n    project_id=project[\"id\"],\n    region_id=region[\"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 fixedIp = new Gcore.Reservedfixedip(\"fixed_ip\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Type = \"subnet\",\n        NetworkId = network.Id,\n        SubnetId = subnet.Id,\n    });\n\n    var floatingIp = new Gcore.Floatingip(\"floating_ip\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        FixedIpAddress = fixedIp.FixedIpAddress,\n        PortId = fixedIp.PortId,\n    });\n\n    var baremetalWithFloatingIp = new Gcore.Baremetal(\"baremetal_with_floating_ip\", new()\n    {\n        FlavorId = \"bm1-infrastructure-small\",\n        Name = \"my-baremetal\",\n        KeypairName = \"my-keypair\",\n        ImageId = ubuntu.Id,\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.BaremetalInterfaceArgs\n            {\n                Type = \"reserved_fixed_ip\",\n                PortId = fixedIp.PortId,\n                ExistingFipId = floatingIp.FloatingipId,\n            },\n        },\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tfixedIp, err := gcore.NewReservedfixedip(ctx, \"fixed_ip\", \u0026gcore.ReservedfixedipArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\tType:      pulumi.String(\"subnet\"),\n\t\t\tNetworkId: pulumi.Any(network.Id),\n\t\t\tSubnetId:  pulumi.Any(subnet.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfloatingIp, err := gcore.NewFloatingip(ctx, \"floating_ip\", \u0026gcore.FloatingipArgs{\n\t\t\tProjectId:      pulumi.Any(project.Id),\n\t\t\tRegionId:       pulumi.Any(region.Id),\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_, err = gcore.NewBaremetal(ctx, \"baremetal_with_floating_ip\", \u0026gcore.BaremetalArgs{\n\t\t\tFlavorId:    pulumi.String(\"bm1-infrastructure-small\"),\n\t\t\tName:        pulumi.String(\"my-baremetal\"),\n\t\t\tKeypairName: pulumi.String(\"my-keypair\"),\n\t\t\tImageId:     pulumi.Any(ubuntu.Id),\n\t\t\tInterfaces: gcore.BaremetalInterfaceArray{\n\t\t\t\t\u0026gcore.BaremetalInterfaceArgs{\n\t\t\t\t\tType:          pulumi.String(\"reserved_fixed_ip\"),\n\t\t\t\t\tPortId:        fixedIp.PortId,\n\t\t\t\t\tExistingFipId: floatingIp.FloatingipId,\n\t\t\t\t},\n\t\t\t},\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.Reservedfixedip;\nimport com.pulumi.gcore.ReservedfixedipArgs;\nimport com.pulumi.gcore.Floatingip;\nimport com.pulumi.gcore.FloatingipArgs;\nimport com.pulumi.gcore.Baremetal;\nimport com.pulumi.gcore.BaremetalArgs;\nimport com.pulumi.gcore.inputs.BaremetalInterfaceArgs;\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 fixedIp = new Reservedfixedip(\"fixedIp\", ReservedfixedipArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .type(\"subnet\")\n            .networkId(network.id())\n            .subnetId(subnet.id())\n            .build());\n\n        var floatingIp = new Floatingip(\"floatingIp\", FloatingipArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .fixedIpAddress(fixedIp.fixedIpAddress())\n            .portId(fixedIp.portId())\n            .build());\n\n        var baremetalWithFloatingIp = new Baremetal(\"baremetalWithFloatingIp\", BaremetalArgs.builder()\n            .flavorId(\"bm1-infrastructure-small\")\n            .name(\"my-baremetal\")\n            .keypairName(\"my-keypair\")\n            .imageId(ubuntu.id())\n            .interfaces(BaremetalInterfaceArgs.builder()\n                .type(\"reserved_fixed_ip\")\n                .portId(fixedIp.portId())\n                .existingFipId(floatingIp.floatingipId())\n                .build())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  fixedIp:\n    type: gcore:Reservedfixedip\n    name: fixed_ip\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      type: subnet\n      networkId: ${network.id}\n      subnetId: ${subnet.id}\n  floatingIp:\n    type: gcore:Floatingip\n    name: floating_ip\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      fixedIpAddress: ${fixedIp.fixedIpAddress}\n      portId: ${fixedIp.portId}\n  baremetalWithFloatingIp:\n    type: gcore:Baremetal\n    name: baremetal_with_floating_ip\n    properties:\n      flavorId: bm1-infrastructure-small\n      name: my-baremetal\n      keypairName: my-keypair\n      imageId: ${ubuntu.id}\n      interfaces:\n        - type: reserved_fixed_ip\n          portId: ${fixedIp.portId}\n          existingFipId: ${floatingIp.floatingipId}\n      projectId: ${project.id}\n      regionId: ${region.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating instance with a reserved public interface\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst externalFixedIp = new gcore.Reservedfixedip(\"external_fixed_ip\", {\n    projectId: project.id,\n    regionId: region.id,\n    type: \"external\",\n});\nconst baremetalWithReservedAddress = new gcore.Baremetal(\"baremetal_with_reserved_address\", {\n    flavorId: \"bm1-infrastructure-small\",\n    name: \"my-baremetal\",\n    keypairName: \"my-keypair\",\n    imageId: ubuntu.id,\n    interfaces: [{\n        type: \"reserved_fixed_ip\",\n        portId: externalFixedIp.portId,\n    }],\n    projectId: project.id,\n    regionId: region.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexternal_fixed_ip = gcore.Reservedfixedip(\"external_fixed_ip\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    type=\"external\")\nbaremetal_with_reserved_address = gcore.Baremetal(\"baremetal_with_reserved_address\",\n    flavor_id=\"bm1-infrastructure-small\",\n    name=\"my-baremetal\",\n    keypair_name=\"my-keypair\",\n    image_id=ubuntu[\"id\"],\n    interfaces=[{\n        \"type\": \"reserved_fixed_ip\",\n        \"port_id\": external_fixed_ip.port_id,\n    }],\n    project_id=project[\"id\"],\n    region_id=region[\"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 externalFixedIp = new Gcore.Reservedfixedip(\"external_fixed_ip\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Type = \"external\",\n    });\n\n    var baremetalWithReservedAddress = new Gcore.Baremetal(\"baremetal_with_reserved_address\", new()\n    {\n        FlavorId = \"bm1-infrastructure-small\",\n        Name = \"my-baremetal\",\n        KeypairName = \"my-keypair\",\n        ImageId = ubuntu.Id,\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.BaremetalInterfaceArgs\n            {\n                Type = \"reserved_fixed_ip\",\n                PortId = externalFixedIp.PortId,\n            },\n        },\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\texternalFixedIp, err := gcore.NewReservedfixedip(ctx, \"external_fixed_ip\", \u0026gcore.ReservedfixedipArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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_, err = gcore.NewBaremetal(ctx, \"baremetal_with_reserved_address\", \u0026gcore.BaremetalArgs{\n\t\t\tFlavorId:    pulumi.String(\"bm1-infrastructure-small\"),\n\t\t\tName:        pulumi.String(\"my-baremetal\"),\n\t\t\tKeypairName: pulumi.String(\"my-keypair\"),\n\t\t\tImageId:     pulumi.Any(ubuntu.Id),\n\t\t\tInterfaces: gcore.BaremetalInterfaceArray{\n\t\t\t\t\u0026gcore.BaremetalInterfaceArgs{\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\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.Reservedfixedip;\nimport com.pulumi.gcore.ReservedfixedipArgs;\nimport com.pulumi.gcore.Baremetal;\nimport com.pulumi.gcore.BaremetalArgs;\nimport com.pulumi.gcore.inputs.BaremetalInterfaceArgs;\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 externalFixedIp = new Reservedfixedip(\"externalFixedIp\", ReservedfixedipArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .type(\"external\")\n            .build());\n\n        var baremetalWithReservedAddress = new Baremetal(\"baremetalWithReservedAddress\", BaremetalArgs.builder()\n            .flavorId(\"bm1-infrastructure-small\")\n            .name(\"my-baremetal\")\n            .keypairName(\"my-keypair\")\n            .imageId(ubuntu.id())\n            .interfaces(BaremetalInterfaceArgs.builder()\n                .type(\"reserved_fixed_ip\")\n                .portId(externalFixedIp.portId())\n                .build())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  externalFixedIp:\n    type: gcore:Reservedfixedip\n    name: external_fixed_ip\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      type: external\n  baremetalWithReservedAddress:\n    type: gcore:Baremetal\n    name: baremetal_with_reserved_address\n    properties:\n      flavorId: bm1-infrastructure-small\n      name: my-baremetal\n      keypairName: my-keypair\n      imageId: ${ubuntu.id}\n      interfaces:\n        - type: reserved_fixed_ip\n          portId: ${externalFixedIp.portId}\n      projectId: ${project.id}\n      regionId: ${region.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n## Import\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003cinstance_id\u003e format\n\n```sh\n$ pulumi import gcore:index/baremetal:Baremetal instance1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"addresses":{"type":"array","items":{"$ref":"#/types/gcore:index%2FBaremetalAddress:BaremetalAddress"}},"appConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"Parameters for the application template from the marketplace. This could include parameters required for app setup. Example: {'shadowsocks*method': 'chacha20-ietf-poly1305', 'shadowsocks*password': '123'}\n"},"apptemplateId":{"type":"string","description":"The ID of the application template to use. Provide either 'apptemplate*id' or 'image*id', but not both\n"},"baremetalId":{"type":"string","description":"The ID of this resource.\n"},"flavor":{"type":"object","additionalProperties":{"type":"string"},"description":"Details about the flavor (server configuration) including RAM, vCPU, etc.\n"},"flavorId":{"type":"string","description":"The ID of the flavor (type of server configuration). This field is required. Example: 'bm1-hf-medium-4x1nic'\n"},"imageId":{"type":"string","description":"The ID of the image to use. The image will be used to provision the bare metal server. Provide either 'image*id' or 'apptemplate*id', but not both\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FBaremetalInterface:BaremetalInterface"}},"keypairName":{"type":"string","description":"The name of the SSH keypair to use for the baremetal\n"},"lastUpdated":{"type":"string","description":"The date and time when the baremetal server was last updated\n"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of metadata items. Key-value pairs for instance metadata. Example: {'environment': 'production', 'owner': 'user'}\n"},"metadatas":{"type":"array","items":{"$ref":"#/types/gcore:index%2FBaremetalMetadata:BaremetalMetadata"},"deprecationMessage":"Deprecated"},"name":{"type":"string","description":"The name of the baremetal server. If not provided, it will be generated automatically. Example: 'bm-server-01'\n"},"nameTemplate":{"type":"string","description":"The template used to generate server names. You can use forms 'ip*octets', 'two*ip*octets', 'one*ip*octet'. Example: 'server-${ip*octets}'\n"},"nameTemplates":{"type":"array","items":{"type":"string"},"description":"Deprecated. List of baremetal names which will be changed by template\n","deprecationMessage":"Deprecated"},"password":{"type":"string","description":"The password for accessing the baremetal server. This parameter is used to set a password for the 'Admin' user on a Windows instance, a default user or a new user on a Linux instance\n"},"projectId":{"type":"number","description":"Project ID, only one of project*id or project*name should be set\n"},"projectName":{"type":"string","description":"Project name, only one of project*id or project*name should be set\n"},"regionId":{"type":"number","description":"Region ID, only one of region*id or region*name should be set\n"},"regionName":{"type":"string","description":"Region name, only one of region*id or region*name should be set\n"},"status":{"type":"string","description":"The current status of the baremetal server.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FBaremetalTimeouts:BaremetalTimeouts"},"userData":{"type":"string","description":"User data string in base64 format. This is passed to the instance at launch. 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'\n"},"username":{"type":"string","description":"A name of a new user in the Linux instance. It may be passed with a 'password' parameter\n"},"vmState":{"type":"string","description":"The state of the virtual machine\n"}},"type":"object","required":["addresses","baremetalId","flavor","flavorId","interfaces","lastUpdated","name","status","vmState"],"inputProperties":{"appConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"Parameters for the application template from the marketplace. This could include parameters required for app setup. Example: {'shadowsocks*method': 'chacha20-ietf-poly1305', 'shadowsocks*password': '123'}\n"},"apptemplateId":{"type":"string","description":"The ID of the application template to use. Provide either 'apptemplate*id' or 'image*id', but not both\n"},"baremetalId":{"type":"string","description":"The ID of this resource.\n"},"flavorId":{"type":"string","description":"The ID of the flavor (type of server configuration). This field is required. Example: 'bm1-hf-medium-4x1nic'\n"},"imageId":{"type":"string","description":"The ID of the image to use. The image will be used to provision the bare metal server. Provide either 'image*id' or 'apptemplate*id', but not both\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FBaremetalInterface:BaremetalInterface"}},"keypairName":{"type":"string","description":"The name of the SSH keypair to use for the baremetal\n"},"lastUpdated":{"type":"string","description":"The date and time when the baremetal server was last updated\n"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of metadata items. Key-value pairs for instance metadata. Example: {'environment': 'production', 'owner': 'user'}\n"},"metadatas":{"type":"array","items":{"$ref":"#/types/gcore:index%2FBaremetalMetadata:BaremetalMetadata"},"deprecationMessage":"Deprecated"},"name":{"type":"string","description":"The name of the baremetal server. If not provided, it will be generated automatically. Example: 'bm-server-01'\n"},"nameTemplate":{"type":"string","description":"The template used to generate server names. You can use forms 'ip*octets', 'two*ip*octets', 'one*ip*octet'. Example: 'server-${ip*octets}'\n"},"nameTemplates":{"type":"array","items":{"type":"string"},"description":"Deprecated. List of baremetal names which will be changed by template\n","deprecationMessage":"Deprecated"},"password":{"type":"string","description":"The password for accessing the baremetal server. This parameter is used to set a password for the 'Admin' user on a Windows instance, a default user or a new user on a Linux instance\n"},"projectId":{"type":"number","description":"Project ID, only one of project*id or project*name should be set\n"},"projectName":{"type":"string","description":"Project name, only one of project*id or project*name should be set\n"},"regionId":{"type":"number","description":"Region ID, only one of region*id or region*name should be set\n"},"regionName":{"type":"string","description":"Region name, only one of region*id or region*name should be set\n"},"timeouts":{"$ref":"#/types/gcore:index%2FBaremetalTimeouts:BaremetalTimeouts"},"userData":{"type":"string","description":"User data string in base64 format. This is passed to the instance at launch. 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'\n"},"username":{"type":"string","description":"A name of a new user in the Linux instance. It may be passed with a 'password' parameter\n"}},"requiredInputs":["flavorId","interfaces"],"stateInputs":{"description":"Input properties used for looking up and filtering Baremetal resources.\n","properties":{"addresses":{"type":"array","items":{"$ref":"#/types/gcore:index%2FBaremetalAddress:BaremetalAddress"}},"appConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"Parameters for the application template from the marketplace. This could include parameters required for app setup. Example: {'shadowsocks*method': 'chacha20-ietf-poly1305', 'shadowsocks*password': '123'}\n"},"apptemplateId":{"type":"string","description":"The ID of the application template to use. Provide either 'apptemplate*id' or 'image*id', but not both\n"},"baremetalId":{"type":"string","description":"The ID of this resource.\n"},"flavor":{"type":"object","additionalProperties":{"type":"string"},"description":"Details about the flavor (server configuration) including RAM, vCPU, etc.\n"},"flavorId":{"type":"string","description":"The ID of the flavor (type of server configuration). This field is required. Example: 'bm1-hf-medium-4x1nic'\n"},"imageId":{"type":"string","description":"The ID of the image to use. The image will be used to provision the bare metal server. Provide either 'image*id' or 'apptemplate*id', but not both\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FBaremetalInterface:BaremetalInterface"}},"keypairName":{"type":"string","description":"The name of the SSH keypair to use for the baremetal\n"},"lastUpdated":{"type":"string","description":"The date and time when the baremetal server was last updated\n"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of metadata items. Key-value pairs for instance metadata. Example: {'environment': 'production', 'owner': 'user'}\n"},"metadatas":{"type":"array","items":{"$ref":"#/types/gcore:index%2FBaremetalMetadata:BaremetalMetadata"},"deprecationMessage":"Deprecated"},"name":{"type":"string","description":"The name of the baremetal server. If not provided, it will be generated automatically. Example: 'bm-server-01'\n"},"nameTemplate":{"type":"string","description":"The template used to generate server names. You can use forms 'ip*octets', 'two*ip*octets', 'one*ip*octet'. Example: 'server-${ip*octets}'\n"},"nameTemplates":{"type":"array","items":{"type":"string"},"description":"Deprecated. List of baremetal names which will be changed by template\n","deprecationMessage":"Deprecated"},"password":{"type":"string","description":"The password for accessing the baremetal server. This parameter is used to set a password for the 'Admin' user on a Windows instance, a default user or a new user on a Linux instance\n"},"projectId":{"type":"number","description":"Project ID, only one of project*id or project*name should be set\n"},"projectName":{"type":"string","description":"Project name, only one of project*id or project*name should be set\n"},"regionId":{"type":"number","description":"Region ID, only one of region*id or region*name should be set\n"},"regionName":{"type":"string","description":"Region name, only one of region*id or region*name should be set\n"},"status":{"type":"string","description":"The current status of the baremetal server.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FBaremetalTimeouts:BaremetalTimeouts"},"userData":{"type":"string","description":"User data string in base64 format. This is passed to the instance at launch. 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'\n"},"username":{"type":"string","description":"A name of a new user in the Linux instance. It may be passed with a 'password' parameter\n"},"vmState":{"type":"string","description":"The state of the virtual machine\n"}},"type":"object"}},"gcore:index/cdnAppliedPreset:CdnAppliedPreset":{"description":"Represent applied preset\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 liveStreaming = gcore.getCdnPreset({\n    id: 52,\n    name: \"LIVE STREAMING\",\n});\nconst originGroup1 = new gcore.CdnOrigingroup(\"origin_group_1\", {\n    name: \"origin_group_1\",\n    useNext: true,\n    origins: [{\n        source: \"example.com\",\n        enabled: true,\n    }],\n});\nconst cdnExampleCom = new gcore.CdnResource(\"cdn_example_com\", {\n    cname: \"cdn.example.com\",\n    originGroup: originGroup1.cdnOrigingroupId,\n    originProtocol: \"MATCH\",\n});\nconst demoPreset = new gcore.CdnAppliedPreset(\"demo_preset\", {\n    presetId: liveStreaming.then(liveStreaming =\u003e liveStreaming.id),\n    objectId: demoResource.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nlive_streaming = gcore.get_cdn_preset(id=52,\n    name=\"LIVE STREAMING\")\norigin_group1 = gcore.CdnOrigingroup(\"origin_group_1\",\n    name=\"origin_group_1\",\n    use_next=True,\n    origins=[{\n        \"source\": \"example.com\",\n        \"enabled\": True,\n    }])\ncdn_example_com = gcore.CdnResource(\"cdn_example_com\",\n    cname=\"cdn.example.com\",\n    origin_group=origin_group1.cdn_origingroup_id,\n    origin_protocol=\"MATCH\")\ndemo_preset = gcore.CdnAppliedPreset(\"demo_preset\",\n    preset_id=live_streaming.id,\n    object_id=demo_resource[\"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 liveStreaming = Gcore.GetCdnPreset.Invoke(new()\n    {\n        Id = 52,\n        Name = \"LIVE STREAMING\",\n    });\n\n    var originGroup1 = new Gcore.CdnOrigingroup(\"origin_group_1\", new()\n    {\n        Name = \"origin_group_1\",\n        UseNext = true,\n        Origins = new[]\n        {\n            new Gcore.Inputs.CdnOrigingroupOriginArgs\n            {\n                Source = \"example.com\",\n                Enabled = true,\n            },\n        },\n    });\n\n    var cdnExampleCom = new Gcore.CdnResource(\"cdn_example_com\", new()\n    {\n        Cname = \"cdn.example.com\",\n        OriginGroup = originGroup1.CdnOrigingroupId,\n        OriginProtocol = \"MATCH\",\n    });\n\n    var demoPreset = new Gcore.CdnAppliedPreset(\"demo_preset\", new()\n    {\n        PresetId = liveStreaming.Apply(getCdnPresetResult =\u003e getCdnPresetResult.Id),\n        ObjectId = demoResource.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tliveStreaming, err := gcore.GetCdnPreset(ctx, \u0026gcore.GetCdnPresetArgs{\n\t\t\tId:   52,\n\t\t\tName: \"LIVE STREAMING\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\toriginGroup1, err := gcore.NewCdnOrigingroup(ctx, \"origin_group_1\", \u0026gcore.CdnOrigingroupArgs{\n\t\t\tName:    pulumi.String(\"origin_group_1\"),\n\t\t\tUseNext: pulumi.Bool(true),\n\t\t\tOrigins: gcore.CdnOrigingroupOriginArray{\n\t\t\t\t\u0026gcore.CdnOrigingroupOriginArgs{\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, \"cdn_example_com\", \u0026gcore.CdnResourceArgs{\n\t\t\tCname:          pulumi.String(\"cdn.example.com\"),\n\t\t\tOriginGroup:    originGroup1.CdnOrigingroupId,\n\t\t\tOriginProtocol: pulumi.String(\"MATCH\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCdnAppliedPreset(ctx, \"demo_preset\", \u0026gcore.CdnAppliedPresetArgs{\n\t\t\tPresetId: pulumi.Float64(liveStreaming.Id),\n\t\t\tObjectId: pulumi.Any(demoResource.Id),\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.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCdnPresetArgs;\nimport com.pulumi.gcore.CdnOrigingroup;\nimport com.pulumi.gcore.CdnOrigingroupArgs;\nimport com.pulumi.gcore.inputs.CdnOrigingroupOriginArgs;\nimport com.pulumi.gcore.CdnResource;\nimport com.pulumi.gcore.CdnResourceArgs;\nimport com.pulumi.gcore.CdnAppliedPreset;\nimport com.pulumi.gcore.CdnAppliedPresetArgs;\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 liveStreaming = GcoreFunctions.getCdnPreset(GetCdnPresetArgs.builder()\n            .id(52)\n            .name(\"LIVE STREAMING\")\n            .build());\n\n        var originGroup1 = new CdnOrigingroup(\"originGroup1\", CdnOrigingroupArgs.builder()\n            .name(\"origin_group_1\")\n            .useNext(true)\n            .origins(CdnOrigingroupOriginArgs.builder()\n                .source(\"example.com\")\n                .enabled(true)\n                .build())\n            .build());\n\n        var cdnExampleCom = new CdnResource(\"cdnExampleCom\", CdnResourceArgs.builder()\n            .cname(\"cdn.example.com\")\n            .originGroup(originGroup1.cdnOrigingroupId())\n            .originProtocol(\"MATCH\")\n            .build());\n\n        var demoPreset = new CdnAppliedPreset(\"demoPreset\", CdnAppliedPresetArgs.builder()\n            .presetId(liveStreaming.id())\n            .objectId(demoResource.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  originGroup1:\n    type: gcore:CdnOrigingroup\n    name: origin_group_1\n    properties:\n      name: origin_group_1\n      useNext: true\n      origins:\n        - source: example.com\n          enabled: true\n  cdnExampleCom:\n    type: gcore:CdnResource\n    name: cdn_example_com\n    properties:\n      cname: cdn.example.com\n      originGroup: ${originGroup1.cdnOrigingroupId}\n      originProtocol: MATCH\n  demoPreset:\n    type: gcore:CdnAppliedPreset\n    name: demo_preset\n    properties:\n      presetId: ${liveStreaming.id}\n      objectId: ${demoResource.id}\nvariables:\n  liveStreaming:\n    fn::invoke:\n      function: gcore:getCdnPreset\n      arguments:\n        id: 52\n        name: LIVE STREAMING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cpreset_id\u003e:\u003cobject_id\u003e\n\n```sh\n$ pulumi import gcore:index/cdnAppliedPreset:CdnAppliedPreset demo_preset 52:123456\n```\n\n","properties":{"cdnAppliedPresetId":{"type":"string","description":"The ID of this resource.\n"},"objectId":{"type":"number","description":"ID of CDN object (resource, rule) for which preset will be applied\n"},"presetId":{"type":"number","description":"ID of CDN preset which will be applied to the object\n"}},"type":"object","required":["cdnAppliedPresetId","objectId","presetId"],"inputProperties":{"cdnAppliedPresetId":{"type":"string","description":"The ID of this resource.\n"},"objectId":{"type":"number","description":"ID of CDN object (resource, rule) for which preset will be applied\n"},"presetId":{"type":"number","description":"ID of CDN preset which will be applied to the object\n"}},"requiredInputs":["objectId","presetId"],"stateInputs":{"description":"Input properties used for looking up and filtering CdnAppliedPreset resources.\n","properties":{"cdnAppliedPresetId":{"type":"string","description":"The ID of this resource.\n"},"objectId":{"type":"number","description":"ID of CDN object (resource, rule) for which preset will be applied\n"},"presetId":{"type":"number","description":"ID of CDN preset which will be applied to the object\n"}},"type":"object"}},"gcore:index/cdnCacert:CdnCacert":{"description":"Represent CDN CA Certificate\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 config = new pulumi.Config();\nconst cert = config.require(\"cert\");\nconst cdnoptCert = new gcore.CdnCacert(\"cdnopt_cert\", {\n    name: \"Test CA cert\",\n    cert: cert,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nconfig = pulumi.Config()\ncert = config.require(\"cert\")\ncdnopt_cert = gcore.CdnCacert(\"cdnopt_cert\",\n    name=\"Test CA cert\",\n    cert=cert)\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 cert = config.Require(\"cert\");\n    var cdnoptCert = new Gcore.CdnCacert(\"cdnopt_cert\", new()\n    {\n        Name = \"Test CA cert\",\n        Cert = cert,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tcert := cfg.Require(\"cert\")\n\t\t_, err := gcore.NewCdnCacert(ctx, \"cdnopt_cert\", \u0026gcore.CdnCacertArgs{\n\t\t\tName: pulumi.String(\"Test CA cert\"),\n\t\t\tCert: pulumi.String(cert),\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.CdnCacert;\nimport com.pulumi.gcore.CdnCacertArgs;\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 cert = config.get(\"cert\");\n        var cdnoptCert = new CdnCacert(\"cdnoptCert\", CdnCacertArgs.builder()\n            .name(\"Test CA cert\")\n            .cert(cert)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  cert:\n    type: string\nresources:\n  cdnoptCert:\n    type: gcore:CdnCacert\n    name: cdnopt_cert\n    properties:\n      name: Test CA cert\n      cert: ${cert}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"cdnCacertId":{"type":"string","description":"The ID of this resource.\n"},"cert":{"type":"string","description":"The public part of the CA certificate. It must be in the PEM format.\n","secret":true},"hasRelatedResources":{"type":"boolean","description":"It shows if the CA certificate is used by a CDN resource.\n"},"name":{"type":"string","description":"Name of the CA certificate. Must be unique.\n"}},"type":"object","required":["cdnCacertId","cert","hasRelatedResources","name"],"inputProperties":{"cdnCacertId":{"type":"string","description":"The ID of this resource.\n"},"cert":{"type":"string","description":"The public part of the CA certificate. It must be in the PEM format.\n","secret":true},"name":{"type":"string","description":"Name of the CA certificate. Must be unique.\n"}},"requiredInputs":["cert"],"stateInputs":{"description":"Input properties used for looking up and filtering CdnCacert resources.\n","properties":{"cdnCacertId":{"type":"string","description":"The ID of this resource.\n"},"cert":{"type":"string","description":"The public part of the CA certificate. It must be in the PEM format.\n","secret":true},"hasRelatedResources":{"type":"boolean","description":"It shows if the CA certificate is used by a CDN resource.\n"},"name":{"type":"string","description":"Name of the CA certificate. Must be unique.\n"}},"type":"object"}},"gcore:index/cdnClientConfig:CdnClientConfig":{"description":"Manage your CDN client (only\u003cspan pulumi-lang-nodejs=\" utilizationLevel \" pulumi-lang-dotnet=\" UtilizationLevel \" pulumi-lang-go=\" utilizationLevel \" pulumi-lang-python=\" utilization_level \" pulumi-lang-yaml=\" utilizationLevel \" pulumi-lang-java=\" utilizationLevel \"\u003e utilization_level \u003c/span\u003ecan be updated).\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 myAccount = new gcore.CdnClientConfig(\"my_account\", {utilizationLevel: 90});\nexport const cdnClient = {\n    id: myAccount.id,\n    cname: myAccount.cname,\n    created: myAccount.created,\n    updated: myAccount.updated,\n    utilizationLevel: myAccount.utilizationLevel,\n    useBalancer: myAccount.useBalancer,\n    autoSuspendEnabled: myAccount.autoSuspendEnabled,\n    cdnResourcesRulesMaxCount: myAccount.cdnResourcesRulesMaxCount,\n    service: {\n        enabled: myAccount.services.apply(services =\u003e services[0].enabled),\n        status: myAccount.services.apply(services =\u003e services[0].status),\n        updated: myAccount.services.apply(services =\u003e services[0].updated),\n    },\n};\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nmy_account = gcore.CdnClientConfig(\"my_account\", utilization_level=90)\npulumi.export(\"cdnClient\", {\n    \"id\": my_account.id,\n    \"cname\": my_account.cname,\n    \"created\": my_account.created,\n    \"updated\": my_account.updated,\n    \"utilizationLevel\": my_account.utilization_level,\n    \"useBalancer\": my_account.use_balancer,\n    \"autoSuspendEnabled\": my_account.auto_suspend_enabled,\n    \"cdnResourcesRulesMaxCount\": my_account.cdn_resources_rules_max_count,\n    \"service\": {\n        \"enabled\": my_account.services[0].enabled,\n        \"status\": my_account.services[0].status,\n        \"updated\": my_account.services[0].updated,\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 myAccount = new Gcore.CdnClientConfig(\"my_account\", new()\n    {\n        UtilizationLevel = 90,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cdnClient\"] = \n        {\n            { \"id\", myAccount.Id },\n            { \"cname\", myAccount.Cname },\n            { \"created\", myAccount.Created },\n            { \"updated\", myAccount.Updated },\n            { \"utilizationLevel\", myAccount.UtilizationLevel },\n            { \"useBalancer\", myAccount.UseBalancer },\n            { \"autoSuspendEnabled\", myAccount.AutoSuspendEnabled },\n            { \"cdnResourcesRulesMaxCount\", myAccount.CdnResourcesRulesMaxCount },\n            { \"service\", \n            {\n                { \"enabled\", myAccount.Services.Apply(services =\u003e services[0].Enabled) },\n                { \"status\", myAccount.Services.Apply(services =\u003e services[0].Status) },\n                { \"updated\", myAccount.Services.Apply(services =\u003e services[0].Updated) },\n            } },\n        },\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tmyAccount, err := gcore.NewCdnClientConfig(ctx, \"my_account\", \u0026gcore.CdnClientConfigArgs{\n\t\t\tUtilizationLevel: pulumi.Float64(90),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cdnClient\", pulumi.Map{\n\t\t\t\"id\":                        myAccount.ID(),\n\t\t\t\"cname\":                     myAccount.Cname,\n\t\t\t\"created\":                   myAccount.Created,\n\t\t\t\"updated\":                   myAccount.Updated,\n\t\t\t\"utilizationLevel\":          myAccount.UtilizationLevel,\n\t\t\t\"useBalancer\":               myAccount.UseBalancer,\n\t\t\t\"autoSuspendEnabled\":        myAccount.AutoSuspendEnabled,\n\t\t\t\"cdnResourcesRulesMaxCount\": myAccount.CdnResourcesRulesMaxCount,\n\t\t\t\"service\": pulumi.Map{\n\t\t\t\t\"enabled\": myAccount.Services.ApplyT(func(services []gcore.CdnClientConfigService) (*bool, error) {\n\t\t\t\t\treturn \u0026services[0].Enabled, nil\n\t\t\t\t}).(pulumi.BoolPtrOutput),\n\t\t\t\t\"status\": myAccount.Services.ApplyT(func(services []gcore.CdnClientConfigService) (*string, error) {\n\t\t\t\t\treturn \u0026services[0].Status, nil\n\t\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\t\t\"updated\": myAccount.Services.ApplyT(func(services []gcore.CdnClientConfigService) (*string, error) {\n\t\t\t\t\treturn \u0026services[0].Updated, nil\n\t\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\t},\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.CdnClientConfig;\nimport com.pulumi.gcore.CdnClientConfigArgs;\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 myAccount = new CdnClientConfig(\"myAccount\", CdnClientConfigArgs.builder()\n            .utilizationLevel(90.0)\n            .build());\n\n        ctx.export(\"cdnClient\", Map.ofEntries(\n            Map.entry(\"id\", myAccount.id()),\n            Map.entry(\"cname\", myAccount.cname()),\n            Map.entry(\"created\", myAccount.created()),\n            Map.entry(\"updated\", myAccount.updated()),\n            Map.entry(\"utilizationLevel\", myAccount.utilizationLevel()),\n            Map.entry(\"useBalancer\", myAccount.useBalancer()),\n            Map.entry(\"autoSuspendEnabled\", myAccount.autoSuspendEnabled()),\n            Map.entry(\"cdnResourcesRulesMaxCount\", myAccount.cdnResourcesRulesMaxCount()),\n            Map.entry(\"service\", Map.ofEntries(\n                Map.entry(\"enabled\", myAccount.services().applyValue(_services -\u003e _services[0].enabled())),\n                Map.entry(\"status\", myAccount.services().applyValue(_services -\u003e _services[0].status())),\n                Map.entry(\"updated\", myAccount.services().applyValue(_services -\u003e _services[0].updated()))\n            ))\n        ));\n    }\n}\n```\n```yaml\nresources:\n  myAccount:\n    type: gcore:CdnClientConfig\n    name: my_account\n    properties:\n      utilizationLevel: 90\noutputs:\n  cdnClient:\n    id: ${myAccount.id}\n    cname: ${myAccount.cname}\n    created: ${myAccount.created}\n    updated: ${myAccount.updated}\n    utilizationLevel: ${myAccount.utilizationLevel}\n    useBalancer: ${myAccount.useBalancer}\n    autoSuspendEnabled: ${myAccount.autoSuspendEnabled}\n    cdnResourcesRulesMaxCount: ${myAccount.cdnResourcesRulesMaxCount}\n    service:\n      enabled: ${myAccount.services[0].enabled}\n      status: ${myAccount.services[0].status}\n      updated: ${myAccount.services[0].updated}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"autoSuspendEnabled":{"type":"boolean","description":"Defines whether resources will be deactivated automatically by inactivity.\n"},"cdnResourcesRulesMaxCount":{"type":"number","description":"Limit on the number of rules for each CDN resource.\n"},"cname":{"type":"string","description":"Domain zone to which a CNAME record of your CDN resources should be pointed.\n"},"created":{"type":"string","description":"Date of the first synchronization with the Platform (ISO 8601/RFC 3339 format, UTC.)\n"},"services":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCdnClientConfigService:CdnClientConfigService"},"description":"Information about the CDN service status.\n"},"updated":{"type":"string","description":"Date of the last update of information about CDN service (ISO 8601/RFC 3339 format, UTC.)\n"},"useBalancer":{"type":"boolean","description":"Defines whether custom balancing is used for content delivery.\n"},"utilizationLevel":{"type":"number","description":"CDN traffic usage limit in gigabytes.\n"}},"type":"object","required":["autoSuspendEnabled","cdnResourcesRulesMaxCount","cname","created","services","updated","useBalancer"],"inputProperties":{"utilizationLevel":{"type":"number","description":"CDN traffic usage limit in gigabytes.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CdnClientConfig resources.\n","properties":{"autoSuspendEnabled":{"type":"boolean","description":"Defines whether resources will be deactivated automatically by inactivity.\n"},"cdnResourcesRulesMaxCount":{"type":"number","description":"Limit on the number of rules for each CDN resource.\n"},"cname":{"type":"string","description":"Domain zone to which a CNAME record of your CDN resources should be pointed.\n"},"created":{"type":"string","description":"Date of the first synchronization with the Platform (ISO 8601/RFC 3339 format, UTC.)\n"},"services":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCdnClientConfigService:CdnClientConfigService"},"description":"Information about the CDN service status.\n"},"updated":{"type":"string","description":"Date of the last update of information about CDN service (ISO 8601/RFC 3339 format, UTC.)\n"},"useBalancer":{"type":"boolean","description":"Defines whether custom balancing is used for content delivery.\n"},"utilizationLevel":{"type":"number","description":"CDN traffic usage limit in gigabytes.\n"}},"type":"object"}},"gcore:index/cdnLogsUploaderConfig:CdnLogsUploaderConfig":{"description":"Represent CDN logs uploader config\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 policy1 = new gcore.CdnLogsUploaderPolicy(\"policy_1\", {\n    name: \"Main policy\",\n    fields: [\n        \"remote_addr\",\n        \"remote_user\",\n        \"time_local\",\n    ],\n});\nconst target1 = new gcore.CdnLogsUploaderTarget(\"target_1\", {\n    name: \"Main target\",\n    config: {\n        ftp: {\n            hostname: \"ftp.example.com\",\n            user: \"user\",\n            password: \"password\",\n        },\n    },\n});\nconst config1 = new gcore.CdnLogsUploaderConfig(\"config_1\", {\n    name: \"Logs uploader config\",\n    policy: policy1.cdnLogsUploaderPolicyId,\n    target: target1.cdnLogsUploaderTargetId,\n    forAllResources: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npolicy1 = gcore.CdnLogsUploaderPolicy(\"policy_1\",\n    name=\"Main policy\",\n    fields=[\n        \"remote_addr\",\n        \"remote_user\",\n        \"time_local\",\n    ])\ntarget1 = gcore.CdnLogsUploaderTarget(\"target_1\",\n    name=\"Main target\",\n    config={\n        \"ftp\": {\n            \"hostname\": \"ftp.example.com\",\n            \"user\": \"user\",\n            \"password\": \"password\",\n        },\n    })\nconfig1 = gcore.CdnLogsUploaderConfig(\"config_1\",\n    name=\"Logs uploader config\",\n    policy=policy1.cdn_logs_uploader_policy_id,\n    target=target1.cdn_logs_uploader_target_id,\n    for_all_resources=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 policy1 = new Gcore.CdnLogsUploaderPolicy(\"policy_1\", new()\n    {\n        Name = \"Main policy\",\n        Fields = new[]\n        {\n            \"remote_addr\",\n            \"remote_user\",\n            \"time_local\",\n        },\n    });\n\n    var target1 = new Gcore.CdnLogsUploaderTarget(\"target_1\", new()\n    {\n        Name = \"Main target\",\n        Config = new Gcore.Inputs.CdnLogsUploaderTargetConfigArgs\n        {\n            Ftp = new Gcore.Inputs.CdnLogsUploaderTargetConfigFtpArgs\n            {\n                Hostname = \"ftp.example.com\",\n                User = \"user\",\n                Password = \"password\",\n            },\n        },\n    });\n\n    var config1 = new Gcore.CdnLogsUploaderConfig(\"config_1\", new()\n    {\n        Name = \"Logs uploader config\",\n        Policy = policy1.CdnLogsUploaderPolicyId,\n        Target = target1.CdnLogsUploaderTargetId,\n        ForAllResources = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpolicy1, err := gcore.NewCdnLogsUploaderPolicy(ctx, \"policy_1\", \u0026gcore.CdnLogsUploaderPolicyArgs{\n\t\t\tName: pulumi.String(\"Main policy\"),\n\t\t\tFields: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"remote_addr\"),\n\t\t\t\tpulumi.String(\"remote_user\"),\n\t\t\t\tpulumi.String(\"time_local\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttarget1, err := gcore.NewCdnLogsUploaderTarget(ctx, \"target_1\", \u0026gcore.CdnLogsUploaderTargetArgs{\n\t\t\tName: pulumi.String(\"Main target\"),\n\t\t\tConfig: \u0026gcore.CdnLogsUploaderTargetConfigArgs{\n\t\t\t\tFtp: \u0026gcore.CdnLogsUploaderTargetConfigFtpArgs{\n\t\t\t\t\tHostname: pulumi.String(\"ftp.example.com\"),\n\t\t\t\t\tUser:     pulumi.String(\"user\"),\n\t\t\t\t\tPassword: pulumi.String(\"password\"),\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.NewCdnLogsUploaderConfig(ctx, \"config_1\", \u0026gcore.CdnLogsUploaderConfigArgs{\n\t\t\tName:            pulumi.String(\"Logs uploader config\"),\n\t\t\tPolicy:          policy1.CdnLogsUploaderPolicyId,\n\t\t\tTarget:          target1.CdnLogsUploaderTargetId,\n\t\t\tForAllResources: pulumi.Bool(true),\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.CdnLogsUploaderPolicy;\nimport com.pulumi.gcore.CdnLogsUploaderPolicyArgs;\nimport com.pulumi.gcore.CdnLogsUploaderTarget;\nimport com.pulumi.gcore.CdnLogsUploaderTargetArgs;\nimport com.pulumi.gcore.inputs.CdnLogsUploaderTargetConfigArgs;\nimport com.pulumi.gcore.inputs.CdnLogsUploaderTargetConfigFtpArgs;\nimport com.pulumi.gcore.CdnLogsUploaderConfig;\nimport com.pulumi.gcore.CdnLogsUploaderConfigArgs;\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 policy1 = new CdnLogsUploaderPolicy(\"policy1\", CdnLogsUploaderPolicyArgs.builder()\n            .name(\"Main policy\")\n            .fields(            \n                \"remote_addr\",\n                \"remote_user\",\n                \"time_local\")\n            .build());\n\n        var target1 = new CdnLogsUploaderTarget(\"target1\", CdnLogsUploaderTargetArgs.builder()\n            .name(\"Main target\")\n            .config(CdnLogsUploaderTargetConfigArgs.builder()\n                .ftp(CdnLogsUploaderTargetConfigFtpArgs.builder()\n                    .hostname(\"ftp.example.com\")\n                    .user(\"user\")\n                    .password(\"password\")\n                    .build())\n                .build())\n            .build());\n\n        var config1 = new CdnLogsUploaderConfig(\"config1\", CdnLogsUploaderConfigArgs.builder()\n            .name(\"Logs uploader config\")\n            .policy(policy1.cdnLogsUploaderPolicyId())\n            .target(target1.cdnLogsUploaderTargetId())\n            .forAllResources(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy1:\n    type: gcore:CdnLogsUploaderPolicy\n    name: policy_1\n    properties:\n      name: Main policy\n      fields:\n        - remote_addr\n        - remote_user\n        - time_local\n  target1:\n    type: gcore:CdnLogsUploaderTarget\n    name: target_1\n    properties:\n      name: Main target\n      config:\n        ftp:\n          hostname: ftp.example.com\n          user: user\n          password: password\n  config1:\n    type: gcore:CdnLogsUploaderConfig\n    name: config_1\n    properties:\n      name: Logs uploader config\n      policy: ${policy1.cdnLogsUploaderPolicyId}\n      target: ${target1.cdnLogsUploaderTargetId}\n      forAllResources: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"cdnLogsUploaderConfigId":{"type":"string","description":"The ID of this resource.\n"},"enabled":{"type":"boolean","description":"Enables or disables the config. Default value is true.\n"},"forAllResources":{"type":"boolean","description":"If set to true, the config will be applied to all CDN resources. If set to false, the config will be applied to the resources specified in the resources field. Default value is false.\n"},"name":{"type":"string","description":"Name of the config.\n"},"policy":{"type":"number","description":"ID of the policy that should be assigned to given config.\n"},"resources":{"type":"array","items":{"type":"number"},"description":"List of resource IDs to which the config should be applied.\n"},"target":{"type":"number","description":"ID of the target to which logs should be uploaded.\n"}},"type":"object","required":["cdnLogsUploaderConfigId","name","policy","target"],"inputProperties":{"cdnLogsUploaderConfigId":{"type":"string","description":"The ID of this resource.\n"},"enabled":{"type":"boolean","description":"Enables or disables the config. Default value is true.\n"},"forAllResources":{"type":"boolean","description":"If set to true, the config will be applied to all CDN resources. If set to false, the config will be applied to the resources specified in the resources field. Default value is false.\n"},"name":{"type":"string","description":"Name of the config.\n"},"policy":{"type":"number","description":"ID of the policy that should be assigned to given config.\n"},"resources":{"type":"array","items":{"type":"number"},"description":"List of resource IDs to which the config should be applied.\n"},"target":{"type":"number","description":"ID of the target to which logs should be uploaded.\n"}},"requiredInputs":["policy","target"],"stateInputs":{"description":"Input properties used for looking up and filtering CdnLogsUploaderConfig resources.\n","properties":{"cdnLogsUploaderConfigId":{"type":"string","description":"The ID of this resource.\n"},"enabled":{"type":"boolean","description":"Enables or disables the config. Default value is true.\n"},"forAllResources":{"type":"boolean","description":"If set to true, the config will be applied to all CDN resources. If set to false, the config will be applied to the resources specified in the resources field. Default value is false.\n"},"name":{"type":"string","description":"Name of the config.\n"},"policy":{"type":"number","description":"ID of the policy that should be assigned to given config.\n"},"resources":{"type":"array","items":{"type":"number"},"description":"List of resource IDs to which the config should be applied.\n"},"target":{"type":"number","description":"ID of the target to which logs should be uploaded.\n"}},"type":"object"}},"gcore:index/cdnLogsUploaderPolicy:CdnLogsUploaderPolicy":{"description":"Represent CDN logs uploader policy\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 policy1 = new gcore.CdnLogsUploaderPolicy(\"policy_1\", {\n    name: \"Main policy\",\n    rotateThresholdLines: 10,\n    fieldSeparator: \";\",\n    fields: [\n        \"remote_addr\",\n        \"remote_user\",\n        \"time_local\",\n        \"custom_field_1\",\n        \"custom_field_2\",\n    ],\n    includeEmptyLogs: true,\n    fileNameTemplate: \"{{CNAME}}.{{HOST}}.{{TIMESTAMP}}.log\",\n    tags: {\n        custom_field_1: \"value1\",\n        custom_field_2: \"value2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npolicy1 = gcore.CdnLogsUploaderPolicy(\"policy_1\",\n    name=\"Main policy\",\n    rotate_threshold_lines=10,\n    field_separator=\";\",\n    fields=[\n        \"remote_addr\",\n        \"remote_user\",\n        \"time_local\",\n        \"custom_field_1\",\n        \"custom_field_2\",\n    ],\n    include_empty_logs=True,\n    file_name_template=\"{{CNAME}}.{{HOST}}.{{TIMESTAMP}}.log\",\n    tags={\n        \"custom_field_1\": \"value1\",\n        \"custom_field_2\": \"value2\",\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 policy1 = new Gcore.CdnLogsUploaderPolicy(\"policy_1\", new()\n    {\n        Name = \"Main policy\",\n        RotateThresholdLines = 10,\n        FieldSeparator = \";\",\n        Fields = new[]\n        {\n            \"remote_addr\",\n            \"remote_user\",\n            \"time_local\",\n            \"custom_field_1\",\n            \"custom_field_2\",\n        },\n        IncludeEmptyLogs = true,\n        FileNameTemplate = \"{{CNAME}}.{{HOST}}.{{TIMESTAMP}}.log\",\n        Tags = \n        {\n            { \"custom_field_1\", \"value1\" },\n            { \"custom_field_2\", \"value2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewCdnLogsUploaderPolicy(ctx, \"policy_1\", \u0026gcore.CdnLogsUploaderPolicyArgs{\n\t\t\tName:                 pulumi.String(\"Main policy\"),\n\t\t\tRotateThresholdLines: pulumi.Float64(10),\n\t\t\tFieldSeparator:       pulumi.String(\";\"),\n\t\t\tFields: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"remote_addr\"),\n\t\t\t\tpulumi.String(\"remote_user\"),\n\t\t\t\tpulumi.String(\"time_local\"),\n\t\t\t\tpulumi.String(\"custom_field_1\"),\n\t\t\t\tpulumi.String(\"custom_field_2\"),\n\t\t\t},\n\t\t\tIncludeEmptyLogs: pulumi.Bool(true),\n\t\t\tFileNameTemplate: pulumi.String(\"{{CNAME}}.{{HOST}}.{{TIMESTAMP}}.log\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"custom_field_1\": pulumi.String(\"value1\"),\n\t\t\t\t\"custom_field_2\": pulumi.String(\"value2\"),\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.CdnLogsUploaderPolicy;\nimport com.pulumi.gcore.CdnLogsUploaderPolicyArgs;\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 policy1 = new CdnLogsUploaderPolicy(\"policy1\", CdnLogsUploaderPolicyArgs.builder()\n            .name(\"Main policy\")\n            .rotateThresholdLines(10.0)\n            .fieldSeparator(\";\")\n            .fields(            \n                \"remote_addr\",\n                \"remote_user\",\n                \"time_local\",\n                \"custom_field_1\",\n                \"custom_field_2\")\n            .includeEmptyLogs(true)\n            .fileNameTemplate(\"{{CNAME}}.{{HOST}}.{{TIMESTAMP}}.log\")\n            .tags(Map.ofEntries(\n                Map.entry(\"custom_field_1\", \"value1\"),\n                Map.entry(\"custom_field_2\", \"value2\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy1:\n    type: gcore:CdnLogsUploaderPolicy\n    name: policy_1\n    properties:\n      name: Main policy\n      rotateThresholdLines: 10\n      fieldSeparator: ;\n      fields:\n        - remote_addr\n        - remote_user\n        - time_local\n        - custom_field_1\n        - custom_field_2\n      includeEmptyLogs: true\n      fileNameTemplate: '{{CNAME}}.{{HOST}}.{{TIMESTAMP}}.log'\n      tags:\n        custom_field_1: value1\n        custom_field_2: value2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"cdnLogsUploaderPolicyId":{"type":"string","description":"The ID of this resource.\n"},"dateFormat":{"type":"string","description":"Date format for logs. Default value is empty string.\n"},"description":{"type":"string","description":"Description of the policy. Default value is empty string.\n"},"fieldDelimiter":{"type":"string","description":"Field delimiter for logs. Default value is \\\".\n"},"fieldSeparator":{"type":"string","description":"Field separator for logs. Default value is a space character.\n"},"fields":{"type":"array","items":{"type":"string"},"description":"List of fields to include in logs.\n"},"fileNameTemplate":{"type":"string","description":"Template for log file name. Default value is \"{{YYYY}}/{{MM}}/{{DD}}/{{HH}}/{{mm}}/{{ss}}/{{HOST}}*{{CNAME}}*access.log.gz\".\n"},"formatType":{"type":"string","description":"Format type for logs. Default value is empty string.\n"},"includeEmptyLogs":{"type":"boolean","description":"Include empty logs in the upload. Default value is false.\n"},"includeShieldLogs":{"type":"boolean","description":"Include logs from origin shielding in the upload. Default value is false.\n"},"name":{"type":"string","description":"Name of the policy. Default value is \"Policy\".\n"},"retryIntervalMinutes":{"type":"number","description":"Interval in minutes to retry failed uploads. Default value is 60.\n"},"rotateIntervalMinutes":{"type":"number","description":"Interval in minutes to rotate logs. Default value is 5.\n"},"rotateThresholdLines":{"type":"number","description":"Threshold in lines to rotate logs. Default value is 0.\n"},"rotateThresholdMb":{"type":"number","description":"Threshold in MB to rotate logs. Default value is nil.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags allow for dynamic decoration of logs by adding predefined fields to the log format. These tags serve as customizable key-value pairs that can be included in log entries to enhance context and readability.\n"}},"type":"object","required":["cdnLogsUploaderPolicyId","fields","name"],"inputProperties":{"cdnLogsUploaderPolicyId":{"type":"string","description":"The ID of this resource.\n"},"dateFormat":{"type":"string","description":"Date format for logs. Default value is empty string.\n"},"description":{"type":"string","description":"Description of the policy. Default value is empty string.\n"},"fieldDelimiter":{"type":"string","description":"Field delimiter for logs. Default value is \\\".\n"},"fieldSeparator":{"type":"string","description":"Field separator for logs. Default value is a space character.\n"},"fields":{"type":"array","items":{"type":"string"},"description":"List of fields to include in logs.\n"},"fileNameTemplate":{"type":"string","description":"Template for log file name. Default value is \"{{YYYY}}/{{MM}}/{{DD}}/{{HH}}/{{mm}}/{{ss}}/{{HOST}}*{{CNAME}}*access.log.gz\".\n"},"formatType":{"type":"string","description":"Format type for logs. Default value is empty string.\n"},"includeEmptyLogs":{"type":"boolean","description":"Include empty logs in the upload. Default value is false.\n"},"includeShieldLogs":{"type":"boolean","description":"Include logs from origin shielding in the upload. Default value is false.\n"},"name":{"type":"string","description":"Name of the policy. Default value is \"Policy\".\n"},"retryIntervalMinutes":{"type":"number","description":"Interval in minutes to retry failed uploads. Default value is 60.\n"},"rotateIntervalMinutes":{"type":"number","description":"Interval in minutes to rotate logs. Default value is 5.\n"},"rotateThresholdLines":{"type":"number","description":"Threshold in lines to rotate logs. Default value is 0.\n"},"rotateThresholdMb":{"type":"number","description":"Threshold in MB to rotate logs. Default value is nil.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags allow for dynamic decoration of logs by adding predefined fields to the log format. These tags serve as customizable key-value pairs that can be included in log entries to enhance context and readability.\n"}},"requiredInputs":["fields"],"stateInputs":{"description":"Input properties used for looking up and filtering CdnLogsUploaderPolicy resources.\n","properties":{"cdnLogsUploaderPolicyId":{"type":"string","description":"The ID of this resource.\n"},"dateFormat":{"type":"string","description":"Date format for logs. Default value is empty string.\n"},"description":{"type":"string","description":"Description of the policy. Default value is empty string.\n"},"fieldDelimiter":{"type":"string","description":"Field delimiter for logs. Default value is \\\".\n"},"fieldSeparator":{"type":"string","description":"Field separator for logs. Default value is a space character.\n"},"fields":{"type":"array","items":{"type":"string"},"description":"List of fields to include in logs.\n"},"fileNameTemplate":{"type":"string","description":"Template for log file name. Default value is \"{{YYYY}}/{{MM}}/{{DD}}/{{HH}}/{{mm}}/{{ss}}/{{HOST}}*{{CNAME}}*access.log.gz\".\n"},"formatType":{"type":"string","description":"Format type for logs. Default value is empty string.\n"},"includeEmptyLogs":{"type":"boolean","description":"Include empty logs in the upload. Default value is false.\n"},"includeShieldLogs":{"type":"boolean","description":"Include logs from origin shielding in the upload. Default value is false.\n"},"name":{"type":"string","description":"Name of the policy. Default value is \"Policy\".\n"},"retryIntervalMinutes":{"type":"number","description":"Interval in minutes to retry failed uploads. Default value is 60.\n"},"rotateIntervalMinutes":{"type":"number","description":"Interval in minutes to rotate logs. Default value is 5.\n"},"rotateThresholdLines":{"type":"number","description":"Threshold in lines to rotate logs. Default value is 0.\n"},"rotateThresholdMb":{"type":"number","description":"Threshold in MB to rotate logs. Default value is nil.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags allow for dynamic decoration of logs by adding predefined fields to the log format. These tags serve as customizable key-value pairs that can be included in log entries to enhance context and readability.\n"}},"type":"object"}},"gcore:index/cdnLogsUploaderTarget:CdnLogsUploaderTarget":{"description":"Represent CDN logs uploader target\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 target1 = new gcore.CdnLogsUploaderTarget(\"target_1\", {\n    name: \"Logs uploader target\",\n    description: \"Target for logs uploader\",\n    config: {\n        sftp: {\n            hostname: \"ftp.example.com\",\n            user: \"user\",\n            password: \"password\",\n        },\n    },\n});\nconst target2 = new gcore.CdnLogsUploaderTarget(\"target_2\", {\n    name: \"Target 2\",\n    config: {\n        s3Oss: {\n            accessKeyId: \"access_key_id\",\n            secretAccessKey: \"secret_access123456789\",\n            bucketName: \"bucket_name\",\n            region: \"region\",\n            directory: \"directory\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ntarget1 = gcore.CdnLogsUploaderTarget(\"target_1\",\n    name=\"Logs uploader target\",\n    description=\"Target for logs uploader\",\n    config={\n        \"sftp\": {\n            \"hostname\": \"ftp.example.com\",\n            \"user\": \"user\",\n            \"password\": \"password\",\n        },\n    })\ntarget2 = gcore.CdnLogsUploaderTarget(\"target_2\",\n    name=\"Target 2\",\n    config={\n        \"s3_oss\": {\n            \"access_key_id\": \"access_key_id\",\n            \"secret_access_key\": \"secret_access123456789\",\n            \"bucket_name\": \"bucket_name\",\n            \"region\": \"region\",\n            \"directory\": \"directory\",\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 target1 = new Gcore.CdnLogsUploaderTarget(\"target_1\", new()\n    {\n        Name = \"Logs uploader target\",\n        Description = \"Target for logs uploader\",\n        Config = new Gcore.Inputs.CdnLogsUploaderTargetConfigArgs\n        {\n            Sftp = new Gcore.Inputs.CdnLogsUploaderTargetConfigSftpArgs\n            {\n                Hostname = \"ftp.example.com\",\n                User = \"user\",\n                Password = \"password\",\n            },\n        },\n    });\n\n    var target2 = new Gcore.CdnLogsUploaderTarget(\"target_2\", new()\n    {\n        Name = \"Target 2\",\n        Config = new Gcore.Inputs.CdnLogsUploaderTargetConfigArgs\n        {\n            S3Oss = new Gcore.Inputs.CdnLogsUploaderTargetConfigS3OssArgs\n            {\n                AccessKeyId = \"access_key_id\",\n                SecretAccessKey = \"secret_access123456789\",\n                BucketName = \"bucket_name\",\n                Region = \"region\",\n                Directory = \"directory\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewCdnLogsUploaderTarget(ctx, \"target_1\", \u0026gcore.CdnLogsUploaderTargetArgs{\n\t\t\tName:        pulumi.String(\"Logs uploader target\"),\n\t\t\tDescription: pulumi.String(\"Target for logs uploader\"),\n\t\t\tConfig: \u0026gcore.CdnLogsUploaderTargetConfigArgs{\n\t\t\t\tSftp: \u0026gcore.CdnLogsUploaderTargetConfigSftpArgs{\n\t\t\t\t\tHostname: pulumi.String(\"ftp.example.com\"),\n\t\t\t\t\tUser:     pulumi.String(\"user\"),\n\t\t\t\t\tPassword: pulumi.String(\"password\"),\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.NewCdnLogsUploaderTarget(ctx, \"target_2\", \u0026gcore.CdnLogsUploaderTargetArgs{\n\t\t\tName: pulumi.String(\"Target 2\"),\n\t\t\tConfig: \u0026gcore.CdnLogsUploaderTargetConfigArgs{\n\t\t\t\tS3Oss: \u0026gcore.CdnLogsUploaderTargetConfigS3OssArgs{\n\t\t\t\t\tAccessKeyId:     pulumi.String(\"access_key_id\"),\n\t\t\t\t\tSecretAccessKey: pulumi.String(\"secret_access123456789\"),\n\t\t\t\t\tBucketName:      pulumi.String(\"bucket_name\"),\n\t\t\t\t\tRegion:          pulumi.String(\"region\"),\n\t\t\t\t\tDirectory:       pulumi.String(\"directory\"),\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.CdnLogsUploaderTarget;\nimport com.pulumi.gcore.CdnLogsUploaderTargetArgs;\nimport com.pulumi.gcore.inputs.CdnLogsUploaderTargetConfigArgs;\nimport com.pulumi.gcore.inputs.CdnLogsUploaderTargetConfigSftpArgs;\nimport com.pulumi.gcore.inputs.CdnLogsUploaderTargetConfigS3OssArgs;\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 target1 = new CdnLogsUploaderTarget(\"target1\", CdnLogsUploaderTargetArgs.builder()\n            .name(\"Logs uploader target\")\n            .description(\"Target for logs uploader\")\n            .config(CdnLogsUploaderTargetConfigArgs.builder()\n                .sftp(CdnLogsUploaderTargetConfigSftpArgs.builder()\n                    .hostname(\"ftp.example.com\")\n                    .user(\"user\")\n                    .password(\"password\")\n                    .build())\n                .build())\n            .build());\n\n        var target2 = new CdnLogsUploaderTarget(\"target2\", CdnLogsUploaderTargetArgs.builder()\n            .name(\"Target 2\")\n            .config(CdnLogsUploaderTargetConfigArgs.builder()\n                .s3Oss(CdnLogsUploaderTargetConfigS3OssArgs.builder()\n                    .accessKeyId(\"access_key_id\")\n                    .secretAccessKey(\"secret_access123456789\")\n                    .bucketName(\"bucket_name\")\n                    .region(\"region\")\n                    .directory(\"directory\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  target1:\n    type: gcore:CdnLogsUploaderTarget\n    name: target_1\n    properties:\n      name: Logs uploader target\n      description: Target for logs uploader\n      config:\n        sftp:\n          hostname: ftp.example.com\n          user: user\n          password: password\n  target2:\n    type: gcore:CdnLogsUploaderTarget\n    name: target_2\n    properties:\n      name: Target 2\n      config:\n        s3Oss:\n          accessKeyId: access_key_id\n          secretAccessKey: secret_access123456789\n          bucketName: bucket_name\n          region: region\n          directory: directory\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"cdnLogsUploaderTargetId":{"type":"string","description":"The ID of this resource.\n"},"config":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfig:CdnLogsUploaderTargetConfig","description":"Config for specific storage type.\n"},"description":{"type":"string","description":"Description of the target. Default value is empty string.\n"},"name":{"type":"string","description":"Name of the target. Default value is \"Target\".\n"}},"type":"object","required":["cdnLogsUploaderTargetId","config","name"],"inputProperties":{"cdnLogsUploaderTargetId":{"type":"string","description":"The ID of this resource.\n"},"config":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfig:CdnLogsUploaderTargetConfig","description":"Config for specific storage type.\n"},"description":{"type":"string","description":"Description of the target. Default value is empty string.\n"},"name":{"type":"string","description":"Name of the target. Default value is \"Target\".\n"}},"requiredInputs":["config"],"stateInputs":{"description":"Input properties used for looking up and filtering CdnLogsUploaderTarget resources.\n","properties":{"cdnLogsUploaderTargetId":{"type":"string","description":"The ID of this resource.\n"},"config":{"$ref":"#/types/gcore:index%2FCdnLogsUploaderTargetConfig:CdnLogsUploaderTargetConfig","description":"Config for specific storage type.\n"},"description":{"type":"string","description":"Description of the target. Default value is empty string.\n"},"name":{"type":"string","description":"Name of the target. Default value is \"Target\".\n"}},"type":"object"}},"gcore:index/cdnOrigingroup:CdnOrigingroup":{"description":"Represent origin group\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 originGroup1 = new gcore.CdnOrigingroup(\"origin_group_1\", {\n    name: \"origin_group_1\",\n    useNext: true,\n    origins: [\n        {\n            source: \"example.com\",\n            enabled: true,\n        },\n        {\n            source: \"mirror.example.com\",\n            enabled: true,\n            backup: true,\n        },\n    ],\n});\nconst amazonS3OriginGroup = new gcore.CdnOrigingroup(\"amazon_s3_origin_group\", {\n    name: \"amazon_s3_origin_group\",\n    auth: {\n        s3Type: \"amazon\",\n        s3AccessKeyId: \"123*******************\",\n        s3SecretAccessKey: \"123*******************\",\n        s3BucketName: \"bucket-name\",\n        s3Region: \"eu-south-2\",\n    },\n});\nconst otherS3OriginGroup = new gcore.CdnOrigingroup(\"other_s3_origin_group\", {\n    name: \"other_s3_origin_group\",\n    auth: {\n        s3Type: \"other\",\n        s3StorageHostname: \"s3.example.com\",\n        s3AccessKeyId: \"123*******************\",\n        s3SecretAccessKey: \"123*******************\",\n        s3BucketName: \"bucket-name\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\norigin_group1 = gcore.CdnOrigingroup(\"origin_group_1\",\n    name=\"origin_group_1\",\n    use_next=True,\n    origins=[\n        {\n            \"source\": \"example.com\",\n            \"enabled\": True,\n        },\n        {\n            \"source\": \"mirror.example.com\",\n            \"enabled\": True,\n            \"backup\": True,\n        },\n    ])\namazon_s3_origin_group = gcore.CdnOrigingroup(\"amazon_s3_origin_group\",\n    name=\"amazon_s3_origin_group\",\n    auth={\n        \"s3_type\": \"amazon\",\n        \"s3_access_key_id\": \"123*******************\",\n        \"s3_secret_access_key\": \"123*******************\",\n        \"s3_bucket_name\": \"bucket-name\",\n        \"s3_region\": \"eu-south-2\",\n    })\nother_s3_origin_group = gcore.CdnOrigingroup(\"other_s3_origin_group\",\n    name=\"other_s3_origin_group\",\n    auth={\n        \"s3_type\": \"other\",\n        \"s3_storage_hostname\": \"s3.example.com\",\n        \"s3_access_key_id\": \"123*******************\",\n        \"s3_secret_access_key\": \"123*******************\",\n        \"s3_bucket_name\": \"bucket-name\",\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 originGroup1 = new Gcore.CdnOrigingroup(\"origin_group_1\", new()\n    {\n        Name = \"origin_group_1\",\n        UseNext = true,\n        Origins = new[]\n        {\n            new Gcore.Inputs.CdnOrigingroupOriginArgs\n            {\n                Source = \"example.com\",\n                Enabled = true,\n            },\n            new Gcore.Inputs.CdnOrigingroupOriginArgs\n            {\n                Source = \"mirror.example.com\",\n                Enabled = true,\n                Backup = true,\n            },\n        },\n    });\n\n    var amazonS3OriginGroup = new Gcore.CdnOrigingroup(\"amazon_s3_origin_group\", new()\n    {\n        Name = \"amazon_s3_origin_group\",\n        Auth = new Gcore.Inputs.CdnOrigingroupAuthArgs\n        {\n            S3Type = \"amazon\",\n            S3AccessKeyId = \"123*******************\",\n            S3SecretAccessKey = \"123*******************\",\n            S3BucketName = \"bucket-name\",\n            S3Region = \"eu-south-2\",\n        },\n    });\n\n    var otherS3OriginGroup = new Gcore.CdnOrigingroup(\"other_s3_origin_group\", new()\n    {\n        Name = \"other_s3_origin_group\",\n        Auth = new Gcore.Inputs.CdnOrigingroupAuthArgs\n        {\n            S3Type = \"other\",\n            S3StorageHostname = \"s3.example.com\",\n            S3AccessKeyId = \"123*******************\",\n            S3SecretAccessKey = \"123*******************\",\n            S3BucketName = \"bucket-name\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewCdnOrigingroup(ctx, \"origin_group_1\", \u0026gcore.CdnOrigingroupArgs{\n\t\t\tName:    pulumi.String(\"origin_group_1\"),\n\t\t\tUseNext: pulumi.Bool(true),\n\t\t\tOrigins: gcore.CdnOrigingroupOriginArray{\n\t\t\t\t\u0026gcore.CdnOrigingroupOriginArgs{\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\t\u0026gcore.CdnOrigingroupOriginArgs{\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\t_, err = gcore.NewCdnOrigingroup(ctx, \"amazon_s3_origin_group\", \u0026gcore.CdnOrigingroupArgs{\n\t\t\tName: pulumi.String(\"amazon_s3_origin_group\"),\n\t\t\tAuth: \u0026gcore.CdnOrigingroupAuthArgs{\n\t\t\t\tS3Type:            pulumi.String(\"amazon\"),\n\t\t\t\tS3AccessKeyId:     pulumi.String(\"123*******************\"),\n\t\t\t\tS3SecretAccessKey: pulumi.String(\"123*******************\"),\n\t\t\t\tS3BucketName:      pulumi.String(\"bucket-name\"),\n\t\t\t\tS3Region:          pulumi.String(\"eu-south-2\"),\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.NewCdnOrigingroup(ctx, \"other_s3_origin_group\", \u0026gcore.CdnOrigingroupArgs{\n\t\t\tName: pulumi.String(\"other_s3_origin_group\"),\n\t\t\tAuth: \u0026gcore.CdnOrigingroupAuthArgs{\n\t\t\t\tS3Type:            pulumi.String(\"other\"),\n\t\t\t\tS3StorageHostname: pulumi.String(\"s3.example.com\"),\n\t\t\t\tS3AccessKeyId:     pulumi.String(\"123*******************\"),\n\t\t\t\tS3SecretAccessKey: pulumi.String(\"123*******************\"),\n\t\t\t\tS3BucketName:      pulumi.String(\"bucket-name\"),\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.CdnOrigingroupOriginArgs;\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        var originGroup1 = new CdnOrigingroup(\"originGroup1\", CdnOrigingroupArgs.builder()\n            .name(\"origin_group_1\")\n            .useNext(true)\n            .origins(            \n                CdnOrigingroupOriginArgs.builder()\n                    .source(\"example.com\")\n                    .enabled(true)\n                    .build(),\n                CdnOrigingroupOriginArgs.builder()\n                    .source(\"mirror.example.com\")\n                    .enabled(true)\n                    .backup(true)\n                    .build())\n            .build());\n\n        var amazonS3OriginGroup = new CdnOrigingroup(\"amazonS3OriginGroup\", CdnOrigingroupArgs.builder()\n            .name(\"amazon_s3_origin_group\")\n            .auth(CdnOrigingroupAuthArgs.builder()\n                .s3Type(\"amazon\")\n                .s3AccessKeyId(\"123*******************\")\n                .s3SecretAccessKey(\"123*******************\")\n                .s3BucketName(\"bucket-name\")\n                .s3Region(\"eu-south-2\")\n                .build())\n            .build());\n\n        var otherS3OriginGroup = new CdnOrigingroup(\"otherS3OriginGroup\", CdnOrigingroupArgs.builder()\n            .name(\"other_s3_origin_group\")\n            .auth(CdnOrigingroupAuthArgs.builder()\n                .s3Type(\"other\")\n                .s3StorageHostname(\"s3.example.com\")\n                .s3AccessKeyId(\"123*******************\")\n                .s3SecretAccessKey(\"123*******************\")\n                .s3BucketName(\"bucket-name\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  originGroup1:\n    type: gcore:CdnOrigingroup\n    name: origin_group_1\n    properties:\n      name: origin_group_1\n      useNext: true\n      origins:\n        - source: example.com\n          enabled: true\n        - source: mirror.example.com\n          enabled: true\n          backup: true\n  amazonS3OriginGroup:\n    type: gcore:CdnOrigingroup\n    name: amazon_s3_origin_group\n    properties:\n      name: amazon_s3_origin_group\n      auth:\n        s3Type: amazon\n        s3AccessKeyId: 123*******************\n        s3SecretAccessKey: 123*******************\n        s3BucketName: bucket-name\n        s3Region: eu-south-2\n  otherS3OriginGroup:\n    type: gcore:CdnOrigingroup\n    name: other_s3_origin_group\n    properties:\n      name: other_s3_origin_group\n      auth:\n        s3Type: other\n        s3StorageHostname: s3.example.com\n        s3AccessKeyId: 123*******************\n        s3SecretAccessKey: 123*******************\n        s3BucketName: bucket-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"auth":{"$ref":"#/types/gcore:index%2FCdnOrigingroupAuth:CdnOrigingroupAuth","description":"Authentication configuration for S3 storage. This field is required unless \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 is specified. \u003cspan pulumi-lang-nodejs=\"`auth`\" pulumi-lang-dotnet=\"`Auth`\" pulumi-lang-go=\"`auth`\" pulumi-lang-python=\"`auth`\" pulumi-lang-yaml=\"`auth`\" pulumi-lang-java=\"`auth`\"\u003e`auth`\u003c/span\u003e and \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 cannot both be specified simultaneously.\n"},"cdnOrigingroupId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Name of the origin group\n"},"origins":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCdnOrigingroupOrigin:CdnOrigingroupOrigin"},"description":"Contains information about all IP address or Domain names of your origin and the port if custom. This field is required unless \u003cspan pulumi-lang-nodejs=\"`auth`\" pulumi-lang-dotnet=\"`Auth`\" pulumi-lang-go=\"`auth`\" pulumi-lang-python=\"`auth`\" pulumi-lang-yaml=\"`auth`\" pulumi-lang-java=\"`auth`\"\u003e`auth`\u003c/span\u003e is specified. \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 and \u003cspan pulumi-lang-nodejs=\"`auth`\" pulumi-lang-dotnet=\"`Auth`\" pulumi-lang-go=\"`auth`\" pulumi-lang-python=\"`auth`\" pulumi-lang-yaml=\"`auth`\" pulumi-lang-java=\"`auth`\"\u003e`auth`\u003c/span\u003e cannot both be specified simultaneously.\n"},"proxyNextUpstreams":{"type":"array","items":{"type":"string"},"description":"Available values: error, timeout, invalid*header, http*403, http*404, http*429, http*500, http*502, http*503, http*504.\n"},"useNext":{"type":"boolean","description":"This options have two possible values: true — The option is active. In case the origin responds with 4XX or 5XX codes, use the next origin from the list. false — The option is disabled.\n"}},"type":"object","required":["cdnOrigingroupId","name","proxyNextUpstreams"],"inputProperties":{"auth":{"$ref":"#/types/gcore:index%2FCdnOrigingroupAuth:CdnOrigingroupAuth","description":"Authentication configuration for S3 storage. This field is required unless \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 is specified. \u003cspan pulumi-lang-nodejs=\"`auth`\" pulumi-lang-dotnet=\"`Auth`\" pulumi-lang-go=\"`auth`\" pulumi-lang-python=\"`auth`\" pulumi-lang-yaml=\"`auth`\" pulumi-lang-java=\"`auth`\"\u003e`auth`\u003c/span\u003e and \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 cannot both be specified simultaneously.\n"},"cdnOrigingroupId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Name of the origin group\n"},"origins":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCdnOrigingroupOrigin:CdnOrigingroupOrigin"},"description":"Contains information about all IP address or Domain names of your origin and the port if custom. This field is required unless \u003cspan pulumi-lang-nodejs=\"`auth`\" pulumi-lang-dotnet=\"`Auth`\" pulumi-lang-go=\"`auth`\" pulumi-lang-python=\"`auth`\" pulumi-lang-yaml=\"`auth`\" pulumi-lang-java=\"`auth`\"\u003e`auth`\u003c/span\u003e is specified. \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 and \u003cspan pulumi-lang-nodejs=\"`auth`\" pulumi-lang-dotnet=\"`Auth`\" pulumi-lang-go=\"`auth`\" pulumi-lang-python=\"`auth`\" pulumi-lang-yaml=\"`auth`\" pulumi-lang-java=\"`auth`\"\u003e`auth`\u003c/span\u003e cannot both be specified simultaneously.\n"},"proxyNextUpstreams":{"type":"array","items":{"type":"string"},"description":"Available values: error, timeout, invalid*header, http*403, http*404, http*429, http*500, http*502, http*503, http*504.\n"},"useNext":{"type":"boolean","description":"This options have two possible values: true — The option is active. In case the origin responds with 4XX or 5XX codes, use the next origin from the list. false — The option is disabled.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CdnOrigingroup resources.\n","properties":{"auth":{"$ref":"#/types/gcore:index%2FCdnOrigingroupAuth:CdnOrigingroupAuth","description":"Authentication configuration for S3 storage. This field is required unless \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 is specified. \u003cspan pulumi-lang-nodejs=\"`auth`\" pulumi-lang-dotnet=\"`Auth`\" pulumi-lang-go=\"`auth`\" pulumi-lang-python=\"`auth`\" pulumi-lang-yaml=\"`auth`\" pulumi-lang-java=\"`auth`\"\u003e`auth`\u003c/span\u003e and \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 cannot both be specified simultaneously.\n"},"cdnOrigingroupId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Name of the origin group\n"},"origins":{"type":"array","items":{"$ref":"#/types/gcore:index%2FCdnOrigingroupOrigin:CdnOrigingroupOrigin"},"description":"Contains information about all IP address or Domain names of your origin and the port if custom. This field is required unless \u003cspan pulumi-lang-nodejs=\"`auth`\" pulumi-lang-dotnet=\"`Auth`\" pulumi-lang-go=\"`auth`\" pulumi-lang-python=\"`auth`\" pulumi-lang-yaml=\"`auth`\" pulumi-lang-java=\"`auth`\"\u003e`auth`\u003c/span\u003e is specified. \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 and \u003cspan pulumi-lang-nodejs=\"`auth`\" pulumi-lang-dotnet=\"`Auth`\" pulumi-lang-go=\"`auth`\" pulumi-lang-python=\"`auth`\" pulumi-lang-yaml=\"`auth`\" pulumi-lang-java=\"`auth`\"\u003e`auth`\u003c/span\u003e cannot both be specified simultaneously.\n"},"proxyNextUpstreams":{"type":"array","items":{"type":"string"},"description":"Available values: error, timeout, invalid*header, http*403, http*404, http*429, http*500, http*502, http*503, http*504.\n"},"useNext":{"type":"boolean","description":"This options have two possible values: true — The option is active. In case the origin responds with 4XX or 5XX codes, use the next origin from the list. false — The option is disabled.\n"}},"type":"object"}},"gcore:index/cdnOriginshielding:CdnOriginshielding":{"description":"Represent origin shielding\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 originGroup1 = new gcore.CdnOrigingroup(\"origin_group_1\", {\n    name: \"origin_group_1\",\n    useNext: true,\n    origins: [{\n        source: \"example.com\",\n        enabled: true,\n    }],\n});\nconst cdnExampleCom = new gcore.CdnResource(\"cdn_example_com\", {\n    cname: \"cdn.example.com\",\n    originGroup: originGroup1.cdnOrigingroupId,\n    originProtocol: \"MATCH\",\n    secondaryHostnames: [\"cdn2.example.com\"],\n    options: {\n        edgeCacheSettings: {\n            \"default\": \"8d\",\n        },\n        browserCacheSettings: {\n            value: \"1d\",\n        },\n        redirectHttpToHttps: {\n            value: true,\n        },\n        requestLimiter: {\n            rateUnit: \"r/s\",\n            rate: 5,\n            burst: 1,\n        },\n        gzipOn: {\n            value: true,\n        },\n        cors: {\n            values: [\"*\"],\n        },\n        rewrite: {\n            body: \"/(.*) /$1\",\n        },\n        tlsVersions: {\n            enabled: true,\n            values: [\"TLSv1.2\"],\n        },\n        forceReturn: {\n            code: 200,\n            body: \"OK\",\n        },\n    },\n});\nconst sl = gcore.getCdnShieldingLocation({\n    datacenter: \"am3\",\n});\nconst originShielding1 = new gcore.CdnOriginshielding(\"origin_shielding_1\", {\n    resourceId: cdnExampleCom.cdnResourceId,\n    shieldingPop: sl.then(sl =\u003e sl.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\norigin_group1 = gcore.CdnOrigingroup(\"origin_group_1\",\n    name=\"origin_group_1\",\n    use_next=True,\n    origins=[{\n        \"source\": \"example.com\",\n        \"enabled\": True,\n    }])\ncdn_example_com = gcore.CdnResource(\"cdn_example_com\",\n    cname=\"cdn.example.com\",\n    origin_group=origin_group1.cdn_origingroup_id,\n    origin_protocol=\"MATCH\",\n    secondary_hostnames=[\"cdn2.example.com\"],\n    options={\n        \"edge_cache_settings\": {\n            \"default\": \"8d\",\n        },\n        \"browser_cache_settings\": {\n            \"value\": \"1d\",\n        },\n        \"redirect_http_to_https\": {\n            \"value\": True,\n        },\n        \"request_limiter\": {\n            \"rate_unit\": \"r/s\",\n            \"rate\": 5,\n            \"burst\": 1,\n        },\n        \"gzip_on\": {\n            \"value\": True,\n        },\n        \"cors\": {\n            \"values\": [\"*\"],\n        },\n        \"rewrite\": {\n            \"body\": \"/(.*) /$1\",\n        },\n        \"tls_versions\": {\n            \"enabled\": True,\n            \"values\": [\"TLSv1.2\"],\n        },\n        \"force_return\": {\n            \"code\": 200,\n            \"body\": \"OK\",\n        },\n    })\nsl = gcore.get_cdn_shielding_location(datacenter=\"am3\")\norigin_shielding1 = gcore.CdnOriginshielding(\"origin_shielding_1\",\n    resource_id=cdn_example_com.cdn_resource_id,\n    shielding_pop=sl.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 originGroup1 = new Gcore.CdnOrigingroup(\"origin_group_1\", new()\n    {\n        Name = \"origin_group_1\",\n        UseNext = true,\n        Origins = new[]\n        {\n            new Gcore.Inputs.CdnOrigingroupOriginArgs\n            {\n                Source = \"example.com\",\n                Enabled = true,\n            },\n        },\n    });\n\n    var cdnExampleCom = new Gcore.CdnResource(\"cdn_example_com\", new()\n    {\n        Cname = \"cdn.example.com\",\n        OriginGroup = originGroup1.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                Default = \"8d\",\n            },\n            BrowserCacheSettings = new Gcore.Inputs.CdnResourceOptionsBrowserCacheSettingsArgs\n            {\n                Value = \"1d\",\n            },\n            RedirectHttpToHttps = new Gcore.Inputs.CdnResourceOptionsRedirectHttpToHttpsArgs\n            {\n                Value = true,\n            },\n            RequestLimiter = new Gcore.Inputs.CdnResourceOptionsRequestLimiterArgs\n            {\n                RateUnit = \"r/s\",\n                Rate = 5,\n                Burst = 1,\n            },\n            GzipOn = new Gcore.Inputs.CdnResourceOptionsGzipOnArgs\n            {\n                Value = true,\n            },\n            Cors = new Gcore.Inputs.CdnResourceOptionsCorsArgs\n            {\n                Values = new[]\n                {\n                    \"*\",\n                },\n            },\n            Rewrite = new Gcore.Inputs.CdnResourceOptionsRewriteArgs\n            {\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                Code = 200,\n                Body = \"OK\",\n            },\n        },\n    });\n\n    var sl = Gcore.GetCdnShieldingLocation.Invoke(new()\n    {\n        Datacenter = \"am3\",\n    });\n\n    var originShielding1 = new Gcore.CdnOriginshielding(\"origin_shielding_1\", new()\n    {\n        ResourceId = cdnExampleCom.CdnResourceId,\n        ShieldingPop = sl.Apply(getCdnShieldingLocationResult =\u003e getCdnShieldingLocationResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\toriginGroup1, err := gcore.NewCdnOrigingroup(ctx, \"origin_group_1\", \u0026gcore.CdnOrigingroupArgs{\n\t\t\tName:    pulumi.String(\"origin_group_1\"),\n\t\t\tUseNext: pulumi.Bool(true),\n\t\t\tOrigins: gcore.CdnOrigingroupOriginArray{\n\t\t\t\t\u0026gcore.CdnOrigingroupOriginArgs{\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\tcdnExampleCom, err := gcore.NewCdnResource(ctx, \"cdn_example_com\", \u0026gcore.CdnResourceArgs{\n\t\t\tCname:          pulumi.String(\"cdn.example.com\"),\n\t\t\tOriginGroup:    originGroup1.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\tDefault: pulumi.String(\"8d\"),\n\t\t\t\t},\n\t\t\t\tBrowserCacheSettings: \u0026gcore.CdnResourceOptionsBrowserCacheSettingsArgs{\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\tValue: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tRequestLimiter: \u0026gcore.CdnResourceOptionsRequestLimiterArgs{\n\t\t\t\t\tRateUnit: pulumi.String(\"r/s\"),\n\t\t\t\t\tRate:     pulumi.Float64(5),\n\t\t\t\t\tBurst:    pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t\tGzipOn: \u0026gcore.CdnResourceOptionsGzipOnArgs{\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\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\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\tCode: pulumi.Float64(200),\n\t\t\t\t\tBody: pulumi.String(\"OK\"),\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\tsl, err := gcore.GetCdnShieldingLocation(ctx, \u0026gcore.GetCdnShieldingLocationArgs{\n\t\t\tDatacenter: \"am3\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCdnOriginshielding(ctx, \"origin_shielding_1\", \u0026gcore.CdnOriginshieldingArgs{\n\t\t\tResourceId:   cdnExampleCom.CdnResourceId,\n\t\t\tShieldingPop: pulumi.String(sl.Id),\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.CdnOrigingroupOriginArgs;\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.CdnResourceOptionsRequestLimiterArgs;\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.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCdnShieldingLocationArgs;\nimport com.pulumi.gcore.CdnOriginshielding;\nimport com.pulumi.gcore.CdnOriginshieldingArgs;\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 originGroup1 = new CdnOrigingroup(\"originGroup1\", CdnOrigingroupArgs.builder()\n            .name(\"origin_group_1\")\n            .useNext(true)\n            .origins(CdnOrigingroupOriginArgs.builder()\n                .source(\"example.com\")\n                .enabled(true)\n                .build())\n            .build());\n\n        var cdnExampleCom = new CdnResource(\"cdnExampleCom\", CdnResourceArgs.builder()\n            .cname(\"cdn.example.com\")\n            .originGroup(originGroup1.cdnOrigingroupId())\n            .originProtocol(\"MATCH\")\n            .secondaryHostnames(\"cdn2.example.com\")\n            .options(CdnResourceOptionsArgs.builder()\n                .edgeCacheSettings(CdnResourceOptionsEdgeCacheSettingsArgs.builder()\n                    .default_(\"8d\")\n                    .build())\n                .browserCacheSettings(CdnResourceOptionsBrowserCacheSettingsArgs.builder()\n                    .value(\"1d\")\n                    .build())\n                .redirectHttpToHttps(CdnResourceOptionsRedirectHttpToHttpsArgs.builder()\n                    .value(true)\n                    .build())\n                .requestLimiter(CdnResourceOptionsRequestLimiterArgs.builder()\n                    .rateUnit(\"r/s\")\n                    .rate(5.0)\n                    .burst(1.0)\n                    .build())\n                .gzipOn(CdnResourceOptionsGzipOnArgs.builder()\n                    .value(true)\n                    .build())\n                .cors(CdnResourceOptionsCorsArgs.builder()\n                    .values(\"*\")\n                    .build())\n                .rewrite(CdnResourceOptionsRewriteArgs.builder()\n                    .body(\"/(.*) /$1\")\n                    .build())\n                .tlsVersions(CdnResourceOptionsTlsVersionsArgs.builder()\n                    .enabled(true)\n                    .values(\"TLSv1.2\")\n                    .build())\n                .forceReturn(CdnResourceOptionsForceReturnArgs.builder()\n                    .code(200.0)\n                    .body(\"OK\")\n                    .build())\n                .build())\n            .build());\n\n        final var sl = GcoreFunctions.getCdnShieldingLocation(GetCdnShieldingLocationArgs.builder()\n            .datacenter(\"am3\")\n            .build());\n\n        var originShielding1 = new CdnOriginshielding(\"originShielding1\", CdnOriginshieldingArgs.builder()\n            .resourceId(cdnExampleCom.cdnResourceId())\n            .shieldingPop(sl.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  originGroup1:\n    type: gcore:CdnOrigingroup\n    name: origin_group_1\n    properties:\n      name: origin_group_1\n      useNext: true\n      origins:\n        - source: example.com\n          enabled: true\n  cdnExampleCom:\n    type: gcore:CdnResource\n    name: cdn_example_com\n    properties:\n      cname: cdn.example.com\n      originGroup: ${originGroup1.cdnOrigingroupId}\n      originProtocol: MATCH\n      secondaryHostnames:\n        - cdn2.example.com\n      options:\n        edgeCacheSettings:\n          default: 8d\n        browserCacheSettings:\n          value: 1d\n        redirectHttpToHttps:\n          value: true\n        requestLimiter:\n          rateUnit: r/s\n          rate: 5\n          burst: 1\n        gzipOn:\n          value: true\n        cors:\n          values:\n            - '*'\n        rewrite:\n          body: /(.*) /$1\n        tlsVersions:\n          enabled: true\n          values:\n            - TLSv1.2\n        forceReturn:\n          code: 200\n          body: OK\n  originShielding1:\n    type: gcore:CdnOriginshielding\n    name: origin_shielding_1\n    properties:\n      resourceId: ${cdnExampleCom.cdnResourceId}\n      shieldingPop: ${sl.id}\nvariables:\n  sl:\n    fn::invoke:\n      function: gcore:getCdnShieldingLocation\n      arguments:\n        datacenter: am3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"cdnOriginshieldingId":{"type":"string","description":"The ID of this resource.\n"},"resourceId":{"type":"number","description":"ID of CDN resource for which shielding will be applied\n"},"shieldingPop":{"type":"number","description":"ID of the shielding point of present\n"}},"type":"object","required":["cdnOriginshieldingId","resourceId","shieldingPop"],"inputProperties":{"cdnOriginshieldingId":{"type":"string","description":"The ID of this resource.\n"},"resourceId":{"type":"number","description":"ID of CDN resource for which shielding will be applied\n"},"shieldingPop":{"type":"number","description":"ID of the shielding point of present\n"}},"requiredInputs":["resourceId","shieldingPop"],"stateInputs":{"description":"Input properties used for looking up and filtering CdnOriginshielding resources.\n","properties":{"cdnOriginshieldingId":{"type":"string","description":"The ID of this resource.\n"},"resourceId":{"type":"number","description":"ID of CDN resource for which shielding will be applied\n"},"shieldingPop":{"type":"number","description":"ID of the shielding point of present\n"}},"type":"object"}},"gcore:index/cdnResource:CdnResource":{"description":"Represent CDN resource\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 originGroup1 = new gcore.CdnOrigingroup(\"origin_group_1\", {\n    name: \"origin_group_1\",\n    useNext: true,\n    origins: [{\n        source: \"example.com\",\n        enabled: true,\n    }],\n});\nconst cdnExampleCom = new gcore.CdnResource(\"cdn_example_com\", {\n    cname: \"cdn.example.com\",\n    originGroup: originGroup1.cdnOrigingroupId,\n    originProtocol: \"MATCH\",\n    secondaryHostnames: [\"cdn2.example.com\"],\n    options: {\n        fastedge: {\n            onRequestHeaders: {\n                enabled: true,\n                appId: \"1001\",\n                interruptOnError: true,\n                executeOnEdge: true,\n                executeOnShield: false,\n            },\n            onResponseHeaders: {\n                enabled: true,\n                appId: \"1002\",\n                interruptOnError: true,\n            },\n        },\n        edgeCacheSettings: {\n            \"default\": \"8d\",\n        },\n        browserCacheSettings: {\n            value: \"1d\",\n        },\n        redirectHttpToHttps: {\n            value: true,\n        },\n        requestLimiter: {\n            rateUnit: \"r/s\",\n            rate: 5,\n            burst: 1,\n        },\n        gzipOn: {\n            value: true,\n        },\n        cors: {\n            values: [\"*\"],\n        },\n        rewrite: {\n            body: \"/(.*) /$1\",\n        },\n        tlsVersions: {\n            enabled: true,\n            values: [\"TLSv1.2\"],\n        },\n        forceReturn: {\n            code: 200,\n            body: \"OK\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\norigin_group1 = gcore.CdnOrigingroup(\"origin_group_1\",\n    name=\"origin_group_1\",\n    use_next=True,\n    origins=[{\n        \"source\": \"example.com\",\n        \"enabled\": True,\n    }])\ncdn_example_com = gcore.CdnResource(\"cdn_example_com\",\n    cname=\"cdn.example.com\",\n    origin_group=origin_group1.cdn_origingroup_id,\n    origin_protocol=\"MATCH\",\n    secondary_hostnames=[\"cdn2.example.com\"],\n    options={\n        \"fastedge\": {\n            \"on_request_headers\": {\n                \"enabled\": True,\n                \"app_id\": \"1001\",\n                \"interrupt_on_error\": True,\n                \"execute_on_edge\": True,\n                \"execute_on_shield\": False,\n            },\n            \"on_response_headers\": {\n                \"enabled\": True,\n                \"app_id\": \"1002\",\n                \"interrupt_on_error\": True,\n            },\n        },\n        \"edge_cache_settings\": {\n            \"default\": \"8d\",\n        },\n        \"browser_cache_settings\": {\n            \"value\": \"1d\",\n        },\n        \"redirect_http_to_https\": {\n            \"value\": True,\n        },\n        \"request_limiter\": {\n            \"rate_unit\": \"r/s\",\n            \"rate\": 5,\n            \"burst\": 1,\n        },\n        \"gzip_on\": {\n            \"value\": True,\n        },\n        \"cors\": {\n            \"values\": [\"*\"],\n        },\n        \"rewrite\": {\n            \"body\": \"/(.*) /$1\",\n        },\n        \"tls_versions\": {\n            \"enabled\": True,\n            \"values\": [\"TLSv1.2\"],\n        },\n        \"force_return\": {\n            \"code\": 200,\n            \"body\": \"OK\",\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 originGroup1 = new Gcore.CdnOrigingroup(\"origin_group_1\", new()\n    {\n        Name = \"origin_group_1\",\n        UseNext = true,\n        Origins = new[]\n        {\n            new Gcore.Inputs.CdnOrigingroupOriginArgs\n            {\n                Source = \"example.com\",\n                Enabled = true,\n            },\n        },\n    });\n\n    var cdnExampleCom = new Gcore.CdnResource(\"cdn_example_com\", new()\n    {\n        Cname = \"cdn.example.com\",\n        OriginGroup = originGroup1.CdnOrigingroupId,\n        OriginProtocol = \"MATCH\",\n        SecondaryHostnames = new[]\n        {\n            \"cdn2.example.com\",\n        },\n        Options = new Gcore.Inputs.CdnResourceOptionsArgs\n        {\n            Fastedge = new Gcore.Inputs.CdnResourceOptionsFastedgeArgs\n            {\n                OnRequestHeaders = new Gcore.Inputs.CdnResourceOptionsFastedgeOnRequestHeadersArgs\n                {\n                    Enabled = true,\n                    AppId = \"1001\",\n                    InterruptOnError = true,\n                    ExecuteOnEdge = true,\n                    ExecuteOnShield = false,\n                },\n                OnResponseHeaders = new Gcore.Inputs.CdnResourceOptionsFastedgeOnResponseHeadersArgs\n                {\n                    Enabled = true,\n                    AppId = \"1002\",\n                    InterruptOnError = true,\n                },\n            },\n            EdgeCacheSettings = new Gcore.Inputs.CdnResourceOptionsEdgeCacheSettingsArgs\n            {\n                Default = \"8d\",\n            },\n            BrowserCacheSettings = new Gcore.Inputs.CdnResourceOptionsBrowserCacheSettingsArgs\n            {\n                Value = \"1d\",\n            },\n            RedirectHttpToHttps = new Gcore.Inputs.CdnResourceOptionsRedirectHttpToHttpsArgs\n            {\n                Value = true,\n            },\n            RequestLimiter = new Gcore.Inputs.CdnResourceOptionsRequestLimiterArgs\n            {\n                RateUnit = \"r/s\",\n                Rate = 5,\n                Burst = 1,\n            },\n            GzipOn = new Gcore.Inputs.CdnResourceOptionsGzipOnArgs\n            {\n                Value = true,\n            },\n            Cors = new Gcore.Inputs.CdnResourceOptionsCorsArgs\n            {\n                Values = new[]\n                {\n                    \"*\",\n                },\n            },\n            Rewrite = new Gcore.Inputs.CdnResourceOptionsRewriteArgs\n            {\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                Code = 200,\n                Body = \"OK\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\toriginGroup1, err := gcore.NewCdnOrigingroup(ctx, \"origin_group_1\", \u0026gcore.CdnOrigingroupArgs{\n\t\t\tName:    pulumi.String(\"origin_group_1\"),\n\t\t\tUseNext: pulumi.Bool(true),\n\t\t\tOrigins: gcore.CdnOrigingroupOriginArray{\n\t\t\t\t\u0026gcore.CdnOrigingroupOriginArgs{\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, \"cdn_example_com\", \u0026gcore.CdnResourceArgs{\n\t\t\tCname:          pulumi.String(\"cdn.example.com\"),\n\t\t\tOriginGroup:    originGroup1.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\tFastedge: \u0026gcore.CdnResourceOptionsFastedgeArgs{\n\t\t\t\t\tOnRequestHeaders: \u0026gcore.CdnResourceOptionsFastedgeOnRequestHeadersArgs{\n\t\t\t\t\t\tEnabled:          pulumi.Bool(true),\n\t\t\t\t\t\tAppId:            pulumi.String(\"1001\"),\n\t\t\t\t\t\tInterruptOnError: pulumi.Bool(true),\n\t\t\t\t\t\tExecuteOnEdge:    pulumi.Bool(true),\n\t\t\t\t\t\tExecuteOnShield:  pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t\tOnResponseHeaders: \u0026gcore.CdnResourceOptionsFastedgeOnResponseHeadersArgs{\n\t\t\t\t\t\tEnabled:          pulumi.Bool(true),\n\t\t\t\t\t\tAppId:            pulumi.String(\"1002\"),\n\t\t\t\t\t\tInterruptOnError: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tEdgeCacheSettings: \u0026gcore.CdnResourceOptionsEdgeCacheSettingsArgs{\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\tValue: pulumi.String(\"1d\"),\n\t\t\t\t},\n\t\t\t\tRedirectHttpToHttps: \u0026gcore.CdnResourceOptionsRedirectHttpToHttpsArgs{\n\t\t\t\t\tValue: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tRequestLimiter: \u0026gcore.CdnResourceOptionsRequestLimiterArgs{\n\t\t\t\t\tRateUnit: pulumi.String(\"r/s\"),\n\t\t\t\t\tRate:     pulumi.Float64(5),\n\t\t\t\t\tBurst:    pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t\tGzipOn: \u0026gcore.CdnResourceOptionsGzipOnArgs{\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\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\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\tCode: pulumi.Float64(200),\n\t\t\t\t\tBody: pulumi.String(\"OK\"),\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.CdnOrigingroupOriginArgs;\nimport com.pulumi.gcore.CdnResource;\nimport com.pulumi.gcore.CdnResourceArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsFastedgeArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsFastedgeOnRequestHeadersArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsFastedgeOnResponseHeadersArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsEdgeCacheSettingsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsBrowserCacheSettingsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsRedirectHttpToHttpsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsRequestLimiterArgs;\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 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 originGroup1 = new CdnOrigingroup(\"originGroup1\", CdnOrigingroupArgs.builder()\n            .name(\"origin_group_1\")\n            .useNext(true)\n            .origins(CdnOrigingroupOriginArgs.builder()\n                .source(\"example.com\")\n                .enabled(true)\n                .build())\n            .build());\n\n        var cdnExampleCom = new CdnResource(\"cdnExampleCom\", CdnResourceArgs.builder()\n            .cname(\"cdn.example.com\")\n            .originGroup(originGroup1.cdnOrigingroupId())\n            .originProtocol(\"MATCH\")\n            .secondaryHostnames(\"cdn2.example.com\")\n            .options(CdnResourceOptionsArgs.builder()\n                .fastedge(CdnResourceOptionsFastedgeArgs.builder()\n                    .onRequestHeaders(CdnResourceOptionsFastedgeOnRequestHeadersArgs.builder()\n                        .enabled(true)\n                        .appId(\"1001\")\n                        .interruptOnError(true)\n                        .executeOnEdge(true)\n                        .executeOnShield(false)\n                        .build())\n                    .onResponseHeaders(CdnResourceOptionsFastedgeOnResponseHeadersArgs.builder()\n                        .enabled(true)\n                        .appId(\"1002\")\n                        .interruptOnError(true)\n                        .build())\n                    .build())\n                .edgeCacheSettings(CdnResourceOptionsEdgeCacheSettingsArgs.builder()\n                    .default_(\"8d\")\n                    .build())\n                .browserCacheSettings(CdnResourceOptionsBrowserCacheSettingsArgs.builder()\n                    .value(\"1d\")\n                    .build())\n                .redirectHttpToHttps(CdnResourceOptionsRedirectHttpToHttpsArgs.builder()\n                    .value(true)\n                    .build())\n                .requestLimiter(CdnResourceOptionsRequestLimiterArgs.builder()\n                    .rateUnit(\"r/s\")\n                    .rate(5.0)\n                    .burst(1.0)\n                    .build())\n                .gzipOn(CdnResourceOptionsGzipOnArgs.builder()\n                    .value(true)\n                    .build())\n                .cors(CdnResourceOptionsCorsArgs.builder()\n                    .values(\"*\")\n                    .build())\n                .rewrite(CdnResourceOptionsRewriteArgs.builder()\n                    .body(\"/(.*) /$1\")\n                    .build())\n                .tlsVersions(CdnResourceOptionsTlsVersionsArgs.builder()\n                    .enabled(true)\n                    .values(\"TLSv1.2\")\n                    .build())\n                .forceReturn(CdnResourceOptionsForceReturnArgs.builder()\n                    .code(200.0)\n                    .body(\"OK\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  originGroup1:\n    type: gcore:CdnOrigingroup\n    name: origin_group_1\n    properties:\n      name: origin_group_1\n      useNext: true\n      origins:\n        - source: example.com\n          enabled: true\n  cdnExampleCom:\n    type: gcore:CdnResource\n    name: cdn_example_com\n    properties:\n      cname: cdn.example.com\n      originGroup: ${originGroup1.cdnOrigingroupId}\n      originProtocol: MATCH\n      secondaryHostnames:\n        - cdn2.example.com\n      options:\n        fastedge:\n          onRequestHeaders:\n            enabled: true\n            appId: '1001'\n            interruptOnError: true\n            executeOnEdge: true\n            executeOnShield: false\n          onResponseHeaders:\n            enabled: true\n            appId: '1002'\n            interruptOnError: true\n        edgeCacheSettings:\n          default: 8d\n        browserCacheSettings:\n          value: 1d\n        redirectHttpToHttps:\n          value: true\n        requestLimiter:\n          rateUnit: r/s\n          rate: 5\n          burst: 1\n        gzipOn:\n          value: true\n        cors:\n          values:\n            - '*'\n        rewrite:\n          body: /(.*) /$1\n        tlsVersions:\n          enabled: true\n          values:\n            - TLSv1.2\n        forceReturn:\n          code: 200\n          body: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"active":{"type":"boolean","description":"The setting allows to enable or disable a CDN Resource\n"},"cdnResourceId":{"type":"string","description":"The ID of this resource.\n"},"cname":{"type":"string","description":"A CNAME that will be used to deliver content though a CDN. If you update this field new resource will be created.\n"},"description":{"type":"string","description":"Custom client description of the resource.\n"},"options":{"$ref":"#/types/gcore:index%2FCdnResourceOptions:CdnResourceOptions","description":"Each option in CDN resource settings. Each option added to CDN resource settings should have the following mandatory request fields: enabled, value.\n"},"origin":{"type":"string","description":"A domain name or IP of your origin source. Specify a port if custom. You can use either 'origin' parameter or 'originGroup' in the resource definition.\n"},"originGroup":{"type":"number","description":"ID of the Origins Group. Use one of your Origins Group or create a new one. You can use either 'origin' parameter or 'originGroup' in the resource definition.\n"},"originProtocol":{"type":"string","description":"This option defines the protocol that will be used by CDN servers to request content from an origin source. If not specified, we will use HTTP to connect to an origin server. Possible values are: HTTPS, HTTP, MATCH.\n"},"primaryResource":{"type":"number","description":"Specify the ID of the main CDN resource that shares a caching zone with a reserve resource.\n"},"proxySslCa":{"type":"number","description":"Specify the ID of the trusted CA certificate used to verify an origin.\n"},"proxySslData":{"type":"number","description":"Specify the ID of the SSL certificate used to verify an origin.\n"},"proxySslEnabled":{"type":"boolean","description":"Enables or disables SSL certificate validation of the origin server before completing any connection.\n"},"secondaryHostnames":{"type":"array","items":{"type":"string"},"description":"List of additional CNAMEs.\n"},"sslData":{"type":"number","description":"Specify the SSL Certificate ID which should be used for the CDN Resource.\n"},"sslEnabled":{"type":"boolean","description":"Use HTTPS protocol for content delivery.\n"},"status":{"type":"string","description":"Status of a CDN resource content availability. Possible values are: Active, Suspended, Processed.\n"}},"type":"object","required":["active","cdnResourceId","cname","origin","originGroup","status"],"inputProperties":{"active":{"type":"boolean","description":"The setting allows to enable or disable a CDN Resource\n"},"cdnResourceId":{"type":"string","description":"The ID of this resource.\n"},"cname":{"type":"string","description":"A CNAME that will be used to deliver content though a CDN. If you update this field new resource will be created.\n"},"description":{"type":"string","description":"Custom client description of the resource.\n"},"options":{"$ref":"#/types/gcore:index%2FCdnResourceOptions:CdnResourceOptions","description":"Each option in CDN resource settings. Each option added to CDN resource settings should have the following mandatory request fields: enabled, value.\n"},"origin":{"type":"string","description":"A domain name or IP of your origin source. Specify a port if custom. You can use either 'origin' parameter or 'originGroup' in the resource definition.\n"},"originGroup":{"type":"number","description":"ID of the Origins Group. Use one of your Origins Group or create a new one. You can use either 'origin' parameter or 'originGroup' in the resource definition.\n"},"originProtocol":{"type":"string","description":"This option defines the protocol that will be used by CDN servers to request content from an origin source. If not specified, we will use HTTP to connect to an origin server. Possible values are: HTTPS, HTTP, MATCH.\n"},"primaryResource":{"type":"number","description":"Specify the ID of the main CDN resource that shares a caching zone with a reserve resource.\n"},"proxySslCa":{"type":"number","description":"Specify the ID of the trusted CA certificate used to verify an origin.\n"},"proxySslData":{"type":"number","description":"Specify the ID of the SSL certificate used to verify an origin.\n"},"proxySslEnabled":{"type":"boolean","description":"Enables or disables SSL certificate validation of the origin server before completing any connection.\n"},"secondaryHostnames":{"type":"array","items":{"type":"string"},"description":"List of additional CNAMEs.\n"},"sslData":{"type":"number","description":"Specify the SSL Certificate ID which should be used for the CDN Resource.\n"},"sslEnabled":{"type":"boolean","description":"Use HTTPS protocol for content delivery.\n"}},"requiredInputs":["cname"],"stateInputs":{"description":"Input properties used for looking up and filtering CdnResource resources.\n","properties":{"active":{"type":"boolean","description":"The setting allows to enable or disable a CDN Resource\n"},"cdnResourceId":{"type":"string","description":"The ID of this resource.\n"},"cname":{"type":"string","description":"A CNAME that will be used to deliver content though a CDN. If you update this field new resource will be created.\n"},"description":{"type":"string","description":"Custom client description of the resource.\n"},"options":{"$ref":"#/types/gcore:index%2FCdnResourceOptions:CdnResourceOptions","description":"Each option in CDN resource settings. Each option added to CDN resource settings should have the following mandatory request fields: enabled, value.\n"},"origin":{"type":"string","description":"A domain name or IP of your origin source. Specify a port if custom. You can use either 'origin' parameter or 'originGroup' in the resource definition.\n"},"originGroup":{"type":"number","description":"ID of the Origins Group. Use one of your Origins Group or create a new one. You can use either 'origin' parameter or 'originGroup' in the resource definition.\n"},"originProtocol":{"type":"string","description":"This option defines the protocol that will be used by CDN servers to request content from an origin source. If not specified, we will use HTTP to connect to an origin server. Possible values are: HTTPS, HTTP, MATCH.\n"},"primaryResource":{"type":"number","description":"Specify the ID of the main CDN resource that shares a caching zone with a reserve resource.\n"},"proxySslCa":{"type":"number","description":"Specify the ID of the trusted CA certificate used to verify an origin.\n"},"proxySslData":{"type":"number","description":"Specify the ID of the SSL certificate used to verify an origin.\n"},"proxySslEnabled":{"type":"boolean","description":"Enables or disables SSL certificate validation of the origin server before completing any connection.\n"},"secondaryHostnames":{"type":"array","items":{"type":"string"},"description":"List of additional CNAMEs.\n"},"sslData":{"type":"number","description":"Specify the SSL Certificate ID which should be used for the CDN Resource.\n"},"sslEnabled":{"type":"boolean","description":"Use HTTPS protocol for content delivery.\n"},"status":{"type":"string","description":"Status of a CDN resource content availability. Possible values are: Active, Suspended, Processed.\n"}},"type":"object"}},"gcore:index/cdnRule:CdnRule":{"description":"Represent cdn resource rule\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 originGroup1 = new gcore.CdnOrigingroup(\"origin_group_1\", {\n    name: \"origin_group_1\",\n    useNext: true,\n    origins: [{\n        source: \"example.com\",\n        enabled: true,\n    }],\n});\nconst cdnExampleCom = new gcore.CdnResource(\"cdn_example_com\", {\n    cname: \"cdn.example.com\",\n    originGroup: originGroup1.cdnOrigingroupId,\n    originProtocol: \"MATCH\",\n    secondaryHostnames: [\"cdn2.example.com\"],\n});\nconst cdnExampleComRule1 = new gcore.CdnRule(\"cdn_example_com_rule_1\", {\n    resourceId: cdnExampleCom.cdnResourceId,\n    name: \"All PNG images\",\n    rule: \"/folder/images/*.png\",\n    ruleType: 0,\n    weight: 0,\n    options: {\n        edgeCacheSettings: {\n            \"default\": \"14d\",\n        },\n        browserCacheSettings: {\n            value: \"14d\",\n        },\n        redirectHttpToHttps: {\n            value: true,\n        },\n        requestLimiter: {\n            rateUnit: \"r/s\",\n            rate: 5,\n            burst: 1,\n        },\n        gzipOn: {\n            value: true,\n        },\n        cors: {\n            values: [\"*\"],\n        },\n        rewrite: {\n            body: \"/(.*) /$1\",\n        },\n        ignoreQueryString: {\n            value: true,\n        },\n    },\n});\nconst cdnExampleComRule2 = new gcore.CdnRule(\"cdn_example_com_rule_2\", {\n    resourceId: cdnExampleCom.cdnResourceId,\n    name: \"All JS scripts\",\n    rule: \"/folder/images/*.js\",\n    ruleType: 0,\n    weight: 0,\n    originProtocol: \"HTTP\",\n    options: {\n        redirectHttpToHttps: {\n            enabled: false,\n            value: true,\n        },\n        gzipOn: {\n            enabled: false,\n            value: true,\n        },\n        queryParamsWhitelist: {\n            values: [\"abc\"],\n        },\n    },\n});\nconst cdnExampleComRule3 = new gcore.CdnRule(\"cdn_example_com_rule_3\", {\n    resourceId: cdnExampleCom.cdnResourceId,\n    name: \"Block all png images\",\n    rule: \"*.png\",\n    ruleType: 0,\n    weight: 0,\n    originProtocol: \"HTTP\",\n    options: {\n        fastedge: {\n            onRequestHeaders: {\n                enabled: true,\n                appId: \"1001\",\n                interruptOnError: true,\n                executeOnEdge: true,\n                executeOnShield: false,\n            },\n            onResponseHeaders: {\n                enabled: true,\n                appId: \"1002\",\n                interruptOnError: true,\n            },\n        },\n        forceReturn: {\n            code: 404,\n            body: \"Not found.\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\norigin_group1 = gcore.CdnOrigingroup(\"origin_group_1\",\n    name=\"origin_group_1\",\n    use_next=True,\n    origins=[{\n        \"source\": \"example.com\",\n        \"enabled\": True,\n    }])\ncdn_example_com = gcore.CdnResource(\"cdn_example_com\",\n    cname=\"cdn.example.com\",\n    origin_group=origin_group1.cdn_origingroup_id,\n    origin_protocol=\"MATCH\",\n    secondary_hostnames=[\"cdn2.example.com\"])\ncdn_example_com_rule1 = gcore.CdnRule(\"cdn_example_com_rule_1\",\n    resource_id=cdn_example_com.cdn_resource_id,\n    name=\"All PNG images\",\n    rule=\"/folder/images/*.png\",\n    rule_type=0,\n    weight=0,\n    options={\n        \"edge_cache_settings\": {\n            \"default\": \"14d\",\n        },\n        \"browser_cache_settings\": {\n            \"value\": \"14d\",\n        },\n        \"redirect_http_to_https\": {\n            \"value\": True,\n        },\n        \"request_limiter\": {\n            \"rate_unit\": \"r/s\",\n            \"rate\": 5,\n            \"burst\": 1,\n        },\n        \"gzip_on\": {\n            \"value\": True,\n        },\n        \"cors\": {\n            \"values\": [\"*\"],\n        },\n        \"rewrite\": {\n            \"body\": \"/(.*) /$1\",\n        },\n        \"ignore_query_string\": {\n            \"value\": True,\n        },\n    })\ncdn_example_com_rule2 = gcore.CdnRule(\"cdn_example_com_rule_2\",\n    resource_id=cdn_example_com.cdn_resource_id,\n    name=\"All JS scripts\",\n    rule=\"/folder/images/*.js\",\n    rule_type=0,\n    weight=0,\n    origin_protocol=\"HTTP\",\n    options={\n        \"redirect_http_to_https\": {\n            \"enabled\": False,\n            \"value\": True,\n        },\n        \"gzip_on\": {\n            \"enabled\": False,\n            \"value\": True,\n        },\n        \"query_params_whitelist\": {\n            \"values\": [\"abc\"],\n        },\n    })\ncdn_example_com_rule3 = gcore.CdnRule(\"cdn_example_com_rule_3\",\n    resource_id=cdn_example_com.cdn_resource_id,\n    name=\"Block all png images\",\n    rule=\"*.png\",\n    rule_type=0,\n    weight=0,\n    origin_protocol=\"HTTP\",\n    options={\n        \"fastedge\": {\n            \"on_request_headers\": {\n                \"enabled\": True,\n                \"app_id\": \"1001\",\n                \"interrupt_on_error\": True,\n                \"execute_on_edge\": True,\n                \"execute_on_shield\": False,\n            },\n            \"on_response_headers\": {\n                \"enabled\": True,\n                \"app_id\": \"1002\",\n                \"interrupt_on_error\": True,\n            },\n        },\n        \"force_return\": {\n            \"code\": 404,\n            \"body\": \"Not found.\",\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 originGroup1 = new Gcore.CdnOrigingroup(\"origin_group_1\", new()\n    {\n        Name = \"origin_group_1\",\n        UseNext = true,\n        Origins = new[]\n        {\n            new Gcore.Inputs.CdnOrigingroupOriginArgs\n            {\n                Source = \"example.com\",\n                Enabled = true,\n            },\n        },\n    });\n\n    var cdnExampleCom = new Gcore.CdnResource(\"cdn_example_com\", new()\n    {\n        Cname = \"cdn.example.com\",\n        OriginGroup = originGroup1.CdnOrigingroupId,\n        OriginProtocol = \"MATCH\",\n        SecondaryHostnames = new[]\n        {\n            \"cdn2.example.com\",\n        },\n    });\n\n    var cdnExampleComRule1 = new Gcore.CdnRule(\"cdn_example_com_rule_1\", new()\n    {\n        ResourceId = cdnExampleCom.CdnResourceId,\n        Name = \"All PNG images\",\n        Rule = \"/folder/images/*.png\",\n        RuleType = 0,\n        Weight = 0,\n        Options = new Gcore.Inputs.CdnRuleOptionsArgs\n        {\n            EdgeCacheSettings = new Gcore.Inputs.CdnRuleOptionsEdgeCacheSettingsArgs\n            {\n                Default = \"14d\",\n            },\n            BrowserCacheSettings = new Gcore.Inputs.CdnRuleOptionsBrowserCacheSettingsArgs\n            {\n                Value = \"14d\",\n            },\n            RedirectHttpToHttps = new Gcore.Inputs.CdnRuleOptionsRedirectHttpToHttpsArgs\n            {\n                Value = true,\n            },\n            RequestLimiter = new Gcore.Inputs.CdnRuleOptionsRequestLimiterArgs\n            {\n                RateUnit = \"r/s\",\n                Rate = 5,\n                Burst = 1,\n            },\n            GzipOn = new Gcore.Inputs.CdnRuleOptionsGzipOnArgs\n            {\n                Value = true,\n            },\n            Cors = new Gcore.Inputs.CdnRuleOptionsCorsArgs\n            {\n                Values = new[]\n                {\n                    \"*\",\n                },\n            },\n            Rewrite = new Gcore.Inputs.CdnRuleOptionsRewriteArgs\n            {\n                Body = \"/(.*) /$1\",\n            },\n            IgnoreQueryString = new Gcore.Inputs.CdnRuleOptionsIgnoreQueryStringArgs\n            {\n                Value = true,\n            },\n        },\n    });\n\n    var cdnExampleComRule2 = new Gcore.CdnRule(\"cdn_example_com_rule_2\", new()\n    {\n        ResourceId = cdnExampleCom.CdnResourceId,\n        Name = \"All JS scripts\",\n        Rule = \"/folder/images/*.js\",\n        RuleType = 0,\n        Weight = 0,\n        OriginProtocol = \"HTTP\",\n        Options = new Gcore.Inputs.CdnRuleOptionsArgs\n        {\n            RedirectHttpToHttps = new Gcore.Inputs.CdnRuleOptionsRedirectHttpToHttpsArgs\n            {\n                Enabled = false,\n                Value = true,\n            },\n            GzipOn = new Gcore.Inputs.CdnRuleOptionsGzipOnArgs\n            {\n                Enabled = false,\n                Value = true,\n            },\n            QueryParamsWhitelist = new Gcore.Inputs.CdnRuleOptionsQueryParamsWhitelistArgs\n            {\n                Values = new[]\n                {\n                    \"abc\",\n                },\n            },\n        },\n    });\n\n    var cdnExampleComRule3 = new Gcore.CdnRule(\"cdn_example_com_rule_3\", new()\n    {\n        ResourceId = cdnExampleCom.CdnResourceId,\n        Name = \"Block all png images\",\n        Rule = \"*.png\",\n        RuleType = 0,\n        Weight = 0,\n        OriginProtocol = \"HTTP\",\n        Options = new Gcore.Inputs.CdnRuleOptionsArgs\n        {\n            Fastedge = new Gcore.Inputs.CdnRuleOptionsFastedgeArgs\n            {\n                OnRequestHeaders = new Gcore.Inputs.CdnRuleOptionsFastedgeOnRequestHeadersArgs\n                {\n                    Enabled = true,\n                    AppId = \"1001\",\n                    InterruptOnError = true,\n                    ExecuteOnEdge = true,\n                    ExecuteOnShield = false,\n                },\n                OnResponseHeaders = new Gcore.Inputs.CdnRuleOptionsFastedgeOnResponseHeadersArgs\n                {\n                    Enabled = true,\n                    AppId = \"1002\",\n                    InterruptOnError = true,\n                },\n            },\n            ForceReturn = new Gcore.Inputs.CdnRuleOptionsForceReturnArgs\n            {\n                Code = 404,\n                Body = \"Not found.\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\toriginGroup1, err := gcore.NewCdnOrigingroup(ctx, \"origin_group_1\", \u0026gcore.CdnOrigingroupArgs{\n\t\t\tName:    pulumi.String(\"origin_group_1\"),\n\t\t\tUseNext: pulumi.Bool(true),\n\t\t\tOrigins: gcore.CdnOrigingroupOriginArray{\n\t\t\t\t\u0026gcore.CdnOrigingroupOriginArgs{\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\tcdnExampleCom, err := gcore.NewCdnResource(ctx, \"cdn_example_com\", \u0026gcore.CdnResourceArgs{\n\t\t\tCname:          pulumi.String(\"cdn.example.com\"),\n\t\t\tOriginGroup:    originGroup1.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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCdnRule(ctx, \"cdn_example_com_rule_1\", \u0026gcore.CdnRuleArgs{\n\t\t\tResourceId: cdnExampleCom.CdnResourceId,\n\t\t\tName:       pulumi.String(\"All PNG images\"),\n\t\t\tRule:       pulumi.String(\"/folder/images/*.png\"),\n\t\t\tRuleType:   pulumi.Float64(0),\n\t\t\tWeight:     pulumi.Float64(0),\n\t\t\tOptions: \u0026gcore.CdnRuleOptionsArgs{\n\t\t\t\tEdgeCacheSettings: \u0026gcore.CdnRuleOptionsEdgeCacheSettingsArgs{\n\t\t\t\t\tDefault: pulumi.String(\"14d\"),\n\t\t\t\t},\n\t\t\t\tBrowserCacheSettings: \u0026gcore.CdnRuleOptionsBrowserCacheSettingsArgs{\n\t\t\t\t\tValue: pulumi.String(\"14d\"),\n\t\t\t\t},\n\t\t\t\tRedirectHttpToHttps: \u0026gcore.CdnRuleOptionsRedirectHttpToHttpsArgs{\n\t\t\t\t\tValue: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tRequestLimiter: \u0026gcore.CdnRuleOptionsRequestLimiterArgs{\n\t\t\t\t\tRateUnit: pulumi.String(\"r/s\"),\n\t\t\t\t\tRate:     pulumi.Float64(5),\n\t\t\t\t\tBurst:    pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t\tGzipOn: \u0026gcore.CdnRuleOptionsGzipOnArgs{\n\t\t\t\t\tValue: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tCors: \u0026gcore.CdnRuleOptionsCorsArgs{\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.CdnRuleOptionsRewriteArgs{\n\t\t\t\t\tBody: pulumi.String(\"/(.*) /$1\"),\n\t\t\t\t},\n\t\t\t\tIgnoreQueryString: \u0026gcore.CdnRuleOptionsIgnoreQueryStringArgs{\n\t\t\t\t\tValue: 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.NewCdnRule(ctx, \"cdn_example_com_rule_2\", \u0026gcore.CdnRuleArgs{\n\t\t\tResourceId:     cdnExampleCom.CdnResourceId,\n\t\t\tName:           pulumi.String(\"All JS scripts\"),\n\t\t\tRule:           pulumi.String(\"/folder/images/*.js\"),\n\t\t\tRuleType:       pulumi.Float64(0),\n\t\t\tWeight:         pulumi.Float64(0),\n\t\t\tOriginProtocol: pulumi.String(\"HTTP\"),\n\t\t\tOptions: \u0026gcore.CdnRuleOptionsArgs{\n\t\t\t\tRedirectHttpToHttps: \u0026gcore.CdnRuleOptionsRedirectHttpToHttpsArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tValue:   pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tGzipOn: \u0026gcore.CdnRuleOptionsGzipOnArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tValue:   pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tQueryParamsWhitelist: \u0026gcore.CdnRuleOptionsQueryParamsWhitelistArgs{\n\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"abc\"),\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\t_, err = gcore.NewCdnRule(ctx, \"cdn_example_com_rule_3\", \u0026gcore.CdnRuleArgs{\n\t\t\tResourceId:     cdnExampleCom.CdnResourceId,\n\t\t\tName:           pulumi.String(\"Block all png images\"),\n\t\t\tRule:           pulumi.String(\"*.png\"),\n\t\t\tRuleType:       pulumi.Float64(0),\n\t\t\tWeight:         pulumi.Float64(0),\n\t\t\tOriginProtocol: pulumi.String(\"HTTP\"),\n\t\t\tOptions: \u0026gcore.CdnRuleOptionsArgs{\n\t\t\t\tFastedge: \u0026gcore.CdnRuleOptionsFastedgeArgs{\n\t\t\t\t\tOnRequestHeaders: \u0026gcore.CdnRuleOptionsFastedgeOnRequestHeadersArgs{\n\t\t\t\t\t\tEnabled:          pulumi.Bool(true),\n\t\t\t\t\t\tAppId:            pulumi.String(\"1001\"),\n\t\t\t\t\t\tInterruptOnError: pulumi.Bool(true),\n\t\t\t\t\t\tExecuteOnEdge:    pulumi.Bool(true),\n\t\t\t\t\t\tExecuteOnShield:  pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t\tOnResponseHeaders: \u0026gcore.CdnRuleOptionsFastedgeOnResponseHeadersArgs{\n\t\t\t\t\t\tEnabled:          pulumi.Bool(true),\n\t\t\t\t\t\tAppId:            pulumi.String(\"1002\"),\n\t\t\t\t\t\tInterruptOnError: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tForceReturn: \u0026gcore.CdnRuleOptionsForceReturnArgs{\n\t\t\t\t\tCode: pulumi.Float64(404),\n\t\t\t\t\tBody: pulumi.String(\"Not found.\"),\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.CdnOrigingroupOriginArgs;\nimport com.pulumi.gcore.CdnResource;\nimport com.pulumi.gcore.CdnResourceArgs;\nimport com.pulumi.gcore.CdnRule;\nimport com.pulumi.gcore.CdnRuleArgs;\nimport com.pulumi.gcore.inputs.CdnRuleOptionsArgs;\nimport com.pulumi.gcore.inputs.CdnRuleOptionsEdgeCacheSettingsArgs;\nimport com.pulumi.gcore.inputs.CdnRuleOptionsBrowserCacheSettingsArgs;\nimport com.pulumi.gcore.inputs.CdnRuleOptionsRedirectHttpToHttpsArgs;\nimport com.pulumi.gcore.inputs.CdnRuleOptionsRequestLimiterArgs;\nimport com.pulumi.gcore.inputs.CdnRuleOptionsGzipOnArgs;\nimport com.pulumi.gcore.inputs.CdnRuleOptionsCorsArgs;\nimport com.pulumi.gcore.inputs.CdnRuleOptionsRewriteArgs;\nimport com.pulumi.gcore.inputs.CdnRuleOptionsIgnoreQueryStringArgs;\nimport com.pulumi.gcore.inputs.CdnRuleOptionsQueryParamsWhitelistArgs;\nimport com.pulumi.gcore.inputs.CdnRuleOptionsFastedgeArgs;\nimport com.pulumi.gcore.inputs.CdnRuleOptionsFastedgeOnRequestHeadersArgs;\nimport com.pulumi.gcore.inputs.CdnRuleOptionsFastedgeOnResponseHeadersArgs;\nimport com.pulumi.gcore.inputs.CdnRuleOptionsForceReturnArgs;\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 originGroup1 = new CdnOrigingroup(\"originGroup1\", CdnOrigingroupArgs.builder()\n            .name(\"origin_group_1\")\n            .useNext(true)\n            .origins(CdnOrigingroupOriginArgs.builder()\n                .source(\"example.com\")\n                .enabled(true)\n                .build())\n            .build());\n\n        var cdnExampleCom = new CdnResource(\"cdnExampleCom\", CdnResourceArgs.builder()\n            .cname(\"cdn.example.com\")\n            .originGroup(originGroup1.cdnOrigingroupId())\n            .originProtocol(\"MATCH\")\n            .secondaryHostnames(\"cdn2.example.com\")\n            .build());\n\n        var cdnExampleComRule1 = new CdnRule(\"cdnExampleComRule1\", CdnRuleArgs.builder()\n            .resourceId(cdnExampleCom.cdnResourceId())\n            .name(\"All PNG images\")\n            .rule(\"/folder/images/*.png\")\n            .ruleType(0.0)\n            .weight(0.0)\n            .options(CdnRuleOptionsArgs.builder()\n                .edgeCacheSettings(CdnRuleOptionsEdgeCacheSettingsArgs.builder()\n                    .default_(\"14d\")\n                    .build())\n                .browserCacheSettings(CdnRuleOptionsBrowserCacheSettingsArgs.builder()\n                    .value(\"14d\")\n                    .build())\n                .redirectHttpToHttps(CdnRuleOptionsRedirectHttpToHttpsArgs.builder()\n                    .value(true)\n                    .build())\n                .requestLimiter(CdnRuleOptionsRequestLimiterArgs.builder()\n                    .rateUnit(\"r/s\")\n                    .rate(5.0)\n                    .burst(1.0)\n                    .build())\n                .gzipOn(CdnRuleOptionsGzipOnArgs.builder()\n                    .value(true)\n                    .build())\n                .cors(CdnRuleOptionsCorsArgs.builder()\n                    .values(\"*\")\n                    .build())\n                .rewrite(CdnRuleOptionsRewriteArgs.builder()\n                    .body(\"/(.*) /$1\")\n                    .build())\n                .ignoreQueryString(CdnRuleOptionsIgnoreQueryStringArgs.builder()\n                    .value(true)\n                    .build())\n                .build())\n            .build());\n\n        var cdnExampleComRule2 = new CdnRule(\"cdnExampleComRule2\", CdnRuleArgs.builder()\n            .resourceId(cdnExampleCom.cdnResourceId())\n            .name(\"All JS scripts\")\n            .rule(\"/folder/images/*.js\")\n            .ruleType(0.0)\n            .weight(0.0)\n            .originProtocol(\"HTTP\")\n            .options(CdnRuleOptionsArgs.builder()\n                .redirectHttpToHttps(CdnRuleOptionsRedirectHttpToHttpsArgs.builder()\n                    .enabled(false)\n                    .value(true)\n                    .build())\n                .gzipOn(CdnRuleOptionsGzipOnArgs.builder()\n                    .enabled(false)\n                    .value(true)\n                    .build())\n                .queryParamsWhitelist(CdnRuleOptionsQueryParamsWhitelistArgs.builder()\n                    .values(\"abc\")\n                    .build())\n                .build())\n            .build());\n\n        var cdnExampleComRule3 = new CdnRule(\"cdnExampleComRule3\", CdnRuleArgs.builder()\n            .resourceId(cdnExampleCom.cdnResourceId())\n            .name(\"Block all png images\")\n            .rule(\"*.png\")\n            .ruleType(0.0)\n            .weight(0.0)\n            .originProtocol(\"HTTP\")\n            .options(CdnRuleOptionsArgs.builder()\n                .fastedge(CdnRuleOptionsFastedgeArgs.builder()\n                    .onRequestHeaders(CdnRuleOptionsFastedgeOnRequestHeadersArgs.builder()\n                        .enabled(true)\n                        .appId(\"1001\")\n                        .interruptOnError(true)\n                        .executeOnEdge(true)\n                        .executeOnShield(false)\n                        .build())\n                    .onResponseHeaders(CdnRuleOptionsFastedgeOnResponseHeadersArgs.builder()\n                        .enabled(true)\n                        .appId(\"1002\")\n                        .interruptOnError(true)\n                        .build())\n                    .build())\n                .forceReturn(CdnRuleOptionsForceReturnArgs.builder()\n                    .code(404.0)\n                    .body(\"Not found.\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cdnExampleComRule1:\n    type: gcore:CdnRule\n    name: cdn_example_com_rule_1\n    properties:\n      resourceId: ${cdnExampleCom.cdnResourceId}\n      name: All PNG images\n      rule: /folder/images/*.png\n      ruleType: 0\n      weight: 0\n      options:\n        edgeCacheSettings:\n          default: 14d\n        browserCacheSettings:\n          value: 14d\n        redirectHttpToHttps:\n          value: true\n        requestLimiter:\n          rateUnit: r/s\n          rate: 5\n          burst: 1\n        gzipOn:\n          value: true\n        cors:\n          values:\n            - '*'\n        rewrite:\n          body: /(.*) /$1\n        ignoreQueryString:\n          value: true\n  cdnExampleComRule2:\n    type: gcore:CdnRule\n    name: cdn_example_com_rule_2\n    properties:\n      resourceId: ${cdnExampleCom.cdnResourceId}\n      name: All JS scripts\n      rule: /folder/images/*.js\n      ruleType: 0\n      weight: 0\n      originProtocol: HTTP\n      options:\n        redirectHttpToHttps:\n          enabled: false\n          value: true\n        gzipOn:\n          enabled: false\n          value: true\n        queryParamsWhitelist:\n          values:\n            - abc\n  cdnExampleComRule3:\n    type: gcore:CdnRule\n    name: cdn_example_com_rule_3\n    properties:\n      resourceId: ${cdnExampleCom.cdnResourceId}\n      name: Block all png images\n      rule: '*.png'\n      ruleType: 0\n      weight: 0\n      originProtocol: HTTP\n      options:\n        fastedge:\n          onRequestHeaders:\n            enabled: true\n            appId: '1001'\n            interruptOnError: true\n            executeOnEdge: true\n            executeOnShield: false\n          onResponseHeaders:\n            enabled: true\n            appId: '1002'\n            interruptOnError: true\n        forceReturn:\n          code: 404\n          body: Not found.\n  originGroup1:\n    type: gcore:CdnOrigingroup\n    name: origin_group_1\n    properties:\n      name: origin_group_1\n      useNext: true\n      origins:\n        - source: example.com\n          enabled: true\n  cdnExampleCom:\n    type: gcore:CdnResource\n    name: cdn_example_com\n    properties:\n      cname: cdn.example.com\n      originGroup: ${originGroup1.cdnOrigingroupId}\n      originProtocol: MATCH\n      secondaryHostnames:\n        - cdn2.example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"active":{"type":"boolean","description":"The setting allows to enable or disable a Rule. If not specified, it will be enabled.\n"},"cdnRuleId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Rule name\n"},"options":{"$ref":"#/types/gcore:index%2FCdnRuleOptions:CdnRuleOptions","description":"Each option in CDN rule settings. Each option added to CDN rule settings should have the following mandatory request fields: enabled, value.\n"},"originGroup":{"type":"number","description":"ID of the Origins Group. Use one of your Origins Group or create a new one. You can use either 'origin' parameter or 'originGroup' in the resource definition.\n"},"originProtocol":{"type":"string","description":"This option defines the protocol that will be used by CDN servers to request content from an origin source. If not specified, it will be inherit from resource. Possible values are: HTTPS, HTTP, MATCH.\n"},"resourceId":{"type":"number"},"rule":{"type":"string","description":"A pattern that defines when the rule is triggered. By default, we add a leading forward slash to any rule pattern. Specify a pattern without a forward slash.\n"},"ruleType":{"type":"number","description":"Type of rule. The rule is applied if the requested URI matches the rule pattern. It has two possible values: Type 0 — RegEx. Must start with '^/' or '/'. Type 1 — RegEx. Legacy type. Note that for this rule type we automatically add / to each rule pattern before your regular expression. Please use Type 0.\n"},"weight":{"type":"number","description":"Rule weight that determines rule execution order: from the smallest (0) to the highest.\n"}},"type":"object","required":["cdnRuleId","name","resourceId","rule","ruleType","weight"],"inputProperties":{"active":{"type":"boolean","description":"The setting allows to enable or disable a Rule. If not specified, it will be enabled.\n"},"cdnRuleId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Rule name\n"},"options":{"$ref":"#/types/gcore:index%2FCdnRuleOptions:CdnRuleOptions","description":"Each option in CDN rule settings. Each option added to CDN rule settings should have the following mandatory request fields: enabled, value.\n"},"originGroup":{"type":"number","description":"ID of the Origins Group. Use one of your Origins Group or create a new one. You can use either 'origin' parameter or 'originGroup' in the resource definition.\n"},"originProtocol":{"type":"string","description":"This option defines the protocol that will be used by CDN servers to request content from an origin source. If not specified, it will be inherit from resource. Possible values are: HTTPS, HTTP, MATCH.\n"},"resourceId":{"type":"number"},"rule":{"type":"string","description":"A pattern that defines when the rule is triggered. By default, we add a leading forward slash to any rule pattern. Specify a pattern without a forward slash.\n"},"ruleType":{"type":"number","description":"Type of rule. The rule is applied if the requested URI matches the rule pattern. It has two possible values: Type 0 — RegEx. Must start with '^/' or '/'. Type 1 — RegEx. Legacy type. Note that for this rule type we automatically add / to each rule pattern before your regular expression. Please use Type 0.\n"},"weight":{"type":"number","description":"Rule weight that determines rule execution order: from the smallest (0) to the highest.\n"}},"requiredInputs":["resourceId","rule","ruleType"],"stateInputs":{"description":"Input properties used for looking up and filtering CdnRule resources.\n","properties":{"active":{"type":"boolean","description":"The setting allows to enable or disable a Rule. If not specified, it will be enabled.\n"},"cdnRuleId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Rule name\n"},"options":{"$ref":"#/types/gcore:index%2FCdnRuleOptions:CdnRuleOptions","description":"Each option in CDN rule settings. Each option added to CDN rule settings should have the following mandatory request fields: enabled, value.\n"},"originGroup":{"type":"number","description":"ID of the Origins Group. Use one of your Origins Group or create a new one. You can use either 'origin' parameter or 'originGroup' in the resource definition.\n"},"originProtocol":{"type":"string","description":"This option defines the protocol that will be used by CDN servers to request content from an origin source. If not specified, it will be inherit from resource. Possible values are: HTTPS, HTTP, MATCH.\n"},"resourceId":{"type":"number"},"rule":{"type":"string","description":"A pattern that defines when the rule is triggered. By default, we add a leading forward slash to any rule pattern. Specify a pattern without a forward slash.\n"},"ruleType":{"type":"number","description":"Type of rule. The rule is applied if the requested URI matches the rule pattern. It has two possible values: Type 0 — RegEx. Must start with '^/' or '/'. Type 1 — RegEx. Legacy type. Note that for this rule type we automatically add / to each rule pattern before your regular expression. Please use Type 0.\n"},"weight":{"type":"number","description":"Rule weight that determines rule execution order: from the smallest (0) to the highest.\n"}},"type":"object"}},"gcore:index/cdnRuleTemplate:CdnRuleTemplate":{"description":"Represent CDN rule template\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 cdnExampleComRuleTemplate1 = new gcore.CdnRuleTemplate(\"cdn_example_com_rule_template_1\", {\n    name: \"All PNG images template\",\n    rule: \"/folder/images/*.png\",\n    ruleType: 0,\n    weight: 1,\n    overrideOriginProtocol: \"HTTPS\",\n    options: {\n        edgeCacheSettings: {\n            \"default\": \"14d\",\n        },\n        gzipOn: {\n            value: true,\n        },\n        ignoreQueryString: {\n            value: true,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ncdn_example_com_rule_template1 = gcore.CdnRuleTemplate(\"cdn_example_com_rule_template_1\",\n    name=\"All PNG images template\",\n    rule=\"/folder/images/*.png\",\n    rule_type=0,\n    weight=1,\n    override_origin_protocol=\"HTTPS\",\n    options={\n        \"edge_cache_settings\": {\n            \"default\": \"14d\",\n        },\n        \"gzip_on\": {\n            \"value\": True,\n        },\n        \"ignore_query_string\": {\n            \"value\": 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 cdnExampleComRuleTemplate1 = new Gcore.CdnRuleTemplate(\"cdn_example_com_rule_template_1\", new()\n    {\n        Name = \"All PNG images template\",\n        Rule = \"/folder/images/*.png\",\n        RuleType = 0,\n        Weight = 1,\n        OverrideOriginProtocol = \"HTTPS\",\n        Options = new Gcore.Inputs.CdnRuleTemplateOptionsArgs\n        {\n            EdgeCacheSettings = new Gcore.Inputs.CdnRuleTemplateOptionsEdgeCacheSettingsArgs\n            {\n                Default = \"14d\",\n            },\n            GzipOn = new Gcore.Inputs.CdnRuleTemplateOptionsGzipOnArgs\n            {\n                Value = true,\n            },\n            IgnoreQueryString = new Gcore.Inputs.CdnRuleTemplateOptionsIgnoreQueryStringArgs\n            {\n                Value = true,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewCdnRuleTemplate(ctx, \"cdn_example_com_rule_template_1\", \u0026gcore.CdnRuleTemplateArgs{\n\t\t\tName:                   pulumi.String(\"All PNG images template\"),\n\t\t\tRule:                   pulumi.String(\"/folder/images/*.png\"),\n\t\t\tRuleType:               pulumi.Float64(0),\n\t\t\tWeight:                 pulumi.Float64(1),\n\t\t\tOverrideOriginProtocol: pulumi.String(\"HTTPS\"),\n\t\t\tOptions: \u0026gcore.CdnRuleTemplateOptionsArgs{\n\t\t\t\tEdgeCacheSettings: \u0026gcore.CdnRuleTemplateOptionsEdgeCacheSettingsArgs{\n\t\t\t\t\tDefault: pulumi.String(\"14d\"),\n\t\t\t\t},\n\t\t\t\tGzipOn: \u0026gcore.CdnRuleTemplateOptionsGzipOnArgs{\n\t\t\t\t\tValue: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tIgnoreQueryString: \u0026gcore.CdnRuleTemplateOptionsIgnoreQueryStringArgs{\n\t\t\t\t\tValue: 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.CdnRuleTemplate;\nimport com.pulumi.gcore.CdnRuleTemplateArgs;\nimport com.pulumi.gcore.inputs.CdnRuleTemplateOptionsArgs;\nimport com.pulumi.gcore.inputs.CdnRuleTemplateOptionsEdgeCacheSettingsArgs;\nimport com.pulumi.gcore.inputs.CdnRuleTemplateOptionsGzipOnArgs;\nimport com.pulumi.gcore.inputs.CdnRuleTemplateOptionsIgnoreQueryStringArgs;\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 cdnExampleComRuleTemplate1 = new CdnRuleTemplate(\"cdnExampleComRuleTemplate1\", CdnRuleTemplateArgs.builder()\n            .name(\"All PNG images template\")\n            .rule(\"/folder/images/*.png\")\n            .ruleType(0.0)\n            .weight(1.0)\n            .overrideOriginProtocol(\"HTTPS\")\n            .options(CdnRuleTemplateOptionsArgs.builder()\n                .edgeCacheSettings(CdnRuleTemplateOptionsEdgeCacheSettingsArgs.builder()\n                    .default_(\"14d\")\n                    .build())\n                .gzipOn(CdnRuleTemplateOptionsGzipOnArgs.builder()\n                    .value(true)\n                    .build())\n                .ignoreQueryString(CdnRuleTemplateOptionsIgnoreQueryStringArgs.builder()\n                    .value(true)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cdnExampleComRuleTemplate1:\n    type: gcore:CdnRuleTemplate\n    name: cdn_example_com_rule_template_1\n    properties:\n      name: All PNG images template\n      rule: /folder/images/*.png\n      ruleType: 0\n      weight: 1\n      overrideOriginProtocol: HTTPS\n      options:\n        edgeCacheSettings:\n          default: 14d\n        gzipOn:\n          value: true\n        ignoreQueryString:\n          value: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"cdnRuleTemplateId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Rule template name.\n"},"options":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptions:CdnRuleTemplateOptions","description":"Each option in CDN rule settings. Each option added to CDN rule settings should have the following mandatory request fields: enabled, value.\n"},"overrideOriginProtocol":{"type":"string","description":"Sets a protocol other than the one specified in the CDN resource settings to connect to the origin. If not specified, it will be inherited from the CDN resource settings. Possible values are: HTTPS, HTTP, MATCH.\n"},"rule":{"type":"string","description":"Path to the file or folder for which the rule will be applied. The rule is applied if the requested URI matches the rule path. We add a leading forward slash to any rule path. Specify a path without a forward slash.\n"},"ruleType":{"type":"number","description":"Rule type. Possible values are: 0 - Regular expression. Must start with '^/' or '/'. 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 0.\n"},"weight":{"type":"number","description":"Rule execution order: from lowest (1) to highest. If requested URI matches multiple rules, the one higher in the order of the rules will be applied.\n"}},"type":"object","required":["cdnRuleTemplateId","name","rule","ruleType","weight"],"inputProperties":{"cdnRuleTemplateId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Rule template name.\n"},"options":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptions:CdnRuleTemplateOptions","description":"Each option in CDN rule settings. Each option added to CDN rule settings should have the following mandatory request fields: enabled, value.\n"},"overrideOriginProtocol":{"type":"string","description":"Sets a protocol other than the one specified in the CDN resource settings to connect to the origin. If not specified, it will be inherited from the CDN resource settings. Possible values are: HTTPS, HTTP, MATCH.\n"},"rule":{"type":"string","description":"Path to the file or folder for which the rule will be applied. The rule is applied if the requested URI matches the rule path. We add a leading forward slash to any rule path. Specify a path without a forward slash.\n"},"ruleType":{"type":"number","description":"Rule type. Possible values are: 0 - Regular expression. Must start with '^/' or '/'. 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 0.\n"},"weight":{"type":"number","description":"Rule execution order: from lowest (1) to highest. If requested URI matches multiple rules, the one higher in the order of the rules will be applied.\n"}},"requiredInputs":["rule","ruleType"],"stateInputs":{"description":"Input properties used for looking up and filtering CdnRuleTemplate resources.\n","properties":{"cdnRuleTemplateId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Rule template name.\n"},"options":{"$ref":"#/types/gcore:index%2FCdnRuleTemplateOptions:CdnRuleTemplateOptions","description":"Each option in CDN rule settings. Each option added to CDN rule settings should have the following mandatory request fields: enabled, value.\n"},"overrideOriginProtocol":{"type":"string","description":"Sets a protocol other than the one specified in the CDN resource settings to connect to the origin. If not specified, it will be inherited from the CDN resource settings. Possible values are: HTTPS, HTTP, MATCH.\n"},"rule":{"type":"string","description":"Path to the file or folder for which the rule will be applied. The rule is applied if the requested URI matches the rule path. We add a leading forward slash to any rule path. Specify a path without a forward slash.\n"},"ruleType":{"type":"number","description":"Rule type. Possible values are: 0 - Regular expression. Must start with '^/' or '/'. 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 0.\n"},"weight":{"type":"number","description":"Rule execution order: from lowest (1) to highest. If requested URI matches multiple rules, the one higher in the order of the rules will be applied.\n"}},"type":"object"}},"gcore:index/cdnSslcert:CdnSslcert":{"description":"Represent CDN SSL Certificate\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 config = new pulumi.Config();\nconst cert = config.require(\"cert\");\nconst privateKey = config.require(\"privateKey\");\nconst cdnoptCert = new gcore.CdnSslcert(\"cdnopt_cert\", {\n    name: \"Test cert for cdnopt_bookatest_by\",\n    cert: cert,\n    privateKey: privateKey,\n});\nconst letsEncryptCert = new gcore.CdnSslcert(\"lets_encrypt_cert\", {\n    name: \"Test Let's Encrypt certificate\",\n    automated: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nconfig = pulumi.Config()\ncert = config.require(\"cert\")\nprivate_key = config.require(\"privateKey\")\ncdnopt_cert = gcore.CdnSslcert(\"cdnopt_cert\",\n    name=\"Test cert for cdnopt_bookatest_by\",\n    cert=cert,\n    private_key=private_key)\nlets_encrypt_cert = gcore.CdnSslcert(\"lets_encrypt_cert\",\n    name=\"Test Let's Encrypt certificate\",\n    automated=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 config = new Config();\n    var cert = config.Require(\"cert\");\n    var privateKey = config.Require(\"privateKey\");\n    var cdnoptCert = new Gcore.CdnSslcert(\"cdnopt_cert\", new()\n    {\n        Name = \"Test cert for cdnopt_bookatest_by\",\n        Cert = cert,\n        PrivateKey = privateKey,\n    });\n\n    var letsEncryptCert = new Gcore.CdnSslcert(\"lets_encrypt_cert\", new()\n    {\n        Name = \"Test Let's Encrypt certificate\",\n        Automated = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tcert := cfg.Require(\"cert\")\n\t\tprivateKey := cfg.Require(\"privateKey\")\n\t\t_, err := gcore.NewCdnSslcert(ctx, \"cdnopt_cert\", \u0026gcore.CdnSslcertArgs{\n\t\t\tName:       pulumi.String(\"Test cert for cdnopt_bookatest_by\"),\n\t\t\tCert:       pulumi.String(cert),\n\t\t\tPrivateKey: pulumi.String(privateKey),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCdnSslcert(ctx, \"lets_encrypt_cert\", \u0026gcore.CdnSslcertArgs{\n\t\t\tName:      pulumi.String(\"Test Let's Encrypt certificate\"),\n\t\t\tAutomated: pulumi.Bool(true),\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.CdnSslcert;\nimport com.pulumi.gcore.CdnSslcertArgs;\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 cert = config.get(\"cert\");\n        final var privateKey = config.get(\"privateKey\");\n        var cdnoptCert = new CdnSslcert(\"cdnoptCert\", CdnSslcertArgs.builder()\n            .name(\"Test cert for cdnopt_bookatest_by\")\n            .cert(cert)\n            .privateKey(privateKey)\n            .build());\n\n        var letsEncryptCert = new CdnSslcert(\"letsEncryptCert\", CdnSslcertArgs.builder()\n            .name(\"Test Let's Encrypt certificate\")\n            .automated(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  cert:\n    type: string\n  privateKey:\n    type: string\nresources:\n  cdnoptCert:\n    type: gcore:CdnSslcert\n    name: cdnopt_cert\n    properties:\n      name: Test cert for cdnopt_bookatest_by\n      cert: ${cert}\n      privateKey: ${privateKey}\n  letsEncryptCert:\n    type: gcore:CdnSslcert\n    name: lets_encrypt_cert\n    properties:\n      name: Test Let's Encrypt certificate\n      automated: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"automated":{"type":"boolean","description":"The way SSL certificate was issued.\n"},"cdnSslcertId":{"type":"string","description":"The ID of this resource.\n"},"cert":{"type":"string","description":"The public part of the SSL certificate. All chain of the SSL certificate should be added.\n","secret":true},"hasRelatedResources":{"type":"boolean","description":"It shows if the SSL certificate is used by a CDN resource.\n"},"name":{"type":"string","description":"Name of the SSL certificate. Must be unique.\n"},"privateKey":{"type":"string","description":"The private key of the SSL certificate.\n","secret":true},"validateRootCa":{"type":"boolean","description":"Defines whether to check the SSL certificate for a signature from a trusted certificate authority.\n"}},"type":"object","required":["cdnSslcertId","hasRelatedResources","name"],"inputProperties":{"automated":{"type":"boolean","description":"The way SSL certificate was issued.\n"},"cdnSslcertId":{"type":"string","description":"The ID of this resource.\n"},"cert":{"type":"string","description":"The public part of the SSL certificate. All chain of the SSL certificate should be added.\n","secret":true},"name":{"type":"string","description":"Name of the SSL certificate. Must be unique.\n"},"privateKey":{"type":"string","description":"The private key of the SSL certificate.\n","secret":true},"validateRootCa":{"type":"boolean","description":"Defines whether to check the SSL certificate for a signature from a trusted certificate authority.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CdnSslcert resources.\n","properties":{"automated":{"type":"boolean","description":"The way SSL certificate was issued.\n"},"cdnSslcertId":{"type":"string","description":"The ID of this resource.\n"},"cert":{"type":"string","description":"The public part of the SSL certificate. All chain of the SSL certificate should be added.\n","secret":true},"hasRelatedResources":{"type":"boolean","description":"It shows if the SSL certificate is used by a CDN resource.\n"},"name":{"type":"string","description":"Name of the SSL certificate. Must be unique.\n"},"privateKey":{"type":"string","description":"The private key of the SSL certificate.\n","secret":true},"validateRootCa":{"type":"boolean","description":"Defines whether to check the SSL certificate for a signature from a trusted certificate authority.\n"}},"type":"object"}},"gcore:index/ddosProtection:DdosProtection":{"description":"Represents DDoS protection profile\n","properties":{"active":{"type":"boolean","description":"Activate profile\n"},"bgp":{"type":"boolean","description":"Activate BGP protocol\n"},"bmInstanceId":{"type":"string"},"ddosProtectionId":{"type":"string","description":"The ID of this resource.\n"},"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDdosProtectionField:DdosProtectionField"}},"ipAddress":{"type":"string","description":"IP address\n"},"lastUpdated":{"type":"string"},"profileTemplate":{"type":"number","description":"Profile template ID\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"protocols":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDdosProtectionProtocol:DdosProtectionProtocol"},"description":"List of protocols\n"},"regionId":{"type":"number"},"regionName":{"type":"string"},"site":{"type":"string"}},"type":"object","required":["bmInstanceId","ddosProtectionId","ipAddress","lastUpdated","profileTemplate","protocols","site"],"inputProperties":{"active":{"type":"boolean","description":"Activate profile\n"},"bgp":{"type":"boolean","description":"Activate BGP protocol\n"},"bmInstanceId":{"type":"string"},"ddosProtectionId":{"type":"string","description":"The ID of this resource.\n"},"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDdosProtectionField:DdosProtectionField"}},"ipAddress":{"type":"string","description":"IP address\n"},"lastUpdated":{"type":"string"},"profileTemplate":{"type":"number","description":"Profile template ID\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"requiredInputs":["bmInstanceId","ipAddress","profileTemplate"],"stateInputs":{"description":"Input properties used for looking up and filtering DdosProtection resources.\n","properties":{"active":{"type":"boolean","description":"Activate profile\n"},"bgp":{"type":"boolean","description":"Activate BGP protocol\n"},"bmInstanceId":{"type":"string"},"ddosProtectionId":{"type":"string","description":"The ID of this resource.\n"},"fields":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDdosProtectionField:DdosProtectionField"}},"ipAddress":{"type":"string","description":"IP address\n"},"lastUpdated":{"type":"string"},"profileTemplate":{"type":"number","description":"Profile template ID\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"protocols":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDdosProtectionProtocol:DdosProtectionProtocol"},"description":"List of protocols\n"},"regionId":{"type":"number"},"regionName":{"type":"string"},"site":{"type":"string"}},"type":"object"}},"gcore:index/dnsNetworkMapping:DnsNetworkMapping":{"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 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\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    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/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.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        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  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\nThe `pulumi import` command can be used, for example:\n\nimport using network mapping name format\n\n```sh\n$ pulumi import gcore:index/dnsNetworkMapping:DnsNetworkMapping example DevNetwork\n```\n\n","properties":{"dnsNetworkMappingId":{"type":"string","description":"The ID of this resource.\n"},"mappings":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsNetworkMappingMapping:DnsNetworkMappingMapping"}},"name":{"type":"string"}},"type":"object","required":["dnsNetworkMappingId","mappings","name"],"inputProperties":{"dnsNetworkMappingId":{"type":"string","description":"The ID of this resource.\n"},"mappings":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsNetworkMappingMapping:DnsNetworkMappingMapping"}},"name":{"type":"string"}},"requiredInputs":["mappings"],"stateInputs":{"description":"Input properties used for looking up and filtering DnsNetworkMapping resources.\n","properties":{"dnsNetworkMappingId":{"type":"string","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":"Represent DNS zone resource. https://dns.gcore.com/zones\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\n// Basic DNS Zone example - minimal configuration\nconst exampleZone = new gcore.DnsZone(\"example_zone\", {name: \"example_zone.com\"});\n// Advanced DNS Zone example - showcasing all available options\nconst advancedZone = new gcore.DnsZone(\"advanced_zone\", {\n    name: \"advanced-example.com\",\n    dnssec: true,\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    serial: 2024010100,\n    meta: {\n        webhook_url: \"https://hooks.example.com/dns-changes\",\n        webhook_method: \"POST\",\n        environment: \"production\",\n        managed_by: \"terraform\",\n    },\n});\n// DNS Zone with DNSSEC disabled (explicit)\nconst simpleZone = new gcore.DnsZone(\"simple_zone\", {\n    name: \"simple-example.org\",\n    dnssec: false,\n    contact: \"hostmaster@simple-example.org\",\n    expiry: 1209600,\n    refresh: 7200,\n    retry: 3600,\n});\n// DNS Zone for development/testing (disabled)\nconst testZone = new gcore.DnsZone(\"test_zone\", {\n    name: \"test-example.dev\",\n    enabled: false,\n    contact: \"devops@test-example.dev\",\n    meta: {\n        environment: \"testing\",\n        auto_delete: \"true\",\n        owner: \"development-team\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Basic DNS Zone example - minimal configuration\nexample_zone = gcore.DnsZone(\"example_zone\", name=\"example_zone.com\")\n# Advanced DNS Zone example - showcasing all available options\nadvanced_zone = gcore.DnsZone(\"advanced_zone\",\n    name=\"advanced-example.com\",\n    dnssec=True,\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    serial=2024010100,\n    meta={\n        \"webhook_url\": \"https://hooks.example.com/dns-changes\",\n        \"webhook_method\": \"POST\",\n        \"environment\": \"production\",\n        \"managed_by\": \"terraform\",\n    })\n# DNS Zone with DNSSEC disabled (explicit)\nsimple_zone = gcore.DnsZone(\"simple_zone\",\n    name=\"simple-example.org\",\n    dnssec=False,\n    contact=\"hostmaster@simple-example.org\",\n    expiry=1209600,\n    refresh=7200,\n    retry=3600)\n# DNS Zone for development/testing (disabled)\ntest_zone = gcore.DnsZone(\"test_zone\",\n    name=\"test-example.dev\",\n    enabled=False,\n    contact=\"devops@test-example.dev\",\n    meta={\n        \"environment\": \"testing\",\n        \"auto_delete\": \"true\",\n        \"owner\": \"development-team\",\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    // Basic DNS Zone example - minimal configuration\n    var exampleZone = new Gcore.DnsZone(\"example_zone\", new()\n    {\n        Name = \"example_zone.com\",\n    });\n\n    // Advanced DNS Zone example - showcasing all available options\n    var advancedZone = new Gcore.DnsZone(\"advanced_zone\", new()\n    {\n        Name = \"advanced-example.com\",\n        Dnssec = true,\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        Serial = 2024010100,\n        Meta = \n        {\n            { \"webhook_url\", \"https://hooks.example.com/dns-changes\" },\n            { \"webhook_method\", \"POST\" },\n            { \"environment\", \"production\" },\n            { \"managed_by\", \"terraform\" },\n        },\n    });\n\n    // DNS Zone with DNSSEC disabled (explicit)\n    var simpleZone = new Gcore.DnsZone(\"simple_zone\", new()\n    {\n        Name = \"simple-example.org\",\n        Dnssec = false,\n        Contact = \"hostmaster@simple-example.org\",\n        Expiry = 1209600,\n        Refresh = 7200,\n        Retry = 3600,\n    });\n\n    // DNS Zone for development/testing (disabled)\n    var testZone = new Gcore.DnsZone(\"test_zone\", new()\n    {\n        Name = \"test-example.dev\",\n        Enabled = false,\n        Contact = \"devops@test-example.dev\",\n        Meta = \n        {\n            { \"environment\", \"testing\" },\n            { \"auto_delete\", \"true\" },\n            { \"owner\", \"development-team\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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 example - minimal configuration\n\t\t_, err := gcore.NewDnsZone(ctx, \"example_zone\", \u0026gcore.DnsZoneArgs{\n\t\t\tName: pulumi.String(\"example_zone.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Advanced DNS Zone example - showcasing all available options\n\t\t_, err = gcore.NewDnsZone(ctx, \"advanced_zone\", \u0026gcore.DnsZoneArgs{\n\t\t\tName:          pulumi.String(\"advanced-example.com\"),\n\t\t\tDnssec:        pulumi.Bool(true),\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\tSerial:        pulumi.Float64(2024010100),\n\t\t\tMeta: pulumi.StringMap{\n\t\t\t\t\"webhook_url\":    pulumi.String(\"https://hooks.example.com/dns-changes\"),\n\t\t\t\t\"webhook_method\": pulumi.String(\"POST\"),\n\t\t\t\t\"environment\":    pulumi.String(\"production\"),\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\t// DNS Zone with DNSSEC disabled (explicit)\n\t\t_, err = gcore.NewDnsZone(ctx, \"simple_zone\", \u0026gcore.DnsZoneArgs{\n\t\t\tName:    pulumi.String(\"simple-example.org\"),\n\t\t\tDnssec:  pulumi.Bool(false),\n\t\t\tContact: pulumi.String(\"hostmaster@simple-example.org\"),\n\t\t\tExpiry:  pulumi.Float64(1209600),\n\t\t\tRefresh: pulumi.Float64(7200),\n\t\t\tRetry:   pulumi.Float64(3600),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// DNS Zone for development/testing (disabled)\n\t\t_, err = gcore.NewDnsZone(ctx, \"test_zone\", \u0026gcore.DnsZoneArgs{\n\t\t\tName:    pulumi.String(\"test-example.dev\"),\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t\tContact: pulumi.String(\"devops@test-example.dev\"),\n\t\t\tMeta: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"testing\"),\n\t\t\t\t\"auto_delete\": pulumi.String(\"true\"),\n\t\t\t\t\"owner\":       pulumi.String(\"development-team\"),\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.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 example - minimal configuration\n        var exampleZone = new DnsZone(\"exampleZone\", DnsZoneArgs.builder()\n            .name(\"example_zone.com\")\n            .build());\n\n        // Advanced DNS Zone example - showcasing all available options\n        var advancedZone = new DnsZone(\"advancedZone\", DnsZoneArgs.builder()\n            .name(\"advanced-example.com\")\n            .dnssec(true)\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            .serial(2024010100.0)\n            .meta(Map.ofEntries(\n                Map.entry(\"webhook_url\", \"https://hooks.example.com/dns-changes\"),\n                Map.entry(\"webhook_method\", \"POST\"),\n                Map.entry(\"environment\", \"production\"),\n                Map.entry(\"managed_by\", \"terraform\")\n            ))\n            .build());\n\n        // DNS Zone with DNSSEC disabled (explicit)\n        var simpleZone = new DnsZone(\"simpleZone\", DnsZoneArgs.builder()\n            .name(\"simple-example.org\")\n            .dnssec(false)\n            .contact(\"hostmaster@simple-example.org\")\n            .expiry(1209600.0)\n            .refresh(7200.0)\n            .retry(3600.0)\n            .build());\n\n        // DNS Zone for development/testing (disabled)\n        var testZone = new DnsZone(\"testZone\", DnsZoneArgs.builder()\n            .name(\"test-example.dev\")\n            .enabled(false)\n            .contact(\"devops@test-example.dev\")\n            .meta(Map.ofEntries(\n                Map.entry(\"environment\", \"testing\"),\n                Map.entry(\"auto_delete\", \"true\"),\n                Map.entry(\"owner\", \"development-team\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Basic DNS Zone example - minimal configuration\n  exampleZone:\n    type: gcore:DnsZone\n    name: example_zone\n    properties:\n      name: example_zone.com\n  # Advanced DNS Zone example - showcasing all available options\n  advancedZone:\n    type: gcore:DnsZone\n    name: advanced_zone\n    properties:\n      name: advanced-example.com\n      dnssec: true\n      enabled: true # SOA record fields\n      contact: admin@advanced-example.com\n      expiry: 604800 # 1 week\n      nxTtl: 3600 # 1 hour\n      primaryServer: ns1.advanced-example.com.\n      refresh: 3600 # 1 hour\n      retry: 1800 # 30 minutes\n      serial: 2.0240101e+09 # Meta configuration with webhook\n      meta:\n        webhook_url: https://hooks.example.com/dns-changes\n        webhook_method: POST\n        environment: production\n        managed_by: terraform\n  # DNS Zone with DNSSEC disabled (explicit)\n  simpleZone:\n    type: gcore:DnsZone\n    name: simple_zone\n    properties:\n      name: simple-example.org\n      dnssec: false # Basic SOA configuration\n      contact: hostmaster@simple-example.org\n      expiry: 1.2096e+06 # 2 weeks\n      refresh: 7200 # 2 hours\n      retry: 3600 # 1 hour\n  # DNS Zone for development/testing (disabled)\n  testZone:\n    type: gcore:DnsZone\n    name: test_zone\n    properties:\n      name: test-example.dev\n      enabled: false # Zone disabled, records won't resolve\n      contact: devops@test-example.dev\n      meta:\n        environment: testing\n        auto_delete: 'true'\n        owner: development-team\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using zone name format\n\n```sh\n$ pulumi import gcore:index/dnsZone:DnsZone example_zone example_zone.com\n```\n\n","properties":{"contact":{"type":"string","description":"Email address of the administrator responsible for this zone\n"},"dnsZoneId":{"type":"string","description":"The ID of this resource.\n"},"dnssec":{"type":"boolean","description":"Activation or deactivation of DNSSEC for the zone.Set it to true to enable DNSSEC for the zone or false to disable it.By default, DNSSEC is set to false wich means it is disabled.\n"},"enabled":{"type":"boolean","description":"Default: true. 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":"Arbitrary data of zone in JSON format. You can specify webhook URL and webhook*method here. Webhook will receive a map with three arrays: for created, updated, and deleted rrsets. webhook*method can be omitted; POST will be used by default.\n"},"name":{"type":"string","description":"A name of DNS Zone resource.\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 refresh the zone\n"},"retry":{"type":"number","description":"number of seconds after which secondary name servers should retry to request the serial number\n"},"serial":{"type":"number","description":"Serial number for this zone or Timestamp of zone modification moment. If a secondary name server slaved to this one observes an increase in this number, the slave will assume that the zone has been updated and initiate a zone transfer.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FDnsZoneTimeouts:DnsZoneTimeouts"}},"type":"object","required":["dnsZoneId","name"],"inputProperties":{"contact":{"type":"string","description":"Email address of the administrator responsible for this zone\n"},"dnsZoneId":{"type":"string","description":"The ID of this resource.\n"},"dnssec":{"type":"boolean","description":"Activation or deactivation of DNSSEC for the zone.Set it to true to enable DNSSEC for the zone or false to disable it.By default, DNSSEC is set to false wich means it is disabled.\n"},"enabled":{"type":"boolean","description":"Default: true. 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":"Arbitrary data of zone in JSON format. You can specify webhook URL and webhook*method here. Webhook will receive a map with three arrays: for created, updated, and deleted rrsets. webhook*method can be omitted; POST will be used by default.\n"},"name":{"type":"string","description":"A name of DNS Zone resource.\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 refresh the zone\n"},"retry":{"type":"number","description":"number of seconds after which secondary name servers should retry to request the serial number\n"},"serial":{"type":"number","description":"Serial number for this zone or Timestamp of zone modification moment. If a secondary name server slaved to this one observes an increase in this number, the slave will assume that the zone has been updated and initiate a zone transfer.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FDnsZoneTimeouts:DnsZoneTimeouts"}},"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"},"dnsZoneId":{"type":"string","description":"The ID of this resource.\n"},"dnssec":{"type":"boolean","description":"Activation or deactivation of DNSSEC for the zone.Set it to true to enable DNSSEC for the zone or false to disable it.By default, DNSSEC is set to false wich means it is disabled.\n"},"enabled":{"type":"boolean","description":"Default: true. 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":"Arbitrary data of zone in JSON format. You can specify webhook URL and webhook*method here. Webhook will receive a map with three arrays: for created, updated, and deleted rrsets. webhook*method can be omitted; POST will be used by default.\n"},"name":{"type":"string","description":"A name of DNS Zone resource.\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 refresh the zone\n"},"retry":{"type":"number","description":"number of seconds after which secondary name servers should retry to request the serial number\n"},"serial":{"type":"number","description":"Serial number for this zone or Timestamp of zone modification moment. If a secondary name server slaved to this one observes an increase in this number, the slave will assume that the zone has been updated and initiate a zone transfer.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FDnsZoneTimeouts:DnsZoneTimeouts"}},"type":"object"}},"gcore:index/dnsZoneRecord:DnsZoneRecord":{"description":"Represent DNS Zone Record resource. https://dns.gcore.com/zones\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 config = new pulumi.Config();\nconst exampleDomain0 = config.get(\"exampleDomain0\") || \"examplezone.com\";\nconst examplezone0 = new gcore.DnsZone(\"examplezone0\", {name: exampleDomain0});\nconst exampleRrset0 = new gcore.DnsZoneRecord(\"example_rrset0\", {\n    zone: examplezone0.name,\n    domain: examplezone0.name,\n    type: \"A\",\n    ttl: 120,\n    resourceRecords: [\n        {\n            content: \"127.0.0.100\",\n        },\n        {\n            content: \"127.0.0.200\",\n        },\n    ],\n});\n//\n// example1: managing zone outside of TF\n//\nconst subdomainExamplezone = new gcore.DnsZoneRecord(\"subdomain_examplezone\", {\n    zone: \"examplezone.com\",\n    domain: \"subdomain.examplezone.com\",\n    type: \"TXT\",\n    ttl: 120,\n    filters: [{\n        type: \"geodistance\",\n        limit: 1,\n        strict: true,\n    }],\n    resourceRecords: [{\n        content: \"1234\",\n        enabled: true,\n        meta: {\n            latlongs: [\n                52.367,\n                4.9041,\n            ],\n            asns: [12345],\n            ips: [\"1.1.1.1\"],\n            notes: \"notes\",\n            continents: [\"asia\"],\n            countries: [\"us\"],\n            \"default\": true,\n        },\n    }],\n});\nconst subdomainExamplezoneMx = new gcore.DnsZoneRecord(\"subdomain_examplezone_mx\", {\n    zone: \"examplezone.com\",\n    domain: \"subdomain.examplezone.com\",\n    type: \"MX\",\n    ttl: 120,\n    resourceRecords: [{\n        content: \"10 mail.my.com.\",\n        enabled: true,\n    }],\n});\nconst subdomainExamplezoneCaa = new gcore.DnsZoneRecord(\"subdomain_examplezone_caa\", {\n    zone: \"examplezone.com\",\n    domain: \"subdomain.examplezone.com\",\n    type: \"CAA\",\n    ttl: 120,\n    resourceRecords: [{\n        content: \"0 issue \\\"company.org; account=12345\\\"\",\n        enabled: true,\n    }],\n});\nconst sobdomainExamplezoneHttps = new gcore.DnsZoneRecord(\"sobdomain_examplezone_https\", {\n    zone: \"examplezone.com\",\n    domain: \"subdomain.examplezone.com\",\n    type: \"HTTPS\",\n    resourceRecords: [{\n        content: \"1 . alpn=\\\"h3,h2\\\" port=1443 ipv4hint=10.0.0.1 ech=AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA\",\n    }],\n});\n//\n// example2: healthchecks/failover check\n//\nconst examplezoneFailover = new gcore.DnsZoneRecord(\"examplezone_failover\", {\n    zone: \"examplezone.com\",\n    domain: \"failover.examplezone.com\",\n    type: \"A\",\n    ttl: 120,\n    filters: [{\n        type: \"is_healthy\",\n        limit: 0,\n        strict: true,\n    }],\n    resourceRecords: [{\n        content: \"127.0.0.1\",\n        enabled: true,\n    }],\n    metas: [{\n        failovers: [{\n            frequency: 300,\n            host: \"failover.examplezone.com\",\n            httpStatusCode: 200,\n            method: \"GET\",\n            port: 80,\n            protocol: \"HTTP\",\n            regexp: \"\",\n            timeout: 10,\n            tls: false,\n            url: \"/\",\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nconfig = pulumi.Config()\nexample_domain0 = config.get(\"exampleDomain0\")\nif example_domain0 is None:\n    example_domain0 = \"examplezone.com\"\nexamplezone0 = gcore.DnsZone(\"examplezone0\", name=example_domain0)\nexample_rrset0 = gcore.DnsZoneRecord(\"example_rrset0\",\n    zone=examplezone0.name,\n    domain=examplezone0.name,\n    type=\"A\",\n    ttl=120,\n    resource_records=[\n        {\n            \"content\": \"127.0.0.100\",\n        },\n        {\n            \"content\": \"127.0.0.200\",\n        },\n    ])\n#\n# example1: managing zone outside of TF\n#\nsubdomain_examplezone = gcore.DnsZoneRecord(\"subdomain_examplezone\",\n    zone=\"examplezone.com\",\n    domain=\"subdomain.examplezone.com\",\n    type=\"TXT\",\n    ttl=120,\n    filters=[{\n        \"type\": \"geodistance\",\n        \"limit\": 1,\n        \"strict\": True,\n    }],\n    resource_records=[{\n        \"content\": \"1234\",\n        \"enabled\": True,\n        \"meta\": {\n            \"latlongs\": [\n                52.367,\n                4.9041,\n            ],\n            \"asns\": [12345],\n            \"ips\": [\"1.1.1.1\"],\n            \"notes\": \"notes\",\n            \"continents\": [\"asia\"],\n            \"countries\": [\"us\"],\n            \"default\": True,\n        },\n    }])\nsubdomain_examplezone_mx = gcore.DnsZoneRecord(\"subdomain_examplezone_mx\",\n    zone=\"examplezone.com\",\n    domain=\"subdomain.examplezone.com\",\n    type=\"MX\",\n    ttl=120,\n    resource_records=[{\n        \"content\": \"10 mail.my.com.\",\n        \"enabled\": True,\n    }])\nsubdomain_examplezone_caa = gcore.DnsZoneRecord(\"subdomain_examplezone_caa\",\n    zone=\"examplezone.com\",\n    domain=\"subdomain.examplezone.com\",\n    type=\"CAA\",\n    ttl=120,\n    resource_records=[{\n        \"content\": \"0 issue \\\"company.org; account=12345\\\"\",\n        \"enabled\": True,\n    }])\nsobdomain_examplezone_https = gcore.DnsZoneRecord(\"sobdomain_examplezone_https\",\n    zone=\"examplezone.com\",\n    domain=\"subdomain.examplezone.com\",\n    type=\"HTTPS\",\n    resource_records=[{\n        \"content\": \"1 . alpn=\\\"h3,h2\\\" port=1443 ipv4hint=10.0.0.1 ech=AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA\",\n    }])\n#\n# example2: healthchecks/failover check\n#\nexamplezone_failover = gcore.DnsZoneRecord(\"examplezone_failover\",\n    zone=\"examplezone.com\",\n    domain=\"failover.examplezone.com\",\n    type=\"A\",\n    ttl=120,\n    filters=[{\n        \"type\": \"is_healthy\",\n        \"limit\": 0,\n        \"strict\": True,\n    }],\n    resource_records=[{\n        \"content\": \"127.0.0.1\",\n        \"enabled\": True,\n    }],\n    metas=[{\n        \"failovers\": [{\n            \"frequency\": 300,\n            \"host\": \"failover.examplezone.com\",\n            \"http_status_code\": 200,\n            \"method\": \"GET\",\n            \"port\": 80,\n            \"protocol\": \"HTTP\",\n            \"regexp\": \"\",\n            \"timeout\": 10,\n            \"tls\": False,\n            \"url\": \"/\",\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 config = new Config();\n    var exampleDomain0 = config.Get(\"exampleDomain0\") ?? \"examplezone.com\";\n    var examplezone0 = new Gcore.DnsZone(\"examplezone0\", new()\n    {\n        Name = exampleDomain0,\n    });\n\n    var exampleRrset0 = new Gcore.DnsZoneRecord(\"example_rrset0\", new()\n    {\n        Zone = examplezone0.Name,\n        Domain = examplezone0.Name,\n        Type = \"A\",\n        Ttl = 120,\n        ResourceRecords = new[]\n        {\n            new Gcore.Inputs.DnsZoneRecordResourceRecordArgs\n            {\n                Content = \"127.0.0.100\",\n            },\n            new Gcore.Inputs.DnsZoneRecordResourceRecordArgs\n            {\n                Content = \"127.0.0.200\",\n            },\n        },\n    });\n\n    //\n    // example1: managing zone outside of TF\n    //\n    var subdomainExamplezone = new Gcore.DnsZoneRecord(\"subdomain_examplezone\", new()\n    {\n        Zone = \"examplezone.com\",\n        Domain = \"subdomain.examplezone.com\",\n        Type = \"TXT\",\n        Ttl = 120,\n        Filters = new[]\n        {\n            new Gcore.Inputs.DnsZoneRecordFilterArgs\n            {\n                Type = \"geodistance\",\n                Limit = 1,\n                Strict = true,\n            },\n        },\n        ResourceRecords = new[]\n        {\n            new Gcore.Inputs.DnsZoneRecordResourceRecordArgs\n            {\n                Content = \"1234\",\n                Enabled = true,\n                Meta = new Gcore.Inputs.DnsZoneRecordResourceRecordMetaArgs\n                {\n                    Latlongs = new[]\n                    {\n                        52.367,\n                        4.9041,\n                    },\n                    Asns = new[]\n                    {\n                        12345,\n                    },\n                    Ips = new[]\n                    {\n                        \"1.1.1.1\",\n                    },\n                    Notes = \"notes\",\n                    Continents = new[]\n                    {\n                        \"asia\",\n                    },\n                    Countries = new[]\n                    {\n                        \"us\",\n                    },\n                    Default = true,\n                },\n            },\n        },\n    });\n\n    var subdomainExamplezoneMx = new Gcore.DnsZoneRecord(\"subdomain_examplezone_mx\", new()\n    {\n        Zone = \"examplezone.com\",\n        Domain = \"subdomain.examplezone.com\",\n        Type = \"MX\",\n        Ttl = 120,\n        ResourceRecords = new[]\n        {\n            new Gcore.Inputs.DnsZoneRecordResourceRecordArgs\n            {\n                Content = \"10 mail.my.com.\",\n                Enabled = true,\n            },\n        },\n    });\n\n    var subdomainExamplezoneCaa = new Gcore.DnsZoneRecord(\"subdomain_examplezone_caa\", new()\n    {\n        Zone = \"examplezone.com\",\n        Domain = \"subdomain.examplezone.com\",\n        Type = \"CAA\",\n        Ttl = 120,\n        ResourceRecords = new[]\n        {\n            new Gcore.Inputs.DnsZoneRecordResourceRecordArgs\n            {\n                Content = \"0 issue \\\"company.org; account=12345\\\"\",\n                Enabled = true,\n            },\n        },\n    });\n\n    var sobdomainExamplezoneHttps = new Gcore.DnsZoneRecord(\"sobdomain_examplezone_https\", new()\n    {\n        Zone = \"examplezone.com\",\n        Domain = \"subdomain.examplezone.com\",\n        Type = \"HTTPS\",\n        ResourceRecords = new[]\n        {\n            new Gcore.Inputs.DnsZoneRecordResourceRecordArgs\n            {\n                Content = \"1 . alpn=\\\"h3,h2\\\" port=1443 ipv4hint=10.0.0.1 ech=AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA\",\n            },\n        },\n    });\n\n    //\n    // example2: healthchecks/failover check\n    //\n    var examplezoneFailover = new Gcore.DnsZoneRecord(\"examplezone_failover\", new()\n    {\n        Zone = \"examplezone.com\",\n        Domain = \"failover.examplezone.com\",\n        Type = \"A\",\n        Ttl = 120,\n        Filters = new[]\n        {\n            new Gcore.Inputs.DnsZoneRecordFilterArgs\n            {\n                Type = \"is_healthy\",\n                Limit = 0,\n                Strict = true,\n            },\n        },\n        ResourceRecords = new[]\n        {\n            new Gcore.Inputs.DnsZoneRecordResourceRecordArgs\n            {\n                Content = \"127.0.0.1\",\n                Enabled = true,\n            },\n        },\n        Metas = new[]\n        {\n            new Gcore.Inputs.DnsZoneRecordMetaArgs\n            {\n                Failovers = new[]\n                {\n                    new Gcore.Inputs.DnsZoneRecordMetaFailoverArgs\n                    {\n                        Frequency = 300,\n                        Host = \"failover.examplezone.com\",\n                        HttpStatusCode = 200,\n                        Method = \"GET\",\n                        Port = 80,\n                        Protocol = \"HTTP\",\n                        Regexp = \"\",\n                        Timeout = 10,\n                        Tls = false,\n                        Url = \"/\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\texampleDomain0 := \"examplezone.com\"\n\t\tif param := cfg.Get(\"exampleDomain0\"); param != \"\" {\n\t\t\texampleDomain0 = param\n\t\t}\n\t\texamplezone0, err := gcore.NewDnsZone(ctx, \"examplezone0\", \u0026gcore.DnsZoneArgs{\n\t\t\tName: pulumi.String(exampleDomain0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewDnsZoneRecord(ctx, \"example_rrset0\", \u0026gcore.DnsZoneRecordArgs{\n\t\t\tZone:   examplezone0.Name,\n\t\t\tDomain: examplezone0.Name,\n\t\t\tType:   pulumi.String(\"A\"),\n\t\t\tTtl:    pulumi.Float64(120),\n\t\t\tResourceRecords: gcore.DnsZoneRecordResourceRecordArray{\n\t\t\t\t\u0026gcore.DnsZoneRecordResourceRecordArgs{\n\t\t\t\t\tContent: pulumi.String(\"127.0.0.100\"),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.DnsZoneRecordResourceRecordArgs{\n\t\t\t\t\tContent: pulumi.String(\"127.0.0.200\"),\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// example1: managing zone outside of TF\n\t\t_, err = gcore.NewDnsZoneRecord(ctx, \"subdomain_examplezone\", \u0026gcore.DnsZoneRecordArgs{\n\t\t\tZone:   pulumi.String(\"examplezone.com\"),\n\t\t\tDomain: pulumi.String(\"subdomain.examplezone.com\"),\n\t\t\tType:   pulumi.String(\"TXT\"),\n\t\t\tTtl:    pulumi.Float64(120),\n\t\t\tFilters: gcore.DnsZoneRecordFilterArray{\n\t\t\t\t\u0026gcore.DnsZoneRecordFilterArgs{\n\t\t\t\t\tType:   pulumi.String(\"geodistance\"),\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\tResourceRecords: gcore.DnsZoneRecordResourceRecordArray{\n\t\t\t\t\u0026gcore.DnsZoneRecordResourceRecordArgs{\n\t\t\t\t\tContent: pulumi.String(\"1234\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tMeta: \u0026gcore.DnsZoneRecordResourceRecordMetaArgs{\n\t\t\t\t\t\tLatlongs: pulumi.Float64Array{\n\t\t\t\t\t\t\tpulumi.Float64(52.367),\n\t\t\t\t\t\t\tpulumi.Float64(4.9041),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tAsns: pulumi.Float64Array{\n\t\t\t\t\t\t\tpulumi.Float64(12345),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tIps: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"1.1.1.1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tNotes: pulumi.String(\"notes\"),\n\t\t\t\t\t\tContinents: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"asia\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tCountries: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"us\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tDefault: pulumi.Bool(true),\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\t_, err = gcore.NewDnsZoneRecord(ctx, \"subdomain_examplezone_mx\", \u0026gcore.DnsZoneRecordArgs{\n\t\t\tZone:   pulumi.String(\"examplezone.com\"),\n\t\t\tDomain: pulumi.String(\"subdomain.examplezone.com\"),\n\t\t\tType:   pulumi.String(\"MX\"),\n\t\t\tTtl:    pulumi.Float64(120),\n\t\t\tResourceRecords: gcore.DnsZoneRecordResourceRecordArray{\n\t\t\t\t\u0026gcore.DnsZoneRecordResourceRecordArgs{\n\t\t\t\t\tContent: pulumi.String(\"10 mail.my.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.NewDnsZoneRecord(ctx, \"subdomain_examplezone_caa\", \u0026gcore.DnsZoneRecordArgs{\n\t\t\tZone:   pulumi.String(\"examplezone.com\"),\n\t\t\tDomain: pulumi.String(\"subdomain.examplezone.com\"),\n\t\t\tType:   pulumi.String(\"CAA\"),\n\t\t\tTtl:    pulumi.Float64(120),\n\t\t\tResourceRecords: gcore.DnsZoneRecordResourceRecordArray{\n\t\t\t\t\u0026gcore.DnsZoneRecordResourceRecordArgs{\n\t\t\t\t\tContent: pulumi.String(\"0 issue \\\"company.org; account=12345\\\"\"),\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.NewDnsZoneRecord(ctx, \"sobdomain_examplezone_https\", \u0026gcore.DnsZoneRecordArgs{\n\t\t\tZone:   pulumi.String(\"examplezone.com\"),\n\t\t\tDomain: pulumi.String(\"subdomain.examplezone.com\"),\n\t\t\tType:   pulumi.String(\"HTTPS\"),\n\t\t\tResourceRecords: gcore.DnsZoneRecordResourceRecordArray{\n\t\t\t\t\u0026gcore.DnsZoneRecordResourceRecordArgs{\n\t\t\t\t\tContent: pulumi.String(\"1 . alpn=\\\"h3,h2\\\" port=1443 ipv4hint=10.0.0.1 ech=AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA\"),\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// example2: healthchecks/failover check\n\t\t_, err = gcore.NewDnsZoneRecord(ctx, \"examplezone_failover\", \u0026gcore.DnsZoneRecordArgs{\n\t\t\tZone:   pulumi.String(\"examplezone.com\"),\n\t\t\tDomain: pulumi.String(\"failover.examplezone.com\"),\n\t\t\tType:   pulumi.String(\"A\"),\n\t\t\tTtl:    pulumi.Float64(120),\n\t\t\tFilters: gcore.DnsZoneRecordFilterArray{\n\t\t\t\t\u0026gcore.DnsZoneRecordFilterArgs{\n\t\t\t\t\tType:   pulumi.String(\"is_healthy\"),\n\t\t\t\t\tLimit:  pulumi.Float64(0),\n\t\t\t\t\tStrict: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceRecords: gcore.DnsZoneRecordResourceRecordArray{\n\t\t\t\t\u0026gcore.DnsZoneRecordResourceRecordArgs{\n\t\t\t\t\tContent: pulumi.String(\"127.0.0.1\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetas: gcore.DnsZoneRecordMetaArray{\n\t\t\t\t\u0026gcore.DnsZoneRecordMetaArgs{\n\t\t\t\t\tFailovers: gcore.DnsZoneRecordMetaFailoverArray{\n\t\t\t\t\t\t\u0026gcore.DnsZoneRecordMetaFailoverArgs{\n\t\t\t\t\t\t\tFrequency:      pulumi.Float64(300),\n\t\t\t\t\t\t\tHost:           pulumi.String(\"failover.examplezone.com\"),\n\t\t\t\t\t\t\tHttpStatusCode: pulumi.Float64(200),\n\t\t\t\t\t\t\tMethod:         pulumi.String(\"GET\"),\n\t\t\t\t\t\t\tPort:           pulumi.Float64(80),\n\t\t\t\t\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\t\t\t\t\tRegexp:         pulumi.String(\"\"),\n\t\t\t\t\t\t\tTimeout:        pulumi.Float64(10),\n\t\t\t\t\t\t\tTls:            pulumi.Bool(false),\n\t\t\t\t\t\t\tUrl:            pulumi.String(\"/\"),\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})\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 com.pulumi.gcore.DnsZoneRecord;\nimport com.pulumi.gcore.DnsZoneRecordArgs;\nimport com.pulumi.gcore.inputs.DnsZoneRecordResourceRecordArgs;\nimport com.pulumi.gcore.inputs.DnsZoneRecordFilterArgs;\nimport com.pulumi.gcore.inputs.DnsZoneRecordResourceRecordMetaArgs;\nimport com.pulumi.gcore.inputs.DnsZoneRecordMetaArgs;\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 exampleDomain0 = config.get(\"exampleDomain0\").orElse(\"examplezone.com\");\n        var examplezone0 = new DnsZone(\"examplezone0\", DnsZoneArgs.builder()\n            .name(exampleDomain0)\n            .build());\n\n        var exampleRrset0 = new DnsZoneRecord(\"exampleRrset0\", DnsZoneRecordArgs.builder()\n            .zone(examplezone0.name())\n            .domain(examplezone0.name())\n            .type(\"A\")\n            .ttl(120.0)\n            .resourceRecords(            \n                DnsZoneRecordResourceRecordArgs.builder()\n                    .content(\"127.0.0.100\")\n                    .build(),\n                DnsZoneRecordResourceRecordArgs.builder()\n                    .content(\"127.0.0.200\")\n                    .build())\n            .build());\n\n        //\n        // example1: managing zone outside of TF\n        //\n        var subdomainExamplezone = new DnsZoneRecord(\"subdomainExamplezone\", DnsZoneRecordArgs.builder()\n            .zone(\"examplezone.com\")\n            .domain(\"subdomain.examplezone.com\")\n            .type(\"TXT\")\n            .ttl(120.0)\n            .filters(DnsZoneRecordFilterArgs.builder()\n                .type(\"geodistance\")\n                .limit(1.0)\n                .strict(true)\n                .build())\n            .resourceRecords(DnsZoneRecordResourceRecordArgs.builder()\n                .content(\"1234\")\n                .enabled(true)\n                .meta(DnsZoneRecordResourceRecordMetaArgs.builder()\n                    .latlongs(                    \n                        52.367,\n                        4.9041)\n                    .asns(12345.0)\n                    .ips(\"1.1.1.1\")\n                    .notes(\"notes\")\n                    .continents(\"asia\")\n                    .countries(\"us\")\n                    .default_(true)\n                    .build())\n                .build())\n            .build());\n\n        var subdomainExamplezoneMx = new DnsZoneRecord(\"subdomainExamplezoneMx\", DnsZoneRecordArgs.builder()\n            .zone(\"examplezone.com\")\n            .domain(\"subdomain.examplezone.com\")\n            .type(\"MX\")\n            .ttl(120.0)\n            .resourceRecords(DnsZoneRecordResourceRecordArgs.builder()\n                .content(\"10 mail.my.com.\")\n                .enabled(true)\n                .build())\n            .build());\n\n        var subdomainExamplezoneCaa = new DnsZoneRecord(\"subdomainExamplezoneCaa\", DnsZoneRecordArgs.builder()\n            .zone(\"examplezone.com\")\n            .domain(\"subdomain.examplezone.com\")\n            .type(\"CAA\")\n            .ttl(120.0)\n            .resourceRecords(DnsZoneRecordResourceRecordArgs.builder()\n                .content(\"0 issue \\\"company.org; account=12345\\\"\")\n                .enabled(true)\n                .build())\n            .build());\n\n        var sobdomainExamplezoneHttps = new DnsZoneRecord(\"sobdomainExamplezoneHttps\", DnsZoneRecordArgs.builder()\n            .zone(\"examplezone.com\")\n            .domain(\"subdomain.examplezone.com\")\n            .type(\"HTTPS\")\n            .resourceRecords(DnsZoneRecordResourceRecordArgs.builder()\n                .content(\"1 . alpn=\\\"h3,h2\\\" port=1443 ipv4hint=10.0.0.1 ech=AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA\")\n                .build())\n            .build());\n\n        //\n        // example2: healthchecks/failover check\n        //\n        var examplezoneFailover = new DnsZoneRecord(\"examplezoneFailover\", DnsZoneRecordArgs.builder()\n            .zone(\"examplezone.com\")\n            .domain(\"failover.examplezone.com\")\n            .type(\"A\")\n            .ttl(120.0)\n            .filters(DnsZoneRecordFilterArgs.builder()\n                .type(\"is_healthy\")\n                .limit(0.0)\n                .strict(true)\n                .build())\n            .resourceRecords(DnsZoneRecordResourceRecordArgs.builder()\n                .content(\"127.0.0.1\")\n                .enabled(true)\n                .build())\n            .metas(DnsZoneRecordMetaArgs.builder()\n                .failovers(DnsZoneRecordMetaFailoverArgs.builder()\n                    .frequency(300.0)\n                    .host(\"failover.examplezone.com\")\n                    .httpStatusCode(200.0)\n                    .method(\"GET\")\n                    .port(80.0)\n                    .protocol(\"HTTP\")\n                    .regexp(\"\")\n                    .timeout(10.0)\n                    .tls(false)\n                    .url(\"/\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  # // example0: managing zone and records by TF using variables\n  # //\n  exampleDomain0:\n    type: string\n    default: examplezone.com\nresources:\n  examplezone0:\n    type: gcore:DnsZone\n    properties:\n      name: ${exampleDomain0}\n  exampleRrset0:\n    type: gcore:DnsZoneRecord\n    name: example_rrset0\n    properties:\n      zone: ${examplezone0.name}\n      domain: ${examplezone0.name}\n      type: A\n      ttl: 120\n      resourceRecords:\n        - content: 127.0.0.100\n        - content: 127.0.0.200\n  # // example1: managing zone outside of TF\n  # //\n  subdomainExamplezone:\n    type: gcore:DnsZoneRecord\n    name: subdomain_examplezone\n    properties:\n      zone: examplezone.com\n      domain: subdomain.examplezone.com\n      type: TXT\n      ttl: 120\n      filters:\n        - type: geodistance\n          limit: 1\n          strict: true\n      resourceRecords:\n        - content: '1234'\n          enabled: true\n          meta:\n            latlongs:\n              - 52.367\n              - 4.9041\n            asns:\n              - 12345\n            ips:\n              - 1.1.1.1\n            notes: notes\n            continents:\n              - asia\n            countries:\n              - us\n            default: true\n  subdomainExamplezoneMx:\n    type: gcore:DnsZoneRecord\n    name: subdomain_examplezone_mx\n    properties:\n      zone: examplezone.com\n      domain: subdomain.examplezone.com\n      type: MX\n      ttl: 120\n      resourceRecords:\n        - content: 10 mail.my.com.\n          enabled: true\n  subdomainExamplezoneCaa:\n    type: gcore:DnsZoneRecord\n    name: subdomain_examplezone_caa\n    properties:\n      zone: examplezone.com\n      domain: subdomain.examplezone.com\n      type: CAA\n      ttl: 120\n      resourceRecords:\n        - content: 0 issue \"company.org; account=12345\"\n          enabled: true\n  sobdomainExamplezoneHttps:\n    type: gcore:DnsZoneRecord\n    name: sobdomain_examplezone_https\n    properties:\n      zone: examplezone.com\n      domain: subdomain.examplezone.com\n      type: HTTPS\n      resourceRecords:\n        - content: 1 . alpn=\"h3,h2\" port=1443 ipv4hint=10.0.0.1 ech=AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA\n  # // example2: healthchecks/failover check\n  # //\n  examplezoneFailover:\n    type: gcore:DnsZoneRecord\n    name: examplezone_failover\n    properties:\n      zone: examplezone.com\n      domain: failover.examplezone.com\n      type: A\n      ttl: 120\n      filters:\n        - type: is_healthy\n          limit: 0\n          strict: true\n      resourceRecords:\n        - content: 127.0.0.1\n          enabled: true\n      metas:\n        - failovers:\n            - frequency: 300\n              host: failover.examplezone.com\n              httpStatusCode: 200\n              method: GET\n              port: 80\n              protocol: HTTP\n              regexp: \"\"\n              timeout: 10\n              tls: false\n              url: /\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using zone:domain:type format\n\n```sh\n$ pulumi import gcore:index/dnsZoneRecord:DnsZoneRecord example_rrset0 example.com:domain.example.com:A\n```\n\n","properties":{"dnsZoneRecordId":{"type":"string","description":"The ID of this resource.\n"},"domain":{"type":"string","description":"A domain of DNS Zone Record resource.\n"},"filters":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRecordFilter:DnsZoneRecordFilter"}},"metas":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRecordMeta:DnsZoneRecordMeta"}},"resourceRecords":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRecordResourceRecord:DnsZoneRecordResourceRecord"},"description":"An array of contents with meta of DNS Zone Record resource.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FDnsZoneRecordTimeouts:DnsZoneRecordTimeouts"},"ttl":{"type":"number","description":"A ttl of DNS Zone Record resource.\n"},"type":{"type":"string","description":"A type of DNS Zone Record resource.\n"},"zone":{"type":"string","description":"A zone of DNS Zone Record resource.\n"}},"type":"object","required":["dnsZoneRecordId","domain","resourceRecords","type","zone"],"inputProperties":{"dnsZoneRecordId":{"type":"string","description":"The ID of this resource.\n"},"domain":{"type":"string","description":"A domain of DNS Zone Record resource.\n"},"filters":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRecordFilter:DnsZoneRecordFilter"}},"metas":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRecordMeta:DnsZoneRecordMeta"}},"resourceRecords":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRecordResourceRecord:DnsZoneRecordResourceRecord"},"description":"An array of contents with meta of DNS Zone Record resource.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FDnsZoneRecordTimeouts:DnsZoneRecordTimeouts"},"ttl":{"type":"number","description":"A ttl of DNS Zone Record resource.\n"},"type":{"type":"string","description":"A type of DNS Zone Record resource.\n"},"zone":{"type":"string","description":"A zone of DNS Zone Record resource.\n"}},"requiredInputs":["domain","resourceRecords","type","zone"],"stateInputs":{"description":"Input properties used for looking up and filtering DnsZoneRecord resources.\n","properties":{"dnsZoneRecordId":{"type":"string","description":"The ID of this resource.\n"},"domain":{"type":"string","description":"A domain of DNS Zone Record resource.\n"},"filters":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRecordFilter:DnsZoneRecordFilter"}},"metas":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRecordMeta:DnsZoneRecordMeta"}},"resourceRecords":{"type":"array","items":{"$ref":"#/types/gcore:index%2FDnsZoneRecordResourceRecord:DnsZoneRecordResourceRecord"},"description":"An array of contents with meta of DNS Zone Record resource.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FDnsZoneRecordTimeouts:DnsZoneRecordTimeouts"},"ttl":{"type":"number","description":"A ttl of DNS Zone Record resource.\n"},"type":{"type":"string","description":"A type of DNS Zone Record resource.\n"},"zone":{"type":"string","description":"A zone of DNS Zone Record resource.\n"}},"type":"object"}},"gcore:index/faasFunction:FaasFunction":{"description":"Represent FaaS function\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 func = new gcore.FaasFunction(\"func\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"testf\",\n    namespace: \"ns4test\",\n    description: \"function description\",\n    envs: {\n        BIG: \"EXAMPLE2\",\n    },\n    runtime: \"go1.16.6\",\n    codeText: `package kubeless\n\nimport (\n        \\\\\"github.com/kubeless/kubeless/pkg/functions\\\\\"\n)\n\nfunc Run(evt functions.Event, ctx functions.Context) (string, error) {\n        return \\\\\"Hello World!!\\\\\", nil\n}\n`,\n    timeout: 5,\n    flavor: \"80mCPU-128MB\",\n    mainMethod: \"Run\",\n    minInstances: 1,\n    maxInstances: 2,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nfunc = gcore.FaasFunction(\"func\",\n    project_id=1,\n    region_id=1,\n    name=\"testf\",\n    namespace=\"ns4test\",\n    description=\"function description\",\n    envs={\n        \"BIG\": \"EXAMPLE2\",\n    },\n    runtime=\"go1.16.6\",\n    code_text=\"\"\"package kubeless\n\nimport (\n        \\\"github.com/kubeless/kubeless/pkg/functions\\\"\n)\n\nfunc Run(evt functions.Event, ctx functions.Context) (string, error) {\n        return \\\"Hello World!!\\\", nil\n}\n\"\"\",\n    timeout=5,\n    flavor=\"80mCPU-128MB\",\n    main_method=\"Run\",\n    min_instances=1,\n    max_instances=2)\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 func = new Gcore.FaasFunction(\"func\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"testf\",\n        Namespace = \"ns4test\",\n        Description = \"function description\",\n        Envs = \n        {\n            { \"BIG\", \"EXAMPLE2\" },\n        },\n        Runtime = \"go1.16.6\",\n        CodeText = @\"package kubeless\n\nimport (\n        \\\"\"github.com/kubeless/kubeless/pkg/functions\\\"\"\n)\n\nfunc Run(evt functions.Event, ctx functions.Context) (string, error) {\n        return \\\"\"Hello World!!\\\"\", nil\n}\n\",\n        Timeout = 5,\n        Flavor = \"80mCPU-128MB\",\n        MainMethod = \"Run\",\n        MinInstances = 1,\n        MaxInstances = 2,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewFaasFunction(ctx, \"func\", \u0026gcore.FaasFunctionArgs{\n\t\t\tProjectId:   pulumi.Float64(1),\n\t\t\tRegionId:    pulumi.Float64(1),\n\t\t\tName:        pulumi.String(\"testf\"),\n\t\t\tNamespace:   pulumi.String(\"ns4test\"),\n\t\t\tDescription: pulumi.String(\"function description\"),\n\t\t\tEnvs: pulumi.StringMap{\n\t\t\t\t\"BIG\": pulumi.String(\"EXAMPLE2\"),\n\t\t\t},\n\t\t\tRuntime: pulumi.String(\"go1.16.6\"),\n\t\t\tCodeText: pulumi.String(`package kubeless\n\nimport (\n        \\\"github.com/kubeless/kubeless/pkg/functions\\\"\n)\n\nfunc Run(evt functions.Event, ctx functions.Context) (string, error) {\n        return \\\"Hello World!!\\\", nil\n}\n`),\n\t\t\tTimeout:      pulumi.Float64(5),\n\t\t\tFlavor:       pulumi.String(\"80mCPU-128MB\"),\n\t\t\tMainMethod:   pulumi.String(\"Run\"),\n\t\t\tMinInstances: pulumi.Float64(1),\n\t\t\tMaxInstances: pulumi.Float64(2),\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.FaasFunction;\nimport com.pulumi.gcore.FaasFunctionArgs;\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 func = new FaasFunction(\"func\", FaasFunctionArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"testf\")\n            .namespace(\"ns4test\")\n            .description(\"function description\")\n            .envs(Map.of(\"BIG\", \"EXAMPLE2\"))\n            .runtime(\"go1.16.6\")\n            .codeText(\"\"\"\npackage kubeless\n\nimport (\n        \\\"github.com/kubeless/kubeless/pkg/functions\\\"\n)\n\nfunc Run(evt functions.Event, ctx functions.Context) (string, error) {\n        return \\\"Hello World!!\\\", nil\n}\n            \"\"\")\n            .timeout(5.0)\n            .flavor(\"80mCPU-128MB\")\n            .mainMethod(\"Run\")\n            .minInstances(1.0)\n            .maxInstances(2.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  func:\n    type: gcore:FaasFunction\n    properties:\n      projectId: 1\n      regionId: 1\n      name: testf\n      namespace: ns4test\n      description: function description\n      envs:\n        BIG: EXAMPLE2\n      runtime: go1.16.6\n      codeText: |\n        package kubeless\n\n        import (\n                \\\"github.com/kubeless/kubeless/pkg/functions\\\"\n        )\n\n        func Run(evt functions.Event, ctx functions.Context) (string, error) {\n                return \\\"Hello World!!\\\", nil\n        }\n      timeout: 5\n      flavor: 80mCPU-128MB\n      mainMethod: Run\n      minInstances: 1\n      maxInstances: 2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003cnamespace_name\u003e\u003cfunction_name\u003e format\n\n```sh\n$ pulumi import gcore:index/faasFunction:FaasFunction test 1:6:ns:test_func\n```\n\n","properties":{"buildMessage":{"type":"string"},"buildStatus":{"type":"string"},"codeText":{"type":"string"},"createdAt":{"type":"string"},"dependencies":{"type":"string","description":"Function dependencies to install\n"},"deployStatus":{"type":"object","additionalProperties":{"type":"number"}},"description":{"type":"string"},"disabled":{"type":"boolean","description":"Set to true if function is disabled\n"},"enableApiKey":{"type":"boolean","description":"Enable/Disable api key authorization\n"},"endpoint":{"type":"string"},"envs":{"type":"object","additionalProperties":{"type":"string"}},"faasFunctionId":{"type":"string","description":"The ID of this resource.\n"},"flavor":{"type":"string"},"keys":{"type":"array","items":{"type":"string"},"description":"List of used api keys\n"},"mainMethod":{"type":"string","description":"Main startup method name\n"},"maxInstances":{"type":"number","description":"Autoscaling max number of instances\n"},"minInstances":{"type":"number","description":"Autoscaling min number of instances\n"},"name":{"type":"string"},"namespace":{"type":"string","description":"Namespace of the function\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"runtime":{"type":"string"},"status":{"type":"string"},"timeout":{"type":"number"}},"type":"object","required":["buildMessage","buildStatus","codeText","createdAt","deployStatus","endpoint","faasFunctionId","flavor","mainMethod","maxInstances","minInstances","name","namespace","runtime","status","timeout"],"inputProperties":{"codeText":{"type":"string"},"dependencies":{"type":"string","description":"Function dependencies to install\n"},"description":{"type":"string"},"disabled":{"type":"boolean","description":"Set to true if function is disabled\n"},"enableApiKey":{"type":"boolean","description":"Enable/Disable api key authorization\n"},"envs":{"type":"object","additionalProperties":{"type":"string"}},"faasFunctionId":{"type":"string","description":"The ID of this resource.\n"},"flavor":{"type":"string"},"keys":{"type":"array","items":{"type":"string"},"description":"List of used api keys\n"},"mainMethod":{"type":"string","description":"Main startup method name\n"},"maxInstances":{"type":"number","description":"Autoscaling max number of instances\n"},"minInstances":{"type":"number","description":"Autoscaling min number of instances\n"},"name":{"type":"string"},"namespace":{"type":"string","description":"Namespace of the function\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"runtime":{"type":"string"},"timeout":{"type":"number"}},"requiredInputs":["codeText","flavor","mainMethod","maxInstances","minInstances","namespace","runtime","timeout"],"stateInputs":{"description":"Input properties used for looking up and filtering FaasFunction resources.\n","properties":{"buildMessage":{"type":"string"},"buildStatus":{"type":"string"},"codeText":{"type":"string"},"createdAt":{"type":"string"},"dependencies":{"type":"string","description":"Function dependencies to install\n"},"deployStatus":{"type":"object","additionalProperties":{"type":"number"}},"description":{"type":"string"},"disabled":{"type":"boolean","description":"Set to true if function is disabled\n"},"enableApiKey":{"type":"boolean","description":"Enable/Disable api key authorization\n"},"endpoint":{"type":"string"},"envs":{"type":"object","additionalProperties":{"type":"string"}},"faasFunctionId":{"type":"string","description":"The ID of this resource.\n"},"flavor":{"type":"string"},"keys":{"type":"array","items":{"type":"string"},"description":"List of used api keys\n"},"mainMethod":{"type":"string","description":"Main startup method name\n"},"maxInstances":{"type":"number","description":"Autoscaling max number of instances\n"},"minInstances":{"type":"number","description":"Autoscaling min number of instances\n"},"name":{"type":"string"},"namespace":{"type":"string","description":"Namespace of the function\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"runtime":{"type":"string"},"status":{"type":"string"},"timeout":{"type":"number"}},"type":"object"}},"gcore:index/faasKey:FaasKey":{"description":"Represents FaaS API key\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\nexport = async () =\u003e {\n    const secret = new gcore.FaasKey(\"secret\", {\n        name: \"key-name\",\n        description: \"Keys description\",\n        projectId: 1,\n        regionId: 1,\n    });\n    return {\n        secret: gcoreFaasKey.secret,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nsecret = gcore.FaasKey(\"secret\",\n    name=\"key-name\",\n    description=\"Keys description\",\n    project_id=1,\n    region_id=1)\npulumi.export(\"secret\", gcore_faas_key[\"secret\"])\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 secret = new Gcore.FaasKey(\"secret\", new()\n    {\n        Name = \"key-name\",\n        Description = \"Keys description\",\n        ProjectId = 1,\n        RegionId = 1,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"secret\"] = gcoreFaasKey.Secret,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewFaasKey(ctx, \"secret\", \u0026gcore.FaasKeyArgs{\n\t\t\tName:        pulumi.String(\"key-name\"),\n\t\t\tDescription: pulumi.String(\"Keys description\"),\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\tctx.Export(\"secret\", gcoreFaasKey.Secret)\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.FaasKey;\nimport com.pulumi.gcore.FaasKeyArgs;\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 secret = new FaasKey(\"secret\", FaasKeyArgs.builder()\n            .name(\"key-name\")\n            .description(\"Keys description\")\n            .projectId(1.0)\n            .regionId(1.0)\n            .build());\n\n        ctx.export(\"secret\", gcoreFaasKey.secret());\n    }\n}\n```\n```yaml\nresources:\n  secret:\n    type: gcore:FaasKey\n    properties:\n      name: key-name\n      description: Keys description\n      projectId: 1\n      regionId: 1\noutputs:\n  # To get sensitive value use `terraform output secret`\n  secret: ${gcoreFaasKey.secret}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003ckey_name\u003e format\n\n```sh\n$ pulumi import gcore:index/faasKey:FaasKey test 1:6:test_key\n```\n\n","properties":{"createdAt":{"type":"string"},"description":{"type":"string"},"expire":{"type":"string"},"faasKeyId":{"type":"string","description":"The ID of this resource.\n"},"functions":{"type":"array","items":{"$ref":"#/types/gcore:index%2FFaasKeyFunction:FaasKeyFunction"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"secret":{"type":"string","description":"API key secret\n","secret":true},"status":{"type":"string"}},"type":"object","required":["createdAt","faasKeyId","name","secret","status"],"inputProperties":{"description":{"type":"string"},"expire":{"type":"string"},"faasKeyId":{"type":"string","description":"The ID of this resource.\n"},"functions":{"type":"array","items":{"$ref":"#/types/gcore:index%2FFaasKeyFunction:FaasKeyFunction"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"stateInputs":{"description":"Input properties used for looking up and filtering FaasKey resources.\n","properties":{"createdAt":{"type":"string"},"description":{"type":"string"},"expire":{"type":"string"},"faasKeyId":{"type":"string","description":"The ID of this resource.\n"},"functions":{"type":"array","items":{"$ref":"#/types/gcore:index%2FFaasKeyFunction:FaasKeyFunction"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"secret":{"type":"string","description":"API key secret\n","secret":true},"status":{"type":"string"}},"type":"object"}},"gcore:index/faasNamespace:FaasNamespace":{"description":"Represents FaaS namespace\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 ns = new gcore.FaasNamespace(\"ns\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"testns\",\n    description: \"test description\",\n    envs: {\n        BIG_ENV: \"EXAMPLE\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nns = gcore.FaasNamespace(\"ns\",\n    project_id=1,\n    region_id=1,\n    name=\"testns\",\n    description=\"test description\",\n    envs={\n        \"BIG_ENV\": \"EXAMPLE\",\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 ns = new Gcore.FaasNamespace(\"ns\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"testns\",\n        Description = \"test description\",\n        Envs = \n        {\n            { \"BIG_ENV\", \"EXAMPLE\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewFaasNamespace(ctx, \"ns\", \u0026gcore.FaasNamespaceArgs{\n\t\t\tProjectId:   pulumi.Float64(1),\n\t\t\tRegionId:    pulumi.Float64(1),\n\t\t\tName:        pulumi.String(\"testns\"),\n\t\t\tDescription: pulumi.String(\"test description\"),\n\t\t\tEnvs: pulumi.StringMap{\n\t\t\t\t\"BIG_ENV\": pulumi.String(\"EXAMPLE\"),\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.FaasNamespace;\nimport com.pulumi.gcore.FaasNamespaceArgs;\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 ns = new FaasNamespace(\"ns\", FaasNamespaceArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"testns\")\n            .description(\"test description\")\n            .envs(Map.of(\"BIG_ENV\", \"EXAMPLE\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ns:\n    type: gcore:FaasNamespace\n    properties:\n      projectId: 1\n      regionId: 1\n      name: testns\n      description: test description\n      envs:\n        BIG_ENV: EXAMPLE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003cnamespace_name\u003e format\n\n```sh\n$ pulumi import gcore:index/faasNamespace:FaasNamespace test 1:6:ns\n```\n\n","properties":{"createdAt":{"type":"string"},"description":{"type":"string"},"envs":{"type":"object","additionalProperties":{"type":"string"}},"faasNamespaceId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"status":{"type":"string"}},"type":"object","required":["createdAt","faasNamespaceId","name","status"],"inputProperties":{"description":{"type":"string"},"envs":{"type":"object","additionalProperties":{"type":"string"}},"faasNamespaceId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"stateInputs":{"description":"Input properties used for looking up and filtering FaasNamespace resources.\n","properties":{"createdAt":{"type":"string"},"description":{"type":"string"},"envs":{"type":"object","additionalProperties":{"type":"string"}},"faasNamespaceId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"status":{"type":"string"}},"type":"object"}},"gcore:index/fastedgeApp:FastedgeApp":{"description":"FastEdge application.\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 config = new pulumi.Config();\n// Slot 0 secret value\nconst appSecretSlot0 = config.get(\"appSecretSlot0\") || \"\";\n// Slot 1 secret value\nconst appSecretSlot1 = config.get(\"appSecretSlot1\") || \"\";\nconst testSecret = new gcore.FastedgeSecret(\"test_secret\", {\n    name: \"terraform_test_secret\",\n    comment: \"My test secret\",\n    slots: [\n        {\n            id: 0,\n            value: appSecretSlot0,\n        },\n        {\n            id: 1,\n            value: appSecretSlot1,\n        },\n    ],\n});\nconst testBinary = new gcore.FastedgeBinary(\"test_binary\", {filename: \"test.wasm\"});\nconst appFromBinary = new gcore.FastedgeApp(\"app_from_binary\", {\n    status: \"enabled\",\n    name: \"terraform-test1\",\n    comment: \"Terraform test app 1\",\n    binary: testBinary.fastedgeBinaryId,\n    env: {\n        foo: \"bar\",\n    },\n});\nconst testTemplate = new gcore.FastedgeTemplate(\"test_template\", {\n    name: \"terraform_test_template\",\n    binary: testBinary.fastedgeBinaryId,\n    shortDescr: \"short description\",\n    longDescr: \"long description\",\n    params: [\n        {\n            name: \"foo\",\n            type: \"string\",\n            mandatory: true,\n            descr: \"Parameter foo\",\n        },\n        {\n            name: \"bar\",\n            type: \"number\",\n            descr: \"Parameter bar\",\n        },\n    ],\n});\nconst appFromTemplate = new gcore.FastedgeApp(\"app_from_template\", {\n    status: \"enabled\",\n    name: \"terraform-test2\",\n    comment: \"Terraform test app 2\",\n    template: testTemplate.fastedgeTemplateId,\n    env: {\n        foo: \"foo_value\",\n        bar: \"123\",\n    },\n    secrets: {\n        baz: testSecret.fastedgeSecretId,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nconfig = pulumi.Config()\n# Slot 0 secret value\napp_secret_slot0 = config.get(\"appSecretSlot0\")\nif app_secret_slot0 is None:\n    app_secret_slot0 = \"\"\n# Slot 1 secret value\napp_secret_slot1 = config.get(\"appSecretSlot1\")\nif app_secret_slot1 is None:\n    app_secret_slot1 = \"\"\ntest_secret = gcore.FastedgeSecret(\"test_secret\",\n    name=\"terraform_test_secret\",\n    comment=\"My test secret\",\n    slots=[\n        {\n            \"id\": 0,\n            \"value\": app_secret_slot0,\n        },\n        {\n            \"id\": 1,\n            \"value\": app_secret_slot1,\n        },\n    ])\ntest_binary = gcore.FastedgeBinary(\"test_binary\", filename=\"test.wasm\")\napp_from_binary = gcore.FastedgeApp(\"app_from_binary\",\n    status=\"enabled\",\n    name=\"terraform-test1\",\n    comment=\"Terraform test app 1\",\n    binary=test_binary.fastedge_binary_id,\n    env={\n        \"foo\": \"bar\",\n    })\ntest_template = gcore.FastedgeTemplate(\"test_template\",\n    name=\"terraform_test_template\",\n    binary=test_binary.fastedge_binary_id,\n    short_descr=\"short description\",\n    long_descr=\"long description\",\n    params=[\n        {\n            \"name\": \"foo\",\n            \"type\": \"string\",\n            \"mandatory\": True,\n            \"descr\": \"Parameter foo\",\n        },\n        {\n            \"name\": \"bar\",\n            \"type\": \"number\",\n            \"descr\": \"Parameter bar\",\n        },\n    ])\napp_from_template = gcore.FastedgeApp(\"app_from_template\",\n    status=\"enabled\",\n    name=\"terraform-test2\",\n    comment=\"Terraform test app 2\",\n    template=test_template.fastedge_template_id,\n    env={\n        \"foo\": \"foo_value\",\n        \"bar\": \"123\",\n    },\n    secrets={\n        \"baz\": test_secret.fastedge_secret_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    var config = new Config();\n    // Slot 0 secret value\n    var appSecretSlot0 = config.Get(\"appSecretSlot0\") ?? \"\";\n    // Slot 1 secret value\n    var appSecretSlot1 = config.Get(\"appSecretSlot1\") ?? \"\";\n    var testSecret = new Gcore.FastedgeSecret(\"test_secret\", new()\n    {\n        Name = \"terraform_test_secret\",\n        Comment = \"My test secret\",\n        Slots = new[]\n        {\n            new Gcore.Inputs.FastedgeSecretSlotArgs\n            {\n                Id = 0,\n                Value = appSecretSlot0,\n            },\n            new Gcore.Inputs.FastedgeSecretSlotArgs\n            {\n                Id = 1,\n                Value = appSecretSlot1,\n            },\n        },\n    });\n\n    var testBinary = new Gcore.FastedgeBinary(\"test_binary\", new()\n    {\n        Filename = \"test.wasm\",\n    });\n\n    var appFromBinary = new Gcore.FastedgeApp(\"app_from_binary\", new()\n    {\n        Status = \"enabled\",\n        Name = \"terraform-test1\",\n        Comment = \"Terraform test app 1\",\n        Binary = testBinary.FastedgeBinaryId,\n        Env = \n        {\n            { \"foo\", \"bar\" },\n        },\n    });\n\n    var testTemplate = new Gcore.FastedgeTemplate(\"test_template\", new()\n    {\n        Name = \"terraform_test_template\",\n        Binary = testBinary.FastedgeBinaryId,\n        ShortDescr = \"short description\",\n        LongDescr = \"long description\",\n        Params = new[]\n        {\n            new Gcore.Inputs.FastedgeTemplateParamArgs\n            {\n                Name = \"foo\",\n                Type = \"string\",\n                Mandatory = true,\n                Descr = \"Parameter foo\",\n            },\n            new Gcore.Inputs.FastedgeTemplateParamArgs\n            {\n                Name = \"bar\",\n                Type = \"number\",\n                Descr = \"Parameter bar\",\n            },\n        },\n    });\n\n    var appFromTemplate = new Gcore.FastedgeApp(\"app_from_template\", new()\n    {\n        Status = \"enabled\",\n        Name = \"terraform-test2\",\n        Comment = \"Terraform test app 2\",\n        Template = testTemplate.FastedgeTemplateId,\n        Env = \n        {\n            { \"foo\", \"foo_value\" },\n            { \"bar\", \"123\" },\n        },\n        Secrets = \n        {\n            { \"baz\", testSecret.FastedgeSecretId },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\t// Slot 0 secret value\n\t\tappSecretSlot0 := \"\"\n\t\tif param := cfg.Get(\"appSecretSlot0\"); param != \"\" {\n\t\t\tappSecretSlot0 = param\n\t\t}\n\t\t// Slot 1 secret value\n\t\tappSecretSlot1 := \"\"\n\t\tif param := cfg.Get(\"appSecretSlot1\"); param != \"\" {\n\t\t\tappSecretSlot1 = param\n\t\t}\n\t\ttestSecret, err := gcore.NewFastedgeSecret(ctx, \"test_secret\", \u0026gcore.FastedgeSecretArgs{\n\t\t\tName:    pulumi.String(\"terraform_test_secret\"),\n\t\t\tComment: pulumi.String(\"My test secret\"),\n\t\t\tSlots: gcore.FastedgeSecretSlotArray{\n\t\t\t\t\u0026gcore.FastedgeSecretSlotArgs{\n\t\t\t\t\tId:    pulumi.Float64(0),\n\t\t\t\t\tValue: pulumi.String(appSecretSlot0),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.FastedgeSecretSlotArgs{\n\t\t\t\t\tId:    pulumi.Float64(1),\n\t\t\t\t\tValue: pulumi.String(appSecretSlot1),\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\ttestBinary, err := gcore.NewFastedgeBinary(ctx, \"test_binary\", \u0026gcore.FastedgeBinaryArgs{\n\t\t\tFilename: pulumi.String(\"test.wasm\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewFastedgeApp(ctx, \"app_from_binary\", \u0026gcore.FastedgeAppArgs{\n\t\t\tStatus:  pulumi.String(\"enabled\"),\n\t\t\tName:    pulumi.String(\"terraform-test1\"),\n\t\t\tComment: pulumi.String(\"Terraform test app 1\"),\n\t\t\tBinary:  testBinary.FastedgeBinaryId,\n\t\t\tEnv: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestTemplate, err := gcore.NewFastedgeTemplate(ctx, \"test_template\", \u0026gcore.FastedgeTemplateArgs{\n\t\t\tName:       pulumi.String(\"terraform_test_template\"),\n\t\t\tBinary:     testBinary.FastedgeBinaryId,\n\t\t\tShortDescr: pulumi.String(\"short description\"),\n\t\t\tLongDescr:  pulumi.String(\"long description\"),\n\t\t\tParams: gcore.FastedgeTemplateParamArray{\n\t\t\t\t\u0026gcore.FastedgeTemplateParamArgs{\n\t\t\t\t\tName:      pulumi.String(\"foo\"),\n\t\t\t\t\tType:      pulumi.String(\"string\"),\n\t\t\t\t\tMandatory: pulumi.Bool(true),\n\t\t\t\t\tDescr:     pulumi.String(\"Parameter foo\"),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.FastedgeTemplateParamArgs{\n\t\t\t\t\tName:  pulumi.String(\"bar\"),\n\t\t\t\t\tType:  pulumi.String(\"number\"),\n\t\t\t\t\tDescr: pulumi.String(\"Parameter bar\"),\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.NewFastedgeApp(ctx, \"app_from_template\", \u0026gcore.FastedgeAppArgs{\n\t\t\tStatus:   pulumi.String(\"enabled\"),\n\t\t\tName:     pulumi.String(\"terraform-test2\"),\n\t\t\tComment:  pulumi.String(\"Terraform test app 2\"),\n\t\t\tTemplate: testTemplate.FastedgeTemplateId,\n\t\t\tEnv: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"foo_value\"),\n\t\t\t\t\"bar\": pulumi.String(\"123\"),\n\t\t\t},\n\t\t\tSecrets: pulumi.Float64Map{\n\t\t\t\t\"baz\": testSecret.FastedgeSecretId,\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.FastedgeSecretSlotArgs;\nimport com.pulumi.gcore.FastedgeBinary;\nimport com.pulumi.gcore.FastedgeBinaryArgs;\nimport com.pulumi.gcore.FastedgeApp;\nimport com.pulumi.gcore.FastedgeAppArgs;\nimport com.pulumi.gcore.FastedgeTemplate;\nimport com.pulumi.gcore.FastedgeTemplateArgs;\nimport com.pulumi.gcore.inputs.FastedgeTemplateParamArgs;\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 appSecretSlot0 = config.get(\"appSecretSlot0\").orElse(\"\");\n        final var appSecretSlot1 = config.get(\"appSecretSlot1\").orElse(\"\");\n        var testSecret = new FastedgeSecret(\"testSecret\", FastedgeSecretArgs.builder()\n            .name(\"terraform_test_secret\")\n            .comment(\"My test secret\")\n            .slots(            \n                FastedgeSecretSlotArgs.builder()\n                    .id(0.0)\n                    .value(appSecretSlot0)\n                    .build(),\n                FastedgeSecretSlotArgs.builder()\n                    .id(1.0)\n                    .value(appSecretSlot1)\n                    .build())\n            .build());\n\n        var testBinary = new FastedgeBinary(\"testBinary\", FastedgeBinaryArgs.builder()\n            .filename(\"test.wasm\")\n            .build());\n\n        var appFromBinary = new FastedgeApp(\"appFromBinary\", FastedgeAppArgs.builder()\n            .status(\"enabled\")\n            .name(\"terraform-test1\")\n            .comment(\"Terraform test app 1\")\n            .binary(testBinary.fastedgeBinaryId())\n            .env(Map.of(\"foo\", \"bar\"))\n            .build());\n\n        var testTemplate = new FastedgeTemplate(\"testTemplate\", FastedgeTemplateArgs.builder()\n            .name(\"terraform_test_template\")\n            .binary(testBinary.fastedgeBinaryId())\n            .shortDescr(\"short description\")\n            .longDescr(\"long description\")\n            .params(            \n                FastedgeTemplateParamArgs.builder()\n                    .name(\"foo\")\n                    .type(\"string\")\n                    .mandatory(true)\n                    .descr(\"Parameter foo\")\n                    .build(),\n                FastedgeTemplateParamArgs.builder()\n                    .name(\"bar\")\n                    .type(\"number\")\n                    .descr(\"Parameter bar\")\n                    .build())\n            .build());\n\n        var appFromTemplate = new FastedgeApp(\"appFromTemplate\", FastedgeAppArgs.builder()\n            .status(\"enabled\")\n            .name(\"terraform-test2\")\n            .comment(\"Terraform test app 2\")\n            .template(testTemplate.fastedgeTemplateId())\n            .env(Map.ofEntries(\n                Map.entry(\"foo\", \"foo_value\"),\n                Map.entry(\"bar\", \"123\")\n            ))\n            .secrets(Map.of(\"baz\", testSecret.fastedgeSecretId()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  appSecretSlot0:\n    type: string\n    default: \"\"\n  appSecretSlot1:\n    type: string\n    default: \"\"\nresources:\n  testSecret:\n    type: gcore:FastedgeSecret\n    name: test_secret\n    properties:\n      name: terraform_test_secret\n      comment: My test secret\n      slots:\n        - id: 0\n          value: ${appSecretSlot0}\n        - id: 1\n          value: ${appSecretSlot1}\n  testBinary:\n    type: gcore:FastedgeBinary\n    name: test_binary\n    properties:\n      filename: test.wasm\n  appFromBinary:\n    type: gcore:FastedgeApp\n    name: app_from_binary\n    properties:\n      status: enabled\n      name: terraform-test1\n      comment: Terraform test app 1\n      binary: ${testBinary.fastedgeBinaryId}\n      env:\n        foo: bar\n  testTemplate:\n    type: gcore:FastedgeTemplate\n    name: test_template\n    properties:\n      name: terraform_test_template\n      binary: ${testBinary.fastedgeBinaryId}\n      shortDescr: short description\n      longDescr: long description\n      params:\n        - name: foo\n          type: string\n          mandatory: true\n          descr: Parameter foo\n        - name: bar\n          type: number\n          descr: Parameter bar\n  appFromTemplate:\n    type: gcore:FastedgeApp\n    name: app_from_template\n    properties:\n      status: enabled\n      name: terraform-test2\n      comment: Terraform test app 2\n      template: ${testTemplate.fastedgeTemplateId}\n      env:\n        foo: foo_value\n        bar: 123\n      secrets:\n        baz: ${testSecret.fastedgeSecretId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"binary":{"type":"number","description":"WebAssembly binary id.\n"},"comment":{"type":"string","description":"Application comment.\n"},"debug":{"type":"boolean","description":"Logging enabled.\n"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables.\n"},"fastedgeAppId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Application name.\n"},"rspHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"Response headers.\n"},"secrets":{"type":"object","additionalProperties":{"type":"number"},"description":"Secret variables.\n"},"status":{"type":"string","description":"Status code. Possible values are: enabled, disabled, suspended.\n"},"template":{"type":"number","description":"Application template id.\n"}},"type":"object","required":["binary","fastedgeAppId","name","status"],"inputProperties":{"binary":{"type":"number","description":"WebAssembly binary id.\n"},"comment":{"type":"string","description":"Application comment.\n"},"debug":{"type":"boolean","description":"Logging enabled.\n"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables.\n"},"fastedgeAppId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Application name.\n"},"rspHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"Response headers.\n"},"secrets":{"type":"object","additionalProperties":{"type":"number"},"description":"Secret variables.\n"},"status":{"type":"string","description":"Status code. Possible values are: enabled, disabled, suspended.\n"},"template":{"type":"number","description":"Application template id.\n"}},"requiredInputs":["status"],"stateInputs":{"description":"Input properties used for looking up and filtering FastedgeApp resources.\n","properties":{"binary":{"type":"number","description":"WebAssembly binary id.\n"},"comment":{"type":"string","description":"Application comment.\n"},"debug":{"type":"boolean","description":"Logging enabled.\n"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables.\n"},"fastedgeAppId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Application name.\n"},"rspHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"Response headers.\n"},"secrets":{"type":"object","additionalProperties":{"type":"number"},"description":"Secret variables.\n"},"status":{"type":"string","description":"Status code. Possible values are: enabled, disabled, suspended.\n"},"template":{"type":"number","description":"Application template id.\n"}},"type":"object"}},"gcore:index/fastedgeBinary:FastedgeBinary":{"description":"WebAssembly binary to use in 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 testBinary = new gcore.FastedgeBinary(\"test_binary\", {filename: \"test.wasm\"});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ntest_binary = gcore.FastedgeBinary(\"test_binary\", filename=\"test.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 testBinary = new Gcore.FastedgeBinary(\"test_binary\", new()\n    {\n        Filename = \"test.wasm\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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, \"test_binary\", \u0026gcore.FastedgeBinaryArgs{\n\t\t\tFilename: pulumi.String(\"test.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 testBinary = new FastedgeBinary(\"testBinary\", FastedgeBinaryArgs.builder()\n            .filename(\"test.wasm\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testBinary:\n    type: gcore:FastedgeBinary\n    name: test_binary\n    properties:\n      filename: test.wasm\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"checksum":{"type":"string","description":"Binary checksum.\n"},"fastedgeBinaryId":{"type":"string","description":"The ID of this resource.\n"},"filename":{"type":"string","description":"WebAssembly binary file to upload.\n"}},"type":"object","required":["checksum","fastedgeBinaryId","filename"],"inputProperties":{"fastedgeBinaryId":{"type":"string","description":"The ID of this resource.\n"},"filename":{"type":"string","description":"WebAssembly binary file to upload.\n"}},"requiredInputs":["filename"],"stateInputs":{"description":"Input properties used for looking up and filtering FastedgeBinary resources.\n","properties":{"checksum":{"type":"string","description":"Binary checksum.\n"},"fastedgeBinaryId":{"type":"string","description":"The ID of this resource.\n"},"filename":{"type":"string","description":"WebAssembly binary file to upload.\n"}},"type":"object"}},"gcore:index/fastedgeSecret:FastedgeSecret":{"description":"Represents FastEdge secret\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 config = new pulumi.Config();\n// Slot 0 secret value\nconst appSecretSlot0 = config.get(\"appSecretSlot0\") || \"\";\n// Slot 1 secret value\nconst appSecretSlot1 = config.get(\"appSecretSlot1\") || \"\";\nconst testSecret = new gcore.FastedgeSecret(\"test_secret\", {\n    name: \"terraform_test_secret\",\n    comment: \"My test secret\",\n    slots: [\n        {\n            id: 0,\n            value: appSecretSlot0,\n        },\n        {\n            id: 1,\n            value: appSecretSlot1,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nconfig = pulumi.Config()\n# Slot 0 secret value\napp_secret_slot0 = config.get(\"appSecretSlot0\")\nif app_secret_slot0 is None:\n    app_secret_slot0 = \"\"\n# Slot 1 secret value\napp_secret_slot1 = config.get(\"appSecretSlot1\")\nif app_secret_slot1 is None:\n    app_secret_slot1 = \"\"\ntest_secret = gcore.FastedgeSecret(\"test_secret\",\n    name=\"terraform_test_secret\",\n    comment=\"My test secret\",\n    slots=[\n        {\n            \"id\": 0,\n            \"value\": app_secret_slot0,\n        },\n        {\n            \"id\": 1,\n            \"value\": app_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    var config = new Config();\n    // Slot 0 secret value\n    var appSecretSlot0 = config.Get(\"appSecretSlot0\") ?? \"\";\n    // Slot 1 secret value\n    var appSecretSlot1 = config.Get(\"appSecretSlot1\") ?? \"\";\n    var testSecret = new Gcore.FastedgeSecret(\"test_secret\", new()\n    {\n        Name = \"terraform_test_secret\",\n        Comment = \"My test secret\",\n        Slots = new[]\n        {\n            new Gcore.Inputs.FastedgeSecretSlotArgs\n            {\n                Id = 0,\n                Value = appSecretSlot0,\n            },\n            new Gcore.Inputs.FastedgeSecretSlotArgs\n            {\n                Id = 1,\n                Value = appSecretSlot1,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\t// Slot 0 secret value\n\t\tappSecretSlot0 := \"\"\n\t\tif param := cfg.Get(\"appSecretSlot0\"); param != \"\" {\n\t\t\tappSecretSlot0 = param\n\t\t}\n\t\t// Slot 1 secret value\n\t\tappSecretSlot1 := \"\"\n\t\tif param := cfg.Get(\"appSecretSlot1\"); param != \"\" {\n\t\t\tappSecretSlot1 = param\n\t\t}\n\t\t_, err := gcore.NewFastedgeSecret(ctx, \"test_secret\", \u0026gcore.FastedgeSecretArgs{\n\t\t\tName:    pulumi.String(\"terraform_test_secret\"),\n\t\t\tComment: pulumi.String(\"My test secret\"),\n\t\t\tSlots: gcore.FastedgeSecretSlotArray{\n\t\t\t\t\u0026gcore.FastedgeSecretSlotArgs{\n\t\t\t\t\tId:    pulumi.Float64(0),\n\t\t\t\t\tValue: pulumi.String(appSecretSlot0),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.FastedgeSecretSlotArgs{\n\t\t\t\t\tId:    pulumi.Float64(1),\n\t\t\t\t\tValue: pulumi.String(appSecretSlot1),\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.FastedgeSecretSlotArgs;\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 appSecretSlot0 = config.get(\"appSecretSlot0\").orElse(\"\");\n        final var appSecretSlot1 = config.get(\"appSecretSlot1\").orElse(\"\");\n        var testSecret = new FastedgeSecret(\"testSecret\", FastedgeSecretArgs.builder()\n            .name(\"terraform_test_secret\")\n            .comment(\"My test secret\")\n            .slots(            \n                FastedgeSecretSlotArgs.builder()\n                    .id(0.0)\n                    .value(appSecretSlot0)\n                    .build(),\n                FastedgeSecretSlotArgs.builder()\n                    .id(1.0)\n                    .value(appSecretSlot1)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  appSecretSlot0:\n    type: string\n    default: \"\"\n  appSecretSlot1:\n    type: string\n    default: \"\"\nresources:\n  testSecret:\n    type: gcore:FastedgeSecret\n    name: test_secret\n    properties:\n      name: terraform_test_secret\n      comment: My test secret\n      slots:\n        - id: 0\n          value: ${appSecretSlot0}\n        - id: 1\n          value: ${appSecretSlot1}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"comment":{"type":"string","description":"Secret description.\n"},"fastedgeSecretId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Secret name.\n"},"slots":{"type":"array","items":{"$ref":"#/types/gcore:index%2FFastedgeSecretSlot:FastedgeSecretSlot"},"description":"Secret slot.\n"}},"type":"object","required":["fastedgeSecretId","name"],"inputProperties":{"comment":{"type":"string","description":"Secret description.\n"},"fastedgeSecretId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Secret name.\n"},"slots":{"type":"array","items":{"$ref":"#/types/gcore:index%2FFastedgeSecretSlot:FastedgeSecretSlot"},"description":"Secret slot.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering FastedgeSecret resources.\n","properties":{"comment":{"type":"string","description":"Secret description.\n"},"fastedgeSecretId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Secret name.\n"},"slots":{"type":"array","items":{"$ref":"#/types/gcore:index%2FFastedgeSecretSlot:FastedgeSecretSlot"},"description":"Secret slot.\n"}},"type":"object"}},"gcore:index/fastedgeTemplate:FastedgeTemplate":{"description":"FastEdge application template.\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 testBinary = new gcore.FastedgeBinary(\"test_binary\", {filename: \"test.wasm\"});\nconst testTemplate = new gcore.FastedgeTemplate(\"test_template\", {\n    name: \"terraform_test_template\",\n    binary: testBinary.fastedgeBinaryId,\n    shortDescr: \"short description\",\n    longDescr: \"long description\",\n    params: [\n        {\n            name: \"foo\",\n            type: \"string\",\n            mandatory: true,\n            descr: \"Parameter foo\",\n        },\n        {\n            name: \"bar\",\n            type: \"number\",\n            descr: \"Parameter bar\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ntest_binary = gcore.FastedgeBinary(\"test_binary\", filename=\"test.wasm\")\ntest_template = gcore.FastedgeTemplate(\"test_template\",\n    name=\"terraform_test_template\",\n    binary=test_binary.fastedge_binary_id,\n    short_descr=\"short description\",\n    long_descr=\"long description\",\n    params=[\n        {\n            \"name\": \"foo\",\n            \"type\": \"string\",\n            \"mandatory\": True,\n            \"descr\": \"Parameter foo\",\n        },\n        {\n            \"name\": \"bar\",\n            \"type\": \"number\",\n            \"descr\": \"Parameter bar\",\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 testBinary = new Gcore.FastedgeBinary(\"test_binary\", new()\n    {\n        Filename = \"test.wasm\",\n    });\n\n    var testTemplate = new Gcore.FastedgeTemplate(\"test_template\", new()\n    {\n        Name = \"terraform_test_template\",\n        Binary = testBinary.FastedgeBinaryId,\n        ShortDescr = \"short description\",\n        LongDescr = \"long description\",\n        Params = new[]\n        {\n            new Gcore.Inputs.FastedgeTemplateParamArgs\n            {\n                Name = \"foo\",\n                Type = \"string\",\n                Mandatory = true,\n                Descr = \"Parameter foo\",\n            },\n            new Gcore.Inputs.FastedgeTemplateParamArgs\n            {\n                Name = \"bar\",\n                Type = \"number\",\n                Descr = \"Parameter bar\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\ttestBinary, err := gcore.NewFastedgeBinary(ctx, \"test_binary\", \u0026gcore.FastedgeBinaryArgs{\n\t\t\tFilename: pulumi.String(\"test.wasm\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewFastedgeTemplate(ctx, \"test_template\", \u0026gcore.FastedgeTemplateArgs{\n\t\t\tName:       pulumi.String(\"terraform_test_template\"),\n\t\t\tBinary:     testBinary.FastedgeBinaryId,\n\t\t\tShortDescr: pulumi.String(\"short description\"),\n\t\t\tLongDescr:  pulumi.String(\"long description\"),\n\t\t\tParams: gcore.FastedgeTemplateParamArray{\n\t\t\t\t\u0026gcore.FastedgeTemplateParamArgs{\n\t\t\t\t\tName:      pulumi.String(\"foo\"),\n\t\t\t\t\tType:      pulumi.String(\"string\"),\n\t\t\t\t\tMandatory: pulumi.Bool(true),\n\t\t\t\t\tDescr:     pulumi.String(\"Parameter foo\"),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.FastedgeTemplateParamArgs{\n\t\t\t\t\tName:  pulumi.String(\"bar\"),\n\t\t\t\t\tType:  pulumi.String(\"number\"),\n\t\t\t\t\tDescr: pulumi.String(\"Parameter bar\"),\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.FastedgeBinary;\nimport com.pulumi.gcore.FastedgeBinaryArgs;\nimport com.pulumi.gcore.FastedgeTemplate;\nimport com.pulumi.gcore.FastedgeTemplateArgs;\nimport com.pulumi.gcore.inputs.FastedgeTemplateParamArgs;\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 testBinary = new FastedgeBinary(\"testBinary\", FastedgeBinaryArgs.builder()\n            .filename(\"test.wasm\")\n            .build());\n\n        var testTemplate = new FastedgeTemplate(\"testTemplate\", FastedgeTemplateArgs.builder()\n            .name(\"terraform_test_template\")\n            .binary(testBinary.fastedgeBinaryId())\n            .shortDescr(\"short description\")\n            .longDescr(\"long description\")\n            .params(            \n                FastedgeTemplateParamArgs.builder()\n                    .name(\"foo\")\n                    .type(\"string\")\n                    .mandatory(true)\n                    .descr(\"Parameter foo\")\n                    .build(),\n                FastedgeTemplateParamArgs.builder()\n                    .name(\"bar\")\n                    .type(\"number\")\n                    .descr(\"Parameter bar\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testBinary:\n    type: gcore:FastedgeBinary\n    name: test_binary\n    properties:\n      filename: test.wasm\n  testTemplate:\n    type: gcore:FastedgeTemplate\n    name: test_template\n    properties:\n      name: terraform_test_template\n      binary: ${testBinary.fastedgeBinaryId}\n      shortDescr: short description\n      longDescr: long description\n      params:\n        - name: foo\n          type: string\n          mandatory: true\n          descr: Parameter foo\n        - name: bar\n          type: number\n          descr: Parameter bar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"binary":{"type":"number","description":"WebAssembly binary id.\n"},"fastedgeTemplateId":{"type":"string","description":"The ID of this resource.\n"},"longDescr":{"type":"string","description":"Instruction how to configure the template.\n"},"name":{"type":"string","description":"Template name.\n"},"params":{"type":"array","items":{"$ref":"#/types/gcore:index%2FFastedgeTemplateParam:FastedgeTemplateParam"},"description":"Template parameter.\n"},"shortDescr":{"type":"string","description":"Short description.\n"}},"type":"object","required":["binary","fastedgeTemplateId","name"],"inputProperties":{"binary":{"type":"number","description":"WebAssembly binary id.\n"},"fastedgeTemplateId":{"type":"string","description":"The ID of this resource.\n"},"longDescr":{"type":"string","description":"Instruction how to configure the template.\n"},"name":{"type":"string","description":"Template name.\n"},"params":{"type":"array","items":{"$ref":"#/types/gcore:index%2FFastedgeTemplateParam:FastedgeTemplateParam"},"description":"Template parameter.\n"},"shortDescr":{"type":"string","description":"Short description.\n"}},"requiredInputs":["binary"],"stateInputs":{"description":"Input properties used for looking up and filtering FastedgeTemplate resources.\n","properties":{"binary":{"type":"number","description":"WebAssembly binary id.\n"},"fastedgeTemplateId":{"type":"string","description":"The ID of this resource.\n"},"longDescr":{"type":"string","description":"Instruction how to configure the template.\n"},"name":{"type":"string","description":"Template name.\n"},"params":{"type":"array","items":{"$ref":"#/types/gcore:index%2FFastedgeTemplateParam:FastedgeTemplateParam"},"description":"Template parameter.\n"},"shortDescr":{"type":"string","description":"Short description.\n"}},"type":"object"}},"gcore:index/fileShare:FileShare":{"description":"Represents a file share (NFS) in Gcore Cloud.\n\n## Example Usage\n\n### VAST File Share Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Sines-2\",\n});\nconst fileShareVast = new gcore.FileShare(\"file_share_vast\", {\n    name: \"tf-file-share-vast\",\n    size: 10,\n    projectId: project.then(project =\u003e project.id),\n    regionId: region.then(region =\u003e region.id),\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\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Sines-2\")\nfile_share_vast = gcore.FileShare(\"file_share_vast\",\n    name=\"tf-file-share-vast\",\n    size=10,\n    project_id=project.id,\n    region_id=region.id,\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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Sines-2\",\n    });\n\n    var fileShareVast = new Gcore.FileShare(\"file_share_vast\", new()\n    {\n        Name = \"tf-file-share-vast\",\n        Size = 10,\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n        TypeName = \"vast\",\n        Protocol = \"NFS\",\n        ShareSettings = new Gcore.Inputs.FileShareShareSettingsArgs\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/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\tproject, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tregion, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Sines-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewFileShare(ctx, \"file_share_vast\", \u0026gcore.FileShareArgs{\n\t\t\tName:      pulumi.String(\"tf-file-share-vast\"),\n\t\t\tSize:      pulumi.Float64(10),\n\t\t\tProjectId: pulumi.String(project.Id),\n\t\t\tRegionId:  pulumi.String(region.Id),\n\t\t\tTypeName:  pulumi.String(\"vast\"),\n\t\t\tProtocol:  pulumi.String(\"NFS\"),\n\t\t\tShareSettings: \u0026gcore.FileShareShareSettingsArgs{\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.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.FileShare;\nimport com.pulumi.gcore.FileShareArgs;\nimport com.pulumi.gcore.inputs.FileShareShareSettingsArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Sines-2\")\n            .build());\n\n        var fileShareVast = new FileShare(\"fileShareVast\", FileShareArgs.builder()\n            .name(\"tf-file-share-vast\")\n            .size(10.0)\n            .projectId(project.id())\n            .regionId(region.id())\n            .typeName(\"vast\")\n            .protocol(\"NFS\")\n            .shareSettings(FileShareShareSettingsArgs.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:FileShare\n    name: file_share_vast\n    properties:\n      name: tf-file-share-vast\n      size: 10\n      projectId: ${project.id}\n      regionId: ${region.id}\n      typeName: vast\n      protocol: NFS\n      shareSettings:\n        allowedCharacters: LCD\n        pathLength: LCD\n        rootSquash: true\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Sines-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Standard File Share Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\nconst fileShareStandard = new gcore.FileShare(\"file_share_standard\", {\n    name: \"tf-file-share-standard\",\n    size: 20,\n    projectId: project.then(project =\u003e project.id),\n    regionId: region.then(region =\u003e region.id),\n    typeName: \"standard\",\n    protocol: \"NFS\",\n    network: {\n        networkId: \"378ba73d-16c5-4a4e-a755-d9406dd73e63\",\n    },\n    accesses: [{\n        ipAddress: \"10.95.129.0/24\",\n        accessMode: \"rw\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\nfile_share_standard = gcore.FileShare(\"file_share_standard\",\n    name=\"tf-file-share-standard\",\n    size=20,\n    project_id=project.id,\n    region_id=region.id,\n    type_name=\"standard\",\n    protocol=\"NFS\",\n    network={\n        \"network_id\": \"378ba73d-16c5-4a4e-a755-d9406dd73e63\",\n    },\n    accesses=[{\n        \"ip_address\": \"10.95.129.0/24\",\n        \"access_mode\": \"rw\",\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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n    var fileShareStandard = new Gcore.FileShare(\"file_share_standard\", new()\n    {\n        Name = \"tf-file-share-standard\",\n        Size = 20,\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n        TypeName = \"standard\",\n        Protocol = \"NFS\",\n        Network = new Gcore.Inputs.FileShareNetworkArgs\n        {\n            NetworkId = \"378ba73d-16c5-4a4e-a755-d9406dd73e63\",\n        },\n        Accesses = new[]\n        {\n            new Gcore.Inputs.FileShareAccessArgs\n            {\n                IpAddress = \"10.95.129.0/24\",\n                AccessMode = \"rw\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tproject, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tregion, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewFileShare(ctx, \"file_share_standard\", \u0026gcore.FileShareArgs{\n\t\t\tName:      pulumi.String(\"tf-file-share-standard\"),\n\t\t\tSize:      pulumi.Float64(20),\n\t\t\tProjectId: pulumi.String(project.Id),\n\t\t\tRegionId:  pulumi.String(region.Id),\n\t\t\tTypeName:  pulumi.String(\"standard\"),\n\t\t\tProtocol:  pulumi.String(\"NFS\"),\n\t\t\tNetwork: \u0026gcore.FileShareNetworkArgs{\n\t\t\t\tNetworkId: pulumi.String(\"378ba73d-16c5-4a4e-a755-d9406dd73e63\"),\n\t\t\t},\n\t\t\tAccesses: gcore.FileShareAccessArray{\n\t\t\t\t\u0026gcore.FileShareAccessArgs{\n\t\t\t\t\tIpAddress:  pulumi.String(\"10.95.129.0/24\"),\n\t\t\t\t\tAccessMode: pulumi.String(\"rw\"),\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.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.FileShare;\nimport com.pulumi.gcore.FileShareArgs;\nimport com.pulumi.gcore.inputs.FileShareNetworkArgs;\nimport com.pulumi.gcore.inputs.FileShareAccessArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n        var fileShareStandard = new FileShare(\"fileShareStandard\", FileShareArgs.builder()\n            .name(\"tf-file-share-standard\")\n            .size(20.0)\n            .projectId(project.id())\n            .regionId(region.id())\n            .typeName(\"standard\")\n            .protocol(\"NFS\")\n            .network(FileShareNetworkArgs.builder()\n                .networkId(\"378ba73d-16c5-4a4e-a755-d9406dd73e63\")\n                .build())\n            .accesses(FileShareAccessArgs.builder()\n                .ipAddress(\"10.95.129.0/24\")\n                .accessMode(\"rw\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  fileShareStandard:\n    type: gcore:FileShare\n    name: file_share_standard\n    properties:\n      name: tf-file-share-standard\n      size: 20\n      projectId: ${project.id}\n      regionId: ${region.id}\n      typeName: standard\n      protocol: NFS\n      network:\n        networkId: 378ba73d-16c5-4a4e-a755-d9406dd73e63\n      accesses:\n        - ipAddress: 10.95.129.0/24\n          accessMode: rw\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"accesses":{"type":"array","items":{"$ref":"#/types/gcore:index%2FFileShareAccess:FileShareAccess"}},"connectionPoint":{"type":"string","description":"The connection point of the file share.\n"},"createdAt":{"type":"string","description":"The creation time of the file share in ISO 8601 format.\n"},"creatorTaskId":{"type":"string","description":"The ID of the task that created the file share.\n"},"fileShareId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the file share. It must be unique within the project and region.\n"},"network":{"$ref":"#/types/gcore:index%2FFileShareNetwork:FileShareNetwork","description":"Network configuration for the file share. It must include a network ID and optionally a subnet ID. (Only required for type_name: 'standard')\n"},"networkName":{"type":"string","description":"The name of the network associated with the file share.\n"},"projectId":{"type":"number","description":"Project ID, only one of project*id or project*name should be set\n"},"projectName":{"type":"string","description":"Project name, only one of project*id or project*name should be set\n"},"protocol":{"type":"string","description":"The protocol used by the file share. Currently, only 'NFS' is supported.\n"},"regionId":{"type":"number","description":"Region ID, only one of region*id or region*name should be set\n"},"regionName":{"type":"string","description":"Region name, only one of region*id or region*name should be set\n"},"shareNetworkName":{"type":"string","description":"The name of the share network associated with the file share. This is only applicable for 'standard'.\n"},"shareSettings":{"$ref":"#/types/gcore:index%2FFileShareShareSettings:FileShareShareSettings","description":"Share settings for the file share.\n"},"size":{"type":"number","description":"The size of the file share in GB. It must be a positive integer.\n"},"status":{"type":"string","description":"The status of the file share.\n"},"subnetName":{"type":"string","description":"The name of the subnet associated with the file share\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to associate with the file share. Tags are key-value pairs.\n"},"typeName":{"type":"string","description":"The type of the file share. Must be one of 'standard' or 'vast'.\n"}},"type":"object","required":["connectionPoint","createdAt","creatorTaskId","fileShareId","name","networkName","protocol","shareNetworkName","size","status","subnetName","typeName"],"inputProperties":{"accesses":{"type":"array","items":{"$ref":"#/types/gcore:index%2FFileShareAccess:FileShareAccess"}},"fileShareId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the file share. It must be unique within the project and region.\n"},"network":{"$ref":"#/types/gcore:index%2FFileShareNetwork:FileShareNetwork","description":"Network configuration for the file share. It must include a network ID and optionally a subnet ID. (Only required for type_name: 'standard')\n"},"projectId":{"type":"number","description":"Project ID, only one of project*id or project*name should be set\n"},"projectName":{"type":"string","description":"Project name, only one of project*id or project*name should be set\n"},"protocol":{"type":"string","description":"The protocol used by the file share. Currently, only 'NFS' is supported.\n"},"regionId":{"type":"number","description":"Region ID, only one of region*id or region*name should be set\n"},"regionName":{"type":"string","description":"Region name, only one of region*id or region*name should be set\n"},"shareSettings":{"$ref":"#/types/gcore:index%2FFileShareShareSettings:FileShareShareSettings","description":"Share settings for the file share.\n"},"size":{"type":"number","description":"The size of the file share in GB. It must be a positive integer.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to associate with the file share. Tags are key-value pairs.\n"},"typeName":{"type":"string","description":"The type of the file share. Must be one of 'standard' or 'vast'.\n"}},"requiredInputs":["protocol","size","typeName"],"stateInputs":{"description":"Input properties used for looking up and filtering FileShare resources.\n","properties":{"accesses":{"type":"array","items":{"$ref":"#/types/gcore:index%2FFileShareAccess:FileShareAccess"}},"connectionPoint":{"type":"string","description":"The connection point of the file share.\n"},"createdAt":{"type":"string","description":"The creation time of the file share in ISO 8601 format.\n"},"creatorTaskId":{"type":"string","description":"The ID of the task that created the file share.\n"},"fileShareId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the file share. It must be unique within the project and region.\n"},"network":{"$ref":"#/types/gcore:index%2FFileShareNetwork:FileShareNetwork","description":"Network configuration for the file share. It must include a network ID and optionally a subnet ID. (Only required for type_name: 'standard')\n"},"networkName":{"type":"string","description":"The name of the network associated with the file share.\n"},"projectId":{"type":"number","description":"Project ID, only one of project*id or project*name should be set\n"},"projectName":{"type":"string","description":"Project name, only one of project*id or project*name should be set\n"},"protocol":{"type":"string","description":"The protocol used by the file share. Currently, only 'NFS' is supported.\n"},"regionId":{"type":"number","description":"Region ID, only one of region*id or region*name should be set\n"},"regionName":{"type":"string","description":"Region name, only one of region*id or region*name should be set\n"},"shareNetworkName":{"type":"string","description":"The name of the share network associated with the file share. This is only applicable for 'standard'.\n"},"shareSettings":{"$ref":"#/types/gcore:index%2FFileShareShareSettings:FileShareShareSettings","description":"Share settings for the file share.\n"},"size":{"type":"number","description":"The size of the file share in GB. It must be a positive integer.\n"},"status":{"type":"string","description":"The status of the file share.\n"},"subnetName":{"type":"string","description":"The name of the subnet associated with the file share\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to associate with the file share. Tags are key-value pairs.\n"},"typeName":{"type":"string","description":"The type of the file share. Must be one of 'standard' or 'vast'.\n"}},"type":"object"}},"gcore:index/floatingip:Floatingip":{"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 floatingIp = new gcore.Floatingip(\"floating_ip\", {\n    projectId: 1,\n    regionId: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nfloating_ip = gcore.Floatingip(\"floating_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    var floatingIp = new Gcore.Floatingip(\"floating_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/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.NewFloatingip(ctx, \"floating_ip\", \u0026gcore.FloatingipArgs{\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.Floatingip;\nimport com.pulumi.gcore.FloatingipArgs;\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 floatingIp = new Floatingip(\"floatingIp\", FloatingipArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  floatingIp:\n    type: gcore:Floatingip\n    name: floating_ip\n    properties:\n      projectId: 1\n      regionId: 1 # fixed_ip_address = \"192.168.10.39\" // instance`s interface ip\n      #   //  port_id = \"5c992875-f653-4b7b-af5b-1dc3019e5ffa\" //instance`s interface port_id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003cfloatingip_id\u003e format\n\n```sh\n$ pulumi import gcore:index/floatingip:Floatingip fip1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"createdAt":{"type":"string"},"fixedIpAddress":{"type":"string"},"floatingIpAddress":{"type":"string"},"floatingipId":{"type":"string","description":"The ID of this resource.\n"},"lastUpdated":{"type":"string"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"},"deprecationMessage":"Deprecated"},"metadataReadOnlies":{"type":"array","items":{"$ref":"#/types/gcore:index%2FFloatingipMetadataReadOnly:FloatingipMetadataReadOnly"}},"portId":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"routerId":{"type":"string"},"status":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to associate with the floating IP. Tags are key-value pairs.\n"},"updatedAt":{"type":"string"}},"type":"object","required":["createdAt","fixedIpAddress","floatingIpAddress","floatingipId","lastUpdated","metadataReadOnlies","portId","routerId","status","updatedAt"],"inputProperties":{"fixedIpAddress":{"type":"string"},"floatingipId":{"type":"string","description":"The ID of this resource.\n"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"},"deprecationMessage":"Deprecated"},"portId":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to associate with the floating IP. Tags are key-value pairs.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Floatingip resources.\n","properties":{"createdAt":{"type":"string"},"fixedIpAddress":{"type":"string"},"floatingIpAddress":{"type":"string"},"floatingipId":{"type":"string","description":"The ID of this resource.\n"},"lastUpdated":{"type":"string"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"},"deprecationMessage":"Deprecated"},"metadataReadOnlies":{"type":"array","items":{"$ref":"#/types/gcore:index%2FFloatingipMetadataReadOnly:FloatingipMetadataReadOnly"}},"portId":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"routerId":{"type":"string"},"status":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to associate with the floating IP. Tags are key-value pairs.\n"},"updatedAt":{"type":"string"}},"type":"object"}},"gcore:index/gpuBaremetalImage:GpuBaremetalImage":{"description":"Manages a baremetal GPU image\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 project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\nconst example = new gcore.GpuBaremetalImage(\"example\", {\n    projectId: project.then(project =\u003e project.id),\n    regionId: region.then(region =\u003e region.id),\n    name: \"my-cirros-image\",\n    url: \"http://mirror.noris.net/cirros/0.4.0/cirros-0.4.0-x86_64-disk.img\",\n    architecture: \"x86_64\",\n    osType: \"linux\",\n    sshKey: \"allow\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\nexample = gcore.GpuBaremetalImage(\"example\",\n    project_id=project.id,\n    region_id=region.id,\n    name=\"my-cirros-image\",\n    url=\"http://mirror.noris.net/cirros/0.4.0/cirros-0.4.0-x86_64-disk.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    var project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n    var example = new Gcore.GpuBaremetalImage(\"example\", new()\n    {\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n        Name = \"my-cirros-image\",\n        Url = \"http://mirror.noris.net/cirros/0.4.0/cirros-0.4.0-x86_64-disk.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/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\tproject, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tregion, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewGpuBaremetalImage(ctx, \"example\", \u0026gcore.GpuBaremetalImageArgs{\n\t\t\tProjectId:    pulumi.String(project.Id),\n\t\t\tRegionId:     pulumi.String(region.Id),\n\t\t\tName:         pulumi.String(\"my-cirros-image\"),\n\t\t\tUrl:          pulumi.String(\"http://mirror.noris.net/cirros/0.4.0/cirros-0.4.0-x86_64-disk.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.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.GpuBaremetalImage;\nimport com.pulumi.gcore.GpuBaremetalImageArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n        var example = new GpuBaremetalImage(\"example\", GpuBaremetalImageArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"my-cirros-image\")\n            .url(\"http://mirror.noris.net/cirros/0.4.0/cirros-0.4.0-x86_64-disk.img\")\n            .architecture(\"x86_64\")\n            .osType(\"linux\")\n            .sshKey(\"allow\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: gcore:GpuBaremetalImage\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: my-cirros-image\n      url: http://mirror.noris.net/cirros/0.4.0/cirros-0.4.0-x86_64-disk.img\n      architecture: x86_64\n      osType: linux\n      sshKey: allow\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"architecture":{"type":"string","description":"Image architecture type: aarch64, x86_64\n"},"cowFormat":{"type":"boolean","description":"When True, image cannot be deleted unless all volumes, created from it, are deleted\n"},"gpuBaremetalImageId":{"type":"string","description":"The ID of this resource.\n"},"hwFirmwareType":{"type":"string","description":"Specifies the type of firmware with which to boot the guest\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Create one or more metadata items for a cluster\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\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"},"projectName":{"type":"string","description":"Project name\n"},"regionId":{"type":"number","description":"Region ID\n"},"regionName":{"type":"string","description":"Region name\n"},"sshKey":{"type":"string","description":"Permission to use a ssh key in instances\n"},"url":{"type":"string","description":"Image URL\n"}},"type":"object","required":["gpuBaremetalImageId","metadata","name","url"],"inputProperties":{"architecture":{"type":"string","description":"Image architecture type: aarch64, x86_64\n"},"cowFormat":{"type":"boolean","description":"When True, image cannot be deleted unless all volumes, created from it, are deleted\n"},"gpuBaremetalImageId":{"type":"string","description":"The ID of this resource.\n"},"hwFirmwareType":{"type":"string","description":"Specifies the type of firmware with which to boot the guest\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Create one or more metadata items for a cluster\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\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"},"projectName":{"type":"string","description":"Project name\n"},"regionId":{"type":"number","description":"Region ID\n"},"regionName":{"type":"string","description":"Region name\n"},"sshKey":{"type":"string","description":"Permission to use a ssh key in instances\n"},"url":{"type":"string","description":"Image URL\n"}},"requiredInputs":["url"],"stateInputs":{"description":"Input properties used for looking up and filtering GpuBaremetalImage resources.\n","properties":{"architecture":{"type":"string","description":"Image architecture type: aarch64, x86_64\n"},"cowFormat":{"type":"boolean","description":"When True, image cannot be deleted unless all volumes, created from it, are deleted\n"},"gpuBaremetalImageId":{"type":"string","description":"The ID of this resource.\n"},"hwFirmwareType":{"type":"string","description":"Specifies the type of firmware with which to boot the guest\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Create one or more metadata items for a cluster\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\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"},"projectName":{"type":"string","description":"Project name\n"},"regionId":{"type":"number","description":"Region ID\n"},"regionName":{"type":"string","description":"Region name\n"},"sshKey":{"type":"string","description":"Permission to use a ssh key in instances\n"},"url":{"type":"string","description":"Image URL\n"}},"type":"object"}},"gcore:index/gpuVirtualCluster:GpuVirtualCluster":{"description":"Manages a virtual GPU cluster\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 project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\nconst example = new gcore.GpuVirtualCluster(\"example\", {\n    name: \"example-gpu-cluster\",\n    flavor: \"g3-ai-192-1536-12000-l40s-48-8\",\n    serversCount: 2,\n    projectId: project.then(project =\u003e project.id),\n    regionId: region.then(region =\u003e region.id),\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        securityGroups: [],\n        credentials: {\n            sshKeyName: \"my-ssh-key\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\nexample = gcore.GpuVirtualCluster(\"example\",\n    name=\"example-gpu-cluster\",\n    flavor=\"g3-ai-192-1536-12000-l40s-48-8\",\n    servers_count=2,\n    project_id=project.id,\n    region_id=region.id,\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        \"security_groups\": [],\n        \"credentials\": {\n            \"ssh_key_name\": \"my-ssh-key\",\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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n    var example = new Gcore.GpuVirtualCluster(\"example\", new()\n    {\n        Name = \"example-gpu-cluster\",\n        Flavor = \"g3-ai-192-1536-12000-l40s-48-8\",\n        ServersCount = 2,\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ServersSettings = new Gcore.Inputs.GpuVirtualClusterServersSettingsArgs\n        {\n            Interfaces = new[]\n            {\n                new Gcore.Inputs.GpuVirtualClusterServersSettingsInterfaceArgs\n                {\n                    Name = \"pub_net\",\n                    Type = \"external\",\n                    IpFamily = \"ipv4\",\n                },\n            },\n            Volumes = new[]\n            {\n                new Gcore.Inputs.GpuVirtualClusterServersSettingsVolumeArgs\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            SecurityGroups = new() { },\n            Credentials = new Gcore.Inputs.GpuVirtualClusterServersSettingsCredentialsArgs\n            {\n                SshKeyName = \"my-ssh-key\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tproject, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tregion, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewGpuVirtualCluster(ctx, \"example\", \u0026gcore.GpuVirtualClusterArgs{\n\t\t\tName:         pulumi.String(\"example-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\tProjectId:    pulumi.String(project.Id),\n\t\t\tRegionId:     pulumi.String(region.Id),\n\t\t\tServersSettings: \u0026gcore.GpuVirtualClusterServersSettingsArgs{\n\t\t\t\tInterfaces: gcore.GpuVirtualClusterServersSettingsInterfaceArray{\n\t\t\t\t\t\u0026gcore.GpuVirtualClusterServersSettingsInterfaceArgs{\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.GpuVirtualClusterServersSettingsVolumeArray{\n\t\t\t\t\t\u0026gcore.GpuVirtualClusterServersSettingsVolumeArgs{\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\tSecurityGroups: pulumi.StringArray{},\n\t\t\t\tCredentials: \u0026gcore.GpuVirtualClusterServersSettingsCredentialsArgs{\n\t\t\t\t\tSshKeyName: pulumi.String(\"my-ssh-key\"),\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.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.GpuVirtualCluster;\nimport com.pulumi.gcore.GpuVirtualClusterArgs;\nimport com.pulumi.gcore.inputs.GpuVirtualClusterServersSettingsArgs;\nimport com.pulumi.gcore.inputs.GpuVirtualClusterServersSettingsCredentialsArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n        var example = new GpuVirtualCluster(\"example\", GpuVirtualClusterArgs.builder()\n            .name(\"example-gpu-cluster\")\n            .flavor(\"g3-ai-192-1536-12000-l40s-48-8\")\n            .serversCount(2.0)\n            .projectId(project.id())\n            .regionId(region.id())\n            .serversSettings(GpuVirtualClusterServersSettingsArgs.builder()\n                .interfaces(GpuVirtualClusterServersSettingsInterfaceArgs.builder()\n                    .name(\"pub_net\")\n                    .type(\"external\")\n                    .ipFamily(\"ipv4\")\n                    .build())\n                .volumes(GpuVirtualClusterServersSettingsVolumeArgs.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                .securityGroups()\n                .credentials(GpuVirtualClusterServersSettingsCredentialsArgs.builder()\n                    .sshKeyName(\"my-ssh-key\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: gcore:GpuVirtualCluster\n    properties:\n      name: example-gpu-cluster\n      flavor: g3-ai-192-1536-12000-l40s-48-8\n      serversCount: 2\n      projectId: ${project.id}\n      regionId: ${region.id}\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        securityGroups: []\n        credentials:\n          sshKeyName: my-ssh-key\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"flavor":{"type":"string","description":"Flavor name for the GPU cluster\n"},"gpuVirtualClusterId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Name of the GPU cluster\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"serversCount":{"type":"number","description":"Number of servers in the GPU cluster\n"},"serversSettings":{"$ref":"#/types/gcore:index%2FGpuVirtualClusterServersSettings:GpuVirtualClusterServersSettings","description":"Settings for the GPU cluster servers (immutable, changes force resource recreation)\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to associate with the GPU cluster\n"}},"type":"object","required":["flavor","gpuVirtualClusterId","name","serversCount","serversSettings"],"inputProperties":{"flavor":{"type":"string","description":"Flavor name for the GPU cluster\n"},"gpuVirtualClusterId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Name of the GPU cluster\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"serversCount":{"type":"number","description":"Number of servers in the GPU cluster\n"},"serversSettings":{"$ref":"#/types/gcore:index%2FGpuVirtualClusterServersSettings:GpuVirtualClusterServersSettings","description":"Settings for the GPU cluster servers (immutable, changes force resource recreation)\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to associate with the GPU cluster\n"}},"requiredInputs":["flavor","serversCount","serversSettings"],"stateInputs":{"description":"Input properties used for looking up and filtering GpuVirtualCluster resources.\n","properties":{"flavor":{"type":"string","description":"Flavor name for the GPU cluster\n"},"gpuVirtualClusterId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Name of the GPU cluster\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"serversCount":{"type":"number","description":"Number of servers in the GPU cluster\n"},"serversSettings":{"$ref":"#/types/gcore:index%2FGpuVirtualClusterServersSettings:GpuVirtualClusterServersSettings","description":"Settings for the GPU cluster servers (immutable, changes force resource recreation)\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to associate with the GPU cluster\n"}},"type":"object"}},"gcore:index/gpuVirtualImage:GpuVirtualImage":{"description":"Manages a virtual GPU image\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 project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\nconst example = new gcore.GpuVirtualImage(\"example\", {\n    projectId: project.then(project =\u003e project.id),\n    regionId: region.then(region =\u003e region.id),\n    name: \"my-cirros-image\",\n    url: \"http://mirror.noris.net/cirros/0.4.0/cirros-0.4.0-x86_64-disk.img\",\n    architecture: \"x86_64\",\n    osType: \"linux\",\n    sshKey: \"allow\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\nexample = gcore.GpuVirtualImage(\"example\",\n    project_id=project.id,\n    region_id=region.id,\n    name=\"my-cirros-image\",\n    url=\"http://mirror.noris.net/cirros/0.4.0/cirros-0.4.0-x86_64-disk.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    var project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n    var example = new Gcore.GpuVirtualImage(\"example\", new()\n    {\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n        Name = \"my-cirros-image\",\n        Url = \"http://mirror.noris.net/cirros/0.4.0/cirros-0.4.0-x86_64-disk.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/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\tproject, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tregion, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewGpuVirtualImage(ctx, \"example\", \u0026gcore.GpuVirtualImageArgs{\n\t\t\tProjectId:    pulumi.String(project.Id),\n\t\t\tRegionId:     pulumi.String(region.Id),\n\t\t\tName:         pulumi.String(\"my-cirros-image\"),\n\t\t\tUrl:          pulumi.String(\"http://mirror.noris.net/cirros/0.4.0/cirros-0.4.0-x86_64-disk.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.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.GpuVirtualImage;\nimport com.pulumi.gcore.GpuVirtualImageArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n        var example = new GpuVirtualImage(\"example\", GpuVirtualImageArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"my-cirros-image\")\n            .url(\"http://mirror.noris.net/cirros/0.4.0/cirros-0.4.0-x86_64-disk.img\")\n            .architecture(\"x86_64\")\n            .osType(\"linux\")\n            .sshKey(\"allow\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: gcore:GpuVirtualImage\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: my-cirros-image\n      url: http://mirror.noris.net/cirros/0.4.0/cirros-0.4.0-x86_64-disk.img\n      architecture: x86_64\n      osType: linux\n      sshKey: allow\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"architecture":{"type":"string","description":"Image architecture type: aarch64, x86_64\n"},"cowFormat":{"type":"boolean","description":"When True, image cannot be deleted unless all volumes, created from it, are deleted\n"},"gpuVirtualImageId":{"type":"string","description":"The ID of this resource.\n"},"hwFirmwareType":{"type":"string","description":"Specifies the type of firmware with which to boot the guest\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Create one or more metadata items for a cluster\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\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"},"projectName":{"type":"string","description":"Project name\n"},"regionId":{"type":"number","description":"Region ID\n"},"regionName":{"type":"string","description":"Region name\n"},"sshKey":{"type":"string","description":"Permission to use a ssh key in instances\n"},"url":{"type":"string","description":"Image URL\n"}},"type":"object","required":["gpuVirtualImageId","metadata","name","url"],"inputProperties":{"architecture":{"type":"string","description":"Image architecture type: aarch64, x86_64\n"},"cowFormat":{"type":"boolean","description":"When True, image cannot be deleted unless all volumes, created from it, are deleted\n"},"gpuVirtualImageId":{"type":"string","description":"The ID of this resource.\n"},"hwFirmwareType":{"type":"string","description":"Specifies the type of firmware with which to boot the guest\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Create one or more metadata items for a cluster\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\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"},"projectName":{"type":"string","description":"Project name\n"},"regionId":{"type":"number","description":"Region ID\n"},"regionName":{"type":"string","description":"Region name\n"},"sshKey":{"type":"string","description":"Permission to use a ssh key in instances\n"},"url":{"type":"string","description":"Image URL\n"}},"requiredInputs":["url"],"stateInputs":{"description":"Input properties used for looking up and filtering GpuVirtualImage resources.\n","properties":{"architecture":{"type":"string","description":"Image architecture type: aarch64, x86_64\n"},"cowFormat":{"type":"boolean","description":"When True, image cannot be deleted unless all volumes, created from it, are deleted\n"},"gpuVirtualImageId":{"type":"string","description":"The ID of this resource.\n"},"hwFirmwareType":{"type":"string","description":"Specifies the type of firmware with which to boot the guest\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Create one or more metadata items for a cluster\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\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"},"projectName":{"type":"string","description":"Project name\n"},"regionId":{"type":"number","description":"Region ID\n"},"regionName":{"type":"string","description":"Region name\n"},"sshKey":{"type":"string","description":"Permission to use a ssh key in instances\n"},"url":{"type":"string","description":"Image URL\n"}},"type":"object"}},"gcore:index/inferenceDeployment:InferenceDeployment":{"description":"Represent inference deployment\n\n## 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\nconst project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Basic example\n\n### Creating inference deployment\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst inf = new gcore.InferenceDeployment(\"inf\", {\n    projectId: project.id,\n    name: \"my-inference-deployment\",\n    image: \"nginx:latest\",\n    listeningPort: 80,\n    flavorName: \"inference-4vcpu-16gib\",\n    containers: [{\n        regionId: region.id,\n        scaleMin: 2,\n        scaleMax: 2,\n        triggersCpuThreshold: 80,\n    }],\n    livenessProbe: {\n        enabled: true,\n        failureThreshold: 3,\n        initialDelaySeconds: 10,\n        periodSeconds: 10,\n        timeoutSeconds: 1,\n        successThreshold: 1,\n        httpGetPort: 80,\n        httpGetHeaders: {\n            \"User-Agent\": \"my user agent\",\n        },\n        httpGetHost: \"localhost\",\n        httpGetPath: \"/\",\n        httpGetSchema: \"HTTPS\",\n    },\n    readinessProbe: {\n        enabled: false,\n    },\n    startupProbe: {\n        enabled: false,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ninf = gcore.InferenceDeployment(\"inf\",\n    project_id=project[\"id\"],\n    name=\"my-inference-deployment\",\n    image=\"nginx:latest\",\n    listening_port=80,\n    flavor_name=\"inference-4vcpu-16gib\",\n    containers=[{\n        \"region_id\": region[\"id\"],\n        \"scale_min\": 2,\n        \"scale_max\": 2,\n        \"triggers_cpu_threshold\": 80,\n    }],\n    liveness_probe={\n        \"enabled\": True,\n        \"failure_threshold\": 3,\n        \"initial_delay_seconds\": 10,\n        \"period_seconds\": 10,\n        \"timeout_seconds\": 1,\n        \"success_threshold\": 1,\n        \"http_get_port\": 80,\n        \"http_get_headers\": {\n            \"User-Agent\": \"my user agent\",\n        },\n        \"http_get_host\": \"localhost\",\n        \"http_get_path\": \"/\",\n        \"http_get_schema\": \"HTTPS\",\n    },\n    readiness_probe={\n        \"enabled\": False,\n    },\n    startup_probe={\n        \"enabled\": 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    var inf = new Gcore.InferenceDeployment(\"inf\", new()\n    {\n        ProjectId = project.Id,\n        Name = \"my-inference-deployment\",\n        Image = \"nginx:latest\",\n        ListeningPort = 80,\n        FlavorName = \"inference-4vcpu-16gib\",\n        Containers = new[]\n        {\n            new Gcore.Inputs.InferenceDeploymentContainerArgs\n            {\n                RegionId = region.Id,\n                ScaleMin = 2,\n                ScaleMax = 2,\n                TriggersCpuThreshold = 80,\n            },\n        },\n        LivenessProbe = new Gcore.Inputs.InferenceDeploymentLivenessProbeArgs\n        {\n            Enabled = true,\n            FailureThreshold = 3,\n            InitialDelaySeconds = 10,\n            PeriodSeconds = 10,\n            TimeoutSeconds = 1,\n            SuccessThreshold = 1,\n            HttpGetPort = 80,\n            HttpGetHeaders = \n            {\n                { \"User-Agent\", \"my user agent\" },\n            },\n            HttpGetHost = \"localhost\",\n            HttpGetPath = \"/\",\n            HttpGetSchema = \"HTTPS\",\n        },\n        ReadinessProbe = new Gcore.Inputs.InferenceDeploymentReadinessProbeArgs\n        {\n            Enabled = false,\n        },\n        StartupProbe = new Gcore.Inputs.InferenceDeploymentStartupProbeArgs\n        {\n            Enabled = false,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewInferenceDeployment(ctx, \"inf\", \u0026gcore.InferenceDeploymentArgs{\n\t\t\tProjectId:     pulumi.Any(project.Id),\n\t\t\tName:          pulumi.String(\"my-inference-deployment\"),\n\t\t\tImage:         pulumi.String(\"nginx:latest\"),\n\t\t\tListeningPort: pulumi.Float64(80),\n\t\t\tFlavorName:    pulumi.String(\"inference-4vcpu-16gib\"),\n\t\t\tContainers: gcore.InferenceDeploymentContainerArray{\n\t\t\t\t\u0026gcore.InferenceDeploymentContainerArgs{\n\t\t\t\t\tRegionId:             pulumi.Any(region.Id),\n\t\t\t\t\tScaleMin:             pulumi.Float64(2),\n\t\t\t\t\tScaleMax:             pulumi.Float64(2),\n\t\t\t\t\tTriggersCpuThreshold: pulumi.Float64(80),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLivenessProbe: \u0026gcore.InferenceDeploymentLivenessProbeArgs{\n\t\t\t\tEnabled:             pulumi.Bool(true),\n\t\t\t\tFailureThreshold:    pulumi.Float64(3),\n\t\t\t\tInitialDelaySeconds: pulumi.Float64(10),\n\t\t\t\tPeriodSeconds:       pulumi.Float64(10),\n\t\t\t\tTimeoutSeconds:      pulumi.Float64(1),\n\t\t\t\tSuccessThreshold:    pulumi.Float64(1),\n\t\t\t\tHttpGetPort:         pulumi.Float64(80),\n\t\t\t\tHttpGetHeaders: pulumi.StringMap{\n\t\t\t\t\t\"User-Agent\": pulumi.String(\"my user agent\"),\n\t\t\t\t},\n\t\t\t\tHttpGetHost:   pulumi.String(\"localhost\"),\n\t\t\t\tHttpGetPath:   pulumi.String(\"/\"),\n\t\t\t\tHttpGetSchema: pulumi.String(\"HTTPS\"),\n\t\t\t},\n\t\t\tReadinessProbe: \u0026gcore.InferenceDeploymentReadinessProbeArgs{\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tStartupProbe: \u0026gcore.InferenceDeploymentStartupProbeArgs{\n\t\t\t\tEnabled: pulumi.Bool(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.InferenceDeployment;\nimport com.pulumi.gcore.InferenceDeploymentArgs;\nimport com.pulumi.gcore.inputs.InferenceDeploymentContainerArgs;\nimport com.pulumi.gcore.inputs.InferenceDeploymentLivenessProbeArgs;\nimport com.pulumi.gcore.inputs.InferenceDeploymentReadinessProbeArgs;\nimport com.pulumi.gcore.inputs.InferenceDeploymentStartupProbeArgs;\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 inf = new InferenceDeployment(\"inf\", InferenceDeploymentArgs.builder()\n            .projectId(project.id())\n            .name(\"my-inference-deployment\")\n            .image(\"nginx:latest\")\n            .listeningPort(80.0)\n            .flavorName(\"inference-4vcpu-16gib\")\n            .containers(InferenceDeploymentContainerArgs.builder()\n                .regionId(region.id())\n                .scaleMin(2.0)\n                .scaleMax(2.0)\n                .triggersCpuThreshold(80.0)\n                .build())\n            .livenessProbe(InferenceDeploymentLivenessProbeArgs.builder()\n                .enabled(true)\n                .failureThreshold(3.0)\n                .initialDelaySeconds(10.0)\n                .periodSeconds(10.0)\n                .timeoutSeconds(1.0)\n                .successThreshold(1.0)\n                .httpGetPort(80.0)\n                .httpGetHeaders(Map.of(\"User-Agent\", \"my user agent\"))\n                .httpGetHost(\"localhost\")\n                .httpGetPath(\"/\")\n                .httpGetSchema(\"HTTPS\")\n                .build())\n            .readinessProbe(InferenceDeploymentReadinessProbeArgs.builder()\n                .enabled(false)\n                .build())\n            .startupProbe(InferenceDeploymentStartupProbeArgs.builder()\n                .enabled(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  'inf':\n    type: gcore:InferenceDeployment\n    properties:\n      projectId: ${project.id}\n      name: my-inference-deployment\n      image: nginx:latest\n      listeningPort: 80\n      flavorName: inference-4vcpu-16gib\n      containers:\n        - regionId: ${region.id}\n          scaleMin: 2\n          scaleMax: 2\n          triggersCpuThreshold: 80\n      livenessProbe:\n        enabled: true\n        failureThreshold: 3\n        initialDelaySeconds: 10\n        periodSeconds: 10\n        timeoutSeconds: 1\n        successThreshold: 1\n        httpGetPort: 80\n        httpGetHeaders:\n          User-Agent: my user agent\n        httpGetHost: localhost\n        httpGetPath: /\n        httpGetSchema: HTTPS\n      readinessProbe:\n        enabled: false\n      startupProbe:\n        enabled: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating inference deployment with sqs trigger\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst aws = new gcore.InferenceSecret(\"aws\", {\n    projectId: project.id,\n    name: \"my-aws-iam-secret\",\n    dataAwsAccessKeyId: \"my-aws-access-key-id\",\n    dataAwsSecretAccessKey: \"my-aws-access-key\",\n});\nconst inf = new gcore.InferenceDeployment(\"inf\", {\n    projectId: project.id,\n    name: \"my-inference-deployment\",\n    image: \"nginx:latest\",\n    listeningPort: 80,\n    flavorName: \"inference-4vcpu-16gib\",\n    timeout: 60,\n    containers: [{\n        regionId: region.id,\n        cooldownPeriod: 60,\n        pollingInterval: 60,\n        scaleMin: 0,\n        scaleMax: 2,\n        triggersCpuThreshold: 80,\n        triggersSqsSecretName: aws.name,\n        triggersSqsAwsRegion: \"us-west-2\",\n        triggersSqsQueueUrl: \"https://sqs.us-west-2.amazonaws.com/1234567890/my-queue\",\n        triggersSqsQueueLength: 5,\n        triggersSqsActivationQueueLength: 2,\n    }],\n    livenessProbe: {\n        enabled: false,\n    },\n    readinessProbe: {\n        enabled: false,\n    },\n    startupProbe: {\n        enabled: false,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\naws = gcore.InferenceSecret(\"aws\",\n    project_id=project[\"id\"],\n    name=\"my-aws-iam-secret\",\n    data_aws_access_key_id=\"my-aws-access-key-id\",\n    data_aws_secret_access_key=\"my-aws-access-key\")\ninf = gcore.InferenceDeployment(\"inf\",\n    project_id=project[\"id\"],\n    name=\"my-inference-deployment\",\n    image=\"nginx:latest\",\n    listening_port=80,\n    flavor_name=\"inference-4vcpu-16gib\",\n    timeout=60,\n    containers=[{\n        \"region_id\": region[\"id\"],\n        \"cooldown_period\": 60,\n        \"polling_interval\": 60,\n        \"scale_min\": 0,\n        \"scale_max\": 2,\n        \"triggers_cpu_threshold\": 80,\n        \"triggers_sqs_secret_name\": aws.name,\n        \"triggers_sqs_aws_region\": \"us-west-2\",\n        \"triggers_sqs_queue_url\": \"https://sqs.us-west-2.amazonaws.com/1234567890/my-queue\",\n        \"triggers_sqs_queue_length\": 5,\n        \"triggers_sqs_activation_queue_length\": 2,\n    }],\n    liveness_probe={\n        \"enabled\": False,\n    },\n    readiness_probe={\n        \"enabled\": False,\n    },\n    startup_probe={\n        \"enabled\": 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    var aws = new Gcore.InferenceSecret(\"aws\", new()\n    {\n        ProjectId = project.Id,\n        Name = \"my-aws-iam-secret\",\n        DataAwsAccessKeyId = \"my-aws-access-key-id\",\n        DataAwsSecretAccessKey = \"my-aws-access-key\",\n    });\n\n    var inf = new Gcore.InferenceDeployment(\"inf\", new()\n    {\n        ProjectId = project.Id,\n        Name = \"my-inference-deployment\",\n        Image = \"nginx:latest\",\n        ListeningPort = 80,\n        FlavorName = \"inference-4vcpu-16gib\",\n        Timeout = 60,\n        Containers = new[]\n        {\n            new Gcore.Inputs.InferenceDeploymentContainerArgs\n            {\n                RegionId = region.Id,\n                CooldownPeriod = 60,\n                PollingInterval = 60,\n                ScaleMin = 0,\n                ScaleMax = 2,\n                TriggersCpuThreshold = 80,\n                TriggersSqsSecretName = aws.Name,\n                TriggersSqsAwsRegion = \"us-west-2\",\n                TriggersSqsQueueUrl = \"https://sqs.us-west-2.amazonaws.com/1234567890/my-queue\",\n                TriggersSqsQueueLength = 5,\n                TriggersSqsActivationQueueLength = 2,\n            },\n        },\n        LivenessProbe = new Gcore.Inputs.InferenceDeploymentLivenessProbeArgs\n        {\n            Enabled = false,\n        },\n        ReadinessProbe = new Gcore.Inputs.InferenceDeploymentReadinessProbeArgs\n        {\n            Enabled = false,\n        },\n        StartupProbe = new Gcore.Inputs.InferenceDeploymentStartupProbeArgs\n        {\n            Enabled = false,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\taws, err := gcore.NewInferenceSecret(ctx, \"aws\", \u0026gcore.InferenceSecretArgs{\n\t\t\tProjectId:              pulumi.Any(project.Id),\n\t\t\tName:                   pulumi.String(\"my-aws-iam-secret\"),\n\t\t\tDataAwsAccessKeyId:     pulumi.String(\"my-aws-access-key-id\"),\n\t\t\tDataAwsSecretAccessKey: pulumi.String(\"my-aws-access-key\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewInferenceDeployment(ctx, \"inf\", \u0026gcore.InferenceDeploymentArgs{\n\t\t\tProjectId:     pulumi.Any(project.Id),\n\t\t\tName:          pulumi.String(\"my-inference-deployment\"),\n\t\t\tImage:         pulumi.String(\"nginx:latest\"),\n\t\t\tListeningPort: pulumi.Float64(80),\n\t\t\tFlavorName:    pulumi.String(\"inference-4vcpu-16gib\"),\n\t\t\tTimeout:       pulumi.Float64(60),\n\t\t\tContainers: gcore.InferenceDeploymentContainerArray{\n\t\t\t\t\u0026gcore.InferenceDeploymentContainerArgs{\n\t\t\t\t\tRegionId:                         pulumi.Any(region.Id),\n\t\t\t\t\tCooldownPeriod:                   pulumi.Float64(60),\n\t\t\t\t\tPollingInterval:                  pulumi.Float64(60),\n\t\t\t\t\tScaleMin:                         pulumi.Float64(0),\n\t\t\t\t\tScaleMax:                         pulumi.Float64(2),\n\t\t\t\t\tTriggersCpuThreshold:             pulumi.Float64(80),\n\t\t\t\t\tTriggersSqsSecretName:            aws.Name,\n\t\t\t\t\tTriggersSqsAwsRegion:             pulumi.String(\"us-west-2\"),\n\t\t\t\t\tTriggersSqsQueueUrl:              pulumi.String(\"https://sqs.us-west-2.amazonaws.com/1234567890/my-queue\"),\n\t\t\t\t\tTriggersSqsQueueLength:           pulumi.Float64(5),\n\t\t\t\t\tTriggersSqsActivationQueueLength: pulumi.Float64(2),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLivenessProbe: \u0026gcore.InferenceDeploymentLivenessProbeArgs{\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tReadinessProbe: \u0026gcore.InferenceDeploymentReadinessProbeArgs{\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tStartupProbe: \u0026gcore.InferenceDeploymentStartupProbeArgs{\n\t\t\t\tEnabled: pulumi.Bool(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.InferenceSecret;\nimport com.pulumi.gcore.InferenceSecretArgs;\nimport com.pulumi.gcore.InferenceDeployment;\nimport com.pulumi.gcore.InferenceDeploymentArgs;\nimport com.pulumi.gcore.inputs.InferenceDeploymentContainerArgs;\nimport com.pulumi.gcore.inputs.InferenceDeploymentLivenessProbeArgs;\nimport com.pulumi.gcore.inputs.InferenceDeploymentReadinessProbeArgs;\nimport com.pulumi.gcore.inputs.InferenceDeploymentStartupProbeArgs;\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 aws = new InferenceSecret(\"aws\", InferenceSecretArgs.builder()\n            .projectId(project.id())\n            .name(\"my-aws-iam-secret\")\n            .dataAwsAccessKeyId(\"my-aws-access-key-id\")\n            .dataAwsSecretAccessKey(\"my-aws-access-key\")\n            .build());\n\n        var inf = new InferenceDeployment(\"inf\", InferenceDeploymentArgs.builder()\n            .projectId(project.id())\n            .name(\"my-inference-deployment\")\n            .image(\"nginx:latest\")\n            .listeningPort(80.0)\n            .flavorName(\"inference-4vcpu-16gib\")\n            .timeout(60.0)\n            .containers(InferenceDeploymentContainerArgs.builder()\n                .regionId(region.id())\n                .cooldownPeriod(60.0)\n                .pollingInterval(60.0)\n                .scaleMin(0.0)\n                .scaleMax(2.0)\n                .triggersCpuThreshold(80.0)\n                .triggersSqsSecretName(aws.name())\n                .triggersSqsAwsRegion(\"us-west-2\")\n                .triggersSqsQueueUrl(\"https://sqs.us-west-2.amazonaws.com/1234567890/my-queue\")\n                .triggersSqsQueueLength(5.0)\n                .triggersSqsActivationQueueLength(2.0)\n                .build())\n            .livenessProbe(InferenceDeploymentLivenessProbeArgs.builder()\n                .enabled(false)\n                .build())\n            .readinessProbe(InferenceDeploymentReadinessProbeArgs.builder()\n                .enabled(false)\n                .build())\n            .startupProbe(InferenceDeploymentStartupProbeArgs.builder()\n                .enabled(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  aws:\n    type: gcore:InferenceSecret\n    properties:\n      projectId: ${project.id}\n      name: my-aws-iam-secret\n      dataAwsAccessKeyId: my-aws-access-key-id\n      dataAwsSecretAccessKey: my-aws-access-key\n  'inf':\n    type: gcore:InferenceDeployment\n    properties:\n      projectId: ${project.id}\n      name: my-inference-deployment\n      image: nginx:latest\n      listeningPort: 80\n      flavorName: inference-4vcpu-16gib\n      timeout: 60\n      containers:\n        - regionId: ${region.id}\n          cooldownPeriod: 60\n          pollingInterval: 60\n          scaleMin: 0\n          scaleMax: 2\n          triggersCpuThreshold: 80\n          triggersSqsSecretName: ${aws.name}\n          triggersSqsAwsRegion: us-west-2\n          triggersSqsQueueUrl: https://sqs.us-west-2.amazonaws.com/1234567890/my-queue\n          triggersSqsQueueLength: 5\n          triggersSqsActivationQueueLength: 2\n      livenessProbe:\n        enabled: false\n      readinessProbe:\n        enabled: false\n      startupProbe:\n        enabled: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport using \u003cproject_id\u003e:\u003cinference_deployment_name\u003e format\n\n```sh\n$ pulumi import gcore:index/inferenceDeployment:InferenceDeployment inf1 1:my-first-inference\n```\n\n","properties":{"address":{"type":"string"},"authEnabled":{"type":"boolean","description":"Set to true to enable API key authentication for the inference instance.\n"},"command":{"type":"string","description":"Command to be executed when running a container from an image.\n"},"containers":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInferenceDeploymentContainer:InferenceDeploymentContainer"},"description":"A required list of container definitions. Each entry represents a container configuration, and at least one container must be specified. See the nested schema below for further details.\n"},"createdAt":{"type":"string","description":"Datetime when the inference deployment was created. The format is 2025-12-28T19:14:44.180394\n"},"credentialsName":{"type":"string","description":"Required if using a private image registry. Specifies the name of the credentials to authenticate with the registry where the container image is stored.\n"},"description":{"type":"string"},"envs":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables for the inference instance.\n"},"flavorName":{"type":"string","description":"Specifies the resource flavor for the container, determining its allocated CPU, memory, and potentially GPU resources.\n"},"image":{"type":"string","description":"The container image to be used for deployment. This should be a valid image reference, such as a public or private Docker image (registry.example.com/my-image:latest). Note: If the image is hosted in a private registry, you must specify\u003cspan pulumi-lang-nodejs=\" credentialsName \" pulumi-lang-dotnet=\" CredentialsName \" pulumi-lang-go=\" credentialsName \" pulumi-lang-python=\" credentials_name \" pulumi-lang-yaml=\" credentialsName \" pulumi-lang-java=\" credentialsName \"\u003e credentials_name \u003c/span\u003eto provide authentication details.\n"},"inferenceDeploymentId":{"type":"string","description":"The ID of this resource.\n"},"listeningPort":{"type":"number","description":"The port on which the container will accept incoming traffic. This should match the port your application is configured to listen on within the container.\n"},"livenessProbe":{"$ref":"#/types/gcore:index%2FInferenceDeploymentLivenessProbe:InferenceDeploymentLivenessProbe"},"logging":{"$ref":"#/types/gcore:index%2FInferenceDeploymentLogging:InferenceDeploymentLogging"},"name":{"type":"string","description":"The name of the deployment. This should be unique within the scope of the project.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"readinessProbe":{"$ref":"#/types/gcore:index%2FInferenceDeploymentReadinessProbe:InferenceDeploymentReadinessProbe"},"startupProbe":{"$ref":"#/types/gcore:index%2FInferenceDeploymentStartupProbe:InferenceDeploymentStartupProbe"},"status":{"type":"string"},"timeout":{"type":"number"}},"type":"object","required":["address","containers","createdAt","flavorName","image","inferenceDeploymentId","listeningPort","name","status","timeout"],"inputProperties":{"authEnabled":{"type":"boolean","description":"Set to true to enable API key authentication for the inference instance.\n"},"command":{"type":"string","description":"Command to be executed when running a container from an image.\n"},"containers":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInferenceDeploymentContainer:InferenceDeploymentContainer"},"description":"A required list of container definitions. Each entry represents a container configuration, and at least one container must be specified. See the nested schema below for further details.\n"},"credentialsName":{"type":"string","description":"Required if using a private image registry. Specifies the name of the credentials to authenticate with the registry where the container image is stored.\n"},"description":{"type":"string"},"envs":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables for the inference instance.\n"},"flavorName":{"type":"string","description":"Specifies the resource flavor for the container, determining its allocated CPU, memory, and potentially GPU resources.\n"},"image":{"type":"string","description":"The container image to be used for deployment. This should be a valid image reference, such as a public or private Docker image (registry.example.com/my-image:latest). Note: If the image is hosted in a private registry, you must specify\u003cspan pulumi-lang-nodejs=\" credentialsName \" pulumi-lang-dotnet=\" CredentialsName \" pulumi-lang-go=\" credentialsName \" pulumi-lang-python=\" credentials_name \" pulumi-lang-yaml=\" credentialsName \" pulumi-lang-java=\" credentialsName \"\u003e credentials_name \u003c/span\u003eto provide authentication details.\n"},"inferenceDeploymentId":{"type":"string","description":"The ID of this resource.\n"},"listeningPort":{"type":"number","description":"The port on which the container will accept incoming traffic. This should match the port your application is configured to listen on within the container.\n"},"livenessProbe":{"$ref":"#/types/gcore:index%2FInferenceDeploymentLivenessProbe:InferenceDeploymentLivenessProbe"},"logging":{"$ref":"#/types/gcore:index%2FInferenceDeploymentLogging:InferenceDeploymentLogging"},"name":{"type":"string","description":"The name of the deployment. This should be unique within the scope of the project.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"readinessProbe":{"$ref":"#/types/gcore:index%2FInferenceDeploymentReadinessProbe:InferenceDeploymentReadinessProbe"},"startupProbe":{"$ref":"#/types/gcore:index%2FInferenceDeploymentStartupProbe:InferenceDeploymentStartupProbe"},"timeout":{"type":"number"}},"requiredInputs":["containers","flavorName","image","listeningPort"],"stateInputs":{"description":"Input properties used for looking up and filtering InferenceDeployment resources.\n","properties":{"address":{"type":"string"},"authEnabled":{"type":"boolean","description":"Set to true to enable API key authentication for the inference instance.\n"},"command":{"type":"string","description":"Command to be executed when running a container from an image.\n"},"containers":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInferenceDeploymentContainer:InferenceDeploymentContainer"},"description":"A required list of container definitions. Each entry represents a container configuration, and at least one container must be specified. See the nested schema below for further details.\n"},"createdAt":{"type":"string","description":"Datetime when the inference deployment was created. The format is 2025-12-28T19:14:44.180394\n"},"credentialsName":{"type":"string","description":"Required if using a private image registry. Specifies the name of the credentials to authenticate with the registry where the container image is stored.\n"},"description":{"type":"string"},"envs":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables for the inference instance.\n"},"flavorName":{"type":"string","description":"Specifies the resource flavor for the container, determining its allocated CPU, memory, and potentially GPU resources.\n"},"image":{"type":"string","description":"The container image to be used for deployment. This should be a valid image reference, such as a public or private Docker image (registry.example.com/my-image:latest). Note: If the image is hosted in a private registry, you must specify\u003cspan pulumi-lang-nodejs=\" credentialsName \" pulumi-lang-dotnet=\" CredentialsName \" pulumi-lang-go=\" credentialsName \" pulumi-lang-python=\" credentials_name \" pulumi-lang-yaml=\" credentialsName \" pulumi-lang-java=\" credentialsName \"\u003e credentials_name \u003c/span\u003eto provide authentication details.\n"},"inferenceDeploymentId":{"type":"string","description":"The ID of this resource.\n"},"listeningPort":{"type":"number","description":"The port on which the container will accept incoming traffic. This should match the port your application is configured to listen on within the container.\n"},"livenessProbe":{"$ref":"#/types/gcore:index%2FInferenceDeploymentLivenessProbe:InferenceDeploymentLivenessProbe"},"logging":{"$ref":"#/types/gcore:index%2FInferenceDeploymentLogging:InferenceDeploymentLogging"},"name":{"type":"string","description":"The name of the deployment. This should be unique within the scope of the project.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"readinessProbe":{"$ref":"#/types/gcore:index%2FInferenceDeploymentReadinessProbe:InferenceDeploymentReadinessProbe"},"startupProbe":{"$ref":"#/types/gcore:index%2FInferenceDeploymentStartupProbe:InferenceDeploymentStartupProbe"},"status":{"type":"string"},"timeout":{"type":"number"}},"type":"object"}},"gcore:index/inferenceSecret:InferenceSecret":{"description":"Represent inference secret. Specify this secret if you are using an AWS SQS-based trigger for inference deployment.\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 project = gcore.getProject({\n    name: \"Default\",\n});\nconst aws = new gcore.InferenceSecret(\"aws\", {\n    projectId: project.then(project =\u003e project.id),\n    name: \"my-aws-iam-secret\",\n    dataAwsAccessKeyId: \"my-aws-access-key-id\",\n    dataAwsSecretAccessKey: \"my-aws-access-key\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\naws = gcore.InferenceSecret(\"aws\",\n    project_id=project.id,\n    name=\"my-aws-iam-secret\",\n    data_aws_access_key_id=\"my-aws-access-key-id\",\n    data_aws_secret_access_key=\"my-aws-access-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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var aws = new Gcore.InferenceSecret(\"aws\", new()\n    {\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"my-aws-iam-secret\",\n        DataAwsAccessKeyId = \"my-aws-access-key-id\",\n        DataAwsSecretAccessKey = \"my-aws-access-key\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tproject, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewInferenceSecret(ctx, \"aws\", \u0026gcore.InferenceSecretArgs{\n\t\t\tProjectId:              pulumi.String(project.Id),\n\t\t\tName:                   pulumi.String(\"my-aws-iam-secret\"),\n\t\t\tDataAwsAccessKeyId:     pulumi.String(\"my-aws-access-key-id\"),\n\t\t\tDataAwsSecretAccessKey: pulumi.String(\"my-aws-access-key\"),\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.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetProjectArgs;\nimport com.pulumi.gcore.InferenceSecret;\nimport com.pulumi.gcore.InferenceSecretArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        var aws = new InferenceSecret(\"aws\", InferenceSecretArgs.builder()\n            .projectId(project.id())\n            .name(\"my-aws-iam-secret\")\n            .dataAwsAccessKeyId(\"my-aws-access-key-id\")\n            .dataAwsSecretAccessKey(\"my-aws-access-key\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  aws:\n    type: gcore:InferenceSecret\n    properties:\n      projectId: ${project.id}\n      name: my-aws-iam-secret\n      dataAwsAccessKeyId: my-aws-access-key-id\n      dataAwsSecretAccessKey: my-aws-access-key\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cproject_id\u003e:\u003csecret_name\u003e format\n\n```sh\n$ pulumi import gcore:index/inferenceSecret:InferenceSecret aws 1:my-secret-name\n```\n\n","properties":{"dataAwsAccessKeyId":{"type":"string"},"dataAwsSecretAccessKey":{"type":"string"},"inferenceSecretId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["dataAwsAccessKeyId","dataAwsSecretAccessKey","inferenceSecretId","name","type"],"inputProperties":{"dataAwsAccessKeyId":{"type":"string"},"dataAwsSecretAccessKey":{"type":"string"},"inferenceSecretId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"}},"requiredInputs":["dataAwsAccessKeyId","dataAwsSecretAccessKey"],"stateInputs":{"description":"Input properties used for looking up and filtering InferenceSecret resources.\n","properties":{"dataAwsAccessKeyId":{"type":"string"},"dataAwsSecretAccessKey":{"type":"string"},"inferenceSecretId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"type":{"type":"string"}},"type":"object"}},"gcore:index/instance:Instance":{"description":"Represent instance. **WARNING: This resource is deprecated, please use 'gcore_instancev2' instead**\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003cinstance_id\u003e format\n\n```sh\n$ pulumi import gcore:index/instance:Instance instance1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"addresses":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceAddress:InstanceAddress"}},"allowAppPorts":{"type":"boolean"},"configurations":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceConfiguration:InstanceConfiguration"}},"flavor":{"type":"object","additionalProperties":{"type":"string"}},"flavorId":{"type":"string"},"instanceId":{"type":"string","description":"The ID of this resource.\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceInterface:InstanceInterface"}},"keypairName":{"type":"string"},"lastUpdated":{"type":"string"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"}},"metadatas":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceMetadata:InstanceMetadata"},"deprecationMessage":"Deprecated"},"name":{"type":"string"},"nameTemplate":{"type":"string"},"nameTemplates":{"type":"array","items":{"type":"string"},"deprecationMessage":"Deprecated"},"password":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceSecurityGroup:InstanceSecurityGroup"},"description":"Firewalls list\n"},"serverGroup":{"type":"string"},"status":{"type":"string"},"userData":{"type":"string"},"userdata":{"type":"string","description":"**Deprecated**\n","deprecationMessage":"Deprecated"},"username":{"type":"string"},"vmState":{"type":"string","description":"Current vm state, use stopped to stop vm and active to start\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceVolume:InstanceVolume"}}},"type":"object","required":["flavor","flavorId","instanceId","interfaces","lastUpdated","name","securityGroups","status","vmState"],"inputProperties":{"addresses":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceAddress:InstanceAddress"}},"allowAppPorts":{"type":"boolean"},"configurations":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceConfiguration:InstanceConfiguration"}},"flavor":{"type":"object","additionalProperties":{"type":"string"}},"flavorId":{"type":"string"},"instanceId":{"type":"string","description":"The ID of this resource.\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceInterface:InstanceInterface"}},"keypairName":{"type":"string"},"lastUpdated":{"type":"string"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"}},"metadatas":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceMetadata:InstanceMetadata"},"deprecationMessage":"Deprecated"},"name":{"type":"string"},"nameTemplate":{"type":"string"},"nameTemplates":{"type":"array","items":{"type":"string"},"deprecationMessage":"Deprecated"},"password":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"serverGroup":{"type":"string"},"status":{"type":"string"},"userData":{"type":"string"},"userdata":{"type":"string","description":"**Deprecated**\n","deprecationMessage":"Deprecated"},"username":{"type":"string"},"vmState":{"type":"string","description":"Current vm state, use stopped to stop vm and active to start\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceVolume:InstanceVolume"}}},"requiredInputs":["flavorId","interfaces"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"addresses":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceAddress:InstanceAddress"}},"allowAppPorts":{"type":"boolean"},"configurations":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceConfiguration:InstanceConfiguration"}},"flavor":{"type":"object","additionalProperties":{"type":"string"}},"flavorId":{"type":"string"},"instanceId":{"type":"string","description":"The ID of this resource.\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceInterface:InstanceInterface"}},"keypairName":{"type":"string"},"lastUpdated":{"type":"string"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"}},"metadatas":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceMetadata:InstanceMetadata"},"deprecationMessage":"Deprecated"},"name":{"type":"string"},"nameTemplate":{"type":"string"},"nameTemplates":{"type":"array","items":{"type":"string"},"deprecationMessage":"Deprecated"},"password":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"securityGroups":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceSecurityGroup:InstanceSecurityGroup"},"description":"Firewalls list\n"},"serverGroup":{"type":"string"},"status":{"type":"string"},"userData":{"type":"string"},"userdata":{"type":"string","description":"**Deprecated**\n","deprecationMessage":"Deprecated"},"username":{"type":"string"},"vmState":{"type":"string","description":"Current vm state, use stopped to stop vm and active to start\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstanceVolume:InstanceVolume"}}},"type":"object"}},"gcore:index/instancev2:Instancev2":{"description":"Gcore Instance offer a flexible, powerful, and scalable solution for hosting applications and services.\nDesigned to meet a wide range of computing needs, our instances ensure optimal performance, reliability, and security for\nyour applications.\n\n## 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\nconst project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\nconst network = new gcore.Network(\"network\", {\n    name: \"my-network\",\n    type: \"vxlan\",\n    projectId: project.then(project =\u003e project.id),\n    regionId: region.then(region =\u003e region.id),\n});\nconst subnet = new gcore.Subnet(\"subnet\", {\n    name: \"my-subnet\",\n    cidr: \"192.168.10.0/24\",\n    networkId: network.networkId,\n    projectId: project.then(project =\u003e project.id),\n    regionId: region.then(region =\u003e region.id),\n});\nconst ubuntu = Promise.all([region, project]).then(([region, project]) =\u003e gcore.getImage({\n    name: \"ubuntu-22.04-x64\",\n    regionId: region.id,\n    projectId: project.id,\n}));\nconst bootVolume = new gcore.Volume(\"boot_volume\", {\n    name: \"my-boot-volume\",\n    typeName: \"ssd_hiiops\",\n    size: 5,\n    imageId: ubuntu.then(ubuntu =\u003e ubuntu.id),\n    projectId: project.then(project =\u003e project.id),\n    regionId: region.then(region =\u003e region.id),\n});\nconst myKeypair = new gcore.Keypair(\"my_keypair\", {\n    projectId: project.then(project =\u003e project.id),\n    sshkeyName: \"my-keypair\",\n    publicKey: \"ssh-ed25519 ...your public key... gcore@gcore.com\",\n});\nconst _default = Promise.all([project, region]).then(([project, region]) =\u003e gcore.getSecuritygroup({\n    name: \"default\",\n    projectId: project.id,\n    regionId: region.id,\n}));\nconst windows = Promise.all([region, project]).then(([region, project]) =\u003e gcore.getImage({\n    name: \"windows-server-2022\",\n    regionId: region.id,\n    projectId: project.id,\n}));\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\nnetwork = gcore.Network(\"network\",\n    name=\"my-network\",\n    type=\"vxlan\",\n    project_id=project.id,\n    region_id=region.id)\nsubnet = gcore.Subnet(\"subnet\",\n    name=\"my-subnet\",\n    cidr=\"192.168.10.0/24\",\n    network_id=network.network_id,\n    project_id=project.id,\n    region_id=region.id)\nubuntu = gcore.get_image(name=\"ubuntu-22.04-x64\",\n    region_id=region.id,\n    project_id=project.id)\nboot_volume = gcore.Volume(\"boot_volume\",\n    name=\"my-boot-volume\",\n    type_name=\"ssd_hiiops\",\n    size=5,\n    image_id=ubuntu.id,\n    project_id=project.id,\n    region_id=region.id)\nmy_keypair = gcore.Keypair(\"my_keypair\",\n    project_id=project.id,\n    sshkey_name=\"my-keypair\",\n    public_key=\"ssh-ed25519 ...your public key... gcore@gcore.com\")\ndefault = gcore.get_securitygroup(name=\"default\",\n    project_id=project.id,\n    region_id=region.id)\nwindows = gcore.get_image(name=\"windows-server-2022\",\n    region_id=region.id,\n    project_id=project.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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n    var network = new Gcore.Network(\"network\", new()\n    {\n        Name = \"my-network\",\n        Type = \"vxlan\",\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n    });\n\n    var subnet = new Gcore.Subnet(\"subnet\", new()\n    {\n        Name = \"my-subnet\",\n        Cidr = \"192.168.10.0/24\",\n        NetworkId = network.NetworkId,\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n    });\n\n    var ubuntu = Gcore.GetImage.Invoke(new()\n    {\n        Name = \"ubuntu-22.04-x64\",\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    var bootVolume = new Gcore.Volume(\"boot_volume\", new()\n    {\n        Name = \"my-boot-volume\",\n        TypeName = \"ssd_hiiops\",\n        Size = 5,\n        ImageId = ubuntu.Apply(getImageResult =\u003e getImageResult.Id),\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n    });\n\n    var myKeypair = new Gcore.Keypair(\"my_keypair\", new()\n    {\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        SshkeyName = \"my-keypair\",\n        PublicKey = \"ssh-ed25519 ...your public key... gcore@gcore.com\",\n    });\n\n    var @default = Gcore.GetSecuritygroup.Invoke(new()\n    {\n        Name = \"default\",\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n    });\n\n    var windows = Gcore.GetImage.Invoke(new()\n    {\n        Name = \"windows-server-2022\",\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tproject, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tregion, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork, err := gcore.NewNetwork(ctx, \"network\", \u0026gcore.NetworkArgs{\n\t\t\tName:      pulumi.String(\"my-network\"),\n\t\t\tType:      pulumi.String(\"vxlan\"),\n\t\t\tProjectId: pulumi.String(project.Id),\n\t\t\tRegionId:  pulumi.String(region.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewSubnet(ctx, \"subnet\", \u0026gcore.SubnetArgs{\n\t\t\tName:      pulumi.String(\"my-subnet\"),\n\t\t\tCidr:      pulumi.String(\"192.168.10.0/24\"),\n\t\t\tNetworkId: network.NetworkId,\n\t\t\tProjectId: pulumi.String(project.Id),\n\t\t\tRegionId:  pulumi.String(region.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tubuntu, err := gcore.GetImage(ctx, \u0026gcore.GetImageArgs{\n\t\t\tName:      pulumi.StringRef(\"ubuntu-22.04-x64\"),\n\t\t\tRegionId:  pulumi.Float64Ref(region.Id),\n\t\t\tProjectId: pulumi.Float64Ref(project.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewVolume(ctx, \"boot_volume\", \u0026gcore.VolumeArgs{\n\t\t\tName:      pulumi.String(\"my-boot-volume\"),\n\t\t\tTypeName:  pulumi.String(\"ssd_hiiops\"),\n\t\t\tSize:      pulumi.Float64(5),\n\t\t\tImageId:   pulumi.String(ubuntu.Id),\n\t\t\tProjectId: pulumi.String(project.Id),\n\t\t\tRegionId:  pulumi.String(region.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewKeypair(ctx, \"my_keypair\", \u0026gcore.KeypairArgs{\n\t\t\tProjectId:  pulumi.String(project.Id),\n\t\t\tSshkeyName: 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.LookupSecuritygroup(ctx, \u0026gcore.LookupSecuritygroupArgs{\n\t\t\tName:      \"default\",\n\t\t\tProjectId: pulumi.Float64Ref(project.Id),\n\t\t\tRegionId:  pulumi.Float64Ref(region.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.GetImage(ctx, \u0026gcore.GetImageArgs{\n\t\t\tName:      pulumi.StringRef(\"windows-server-2022\"),\n\t\t\tRegionId:  pulumi.Float64Ref(region.Id),\n\t\t\tProjectId: pulumi.Float64Ref(project.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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.Network;\nimport com.pulumi.gcore.NetworkArgs;\nimport com.pulumi.gcore.Subnet;\nimport com.pulumi.gcore.SubnetArgs;\nimport com.pulumi.gcore.inputs.GetImageArgs;\nimport com.pulumi.gcore.Volume;\nimport com.pulumi.gcore.VolumeArgs;\nimport com.pulumi.gcore.Keypair;\nimport com.pulumi.gcore.KeypairArgs;\nimport com.pulumi.gcore.inputs.GetSecuritygroupArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n        var network = new Network(\"network\", NetworkArgs.builder()\n            .name(\"my-network\")\n            .type(\"vxlan\")\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        var subnet = new Subnet(\"subnet\", SubnetArgs.builder()\n            .name(\"my-subnet\")\n            .cidr(\"192.168.10.0/24\")\n            .networkId(network.networkId())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        final var ubuntu = GcoreFunctions.getImage(GetImageArgs.builder()\n            .name(\"ubuntu-22.04-x64\")\n            .regionId(region.id())\n            .projectId(project.id())\n            .build());\n\n        var bootVolume = new Volume(\"bootVolume\", VolumeArgs.builder()\n            .name(\"my-boot-volume\")\n            .typeName(\"ssd_hiiops\")\n            .size(5.0)\n            .imageId(ubuntu.id())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        var myKeypair = new Keypair(\"myKeypair\", KeypairArgs.builder()\n            .projectId(project.id())\n            .sshkeyName(\"my-keypair\")\n            .publicKey(\"ssh-ed25519 ...your public key... gcore@gcore.com\")\n            .build());\n\n        final var default = GcoreFunctions.getSecuritygroup(GetSecuritygroupArgs.builder()\n            .name(\"default\")\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        final var windows = GcoreFunctions.getImage(GetImageArgs.builder()\n            .name(\"windows-server-2022\")\n            .regionId(region.id())\n            .projectId(project.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  network:\n    type: gcore:Network\n    properties:\n      name: my-network\n      type: vxlan\n      projectId: ${project.id}\n      regionId: ${region.id}\n  subnet:\n    type: gcore:Subnet\n    properties:\n      name: my-subnet\n      cidr: 192.168.10.0/24\n      networkId: ${network.networkId}\n      projectId: ${project.id}\n      regionId: ${region.id}\n  bootVolume:\n    type: gcore:Volume\n    name: boot_volume\n    properties:\n      name: my-boot-volume\n      typeName: ssd_hiiops\n      size: 5\n      imageId: ${ubuntu.id}\n      projectId: ${project.id}\n      regionId: ${region.id}\n  myKeypair:\n    type: gcore:Keypair\n    name: my_keypair\n    properties:\n      projectId: ${project.id}\n      sshkeyName: my-keypair\n      publicKey: ssh-ed25519 ...your public key... gcore@gcore.com\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n  ubuntu:\n    fn::invoke:\n      function: gcore:getImage\n      arguments:\n        name: ubuntu-22.04-x64\n        regionId: ${region.id}\n        projectId: ${project.id}\n  default:\n    fn::invoke:\n      function: gcore:getSecuritygroup\n      arguments:\n        name: default\n        projectId: ${project.id}\n        regionId: ${region.id}\n  windows:\n    fn::invoke:\n      function: gcore:getImage\n      arguments:\n        name: windows-server-2022\n        regionId: ${region.id}\n        projectId: ${project.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Basic example\n\n### Creating instance with one public interface\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst instanceWithOneInterface = new gcore.Instancev2(\"instance_with_one_interface\", {\n    flavorId: \"g1-standard-2-4\",\n    name: \"my-instance\",\n    keypairName: \"my-keypair\",\n    volumes: [{\n        volumeId: bootVolume.id,\n        bootIndex: 0,\n    }],\n    interfaces: [{\n        type: \"external\",\n        name: \"my-external-interface\",\n        securityGroups: [_default.id],\n    }],\n    projectId: project.id,\n    regionId: region.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ninstance_with_one_interface = gcore.Instancev2(\"instance_with_one_interface\",\n    flavor_id=\"g1-standard-2-4\",\n    name=\"my-instance\",\n    keypair_name=\"my-keypair\",\n    volumes=[{\n        \"volume_id\": boot_volume[\"id\"],\n        \"boot_index\": 0,\n    }],\n    interfaces=[{\n        \"type\": \"external\",\n        \"name\": \"my-external-interface\",\n        \"security_groups\": [default[\"id\"]],\n    }],\n    project_id=project[\"id\"],\n    region_id=region[\"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 instanceWithOneInterface = new Gcore.Instancev2(\"instance_with_one_interface\", new()\n    {\n        FlavorId = \"g1-standard-2-4\",\n        Name = \"my-instance\",\n        KeypairName = \"my-keypair\",\n        Volumes = new[]\n        {\n            new Gcore.Inputs.Instancev2VolumeArgs\n            {\n                VolumeId = bootVolume.Id,\n                BootIndex = 0,\n            },\n        },\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.Instancev2InterfaceArgs\n            {\n                Type = \"external\",\n                Name = \"my-external-interface\",\n                SecurityGroups = new[]\n                {\n                    @default.Id,\n                },\n            },\n        },\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewInstancev2(ctx, \"instance_with_one_interface\", \u0026gcore.Instancev2Args{\n\t\t\tFlavorId:    pulumi.String(\"g1-standard-2-4\"),\n\t\t\tName:        pulumi.String(\"my-instance\"),\n\t\t\tKeypairName: pulumi.String(\"my-keypair\"),\n\t\t\tVolumes: gcore.Instancev2VolumeArray{\n\t\t\t\t\u0026gcore.Instancev2VolumeArgs{\n\t\t\t\t\tVolumeId:  pulumi.Any(bootVolume.Id),\n\t\t\t\t\tBootIndex: pulumi.Float64(0),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInterfaces: gcore.Instancev2InterfaceArray{\n\t\t\t\t\u0026gcore.Instancev2InterfaceArgs{\n\t\t\t\t\tType: pulumi.String(\"external\"),\n\t\t\t\t\tName: pulumi.String(\"my-external-interface\"),\n\t\t\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\t\t\t_default.Id,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.Instancev2;\nimport com.pulumi.gcore.Instancev2Args;\nimport com.pulumi.gcore.inputs.Instancev2VolumeArgs;\nimport com.pulumi.gcore.inputs.Instancev2InterfaceArgs;\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 instanceWithOneInterface = new Instancev2(\"instanceWithOneInterface\", Instancev2Args.builder()\n            .flavorId(\"g1-standard-2-4\")\n            .name(\"my-instance\")\n            .keypairName(\"my-keypair\")\n            .volumes(Instancev2VolumeArgs.builder()\n                .volumeId(bootVolume.id())\n                .bootIndex(0.0)\n                .build())\n            .interfaces(Instancev2InterfaceArgs.builder()\n                .type(\"external\")\n                .name(\"my-external-interface\")\n                .securityGroups(default_.id())\n                .build())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instanceWithOneInterface:\n    type: gcore:Instancev2\n    name: instance_with_one_interface\n    properties:\n      flavorId: g1-standard-2-4\n      name: my-instance\n      keypairName: my-keypair\n      volumes:\n        - volumeId: ${bootVolume.id}\n          bootIndex: 0\n      interfaces:\n        - type: external\n          name: my-external-interface\n          securityGroups:\n            - ${default.id}\n      projectId: ${project.id}\n      regionId: ${region.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating instance with two interfaces\n\nThis example demonstrates how to create 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\nconst instanceWithTwoInterface = new gcore.Instancev2(\"instance_with_two_interface\", {\n    flavorId: \"g1-standard-2-4\",\n    name: \"my-instance\",\n    keypairName: \"my-keypair\",\n    volumes: [{\n        volumeId: bootVolume.id,\n        bootIndex: 0,\n    }],\n    interfaces: [\n        {\n            type: \"external\",\n            name: \"my-external-interface\",\n            securityGroups: [_default.id],\n        },\n        {\n            type: \"subnet\",\n            name: \"my-private-interface\",\n            securityGroups: [_default.id],\n            networkId: network.id,\n            subnetId: subnet.id,\n        },\n    ],\n    projectId: project.id,\n    regionId: region.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ninstance_with_two_interface = gcore.Instancev2(\"instance_with_two_interface\",\n    flavor_id=\"g1-standard-2-4\",\n    name=\"my-instance\",\n    keypair_name=\"my-keypair\",\n    volumes=[{\n        \"volume_id\": boot_volume[\"id\"],\n        \"boot_index\": 0,\n    }],\n    interfaces=[\n        {\n            \"type\": \"external\",\n            \"name\": \"my-external-interface\",\n            \"security_groups\": [default[\"id\"]],\n        },\n        {\n            \"type\": \"subnet\",\n            \"name\": \"my-private-interface\",\n            \"security_groups\": [default[\"id\"]],\n            \"network_id\": network[\"id\"],\n            \"subnet_id\": subnet[\"id\"],\n        },\n    ],\n    project_id=project[\"id\"],\n    region_id=region[\"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 instanceWithTwoInterface = new Gcore.Instancev2(\"instance_with_two_interface\", new()\n    {\n        FlavorId = \"g1-standard-2-4\",\n        Name = \"my-instance\",\n        KeypairName = \"my-keypair\",\n        Volumes = new[]\n        {\n            new Gcore.Inputs.Instancev2VolumeArgs\n            {\n                VolumeId = bootVolume.Id,\n                BootIndex = 0,\n            },\n        },\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.Instancev2InterfaceArgs\n            {\n                Type = \"external\",\n                Name = \"my-external-interface\",\n                SecurityGroups = new[]\n                {\n                    @default.Id,\n                },\n            },\n            new Gcore.Inputs.Instancev2InterfaceArgs\n            {\n                Type = \"subnet\",\n                Name = \"my-private-interface\",\n                SecurityGroups = new[]\n                {\n                    @default.Id,\n                },\n                NetworkId = network.Id,\n                SubnetId = subnet.Id,\n            },\n        },\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewInstancev2(ctx, \"instance_with_two_interface\", \u0026gcore.Instancev2Args{\n\t\t\tFlavorId:    pulumi.String(\"g1-standard-2-4\"),\n\t\t\tName:        pulumi.String(\"my-instance\"),\n\t\t\tKeypairName: pulumi.String(\"my-keypair\"),\n\t\t\tVolumes: gcore.Instancev2VolumeArray{\n\t\t\t\t\u0026gcore.Instancev2VolumeArgs{\n\t\t\t\t\tVolumeId:  pulumi.Any(bootVolume.Id),\n\t\t\t\t\tBootIndex: pulumi.Float64(0),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInterfaces: gcore.Instancev2InterfaceArray{\n\t\t\t\t\u0026gcore.Instancev2InterfaceArgs{\n\t\t\t\t\tType: pulumi.String(\"external\"),\n\t\t\t\t\tName: pulumi.String(\"my-external-interface\"),\n\t\t\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\t\t\t_default.Id,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026gcore.Instancev2InterfaceArgs{\n\t\t\t\t\tType: pulumi.String(\"subnet\"),\n\t\t\t\t\tName: pulumi.String(\"my-private-interface\"),\n\t\t\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\t\t\t_default.Id,\n\t\t\t\t\t},\n\t\t\t\t\tNetworkId: pulumi.Any(network.Id),\n\t\t\t\t\tSubnetId:  pulumi.Any(subnet.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.Instancev2;\nimport com.pulumi.gcore.Instancev2Args;\nimport com.pulumi.gcore.inputs.Instancev2VolumeArgs;\nimport com.pulumi.gcore.inputs.Instancev2InterfaceArgs;\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 instanceWithTwoInterface = new Instancev2(\"instanceWithTwoInterface\", Instancev2Args.builder()\n            .flavorId(\"g1-standard-2-4\")\n            .name(\"my-instance\")\n            .keypairName(\"my-keypair\")\n            .volumes(Instancev2VolumeArgs.builder()\n                .volumeId(bootVolume.id())\n                .bootIndex(0.0)\n                .build())\n            .interfaces(            \n                Instancev2InterfaceArgs.builder()\n                    .type(\"external\")\n                    .name(\"my-external-interface\")\n                    .securityGroups(default_.id())\n                    .build(),\n                Instancev2InterfaceArgs.builder()\n                    .type(\"subnet\")\n                    .name(\"my-private-interface\")\n                    .securityGroups(default_.id())\n                    .networkId(network.id())\n                    .subnetId(subnet.id())\n                    .build())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instanceWithTwoInterface:\n    type: gcore:Instancev2\n    name: instance_with_two_interface\n    properties:\n      flavorId: g1-standard-2-4\n      name: my-instance\n      keypairName: my-keypair\n      volumes:\n        - volumeId: ${bootVolume.id}\n          bootIndex: 0\n      interfaces:\n        - type: external\n          name: my-external-interface\n          securityGroups:\n            - ${default.id}\n        - type: subnet\n          name: my-private-interface\n          securityGroups:\n            - ${default.id}\n          networkId: ${network.id}\n          subnetId: ${subnet.id}\n      projectId: ${project.id}\n      regionId: ${region.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Windows instance with one public interface\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst bootVolumeWindows = new gcore.Volume(\"boot_volume_windows\", {\n    name: \"my-windows-boot-volume\",\n    typeName: \"ssd_hiiops\",\n    size: 50,\n    imageId: windows.id,\n    projectId: project.id,\n    regionId: region.id,\n});\nconst windowsInstance = new gcore.Instancev2(\"windows_instance\", {\n    flavorId: \"g1w-standard-4-8\",\n    name: \"my-windows-instance\",\n    password: \"my-s3cR3tP@ssw0rd\",\n    volumes: [{\n        volumeId: bootVolumeWindows.volumeId,\n        bootIndex: 0,\n    }],\n    interfaces: [{\n        type: \"external\",\n        name: \"my-external-interface\",\n        securityGroups: [_default.id],\n    }],\n    projectId: project.id,\n    regionId: region.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nboot_volume_windows = gcore.Volume(\"boot_volume_windows\",\n    name=\"my-windows-boot-volume\",\n    type_name=\"ssd_hiiops\",\n    size=50,\n    image_id=windows[\"id\"],\n    project_id=project[\"id\"],\n    region_id=region[\"id\"])\nwindows_instance = gcore.Instancev2(\"windows_instance\",\n    flavor_id=\"g1w-standard-4-8\",\n    name=\"my-windows-instance\",\n    password=\"my-s3cR3tP@ssw0rd\",\n    volumes=[{\n        \"volume_id\": boot_volume_windows.volume_id,\n        \"boot_index\": 0,\n    }],\n    interfaces=[{\n        \"type\": \"external\",\n        \"name\": \"my-external-interface\",\n        \"security_groups\": [default[\"id\"]],\n    }],\n    project_id=project[\"id\"],\n    region_id=region[\"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 bootVolumeWindows = new Gcore.Volume(\"boot_volume_windows\", new()\n    {\n        Name = \"my-windows-boot-volume\",\n        TypeName = \"ssd_hiiops\",\n        Size = 50,\n        ImageId = windows.Id,\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n    var windowsInstance = new Gcore.Instancev2(\"windows_instance\", new()\n    {\n        FlavorId = \"g1w-standard-4-8\",\n        Name = \"my-windows-instance\",\n        Password = \"my-s3cR3tP@ssw0rd\",\n        Volumes = new[]\n        {\n            new Gcore.Inputs.Instancev2VolumeArgs\n            {\n                VolumeId = bootVolumeWindows.VolumeId,\n                BootIndex = 0,\n            },\n        },\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.Instancev2InterfaceArgs\n            {\n                Type = \"external\",\n                Name = \"my-external-interface\",\n                SecurityGroups = new[]\n                {\n                    @default.Id,\n                },\n            },\n        },\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tbootVolumeWindows, err := gcore.NewVolume(ctx, \"boot_volume_windows\", \u0026gcore.VolumeArgs{\n\t\t\tName:      pulumi.String(\"my-windows-boot-volume\"),\n\t\t\tTypeName:  pulumi.String(\"ssd_hiiops\"),\n\t\t\tSize:      pulumi.Float64(50),\n\t\t\tImageId:   pulumi.Any(windows.Id),\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewInstancev2(ctx, \"windows_instance\", \u0026gcore.Instancev2Args{\n\t\t\tFlavorId: pulumi.String(\"g1w-standard-4-8\"),\n\t\t\tName:     pulumi.String(\"my-windows-instance\"),\n\t\t\tPassword: pulumi.String(\"my-s3cR3tP@ssw0rd\"),\n\t\t\tVolumes: gcore.Instancev2VolumeArray{\n\t\t\t\t\u0026gcore.Instancev2VolumeArgs{\n\t\t\t\t\tVolumeId:  bootVolumeWindows.VolumeId,\n\t\t\t\t\tBootIndex: pulumi.Float64(0),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInterfaces: gcore.Instancev2InterfaceArray{\n\t\t\t\t\u0026gcore.Instancev2InterfaceArgs{\n\t\t\t\t\tType: pulumi.String(\"external\"),\n\t\t\t\t\tName: pulumi.String(\"my-external-interface\"),\n\t\t\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\t\t\t_default.Id,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.Volume;\nimport com.pulumi.gcore.VolumeArgs;\nimport com.pulumi.gcore.Instancev2;\nimport com.pulumi.gcore.Instancev2Args;\nimport com.pulumi.gcore.inputs.Instancev2VolumeArgs;\nimport com.pulumi.gcore.inputs.Instancev2InterfaceArgs;\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 bootVolumeWindows = new Volume(\"bootVolumeWindows\", VolumeArgs.builder()\n            .name(\"my-windows-boot-volume\")\n            .typeName(\"ssd_hiiops\")\n            .size(50.0)\n            .imageId(windows.id())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        var windowsInstance = new Instancev2(\"windowsInstance\", Instancev2Args.builder()\n            .flavorId(\"g1w-standard-4-8\")\n            .name(\"my-windows-instance\")\n            .password(\"my-s3cR3tP@ssw0rd\")\n            .volumes(Instancev2VolumeArgs.builder()\n                .volumeId(bootVolumeWindows.volumeId())\n                .bootIndex(0.0)\n                .build())\n            .interfaces(Instancev2InterfaceArgs.builder()\n                .type(\"external\")\n                .name(\"my-external-interface\")\n                .securityGroups(default_.id())\n                .build())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bootVolumeWindows:\n    type: gcore:Volume\n    name: boot_volume_windows\n    properties:\n      name: my-windows-boot-volume\n      typeName: ssd_hiiops\n      size: 50\n      imageId: ${windows.id}\n      projectId: ${project.id}\n      regionId: ${region.id}\n  windowsInstance:\n    type: gcore:Instancev2\n    name: windows_instance\n    properties:\n      flavorId: g1w-standard-4-8\n      name: my-windows-instance\n      password: my-s3cR3tP@ssw0rd\n      volumes:\n        - volumeId: ${bootVolumeWindows.volumeId}\n          bootIndex: 0\n      interfaces:\n        - type: external\n          name: my-external-interface\n          securityGroups:\n            - ${default.id}\n      projectId: ${project.id}\n      regionId: ${region.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Advanced examples\n\n\n### Creating instance with a dual-stack public interface\n\nThis example demonstrates how to create an instance with a dual-stack public interface.\nThe instance has both an IPv4 and an IPv6 address.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst instanceWithDualstack = new gcore.Instancev2(\"instance_with_dualstack\", {\n    flavorId: \"g1-standard-2-4\",\n    name: \"my-instance\",\n    keypairName: \"my-keypair\",\n    volumes: [{\n        volumeId: bootVolume.id,\n        bootIndex: 0,\n    }],\n    interfaces: [{\n        type: \"external\",\n        ipFamily: \"dual\",\n        name: \"my-external-interface\",\n        securityGroups: [_default.id],\n    }],\n    projectId: project.id,\n    regionId: region.id,\n});\nexport const addresses = instanceWithDualstack.addresses;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ninstance_with_dualstack = gcore.Instancev2(\"instance_with_dualstack\",\n    flavor_id=\"g1-standard-2-4\",\n    name=\"my-instance\",\n    keypair_name=\"my-keypair\",\n    volumes=[{\n        \"volume_id\": boot_volume[\"id\"],\n        \"boot_index\": 0,\n    }],\n    interfaces=[{\n        \"type\": \"external\",\n        \"ip_family\": \"dual\",\n        \"name\": \"my-external-interface\",\n        \"security_groups\": [default[\"id\"]],\n    }],\n    project_id=project[\"id\"],\n    region_id=region[\"id\"])\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    var instanceWithDualstack = new Gcore.Instancev2(\"instance_with_dualstack\", new()\n    {\n        FlavorId = \"g1-standard-2-4\",\n        Name = \"my-instance\",\n        KeypairName = \"my-keypair\",\n        Volumes = new[]\n        {\n            new Gcore.Inputs.Instancev2VolumeArgs\n            {\n                VolumeId = bootVolume.Id,\n                BootIndex = 0,\n            },\n        },\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.Instancev2InterfaceArgs\n            {\n                Type = \"external\",\n                IpFamily = \"dual\",\n                Name = \"my-external-interface\",\n                SecurityGroups = new[]\n                {\n                    @default.Id,\n                },\n            },\n        },\n        ProjectId = project.Id,\n        RegionId = region.Id,\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/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\tinstanceWithDualstack, err := gcore.NewInstancev2(ctx, \"instance_with_dualstack\", \u0026gcore.Instancev2Args{\n\t\t\tFlavorId:    pulumi.String(\"g1-standard-2-4\"),\n\t\t\tName:        pulumi.String(\"my-instance\"),\n\t\t\tKeypairName: pulumi.String(\"my-keypair\"),\n\t\t\tVolumes: gcore.Instancev2VolumeArray{\n\t\t\t\t\u0026gcore.Instancev2VolumeArgs{\n\t\t\t\t\tVolumeId:  pulumi.Any(bootVolume.Id),\n\t\t\t\t\tBootIndex: pulumi.Float64(0),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInterfaces: gcore.Instancev2InterfaceArray{\n\t\t\t\t\u0026gcore.Instancev2InterfaceArgs{\n\t\t\t\t\tType:     pulumi.String(\"external\"),\n\t\t\t\t\tIpFamily: pulumi.String(\"dual\"),\n\t\t\t\t\tName:     pulumi.String(\"my-external-interface\"),\n\t\t\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\t\t\t_default.Id,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.Instancev2;\nimport com.pulumi.gcore.Instancev2Args;\nimport com.pulumi.gcore.inputs.Instancev2VolumeArgs;\nimport com.pulumi.gcore.inputs.Instancev2InterfaceArgs;\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 instanceWithDualstack = new Instancev2(\"instanceWithDualstack\", Instancev2Args.builder()\n            .flavorId(\"g1-standard-2-4\")\n            .name(\"my-instance\")\n            .keypairName(\"my-keypair\")\n            .volumes(Instancev2VolumeArgs.builder()\n                .volumeId(bootVolume.id())\n                .bootIndex(0.0)\n                .build())\n            .interfaces(Instancev2InterfaceArgs.builder()\n                .type(\"external\")\n                .ipFamily(\"dual\")\n                .name(\"my-external-interface\")\n                .securityGroups(default_.id())\n                .build())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        ctx.export(\"addresses\", instanceWithDualstack.addresses());\n    }\n}\n```\n```yaml\nresources:\n  instanceWithDualstack:\n    type: gcore:Instancev2\n    name: instance_with_dualstack\n    properties:\n      flavorId: g1-standard-2-4\n      name: my-instance\n      keypairName: my-keypair\n      volumes:\n        - volumeId: ${bootVolume.id}\n          bootIndex: 0\n      interfaces:\n        - type: external\n          ipFamily: dual\n          name: my-external-interface\n          securityGroups:\n            - ${default.id}\n      projectId: ${project.id}\n      regionId: ${region.id}\noutputs:\n  addresses: ${instanceWithDualstack.addresses}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating instance with floating ip\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst fixedIp = new gcore.Reservedfixedip(\"fixed_ip\", {\n    projectId: project.id,\n    regionId: region.id,\n    type: \"subnet\",\n    networkId: network.id,\n    subnetId: subnet.id,\n});\nconst floatingIp = new gcore.Floatingip(\"floating_ip\", {\n    projectId: project.id,\n    regionId: region.id,\n    fixedIpAddress: fixedIp.fixedIpAddress,\n    portId: fixedIp.portId,\n});\nconst instanceWithFloatingIp = new gcore.Instancev2(\"instance_with_floating_ip\", {\n    flavorId: \"g1-standard-2-4\",\n    name: \"my-instance\",\n    keypairName: \"my-keypair\",\n    volumes: [{\n        volumeId: bootVolume.id,\n        bootIndex: 0,\n    }],\n    interfaces: [{\n        type: \"reserved_fixed_ip\",\n        name: \"my-floating-ip-interface\",\n        portId: fixedIp.portId,\n        existingFipId: floatingIp.floatingipId,\n        securityGroups: [_default.id],\n    }],\n    projectId: project.id,\n    regionId: region.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nfixed_ip = gcore.Reservedfixedip(\"fixed_ip\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    type=\"subnet\",\n    network_id=network[\"id\"],\n    subnet_id=subnet[\"id\"])\nfloating_ip = gcore.Floatingip(\"floating_ip\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    fixed_ip_address=fixed_ip.fixed_ip_address,\n    port_id=fixed_ip.port_id)\ninstance_with_floating_ip = gcore.Instancev2(\"instance_with_floating_ip\",\n    flavor_id=\"g1-standard-2-4\",\n    name=\"my-instance\",\n    keypair_name=\"my-keypair\",\n    volumes=[{\n        \"volume_id\": boot_volume[\"id\"],\n        \"boot_index\": 0,\n    }],\n    interfaces=[{\n        \"type\": \"reserved_fixed_ip\",\n        \"name\": \"my-floating-ip-interface\",\n        \"port_id\": fixed_ip.port_id,\n        \"existing_fip_id\": floating_ip.floatingip_id,\n        \"security_groups\": [default[\"id\"]],\n    }],\n    project_id=project[\"id\"],\n    region_id=region[\"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 fixedIp = new Gcore.Reservedfixedip(\"fixed_ip\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Type = \"subnet\",\n        NetworkId = network.Id,\n        SubnetId = subnet.Id,\n    });\n\n    var floatingIp = new Gcore.Floatingip(\"floating_ip\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        FixedIpAddress = fixedIp.FixedIpAddress,\n        PortId = fixedIp.PortId,\n    });\n\n    var instanceWithFloatingIp = new Gcore.Instancev2(\"instance_with_floating_ip\", new()\n    {\n        FlavorId = \"g1-standard-2-4\",\n        Name = \"my-instance\",\n        KeypairName = \"my-keypair\",\n        Volumes = new[]\n        {\n            new Gcore.Inputs.Instancev2VolumeArgs\n            {\n                VolumeId = bootVolume.Id,\n                BootIndex = 0,\n            },\n        },\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.Instancev2InterfaceArgs\n            {\n                Type = \"reserved_fixed_ip\",\n                Name = \"my-floating-ip-interface\",\n                PortId = fixedIp.PortId,\n                ExistingFipId = floatingIp.FloatingipId,\n                SecurityGroups = new[]\n                {\n                    @default.Id,\n                },\n            },\n        },\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tfixedIp, err := gcore.NewReservedfixedip(ctx, \"fixed_ip\", \u0026gcore.ReservedfixedipArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\tType:      pulumi.String(\"subnet\"),\n\t\t\tNetworkId: pulumi.Any(network.Id),\n\t\t\tSubnetId:  pulumi.Any(subnet.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfloatingIp, err := gcore.NewFloatingip(ctx, \"floating_ip\", \u0026gcore.FloatingipArgs{\n\t\t\tProjectId:      pulumi.Any(project.Id),\n\t\t\tRegionId:       pulumi.Any(region.Id),\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_, err = gcore.NewInstancev2(ctx, \"instance_with_floating_ip\", \u0026gcore.Instancev2Args{\n\t\t\tFlavorId:    pulumi.String(\"g1-standard-2-4\"),\n\t\t\tName:        pulumi.String(\"my-instance\"),\n\t\t\tKeypairName: pulumi.String(\"my-keypair\"),\n\t\t\tVolumes: gcore.Instancev2VolumeArray{\n\t\t\t\t\u0026gcore.Instancev2VolumeArgs{\n\t\t\t\t\tVolumeId:  pulumi.Any(bootVolume.Id),\n\t\t\t\t\tBootIndex: pulumi.Float64(0),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInterfaces: gcore.Instancev2InterfaceArray{\n\t\t\t\t\u0026gcore.Instancev2InterfaceArgs{\n\t\t\t\t\tType:          pulumi.String(\"reserved_fixed_ip\"),\n\t\t\t\t\tName:          pulumi.String(\"my-floating-ip-interface\"),\n\t\t\t\t\tPortId:        fixedIp.PortId,\n\t\t\t\t\tExistingFipId: floatingIp.FloatingipId,\n\t\t\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\t\t\t_default.Id,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.Reservedfixedip;\nimport com.pulumi.gcore.ReservedfixedipArgs;\nimport com.pulumi.gcore.Floatingip;\nimport com.pulumi.gcore.FloatingipArgs;\nimport com.pulumi.gcore.Instancev2;\nimport com.pulumi.gcore.Instancev2Args;\nimport com.pulumi.gcore.inputs.Instancev2VolumeArgs;\nimport com.pulumi.gcore.inputs.Instancev2InterfaceArgs;\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 fixedIp = new Reservedfixedip(\"fixedIp\", ReservedfixedipArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .type(\"subnet\")\n            .networkId(network.id())\n            .subnetId(subnet.id())\n            .build());\n\n        var floatingIp = new Floatingip(\"floatingIp\", FloatingipArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .fixedIpAddress(fixedIp.fixedIpAddress())\n            .portId(fixedIp.portId())\n            .build());\n\n        var instanceWithFloatingIp = new Instancev2(\"instanceWithFloatingIp\", Instancev2Args.builder()\n            .flavorId(\"g1-standard-2-4\")\n            .name(\"my-instance\")\n            .keypairName(\"my-keypair\")\n            .volumes(Instancev2VolumeArgs.builder()\n                .volumeId(bootVolume.id())\n                .bootIndex(0.0)\n                .build())\n            .interfaces(Instancev2InterfaceArgs.builder()\n                .type(\"reserved_fixed_ip\")\n                .name(\"my-floating-ip-interface\")\n                .portId(fixedIp.portId())\n                .existingFipId(floatingIp.floatingipId())\n                .securityGroups(default_.id())\n                .build())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  fixedIp:\n    type: gcore:Reservedfixedip\n    name: fixed_ip\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      type: subnet\n      networkId: ${network.id}\n      subnetId: ${subnet.id}\n  floatingIp:\n    type: gcore:Floatingip\n    name: floating_ip\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      fixedIpAddress: ${fixedIp.fixedIpAddress}\n      portId: ${fixedIp.portId}\n  instanceWithFloatingIp:\n    type: gcore:Instancev2\n    name: instance_with_floating_ip\n    properties:\n      flavorId: g1-standard-2-4\n      name: my-instance\n      keypairName: my-keypair\n      volumes:\n        - volumeId: ${bootVolume.id}\n          bootIndex: 0\n      interfaces:\n        - type: reserved_fixed_ip\n          name: my-floating-ip-interface\n          portId: ${fixedIp.portId}\n          existingFipId: ${floatingIp.floatingipId}\n          securityGroups:\n            - ${default.id}\n      projectId: ${project.id}\n      regionId: ${region.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating instance with a reserved public interface\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst externalFixedIp = new gcore.Reservedfixedip(\"external_fixed_ip\", {\n    projectId: project.id,\n    regionId: region.id,\n    type: \"external\",\n});\nconst instanceWithReservedAddress = new gcore.Instancev2(\"instance_with_reserved_address\", {\n    flavorId: \"g1-standard-2-4\",\n    name: \"my-instance\",\n    keypairName: \"my-keypair\",\n    volumes: [{\n        volumeId: bootVolume.id,\n        bootIndex: 0,\n    }],\n    interfaces: [{\n        type: \"reserved_fixed_ip\",\n        name: \"my-reserved-public-interface\",\n        portId: externalFixedIp.portId,\n        securityGroups: [_default.id],\n    }],\n    projectId: project.id,\n    regionId: region.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexternal_fixed_ip = gcore.Reservedfixedip(\"external_fixed_ip\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    type=\"external\")\ninstance_with_reserved_address = gcore.Instancev2(\"instance_with_reserved_address\",\n    flavor_id=\"g1-standard-2-4\",\n    name=\"my-instance\",\n    keypair_name=\"my-keypair\",\n    volumes=[{\n        \"volume_id\": boot_volume[\"id\"],\n        \"boot_index\": 0,\n    }],\n    interfaces=[{\n        \"type\": \"reserved_fixed_ip\",\n        \"name\": \"my-reserved-public-interface\",\n        \"port_id\": external_fixed_ip.port_id,\n        \"security_groups\": [default[\"id\"]],\n    }],\n    project_id=project[\"id\"],\n    region_id=region[\"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 externalFixedIp = new Gcore.Reservedfixedip(\"external_fixed_ip\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Type = \"external\",\n    });\n\n    var instanceWithReservedAddress = new Gcore.Instancev2(\"instance_with_reserved_address\", new()\n    {\n        FlavorId = \"g1-standard-2-4\",\n        Name = \"my-instance\",\n        KeypairName = \"my-keypair\",\n        Volumes = new[]\n        {\n            new Gcore.Inputs.Instancev2VolumeArgs\n            {\n                VolumeId = bootVolume.Id,\n                BootIndex = 0,\n            },\n        },\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.Instancev2InterfaceArgs\n            {\n                Type = \"reserved_fixed_ip\",\n                Name = \"my-reserved-public-interface\",\n                PortId = externalFixedIp.PortId,\n                SecurityGroups = new[]\n                {\n                    @default.Id,\n                },\n            },\n        },\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\texternalFixedIp, err := gcore.NewReservedfixedip(ctx, \"external_fixed_ip\", \u0026gcore.ReservedfixedipArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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_, err = gcore.NewInstancev2(ctx, \"instance_with_reserved_address\", \u0026gcore.Instancev2Args{\n\t\t\tFlavorId:    pulumi.String(\"g1-standard-2-4\"),\n\t\t\tName:        pulumi.String(\"my-instance\"),\n\t\t\tKeypairName: pulumi.String(\"my-keypair\"),\n\t\t\tVolumes: gcore.Instancev2VolumeArray{\n\t\t\t\t\u0026gcore.Instancev2VolumeArgs{\n\t\t\t\t\tVolumeId:  pulumi.Any(bootVolume.Id),\n\t\t\t\t\tBootIndex: pulumi.Float64(0),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInterfaces: gcore.Instancev2InterfaceArray{\n\t\t\t\t\u0026gcore.Instancev2InterfaceArgs{\n\t\t\t\t\tType:   pulumi.String(\"reserved_fixed_ip\"),\n\t\t\t\t\tName:   pulumi.String(\"my-reserved-public-interface\"),\n\t\t\t\t\tPortId: externalFixedIp.PortId,\n\t\t\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\t\t\t_default.Id,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.Reservedfixedip;\nimport com.pulumi.gcore.ReservedfixedipArgs;\nimport com.pulumi.gcore.Instancev2;\nimport com.pulumi.gcore.Instancev2Args;\nimport com.pulumi.gcore.inputs.Instancev2VolumeArgs;\nimport com.pulumi.gcore.inputs.Instancev2InterfaceArgs;\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 externalFixedIp = new Reservedfixedip(\"externalFixedIp\", ReservedfixedipArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .type(\"external\")\n            .build());\n\n        var instanceWithReservedAddress = new Instancev2(\"instanceWithReservedAddress\", Instancev2Args.builder()\n            .flavorId(\"g1-standard-2-4\")\n            .name(\"my-instance\")\n            .keypairName(\"my-keypair\")\n            .volumes(Instancev2VolumeArgs.builder()\n                .volumeId(bootVolume.id())\n                .bootIndex(0.0)\n                .build())\n            .interfaces(Instancev2InterfaceArgs.builder()\n                .type(\"reserved_fixed_ip\")\n                .name(\"my-reserved-public-interface\")\n                .portId(externalFixedIp.portId())\n                .securityGroups(default_.id())\n                .build())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  externalFixedIp:\n    type: gcore:Reservedfixedip\n    name: external_fixed_ip\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      type: external\n  instanceWithReservedAddress:\n    type: gcore:Instancev2\n    name: instance_with_reserved_address\n    properties:\n      flavorId: g1-standard-2-4\n      name: my-instance\n      keypairName: my-keypair\n      volumes:\n        - volumeId: ${bootVolume.id}\n          bootIndex: 0\n      interfaces:\n        - type: reserved_fixed_ip\n          name: my-reserved-public-interface\n          portId: ${externalFixedIp.portId}\n          securityGroups:\n            - ${default.id}\n      projectId: ${project.id}\n      regionId: ${region.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### Creating instance with custom security group\n\nThis example demonstrates how to create an instance with a custom security group. The security group allows all\nincoming traffic on ports 22, 80, and 443. Outgoing traffic is allowed on all ports, except port 25 for security reasons.\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst webServerSecurityGroup = new gcore.Securitygroup(\"web_server_security_group\", {\n    name: \"web server only\",\n    projectId: project.id,\n    regionId: region.id,\n    securityGroupRules: [\n        {\n            direction: \"egress\",\n            ethertype: \"IPv4\",\n            protocol: \"tcp\",\n            portRangeMin: 1,\n            portRangeMax: 24,\n        },\n        {\n            direction: \"egress\",\n            ethertype: \"IPv4\",\n            protocol: \"tcp\",\n            portRangeMin: 26,\n            portRangeMax: 65535,\n        },\n        {\n            direction: \"ingress\",\n            ethertype: \"IPv4\",\n            protocol: \"tcp\",\n            portRangeMin: 22,\n            portRangeMax: 22,\n        },\n        {\n            direction: \"ingress\",\n            ethertype: \"IPv4\",\n            protocol: \"tcp\",\n            portRangeMin: 80,\n            portRangeMax: 80,\n        },\n        {\n            direction: \"ingress\",\n            ethertype: \"IPv4\",\n            protocol: \"tcp\",\n            portRangeMin: 443,\n            portRangeMax: 443,\n        },\n    ],\n});\nconst instanceWithCustomSecurityGroup = new gcore.Instancev2(\"instance_with_custom_security_group\", {\n    flavorId: \"g1-standard-2-4\",\n    name: \"my-instance\",\n    keypairName: \"my-keypair\",\n    volumes: [{\n        volumeId: bootVolume.id,\n        bootIndex: 0,\n    }],\n    interfaces: [{\n        type: \"external\",\n        name: \"my-external-interface\",\n        securityGroups: [webServerSecurityGroup.securitygroupId],\n    }],\n    projectId: project.id,\n    regionId: region.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nweb_server_security_group = gcore.Securitygroup(\"web_server_security_group\",\n    name=\"web server only\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    security_group_rules=[\n        {\n            \"direction\": \"egress\",\n            \"ethertype\": \"IPv4\",\n            \"protocol\": \"tcp\",\n            \"port_range_min\": 1,\n            \"port_range_max\": 24,\n        },\n        {\n            \"direction\": \"egress\",\n            \"ethertype\": \"IPv4\",\n            \"protocol\": \"tcp\",\n            \"port_range_min\": 26,\n            \"port_range_max\": 65535,\n        },\n        {\n            \"direction\": \"ingress\",\n            \"ethertype\": \"IPv4\",\n            \"protocol\": \"tcp\",\n            \"port_range_min\": 22,\n            \"port_range_max\": 22,\n        },\n        {\n            \"direction\": \"ingress\",\n            \"ethertype\": \"IPv4\",\n            \"protocol\": \"tcp\",\n            \"port_range_min\": 80,\n            \"port_range_max\": 80,\n        },\n        {\n            \"direction\": \"ingress\",\n            \"ethertype\": \"IPv4\",\n            \"protocol\": \"tcp\",\n            \"port_range_min\": 443,\n            \"port_range_max\": 443,\n        },\n    ])\ninstance_with_custom_security_group = gcore.Instancev2(\"instance_with_custom_security_group\",\n    flavor_id=\"g1-standard-2-4\",\n    name=\"my-instance\",\n    keypair_name=\"my-keypair\",\n    volumes=[{\n        \"volume_id\": boot_volume[\"id\"],\n        \"boot_index\": 0,\n    }],\n    interfaces=[{\n        \"type\": \"external\",\n        \"name\": \"my-external-interface\",\n        \"security_groups\": [web_server_security_group.securitygroup_id],\n    }],\n    project_id=project[\"id\"],\n    region_id=region[\"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 webServerSecurityGroup = new Gcore.Securitygroup(\"web_server_security_group\", new()\n    {\n        Name = \"web server only\",\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        SecurityGroupRules = new[]\n        {\n            new Gcore.Inputs.SecuritygroupSecurityGroupRuleArgs\n            {\n                Direction = \"egress\",\n                Ethertype = \"IPv4\",\n                Protocol = \"tcp\",\n                PortRangeMin = 1,\n                PortRangeMax = 24,\n            },\n            new Gcore.Inputs.SecuritygroupSecurityGroupRuleArgs\n            {\n                Direction = \"egress\",\n                Ethertype = \"IPv4\",\n                Protocol = \"tcp\",\n                PortRangeMin = 26,\n                PortRangeMax = 65535,\n            },\n            new Gcore.Inputs.SecuritygroupSecurityGroupRuleArgs\n            {\n                Direction = \"ingress\",\n                Ethertype = \"IPv4\",\n                Protocol = \"tcp\",\n                PortRangeMin = 22,\n                PortRangeMax = 22,\n            },\n            new Gcore.Inputs.SecuritygroupSecurityGroupRuleArgs\n            {\n                Direction = \"ingress\",\n                Ethertype = \"IPv4\",\n                Protocol = \"tcp\",\n                PortRangeMin = 80,\n                PortRangeMax = 80,\n            },\n            new Gcore.Inputs.SecuritygroupSecurityGroupRuleArgs\n            {\n                Direction = \"ingress\",\n                Ethertype = \"IPv4\",\n                Protocol = \"tcp\",\n                PortRangeMin = 443,\n                PortRangeMax = 443,\n            },\n        },\n    });\n\n    var instanceWithCustomSecurityGroup = new Gcore.Instancev2(\"instance_with_custom_security_group\", new()\n    {\n        FlavorId = \"g1-standard-2-4\",\n        Name = \"my-instance\",\n        KeypairName = \"my-keypair\",\n        Volumes = new[]\n        {\n            new Gcore.Inputs.Instancev2VolumeArgs\n            {\n                VolumeId = bootVolume.Id,\n                BootIndex = 0,\n            },\n        },\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.Instancev2InterfaceArgs\n            {\n                Type = \"external\",\n                Name = \"my-external-interface\",\n                SecurityGroups = new[]\n                {\n                    webServerSecurityGroup.SecuritygroupId,\n                },\n            },\n        },\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\twebServerSecurityGroup, err := gcore.NewSecuritygroup(ctx, \"web_server_security_group\", \u0026gcore.SecuritygroupArgs{\n\t\t\tName:      pulumi.String(\"web server only\"),\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\tSecurityGroupRules: gcore.SecuritygroupSecurityGroupRuleArray{\n\t\t\t\t\u0026gcore.SecuritygroupSecurityGroupRuleArgs{\n\t\t\t\t\tDirection:    pulumi.String(\"egress\"),\n\t\t\t\t\tEthertype:    pulumi.String(\"IPv4\"),\n\t\t\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t\t\t\tPortRangeMin: pulumi.Float64(1),\n\t\t\t\t\tPortRangeMax: pulumi.Float64(24),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.SecuritygroupSecurityGroupRuleArgs{\n\t\t\t\t\tDirection:    pulumi.String(\"egress\"),\n\t\t\t\t\tEthertype:    pulumi.String(\"IPv4\"),\n\t\t\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t\t\t\tPortRangeMin: pulumi.Float64(26),\n\t\t\t\t\tPortRangeMax: pulumi.Float64(65535),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.SecuritygroupSecurityGroupRuleArgs{\n\t\t\t\t\tDirection:    pulumi.String(\"ingress\"),\n\t\t\t\t\tEthertype:    pulumi.String(\"IPv4\"),\n\t\t\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t\t\t\tPortRangeMin: pulumi.Float64(22),\n\t\t\t\t\tPortRangeMax: pulumi.Float64(22),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.SecuritygroupSecurityGroupRuleArgs{\n\t\t\t\t\tDirection:    pulumi.String(\"ingress\"),\n\t\t\t\t\tEthertype:    pulumi.String(\"IPv4\"),\n\t\t\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t\t\t\tPortRangeMin: pulumi.Float64(80),\n\t\t\t\t\tPortRangeMax: pulumi.Float64(80),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.SecuritygroupSecurityGroupRuleArgs{\n\t\t\t\t\tDirection:    pulumi.String(\"ingress\"),\n\t\t\t\t\tEthertype:    pulumi.String(\"IPv4\"),\n\t\t\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t\t\t\tPortRangeMin: pulumi.Float64(443),\n\t\t\t\t\tPortRangeMax: pulumi.Float64(443),\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.NewInstancev2(ctx, \"instance_with_custom_security_group\", \u0026gcore.Instancev2Args{\n\t\t\tFlavorId:    pulumi.String(\"g1-standard-2-4\"),\n\t\t\tName:        pulumi.String(\"my-instance\"),\n\t\t\tKeypairName: pulumi.String(\"my-keypair\"),\n\t\t\tVolumes: gcore.Instancev2VolumeArray{\n\t\t\t\t\u0026gcore.Instancev2VolumeArgs{\n\t\t\t\t\tVolumeId:  pulumi.Any(bootVolume.Id),\n\t\t\t\t\tBootIndex: pulumi.Float64(0),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInterfaces: gcore.Instancev2InterfaceArray{\n\t\t\t\t\u0026gcore.Instancev2InterfaceArgs{\n\t\t\t\t\tType: pulumi.String(\"external\"),\n\t\t\t\t\tName: pulumi.String(\"my-external-interface\"),\n\t\t\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\t\t\twebServerSecurityGroup.SecuritygroupId,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.Securitygroup;\nimport com.pulumi.gcore.SecuritygroupArgs;\nimport com.pulumi.gcore.inputs.SecuritygroupSecurityGroupRuleArgs;\nimport com.pulumi.gcore.Instancev2;\nimport com.pulumi.gcore.Instancev2Args;\nimport com.pulumi.gcore.inputs.Instancev2VolumeArgs;\nimport com.pulumi.gcore.inputs.Instancev2InterfaceArgs;\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 webServerSecurityGroup = new Securitygroup(\"webServerSecurityGroup\", SecuritygroupArgs.builder()\n            .name(\"web server only\")\n            .projectId(project.id())\n            .regionId(region.id())\n            .securityGroupRules(            \n                SecuritygroupSecurityGroupRuleArgs.builder()\n                    .direction(\"egress\")\n                    .ethertype(\"IPv4\")\n                    .protocol(\"tcp\")\n                    .portRangeMin(1.0)\n                    .portRangeMax(24.0)\n                    .build(),\n                SecuritygroupSecurityGroupRuleArgs.builder()\n                    .direction(\"egress\")\n                    .ethertype(\"IPv4\")\n                    .protocol(\"tcp\")\n                    .portRangeMin(26.0)\n                    .portRangeMax(65535.0)\n                    .build(),\n                SecuritygroupSecurityGroupRuleArgs.builder()\n                    .direction(\"ingress\")\n                    .ethertype(\"IPv4\")\n                    .protocol(\"tcp\")\n                    .portRangeMin(22.0)\n                    .portRangeMax(22.0)\n                    .build(),\n                SecuritygroupSecurityGroupRuleArgs.builder()\n                    .direction(\"ingress\")\n                    .ethertype(\"IPv4\")\n                    .protocol(\"tcp\")\n                    .portRangeMin(80.0)\n                    .portRangeMax(80.0)\n                    .build(),\n                SecuritygroupSecurityGroupRuleArgs.builder()\n                    .direction(\"ingress\")\n                    .ethertype(\"IPv4\")\n                    .protocol(\"tcp\")\n                    .portRangeMin(443.0)\n                    .portRangeMax(443.0)\n                    .build())\n            .build());\n\n        var instanceWithCustomSecurityGroup = new Instancev2(\"instanceWithCustomSecurityGroup\", Instancev2Args.builder()\n            .flavorId(\"g1-standard-2-4\")\n            .name(\"my-instance\")\n            .keypairName(\"my-keypair\")\n            .volumes(Instancev2VolumeArgs.builder()\n                .volumeId(bootVolume.id())\n                .bootIndex(0.0)\n                .build())\n            .interfaces(Instancev2InterfaceArgs.builder()\n                .type(\"external\")\n                .name(\"my-external-interface\")\n                .securityGroups(webServerSecurityGroup.securitygroupId())\n                .build())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  webServerSecurityGroup:\n    type: gcore:Securitygroup\n    name: web_server_security_group\n    properties:\n      name: web server only\n      projectId: ${project.id}\n      regionId: ${region.id}\n      securityGroupRules:\n        - direction: egress\n          ethertype: IPv4\n          protocol: tcp\n          portRangeMin: 1\n          portRangeMax: 24\n        - direction: egress\n          ethertype: IPv4\n          protocol: tcp\n          portRangeMin: 26\n          portRangeMax: 65535\n        - direction: ingress\n          ethertype: IPv4\n          protocol: tcp\n          portRangeMin: 22\n          portRangeMax: 22\n        - direction: ingress\n          ethertype: IPv4\n          protocol: tcp\n          portRangeMin: 80\n          portRangeMax: 80\n        - direction: ingress\n          ethertype: IPv4\n          protocol: tcp\n          portRangeMin: 443\n          portRangeMax: 443\n  instanceWithCustomSecurityGroup:\n    type: gcore:Instancev2\n    name: instance_with_custom_security_group\n    properties:\n      flavorId: g1-standard-2-4\n      name: my-instance\n      keypairName: my-keypair\n      volumes:\n        - volumeId: ${bootVolume.id}\n          bootIndex: 0\n      interfaces:\n        - type: external\n          name: my-external-interface\n          securityGroups:\n            - ${webServerSecurityGroup.securitygroupId}\n      projectId: ${project.id}\n      regionId: ${region.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n## Import\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003cinstance_id\u003e format\n\n```sh\n$ pulumi import gcore:index/instancev2:Instancev2 instance1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"addresses":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstancev2Address:Instancev2Address"},"description":"List of instance addresses\n"},"allowAppPorts":{"type":"boolean","description":"If true, application ports will be allowed in the security group for instances created\n\t\t\tfrom the marketplace application template\n"},"configurations":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstancev2Configuration:Instancev2Configuration"},"description":"Parameters for the application template from the marketplace\n"},"flavor":{"type":"object","additionalProperties":{"type":"string"},"description":"Flavor details, RAM, vCPU, etc.\n"},"flavorId":{"type":"string","description":"Flavor ID\n"},"instancev2Id":{"type":"string","description":"The ID of this resource.\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstancev2Interface:Instancev2Interface"},"description":"List of interfaces for the instance. You can detach the interface from the instance by removing the\ninterface from the instance resource and attach the interface by adding the interface resource\ninside an instance resource.\n"},"keypairName":{"type":"string","description":"Name of the keypair to use for the instance\n"},"lastUpdated":{"type":"string"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"},"description":"Create one or more metadata items for the instance\n"},"metadataReadOnlies":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstancev2MetadataReadOnly:Instancev2MetadataReadOnly"}},"name":{"type":"string","description":"Name of the instance.\n"},"nameTemplate":{"type":"string","description":"Instance name template. You can use forms 'ip*octets', 'two*ip*octets', 'one*ip_octet'\n"},"password":{"type":"string","description":"For Linux instances, 'username' and 'password' are used to create a new user.\nWhen only 'password' is provided, it is set as the password for the default user of the image. 'user*data' is ignored\nwhen 'password' is specified. For Windows instances, 'username' cannot be specified. Use the 'password' field to set\nthe password for the 'Admin' user on Windows. Use the 'user*data' field to provide a script to create new users\non Windows. The password of the Admin user cannot be updated via 'user_data'\n","secret":true},"projectId":{"type":"number","description":"Project ID, only one of project*id or project*name should be set\n"},"projectName":{"type":"string","description":"Project name, only one of project*id or project*name should be set\n"},"regionId":{"type":"number","description":"Region ID, only one of region*id or region*name should be set\n"},"regionName":{"type":"string","description":"Region name, only one of region*id or region*name should be set\n"},"serverGroup":{"type":"string","description":"ID of the server group to use for the instance\n"},"status":{"type":"string","description":"Status of the instance\n"},"userData":{"type":"string","description":"String in base64 format. For Linux instances, 'user*data' is ignored when 'password' field is provided.\nFor Windows instances, Admin user password is set by 'password' field and cannot be updated via 'user*data'\n"},"username":{"type":"string","description":"For Linux instances, 'username' and 'password' are used to create a new user. For Windows\ninstances, 'username' cannot be specified. Use 'password' field to set the password for the 'Admin' user on Windows.\n"},"vmState":{"type":"string","description":"Current vm state, use stopped to stop vm and active to start\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstancev2Volume:Instancev2Volume"},"description":"List of volumes for the instance. You can detach the volume from the instance by removing the\nvolume from the instance resource. You cannot detach the boot volume. You can attach a data volume\nby adding the volume resource inside an instance resource.\n"}},"type":"object","required":["addresses","flavor","flavorId","instancev2Id","interfaces","lastUpdated","metadataReadOnlies","name","status","vmState","volumes"],"inputProperties":{"allowAppPorts":{"type":"boolean","description":"If true, application ports will be allowed in the security group for instances created\n\t\t\tfrom the marketplace application template\n"},"configurations":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstancev2Configuration:Instancev2Configuration"},"description":"Parameters for the application template from the marketplace\n"},"flavorId":{"type":"string","description":"Flavor ID\n"},"instancev2Id":{"type":"string","description":"The ID of this resource.\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstancev2Interface:Instancev2Interface"},"description":"List of interfaces for the instance. You can detach the interface from the instance by removing the\ninterface from the instance resource and attach the interface by adding the interface resource\ninside an instance resource.\n"},"keypairName":{"type":"string","description":"Name of the keypair to use for the instance\n"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"},"description":"Create one or more metadata items for the instance\n"},"name":{"type":"string","description":"Name of the instance.\n"},"nameTemplate":{"type":"string","description":"Instance name template. You can use forms 'ip*octets', 'two*ip*octets', 'one*ip_octet'\n"},"password":{"type":"string","description":"For Linux instances, 'username' and 'password' are used to create a new user.\nWhen only 'password' is provided, it is set as the password for the default user of the image. 'user*data' is ignored\nwhen 'password' is specified. For Windows instances, 'username' cannot be specified. Use the 'password' field to set\nthe password for the 'Admin' user on Windows. Use the 'user*data' field to provide a script to create new users\non Windows. The password of the Admin user cannot be updated via 'user_data'\n","secret":true},"projectId":{"type":"number","description":"Project ID, only one of project*id or project*name should be set\n"},"projectName":{"type":"string","description":"Project name, only one of project*id or project*name should be set\n"},"regionId":{"type":"number","description":"Region ID, only one of region*id or region*name should be set\n"},"regionName":{"type":"string","description":"Region name, only one of region*id or region*name should be set\n"},"serverGroup":{"type":"string","description":"ID of the server group to use for the instance\n"},"userData":{"type":"string","description":"String in base64 format. For Linux instances, 'user*data' is ignored when 'password' field is provided.\nFor Windows instances, Admin user password is set by 'password' field and cannot be updated via 'user*data'\n"},"username":{"type":"string","description":"For Linux instances, 'username' and 'password' are used to create a new user. For Windows\ninstances, 'username' cannot be specified. Use 'password' field to set the password for the 'Admin' user on Windows.\n"},"vmState":{"type":"string","description":"Current vm state, use stopped to stop vm and active to start\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstancev2Volume:Instancev2Volume"},"description":"List of volumes for the instance. You can detach the volume from the instance by removing the\nvolume from the instance resource. You cannot detach the boot volume. You can attach a data volume\nby adding the volume resource inside an instance resource.\n"}},"requiredInputs":["flavorId","interfaces","volumes"],"stateInputs":{"description":"Input properties used for looking up and filtering Instancev2 resources.\n","properties":{"addresses":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstancev2Address:Instancev2Address"},"description":"List of instance addresses\n"},"allowAppPorts":{"type":"boolean","description":"If true, application ports will be allowed in the security group for instances created\n\t\t\tfrom the marketplace application template\n"},"configurations":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstancev2Configuration:Instancev2Configuration"},"description":"Parameters for the application template from the marketplace\n"},"flavor":{"type":"object","additionalProperties":{"type":"string"},"description":"Flavor details, RAM, vCPU, etc.\n"},"flavorId":{"type":"string","description":"Flavor ID\n"},"instancev2Id":{"type":"string","description":"The ID of this resource.\n"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstancev2Interface:Instancev2Interface"},"description":"List of interfaces for the instance. You can detach the interface from the instance by removing the\ninterface from the instance resource and attach the interface by adding the interface resource\ninside an instance resource.\n"},"keypairName":{"type":"string","description":"Name of the keypair to use for the instance\n"},"lastUpdated":{"type":"string"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"},"description":"Create one or more metadata items for the instance\n"},"metadataReadOnlies":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstancev2MetadataReadOnly:Instancev2MetadataReadOnly"}},"name":{"type":"string","description":"Name of the instance.\n"},"nameTemplate":{"type":"string","description":"Instance name template. You can use forms 'ip*octets', 'two*ip*octets', 'one*ip_octet'\n"},"password":{"type":"string","description":"For Linux instances, 'username' and 'password' are used to create a new user.\nWhen only 'password' is provided, it is set as the password for the default user of the image. 'user*data' is ignored\nwhen 'password' is specified. For Windows instances, 'username' cannot be specified. Use the 'password' field to set\nthe password for the 'Admin' user on Windows. Use the 'user*data' field to provide a script to create new users\non Windows. The password of the Admin user cannot be updated via 'user_data'\n","secret":true},"projectId":{"type":"number","description":"Project ID, only one of project*id or project*name should be set\n"},"projectName":{"type":"string","description":"Project name, only one of project*id or project*name should be set\n"},"regionId":{"type":"number","description":"Region ID, only one of region*id or region*name should be set\n"},"regionName":{"type":"string","description":"Region name, only one of region*id or region*name should be set\n"},"serverGroup":{"type":"string","description":"ID of the server group to use for the instance\n"},"status":{"type":"string","description":"Status of the instance\n"},"userData":{"type":"string","description":"String in base64 format. For Linux instances, 'user*data' is ignored when 'password' field is provided.\nFor Windows instances, Admin user password is set by 'password' field and cannot be updated via 'user*data'\n"},"username":{"type":"string","description":"For Linux instances, 'username' and 'password' are used to create a new user. For Windows\ninstances, 'username' cannot be specified. Use 'password' field to set the password for the 'Admin' user on Windows.\n"},"vmState":{"type":"string","description":"Current vm state, use stopped to stop vm and active to start\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FInstancev2Volume:Instancev2Volume"},"description":"List of volumes for the instance. You can detach the volume from the instance by removing the\nvolume from the instance resource. You cannot detach the boot volume. You can attach a data volume\nby adding the volume resource inside an instance resource.\n"}},"type":"object"}},"gcore:index/k8sv2:K8sv2":{"description":"Represent k8s cluster with one default pool.\n\n## 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\nconst project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\nconst myKeypair = new gcore.Keypair(\"my_keypair\", {\n    projectId: project.then(project =\u003e project.id),\n    sshkeyName: \"my-keypair\",\n    publicKey: \"ssh-ed25519 ...your public key... gcore@gcore.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\nmy_keypair = gcore.Keypair(\"my_keypair\",\n    project_id=project.id,\n    sshkey_name=\"my-keypair\",\n    public_key=\"ssh-ed25519 ...your public key... gcore@gcore.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    var project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n    var myKeypair = new Gcore.Keypair(\"my_keypair\", new()\n    {\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        SshkeyName = \"my-keypair\",\n        PublicKey = \"ssh-ed25519 ...your public key... gcore@gcore.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tproject, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewKeypair(ctx, \"my_keypair\", \u0026gcore.KeypairArgs{\n\t\t\tProjectId:  pulumi.String(project.Id),\n\t\t\tSshkeyName: 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\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.Keypair;\nimport com.pulumi.gcore.KeypairArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n        var myKeypair = new Keypair(\"myKeypair\", KeypairArgs.builder()\n            .projectId(project.id())\n            .sshkeyName(\"my-keypair\")\n            .publicKey(\"ssh-ed25519 ...your public key... gcore@gcore.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myKeypair:\n    type: gcore:Keypair\n    name: my_keypair\n    properties:\n      projectId: ${project.id}\n      sshkeyName: my-keypair\n      publicKey: ssh-ed25519 ...your public key... gcore@gcore.com\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating a managed Kubernetes cluster in a private network\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.Network(\"network\", {\n    name: \"my-network\",\n    type: \"vxlan\",\n    projectId: project.id,\n    regionId: region.id,\n});\nconst subnet = new gcore.Subnet(\"subnet\", {\n    name: \"my-subnet\",\n    cidr: \"192.168.10.0/24\",\n    networkId: network.networkId,\n    projectId: project.id,\n    regionId: region.id,\n});\nconst cluster = new gcore.K8sv2(\"cluster\", {\n    projectId: project.id,\n    regionId: region.id,\n    name: \"my-k8s-cluster\",\n    fixedNetwork: network.networkId,\n    fixedSubnet: subnet.subnetId,\n    keypair: myKeypair.sshkeyName,\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});\nconst config = cluster.name.apply(name =\u003e gcore.getK8sv2KubeconfigOutput({\n    clusterName: name,\n    regionId: region.id,\n    projectId: project.id,\n}));\nexport const kubeconfig = config.apply(config =\u003e config.kubeconfig);\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nnetwork = gcore.Network(\"network\",\n    name=\"my-network\",\n    type=\"vxlan\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"])\nsubnet = gcore.Subnet(\"subnet\",\n    name=\"my-subnet\",\n    cidr=\"192.168.10.0/24\",\n    network_id=network.network_id,\n    project_id=project[\"id\"],\n    region_id=region[\"id\"])\ncluster = gcore.K8sv2(\"cluster\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"my-k8s-cluster\",\n    fixed_network=network.network_id,\n    fixed_subnet=subnet.subnet_id,\n    keypair=my_keypair[\"sshkeyName\"],\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    }])\nconfig = cluster.name.apply(lambda name: gcore.get_k8sv2_kubeconfig_output(cluster_name=name,\n    region_id=region[\"id\"],\n    project_id=project[\"id\"]))\npulumi.export(\"kubeconfig\", config.kubeconfig)\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.Network(\"network\", new()\n    {\n        Name = \"my-network\",\n        Type = \"vxlan\",\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n    var subnet = new Gcore.Subnet(\"subnet\", new()\n    {\n        Name = \"my-subnet\",\n        Cidr = \"192.168.10.0/24\",\n        NetworkId = network.NetworkId,\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n    var cluster = new Gcore.K8sv2(\"cluster\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"my-k8s-cluster\",\n        FixedNetwork = network.NetworkId,\n        FixedSubnet = subnet.SubnetId,\n        Keypair = myKeypair.SshkeyName,\n        Version = \"v1.31.9\",\n        Pools = new[]\n        {\n            new Gcore.Inputs.K8sv2PoolArgs\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    var config = Gcore.GetK8sv2Kubeconfig.Invoke(new()\n    {\n        ClusterName = cluster.Name,\n        RegionId = region.Id,\n        ProjectId = project.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"kubeconfig\"] = config.Apply(getK8sv2KubeconfigResult =\u003e getK8sv2KubeconfigResult.Kubeconfig),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewNetwork(ctx, \"network\", \u0026gcore.NetworkArgs{\n\t\t\tName:      pulumi.String(\"my-network\"),\n\t\t\tType:      pulumi.String(\"vxlan\"),\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet, err := gcore.NewSubnet(ctx, \"subnet\", \u0026gcore.SubnetArgs{\n\t\t\tName:      pulumi.String(\"my-subnet\"),\n\t\t\tCidr:      pulumi.String(\"192.168.10.0/24\"),\n\t\t\tNetworkId: network.NetworkId,\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := gcore.NewK8sv2(ctx, \"cluster\", \u0026gcore.K8sv2Args{\n\t\t\tProjectId:    pulumi.Any(project.Id),\n\t\t\tRegionId:     pulumi.Any(region.Id),\n\t\t\tName:         pulumi.String(\"my-k8s-cluster\"),\n\t\t\tFixedNetwork: network.NetworkId,\n\t\t\tFixedSubnet:  subnet.SubnetId,\n\t\t\tKeypair:      pulumi.Any(myKeypair.SshkeyName),\n\t\t\tVersion:      pulumi.String(\"v1.31.9\"),\n\t\t\tPools: gcore.K8sv2PoolArray{\n\t\t\t\t\u0026gcore.K8sv2PoolArgs{\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\tconfig := cluster.Name.ApplyT(func(name string) (gcore.GetK8sv2KubeconfigResult, error) {\n\t\t\treturn gcore.GetK8sv2KubeconfigResult(interface{}(gcore.GetK8sv2KubeconfigOutput(ctx, gcore.GetK8sv2KubeconfigOutputArgs{\n\t\t\t\tClusterName: name,\n\t\t\t\tRegionId:    region.Id,\n\t\t\t\tProjectId:   project.Id,\n\t\t\t}, nil))), nil\n\t\t}).(gcore.GetK8sv2KubeconfigResultOutput)\n\t\tctx.Export(\"kubeconfig\", config.ApplyT(func(config gcore.GetK8sv2KubeconfigResult) (*string, error) {\n\t\t\treturn \u0026config.Kubeconfig, nil\n\t\t}).(pulumi.StringPtrOutput))\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.Network;\nimport com.pulumi.gcore.NetworkArgs;\nimport com.pulumi.gcore.Subnet;\nimport com.pulumi.gcore.SubnetArgs;\nimport com.pulumi.gcore.K8sv2;\nimport com.pulumi.gcore.K8sv2Args;\nimport com.pulumi.gcore.inputs.K8sv2PoolArgs;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetK8sv2KubeconfigArgs;\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 Network(\"network\", NetworkArgs.builder()\n            .name(\"my-network\")\n            .type(\"vxlan\")\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        var subnet = new Subnet(\"subnet\", SubnetArgs.builder()\n            .name(\"my-subnet\")\n            .cidr(\"192.168.10.0/24\")\n            .networkId(network.networkId())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        var cluster = new K8sv2(\"cluster\", K8sv2Args.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"my-k8s-cluster\")\n            .fixedNetwork(network.networkId())\n            .fixedSubnet(subnet.subnetId())\n            .keypair(myKeypair.sshkeyName())\n            .version(\"v1.31.9\")\n            .pools(K8sv2PoolArgs.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        final var config = cluster.name().applyValue(_name -\u003e GcoreFunctions.getK8sv2Kubeconfig(GetK8sv2KubeconfigArgs.builder()\n            .clusterName(_name)\n            .regionId(region.id())\n            .projectId(project.id())\n            .build()));\n\n        ctx.export(\"kubeconfig\", config.applyValue(_config -\u003e _config.kubeconfig()));\n    }\n}\n```\n```yaml\nresources:\n  network:\n    type: gcore:Network\n    properties:\n      name: my-network\n      type: vxlan\n      projectId: ${project.id}\n      regionId: ${region.id}\n  subnet:\n    type: gcore:Subnet\n    properties:\n      name: my-subnet\n      cidr: 192.168.10.0/24\n      networkId: ${network.networkId}\n      projectId: ${project.id}\n      regionId: ${region.id}\n  cluster:\n    type: gcore:K8sv2\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: my-k8s-cluster\n      fixedNetwork: ${network.networkId}\n      fixedSubnet: ${subnet.subnetId}\n      keypair: ${myKeypair.sshkeyName}\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\nvariables:\n  config:\n    fn::invoke:\n      function: gcore:getK8sv2Kubeconfig\n      arguments:\n        clusterName: ${cluster.name}\n        regionId: ${region.id}\n        projectId: ${project.id}\noutputs:\n  # to store kubeconfig in a file pls use\n  # // terraform output -raw kubeconfig \u003e config.yaml\n  kubeconfig: ${config.kubeconfig}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating a managed Kubernetes cluster in a public network with advanced DDoS protection\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst cluster = new gcore.K8sv2(\"cluster\", {\n    projectId: project.id,\n    regionId: region.id,\n    name: \"my-k8s-cluster\",\n    keypair: myKeypair.sshkeyName,\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        isPublicIpv4: true,\n    }],\n    ddosProfile: {\n        enabled: true,\n        fields: [\n            {\n                baseField: 1353,\n                fieldValue: JSON.stringify([\"AF\"]),\n            },\n            {\n                baseField: 1354,\n                fieldValue: JSON.stringify(50),\n            },\n            {\n                baseField: 1355,\n                fieldValue: JSON.stringify(150),\n            },\n            {\n                baseField: 1356,\n                fieldValue: JSON.stringify(300),\n            },\n            {\n                baseField: 1357,\n                fieldValue: JSON.stringify(300),\n            },\n            {\n                baseField: 1352,\n                fieldValue: JSON.stringify([{\n                    sip_list: [\n                        \"192.168.0.1\",\n                        \"10.10.0.1\",\n                    ],\n                    dport_list: [\n                        \"27015\",\n                        \"27025\",\n                    ],\n                    proto_list: [\"udp\"],\n                    sport_list: [\"27025\"],\n                    policy: \"DROP\",\n                }]),\n            },\n        ],\n        profileTemplate: 1128,\n    },\n});\nconst config = cluster.name.apply(name =\u003e gcore.getK8sv2KubeconfigOutput({\n    clusterName: name,\n    regionId: region.id,\n    projectId: project.id,\n}));\nexport const kubeconfig = config.apply(config =\u003e config.kubeconfig);\n```\n```python\nimport pulumi\nimport json\nimport pulumi_gcore as gcore\n\ncluster = gcore.K8sv2(\"cluster\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"my-k8s-cluster\",\n    keypair=my_keypair[\"sshkeyName\"],\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        \"is_public_ipv4\": True,\n    }],\n    ddos_profile={\n        \"enabled\": True,\n        \"fields\": [\n            {\n                \"base_field\": 1353,\n                \"field_value\": json.dumps([\"AF\"]),\n            },\n            {\n                \"base_field\": 1354,\n                \"field_value\": json.dumps(50),\n            },\n            {\n                \"base_field\": 1355,\n                \"field_value\": json.dumps(150),\n            },\n            {\n                \"base_field\": 1356,\n                \"field_value\": json.dumps(300),\n            },\n            {\n                \"base_field\": 1357,\n                \"field_value\": json.dumps(300),\n            },\n            {\n                \"base_field\": 1352,\n                \"field_value\": json.dumps([{\n                    \"sip_list\": [\n                        \"192.168.0.1\",\n                        \"10.10.0.1\",\n                    ],\n                    \"dport_list\": [\n                        \"27015\",\n                        \"27025\",\n                    ],\n                    \"proto_list\": [\"udp\"],\n                    \"sport_list\": [\"27025\"],\n                    \"policy\": \"DROP\",\n                }]),\n            },\n        ],\n        \"profile_template\": 1128,\n    })\nconfig = cluster.name.apply(lambda name: gcore.get_k8sv2_kubeconfig_output(cluster_name=name,\n    region_id=region[\"id\"],\n    project_id=project[\"id\"]))\npulumi.export(\"kubeconfig\", config.kubeconfig)\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    var cluster = new Gcore.K8sv2(\"cluster\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"my-k8s-cluster\",\n        Keypair = myKeypair.SshkeyName,\n        Version = \"v1.31.9\",\n        Pools = new[]\n        {\n            new Gcore.Inputs.K8sv2PoolArgs\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                IsPublicIpv4 = true,\n            },\n        },\n        DdosProfile = new Gcore.Inputs.K8sv2DdosProfileArgs\n        {\n            Enabled = true,\n            Fields = new[]\n            {\n                new Gcore.Inputs.K8sv2DdosProfileFieldArgs\n                {\n                    BaseField = 1353,\n                    FieldValue = JsonSerializer.Serialize(new[]\n                    {\n                        \"AF\",\n                    }),\n                },\n                new Gcore.Inputs.K8sv2DdosProfileFieldArgs\n                {\n                    BaseField = 1354,\n                    FieldValue = JsonSerializer.Serialize(50),\n                },\n                new Gcore.Inputs.K8sv2DdosProfileFieldArgs\n                {\n                    BaseField = 1355,\n                    FieldValue = JsonSerializer.Serialize(150),\n                },\n                new Gcore.Inputs.K8sv2DdosProfileFieldArgs\n                {\n                    BaseField = 1356,\n                    FieldValue = JsonSerializer.Serialize(300),\n                },\n                new Gcore.Inputs.K8sv2DdosProfileFieldArgs\n                {\n                    BaseField = 1357,\n                    FieldValue = JsonSerializer.Serialize(300),\n                },\n                new Gcore.Inputs.K8sv2DdosProfileFieldArgs\n                {\n                    BaseField = 1352,\n                    FieldValue = JsonSerializer.Serialize(new[]\n                    {\n                        new Dictionary\u003cstring, object?\u003e\n                        {\n                            [\"sip_list\"] = new[]\n                            {\n                                \"192.168.0.1\",\n                                \"10.10.0.1\",\n                            },\n                            [\"dport_list\"] = new[]\n                            {\n                                \"27015\",\n                                \"27025\",\n                            },\n                            [\"proto_list\"] = new[]\n                            {\n                                \"udp\",\n                            },\n                            [\"sport_list\"] = new[]\n                            {\n                                \"27025\",\n                            },\n                            [\"policy\"] = \"DROP\",\n                        },\n                    }),\n                },\n            },\n            ProfileTemplate = 1128,\n        },\n    });\n\n    var config = Gcore.GetK8sv2Kubeconfig.Invoke(new()\n    {\n        ClusterName = cluster.Name,\n        RegionId = region.Id,\n        ProjectId = project.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"kubeconfig\"] = config.Apply(getK8sv2KubeconfigResult =\u003e getK8sv2KubeconfigResult.Kubeconfig),\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/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([]string{\n\t\t\t\"AF\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal(50)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\ttmpJSON2, err := json.Marshal(150)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson2 := string(tmpJSON2)\n\t\ttmpJSON3, err := json.Marshal(300)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson3 := string(tmpJSON3)\n\t\ttmpJSON4, err := json.Marshal(300)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson4 := string(tmpJSON4)\n\t\ttmpJSON5, err := json.Marshal([]map[string]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"sip_list\": []string{\n\t\t\t\t\t\"192.168.0.1\",\n\t\t\t\t\t\"10.10.0.1\",\n\t\t\t\t},\n\t\t\t\t\"dport_list\": []string{\n\t\t\t\t\t\"27015\",\n\t\t\t\t\t\"27025\",\n\t\t\t\t},\n\t\t\t\t\"proto_list\": []string{\n\t\t\t\t\t\"udp\",\n\t\t\t\t},\n\t\t\t\t\"sport_list\": []string{\n\t\t\t\t\t\"27025\",\n\t\t\t\t},\n\t\t\t\t\"policy\": \"DROP\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson5 := string(tmpJSON5)\n\t\tcluster, err := gcore.NewK8sv2(ctx, \"cluster\", \u0026gcore.K8sv2Args{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\tName:      pulumi.String(\"my-k8s-cluster\"),\n\t\t\tKeypair:   pulumi.Any(myKeypair.SshkeyName),\n\t\t\tVersion:   pulumi.String(\"v1.31.9\"),\n\t\t\tPools: gcore.K8sv2PoolArray{\n\t\t\t\t\u0026gcore.K8sv2PoolArgs{\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\tIsPublicIpv4:      pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDdosProfile: \u0026gcore.K8sv2DdosProfileArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tFields: gcore.K8sv2DdosProfileFieldArray{\n\t\t\t\t\t\u0026gcore.K8sv2DdosProfileFieldArgs{\n\t\t\t\t\t\tBaseField:  pulumi.Float64(1353),\n\t\t\t\t\t\tFieldValue: pulumi.String(json0),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026gcore.K8sv2DdosProfileFieldArgs{\n\t\t\t\t\t\tBaseField:  pulumi.Float64(1354),\n\t\t\t\t\t\tFieldValue: pulumi.String(json1),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026gcore.K8sv2DdosProfileFieldArgs{\n\t\t\t\t\t\tBaseField:  pulumi.Float64(1355),\n\t\t\t\t\t\tFieldValue: pulumi.String(json2),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026gcore.K8sv2DdosProfileFieldArgs{\n\t\t\t\t\t\tBaseField:  pulumi.Float64(1356),\n\t\t\t\t\t\tFieldValue: pulumi.String(json3),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026gcore.K8sv2DdosProfileFieldArgs{\n\t\t\t\t\t\tBaseField:  pulumi.Float64(1357),\n\t\t\t\t\t\tFieldValue: pulumi.String(json4),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026gcore.K8sv2DdosProfileFieldArgs{\n\t\t\t\t\t\tBaseField:  pulumi.Float64(1352),\n\t\t\t\t\t\tFieldValue: pulumi.String(json5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tProfileTemplate: pulumi.Float64(1128),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tconfig := cluster.Name.ApplyT(func(name string) (gcore.GetK8sv2KubeconfigResult, error) {\n\t\t\treturn gcore.GetK8sv2KubeconfigResult(interface{}(gcore.GetK8sv2KubeconfigOutput(ctx, gcore.GetK8sv2KubeconfigOutputArgs{\n\t\t\t\tClusterName: name,\n\t\t\t\tRegionId:    region.Id,\n\t\t\t\tProjectId:   project.Id,\n\t\t\t}, nil))), nil\n\t\t}).(gcore.GetK8sv2KubeconfigResultOutput)\n\t\tctx.Export(\"kubeconfig\", config.ApplyT(func(config gcore.GetK8sv2KubeconfigResult) (*string, error) {\n\t\t\treturn \u0026config.Kubeconfig, nil\n\t\t}).(pulumi.StringPtrOutput))\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.K8sv2;\nimport com.pulumi.gcore.K8sv2Args;\nimport com.pulumi.gcore.inputs.K8sv2PoolArgs;\nimport com.pulumi.gcore.inputs.K8sv2DdosProfileArgs;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetK8sv2KubeconfigArgs;\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        var cluster = new K8sv2(\"cluster\", K8sv2Args.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"my-k8s-cluster\")\n            .keypair(myKeypair.sshkeyName())\n            .version(\"v1.31.9\")\n            .pools(K8sv2PoolArgs.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                .isPublicIpv4(true)\n                .build())\n            .ddosProfile(K8sv2DdosProfileArgs.builder()\n                .enabled(true)\n                .fields(                \n                    K8sv2DdosProfileFieldArgs.builder()\n                        .baseField(1353.0)\n                        .fieldValue(serializeJson(\n                            jsonArray(\"AF\")))\n                        .build(),\n                    K8sv2DdosProfileFieldArgs.builder()\n                        .baseField(1354.0)\n                        .fieldValue(serializeJson(\n                            50))\n                        .build(),\n                    K8sv2DdosProfileFieldArgs.builder()\n                        .baseField(1355.0)\n                        .fieldValue(serializeJson(\n                            150))\n                        .build(),\n                    K8sv2DdosProfileFieldArgs.builder()\n                        .baseField(1356.0)\n                        .fieldValue(serializeJson(\n                            300))\n                        .build(),\n                    K8sv2DdosProfileFieldArgs.builder()\n                        .baseField(1357.0)\n                        .fieldValue(serializeJson(\n                            300))\n                        .build(),\n                    K8sv2DdosProfileFieldArgs.builder()\n                        .baseField(1352.0)\n                        .fieldValue(serializeJson(\n                            jsonArray(jsonObject(\n                                jsonProperty(\"sip_list\", jsonArray(\n                                    \"192.168.0.1\", \n                                    \"10.10.0.1\"\n                                )),\n                                jsonProperty(\"dport_list\", jsonArray(\n                                    \"27015\", \n                                    \"27025\"\n                                )),\n                                jsonProperty(\"proto_list\", jsonArray(\"udp\")),\n                                jsonProperty(\"sport_list\", jsonArray(\"27025\")),\n                                jsonProperty(\"policy\", \"DROP\")\n                            ))))\n                        .build())\n                .profileTemplate(1128.0)\n                .build())\n            .build());\n\n        final var config = cluster.name().applyValue(_name -\u003e GcoreFunctions.getK8sv2Kubeconfig(GetK8sv2KubeconfigArgs.builder()\n            .clusterName(_name)\n            .regionId(region.id())\n            .projectId(project.id())\n            .build()));\n\n        ctx.export(\"kubeconfig\", config.applyValue(_config -\u003e _config.kubeconfig()));\n    }\n}\n```\n```yaml\nresources:\n  cluster:\n    type: gcore:K8sv2\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: my-k8s-cluster\n      keypair: ${myKeypair.sshkeyName}\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          isPublicIpv4: true\n      ddosProfile:\n        enabled: true\n        fields:\n          - baseField: 1353\n            fieldValue:\n              fn::toJSON:\n                - AF\n          - baseField: 1354\n            fieldValue:\n              fn::toJSON: 50\n          - baseField: 1355\n            fieldValue:\n              fn::toJSON: 150\n          - baseField: 1356\n            fieldValue:\n              fn::toJSON: 300\n          - baseField: 1357\n            fieldValue:\n              fn::toJSON: 300\n          - baseField: 1352\n            fieldValue:\n              fn::toJSON:\n                - sip_list:\n                    - 192.168.0.1\n                    - 10.10.0.1\n                  dport_list:\n                    - '27015'\n                    - '27025'\n                  proto_list:\n                    - udp\n                  sport_list:\n                    - '27025'\n                  policy: DROP\n        profileTemplate: 1128\nvariables:\n  config:\n    fn::invoke:\n      function: gcore:getK8sv2Kubeconfig\n      arguments:\n        clusterName: ${cluster.name}\n        regionId: ${region.id}\n        projectId: ${project.id}\noutputs:\n  # to store kubeconfig in a file pls use\n  # // terraform output -raw kubeconfig \u003e config.yaml\n  kubeconfig: ${config.kubeconfig}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating a managed Kubernetes cluster in a public network with custom security group rules\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst cluster = new gcore.K8sv2(\"cluster\", {\n    projectId: project.id,\n    regionId: region.id,\n    name: \"my-k8s-cluster\",\n    keypair: myKeypair.sshkeyName,\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        isPublicIpv4: true,\n    }],\n    securityGroupRules: [{\n        direction: \"ingress\",\n        ethertype: \"IPv4\",\n        protocol: \"tcp\",\n        portRangeMin: 80,\n        portRangeMax: 80,\n    }],\n});\nconst config = cluster.name.apply(name =\u003e gcore.getK8sv2KubeconfigOutput({\n    clusterName: name,\n    regionId: region.id,\n    projectId: project.id,\n}));\nexport const kubeconfig = config.apply(config =\u003e config.kubeconfig);\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ncluster = gcore.K8sv2(\"cluster\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"my-k8s-cluster\",\n    keypair=my_keypair[\"sshkeyName\"],\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        \"is_public_ipv4\": True,\n    }],\n    security_group_rules=[{\n        \"direction\": \"ingress\",\n        \"ethertype\": \"IPv4\",\n        \"protocol\": \"tcp\",\n        \"port_range_min\": 80,\n        \"port_range_max\": 80,\n    }])\nconfig = cluster.name.apply(lambda name: gcore.get_k8sv2_kubeconfig_output(cluster_name=name,\n    region_id=region[\"id\"],\n    project_id=project[\"id\"]))\npulumi.export(\"kubeconfig\", config.kubeconfig)\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 cluster = new Gcore.K8sv2(\"cluster\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"my-k8s-cluster\",\n        Keypair = myKeypair.SshkeyName,\n        Version = \"v1.31.9\",\n        Pools = new[]\n        {\n            new Gcore.Inputs.K8sv2PoolArgs\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                IsPublicIpv4 = true,\n            },\n        },\n        SecurityGroupRules = new[]\n        {\n            new Gcore.Inputs.K8sv2SecurityGroupRuleArgs\n            {\n                Direction = \"ingress\",\n                Ethertype = \"IPv4\",\n                Protocol = \"tcp\",\n                PortRangeMin = 80,\n                PortRangeMax = 80,\n            },\n        },\n    });\n\n    var config = Gcore.GetK8sv2Kubeconfig.Invoke(new()\n    {\n        ClusterName = cluster.Name,\n        RegionId = region.Id,\n        ProjectId = project.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"kubeconfig\"] = config.Apply(getK8sv2KubeconfigResult =\u003e getK8sv2KubeconfigResult.Kubeconfig),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tcluster, err := gcore.NewK8sv2(ctx, \"cluster\", \u0026gcore.K8sv2Args{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\tName:      pulumi.String(\"my-k8s-cluster\"),\n\t\t\tKeypair:   pulumi.Any(myKeypair.SshkeyName),\n\t\t\tVersion:   pulumi.String(\"v1.31.9\"),\n\t\t\tPools: gcore.K8sv2PoolArray{\n\t\t\t\t\u0026gcore.K8sv2PoolArgs{\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\tIsPublicIpv4:      pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSecurityGroupRules: gcore.K8sv2SecurityGroupRuleArray{\n\t\t\t\t\u0026gcore.K8sv2SecurityGroupRuleArgs{\n\t\t\t\t\tDirection:    pulumi.String(\"ingress\"),\n\t\t\t\t\tEthertype:    pulumi.String(\"IPv4\"),\n\t\t\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t\t\t\tPortRangeMin: pulumi.Float64(80),\n\t\t\t\t\tPortRangeMax: pulumi.Float64(80),\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\tconfig := cluster.Name.ApplyT(func(name string) (gcore.GetK8sv2KubeconfigResult, error) {\n\t\t\treturn gcore.GetK8sv2KubeconfigResult(interface{}(gcore.GetK8sv2KubeconfigOutput(ctx, gcore.GetK8sv2KubeconfigOutputArgs{\n\t\t\t\tClusterName: name,\n\t\t\t\tRegionId:    region.Id,\n\t\t\t\tProjectId:   project.Id,\n\t\t\t}, nil))), nil\n\t\t}).(gcore.GetK8sv2KubeconfigResultOutput)\n\t\tctx.Export(\"kubeconfig\", config.ApplyT(func(config gcore.GetK8sv2KubeconfigResult) (*string, error) {\n\t\t\treturn \u0026config.Kubeconfig, nil\n\t\t}).(pulumi.StringPtrOutput))\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.K8sv2;\nimport com.pulumi.gcore.K8sv2Args;\nimport com.pulumi.gcore.inputs.K8sv2PoolArgs;\nimport com.pulumi.gcore.inputs.K8sv2SecurityGroupRuleArgs;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetK8sv2KubeconfigArgs;\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 cluster = new K8sv2(\"cluster\", K8sv2Args.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"my-k8s-cluster\")\n            .keypair(myKeypair.sshkeyName())\n            .version(\"v1.31.9\")\n            .pools(K8sv2PoolArgs.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                .isPublicIpv4(true)\n                .build())\n            .securityGroupRules(K8sv2SecurityGroupRuleArgs.builder()\n                .direction(\"ingress\")\n                .ethertype(\"IPv4\")\n                .protocol(\"tcp\")\n                .portRangeMin(80.0)\n                .portRangeMax(80.0)\n                .build())\n            .build());\n\n        final var config = cluster.name().applyValue(_name -\u003e GcoreFunctions.getK8sv2Kubeconfig(GetK8sv2KubeconfigArgs.builder()\n            .clusterName(_name)\n            .regionId(region.id())\n            .projectId(project.id())\n            .build()));\n\n        ctx.export(\"kubeconfig\", config.applyValue(_config -\u003e _config.kubeconfig()));\n    }\n}\n```\n```yaml\nresources:\n  cluster:\n    type: gcore:K8sv2\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: my-k8s-cluster\n      keypair: ${myKeypair.sshkeyName}\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          isPublicIpv4: true\n      securityGroupRules:\n        - direction: ingress\n          ethertype: IPv4\n          protocol: tcp\n          portRangeMin: 80\n          portRangeMax: 80\nvariables:\n  config:\n    fn::invoke:\n      function: gcore:getK8sv2Kubeconfig\n      arguments:\n        clusterName: ${cluster.name}\n        regionId: ${region.id}\n        projectId: ${project.id}\noutputs:\n  # to store kubeconfig in a file pls use\n  # // terraform output -raw kubeconfig \u003e config.yaml\n  kubeconfig: ${config.kubeconfig}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating a managed Kubernetes cluster with vast share integration\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.FileShare(\"vast\", {\n    name: \"tf-file-share-vast\",\n    size: 10,\n    projectId: project.id,\n    regionId: region.id,\n    typeName: \"vast\",\n    protocol: \"NFS\",\n    shareSettings: {\n        allowedCharacters: \"LCD\",\n        pathLength: \"LCD\",\n        rootSquash: true,\n    },\n});\nconst network = new gcore.Network(\"network\", {\n    name: \"my-network\",\n    type: \"vxlan\",\n    projectId: project.id,\n    regionId: region.id,\n});\nconst subnet = new gcore.Subnet(\"subnet\", {\n    name: \"my-subnet\",\n    cidr: \"192.168.10.0/24\",\n    networkId: network.networkId,\n    projectId: project.id,\n    regionId: region.id,\n});\nconst cluster = new gcore.K8sv2(\"cluster\", {\n    projectId: project.id,\n    regionId: region.id,\n    name: \"my-k8s-cluster\",\n    fixedNetwork: network.networkId,\n    fixedSubnet: subnet.subnetId,\n    keypair: myKeypair.sshkeyName,\n    version: \"v1.33.3\",\n    cni: {\n        provider: \"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.FileShare(\"vast\",\n    name=\"tf-file-share-vast\",\n    size=10,\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\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.Network(\"network\",\n    name=\"my-network\",\n    type=\"vxlan\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"])\nsubnet = gcore.Subnet(\"subnet\",\n    name=\"my-subnet\",\n    cidr=\"192.168.10.0/24\",\n    network_id=network.network_id,\n    project_id=project[\"id\"],\n    region_id=region[\"id\"])\ncluster = gcore.K8sv2(\"cluster\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"my-k8s-cluster\",\n    fixed_network=network.network_id,\n    fixed_subnet=subnet.subnet_id,\n    keypair=my_keypair[\"sshkeyName\"],\n    version=\"v1.33.3\",\n    cni={\n        \"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.FileShare(\"vast\", new()\n    {\n        Name = \"tf-file-share-vast\",\n        Size = 10,\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        TypeName = \"vast\",\n        Protocol = \"NFS\",\n        ShareSettings = new Gcore.Inputs.FileShareShareSettingsArgs\n        {\n            AllowedCharacters = \"LCD\",\n            PathLength = \"LCD\",\n            RootSquash = true,\n        },\n    });\n\n    var network = new Gcore.Network(\"network\", new()\n    {\n        Name = \"my-network\",\n        Type = \"vxlan\",\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n    var subnet = new Gcore.Subnet(\"subnet\", new()\n    {\n        Name = \"my-subnet\",\n        Cidr = \"192.168.10.0/24\",\n        NetworkId = network.NetworkId,\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n    var cluster = new Gcore.K8sv2(\"cluster\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"my-k8s-cluster\",\n        FixedNetwork = network.NetworkId,\n        FixedSubnet = subnet.SubnetId,\n        Keypair = myKeypair.SshkeyName,\n        Version = \"v1.33.3\",\n        Cni = new Gcore.Inputs.K8sv2CniArgs\n        {\n            Provider = \"cilium\",\n        },\n        Csi = new Gcore.Inputs.K8sv2CsiArgs\n        {\n            Nfs = new Gcore.Inputs.K8sv2CsiNfsArgs\n            {\n                VastEnabled = true,\n            },\n        },\n        Pools = new[]\n        {\n            new Gcore.Inputs.K8sv2PoolArgs\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/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.NewFileShare(ctx, \"vast\", \u0026gcore.FileShareArgs{\n\t\t\tName:      pulumi.String(\"tf-file-share-vast\"),\n\t\t\tSize:      pulumi.Float64(10),\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\tTypeName:  pulumi.String(\"vast\"),\n\t\t\tProtocol:  pulumi.String(\"NFS\"),\n\t\t\tShareSettings: \u0026gcore.FileShareShareSettingsArgs{\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.NewNetwork(ctx, \"network\", \u0026gcore.NetworkArgs{\n\t\t\tName:      pulumi.String(\"my-network\"),\n\t\t\tType:      pulumi.String(\"vxlan\"),\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet, err := gcore.NewSubnet(ctx, \"subnet\", \u0026gcore.SubnetArgs{\n\t\t\tName:      pulumi.String(\"my-subnet\"),\n\t\t\tCidr:      pulumi.String(\"192.168.10.0/24\"),\n\t\t\tNetworkId: network.NetworkId,\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewK8sv2(ctx, \"cluster\", \u0026gcore.K8sv2Args{\n\t\t\tProjectId:    pulumi.Any(project.Id),\n\t\t\tRegionId:     pulumi.Any(region.Id),\n\t\t\tName:         pulumi.String(\"my-k8s-cluster\"),\n\t\t\tFixedNetwork: network.NetworkId,\n\t\t\tFixedSubnet:  subnet.SubnetId,\n\t\t\tKeypair:      pulumi.Any(myKeypair.SshkeyName),\n\t\t\tVersion:      pulumi.String(\"v1.33.3\"),\n\t\t\tCni: \u0026gcore.K8sv2CniArgs{\n\t\t\t\tProvider: pulumi.String(\"cilium\"),\n\t\t\t},\n\t\t\tCsi: \u0026gcore.K8sv2CsiArgs{\n\t\t\t\tNfs: \u0026gcore.K8sv2CsiNfsArgs{\n\t\t\t\t\tVastEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPools: gcore.K8sv2PoolArray{\n\t\t\t\t\u0026gcore.K8sv2PoolArgs{\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.FileShare;\nimport com.pulumi.gcore.FileShareArgs;\nimport com.pulumi.gcore.inputs.FileShareShareSettingsArgs;\nimport com.pulumi.gcore.Network;\nimport com.pulumi.gcore.NetworkArgs;\nimport com.pulumi.gcore.Subnet;\nimport com.pulumi.gcore.SubnetArgs;\nimport com.pulumi.gcore.K8sv2;\nimport com.pulumi.gcore.K8sv2Args;\nimport com.pulumi.gcore.inputs.K8sv2CniArgs;\nimport com.pulumi.gcore.inputs.K8sv2CsiArgs;\nimport com.pulumi.gcore.inputs.K8sv2CsiNfsArgs;\nimport com.pulumi.gcore.inputs.K8sv2PoolArgs;\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 FileShare(\"vast\", FileShareArgs.builder()\n            .name(\"tf-file-share-vast\")\n            .size(10.0)\n            .projectId(project.id())\n            .regionId(region.id())\n            .typeName(\"vast\")\n            .protocol(\"NFS\")\n            .shareSettings(FileShareShareSettingsArgs.builder()\n                .allowedCharacters(\"LCD\")\n                .pathLength(\"LCD\")\n                .rootSquash(true)\n                .build())\n            .build());\n\n        var network = new Network(\"network\", NetworkArgs.builder()\n            .name(\"my-network\")\n            .type(\"vxlan\")\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        var subnet = new Subnet(\"subnet\", SubnetArgs.builder()\n            .name(\"my-subnet\")\n            .cidr(\"192.168.10.0/24\")\n            .networkId(network.networkId())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        var cluster = new K8sv2(\"cluster\", K8sv2Args.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"my-k8s-cluster\")\n            .fixedNetwork(network.networkId())\n            .fixedSubnet(subnet.subnetId())\n            .keypair(myKeypair.sshkeyName())\n            .version(\"v1.33.3\")\n            .cni(K8sv2CniArgs.builder()\n                .provider(\"cilium\")\n                .build())\n            .csi(K8sv2CsiArgs.builder()\n                .nfs(K8sv2CsiNfsArgs.builder()\n                    .vastEnabled(true)\n                    .build())\n                .build())\n            .pools(K8sv2PoolArgs.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:FileShare\n    properties:\n      name: tf-file-share-vast\n      size: 10\n      projectId: ${project.id}\n      regionId: ${region.id}\n      typeName: vast\n      protocol: NFS\n      shareSettings:\n        allowedCharacters: LCD\n        pathLength: LCD\n        rootSquash: true\n  network:\n    type: gcore:Network\n    properties:\n      name: my-network\n      type: vxlan\n      projectId: ${project.id}\n      regionId: ${region.id}\n  subnet:\n    type: gcore:Subnet\n    properties:\n      name: my-subnet\n      cidr: 192.168.10.0/24\n      networkId: ${network.networkId}\n      projectId: ${project.id}\n      regionId: ${region.id}\n  cluster:\n    type: gcore:K8sv2\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: my-k8s-cluster\n      fixedNetwork: ${network.networkId}\n      fixedSubnet: ${subnet.subnetId}\n      keypair: ${myKeypair.sshkeyName}\n      version: v1.33.3\n      cni:\n        provider: 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\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003ccluster_name\u003e format\n\n```sh\n$ pulumi import gcore:index/k8sv2:K8sv2 cluster 1:6:my-k8s-cluster\n```\n\n","properties":{"authentication":{"$ref":"#/types/gcore:index%2FK8sv2Authentication:K8sv2Authentication","description":"Cluster authentication configuration.\n"},"autoscalerConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"Cluster autoscaler configuration params. Keys and values are expected to follow the cluster-autoscaler option format.\n"},"cni":{"$ref":"#/types/gcore:index%2FK8sv2Cni:K8sv2Cni","description":"Cluster CNI configuration.\n"},"createdAt":{"type":"string","description":"Cluster creation date.\n"},"creatorTaskId":{"type":"string"},"csi":{"$ref":"#/types/gcore:index%2FK8sv2Csi:K8sv2Csi","description":"Container Storage Interface (CSI) driver settings.\n"},"ddosProfile":{"$ref":"#/types/gcore:index%2FK8sv2DdosProfile:K8sv2DdosProfile","description":"DDoS profile configuration.\n"},"fixedNetwork":{"type":"string","description":"Fixed network used to allocate network addresses for cluster nodes.\n"},"fixedSubnet":{"type":"string","description":"Fixed subnet used to allocate network addresses for cluster nodes. Subnet should have a router.\n"},"isIpv6":{"type":"boolean","description":"Enable public IPv6 address.\n"},"isPublic":{"type":"boolean","description":"True if the cluster is public.\n"},"k8sv2Id":{"type":"string","description":"The ID of this resource.\n"},"keypair":{"type":"string","description":"Name of the keypair used for SSH access to nodes.\n"},"name":{"type":"string","description":"Cluster name.\n"},"podsIpPool":{"type":"string","description":"Pods IPv4 IP pool in CIDR notation.\n"},"podsIpv6Pool":{"type":"string","description":"Pods IPv6 IP pool in CIDR notation.\n"},"pools":{"type":"array","items":{"$ref":"#/types/gcore:index%2FK8sv2Pool:K8sv2Pool"}},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"securityGroupId":{"type":"string","description":"Security group ID.\n"},"securityGroupRules":{"type":"array","items":{"$ref":"#/types/gcore:index%2FK8sv2SecurityGroupRule:K8sv2SecurityGroupRule"},"description":"Firewall rules control what inbound(ingress) and outbound(egress) traffic is allowed to enter or leave a Instance. At least one 'egress' rule should be set\n"},"servicesIpPool":{"type":"string","description":"Services IPv4 IP pool in CIDR notation.\n"},"servicesIpv6Pool":{"type":"string","description":"Services IPv6 IP pool in CIDR notation.\n"},"status":{"type":"string","description":"Cluster status.\n"},"taskId":{"type":"string"},"timeouts":{"$ref":"#/types/gcore:index%2FK8sv2Timeouts:K8sv2Timeouts"},"version":{"type":"string","description":"Kubernetes version.\n"}},"type":"object","required":["autoscalerConfig","createdAt","creatorTaskId","isPublic","k8sv2Id","keypair","name","podsIpPool","podsIpv6Pool","pools","securityGroupId","servicesIpPool","servicesIpv6Pool","status","taskId","version"],"inputProperties":{"authentication":{"$ref":"#/types/gcore:index%2FK8sv2Authentication:K8sv2Authentication","description":"Cluster authentication configuration.\n"},"autoscalerConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"Cluster autoscaler configuration params. Keys and values are expected to follow the cluster-autoscaler option format.\n"},"cni":{"$ref":"#/types/gcore:index%2FK8sv2Cni:K8sv2Cni","description":"Cluster CNI configuration.\n"},"csi":{"$ref":"#/types/gcore:index%2FK8sv2Csi:K8sv2Csi","description":"Container Storage Interface (CSI) driver settings.\n"},"ddosProfile":{"$ref":"#/types/gcore:index%2FK8sv2DdosProfile:K8sv2DdosProfile","description":"DDoS profile configuration.\n"},"fixedNetwork":{"type":"string","description":"Fixed network used to allocate network addresses for cluster nodes.\n"},"fixedSubnet":{"type":"string","description":"Fixed subnet used to allocate network addresses for cluster nodes. Subnet should have a router.\n"},"isIpv6":{"type":"boolean","description":"Enable public IPv6 address.\n"},"k8sv2Id":{"type":"string","description":"The ID of this resource.\n"},"keypair":{"type":"string","description":"Name of the keypair used for SSH access to nodes.\n"},"name":{"type":"string","description":"Cluster name.\n"},"podsIpPool":{"type":"string","description":"Pods IPv4 IP pool in CIDR notation.\n"},"podsIpv6Pool":{"type":"string","description":"Pods IPv6 IP pool in CIDR notation.\n"},"pools":{"type":"array","items":{"$ref":"#/types/gcore:index%2FK8sv2Pool:K8sv2Pool"}},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"securityGroupRules":{"type":"array","items":{"$ref":"#/types/gcore:index%2FK8sv2SecurityGroupRule:K8sv2SecurityGroupRule"},"description":"Firewall rules control what inbound(ingress) and outbound(egress) traffic is allowed to enter or leave a Instance. At least one 'egress' rule should be set\n"},"servicesIpPool":{"type":"string","description":"Services IPv4 IP pool in CIDR notation.\n"},"servicesIpv6Pool":{"type":"string","description":"Services IPv6 IP pool in CIDR notation.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FK8sv2Timeouts:K8sv2Timeouts"},"version":{"type":"string","description":"Kubernetes version.\n"}},"requiredInputs":["keypair","pools","version"],"stateInputs":{"description":"Input properties used for looking up and filtering K8sv2 resources.\n","properties":{"authentication":{"$ref":"#/types/gcore:index%2FK8sv2Authentication:K8sv2Authentication","description":"Cluster authentication configuration.\n"},"autoscalerConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"Cluster autoscaler configuration params. Keys and values are expected to follow the cluster-autoscaler option format.\n"},"cni":{"$ref":"#/types/gcore:index%2FK8sv2Cni:K8sv2Cni","description":"Cluster CNI configuration.\n"},"createdAt":{"type":"string","description":"Cluster creation date.\n"},"creatorTaskId":{"type":"string"},"csi":{"$ref":"#/types/gcore:index%2FK8sv2Csi:K8sv2Csi","description":"Container Storage Interface (CSI) driver settings.\n"},"ddosProfile":{"$ref":"#/types/gcore:index%2FK8sv2DdosProfile:K8sv2DdosProfile","description":"DDoS profile configuration.\n"},"fixedNetwork":{"type":"string","description":"Fixed network used to allocate network addresses for cluster nodes.\n"},"fixedSubnet":{"type":"string","description":"Fixed subnet used to allocate network addresses for cluster nodes. Subnet should have a router.\n"},"isIpv6":{"type":"boolean","description":"Enable public IPv6 address.\n"},"isPublic":{"type":"boolean","description":"True if the cluster is public.\n"},"k8sv2Id":{"type":"string","description":"The ID of this resource.\n"},"keypair":{"type":"string","description":"Name of the keypair used for SSH access to nodes.\n"},"name":{"type":"string","description":"Cluster name.\n"},"podsIpPool":{"type":"string","description":"Pods IPv4 IP pool in CIDR notation.\n"},"podsIpv6Pool":{"type":"string","description":"Pods IPv6 IP pool in CIDR notation.\n"},"pools":{"type":"array","items":{"$ref":"#/types/gcore:index%2FK8sv2Pool:K8sv2Pool"}},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"securityGroupId":{"type":"string","description":"Security group ID.\n"},"securityGroupRules":{"type":"array","items":{"$ref":"#/types/gcore:index%2FK8sv2SecurityGroupRule:K8sv2SecurityGroupRule"},"description":"Firewall rules control what inbound(ingress) and outbound(egress) traffic is allowed to enter or leave a Instance. At least one 'egress' rule should be set\n"},"servicesIpPool":{"type":"string","description":"Services IPv4 IP pool in CIDR notation.\n"},"servicesIpv6Pool":{"type":"string","description":"Services IPv6 IP pool in CIDR notation.\n"},"status":{"type":"string","description":"Cluster status.\n"},"taskId":{"type":"string"},"timeouts":{"$ref":"#/types/gcore:index%2FK8sv2Timeouts:K8sv2Timeouts"},"version":{"type":"string","description":"Kubernetes version.\n"}},"type":"object"}},"gcore:index/keypair:Keypair":{"description":"Represent a ssh key, do not depends on 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\nexport = async () =\u003e {\n    const kp = new gcore.Keypair(\"kp\", {\n        projectId: 1,\n        publicKey: \"your public key here\",\n        sshkeyName: \"test\",\n    });\n    return {\n        kp: kp,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nkp = gcore.Keypair(\"kp\",\n    project_id=1,\n    public_key=\"your public key here\",\n    sshkey_name=\"test\")\npulumi.export(\"kp\", kp)\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 kp = new Gcore.Keypair(\"kp\", new()\n    {\n        ProjectId = 1,\n        PublicKey = \"your public key here\",\n        SshkeyName = \"test\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"kp\"] = kp,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tkp, err := gcore.NewKeypair(ctx, \"kp\", \u0026gcore.KeypairArgs{\n\t\t\tProjectId:  pulumi.Float64(1),\n\t\t\tPublicKey:  pulumi.String(\"your public key here\"),\n\t\t\tSshkeyName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"kp\", kp)\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.Keypair;\nimport com.pulumi.gcore.KeypairArgs;\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 kp = new Keypair(\"kp\", KeypairArgs.builder()\n            .projectId(1.0)\n            .publicKey(\"your public key here\")\n            .sshkeyName(\"test\")\n            .build());\n\n        ctx.export(\"kp\", kp);\n    }\n}\n```\n```yaml\nresources:\n  kp:\n    type: gcore:Keypair\n    properties:\n      projectId: 1\n      publicKey: your public key here\n      sshkeyName: test\noutputs:\n  kp: ${kp}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"fingerprint":{"type":"string"},"keypairId":{"type":"string","description":"The ID of this resource.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"publicKey":{"type":"string"},"sshkeyId":{"type":"string"},"sshkeyName":{"type":"string"}},"type":"object","required":["fingerprint","keypairId","publicKey","sshkeyId","sshkeyName"],"inputProperties":{"keypairId":{"type":"string","description":"The ID of this resource.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"publicKey":{"type":"string"},"sshkeyName":{"type":"string"}},"requiredInputs":["publicKey","sshkeyName"],"stateInputs":{"description":"Input properties used for looking up and filtering Keypair resources.\n","properties":{"fingerprint":{"type":"string"},"keypairId":{"type":"string","description":"The ID of this resource.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"publicKey":{"type":"string"},"sshkeyId":{"type":"string"},"sshkeyName":{"type":"string"}},"type":"object"}},"gcore:index/laasTopic:LaasTopic":{"description":"Represent LaaS topic\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 test = new gcore.LaasTopic(\"test\", {\n    regionId: 1,\n    projectId: 1,\n    name: \"test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ntest = gcore.LaasTopic(\"test\",\n    region_id=1,\n    project_id=1,\n    name=\"test\")\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 test = new Gcore.LaasTopic(\"test\", new()\n    {\n        RegionId = 1,\n        ProjectId = 1,\n        Name = \"test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewLaasTopic(ctx, \"test\", \u0026gcore.LaasTopicArgs{\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"test\"),\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.LaasTopic;\nimport com.pulumi.gcore.LaasTopicArgs;\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 test = new LaasTopic(\"test\", LaasTopicArgs.builder()\n            .regionId(1.0)\n            .projectId(1.0)\n            .name(\"test\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: gcore:LaasTopic\n    properties:\n      regionId: 1\n      projectId: 1\n      name: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003ctopic_name\u003e format\n\n```sh\n$ pulumi import gcore:index/laasTopic:LaasTopic test 1:6:test_topic\n```\n\n","properties":{"laasTopicId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object","required":["laasTopicId","name"],"inputProperties":{"laasTopicId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"stateInputs":{"description":"Input properties used for looking up and filtering LaasTopic resources.\n","properties":{"laasTopicId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object"}},"gcore:index/lblistener:Lblistener":{"description":"Represent load balancer listener. Can not be created without load balancer. A listener is a process that checks for connection requests, using the protocol and port that you configure\n\n## 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\nconst project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst lb = new gcore.Loadbalancerv2(\"lb\", {\n    projectId: project.id,\n    regionId: region.id,\n    name: \"My first load balancer with listeners\",\n    flavor: \"lb1-1-2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nlb = gcore.Loadbalancerv2(\"lb\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"My first load balancer with listeners\",\n    flavor=\"lb1-1-2\")\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 lb = new Gcore.Loadbalancerv2(\"lb\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"My first load balancer with listeners\",\n        Flavor = \"lb1-1-2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewLoadbalancerv2(ctx, \"lb\", \u0026gcore.Loadbalancerv2Args{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\tName:      pulumi.String(\"My first load balancer with listeners\"),\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\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.Loadbalancerv2;\nimport com.pulumi.gcore.Loadbalancerv2Args;\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 lb = new Loadbalancerv2(\"lb\", Loadbalancerv2Args.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"My first load balancer with listeners\")\n            .flavor(\"lb1-1-2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  lb:\n    type: gcore:Loadbalancerv2\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: My first load balancer with listeners\n      flavor: lb1-1-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### TCP\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.Lblistener(\"tcp_80\", {\n    projectId: project.id,\n    regionId: region.id,\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.Lblistener(\"tcp_80\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    loadbalancer_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.Lblistener(\"tcp_80\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\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/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.NewLblistener(ctx, \"tcp_80\", \u0026gcore.LblistenerArgs{\n\t\t\tProjectId:      pulumi.Any(project.Id),\n\t\t\tRegionId:       pulumi.Any(region.Id),\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.Lblistener;\nimport com.pulumi.gcore.LblistenerArgs;\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 Lblistener(\"tcp80\", LblistenerArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\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:Lblistener\n    name: tcp_80\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      loadbalancerId: ${lb.id}\n      name: tcp-80\n      protocol: TCP\n      protocolPort: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Prometheus metrics (from private network)\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.Lblistener(\"prometheus_9101\", {\n        projectId: project.id,\n        regionId: region.id,\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.Lblistener(\"prometheus_9101\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    loadbalancer_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.Lblistener(\"prometheus_9101\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\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.LblistenerUserListArgs\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/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.NewLblistener(ctx, \"prometheus_9101\", \u0026gcore.LblistenerArgs{\n\t\t\tProjectId:      pulumi.Any(project.Id),\n\t\t\tRegionId:       pulumi.Any(region.Id),\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.LblistenerUserListArray{\n\t\t\t\t\u0026gcore.LblistenerUserListArgs{\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.Lblistener;\nimport com.pulumi.gcore.LblistenerArgs;\nimport com.pulumi.gcore.inputs.LblistenerUserListArgs;\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 Lblistener(\"prometheus9101\", LblistenerArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .loadbalancerId(lb.id())\n            .name(\"prometheus-9101\")\n            .protocol(\"PROMETHEUS\")\n            .protocolPort(9101.0)\n            .allowedCidrs(\"10.0.0.0/8\")\n            .userLists(LblistenerUserListArgs.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:Lblistener\n    name: prometheus_9101\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      loadbalancerId: ${lb.id}\n      name: prometheus-9101\n      protocol: PROMETHEUS\n      protocolPort: 9101\n      allowedCidrs: # example of how to 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\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003clblistener_id\u003e:\u003cloadbalancer_id\u003e format\n\n```sh\n$ pulumi import gcore:index/lblistener:Lblistener lblistener1 1:6:a775dd94-4e9c-4da7-9f0e-ffc9ae34446b:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"allowedCidrs":{"type":"array","items":{"type":"string"},"description":"List of networks from which listener is accessible\n"},"connectionLimit":{"type":"number","description":"Number of simultaneous connections for this listener, between 1 and 1,000,000.\n"},"insertXForwarded":{"type":"boolean","description":"Insert X-Forwarded headers for 'HTTP', 'HTTPS', 'TERMINATED_HTTPS' protocols.\n"},"lastUpdated":{"type":"string","description":"Datetime when load balancer was updated at the last time.\n"},"lblistenerId":{"type":"string","description":"The ID of this resource.\n"},"loadbalancerId":{"type":"string","description":"ID of the target load balancer to attach newly created listener.\n"},"name":{"type":"string","description":"Listener name.\n"},"operatingStatus":{"type":"string","description":"Operating status of this listener.\n"},"poolCount":{"type":"number","description":"Number of pools in this listener.\n"},"projectId":{"type":"number","description":"ID of the desired project to create load balancer listener in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create load balancer listener in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"protocol":{"type":"string","description":"Available values are 'HTTP', 'HTTPS', 'TCP', 'UDP', 'TERMINATED_HTTPS', 'PROMETHEUS'\n"},"protocolPort":{"type":"number","description":"Port number to listen, between 1 and 65535.\n"},"provisioningStatus":{"type":"string","description":"Provisioning status of this listener.\n"},"regionId":{"type":"number","description":"ID of the desired region to create load balancer listener in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create load balancer listener in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"secretId":{"type":"string","description":"Secret ID to use with 'TERMINATED_HTTPS' protocol.\n"},"sniSecretIds":{"type":"array","items":{"type":"string"},"description":"List of additional Secret IDs to use with 'TERMINATED_HTTPS' protocol.\n"},"timeoutClientData":{"type":"number","description":"Frontend client inactivity timeout in milliseconds.\n"},"timeoutMemberConnect":{"type":"number","description":"Backend member connection timeout in milliseconds.\n"},"timeoutMemberData":{"type":"number","description":"Backend member inactivity timeout in milliseconds.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FLblistenerTimeouts:LblistenerTimeouts"},"userLists":{"type":"array","items":{"$ref":"#/types/gcore:index%2FLblistenerUserList:LblistenerUserList"},"description":"Load balancer listener list of username and encrypted password items.\n"}},"type":"object","required":["lastUpdated","lblistenerId","loadbalancerId","name","operatingStatus","poolCount","protocol","protocolPort","provisioningStatus"],"inputProperties":{"allowedCidrs":{"type":"array","items":{"type":"string"},"description":"List of networks from which listener is accessible\n"},"connectionLimit":{"type":"number","description":"Number of simultaneous connections for this listener, between 1 and 1,000,000.\n"},"insertXForwarded":{"type":"boolean","description":"Insert X-Forwarded headers for 'HTTP', 'HTTPS', 'TERMINATED_HTTPS' protocols.\n"},"lblistenerId":{"type":"string","description":"The ID of this resource.\n"},"loadbalancerId":{"type":"string","description":"ID of the target load balancer to attach newly created listener.\n"},"name":{"type":"string","description":"Listener name.\n"},"projectId":{"type":"number","description":"ID of the desired project to create load balancer listener in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create load balancer listener in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"protocol":{"type":"string","description":"Available values are 'HTTP', 'HTTPS', 'TCP', 'UDP', 'TERMINATED_HTTPS', 'PROMETHEUS'\n"},"protocolPort":{"type":"number","description":"Port number to listen, between 1 and 65535.\n"},"regionId":{"type":"number","description":"ID of the desired region to create load balancer listener in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create load balancer listener in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"secretId":{"type":"string","description":"Secret ID to use with 'TERMINATED_HTTPS' protocol.\n"},"sniSecretIds":{"type":"array","items":{"type":"string"},"description":"List of additional Secret IDs to use with 'TERMINATED_HTTPS' protocol.\n"},"timeoutClientData":{"type":"number","description":"Frontend client inactivity timeout in milliseconds.\n"},"timeoutMemberConnect":{"type":"number","description":"Backend member connection timeout in milliseconds.\n"},"timeoutMemberData":{"type":"number","description":"Backend member inactivity timeout in milliseconds.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FLblistenerTimeouts:LblistenerTimeouts"},"userLists":{"type":"array","items":{"$ref":"#/types/gcore:index%2FLblistenerUserList:LblistenerUserList"},"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 Lblistener resources.\n","properties":{"allowedCidrs":{"type":"array","items":{"type":"string"},"description":"List of networks from which listener is accessible\n"},"connectionLimit":{"type":"number","description":"Number of simultaneous connections for this listener, between 1 and 1,000,000.\n"},"insertXForwarded":{"type":"boolean","description":"Insert X-Forwarded headers for 'HTTP', 'HTTPS', 'TERMINATED_HTTPS' protocols.\n"},"lastUpdated":{"type":"string","description":"Datetime when load balancer was updated at the last time.\n"},"lblistenerId":{"type":"string","description":"The ID of this resource.\n"},"loadbalancerId":{"type":"string","description":"ID of the target load balancer to attach newly created listener.\n"},"name":{"type":"string","description":"Listener name.\n"},"operatingStatus":{"type":"string","description":"Operating status of this listener.\n"},"poolCount":{"type":"number","description":"Number of pools in this listener.\n"},"projectId":{"type":"number","description":"ID of the desired project to create load balancer listener in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create load balancer listener in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"protocol":{"type":"string","description":"Available values are 'HTTP', 'HTTPS', 'TCP', 'UDP', 'TERMINATED_HTTPS', 'PROMETHEUS'\n"},"protocolPort":{"type":"number","description":"Port number to listen, between 1 and 65535.\n"},"provisioningStatus":{"type":"string","description":"Provisioning status of this listener.\n"},"regionId":{"type":"number","description":"ID of the desired region to create load balancer listener in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create load balancer listener in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"secretId":{"type":"string","description":"Secret ID to use with 'TERMINATED_HTTPS' protocol.\n"},"sniSecretIds":{"type":"array","items":{"type":"string"},"description":"List of additional Secret IDs to use with 'TERMINATED_HTTPS' protocol.\n"},"timeoutClientData":{"type":"number","description":"Frontend client inactivity timeout in milliseconds.\n"},"timeoutMemberConnect":{"type":"number","description":"Backend member connection timeout in milliseconds.\n"},"timeoutMemberData":{"type":"number","description":"Backend member inactivity timeout in milliseconds.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FLblistenerTimeouts:LblistenerTimeouts"},"userLists":{"type":"array","items":{"$ref":"#/types/gcore:index%2FLblistenerUserList:LblistenerUserList"},"description":"Load balancer listener list of username and encrypted password items.\n"}},"type":"object"}},"gcore:index/lbmember:Lbmember":{"description":"Represent load balancer member\n\n## 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\nconst project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst lb = new gcore.Loadbalancerv2(\"lb\", {\n    projectId: project.id,\n    regionId: region.id,\n    name: \"My first complex load balancer\",\n    flavor: \"lb1-1-2\",\n});\nconst http80 = new gcore.Lblistener(\"http_80\", {\n    projectId: project.id,\n    regionId: region.id,\n    loadbalancerId: lb.loadbalancerv2Id,\n    name: \"http-80\",\n    protocol: \"HTTP\",\n    protocolPort: 80,\n});\nconst http = new gcore.Lbpool(\"http\", {\n    projectId: project.id,\n    regionId: region.id,\n    loadbalancerId: lb.loadbalancerv2Id,\n    listenerId: http80.lblistenerId,\n    name: \"My HTTP pool\",\n    protocol: \"HTTP\",\n    lbAlgorithm: \"ROUND_ROBIN\",\n    healthMonitor: {\n        type: \"TCP\",\n        delay: 10,\n        maxRetries: 3,\n        timeout: 5,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nlb = gcore.Loadbalancerv2(\"lb\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"My first complex load balancer\",\n    flavor=\"lb1-1-2\")\nhttp80 = gcore.Lblistener(\"http_80\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    loadbalancer_id=lb.loadbalancerv2_id,\n    name=\"http-80\",\n    protocol=\"HTTP\",\n    protocol_port=80)\nhttp = gcore.Lbpool(\"http\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    loadbalancer_id=lb.loadbalancerv2_id,\n    listener_id=http80.lblistener_id,\n    name=\"My HTTP pool\",\n    protocol=\"HTTP\",\n    lb_algorithm=\"ROUND_ROBIN\",\n    health_monitor={\n        \"type\": \"TCP\",\n        \"delay\": 10,\n        \"max_retries\": 3,\n        \"timeout\": 5,\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 lb = new Gcore.Loadbalancerv2(\"lb\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"My first complex load balancer\",\n        Flavor = \"lb1-1-2\",\n    });\n\n    var http80 = new Gcore.Lblistener(\"http_80\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        LoadbalancerId = lb.Loadbalancerv2Id,\n        Name = \"http-80\",\n        Protocol = \"HTTP\",\n        ProtocolPort = 80,\n    });\n\n    var http = new Gcore.Lbpool(\"http\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        LoadbalancerId = lb.Loadbalancerv2Id,\n        ListenerId = http80.LblistenerId,\n        Name = \"My HTTP pool\",\n        Protocol = \"HTTP\",\n        LbAlgorithm = \"ROUND_ROBIN\",\n        HealthMonitor = new Gcore.Inputs.LbpoolHealthMonitorArgs\n        {\n            Type = \"TCP\",\n            Delay = 10,\n            MaxRetries = 3,\n            Timeout = 5,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tlb, err := gcore.NewLoadbalancerv2(ctx, \"lb\", \u0026gcore.Loadbalancerv2Args{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\tName:      pulumi.String(\"My first complex 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\thttp80, err := gcore.NewLblistener(ctx, \"http_80\", \u0026gcore.LblistenerArgs{\n\t\t\tProjectId:      pulumi.Any(project.Id),\n\t\t\tRegionId:       pulumi.Any(region.Id),\n\t\t\tLoadbalancerId: lb.Loadbalancerv2Id,\n\t\t\tName:           pulumi.String(\"http-80\"),\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\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.NewLbpool(ctx, \"http\", \u0026gcore.LbpoolArgs{\n\t\t\tProjectId:      pulumi.Any(project.Id),\n\t\t\tRegionId:       pulumi.Any(region.Id),\n\t\t\tLoadbalancerId: lb.Loadbalancerv2Id,\n\t\t\tListenerId:     http80.LblistenerId,\n\t\t\tName:           pulumi.String(\"My HTTP pool\"),\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\tLbAlgorithm:    pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tHealthMonitor: \u0026gcore.LbpoolHealthMonitorArgs{\n\t\t\t\tType:       pulumi.String(\"TCP\"),\n\t\t\t\tDelay:      pulumi.Float64(10),\n\t\t\t\tMaxRetries: pulumi.Float64(3),\n\t\t\t\tTimeout:    pulumi.Float64(5),\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.Loadbalancerv2;\nimport com.pulumi.gcore.Loadbalancerv2Args;\nimport com.pulumi.gcore.Lblistener;\nimport com.pulumi.gcore.LblistenerArgs;\nimport com.pulumi.gcore.Lbpool;\nimport com.pulumi.gcore.LbpoolArgs;\nimport com.pulumi.gcore.inputs.LbpoolHealthMonitorArgs;\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 lb = new Loadbalancerv2(\"lb\", Loadbalancerv2Args.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"My first complex load balancer\")\n            .flavor(\"lb1-1-2\")\n            .build());\n\n        var http80 = new Lblistener(\"http80\", LblistenerArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .loadbalancerId(lb.loadbalancerv2Id())\n            .name(\"http-80\")\n            .protocol(\"HTTP\")\n            .protocolPort(80.0)\n            .build());\n\n        var http = new Lbpool(\"http\", LbpoolArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .loadbalancerId(lb.loadbalancerv2Id())\n            .listenerId(http80.lblistenerId())\n            .name(\"My HTTP pool\")\n            .protocol(\"HTTP\")\n            .lbAlgorithm(\"ROUND_ROBIN\")\n            .healthMonitor(LbpoolHealthMonitorArgs.builder()\n                .type(\"TCP\")\n                .delay(10.0)\n                .maxRetries(3.0)\n                .timeout(5.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  lb:\n    type: gcore:Loadbalancerv2\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: My first complex load balancer\n      flavor: lb1-1-2\n  http80:\n    type: gcore:Lblistener\n    name: http_80\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      loadbalancerId: ${lb.loadbalancerv2Id}\n      name: http-80\n      protocol: HTTP\n      protocolPort: 80\n  http:\n    type: gcore:Lbpool\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      loadbalancerId: ${lb.loadbalancerv2Id}\n      listenerId: ${http80.lblistenerId}\n      name: My HTTP pool\n      protocol: HTTP\n      lbAlgorithm: ROUND_ROBIN\n      healthMonitor:\n        type: TCP\n        delay: 10\n        maxRetries: 3\n        timeout: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Public 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.Lbmember(\"public_member\", {\n    projectId: project.id,\n    regionId: region.id,\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.Lbmember(\"public_member\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\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.Lbmember(\"public_member\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\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/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.NewLbmember(ctx, \"public_member\", \u0026gcore.LbmemberArgs{\n\t\t\tProjectId:    pulumi.Any(project.Id),\n\t\t\tRegionId:     pulumi.Any(region.Id),\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.Lbmember;\nimport com.pulumi.gcore.LbmemberArgs;\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 Lbmember(\"publicMember\", LbmemberArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\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:Lbmember\n    name: public_member\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      poolId: ${http.id}\n      address: 8.8.8.8\n      protocolPort: 80\n      weight: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Private member\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.Network(\"private_network\", {\n    projectId: project.id,\n    regionId: region.id,\n    name: \"my-private-network\",\n});\nconst privateSubnet = new gcore.Subnet(\"private_subnet\", {\n    projectId: project.id,\n    regionId: region.id,\n    cidr: \"10.0.0.0/24\",\n    name: \"my-private-network-subnet\",\n    networkId: privateNetwork.networkId,\n});\nconst fixedIp = new gcore.Reservedfixedip(\"fixed_ip\", {\n    projectId: project.id,\n    regionId: region.id,\n    type: \"ip_address\",\n    networkId: privateNetwork.networkId,\n    subnetId: privateSubnet.subnetId,\n    fixedIpAddress: \"10.0.0.10\",\n    isVip: false,\n});\nconst privateMember = new gcore.Lbmember(\"private_member\", {\n    projectId: project.id,\n    regionId: region.id,\n    poolId: http.id,\n    address: fixedIp.fixedIpAddress,\n    subnetId: fixedIp.subnetId,\n    protocolPort: 80,\n    weight: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nprivate_network = gcore.Network(\"private_network\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"my-private-network\")\nprivate_subnet = gcore.Subnet(\"private_subnet\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    cidr=\"10.0.0.0/24\",\n    name=\"my-private-network-subnet\",\n    network_id=private_network.network_id)\nfixed_ip = gcore.Reservedfixedip(\"fixed_ip\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    type=\"ip_address\",\n    network_id=private_network.network_id,\n    subnet_id=private_subnet.subnet_id,\n    fixed_ip_address=\"10.0.0.10\",\n    is_vip=False)\nprivate_member = gcore.Lbmember(\"private_member\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    pool_id=http[\"id\"],\n    address=fixed_ip.fixed_ip_address,\n    subnet_id=fixed_ip.subnet_id,\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 privateNetwork = new Gcore.Network(\"private_network\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"my-private-network\",\n    });\n\n    var privateSubnet = new Gcore.Subnet(\"private_subnet\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Cidr = \"10.0.0.0/24\",\n        Name = \"my-private-network-subnet\",\n        NetworkId = privateNetwork.NetworkId,\n    });\n\n    var fixedIp = new Gcore.Reservedfixedip(\"fixed_ip\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Type = \"ip_address\",\n        NetworkId = privateNetwork.NetworkId,\n        SubnetId = privateSubnet.SubnetId,\n        FixedIpAddress = \"10.0.0.10\",\n        IsVip = false,\n    });\n\n    var privateMember = new Gcore.Lbmember(\"private_member\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        PoolId = http.Id,\n        Address = fixedIp.FixedIpAddress,\n        SubnetId = fixedIp.SubnetId,\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/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.NewNetwork(ctx, \"private_network\", \u0026gcore.NetworkArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.NewSubnet(ctx, \"private_subnet\", \u0026gcore.SubnetArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.NetworkId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfixedIp, err := gcore.NewReservedfixedip(ctx, \"fixed_ip\", \u0026gcore.ReservedfixedipArgs{\n\t\t\tProjectId:      pulumi.Any(project.Id),\n\t\t\tRegionId:       pulumi.Any(region.Id),\n\t\t\tType:           pulumi.String(\"ip_address\"),\n\t\t\tNetworkId:      privateNetwork.NetworkId,\n\t\t\tSubnetId:       privateSubnet.SubnetId,\n\t\t\tFixedIpAddress: pulumi.String(\"10.0.0.10\"),\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\t_, err = gcore.NewLbmember(ctx, \"private_member\", \u0026gcore.LbmemberArgs{\n\t\t\tProjectId:    pulumi.Any(project.Id),\n\t\t\tRegionId:     pulumi.Any(region.Id),\n\t\t\tPoolId:       pulumi.Any(http.Id),\n\t\t\tAddress:      fixedIp.FixedIpAddress,\n\t\t\tSubnetId:     fixedIp.SubnetId,\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.Network;\nimport com.pulumi.gcore.NetworkArgs;\nimport com.pulumi.gcore.Subnet;\nimport com.pulumi.gcore.SubnetArgs;\nimport com.pulumi.gcore.Reservedfixedip;\nimport com.pulumi.gcore.ReservedfixedipArgs;\nimport com.pulumi.gcore.Lbmember;\nimport com.pulumi.gcore.LbmemberArgs;\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 Network(\"privateNetwork\", NetworkArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"my-private-network\")\n            .build());\n\n        var privateSubnet = new Subnet(\"privateSubnet\", SubnetArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .cidr(\"10.0.0.0/24\")\n            .name(\"my-private-network-subnet\")\n            .networkId(privateNetwork.networkId())\n            .build());\n\n        var fixedIp = new Reservedfixedip(\"fixedIp\", ReservedfixedipArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .type(\"ip_address\")\n            .networkId(privateNetwork.networkId())\n            .subnetId(privateSubnet.subnetId())\n            .fixedIpAddress(\"10.0.0.10\")\n            .isVip(false)\n            .build());\n\n        var privateMember = new Lbmember(\"privateMember\", LbmemberArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .poolId(http.id())\n            .address(fixedIp.fixedIpAddress())\n            .subnetId(fixedIp.subnetId())\n            .protocolPort(80.0)\n            .weight(1.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  privateNetwork:\n    type: gcore:Network\n    name: private_network\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: my-private-network\n  privateSubnet:\n    type: gcore:Subnet\n    name: private_subnet\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      cidr: 10.0.0.0/24\n      name: my-private-network-subnet\n      networkId: ${privateNetwork.networkId}\n  fixedIp:\n    type: gcore:Reservedfixedip\n    name: fixed_ip\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      type: ip_address\n      networkId: ${privateNetwork.networkId}\n      subnetId: ${privateSubnet.subnetId}\n      fixedIpAddress: 10.0.0.10\n      isVip: false\n  privateMember:\n    type: gcore:Lbmember\n    name: private_member\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\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### Private Instance member\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst instanceMemberPrivateNetwork = new gcore.Network(\"instance_member_private_network\", {\n    projectId: project.id,\n    regionId: region.id,\n    name: \"my-private-network\",\n});\nconst instanceMemberPrivateSubnet = new gcore.Subnet(\"instance_member_private_subnet\", {\n    projectId: project.id,\n    regionId: region.id,\n    cidr: \"10.0.0.0/24\",\n    name: \"my-private-network-subnet\",\n    networkId: instanceMemberPrivateNetwork.networkId,\n});\nconst instanceMemberFixedIp = new gcore.Reservedfixedip(\"instance_member_fixed_ip\", {\n    projectId: project.id,\n    regionId: region.id,\n    type: \"ip_address\",\n    networkId: instanceMemberPrivateNetwork.networkId,\n    subnetId: instanceMemberPrivateSubnet.subnetId,\n    fixedIpAddress: \"10.0.0.11\",\n    isVip: false,\n});\nconst ubuntu = gcore.getImage({\n    projectId: project.id,\n    regionId: region.id,\n    name: \"ubuntu-22.04\",\n});\nconst _default = gcore.getSecuritygroup({\n    name: \"default\",\n    projectId: project.id,\n    regionId: region.id,\n});\nconst instanceMemberVolume = new gcore.Volume(\"instance_member_volume\", {\n    projectId: project.id,\n    regionId: region.id,\n    name: \"boot volume\",\n    typeName: \"ssd_hiiops\",\n    size: 10,\n    imageId: ubuntu.then(ubuntu =\u003e ubuntu.id),\n});\nconst instanceMember = new gcore.Instancev2(\"instance_member\", {\n    projectId: project.id,\n    regionId: region.id,\n    nameTemplate: \"ed-c16-{ip_octets}\",\n    flavorId: \"g1-standard-1-2\",\n    volumes: [{\n        volumeId: instanceMemberVolume.volumeId,\n        bootIndex: 0,\n    }],\n    interfaces: [{\n        type: \"reserved_fixed_ip\",\n        name: \"my-private-network-interface\",\n        portId: instanceMemberFixedIp.portId,\n        securityGroups: [_default.then(_default =\u003e _default.id)],\n    }],\n});\nconst instanceMemberLbmember = new gcore.Lbmember(\"instance_member\", {\n    projectId: project.id,\n    regionId: region.id,\n    poolId: http.id,\n    instanceId: instanceMember.instancev2Id,\n    address: instanceMemberFixedIp.fixedIpAddress,\n    protocolPort: 80,\n    weight: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ninstance_member_private_network = gcore.Network(\"instance_member_private_network\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"my-private-network\")\ninstance_member_private_subnet = gcore.Subnet(\"instance_member_private_subnet\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    cidr=\"10.0.0.0/24\",\n    name=\"my-private-network-subnet\",\n    network_id=instance_member_private_network.network_id)\ninstance_member_fixed_ip = gcore.Reservedfixedip(\"instance_member_fixed_ip\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    type=\"ip_address\",\n    network_id=instance_member_private_network.network_id,\n    subnet_id=instance_member_private_subnet.subnet_id,\n    fixed_ip_address=\"10.0.0.11\",\n    is_vip=False)\nubuntu = gcore.get_image(project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"ubuntu-22.04\")\ndefault = gcore.get_securitygroup(name=\"default\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"])\ninstance_member_volume = gcore.Volume(\"instance_member_volume\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"boot volume\",\n    type_name=\"ssd_hiiops\",\n    size=10,\n    image_id=ubuntu.id)\ninstance_member = gcore.Instancev2(\"instance_member\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name_template=\"ed-c16-{ip_octets}\",\n    flavor_id=\"g1-standard-1-2\",\n    volumes=[{\n        \"volume_id\": instance_member_volume.volume_id,\n        \"boot_index\": 0,\n    }],\n    interfaces=[{\n        \"type\": \"reserved_fixed_ip\",\n        \"name\": \"my-private-network-interface\",\n        \"port_id\": instance_member_fixed_ip.port_id,\n        \"security_groups\": [default.id],\n    }])\ninstance_member_lbmember = gcore.Lbmember(\"instance_member\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    pool_id=http[\"id\"],\n    instance_id=instance_member.instancev2_id,\n    address=instance_member_fixed_ip.fixed_ip_address,\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 instanceMemberPrivateNetwork = new Gcore.Network(\"instance_member_private_network\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"my-private-network\",\n    });\n\n    var instanceMemberPrivateSubnet = new Gcore.Subnet(\"instance_member_private_subnet\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Cidr = \"10.0.0.0/24\",\n        Name = \"my-private-network-subnet\",\n        NetworkId = instanceMemberPrivateNetwork.NetworkId,\n    });\n\n    var instanceMemberFixedIp = new Gcore.Reservedfixedip(\"instance_member_fixed_ip\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Type = \"ip_address\",\n        NetworkId = instanceMemberPrivateNetwork.NetworkId,\n        SubnetId = instanceMemberPrivateSubnet.SubnetId,\n        FixedIpAddress = \"10.0.0.11\",\n        IsVip = false,\n    });\n\n    var ubuntu = Gcore.GetImage.Invoke(new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"ubuntu-22.04\",\n    });\n\n    var @default = Gcore.GetSecuritygroup.Invoke(new()\n    {\n        Name = \"default\",\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n    var instanceMemberVolume = new Gcore.Volume(\"instance_member_volume\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"boot volume\",\n        TypeName = \"ssd_hiiops\",\n        Size = 10,\n        ImageId = ubuntu.Apply(getImageResult =\u003e getImageResult.Id),\n    });\n\n    var instanceMember = new Gcore.Instancev2(\"instance_member\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        NameTemplate = \"ed-c16-{ip_octets}\",\n        FlavorId = \"g1-standard-1-2\",\n        Volumes = new[]\n        {\n            new Gcore.Inputs.Instancev2VolumeArgs\n            {\n                VolumeId = instanceMemberVolume.VolumeId,\n                BootIndex = 0,\n            },\n        },\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.Instancev2InterfaceArgs\n            {\n                Type = \"reserved_fixed_ip\",\n                Name = \"my-private-network-interface\",\n                PortId = instanceMemberFixedIp.PortId,\n                SecurityGroups = new[]\n                {\n                    @default.Apply(@default =\u003e @default.Apply(getSecuritygroupResult =\u003e getSecuritygroupResult.Id)),\n                },\n            },\n        },\n    });\n\n    var instanceMemberLbmember = new Gcore.Lbmember(\"instance_member\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        PoolId = http.Id,\n        InstanceId = instanceMember.Instancev2Id,\n        Address = instanceMemberFixedIp.FixedIpAddress,\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/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\tinstanceMemberPrivateNetwork, err := gcore.NewNetwork(ctx, \"instance_member_private_network\", \u0026gcore.NetworkArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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\tinstanceMemberPrivateSubnet, err := gcore.NewSubnet(ctx, \"instance_member_private_subnet\", \u0026gcore.SubnetArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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: instanceMemberPrivateNetwork.NetworkId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstanceMemberFixedIp, err := gcore.NewReservedfixedip(ctx, \"instance_member_fixed_ip\", \u0026gcore.ReservedfixedipArgs{\n\t\t\tProjectId:      pulumi.Any(project.Id),\n\t\t\tRegionId:       pulumi.Any(region.Id),\n\t\t\tType:           pulumi.String(\"ip_address\"),\n\t\t\tNetworkId:      instanceMemberPrivateNetwork.NetworkId,\n\t\t\tSubnetId:       instanceMemberPrivateSubnet.SubnetId,\n\t\t\tFixedIpAddress: pulumi.String(\"10.0.0.11\"),\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\tubuntu, err := gcore.GetImage(ctx, \u0026gcore.GetImageArgs{\n\t\t\tProjectId: pulumi.Float64Ref(project.Id),\n\t\t\tRegionId:  pulumi.Float64Ref(region.Id),\n\t\t\tName:      pulumi.StringRef(\"ubuntu-22.04\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := gcore.LookupSecuritygroup(ctx, \u0026gcore.LookupSecuritygroupArgs{\n\t\t\tName:      \"default\",\n\t\t\tProjectId: pulumi.Float64Ref(project.Id),\n\t\t\tRegionId:  pulumi.Float64Ref(region.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstanceMemberVolume, err := gcore.NewVolume(ctx, \"instance_member_volume\", \u0026gcore.VolumeArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\tName:      pulumi.String(\"boot volume\"),\n\t\t\tTypeName:  pulumi.String(\"ssd_hiiops\"),\n\t\t\tSize:      pulumi.Float64(10),\n\t\t\tImageId:   pulumi.String(ubuntu.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstanceMember, err := gcore.NewInstancev2(ctx, \"instance_member\", \u0026gcore.Instancev2Args{\n\t\t\tProjectId:    pulumi.Any(project.Id),\n\t\t\tRegionId:     pulumi.Any(region.Id),\n\t\t\tNameTemplate: pulumi.String(\"ed-c16-{ip_octets}\"),\n\t\t\tFlavorId:     pulumi.String(\"g1-standard-1-2\"),\n\t\t\tVolumes: gcore.Instancev2VolumeArray{\n\t\t\t\t\u0026gcore.Instancev2VolumeArgs{\n\t\t\t\t\tVolumeId:  instanceMemberVolume.VolumeId,\n\t\t\t\t\tBootIndex: pulumi.Float64(0),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInterfaces: gcore.Instancev2InterfaceArray{\n\t\t\t\t\u0026gcore.Instancev2InterfaceArgs{\n\t\t\t\t\tType:   pulumi.String(\"reserved_fixed_ip\"),\n\t\t\t\t\tName:   pulumi.String(\"my-private-network-interface\"),\n\t\t\t\t\tPortId: instanceMemberFixedIp.PortId,\n\t\t\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(_default.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\t_, err = gcore.NewLbmember(ctx, \"instance_member\", \u0026gcore.LbmemberArgs{\n\t\t\tProjectId:    pulumi.Any(project.Id),\n\t\t\tRegionId:     pulumi.Any(region.Id),\n\t\t\tPoolId:       pulumi.Any(http.Id),\n\t\t\tInstanceId:   instanceMember.Instancev2Id,\n\t\t\tAddress:      instanceMemberFixedIp.FixedIpAddress,\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.Network;\nimport com.pulumi.gcore.NetworkArgs;\nimport com.pulumi.gcore.Subnet;\nimport com.pulumi.gcore.SubnetArgs;\nimport com.pulumi.gcore.Reservedfixedip;\nimport com.pulumi.gcore.ReservedfixedipArgs;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetImageArgs;\nimport com.pulumi.gcore.inputs.GetSecuritygroupArgs;\nimport com.pulumi.gcore.Volume;\nimport com.pulumi.gcore.VolumeArgs;\nimport com.pulumi.gcore.Instancev2;\nimport com.pulumi.gcore.Instancev2Args;\nimport com.pulumi.gcore.inputs.Instancev2VolumeArgs;\nimport com.pulumi.gcore.inputs.Instancev2InterfaceArgs;\nimport com.pulumi.gcore.Lbmember;\nimport com.pulumi.gcore.LbmemberArgs;\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 instanceMemberPrivateNetwork = new Network(\"instanceMemberPrivateNetwork\", NetworkArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"my-private-network\")\n            .build());\n\n        var instanceMemberPrivateSubnet = new Subnet(\"instanceMemberPrivateSubnet\", SubnetArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .cidr(\"10.0.0.0/24\")\n            .name(\"my-private-network-subnet\")\n            .networkId(instanceMemberPrivateNetwork.networkId())\n            .build());\n\n        var instanceMemberFixedIp = new Reservedfixedip(\"instanceMemberFixedIp\", ReservedfixedipArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .type(\"ip_address\")\n            .networkId(instanceMemberPrivateNetwork.networkId())\n            .subnetId(instanceMemberPrivateSubnet.subnetId())\n            .fixedIpAddress(\"10.0.0.11\")\n            .isVip(false)\n            .build());\n\n        final var ubuntu = GcoreFunctions.getImage(GetImageArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"ubuntu-22.04\")\n            .build());\n\n        final var default = GcoreFunctions.getSecuritygroup(GetSecuritygroupArgs.builder()\n            .name(\"default\")\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        var instanceMemberVolume = new Volume(\"instanceMemberVolume\", VolumeArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"boot volume\")\n            .typeName(\"ssd_hiiops\")\n            .size(10.0)\n            .imageId(ubuntu.id())\n            .build());\n\n        var instanceMember = new Instancev2(\"instanceMember\", Instancev2Args.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .nameTemplate(\"ed-c16-{ip_octets}\")\n            .flavorId(\"g1-standard-1-2\")\n            .volumes(Instancev2VolumeArgs.builder()\n                .volumeId(instanceMemberVolume.volumeId())\n                .bootIndex(0.0)\n                .build())\n            .interfaces(Instancev2InterfaceArgs.builder()\n                .type(\"reserved_fixed_ip\")\n                .name(\"my-private-network-interface\")\n                .portId(instanceMemberFixedIp.portId())\n                .securityGroups(default_.id())\n                .build())\n            .build());\n\n        var instanceMemberLbmember = new Lbmember(\"instanceMemberLbmember\", LbmemberArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .poolId(http.id())\n            .instanceId(instanceMember.instancev2Id())\n            .address(instanceMemberFixedIp.fixedIpAddress())\n            .protocolPort(80.0)\n            .weight(1.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instanceMemberPrivateNetwork:\n    type: gcore:Network\n    name: instance_member_private_network\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: my-private-network\n  instanceMemberPrivateSubnet:\n    type: gcore:Subnet\n    name: instance_member_private_subnet\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      cidr: 10.0.0.0/24\n      name: my-private-network-subnet\n      networkId: ${instanceMemberPrivateNetwork.networkId}\n  instanceMemberFixedIp:\n    type: gcore:Reservedfixedip\n    name: instance_member_fixed_ip\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      type: ip_address\n      networkId: ${instanceMemberPrivateNetwork.networkId}\n      subnetId: ${instanceMemberPrivateSubnet.subnetId}\n      fixedIpAddress: 10.0.0.11\n      isVip: false\n  instanceMemberVolume:\n    type: gcore:Volume\n    name: instance_member_volume\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: boot volume\n      typeName: ssd_hiiops\n      size: 10\n      imageId: ${ubuntu.id}\n  instanceMember:\n    type: gcore:Instancev2\n    name: instance_member\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      nameTemplate: ed-c16-{ip_octets}\n      flavorId: g1-standard-1-2\n      volumes:\n        - volumeId: ${instanceMemberVolume.volumeId}\n          bootIndex: 0\n      interfaces:\n        - type: reserved_fixed_ip\n          name: my-private-network-interface\n          portId: ${instanceMemberFixedIp.portId}\n          securityGroups:\n            - ${default.id}\n  instanceMemberLbmember:\n    type: gcore:Lbmember\n    name: instance_member\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      poolId: ${http.id}\n      instanceId: ${instanceMember.instancev2Id}\n      address: ${instanceMemberFixedIp.fixedIpAddress}\n      protocolPort: 80\n      weight: 1\nvariables:\n  ubuntu:\n    fn::invoke:\n      function: gcore:getImage\n      arguments:\n        projectId: ${project.id}\n        regionId: ${region.id}\n        name: ubuntu-22.04\n  default:\n    fn::invoke:\n      function: gcore:getSecuritygroup\n      arguments:\n        name: default\n        projectId: ${project.id}\n        regionId: ${region.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003clbmember\u003e:\u003cpool_id\u003e format\n\n```sh\n$ pulumi import gcore:index/lbmember:Lbmember lbmember1 1:6:a775dd94-4e9c-4da7-9f0e-ffc9ae34446b:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"address":{"type":"string","description":"IP address to communicate with real server.\n"},"instanceId":{"type":"string","description":"ID of the gcore_instance.\n"},"lastUpdated":{"type":"string","description":"Datetime when load balancer member was updated at the last time.\n"},"lbmemberId":{"type":"string","description":"The ID of this resource.\n"},"operatingStatus":{"type":"string","description":"Operating status of this member.\n"},"poolId":{"type":"string","description":"ID of the target load balancer pool to attach newly created member.\n"},"projectId":{"type":"number","description":"ID of the desired project to create load balancer member in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create load balancer member in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"protocolPort":{"type":"number","description":"Port to communicate with real server.\n"},"regionId":{"type":"number","description":"ID of the desired region to create load balancer member in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create load balancer member in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"subnetId":{"type":"string","description":"ID of the subnet in which real server placed.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FLbmemberTimeouts:LbmemberTimeouts"},"weight":{"type":"number","description":"Value between 0 and 256, default 1.\n"}},"type":"object","required":["address","lastUpdated","lbmemberId","operatingStatus","poolId","protocolPort","subnetId"],"inputProperties":{"address":{"type":"string","description":"IP address to communicate with real server.\n"},"instanceId":{"type":"string","description":"ID of the gcore_instance.\n"},"lbmemberId":{"type":"string","description":"The ID of this resource.\n"},"poolId":{"type":"string","description":"ID of the target load balancer pool to attach newly created member.\n"},"projectId":{"type":"number","description":"ID of the desired project to create load balancer member in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create load balancer member in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"protocolPort":{"type":"number","description":"Port to communicate with real server.\n"},"regionId":{"type":"number","description":"ID of the desired region to create load balancer member in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create load balancer member in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"subnetId":{"type":"string","description":"ID of the subnet in which real server placed.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FLbmemberTimeouts:LbmemberTimeouts"},"weight":{"type":"number","description":"Value between 0 and 256, default 1.\n"}},"requiredInputs":["address","poolId","protocolPort"],"stateInputs":{"description":"Input properties used for looking up and filtering Lbmember resources.\n","properties":{"address":{"type":"string","description":"IP address to communicate with real server.\n"},"instanceId":{"type":"string","description":"ID of the gcore_instance.\n"},"lastUpdated":{"type":"string","description":"Datetime when load balancer member was updated at the last time.\n"},"lbmemberId":{"type":"string","description":"The ID of this resource.\n"},"operatingStatus":{"type":"string","description":"Operating status of this member.\n"},"poolId":{"type":"string","description":"ID of the target load balancer pool to attach newly created member.\n"},"projectId":{"type":"number","description":"ID of the desired project to create load balancer member in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create load balancer member in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"protocolPort":{"type":"number","description":"Port to communicate with real server.\n"},"regionId":{"type":"number","description":"ID of the desired region to create load balancer member in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create load balancer member in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"subnetId":{"type":"string","description":"ID of the subnet in which real server placed.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FLbmemberTimeouts:LbmemberTimeouts"},"weight":{"type":"number","description":"Value between 0 and 256, default 1.\n"}},"type":"object"}},"gcore:index/lbpool:Lbpool":{"description":"Represent load balancer listener pool. A pool is a list of virtual machines to which the listener will redirect incoming traffic\n\n## 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\nconst project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### TCP Pool with health monitor and 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.Lblistener(\"tcp_80\", {\n    projectId: project.id,\n    regionId: region.id,\n    loadbalancerId: lb.id,\n    name: \"My first tcp listener with pool\",\n    protocol: \"TCP\",\n    protocolPort: 80,\n});\nconst tcp80Lbpool = new gcore.Lbpool(\"tcp_80\", {\n    projectId: project.id,\n    regionId: region.id,\n    loadbalancerId: lb.id,\n    listenerId: tcp80.lblistenerId,\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.Lblistener(\"tcp_80\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    loadbalancer_id=lb[\"id\"],\n    name=\"My first tcp listener with pool\",\n    protocol=\"TCP\",\n    protocol_port=80)\ntcp80_lbpool = gcore.Lbpool(\"tcp_80\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    loadbalancer_id=lb[\"id\"],\n    listener_id=tcp80.lblistener_id,\n    name=\"My first tcp pool\",\n    protocol=\"TCP\",\n    lb_algorithm=\"ROUND_ROBIN\",\n    health_monitor={\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.Lblistener(\"tcp_80\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        LoadbalancerId = lb.Id,\n        Name = \"My first tcp listener with pool\",\n        Protocol = \"TCP\",\n        ProtocolPort = 80,\n    });\n\n    var tcp80Lbpool = new Gcore.Lbpool(\"tcp_80\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        LoadbalancerId = lb.Id,\n        ListenerId = tcp80.LblistenerId,\n        Name = \"My first tcp pool\",\n        Protocol = \"TCP\",\n        LbAlgorithm = \"ROUND_ROBIN\",\n        HealthMonitor = new Gcore.Inputs.LbpoolHealthMonitorArgs\n        {\n            Type = \"PING\",\n            Delay = 10,\n            MaxRetries = 5,\n            Timeout = 5,\n        },\n        SessionPersistence = new Gcore.Inputs.LbpoolSessionPersistenceArgs\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/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.NewLblistener(ctx, \"tcp_80\", \u0026gcore.LblistenerArgs{\n\t\t\tProjectId:      pulumi.Any(project.Id),\n\t\t\tRegionId:       pulumi.Any(region.Id),\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.NewLbpool(ctx, \"tcp_80\", \u0026gcore.LbpoolArgs{\n\t\t\tProjectId:      pulumi.Any(project.Id),\n\t\t\tRegionId:       pulumi.Any(region.Id),\n\t\t\tLoadbalancerId: pulumi.Any(lb.Id),\n\t\t\tListenerId:     tcp80.LblistenerId,\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.LbpoolHealthMonitorArgs{\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.LbpoolSessionPersistenceArgs{\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.Lblistener;\nimport com.pulumi.gcore.LblistenerArgs;\nimport com.pulumi.gcore.Lbpool;\nimport com.pulumi.gcore.LbpoolArgs;\nimport com.pulumi.gcore.inputs.LbpoolHealthMonitorArgs;\nimport com.pulumi.gcore.inputs.LbpoolSessionPersistenceArgs;\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 Lblistener(\"tcp80\", LblistenerArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .loadbalancerId(lb.id())\n            .name(\"My first tcp listener with pool\")\n            .protocol(\"TCP\")\n            .protocolPort(80.0)\n            .build());\n\n        var tcp80Lbpool = new Lbpool(\"tcp80Lbpool\", LbpoolArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .loadbalancerId(lb.id())\n            .listenerId(tcp80.lblistenerId())\n            .name(\"My first tcp pool\")\n            .protocol(\"TCP\")\n            .lbAlgorithm(\"ROUND_ROBIN\")\n            .healthMonitor(LbpoolHealthMonitorArgs.builder()\n                .type(\"PING\")\n                .delay(10.0)\n                .maxRetries(5.0)\n                .timeout(5.0)\n                .build())\n            .sessionPersistence(LbpoolSessionPersistenceArgs.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:Lblistener\n    name: tcp_80\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      loadbalancerId: ${lb.id}\n      name: My first tcp listener with pool\n      protocol: TCP\n      protocolPort: 80\n  tcp80Lbpool:\n    type: gcore:Lbpool\n    name: tcp_80\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      loadbalancerId: ${lb.id}\n      listenerId: ${tcp80.lblistenerId}\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### Simple pool with proxy protocol\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.Lblistener(\"proxy_8080\", {\n    projectId: project.id,\n    regionId: region.id,\n    loadbalancerId: lb.id,\n    name: \"My first proxy listener with pool\",\n    protocol: \"TCP\",\n    protocolPort: 8080,\n});\nconst proxy8080Lbpool = new gcore.Lbpool(\"proxy_8080\", {\n    projectId: project.id,\n    regionId: region.id,\n    loadbalancerId: lb.id,\n    listenerId: proxy8080.lblistenerId,\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.Lblistener(\"proxy_8080\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    loadbalancer_id=lb[\"id\"],\n    name=\"My first proxy listener with pool\",\n    protocol=\"TCP\",\n    protocol_port=8080)\nproxy8080_lbpool = gcore.Lbpool(\"proxy_8080\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    loadbalancer_id=lb[\"id\"],\n    listener_id=proxy8080.lblistener_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.Lblistener(\"proxy_8080\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        LoadbalancerId = lb.Id,\n        Name = \"My first proxy listener with pool\",\n        Protocol = \"TCP\",\n        ProtocolPort = 8080,\n    });\n\n    var proxy8080Lbpool = new Gcore.Lbpool(\"proxy_8080\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        LoadbalancerId = lb.Id,\n        ListenerId = proxy8080.LblistenerId,\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/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.NewLblistener(ctx, \"proxy_8080\", \u0026gcore.LblistenerArgs{\n\t\t\tProjectId:      pulumi.Any(project.Id),\n\t\t\tRegionId:       pulumi.Any(region.Id),\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.NewLbpool(ctx, \"proxy_8080\", \u0026gcore.LbpoolArgs{\n\t\t\tProjectId:      pulumi.Any(project.Id),\n\t\t\tRegionId:       pulumi.Any(region.Id),\n\t\t\tLoadbalancerId: pulumi.Any(lb.Id),\n\t\t\tListenerId:     proxy8080.LblistenerId,\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.Lblistener;\nimport com.pulumi.gcore.LblistenerArgs;\nimport com.pulumi.gcore.Lbpool;\nimport com.pulumi.gcore.LbpoolArgs;\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 Lblistener(\"proxy8080\", LblistenerArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .loadbalancerId(lb.id())\n            .name(\"My first proxy listener with pool\")\n            .protocol(\"TCP\")\n            .protocolPort(8080.0)\n            .build());\n\n        var proxy8080Lbpool = new Lbpool(\"proxy8080Lbpool\", LbpoolArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .loadbalancerId(lb.id())\n            .listenerId(proxy8080.lblistenerId())\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:Lblistener\n    name: proxy_8080\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      loadbalancerId: ${lb.id}\n      name: My first proxy listener with pool\n      protocol: TCP\n      protocolPort: 8080\n  proxy8080Lbpool:\n    type: gcore:Lbpool\n    name: proxy_8080\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      loadbalancerId: ${lb.id}\n      listenerId: ${proxy8080.lblistenerId}\n      name: My first proxy pool\n      protocol: PROXY\n      lbAlgorithm: LEAST_CONNECTIONS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003clbpool_id\u003e format\n\n```sh\n$ pulumi import gcore:index/lbpool:Lbpool lbpool1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"healthMonitor":{"$ref":"#/types/gcore:index%2FLbpoolHealthMonitor:LbpoolHealthMonitor","description":"Health Monitor settings for defining health state of members inside this pool.\n"},"lastUpdated":{"type":"string","description":"Datetime when load balancer pool was updated at the last time.\n"},"lbAlgorithm":{"type":"string","description":"Available values is 'ROUND*ROBIN', 'LEAST*CONNECTIONS', 'SOURCE_IP'\n"},"lbpoolId":{"type":"string","description":"The ID of this resource.\n"},"listenerId":{"type":"string","description":"ID of the target listener associated with load balancer to attach newly created pool.\n"},"loadbalancerId":{"type":"string","description":"ID of the target load balancer to attach newly created pool.\n"},"name":{"type":"string","description":"Pool name.\n"},"projectId":{"type":"number","description":"ID of the desired project to create load balancer pool in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create load balancer pool in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"protocol":{"type":"string","description":"Available values are 'HTTP', 'HTTPS', 'TCP', 'UDP', 'PROXY', 'PROXYV2'\n"},"regionId":{"type":"number","description":"ID of the desired region to create load balancer pool in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create load balancer pool in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"sessionPersistence":{"$ref":"#/types/gcore:index%2FLbpoolSessionPersistence:LbpoolSessionPersistence","description":"Pool session persistence tells the load balancer to attempt to send future requests from a client to the same backend member as the initial request.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FLbpoolTimeouts:LbpoolTimeouts"}},"type":"object","required":["lastUpdated","lbAlgorithm","lbpoolId","name","protocol"],"inputProperties":{"healthMonitor":{"$ref":"#/types/gcore:index%2FLbpoolHealthMonitor:LbpoolHealthMonitor","description":"Health Monitor settings for defining health state of members inside this pool.\n"},"lbAlgorithm":{"type":"string","description":"Available values is 'ROUND*ROBIN', 'LEAST*CONNECTIONS', 'SOURCE_IP'\n"},"lbpoolId":{"type":"string","description":"The ID of this resource.\n"},"listenerId":{"type":"string","description":"ID of the target listener associated with load balancer to attach newly created pool.\n"},"loadbalancerId":{"type":"string","description":"ID of the target load balancer to attach newly created pool.\n"},"name":{"type":"string","description":"Pool name.\n"},"projectId":{"type":"number","description":"ID of the desired project to create load balancer pool in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create load balancer pool in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"protocol":{"type":"string","description":"Available values are 'HTTP', 'HTTPS', 'TCP', 'UDP', 'PROXY', 'PROXYV2'\n"},"regionId":{"type":"number","description":"ID of the desired region to create load balancer pool in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create load balancer pool in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"sessionPersistence":{"$ref":"#/types/gcore:index%2FLbpoolSessionPersistence:LbpoolSessionPersistence","description":"Pool session persistence tells the load balancer to attempt to send future requests from a client to the same backend member as the initial request.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FLbpoolTimeouts:LbpoolTimeouts"}},"requiredInputs":["lbAlgorithm","protocol"],"stateInputs":{"description":"Input properties used for looking up and filtering Lbpool resources.\n","properties":{"healthMonitor":{"$ref":"#/types/gcore:index%2FLbpoolHealthMonitor:LbpoolHealthMonitor","description":"Health Monitor settings for defining health state of members inside this pool.\n"},"lastUpdated":{"type":"string","description":"Datetime when load balancer pool was updated at the last time.\n"},"lbAlgorithm":{"type":"string","description":"Available values is 'ROUND*ROBIN', 'LEAST*CONNECTIONS', 'SOURCE_IP'\n"},"lbpoolId":{"type":"string","description":"The ID of this resource.\n"},"listenerId":{"type":"string","description":"ID of the target listener associated with load balancer to attach newly created pool.\n"},"loadbalancerId":{"type":"string","description":"ID of the target load balancer to attach newly created pool.\n"},"name":{"type":"string","description":"Pool name.\n"},"projectId":{"type":"number","description":"ID of the desired project to create load balancer pool in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create load balancer pool in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"protocol":{"type":"string","description":"Available values are 'HTTP', 'HTTPS', 'TCP', 'UDP', 'PROXY', 'PROXYV2'\n"},"regionId":{"type":"number","description":"ID of the desired region to create load balancer pool in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create load balancer pool in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"sessionPersistence":{"$ref":"#/types/gcore:index%2FLbpoolSessionPersistence:LbpoolSessionPersistence","description":"Pool session persistence tells the load balancer to attempt to send future requests from a client to the same backend member as the initial request.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FLbpoolTimeouts:LbpoolTimeouts"}},"type":"object"}},"gcore:index/lifecyclepolicy:Lifecyclepolicy":{"description":"Represent lifecycle policy. Use to periodically take snapshots\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 lp = new gcore.Lifecyclepolicy(\"lp\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"test\",\n    status: \"active\",\n    action: \"volume_snapshot\",\n    volumes: [{\n        id: \"fe93bfdd-4ce3-4041-b89b-4f10d0d49498\",\n    }],\n    schedules: [{\n        maxQuantity: 4,\n        interval: {\n            weeks: 1,\n            days: 2,\n            hours: 3,\n            minutes: 4,\n        },\n        resourceNameTemplate: \"reserve snap of the volume {volume_id}\",\n        retentionTime: {\n            weeks: 4,\n            days: 3,\n            hours: 2,\n            minutes: 1,\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nlp = gcore.Lifecyclepolicy(\"lp\",\n    project_id=1,\n    region_id=1,\n    name=\"test\",\n    status=\"active\",\n    action=\"volume_snapshot\",\n    volumes=[{\n        \"id\": \"fe93bfdd-4ce3-4041-b89b-4f10d0d49498\",\n    }],\n    schedules=[{\n        \"max_quantity\": 4,\n        \"interval\": {\n            \"weeks\": 1,\n            \"days\": 2,\n            \"hours\": 3,\n            \"minutes\": 4,\n        },\n        \"resource_name_template\": \"reserve snap of the volume {volume_id}\",\n        \"retention_time\": {\n            \"weeks\": 4,\n            \"days\": 3,\n            \"hours\": 2,\n            \"minutes\": 1,\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 lp = new Gcore.Lifecyclepolicy(\"lp\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"test\",\n        Status = \"active\",\n        Action = \"volume_snapshot\",\n        Volumes = new[]\n        {\n            new Gcore.Inputs.LifecyclepolicyVolumeArgs\n            {\n                Id = \"fe93bfdd-4ce3-4041-b89b-4f10d0d49498\",\n            },\n        },\n        Schedules = new[]\n        {\n            new Gcore.Inputs.LifecyclepolicyScheduleArgs\n            {\n                MaxQuantity = 4,\n                Interval = new Gcore.Inputs.LifecyclepolicyScheduleIntervalArgs\n                {\n                    Weeks = 1,\n                    Days = 2,\n                    Hours = 3,\n                    Minutes = 4,\n                },\n                ResourceNameTemplate = \"reserve snap of the volume {volume_id}\",\n                RetentionTime = new Gcore.Inputs.LifecyclepolicyScheduleRetentionTimeArgs\n                {\n                    Weeks = 4,\n                    Days = 3,\n                    Hours = 2,\n                    Minutes = 1,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewLifecyclepolicy(ctx, \"lp\", \u0026gcore.LifecyclepolicyArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"test\"),\n\t\t\tStatus:    pulumi.String(\"active\"),\n\t\t\tAction:    pulumi.String(\"volume_snapshot\"),\n\t\t\tVolumes: gcore.LifecyclepolicyVolumeArray{\n\t\t\t\t\u0026gcore.LifecyclepolicyVolumeArgs{\n\t\t\t\t\tId: pulumi.String(\"fe93bfdd-4ce3-4041-b89b-4f10d0d49498\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSchedules: gcore.LifecyclepolicyScheduleArray{\n\t\t\t\t\u0026gcore.LifecyclepolicyScheduleArgs{\n\t\t\t\t\tMaxQuantity: pulumi.Float64(4),\n\t\t\t\t\tInterval: \u0026gcore.LifecyclepolicyScheduleIntervalArgs{\n\t\t\t\t\t\tWeeks:   pulumi.Float64(1),\n\t\t\t\t\t\tDays:    pulumi.Float64(2),\n\t\t\t\t\t\tHours:   pulumi.Float64(3),\n\t\t\t\t\t\tMinutes: pulumi.Float64(4),\n\t\t\t\t\t},\n\t\t\t\t\tResourceNameTemplate: pulumi.String(\"reserve snap of the volume {volume_id}\"),\n\t\t\t\t\tRetentionTime: \u0026gcore.LifecyclepolicyScheduleRetentionTimeArgs{\n\t\t\t\t\t\tWeeks:   pulumi.Float64(4),\n\t\t\t\t\t\tDays:    pulumi.Float64(3),\n\t\t\t\t\t\tHours:   pulumi.Float64(2),\n\t\t\t\t\t\tMinutes: pulumi.Float64(1),\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.Lifecyclepolicy;\nimport com.pulumi.gcore.LifecyclepolicyArgs;\nimport com.pulumi.gcore.inputs.LifecyclepolicyVolumeArgs;\nimport com.pulumi.gcore.inputs.LifecyclepolicyScheduleArgs;\nimport com.pulumi.gcore.inputs.LifecyclepolicyScheduleIntervalArgs;\nimport com.pulumi.gcore.inputs.LifecyclepolicyScheduleRetentionTimeArgs;\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 lp = new Lifecyclepolicy(\"lp\", LifecyclepolicyArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"test\")\n            .status(\"active\")\n            .action(\"volume_snapshot\")\n            .volumes(LifecyclepolicyVolumeArgs.builder()\n                .id(\"fe93bfdd-4ce3-4041-b89b-4f10d0d49498\")\n                .build())\n            .schedules(LifecyclepolicyScheduleArgs.builder()\n                .maxQuantity(4.0)\n                .interval(LifecyclepolicyScheduleIntervalArgs.builder()\n                    .weeks(1.0)\n                    .days(2.0)\n                    .hours(3.0)\n                    .minutes(4.0)\n                    .build())\n                .resourceNameTemplate(\"reserve snap of the volume {volume_id}\")\n                .retentionTime(LifecyclepolicyScheduleRetentionTimeArgs.builder()\n                    .weeks(4.0)\n                    .days(3.0)\n                    .hours(2.0)\n                    .minutes(1.0)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  lp:\n    type: gcore:Lifecyclepolicy\n    properties:\n      projectId: 1\n      regionId: 1\n      name: test\n      status: active\n      action: volume_snapshot\n      volumes:\n        - id: fe93bfdd-4ce3-4041-b89b-4f10d0d49498\n      schedules:\n        - maxQuantity: 4\n          interval:\n            weeks: 1\n            days: 2\n            hours: 3\n            minutes: 4\n          resourceNameTemplate: reserve snap of the volume {volume_id}\n          retentionTime:\n            weeks: 4\n            days: 3\n            hours: 2\n            minutes: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003clifecyclepolicy_id\u003e format\n\n```sh\n$ pulumi import gcore:index/lifecyclepolicy:Lifecyclepolicy lifecyclepolicy1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"action":{"type":"string"},"lifecyclepolicyId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"schedules":{"type":"array","items":{"$ref":"#/types/gcore:index%2FLifecyclepolicySchedule:LifecyclepolicySchedule"}},"status":{"type":"string"},"userId":{"type":"number"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FLifecyclepolicyVolume:LifecyclepolicyVolume"},"description":"List of managed volumes\n"}},"type":"object","required":["lifecyclepolicyId","name","userId"],"inputProperties":{"action":{"type":"string"},"lifecyclepolicyId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"schedules":{"type":"array","items":{"$ref":"#/types/gcore:index%2FLifecyclepolicySchedule:LifecyclepolicySchedule"}},"status":{"type":"string"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FLifecyclepolicyVolume:LifecyclepolicyVolume"},"description":"List of managed volumes\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Lifecyclepolicy resources.\n","properties":{"action":{"type":"string"},"lifecyclepolicyId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"schedules":{"type":"array","items":{"$ref":"#/types/gcore:index%2FLifecyclepolicySchedule:LifecyclepolicySchedule"}},"status":{"type":"string"},"userId":{"type":"number"},"volumes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FLifecyclepolicyVolume:LifecyclepolicyVolume"},"description":"List of managed volumes\n"}},"type":"object"}},"gcore:index/loadbalancer:Loadbalancer":{"description":"Represent load balancer\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 lb = new gcore.Loadbalancer(\"lb\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"test\",\n    flavor: \"lb1-1-2\",\n    listener: {\n        name: \"test\",\n        protocol: \"HTTP\",\n        protocolPort: 80,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nlb = gcore.Loadbalancer(\"lb\",\n    project_id=1,\n    region_id=1,\n    name=\"test\",\n    flavor=\"lb1-1-2\",\n    listener={\n        \"name\": \"test\",\n        \"protocol\": \"HTTP\",\n        \"protocol_port\": 80,\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 lb = new Gcore.Loadbalancer(\"lb\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"test\",\n        Flavor = \"lb1-1-2\",\n        Listener = new Gcore.Inputs.LoadbalancerListenerArgs\n        {\n            Name = \"test\",\n            Protocol = \"HTTP\",\n            ProtocolPort = 80,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewLoadbalancer(ctx, \"lb\", \u0026gcore.LoadbalancerArgs{\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"test\"),\n\t\t\tFlavor:    pulumi.String(\"lb1-1-2\"),\n\t\t\tListener: \u0026gcore.LoadbalancerListenerArgs{\n\t\t\t\tName:         pulumi.String(\"test\"),\n\t\t\t\tProtocol:     pulumi.String(\"HTTP\"),\n\t\t\t\tProtocolPort: pulumi.Float64(80),\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.Loadbalancer;\nimport com.pulumi.gcore.LoadbalancerArgs;\nimport com.pulumi.gcore.inputs.LoadbalancerListenerArgs;\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 lb = new Loadbalancer(\"lb\", LoadbalancerArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"test\")\n            .flavor(\"lb1-1-2\")\n            .listener(LoadbalancerListenerArgs.builder()\n                .name(\"test\")\n                .protocol(\"HTTP\")\n                .protocolPort(80.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  lb:\n    type: gcore:Loadbalancer\n    properties:\n      projectId: 1\n      regionId: 1\n      name: test\n      flavor: lb1-1-2\n      listener:\n        name: test\n        protocol: HTTP\n        protocolPort: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003cloadbalancer_id\u003e:\u003clistener_id\u003e format, listener_id - nested listener id\n\n```sh\n$ pulumi import gcore:index/loadbalancer:Loadbalancer loadbalancer1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7:a336f28c-fbb0-4256-9545-e905bed9f48f\n```\n\n","properties":{"flavor":{"type":"string"},"lastUpdated":{"type":"string"},"listener":{"$ref":"#/types/gcore:index%2FLoadbalancerListener:LoadbalancerListener"},"loadbalancerId":{"type":"string","description":"The ID of this resource.\n"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"}},"metadataReadOnlies":{"type":"array","items":{"$ref":"#/types/gcore:index%2FLoadbalancerMetadataReadOnly:LoadbalancerMetadataReadOnly"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"timeouts":{"$ref":"#/types/gcore:index%2FLoadbalancerTimeouts:LoadbalancerTimeouts"},"vipAddress":{"type":"string","description":"Load balancer IP address\n"},"vipNetworkId":{"type":"string"},"vipSubnetId":{"type":"string"}},"type":"object","required":["lastUpdated","listener","loadbalancerId","metadataReadOnlies","name","vipAddress"],"inputProperties":{"flavor":{"type":"string"},"listener":{"$ref":"#/types/gcore:index%2FLoadbalancerListener:LoadbalancerListener"},"loadbalancerId":{"type":"string","description":"The ID of this resource.\n"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"timeouts":{"$ref":"#/types/gcore:index%2FLoadbalancerTimeouts:LoadbalancerTimeouts"},"vipNetworkId":{"type":"string"},"vipSubnetId":{"type":"string"}},"requiredInputs":["listener"],"stateInputs":{"description":"Input properties used for looking up and filtering Loadbalancer resources.\n","properties":{"flavor":{"type":"string"},"lastUpdated":{"type":"string"},"listener":{"$ref":"#/types/gcore:index%2FLoadbalancerListener:LoadbalancerListener"},"loadbalancerId":{"type":"string","description":"The ID of this resource.\n"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"}},"metadataReadOnlies":{"type":"array","items":{"$ref":"#/types/gcore:index%2FLoadbalancerMetadataReadOnly:LoadbalancerMetadataReadOnly"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"timeouts":{"$ref":"#/types/gcore:index%2FLoadbalancerTimeouts:LoadbalancerTimeouts"},"vipAddress":{"type":"string","description":"Load balancer IP address\n"},"vipNetworkId":{"type":"string"},"vipSubnetId":{"type":"string"}},"type":"object"}},"gcore:index/loadbalancerv2:Loadbalancerv2":{"description":"Represent load balancer without nested listener\n\n## 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\nconst project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Public Load Balancer\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.Loadbalancerv2(\"public_lb\", {\n    projectId: project.id,\n    regionId: region.id,\n    name: \"My first public load balancer\",\n    flavor: \"lb1-1-2\",\n    metadataMap: {\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.Loadbalancerv2(\"public_lb\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"My first public load balancer\",\n    flavor=\"lb1-1-2\",\n    metadata_map={\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.Loadbalancerv2(\"public_lb\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"My first public load balancer\",\n        Flavor = \"lb1-1-2\",\n        MetadataMap = \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/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.NewLoadbalancerv2(ctx, \"public_lb\", \u0026gcore.Loadbalancerv2Args{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\tName:      pulumi.String(\"My first public load balancer\"),\n\t\t\tFlavor:    pulumi.String(\"lb1-1-2\"),\n\t\t\tMetadataMap: 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.Loadbalancerv2;\nimport com.pulumi.gcore.Loadbalancerv2Args;\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 Loadbalancerv2(\"publicLb\", Loadbalancerv2Args.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"My first public load balancer\")\n            .flavor(\"lb1-1-2\")\n            .metadataMap(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:Loadbalancerv2\n    name: public_lb\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: My first public load balancer\n      flavor: lb1-1-2\n      metadataMap:\n        managed_by: terraform\noutputs:\n  publicLbIp: ${publicLb.vipAddress}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Public Load Balancer with Reserved Fixed IP\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 load balancer, you can attach the Reserved Fixed IP to another load balancer or instance\n    const publicLbFixedIp = new gcore.Reservedfixedip(\"public_lb_fixed_ip\", {\n        projectId: project.id,\n        regionId: region.id,\n        isVip: false,\n        type: \"external\",\n    });\n    const publicLbWithFixedIp = new gcore.Loadbalancerv2(\"public_lb_with_fixed_ip\", {\n        projectId: project.id,\n        regionId: region.id,\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 load balancer, you can attach the Reserved Fixed IP to another load balancer or instance\npublic_lb_fixed_ip = gcore.Reservedfixedip(\"public_lb_fixed_ip\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    is_vip=False,\n    type=\"external\")\npublic_lb_with_fixed_ip = gcore.Loadbalancerv2(\"public_lb_with_fixed_ip\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\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 load balancer, you can attach the Reserved Fixed IP to another load balancer or instance\n    var publicLbFixedIp = new Gcore.Reservedfixedip(\"public_lb_fixed_ip\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        IsVip = false,\n        Type = \"external\",\n    });\n\n    var publicLbWithFixedIp = new Gcore.Loadbalancerv2(\"public_lb_with_fixed_ip\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\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/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 load balancer, you can attach the Reserved Fixed IP to another load balancer or instance\n\t\tpublicLbFixedIp, err := gcore.NewReservedfixedip(ctx, \"public_lb_fixed_ip\", \u0026gcore.ReservedfixedipArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.NewLoadbalancerv2(ctx, \"public_lb_with_fixed_ip\", \u0026gcore.Loadbalancerv2Args{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.Reservedfixedip;\nimport com.pulumi.gcore.ReservedfixedipArgs;\nimport com.pulumi.gcore.Loadbalancerv2;\nimport com.pulumi.gcore.Loadbalancerv2Args;\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 load balancer, you can attach the Reserved Fixed IP to another load balancer or instance\n        var publicLbFixedIp = new Reservedfixedip(\"publicLbFixedIp\", ReservedfixedipArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .isVip(false)\n            .type(\"external\")\n            .build());\n\n        var publicLbWithFixedIp = new Loadbalancerv2(\"publicLbWithFixedIp\", Loadbalancerv2Args.builder()\n            .projectId(project.id())\n            .regionId(region.id())\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 load balancer, you can attach the Reserved Fixed IP to another load balancer or instance\n  publicLbFixedIp:\n    type: gcore:Reservedfixedip\n    name: public_lb_fixed_ip\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      isVip: false\n      type: external\n  publicLbWithFixedIp:\n    type: gcore:Loadbalancerv2\n    name: public_lb_with_fixed_ip\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\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### Creating Private Load Balancer\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.Network(\"private_network\", {\n    projectId: project.id,\n    regionId: region.id,\n    name: \"my-private-network\",\n});\nconst privateSubnet = new gcore.Subnet(\"private_subnet\", {\n    projectId: project.id,\n    regionId: region.id,\n    cidr: \"10.0.0.0/24\",\n    name: \"my-private-network-subnet\",\n    networkId: privateNetwork.networkId,\n});\nconst privateLb = new gcore.Loadbalancerv2(\"private_lb\", {\n    projectId: project.id,\n    regionId: region.id,\n    name: \"My first private load balancer\",\n    flavor: \"lb1-1-2\",\n    vipNetworkId: privateNetwork.networkId,\n    vipSubnetId: privateSubnet.subnetId,\n});\nexport const privateLbIp = privateLb.vipAddress;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nprivate_network = gcore.Network(\"private_network\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"my-private-network\")\nprivate_subnet = gcore.Subnet(\"private_subnet\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    cidr=\"10.0.0.0/24\",\n    name=\"my-private-network-subnet\",\n    network_id=private_network.network_id)\nprivate_lb = gcore.Loadbalancerv2(\"private_lb\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"My first private load balancer\",\n    flavor=\"lb1-1-2\",\n    vip_network_id=private_network.network_id,\n    vip_subnet_id=private_subnet.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.Network(\"private_network\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"my-private-network\",\n    });\n\n    var privateSubnet = new Gcore.Subnet(\"private_subnet\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Cidr = \"10.0.0.0/24\",\n        Name = \"my-private-network-subnet\",\n        NetworkId = privateNetwork.NetworkId,\n    });\n\n    var privateLb = new Gcore.Loadbalancerv2(\"private_lb\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"My first private load balancer\",\n        Flavor = \"lb1-1-2\",\n        VipNetworkId = privateNetwork.NetworkId,\n        VipSubnetId = privateSubnet.SubnetId,\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/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.NewNetwork(ctx, \"private_network\", \u0026gcore.NetworkArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.NewSubnet(ctx, \"private_subnet\", \u0026gcore.SubnetArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.NetworkId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateLb, err := gcore.NewLoadbalancerv2(ctx, \"private_lb\", \u0026gcore.Loadbalancerv2Args{\n\t\t\tProjectId:    pulumi.Any(project.Id),\n\t\t\tRegionId:     pulumi.Any(region.Id),\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.NetworkId,\n\t\t\tVipSubnetId:  privateSubnet.SubnetId,\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.Network;\nimport com.pulumi.gcore.NetworkArgs;\nimport com.pulumi.gcore.Subnet;\nimport com.pulumi.gcore.SubnetArgs;\nimport com.pulumi.gcore.Loadbalancerv2;\nimport com.pulumi.gcore.Loadbalancerv2Args;\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 Network(\"privateNetwork\", NetworkArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"my-private-network\")\n            .build());\n\n        var privateSubnet = new Subnet(\"privateSubnet\", SubnetArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .cidr(\"10.0.0.0/24\")\n            .name(\"my-private-network-subnet\")\n            .networkId(privateNetwork.networkId())\n            .build());\n\n        var privateLb = new Loadbalancerv2(\"privateLb\", Loadbalancerv2Args.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"My first private load balancer\")\n            .flavor(\"lb1-1-2\")\n            .vipNetworkId(privateNetwork.networkId())\n            .vipSubnetId(privateSubnet.subnetId())\n            .build());\n\n        ctx.export(\"privateLbIp\", privateLb.vipAddress());\n    }\n}\n```\n```yaml\nresources:\n  privateNetwork:\n    type: gcore:Network\n    name: private_network\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: my-private-network\n  privateSubnet:\n    type: gcore:Subnet\n    name: private_subnet\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      cidr: 10.0.0.0/24\n      name: my-private-network-subnet\n      networkId: ${privateNetwork.networkId}\n  privateLb:\n    type: gcore:Loadbalancerv2\n    name: private_lb\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: My first private load balancer\n      flavor: lb1-1-2\n      vipNetworkId: ${privateNetwork.networkId}\n      vipSubnetId: ${privateSubnet.subnetId}\noutputs:\n  privateLbIp: ${privateLb.vipAddress}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Floating IP for Private Load Balancer\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.Floatingip(\"private_lb_fip\", {\n        projectId: project.id,\n        regionId: region.id,\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.Floatingip(\"private_lb_fip\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\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.Floatingip(\"private_lb_fip\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\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/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.NewFloatingip(ctx, \"private_lb_fip\", \u0026gcore.FloatingipArgs{\n\t\t\tProjectId:      pulumi.Any(project.Id),\n\t\t\tRegionId:       pulumi.Any(region.Id),\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.Floatingip;\nimport com.pulumi.gcore.FloatingipArgs;\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 Floatingip(\"privateLbFip\", FloatingipArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\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:Floatingip\n    name: private_lb_fip\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      fixedIpAddress: ${privateLb.vipAddress}\n      portId: ${privateLb.vipPortId}\noutputs:\n  privateLbFip: ${privateLbFip.floatingIpAddress}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Private Load Balancer in Dual Stack Mode\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.Network(\"private_network_dualstack\", {\n    projectId: project.id,\n    regionId: region.id,\n    name: \"my-private-network-dualstack\",\n});\nconst privateSubnetIpv4 = new gcore.Subnet(\"private_subnet_ipv4\", {\n    projectId: project.id,\n    regionId: region.id,\n    cidr: \"10.0.0.0/24\",\n    name: \"my-private-network-subnet-ipv4\",\n    networkId: privateNetworkDualstack.networkId,\n});\nconst privateSubnetIpv6 = new gcore.Subnet(\"private_subnet_ipv6\", {\n    projectId: project.id,\n    regionId: region.id,\n    cidr: \"fd00::/120\",\n    name: \"my-private-network-subnet-ipv6\",\n    networkId: privateNetworkDualstack.networkId,\n});\nconst privateLbDualstack = new gcore.Loadbalancerv2(\"private_lb_dualstack\", {\n    projectId: project.id,\n    regionId: region.id,\n    name: \"My first private dual stack load balancer\",\n    flavor: \"lb1-1-2\",\n    vipNetworkId: privateNetworkDualstack.networkId,\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.Network(\"private_network_dualstack\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"my-private-network-dualstack\")\nprivate_subnet_ipv4 = gcore.Subnet(\"private_subnet_ipv4\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    cidr=\"10.0.0.0/24\",\n    name=\"my-private-network-subnet-ipv4\",\n    network_id=private_network_dualstack.network_id)\nprivate_subnet_ipv6 = gcore.Subnet(\"private_subnet_ipv6\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    cidr=\"fd00::/120\",\n    name=\"my-private-network-subnet-ipv6\",\n    network_id=private_network_dualstack.network_id)\nprivate_lb_dualstack = gcore.Loadbalancerv2(\"private_lb_dualstack\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"My first private dual stack load balancer\",\n    flavor=\"lb1-1-2\",\n    vip_network_id=private_network_dualstack.network_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.Network(\"private_network_dualstack\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"my-private-network-dualstack\",\n    });\n\n    var privateSubnetIpv4 = new Gcore.Subnet(\"private_subnet_ipv4\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Cidr = \"10.0.0.0/24\",\n        Name = \"my-private-network-subnet-ipv4\",\n        NetworkId = privateNetworkDualstack.NetworkId,\n    });\n\n    var privateSubnetIpv6 = new Gcore.Subnet(\"private_subnet_ipv6\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Cidr = \"fd00::/120\",\n        Name = \"my-private-network-subnet-ipv6\",\n        NetworkId = privateNetworkDualstack.NetworkId,\n    });\n\n    var privateLbDualstack = new Gcore.Loadbalancerv2(\"private_lb_dualstack\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"My first private dual stack load balancer\",\n        Flavor = \"lb1-1-2\",\n        VipNetworkId = privateNetworkDualstack.NetworkId,\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/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.NewNetwork(ctx, \"private_network_dualstack\", \u0026gcore.NetworkArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.NewSubnet(ctx, \"private_subnet_ipv4\", \u0026gcore.SubnetArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.NetworkId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateSubnetIpv6, err := gcore.NewSubnet(ctx, \"private_subnet_ipv6\", \u0026gcore.SubnetArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\tCidr:      pulumi.String(\"fd00::/120\"),\n\t\t\tName:      pulumi.String(\"my-private-network-subnet-ipv6\"),\n\t\t\tNetworkId: privateNetworkDualstack.NetworkId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewLoadbalancerv2(ctx, \"private_lb_dualstack\", \u0026gcore.Loadbalancerv2Args{\n\t\t\tProjectId:    pulumi.Any(project.Id),\n\t\t\tRegionId:     pulumi.Any(region.Id),\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.NetworkId,\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.Network;\nimport com.pulumi.gcore.NetworkArgs;\nimport com.pulumi.gcore.Subnet;\nimport com.pulumi.gcore.SubnetArgs;\nimport com.pulumi.gcore.Loadbalancerv2;\nimport com.pulumi.gcore.Loadbalancerv2Args;\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 Network(\"privateNetworkDualstack\", NetworkArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"my-private-network-dualstack\")\n            .build());\n\n        var privateSubnetIpv4 = new Subnet(\"privateSubnetIpv4\", SubnetArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .cidr(\"10.0.0.0/24\")\n            .name(\"my-private-network-subnet-ipv4\")\n            .networkId(privateNetworkDualstack.networkId())\n            .build());\n\n        var privateSubnetIpv6 = new Subnet(\"privateSubnetIpv6\", SubnetArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .cidr(\"fd00::/120\")\n            .name(\"my-private-network-subnet-ipv6\")\n            .networkId(privateNetworkDualstack.networkId())\n            .build());\n\n        var privateLbDualstack = new Loadbalancerv2(\"privateLbDualstack\", Loadbalancerv2Args.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"My first private dual stack load balancer\")\n            .flavor(\"lb1-1-2\")\n            .vipNetworkId(privateNetworkDualstack.networkId())\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:Network\n    name: private_network_dualstack\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: my-private-network-dualstack\n  privateSubnetIpv4:\n    type: gcore:Subnet\n    name: private_subnet_ipv4\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      cidr: 10.0.0.0/24\n      name: my-private-network-subnet-ipv4\n      networkId: ${privateNetworkDualstack.networkId}\n  privateSubnetIpv6:\n    type: gcore:Subnet\n    name: private_subnet_ipv6\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      cidr: fd00::/120\n      name: my-private-network-subnet-ipv6\n      networkId: ${privateNetworkDualstack.networkId}\n  privateLbDualstack:\n    type: gcore:Loadbalancerv2\n    name: private_lb_dualstack\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: My first private dual stack load balancer\n      flavor: lb1-1-2\n      vipNetworkId: ${privateNetworkDualstack.networkId}\n      vipIpFamily: dual\n    options:\n      dependsOn:\n        - ${privateSubnetIpv4}\n        - ${privateSubnetIpv6}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003cloadbalancer_id\u003e format\n\n```sh\n$ pulumi import gcore:index/loadbalancerv2:Loadbalancerv2 loadbalancer1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"additionalVips":{"type":"array","items":{"$ref":"#/types/gcore:index%2FLoadbalancerv2AdditionalVip:Loadbalancerv2AdditionalVip"},"description":"Load Balancer additional VIPs\n"},"flavor":{"type":"string","description":"Desired flavor to be used for load balancer. By default, `lb1-1-2` will be used.\n"},"lastUpdated":{"type":"string","description":"Datetime when load balancer was updated at the last time.\n"},"loadbalancerv2Id":{"type":"string","description":"The ID of this resource.\n"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"},"description":"Metadata map to apply to the load balancer.\n"},"metadataReadOnlies":{"type":"array","items":{"$ref":"#/types/gcore:index%2FLoadbalancerv2MetadataReadOnly:Loadbalancerv2MetadataReadOnly"},"description":"List of metadata items.\n"},"name":{"type":"string","description":"Name of the load balancer.\n"},"preferredConnectivity":{"type":"string","description":"Available values are 'L2', 'L3'\n"},"projectId":{"type":"number","description":"ID of the desired project to create load balancer in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create load balancer in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"regionId":{"type":"number","description":"ID of the desired region to create load balancer in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create load balancer in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FLoadbalancerv2Timeouts:Loadbalancerv2Timeouts"},"vipAddress":{"type":"string","description":"Load balancer IP address. IP address will be changed when load balancer will be recreated if \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 is not specified.\n"},"vipIpFamily":{"type":"string","description":"Available values are 'ipv4', 'ipv6', 'dual'\n"},"vipNetworkId":{"type":"string","description":"ID of the desired network. Can be used with vip*subnet*id, in this case Load Balancer will be created in specified subnet, otherwise in most free subnet. Note: add all created \u003cspan pulumi-lang-nodejs=\"`gcore.Subnet`\" pulumi-lang-dotnet=\"`gcore.Subnet`\" pulumi-lang-go=\"`Subnet`\" pulumi-lang-python=\"`Subnet`\" pulumi-lang-yaml=\"`gcore.Subnet`\" pulumi-lang-java=\"`gcore.Subnet`\"\u003e`gcore.Subnet`\u003c/span\u003e resources within the network with this id to the \u003cspan pulumi-lang-nodejs=\"`dependsOn`\" pulumi-lang-dotnet=\"`DependsOn`\" pulumi-lang-go=\"`dependsOn`\" pulumi-lang-python=\"`depends_on`\" pulumi-lang-yaml=\"`dependsOn`\" pulumi-lang-java=\"`dependsOn`\"\u003e`depends_on`\u003c/span\u003e to be sure that \u003cspan pulumi-lang-nodejs=\"`gcore.Loadbalancerv2`\" pulumi-lang-dotnet=\"`gcore.Loadbalancerv2`\" pulumi-lang-go=\"`Loadbalancerv2`\" pulumi-lang-python=\"`Loadbalancerv2`\" pulumi-lang-yaml=\"`gcore.Loadbalancerv2`\" pulumi-lang-java=\"`gcore.Loadbalancerv2`\"\u003e`gcore.Loadbalancerv2`\u003c/span\u003e will be destroyed first\n"},"vipPortId":{"type":"string","description":"Load balancer Port ID. It might be ID of the already created Reserved Fixed IP, otherwise we will create port automatically in specified \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/\u003cspan pulumi-lang-nodejs=\"`vipSubnetId`\" pulumi-lang-dotnet=\"`VipSubnetId`\" pulumi-lang-go=\"`vipSubnetId`\" pulumi-lang-python=\"`vip_subnet_id`\" pulumi-lang-yaml=\"`vipSubnetId`\" pulumi-lang-java=\"`vipSubnetId`\"\u003e`vip_subnet_id`\u003c/span\u003e. It is an alternative for specifying \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/\u003cspan pulumi-lang-nodejs=\"`vipSubnetId`\" pulumi-lang-dotnet=\"`VipSubnetId`\" pulumi-lang-go=\"`vipSubnetId`\" pulumi-lang-python=\"`vip_subnet_id`\" pulumi-lang-yaml=\"`vipSubnetId`\" pulumi-lang-java=\"`vipSubnetId`\"\u003e`vip_subnet_id`\u003c/span\u003e.\n"},"vipSubnetId":{"type":"string","description":"ID of the desired subnet. Should be used together with vip*network*id.\n"},"vrrpIps":{"type":"array","items":{"$ref":"#/types/gcore:index%2FLoadbalancerv2VrrpIp:Loadbalancerv2VrrpIp"}}},"type":"object","required":["additionalVips","lastUpdated","loadbalancerv2Id","metadataReadOnlies","name","preferredConnectivity","vipAddress","vipIpFamily","vipPortId","vrrpIps"],"inputProperties":{"flavor":{"type":"string","description":"Desired flavor to be used for load balancer. By default, `lb1-1-2` will be used.\n"},"loadbalancerv2Id":{"type":"string","description":"The ID of this resource.\n"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"},"description":"Metadata map to apply to the load balancer.\n"},"name":{"type":"string","description":"Name of the load balancer.\n"},"preferredConnectivity":{"type":"string","description":"Available values are 'L2', 'L3'\n"},"projectId":{"type":"number","description":"ID of the desired project to create load balancer in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create load balancer in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"regionId":{"type":"number","description":"ID of the desired region to create load balancer in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create load balancer in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FLoadbalancerv2Timeouts:Loadbalancerv2Timeouts"},"vipIpFamily":{"type":"string","description":"Available values are 'ipv4', 'ipv6', 'dual'\n"},"vipNetworkId":{"type":"string","description":"ID of the desired network. Can be used with vip*subnet*id, in this case Load Balancer will be created in specified subnet, otherwise in most free subnet. Note: add all created \u003cspan pulumi-lang-nodejs=\"`gcore.Subnet`\" pulumi-lang-dotnet=\"`gcore.Subnet`\" pulumi-lang-go=\"`Subnet`\" pulumi-lang-python=\"`Subnet`\" pulumi-lang-yaml=\"`gcore.Subnet`\" pulumi-lang-java=\"`gcore.Subnet`\"\u003e`gcore.Subnet`\u003c/span\u003e resources within the network with this id to the \u003cspan pulumi-lang-nodejs=\"`dependsOn`\" pulumi-lang-dotnet=\"`DependsOn`\" pulumi-lang-go=\"`dependsOn`\" pulumi-lang-python=\"`depends_on`\" pulumi-lang-yaml=\"`dependsOn`\" pulumi-lang-java=\"`dependsOn`\"\u003e`depends_on`\u003c/span\u003e to be sure that \u003cspan pulumi-lang-nodejs=\"`gcore.Loadbalancerv2`\" pulumi-lang-dotnet=\"`gcore.Loadbalancerv2`\" pulumi-lang-go=\"`Loadbalancerv2`\" pulumi-lang-python=\"`Loadbalancerv2`\" pulumi-lang-yaml=\"`gcore.Loadbalancerv2`\" pulumi-lang-java=\"`gcore.Loadbalancerv2`\"\u003e`gcore.Loadbalancerv2`\u003c/span\u003e will be destroyed first\n"},"vipPortId":{"type":"string","description":"Load balancer Port ID. It might be ID of the already created Reserved Fixed IP, otherwise we will create port automatically in specified \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/\u003cspan pulumi-lang-nodejs=\"`vipSubnetId`\" pulumi-lang-dotnet=\"`VipSubnetId`\" pulumi-lang-go=\"`vipSubnetId`\" pulumi-lang-python=\"`vip_subnet_id`\" pulumi-lang-yaml=\"`vipSubnetId`\" pulumi-lang-java=\"`vipSubnetId`\"\u003e`vip_subnet_id`\u003c/span\u003e. It is an alternative for specifying \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/\u003cspan pulumi-lang-nodejs=\"`vipSubnetId`\" pulumi-lang-dotnet=\"`VipSubnetId`\" pulumi-lang-go=\"`vipSubnetId`\" pulumi-lang-python=\"`vip_subnet_id`\" pulumi-lang-yaml=\"`vipSubnetId`\" pulumi-lang-java=\"`vipSubnetId`\"\u003e`vip_subnet_id`\u003c/span\u003e.\n"},"vipSubnetId":{"type":"string","description":"ID of the desired subnet. Should be used together with vip*network*id.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Loadbalancerv2 resources.\n","properties":{"additionalVips":{"type":"array","items":{"$ref":"#/types/gcore:index%2FLoadbalancerv2AdditionalVip:Loadbalancerv2AdditionalVip"},"description":"Load Balancer additional VIPs\n"},"flavor":{"type":"string","description":"Desired flavor to be used for load balancer. By default, `lb1-1-2` will be used.\n"},"lastUpdated":{"type":"string","description":"Datetime when load balancer was updated at the last time.\n"},"loadbalancerv2Id":{"type":"string","description":"The ID of this resource.\n"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"},"description":"Metadata map to apply to the load balancer.\n"},"metadataReadOnlies":{"type":"array","items":{"$ref":"#/types/gcore:index%2FLoadbalancerv2MetadataReadOnly:Loadbalancerv2MetadataReadOnly"},"description":"List of metadata items.\n"},"name":{"type":"string","description":"Name of the load balancer.\n"},"preferredConnectivity":{"type":"string","description":"Available values are 'L2', 'L3'\n"},"projectId":{"type":"number","description":"ID of the desired project to create load balancer in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create load balancer in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"regionId":{"type":"number","description":"ID of the desired region to create load balancer in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create load balancer in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FLoadbalancerv2Timeouts:Loadbalancerv2Timeouts"},"vipAddress":{"type":"string","description":"Load balancer IP address. IP address will be changed when load balancer will be recreated if \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 is not specified.\n"},"vipIpFamily":{"type":"string","description":"Available values are 'ipv4', 'ipv6', 'dual'\n"},"vipNetworkId":{"type":"string","description":"ID of the desired network. Can be used with vip*subnet*id, in this case Load Balancer will be created in specified subnet, otherwise in most free subnet. Note: add all created \u003cspan pulumi-lang-nodejs=\"`gcore.Subnet`\" pulumi-lang-dotnet=\"`gcore.Subnet`\" pulumi-lang-go=\"`Subnet`\" pulumi-lang-python=\"`Subnet`\" pulumi-lang-yaml=\"`gcore.Subnet`\" pulumi-lang-java=\"`gcore.Subnet`\"\u003e`gcore.Subnet`\u003c/span\u003e resources within the network with this id to the \u003cspan pulumi-lang-nodejs=\"`dependsOn`\" pulumi-lang-dotnet=\"`DependsOn`\" pulumi-lang-go=\"`dependsOn`\" pulumi-lang-python=\"`depends_on`\" pulumi-lang-yaml=\"`dependsOn`\" pulumi-lang-java=\"`dependsOn`\"\u003e`depends_on`\u003c/span\u003e to be sure that \u003cspan pulumi-lang-nodejs=\"`gcore.Loadbalancerv2`\" pulumi-lang-dotnet=\"`gcore.Loadbalancerv2`\" pulumi-lang-go=\"`Loadbalancerv2`\" pulumi-lang-python=\"`Loadbalancerv2`\" pulumi-lang-yaml=\"`gcore.Loadbalancerv2`\" pulumi-lang-java=\"`gcore.Loadbalancerv2`\"\u003e`gcore.Loadbalancerv2`\u003c/span\u003e will be destroyed first\n"},"vipPortId":{"type":"string","description":"Load balancer Port ID. It might be ID of the already created Reserved Fixed IP, otherwise we will create port automatically in specified \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/\u003cspan pulumi-lang-nodejs=\"`vipSubnetId`\" pulumi-lang-dotnet=\"`VipSubnetId`\" pulumi-lang-go=\"`vipSubnetId`\" pulumi-lang-python=\"`vip_subnet_id`\" pulumi-lang-yaml=\"`vipSubnetId`\" pulumi-lang-java=\"`vipSubnetId`\"\u003e`vip_subnet_id`\u003c/span\u003e. It is an alternative for specifying \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/\u003cspan pulumi-lang-nodejs=\"`vipSubnetId`\" pulumi-lang-dotnet=\"`VipSubnetId`\" pulumi-lang-go=\"`vipSubnetId`\" pulumi-lang-python=\"`vip_subnet_id`\" pulumi-lang-yaml=\"`vipSubnetId`\" pulumi-lang-java=\"`vipSubnetId`\"\u003e`vip_subnet_id`\u003c/span\u003e.\n"},"vipSubnetId":{"type":"string","description":"ID of the desired subnet. Should be used together with vip*network*id.\n"},"vrrpIps":{"type":"array","items":{"$ref":"#/types/gcore:index%2FLoadbalancerv2VrrpIp:Loadbalancerv2VrrpIp"}}},"type":"object"}},"gcore:index/network:Network":{"description":"Represent network. A network is a software-defined network in a cloud computing infrastructure\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 network = new gcore.Network(\"network\", {\n    name: \"network_example\",\n    type: \"vxlan\",\n    regionId: 1,\n    projectId: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nnetwork = gcore.Network(\"network\",\n    name=\"network_example\",\n    type=\"vxlan\",\n    region_id=1,\n    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 network = new Gcore.Network(\"network\", new()\n    {\n        Name = \"network_example\",\n        Type = \"vxlan\",\n        RegionId = 1,\n        ProjectId = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewNetwork(ctx, \"network\", \u0026gcore.NetworkArgs{\n\t\t\tName:      pulumi.String(\"network_example\"),\n\t\t\tType:      pulumi.String(\"vxlan\"),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tProjectId: 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.Network;\nimport com.pulumi.gcore.NetworkArgs;\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 Network(\"network\", NetworkArgs.builder()\n            .name(\"network_example\")\n            .type(\"vxlan\")\n            .regionId(1.0)\n            .projectId(1.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  network:\n    type: gcore:Network\n    properties:\n      name: network_example\n      type: vxlan\n      regionId: 1\n      projectId: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003cnetwork_id\u003e format\n\n```sh\n$ pulumi import gcore:index/network:Network metwork1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"createRouter":{"type":"boolean","description":"Create external router to the network, default true\n"},"lastUpdated":{"type":"string"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"}},"metadataReadOnlies":{"type":"array","items":{"$ref":"#/types/gcore:index%2FNetworkMetadataReadOnly:NetworkMetadataReadOnly"}},"mtu":{"type":"number"},"name":{"type":"string"},"networkId":{"type":"string","description":"The ID of this resource.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"type":{"type":"string","description":"'vlan' or 'vxlan' network type is allowed. Default value is 'vxlan'\n"}},"type":"object","required":["lastUpdated","metadataReadOnlies","mtu","name","networkId","type"],"inputProperties":{"createRouter":{"type":"boolean","description":"Create external router to the network, default true\n"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"}},"name":{"type":"string"},"networkId":{"type":"string","description":"The ID of this resource.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"type":{"type":"string","description":"'vlan' or 'vxlan' network type is allowed. Default value is 'vxlan'\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Network resources.\n","properties":{"createRouter":{"type":"boolean","description":"Create external router to the network, default true\n"},"lastUpdated":{"type":"string"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"}},"metadataReadOnlies":{"type":"array","items":{"$ref":"#/types/gcore:index%2FNetworkMetadataReadOnly:NetworkMetadataReadOnly"}},"mtu":{"type":"number"},"name":{"type":"string"},"networkId":{"type":"string","description":"The ID of this resource.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"type":{"type":"string","description":"'vlan' or 'vxlan' network type is allowed. Default value is 'vxlan'\n"}},"type":"object"}},"gcore:index/portAllowedAddressPairs:PortAllowedAddressPairs":{"description":"Manages allowed address pairs for any private port attached to a Virtual Instance.\n\nIf the 'port_id' belongs to a 'gcore_reservedfixedip' resource, it is recommended to add\n'ignore_changes = \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' to the 'gcore_reservedfixedip' resource and include\n'depends_on = [gcore_instancev2.\u003cresource\u003e]' in the current resource.\n\nThis ensures that the allowed address pairs are configured only after\nthe Reserved Fixed IP has been associated with the Virtual Instance.\n","properties":{"allowedAddressPairs":{"type":"array","items":{"$ref":"#/types/gcore:index%2FPortAllowedAddressPairsAllowedAddressPair:PortAllowedAddressPairsAllowedAddressPair"},"description":"List of allowed address pairs to associate with the port.\n"},"portAllowedAddressPairsId":{"type":"string","description":"The ID of this resource.\n"},"portId":{"type":"string","description":"ID of the port where allowed address pairs will be managed.\n"},"projectId":{"type":"number","description":"Project ID in which the port exists.\n"},"projectName":{"type":"string","description":"Project name in which the port exists.\n"},"regionId":{"type":"number","description":"Region ID where the port is located.\n"},"regionName":{"type":"string","description":"Region name where the port is located.\n"}},"type":"object","required":["portAllowedAddressPairsId","portId"],"inputProperties":{"allowedAddressPairs":{"type":"array","items":{"$ref":"#/types/gcore:index%2FPortAllowedAddressPairsAllowedAddressPair:PortAllowedAddressPairsAllowedAddressPair"},"description":"List of allowed address pairs to associate with the port.\n"},"portAllowedAddressPairsId":{"type":"string","description":"The ID of this resource.\n"},"portId":{"type":"string","description":"ID of the port where allowed address pairs will be managed.\n"},"projectId":{"type":"number","description":"Project ID in which the port exists.\n"},"projectName":{"type":"string","description":"Project name in which the port exists.\n"},"regionId":{"type":"number","description":"Region ID where the port is located.\n"},"regionName":{"type":"string","description":"Region name where the port is located.\n"}},"requiredInputs":["portId"],"stateInputs":{"description":"Input properties used for looking up and filtering PortAllowedAddressPairs resources.\n","properties":{"allowedAddressPairs":{"type":"array","items":{"$ref":"#/types/gcore:index%2FPortAllowedAddressPairsAllowedAddressPair:PortAllowedAddressPairsAllowedAddressPair"},"description":"List of allowed address pairs to associate with the port.\n"},"portAllowedAddressPairsId":{"type":"string","description":"The ID of this resource.\n"},"portId":{"type":"string","description":"ID of the port where allowed address pairs will be managed.\n"},"projectId":{"type":"number","description":"Project ID in which the port exists.\n"},"projectName":{"type":"string","description":"Project name in which the port exists.\n"},"regionId":{"type":"number","description":"Region ID where the port is located.\n"},"regionName":{"type":"string","description":"Region name where the port is located.\n"}},"type":"object"}},"gcore:index/portSecurity:PortSecurity":{"description":"Manages security for any private port attached to a Virtual Instance.\n","properties":{"enablePortSecurity":{"type":"boolean","description":"Enable port security for the port.\n"},"portId":{"type":"string","description":"ID of the port where allowed address pairs will be managed.\n"},"portSecurityId":{"type":"string","description":"The ID of this resource.\n"},"projectId":{"type":"number","description":"Project ID in which the port exists.\n"},"projectName":{"type":"string","description":"Project name in which the port exists.\n"},"regionId":{"type":"number","description":"Region ID where the port is located.\n"},"regionName":{"type":"string","description":"Region name where the port is located.\n"}},"type":"object","required":["portId","portSecurityId"],"inputProperties":{"enablePortSecurity":{"type":"boolean","description":"Enable port security for the port.\n"},"portId":{"type":"string","description":"ID of the port where allowed address pairs will be managed.\n"},"portSecurityId":{"type":"string","description":"The ID of this resource.\n"},"projectId":{"type":"number","description":"Project ID in which the port exists.\n"},"projectName":{"type":"string","description":"Project name in which the port exists.\n"},"regionId":{"type":"number","description":"Region ID where the port is located.\n"},"regionName":{"type":"string","description":"Region name where the port is located.\n"}},"requiredInputs":["portId"],"stateInputs":{"description":"Input properties used for looking up and filtering PortSecurity resources.\n","properties":{"enablePortSecurity":{"type":"boolean","description":"Enable port security for the port.\n"},"portId":{"type":"string","description":"ID of the port where allowed address pairs will be managed.\n"},"portSecurityId":{"type":"string","description":"The ID of this resource.\n"},"projectId":{"type":"number","description":"Project ID in which the port exists.\n"},"projectName":{"type":"string","description":"Project name in which the port exists.\n"},"regionId":{"type":"number","description":"Region ID where the port is located.\n"},"regionName":{"type":"string","description":"Region name where the port is located.\n"}},"type":"object"}},"gcore:index/postgresCluster:PostgresCluster":{"description":"Represents a PostgreSQL cluster resource in Gcore Cloud.\n\n## Example Usage\n\n### Basic PostgreSQL Cluster Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// Basic PostgreSQL cluster example\nconst basicCluster = new gcore.PostgresCluster(\"basic_cluster\", {\n    name: \"basic-pg-cluster\",\n    projectId: project.id,\n    regionId: region.id,\n    flavor: {\n        cpu: 1,\n        memory: 2,\n    },\n    databases: [{\n        name: \"mydb\",\n        owner: \"pg\",\n    }],\n    network: {\n        acls: [\"0.0.0.0/0\"],\n        networkType: \"public\",\n    },\n    pgConfig: {\n        version: \"15\",\n    },\n    storage: {\n        size: 20,\n        type: \"ssd-hiiops\",\n    },\n    users: [{\n        name: \"pg\",\n        roleAttributes: [\n            \"LOGIN\",\n            \"CREATEDB\",\n            \"CREATEROLE\",\n        ],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# Basic PostgreSQL cluster example\nbasic_cluster = gcore.PostgresCluster(\"basic_cluster\",\n    name=\"basic-pg-cluster\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    flavor={\n        \"cpu\": 1,\n        \"memory\": 2,\n    },\n    databases=[{\n        \"name\": \"mydb\",\n        \"owner\": \"pg\",\n    }],\n    network={\n        \"acls\": [\"0.0.0.0/0\"],\n        \"network_type\": \"public\",\n    },\n    pg_config={\n        \"version\": \"15\",\n    },\n    storage={\n        \"size\": 20,\n        \"type\": \"ssd-hiiops\",\n    },\n    users=[{\n        \"name\": \"pg\",\n        \"role_attributes\": [\n            \"LOGIN\",\n            \"CREATEDB\",\n            \"CREATEROLE\",\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    // Basic PostgreSQL cluster example\n    var basicCluster = new Gcore.PostgresCluster(\"basic_cluster\", new()\n    {\n        Name = \"basic-pg-cluster\",\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Flavor = new Gcore.Inputs.PostgresClusterFlavorArgs\n        {\n            Cpu = 1,\n            Memory = 2,\n        },\n        Databases = new[]\n        {\n            new Gcore.Inputs.PostgresClusterDatabaseArgs\n            {\n                Name = \"mydb\",\n                Owner = \"pg\",\n            },\n        },\n        Network = new Gcore.Inputs.PostgresClusterNetworkArgs\n        {\n            Acls = new[]\n            {\n                \"0.0.0.0/0\",\n            },\n            NetworkType = \"public\",\n        },\n        PgConfig = new Gcore.Inputs.PostgresClusterPgConfigArgs\n        {\n            Version = \"15\",\n        },\n        Storage = new Gcore.Inputs.PostgresClusterStorageArgs\n        {\n            Size = 20,\n            Type = \"ssd-hiiops\",\n        },\n        Users = new[]\n        {\n            new Gcore.Inputs.PostgresClusterUserArgs\n            {\n                Name = \"pg\",\n                RoleAttributes = new[]\n                {\n                    \"LOGIN\",\n                    \"CREATEDB\",\n                    \"CREATEROLE\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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 PostgreSQL cluster example\n\t\t_, err := gcore.NewPostgresCluster(ctx, \"basic_cluster\", \u0026gcore.PostgresClusterArgs{\n\t\t\tName:      pulumi.String(\"basic-pg-cluster\"),\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\tFlavor: \u0026gcore.PostgresClusterFlavorArgs{\n\t\t\t\tCpu:    pulumi.Float64(1),\n\t\t\t\tMemory: pulumi.Float64(2),\n\t\t\t},\n\t\t\tDatabases: gcore.PostgresClusterDatabaseArray{\n\t\t\t\t\u0026gcore.PostgresClusterDatabaseArgs{\n\t\t\t\t\tName:  pulumi.String(\"mydb\"),\n\t\t\t\t\tOwner: pulumi.String(\"pg\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetwork: \u0026gcore.PostgresClusterNetworkArgs{\n\t\t\t\tAcls: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t\tNetworkType: pulumi.String(\"public\"),\n\t\t\t},\n\t\t\tPgConfig: \u0026gcore.PostgresClusterPgConfigArgs{\n\t\t\t\tVersion: pulumi.String(\"15\"),\n\t\t\t},\n\t\t\tStorage: \u0026gcore.PostgresClusterStorageArgs{\n\t\t\t\tSize: pulumi.Float64(20),\n\t\t\t\tType: pulumi.String(\"ssd-hiiops\"),\n\t\t\t},\n\t\t\tUsers: gcore.PostgresClusterUserArray{\n\t\t\t\t\u0026gcore.PostgresClusterUserArgs{\n\t\t\t\t\tName: pulumi.String(\"pg\"),\n\t\t\t\t\tRoleAttributes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"LOGIN\"),\n\t\t\t\t\t\tpulumi.String(\"CREATEDB\"),\n\t\t\t\t\t\tpulumi.String(\"CREATEROLE\"),\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.PostgresCluster;\nimport com.pulumi.gcore.PostgresClusterArgs;\nimport com.pulumi.gcore.inputs.PostgresClusterFlavorArgs;\nimport com.pulumi.gcore.inputs.PostgresClusterDatabaseArgs;\nimport com.pulumi.gcore.inputs.PostgresClusterNetworkArgs;\nimport com.pulumi.gcore.inputs.PostgresClusterPgConfigArgs;\nimport com.pulumi.gcore.inputs.PostgresClusterStorageArgs;\nimport com.pulumi.gcore.inputs.PostgresClusterUserArgs;\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 PostgreSQL cluster example\n        var basicCluster = new PostgresCluster(\"basicCluster\", PostgresClusterArgs.builder()\n            .name(\"basic-pg-cluster\")\n            .projectId(project.id())\n            .regionId(region.id())\n            .flavor(PostgresClusterFlavorArgs.builder()\n                .cpu(1.0)\n                .memory(2.0)\n                .build())\n            .databases(PostgresClusterDatabaseArgs.builder()\n                .name(\"mydb\")\n                .owner(\"pg\")\n                .build())\n            .network(PostgresClusterNetworkArgs.builder()\n                .acls(\"0.0.0.0/0\")\n                .networkType(\"public\")\n                .build())\n            .pgConfig(PostgresClusterPgConfigArgs.builder()\n                .version(\"15\")\n                .build())\n            .storage(PostgresClusterStorageArgs.builder()\n                .size(20.0)\n                .type(\"ssd-hiiops\")\n                .build())\n            .users(PostgresClusterUserArgs.builder()\n                .name(\"pg\")\n                .roleAttributes(                \n                    \"LOGIN\",\n                    \"CREATEDB\",\n                    \"CREATEROLE\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Basic PostgreSQL cluster example\n  basicCluster:\n    type: gcore:PostgresCluster\n    name: basic_cluster\n    properties:\n      name: basic-pg-cluster\n      projectId: ${project.id}\n      regionId: ${region.id}\n      flavor:\n        cpu: 1\n        memory: 2\n      databases:\n        - name: mydb\n          owner: pg\n      network:\n        acls:\n          - 0.0.0.0/0\n        networkType: public\n      pgConfig:\n        version: '15'\n      storage:\n        size: 20\n        type: ssd-hiiops\n      users:\n        - name: pg\n          roleAttributes:\n            - LOGIN\n            - CREATEDB\n            - CREATEROLE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### PostgreSQL Cluster with High Availability Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\n// PostgreSQL cluster with high availability\nconst haCluster = new gcore.PostgresCluster(\"ha_cluster\", {\n    name: \"ha-pg-cluster\",\n    projectId: project.id,\n    regionId: region.id,\n    flavor: {\n        cpu: 4,\n        memory: 8,\n    },\n    databases: [\n        {\n            name: \"proddb\",\n            owner: \"produser\",\n        },\n        {\n            name: \"stgdb\",\n            owner: \"stguser\",\n        },\n    ],\n    network: {\n        acls: [\n            \"192.168.1.0/24\",\n            \"10.0.0.0/8\",\n        ],\n        networkType: \"public\",\n    },\n    pgConfig: {\n        version: \"15\",\n        pgConf: `max_connections=300\nshared_buffers=2GB\neffective_cache_size=4GB\nmaintenance_work_mem=256MB\nwork_mem=8MB\ncheckpoint_completion_target=0.9\nwal_buffers=32MB\nmin_wal_size=4GB\nmax_wal_size=16GB\nrandom_page_cost=1.1\neffective_io_concurrency=200\nlog_statement=all\nlog_min_duration_statement=1000\n`,\n        poolerMode: \"transaction\",\n        poolerType: \"pgbouncer\",\n    },\n    storage: {\n        size: 100,\n        type: \"ssd-hiiops\",\n    },\n    users: [\n        {\n            name: \"produser\",\n            roleAttributes: [\n                \"LOGIN\",\n                \"CREATEDB\",\n            ],\n        },\n        {\n            name: \"stguser\",\n            roleAttributes: [\n                \"LOGIN\",\n                \"CREATEDB\",\n            ],\n        },\n        {\n            name: \"pg\",\n            roleAttributes: [\n                \"LOGIN\",\n                \"CREATEDB\",\n                \"CREATEROLE\",\n            ],\n        },\n    ],\n    haReplicationMode: \"sync\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\n# PostgreSQL cluster with high availability\nha_cluster = gcore.PostgresCluster(\"ha_cluster\",\n    name=\"ha-pg-cluster\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    flavor={\n        \"cpu\": 4,\n        \"memory\": 8,\n    },\n    databases=[\n        {\n            \"name\": \"proddb\",\n            \"owner\": \"produser\",\n        },\n        {\n            \"name\": \"stgdb\",\n            \"owner\": \"stguser\",\n        },\n    ],\n    network={\n        \"acls\": [\n            \"192.168.1.0/24\",\n            \"10.0.0.0/8\",\n        ],\n        \"network_type\": \"public\",\n    },\n    pg_config={\n        \"version\": \"15\",\n        \"pg_conf\": \"\"\"max_connections=300\nshared_buffers=2GB\neffective_cache_size=4GB\nmaintenance_work_mem=256MB\nwork_mem=8MB\ncheckpoint_completion_target=0.9\nwal_buffers=32MB\nmin_wal_size=4GB\nmax_wal_size=16GB\nrandom_page_cost=1.1\neffective_io_concurrency=200\nlog_statement=all\nlog_min_duration_statement=1000\n\"\"\",\n        \"pooler_mode\": \"transaction\",\n        \"pooler_type\": \"pgbouncer\",\n    },\n    storage={\n        \"size\": 100,\n        \"type\": \"ssd-hiiops\",\n    },\n    users=[\n        {\n            \"name\": \"produser\",\n            \"role_attributes\": [\n                \"LOGIN\",\n                \"CREATEDB\",\n            ],\n        },\n        {\n            \"name\": \"stguser\",\n            \"role_attributes\": [\n                \"LOGIN\",\n                \"CREATEDB\",\n            ],\n        },\n        {\n            \"name\": \"pg\",\n            \"role_attributes\": [\n                \"LOGIN\",\n                \"CREATEDB\",\n                \"CREATEROLE\",\n            ],\n        },\n    ],\n    ha_replication_mode=\"sync\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcore = Pulumi.Gcore;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // PostgreSQL cluster with high availability\n    var haCluster = new Gcore.PostgresCluster(\"ha_cluster\", new()\n    {\n        Name = \"ha-pg-cluster\",\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Flavor = new Gcore.Inputs.PostgresClusterFlavorArgs\n        {\n            Cpu = 4,\n            Memory = 8,\n        },\n        Databases = new[]\n        {\n            new Gcore.Inputs.PostgresClusterDatabaseArgs\n            {\n                Name = \"proddb\",\n                Owner = \"produser\",\n            },\n            new Gcore.Inputs.PostgresClusterDatabaseArgs\n            {\n                Name = \"stgdb\",\n                Owner = \"stguser\",\n            },\n        },\n        Network = new Gcore.Inputs.PostgresClusterNetworkArgs\n        {\n            Acls = new[]\n            {\n                \"192.168.1.0/24\",\n                \"10.0.0.0/8\",\n            },\n            NetworkType = \"public\",\n        },\n        PgConfig = new Gcore.Inputs.PostgresClusterPgConfigArgs\n        {\n            Version = \"15\",\n            PgConf = @\"max_connections=300\nshared_buffers=2GB\neffective_cache_size=4GB\nmaintenance_work_mem=256MB\nwork_mem=8MB\ncheckpoint_completion_target=0.9\nwal_buffers=32MB\nmin_wal_size=4GB\nmax_wal_size=16GB\nrandom_page_cost=1.1\neffective_io_concurrency=200\nlog_statement=all\nlog_min_duration_statement=1000\n\",\n            PoolerMode = \"transaction\",\n            PoolerType = \"pgbouncer\",\n        },\n        Storage = new Gcore.Inputs.PostgresClusterStorageArgs\n        {\n            Size = 100,\n            Type = \"ssd-hiiops\",\n        },\n        Users = new[]\n        {\n            new Gcore.Inputs.PostgresClusterUserArgs\n            {\n                Name = \"produser\",\n                RoleAttributes = new[]\n                {\n                    \"LOGIN\",\n                    \"CREATEDB\",\n                },\n            },\n            new Gcore.Inputs.PostgresClusterUserArgs\n            {\n                Name = \"stguser\",\n                RoleAttributes = new[]\n                {\n                    \"LOGIN\",\n                    \"CREATEDB\",\n                },\n            },\n            new Gcore.Inputs.PostgresClusterUserArgs\n            {\n                Name = \"pg\",\n                RoleAttributes = new[]\n                {\n                    \"LOGIN\",\n                    \"CREATEDB\",\n                    \"CREATEROLE\",\n                },\n            },\n        },\n        HaReplicationMode = \"sync\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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// PostgreSQL cluster with high availability\n\t\t_, err := gcore.NewPostgresCluster(ctx, \"ha_cluster\", \u0026gcore.PostgresClusterArgs{\n\t\t\tName:      pulumi.String(\"ha-pg-cluster\"),\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\tFlavor: \u0026gcore.PostgresClusterFlavorArgs{\n\t\t\t\tCpu:    pulumi.Float64(4),\n\t\t\t\tMemory: pulumi.Float64(8),\n\t\t\t},\n\t\t\tDatabases: gcore.PostgresClusterDatabaseArray{\n\t\t\t\t\u0026gcore.PostgresClusterDatabaseArgs{\n\t\t\t\t\tName:  pulumi.String(\"proddb\"),\n\t\t\t\t\tOwner: pulumi.String(\"produser\"),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.PostgresClusterDatabaseArgs{\n\t\t\t\t\tName:  pulumi.String(\"stgdb\"),\n\t\t\t\t\tOwner: pulumi.String(\"stguser\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetwork: \u0026gcore.PostgresClusterNetworkArgs{\n\t\t\t\tAcls: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"192.168.1.0/24\"),\n\t\t\t\t\tpulumi.String(\"10.0.0.0/8\"),\n\t\t\t\t},\n\t\t\t\tNetworkType: pulumi.String(\"public\"),\n\t\t\t},\n\t\t\tPgConfig: \u0026gcore.PostgresClusterPgConfigArgs{\n\t\t\t\tVersion: pulumi.String(\"15\"),\n\t\t\t\tPgConf: pulumi.String(`max_connections=300\nshared_buffers=2GB\neffective_cache_size=4GB\nmaintenance_work_mem=256MB\nwork_mem=8MB\ncheckpoint_completion_target=0.9\nwal_buffers=32MB\nmin_wal_size=4GB\nmax_wal_size=16GB\nrandom_page_cost=1.1\neffective_io_concurrency=200\nlog_statement=all\nlog_min_duration_statement=1000\n`),\n\t\t\t\tPoolerMode: pulumi.String(\"transaction\"),\n\t\t\t\tPoolerType: pulumi.String(\"pgbouncer\"),\n\t\t\t},\n\t\t\tStorage: \u0026gcore.PostgresClusterStorageArgs{\n\t\t\t\tSize: pulumi.Float64(100),\n\t\t\t\tType: pulumi.String(\"ssd-hiiops\"),\n\t\t\t},\n\t\t\tUsers: gcore.PostgresClusterUserArray{\n\t\t\t\t\u0026gcore.PostgresClusterUserArgs{\n\t\t\t\t\tName: pulumi.String(\"produser\"),\n\t\t\t\t\tRoleAttributes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"LOGIN\"),\n\t\t\t\t\t\tpulumi.String(\"CREATEDB\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026gcore.PostgresClusterUserArgs{\n\t\t\t\t\tName: pulumi.String(\"stguser\"),\n\t\t\t\t\tRoleAttributes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"LOGIN\"),\n\t\t\t\t\t\tpulumi.String(\"CREATEDB\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026gcore.PostgresClusterUserArgs{\n\t\t\t\t\tName: pulumi.String(\"pg\"),\n\t\t\t\t\tRoleAttributes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"LOGIN\"),\n\t\t\t\t\t\tpulumi.String(\"CREATEDB\"),\n\t\t\t\t\t\tpulumi.String(\"CREATEROLE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tHaReplicationMode: pulumi.String(\"sync\"),\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.PostgresCluster;\nimport com.pulumi.gcore.PostgresClusterArgs;\nimport com.pulumi.gcore.inputs.PostgresClusterFlavorArgs;\nimport com.pulumi.gcore.inputs.PostgresClusterDatabaseArgs;\nimport com.pulumi.gcore.inputs.PostgresClusterNetworkArgs;\nimport com.pulumi.gcore.inputs.PostgresClusterPgConfigArgs;\nimport com.pulumi.gcore.inputs.PostgresClusterStorageArgs;\nimport com.pulumi.gcore.inputs.PostgresClusterUserArgs;\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        // PostgreSQL cluster with high availability\n        var haCluster = new PostgresCluster(\"haCluster\", PostgresClusterArgs.builder()\n            .name(\"ha-pg-cluster\")\n            .projectId(project.id())\n            .regionId(region.id())\n            .flavor(PostgresClusterFlavorArgs.builder()\n                .cpu(4.0)\n                .memory(8.0)\n                .build())\n            .databases(            \n                PostgresClusterDatabaseArgs.builder()\n                    .name(\"proddb\")\n                    .owner(\"produser\")\n                    .build(),\n                PostgresClusterDatabaseArgs.builder()\n                    .name(\"stgdb\")\n                    .owner(\"stguser\")\n                    .build())\n            .network(PostgresClusterNetworkArgs.builder()\n                .acls(                \n                    \"192.168.1.0/24\",\n                    \"10.0.0.0/8\")\n                .networkType(\"public\")\n                .build())\n            .pgConfig(PostgresClusterPgConfigArgs.builder()\n                .version(\"15\")\n                .pgConf(\"\"\"\nmax_connections=300\nshared_buffers=2GB\neffective_cache_size=4GB\nmaintenance_work_mem=256MB\nwork_mem=8MB\ncheckpoint_completion_target=0.9\nwal_buffers=32MB\nmin_wal_size=4GB\nmax_wal_size=16GB\nrandom_page_cost=1.1\neffective_io_concurrency=200\nlog_statement=all\nlog_min_duration_statement=1000\n                \"\"\")\n                .poolerMode(\"transaction\")\n                .poolerType(\"pgbouncer\")\n                .build())\n            .storage(PostgresClusterStorageArgs.builder()\n                .size(100.0)\n                .type(\"ssd-hiiops\")\n                .build())\n            .users(            \n                PostgresClusterUserArgs.builder()\n                    .name(\"produser\")\n                    .roleAttributes(                    \n                        \"LOGIN\",\n                        \"CREATEDB\")\n                    .build(),\n                PostgresClusterUserArgs.builder()\n                    .name(\"stguser\")\n                    .roleAttributes(                    \n                        \"LOGIN\",\n                        \"CREATEDB\")\n                    .build(),\n                PostgresClusterUserArgs.builder()\n                    .name(\"pg\")\n                    .roleAttributes(                    \n                        \"LOGIN\",\n                        \"CREATEDB\",\n                        \"CREATEROLE\")\n                    .build())\n            .haReplicationMode(\"sync\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # PostgreSQL cluster with high availability\n  haCluster:\n    type: gcore:PostgresCluster\n    name: ha_cluster\n    properties:\n      name: ha-pg-cluster\n      projectId: ${project.id}\n      regionId: ${region.id}\n      flavor:\n        cpu: 4\n        memory: 8\n      databases:\n        - name: proddb\n          owner: produser\n        - name: stgdb\n          owner: stguser\n      network:\n        acls:\n          - 192.168.1.0/24\n          - 10.0.0.0/8\n        networkType: public\n      pgConfig:\n        version: '15'\n        pgConf: |\n          max_connections=300\n          shared_buffers=2GB\n          effective_cache_size=4GB\n          maintenance_work_mem=256MB\n          work_mem=8MB\n          checkpoint_completion_target=0.9\n          wal_buffers=32MB\n          min_wal_size=4GB\n          max_wal_size=16GB\n          random_page_cost=1.1\n          effective_io_concurrency=200\n          log_statement=all\n          log_min_duration_statement=1000\n        poolerMode: transaction\n        poolerType: pgbouncer\n      storage:\n        size: 100\n        type: ssd-hiiops\n      users:\n        - name: produser\n          roleAttributes:\n            - LOGIN\n            - CREATEDB\n        - name: stguser\n          roleAttributes:\n            - LOGIN\n            - CREATEDB\n        - name: pg\n          roleAttributes:\n            - LOGIN\n            - CREATEDB\n            - CREATEROLE\n      haReplicationMode: sync\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003ccluster_name\u003e format\n\n```sh\n$ pulumi import gcore:index/postgresCluster:PostgresCluster postgres_cluster 1:76:my-postgres-cluster\n```\n\n","properties":{"createdAt":{"type":"string","description":"Cluster creation date.\n"},"databases":{"type":"array","items":{"$ref":"#/types/gcore:index%2FPostgresClusterDatabase:PostgresClusterDatabase"},"description":"List of databases to create in the cluster.\n"},"flavor":{"$ref":"#/types/gcore:index%2FPostgresClusterFlavor:PostgresClusterFlavor","description":"Flavor of the cluster instance.\n"},"haReplicationMode":{"type":"string","description":"Replication mode. Possible values are \u003cspan pulumi-lang-nodejs=\"`async`\" pulumi-lang-dotnet=\"`Async`\" pulumi-lang-go=\"`async`\" pulumi-lang-python=\"`async`\" pulumi-lang-yaml=\"`async`\" pulumi-lang-java=\"`async`\"\u003e`async`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`sync`\" pulumi-lang-dotnet=\"`Sync`\" pulumi-lang-go=\"`sync`\" pulumi-lang-python=\"`sync`\" pulumi-lang-yaml=\"`sync`\" pulumi-lang-java=\"`sync`\"\u003e`sync`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Cluster name.\n"},"network":{"$ref":"#/types/gcore:index%2FPostgresClusterNetwork:PostgresClusterNetwork","description":"Network configuration.\n"},"pgConfig":{"$ref":"#/types/gcore:index%2FPostgresClusterPgConfig:PostgresClusterPgConfig","description":"PostgreSQL cluster configuration.\n"},"postgresClusterId":{"type":"string","description":"The ID of this resource.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"status":{"type":"string","description":"Current status of the cluster.\n"},"storage":{"$ref":"#/types/gcore:index%2FPostgresClusterStorage:PostgresClusterStorage","description":"Storage configuration.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FPostgresClusterTimeouts:PostgresClusterTimeouts"},"users":{"type":"array","items":{"$ref":"#/types/gcore:index%2FPostgresClusterUser:PostgresClusterUser"},"description":"List of users to create in the cluster.\n"}},"type":"object","required":["createdAt","databases","flavor","name","network","pgConfig","postgresClusterId","status","storage","users"],"inputProperties":{"databases":{"type":"array","items":{"$ref":"#/types/gcore:index%2FPostgresClusterDatabase:PostgresClusterDatabase"},"description":"List of databases to create in the cluster.\n"},"flavor":{"$ref":"#/types/gcore:index%2FPostgresClusterFlavor:PostgresClusterFlavor","description":"Flavor of the cluster instance.\n"},"haReplicationMode":{"type":"string","description":"Replication mode. Possible values are \u003cspan pulumi-lang-nodejs=\"`async`\" pulumi-lang-dotnet=\"`Async`\" pulumi-lang-go=\"`async`\" pulumi-lang-python=\"`async`\" pulumi-lang-yaml=\"`async`\" pulumi-lang-java=\"`async`\"\u003e`async`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`sync`\" pulumi-lang-dotnet=\"`Sync`\" pulumi-lang-go=\"`sync`\" pulumi-lang-python=\"`sync`\" pulumi-lang-yaml=\"`sync`\" pulumi-lang-java=\"`sync`\"\u003e`sync`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Cluster name.\n"},"network":{"$ref":"#/types/gcore:index%2FPostgresClusterNetwork:PostgresClusterNetwork","description":"Network configuration.\n"},"pgConfig":{"$ref":"#/types/gcore:index%2FPostgresClusterPgConfig:PostgresClusterPgConfig","description":"PostgreSQL cluster configuration.\n"},"postgresClusterId":{"type":"string","description":"The ID of this resource.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"storage":{"$ref":"#/types/gcore:index%2FPostgresClusterStorage:PostgresClusterStorage","description":"Storage configuration.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FPostgresClusterTimeouts:PostgresClusterTimeouts"},"users":{"type":"array","items":{"$ref":"#/types/gcore:index%2FPostgresClusterUser:PostgresClusterUser"},"description":"List of users to create in the cluster.\n"}},"requiredInputs":["databases","flavor","network","pgConfig","storage","users"],"stateInputs":{"description":"Input properties used for looking up and filtering PostgresCluster resources.\n","properties":{"createdAt":{"type":"string","description":"Cluster creation date.\n"},"databases":{"type":"array","items":{"$ref":"#/types/gcore:index%2FPostgresClusterDatabase:PostgresClusterDatabase"},"description":"List of databases to create in the cluster.\n"},"flavor":{"$ref":"#/types/gcore:index%2FPostgresClusterFlavor:PostgresClusterFlavor","description":"Flavor of the cluster instance.\n"},"haReplicationMode":{"type":"string","description":"Replication mode. Possible values are \u003cspan pulumi-lang-nodejs=\"`async`\" pulumi-lang-dotnet=\"`Async`\" pulumi-lang-go=\"`async`\" pulumi-lang-python=\"`async`\" pulumi-lang-yaml=\"`async`\" pulumi-lang-java=\"`async`\"\u003e`async`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`sync`\" pulumi-lang-dotnet=\"`Sync`\" pulumi-lang-go=\"`sync`\" pulumi-lang-python=\"`sync`\" pulumi-lang-yaml=\"`sync`\" pulumi-lang-java=\"`sync`\"\u003e`sync`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Cluster name.\n"},"network":{"$ref":"#/types/gcore:index%2FPostgresClusterNetwork:PostgresClusterNetwork","description":"Network configuration.\n"},"pgConfig":{"$ref":"#/types/gcore:index%2FPostgresClusterPgConfig:PostgresClusterPgConfig","description":"PostgreSQL cluster configuration.\n"},"postgresClusterId":{"type":"string","description":"The ID of this resource.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"status":{"type":"string","description":"Current status of the cluster.\n"},"storage":{"$ref":"#/types/gcore:index%2FPostgresClusterStorage:PostgresClusterStorage","description":"Storage configuration.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FPostgresClusterTimeouts:PostgresClusterTimeouts"},"users":{"type":"array","items":{"$ref":"#/types/gcore:index%2FPostgresClusterUser:PostgresClusterUser"},"description":"List of users to create in the cluster.\n"}},"type":"object"}},"gcore:index/registryCredential:RegistryCredential":{"description":"Represent inference registry credential\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 project = gcore.getProject({\n    name: \"Default\",\n});\nconst creds = new gcore.RegistryCredential(\"creds\", {\n    name: \"docker-io\",\n    username: \"username\",\n    password: \"passwd\",\n    registryUrl: \"docker.io\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\ncreds = gcore.RegistryCredential(\"creds\",\n    name=\"docker-io\",\n    username=\"username\",\n    password=\"passwd\",\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    var project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var creds = new Gcore.RegistryCredential(\"creds\", new()\n    {\n        Name = \"docker-io\",\n        Username = \"username\",\n        Password = \"passwd\",\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/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.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewRegistryCredential(ctx, \"creds\", \u0026gcore.RegistryCredentialArgs{\n\t\t\tName:        pulumi.String(\"docker-io\"),\n\t\t\tUsername:    pulumi.String(\"username\"),\n\t\t\tPassword:    pulumi.String(\"passwd\"),\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.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetProjectArgs;\nimport com.pulumi.gcore.RegistryCredential;\nimport com.pulumi.gcore.RegistryCredentialArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        var creds = new RegistryCredential(\"creds\", RegistryCredentialArgs.builder()\n            .name(\"docker-io\")\n            .username(\"username\")\n            .password(\"passwd\")\n            .registryUrl(\"docker.io\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  creds:\n    type: gcore:RegistryCredential\n    properties:\n      name: docker-io\n      username: username\n      password: passwd\n      registryUrl: docker.io\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cproject_id\u003e:\u003ccredentials_name\u003e format\n\n```sh\n$ pulumi import gcore:index/registryCredential:RegistryCredential dockerio 1:docekrio\n```\n\n","properties":{"name":{"type":"string"},"password":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"registryCredentialId":{"type":"string","description":"The ID of this resource.\n"},"registryUrl":{"type":"string"},"username":{"type":"string"}},"type":"object","required":["name","password","registryCredentialId","registryUrl","username"],"inputProperties":{"name":{"type":"string"},"password":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"registryCredentialId":{"type":"string","description":"The ID of this resource.\n"},"registryUrl":{"type":"string"},"username":{"type":"string"}},"requiredInputs":["password","registryUrl","username"],"stateInputs":{"description":"Input properties used for looking up and filtering RegistryCredential resources.\n","properties":{"name":{"type":"string"},"password":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"registryCredentialId":{"type":"string","description":"The ID of this resource.\n"},"registryUrl":{"type":"string"},"username":{"type":"string"}},"type":"object"}},"gcore:index/reservedfixedip:Reservedfixedip":{"description":"Represent reserved fixed ips\n\n## 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\nconst project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg Preprod\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg Preprod\")\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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg Preprod\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg Preprod\",\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg Preprod\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg Preprod\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Reserving external address\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst fixedIpExternal = new gcore.Reservedfixedip(\"fixed_ip_external\", {\n    projectId: project.id,\n    regionId: region.id,\n    type: \"external\",\n    isVip: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nfixed_ip_external = gcore.Reservedfixedip(\"fixed_ip_external\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\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    var fixedIpExternal = new Gcore.Reservedfixedip(\"fixed_ip_external\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\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/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.NewReservedfixedip(ctx, \"fixed_ip_external\", \u0026gcore.ReservedfixedipArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.Reservedfixedip;\nimport com.pulumi.gcore.ReservedfixedipArgs;\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 fixedIpExternal = new Reservedfixedip(\"fixedIpExternal\", ReservedfixedipArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .type(\"external\")\n            .isVip(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  fixedIpExternal:\n    type: gcore:Reservedfixedip\n    name: fixed_ip_external\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      type: external\n      isVip: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Prerequisite for Private Reserved Fixed IPs\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.Network(\"private_network\", {\n    projectId: project.id,\n    regionId: region.id,\n    name: \"my-private-network\",\n});\nconst privateSubnet: gcore.Subnet[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    privateSubnet.push(new gcore.Subnet(`private_subnet-${range.value}`, {\n        projectId: project.id,\n        regionId: region.id,\n        networkId: privateNetwork.networkId,\n        name: pulumi.interpolate`${privateNetwork.name}-subnet-${range.value}`,\n        cidr: `172.16.${range.value}.0/24`,\n    }));\n}\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nprivate_network = gcore.Network(\"private_network\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"my-private-network\")\nprivate_subnet = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    private_subnet.append(gcore.Subnet(f\"private_subnet-{range['value']}\",\n        project_id=project[\"id\"],\n        region_id=region[\"id\"],\n        network_id=private_network.network_id,\n        name=private_network.name.apply(lambda name: f\"{name}-subnet-{range['value']}\"),\n        cidr=f\"172.16.{range['value']}.0/24\"))\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.Network(\"private_network\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"my-private-network\",\n    });\n\n    var privateSubnet = new List\u003cGcore.Subnet\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        privateSubnet.Add(new Gcore.Subnet($\"private_subnet-{range.Value}\", new()\n        {\n            ProjectId = project.Id,\n            RegionId = region.Id,\n            NetworkId = privateNetwork.NetworkId,\n            Name = privateNetwork.Name.Apply(name =\u003e $\"{name}-subnet-{range.Value}\"),\n            Cidr = $\"172.16.{range.Value}.0/24\",\n        }));\n    }\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewNetwork(ctx, \"private_network\", \u0026gcore.NetworkArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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\tvar privateSubnet []*gcore.Subnet\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := gcore.NewSubnet(ctx, fmt.Sprintf(\"private_subnet-%v\", key0), \u0026gcore.SubnetArgs{\n\t\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\t\tNetworkId: privateNetwork.NetworkId,\n\t\t\t\tName: privateNetwork.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"%v-subnet-%v\", name, val0), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tCidr: pulumi.Sprintf(\"172.16.%v.0/24\", val0),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tprivateSubnet = append(privateSubnet, __res)\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.Network;\nimport com.pulumi.gcore.NetworkArgs;\nimport com.pulumi.gcore.Subnet;\nimport com.pulumi.gcore.SubnetArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\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 Network(\"privateNetwork\", NetworkArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"my-private-network\")\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Subnet(\"privateSubnet-\" + i, SubnetArgs.builder()\n                .projectId(project.id())\n                .regionId(region.id())\n                .networkId(privateNetwork.networkId())\n                .name(privateNetwork.name().applyValue(_name -\u003e String.format(\"%s-subnet-%s\", _name,range.value())))\n                .cidr(String.format(\"172.16.%s.0/24\", range.value()))\n                .build());\n\n        \n}\n    }\n}\n```\n```yaml\nresources:\n  privateNetwork:\n    type: gcore:Network\n    name: private_network\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: my-private-network\n  privateSubnet:\n    type: gcore:Subnet\n    name: private_subnet\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      networkId: ${privateNetwork.networkId}\n      name: ${privateNetwork.name}-subnet-${range.value}\n      cidr: 172.16.${range.value}.0/24\n    options: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Private Reserved Fixed IP in subnet\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst fixedIpSubnet = new gcore.Reservedfixedip(\"fixed_ip_subnet\", {\n    projectId: project.id,\n    regionId: region.id,\n    type: \"subnet\",\n    networkId: privateNetwork.id,\n    subnetId: privateSubnet[0].id,\n    isVip: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nfixed_ip_subnet = gcore.Reservedfixedip(\"fixed_ip_subnet\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    type=\"subnet\",\n    network_id=private_network[\"id\"],\n    subnet_id=private_subnet[0][\"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    var fixedIpSubnet = new Gcore.Reservedfixedip(\"fixed_ip_subnet\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Type = \"subnet\",\n        NetworkId = privateNetwork.Id,\n        SubnetId = privateSubnet[0].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/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.NewReservedfixedip(ctx, \"fixed_ip_subnet\", \u0026gcore.ReservedfixedipArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\tType:      pulumi.String(\"subnet\"),\n\t\t\tNetworkId: pulumi.Any(privateNetwork.Id),\n\t\t\tSubnetId:  pulumi.Any(privateSubnet[0].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.Reservedfixedip;\nimport com.pulumi.gcore.ReservedfixedipArgs;\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 fixedIpSubnet = new Reservedfixedip(\"fixedIpSubnet\", ReservedfixedipArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .type(\"subnet\")\n            .networkId(privateNetwork.id())\n            .subnetId(privateSubnet[0].id())\n            .isVip(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  fixedIpSubnet:\n    type: gcore:Reservedfixedip\n    name: fixed_ip_subnet\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      type: subnet\n      networkId: ${privateNetwork.id}\n      subnetId: ${privateSubnet[0].id}\n      isVip: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Private Reserved Fixed IP in any subnet\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst fixedIpInAnySubnet = new gcore.Reservedfixedip(\"fixed_ip_in_any_subnet\", {\n    projectId: project.id,\n    regionId: region.id,\n    type: \"any_subnet\",\n    networkId: privateNetwork.id,\n    isVip: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nfixed_ip_in_any_subnet = gcore.Reservedfixedip(\"fixed_ip_in_any_subnet\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\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    var fixedIpInAnySubnet = new Gcore.Reservedfixedip(\"fixed_ip_in_any_subnet\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\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/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.NewReservedfixedip(ctx, \"fixed_ip_in_any_subnet\", \u0026gcore.ReservedfixedipArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.Reservedfixedip;\nimport com.pulumi.gcore.ReservedfixedipArgs;\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 fixedIpInAnySubnet = new Reservedfixedip(\"fixedIpInAnySubnet\", ReservedfixedipArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .type(\"any_subnet\")\n            .networkId(privateNetwork.id())\n            .isVip(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  fixedIpInAnySubnet:\n    type: gcore:Reservedfixedip\n    name: fixed_ip_in_any_subnet\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      type: any_subnet\n      networkId: ${privateNetwork.id}\n      isVip: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Private Reserved Fixed IP using port\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst lb = new gcore.Loadbalancerv2(\"lb\", {\n    projectId: project.id,\n    regionId: region.id,\n    name: \"My first public load balancer\",\n    flavor: \"lb1-1-2\",\n});\nconst preservedPortId = lb.vipPortId;\nconst fixedIpByPort = new gcore.Reservedfixedip(\"fixed_ip_by_port\", {\n    projectId: project.id,\n    regionId: region.id,\n    type: \"port\",\n    portId: preservedPortId,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nlb = gcore.Loadbalancerv2(\"lb\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"My first public load balancer\",\n    flavor=\"lb1-1-2\")\npreserved_port_id = lb.vip_port_id\nfixed_ip_by_port = gcore.Reservedfixedip(\"fixed_ip_by_port\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    type=\"port\",\n    port_id=preserved_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 lb = new Gcore.Loadbalancerv2(\"lb\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"My first public load balancer\",\n        Flavor = \"lb1-1-2\",\n    });\n\n    var preservedPortId = lb.VipPortId;\n\n    var fixedIpByPort = new Gcore.Reservedfixedip(\"fixed_ip_by_port\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Type = \"port\",\n        PortId = preservedPortId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tlb, err := gcore.NewLoadbalancerv2(ctx, \"lb\", \u0026gcore.Loadbalancerv2Args{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\tName:      pulumi.String(\"My first public 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\tpreservedPortId := lb.VipPortId\n\t\t_, err = gcore.NewReservedfixedip(ctx, \"fixed_ip_by_port\", \u0026gcore.ReservedfixedipArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\tType:      pulumi.String(\"port\"),\n\t\t\tPortId:    pulumi.String(preservedPortId),\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.Loadbalancerv2;\nimport com.pulumi.gcore.Loadbalancerv2Args;\nimport com.pulumi.gcore.Reservedfixedip;\nimport com.pulumi.gcore.ReservedfixedipArgs;\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 lb = new Loadbalancerv2(\"lb\", Loadbalancerv2Args.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"My first public load balancer\")\n            .flavor(\"lb1-1-2\")\n            .build());\n\n        final var preservedPortId = lb.vipPortId();\n\n        var fixedIpByPort = new Reservedfixedip(\"fixedIpByPort\", ReservedfixedipArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .type(\"port\")\n            .portId(preservedPortId)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  lb:\n    type: gcore:Loadbalancerv2\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: My first public load balancer\n      flavor: lb1-1-2\n  fixedIpByPort:\n    type: gcore:Reservedfixedip\n    name: fixed_ip_by_port\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      type: port\n      portId: ${preservedPortId}\nvariables:\n  preservedPortId: ${lb.vipPortId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003creservedfixedip_id\u003e format\n\n```sh\n$ pulumi import gcore:index/reservedfixedip:Reservedfixedip reservedfixedip1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"allowedAddressPairs":{"type":"array","items":{"$ref":"#/types/gcore:index%2FReservedfixedipAllowedAddressPair:ReservedfixedipAllowedAddressPair"},"description":"IP addresses or CIDRs which can be used by this port. Can be applied only after attaching Reserved Fixed IP to the Virtual Instance. Consider usage of \u003cspan pulumi-lang-nodejs=\"`gcore.PortAllowedAddressPairs`\" pulumi-lang-dotnet=\"`gcore.PortAllowedAddressPairs`\" pulumi-lang-go=\"`PortAllowedAddressPairs`\" pulumi-lang-python=\"`PortAllowedAddressPairs`\" pulumi-lang-yaml=\"`gcore.PortAllowedAddressPairs`\" pulumi-lang-java=\"`gcore.PortAllowedAddressPairs`\"\u003e`gcore.PortAllowedAddressPairs`\u003c/span\u003e.\n"},"fixedIpAddress":{"type":"string","description":"IP address of the port. Can be passed with type \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 or retrieved after creation.\n"},"fixedIpv6Address":{"type":"string","description":"IPv6 address of the port.\n"},"ipFamily":{"type":"string","description":"IP family of the reserved fixed ip to create. Available values are 'ipv4', 'ipv6', 'dual'\n"},"isVip":{"type":"boolean","description":"Flag to indicate whether the port is a virtual IP address.\n"},"lastUpdated":{"type":"string","description":"Datetime when reserved fixed ip was updated at the last time.\n"},"networkId":{"type":"string","description":"ID of the desired network. Should be used together with \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.\n"},"portId":{"type":"string","description":"ID of the port underlying the reserved fixed IP. Can be passed with type \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e or retrieved after creation.\n"},"projectId":{"type":"number","description":"ID of the desired project to create reserved fixed ip in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create reserved fixed ip in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"regionId":{"type":"number","description":"ID of the desired region to create reserved fixed ip in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create reserved fixed ip in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"reservedfixedipId":{"type":"string","description":"The ID of this resource.\n"},"status":{"type":"string","description":"Underlying port status\n"},"subnetId":{"type":"string","description":"ID of the desired subnet. Can be used together with \u003cspan pulumi-lang-nodejs=\"`networkId`\" pulumi-lang-dotnet=\"`NetworkId`\" pulumi-lang-go=\"`networkId`\" pulumi-lang-python=\"`network_id`\" pulumi-lang-yaml=\"`networkId`\" pulumi-lang-java=\"`networkId`\"\u003e`network_id`\u003c/span\u003e.\n"},"subnetV6Id":{"type":"string","description":"ID of the IPv6 subnet.\n"},"type":{"type":"string","description":"Type of the reserved fixed ip for create. Available values are 'external', 'subnet', 'any*subnet', 'ip*address', 'port'\n"}},"type":"object","required":["fixedIpAddress","fixedIpv6Address","isVip","lastUpdated","networkId","portId","reservedfixedipId","status","subnetId","subnetV6Id","type"],"inputProperties":{"allowedAddressPairs":{"type":"array","items":{"$ref":"#/types/gcore:index%2FReservedfixedipAllowedAddressPair:ReservedfixedipAllowedAddressPair"},"description":"IP addresses or CIDRs which can be used by this port. Can be applied only after attaching Reserved Fixed IP to the Virtual Instance. Consider usage of \u003cspan pulumi-lang-nodejs=\"`gcore.PortAllowedAddressPairs`\" pulumi-lang-dotnet=\"`gcore.PortAllowedAddressPairs`\" pulumi-lang-go=\"`PortAllowedAddressPairs`\" pulumi-lang-python=\"`PortAllowedAddressPairs`\" pulumi-lang-yaml=\"`gcore.PortAllowedAddressPairs`\" pulumi-lang-java=\"`gcore.PortAllowedAddressPairs`\"\u003e`gcore.PortAllowedAddressPairs`\u003c/span\u003e.\n"},"fixedIpAddress":{"type":"string","description":"IP address of the port. Can be passed with type \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 or retrieved after creation.\n"},"ipFamily":{"type":"string","description":"IP family of the reserved fixed ip to create. Available values are 'ipv4', 'ipv6', 'dual'\n"},"isVip":{"type":"boolean","description":"Flag to indicate whether the port is a virtual IP address.\n"},"networkId":{"type":"string","description":"ID of the desired network. Should be used together with \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.\n"},"portId":{"type":"string","description":"ID of the port underlying the reserved fixed IP. Can be passed with type \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e or retrieved after creation.\n"},"projectId":{"type":"number","description":"ID of the desired project to create reserved fixed ip in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create reserved fixed ip in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"regionId":{"type":"number","description":"ID of the desired region to create reserved fixed ip in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create reserved fixed ip in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"reservedfixedipId":{"type":"string","description":"The ID of this resource.\n"},"subnetId":{"type":"string","description":"ID of the desired subnet. Can be used together with \u003cspan pulumi-lang-nodejs=\"`networkId`\" pulumi-lang-dotnet=\"`NetworkId`\" pulumi-lang-go=\"`networkId`\" pulumi-lang-python=\"`network_id`\" pulumi-lang-yaml=\"`networkId`\" pulumi-lang-java=\"`networkId`\"\u003e`network_id`\u003c/span\u003e.\n"},"type":{"type":"string","description":"Type of the reserved fixed ip for create. Available values are 'external', 'subnet', 'any*subnet', 'ip*address', 'port'\n"}},"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering Reservedfixedip resources.\n","properties":{"allowedAddressPairs":{"type":"array","items":{"$ref":"#/types/gcore:index%2FReservedfixedipAllowedAddressPair:ReservedfixedipAllowedAddressPair"},"description":"IP addresses or CIDRs which can be used by this port. Can be applied only after attaching Reserved Fixed IP to the Virtual Instance. Consider usage of \u003cspan pulumi-lang-nodejs=\"`gcore.PortAllowedAddressPairs`\" pulumi-lang-dotnet=\"`gcore.PortAllowedAddressPairs`\" pulumi-lang-go=\"`PortAllowedAddressPairs`\" pulumi-lang-python=\"`PortAllowedAddressPairs`\" pulumi-lang-yaml=\"`gcore.PortAllowedAddressPairs`\" pulumi-lang-java=\"`gcore.PortAllowedAddressPairs`\"\u003e`gcore.PortAllowedAddressPairs`\u003c/span\u003e.\n"},"fixedIpAddress":{"type":"string","description":"IP address of the port. Can be passed with type \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 or retrieved after creation.\n"},"fixedIpv6Address":{"type":"string","description":"IPv6 address of the port.\n"},"ipFamily":{"type":"string","description":"IP family of the reserved fixed ip to create. Available values are 'ipv4', 'ipv6', 'dual'\n"},"isVip":{"type":"boolean","description":"Flag to indicate whether the port is a virtual IP address.\n"},"lastUpdated":{"type":"string","description":"Datetime when reserved fixed ip was updated at the last time.\n"},"networkId":{"type":"string","description":"ID of the desired network. Should be used together with \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.\n"},"portId":{"type":"string","description":"ID of the port underlying the reserved fixed IP. Can be passed with type \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e or retrieved after creation.\n"},"projectId":{"type":"number","description":"ID of the desired project to create reserved fixed ip in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create reserved fixed ip in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"regionId":{"type":"number","description":"ID of the desired region to create reserved fixed ip in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create reserved fixed ip in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"reservedfixedipId":{"type":"string","description":"The ID of this resource.\n"},"status":{"type":"string","description":"Underlying port status\n"},"subnetId":{"type":"string","description":"ID of the desired subnet. Can be used together with \u003cspan pulumi-lang-nodejs=\"`networkId`\" pulumi-lang-dotnet=\"`NetworkId`\" pulumi-lang-go=\"`networkId`\" pulumi-lang-python=\"`network_id`\" pulumi-lang-yaml=\"`networkId`\" pulumi-lang-java=\"`networkId`\"\u003e`network_id`\u003c/span\u003e.\n"},"subnetV6Id":{"type":"string","description":"ID of the IPv6 subnet.\n"},"type":{"type":"string","description":"Type of the reserved fixed ip for create. Available values are 'external', 'subnet', 'any*subnet', 'ip*address', 'port'\n"}},"type":"object"}},"gcore:index/router:Router":{"description":"Represent router. Router enables you to dynamically exchange routes between networks\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\nfunction singleOrNone\u003cT\u003e(elements: pulumi.Input\u003cT\u003e[]): pulumi.Input\u003cT\u003e {\n    if (elements.length != 1) {\n        throw new Error(\"singleOrNone expected input list to have a single element\");\n    }\n    return elements[0];\n}\n\nconst router = new gcore.Router(\"router\", {\n    externalGatewayInfo: singleOrNone(Object.entries(externalGatewayInfo).map(([k, v]) =\u003e ({key: k, value: v})).map(entry =\u003e ({\n        type: entry.value.type,\n        enableSnat: entry.value.enableSnat,\n        networkId: entry.value.networkId,\n    }))),\n    interfaces: Object.entries(interfaces).map(([k, v]) =\u003e ({key: k, value: v})).map(entry2 =\u003e ({\n        type: entry2.value.type,\n        subnetId: entry2.value.subnetId,\n    })),\n    routes: Object.entries(routes).map(([k, v]) =\u003e ({key: k, value: v})).map(entry3 =\u003e ({\n        destination: entry3.value.destination,\n        nexthop: entry3.value.nexthop,\n    })),\n    name: \"router_example\",\n    regionId: 1,\n    projectId: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ndef single_or_none(elements):\n    if len(elements) != 1:\n        raise Exception(\"single_or_none expected input list to have a single element\")\n    return elements[0]\n\n\nrouter = gcore.Router(\"router\",\n    external_gateway_info=single_or_none([{\n        \"type\": entry[\"value\"][\"type\"],\n        \"enableSnat\": entry[\"value\"][\"enableSnat\"],\n        \"networkId\": entry[\"value\"][\"networkId\"],\n    } for entry in [{\"key\": k, \"value\": v} for k, v in external_gateway_info]]),\n    interfaces=[{\n        \"type\": entry2[\"value\"][\"type\"],\n        \"subnet_id\": entry2[\"value\"][\"subnetId\"],\n    } for entry2 in [{\"key\": k, \"value\": v} for k, v in interfaces]],\n    routes=[{\n        \"destination\": entry3[\"value\"][\"destination\"],\n        \"nexthop\": entry3[\"value\"][\"nexthop\"],\n    } for entry3 in [{\"key\": k, \"value\": v} for k, v in routes]],\n    name=\"router_example\",\n    region_id=1,\n    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 router = new Gcore.Router(\"router\", new()\n    {\n        ExternalGatewayInfo = Enumerable.Single(.Select(entry =\u003e \n        {\n            return \n            {\n                { \"type\", entry.Value.Type },\n                { \"enableSnat\", entry.Value.EnableSnat },\n                { \"networkId\", entry.Value.NetworkId },\n            };\n        }).ToList()),\n        Interfaces = .Select(entry2 =\u003e \n        {\n            return new Gcore.Inputs.RouterInterfaceArgs\n            {\n                Type = entry2.Value.Type,\n                SubnetId = entry2.Value.SubnetId,\n            };\n        }).ToList(),\n        Routes = .Select(entry3 =\u003e \n        {\n            return new Gcore.Inputs.RouterRouteArgs\n            {\n                Destination = entry3.Value.Destination,\n                Nexthop = entry3.Value.Nexthop,\n            };\n        }).ToList(),\n        Name = \"router_example\",\n        RegionId = 1,\n        ProjectId = 1,\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003crouter_id\u003e format\n\n```sh\n$ pulumi import gcore:index/router:Router router1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"externalGatewayInfo":{"$ref":"#/types/gcore:index%2FRouterExternalGatewayInfo:RouterExternalGatewayInfo"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FRouterInterface:RouterInterface"}},"lastUpdated":{"type":"string"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"routerId":{"type":"string","description":"The ID of this resource.\n"},"routes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FRouterRoute:RouterRoute"}}},"type":"object","required":["lastUpdated","name","routerId"],"inputProperties":{"externalGatewayInfo":{"$ref":"#/types/gcore:index%2FRouterExternalGatewayInfo:RouterExternalGatewayInfo"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FRouterInterface:RouterInterface"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"routerId":{"type":"string","description":"The ID of this resource.\n"},"routes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FRouterRoute:RouterRoute"}}},"stateInputs":{"description":"Input properties used for looking up and filtering Router resources.\n","properties":{"externalGatewayInfo":{"$ref":"#/types/gcore:index%2FRouterExternalGatewayInfo:RouterExternalGatewayInfo"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcore:index%2FRouterInterface:RouterInterface"}},"lastUpdated":{"type":"string"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"routerId":{"type":"string","description":"The ID of this resource.\n"},"routes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FRouterRoute:RouterRoute"}}},"type":"object"}},"gcore:index/secret:Secret":{"description":"Represent secret\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 lbHttps = new gcore.Secret(\"lb_https\", {\n    regionId: 1,\n    projectId: 1,\n    name: \"test\",\n    privateKey: `-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDQ4E6U0vql4EST\n8o41TlHRz6MKmMhddVUjM2juTKjxv4WuB4T3z/wokznEjQg4H7gfYEKeCJqelrfq\ntdOtbPsznSceMOXB5uA2Sc9WVKwk7owoRJxPd4LQeOcarVOFdIzudzkgSK/oV7Za\nL8Y2hylsB4SX2cfbULtmW/WDePp3YZAL6zYV1fXJSnK+hL2iUSqikiViEGRta+47\nnaTKZnnmSgojdshzsw0wlF/PgRJ/Anf9j9J8ratdJP81yAG5daU3L2NdJ3qx9UbV\ntKnSq2z2u4yx6xdb4t4WFQBKNjC6+YZN/gI5lp96p3FNTNS4PKYxAAUrnCwf0EE3\n7dOR4eWlAgMBAAECggEBALPm3ge0h4li1e4PVYh4AmSRT74KxVgpfMCqwM+uWzyM\nVpkDhPTjwC06UOEHD3M3bqAninkOtA2vhoyzOrP+T4Wu70hDmUAemDJp9BhJKVNN\n2o28Olz/dD4WRAZoDq29Kr0hFqTFtiyJj1eyGihQ1c5j00HuowI0UJPi1Fz+T8uN\nPwukUtTPYwEds6SApii3v9VKjmvbRDmsbHU3KkUoaeqpRnRagyp1vtoLXigezUcK\nrQcoh6wlKtvj0YLR2lxq9Wmj1nn6m3F5Bom54X8o18tcOmFSRudRb+Fxjb0jnqSK\nAsyVlZg4alTBQUmx9gIKv0oSJAIh2nXdclECkGjs8WkCgYEA9xvdDWephsbv+X3k\nndnDG9JTxfrR6HMHPrUrTaZ8/VD+Qw4zuReoNGkcQbV3Cb26egprWQWfYc9+l6mU\nAWgOjFgeGie1uwOwkhv6CfhE/iVvotJ3hOOsC5pLEhz4vRpO75C9wSehjfTYkP1m\nXEAhRTRbgMnvzChWyh5CEjosX5sCgYEA2GRHrG0JVxsYSCugLPKf9fSK4CQDm0bK\nywBwZtAWX0xhiHO/BW6PeK1Mqx2nbiWl1hXNpZKJNS9bnrZWym/yUqOvg2XJKjb6\nhHBvwAD1MOQ8Ysby4JHGCrMBEwlcDpI2wpMpXkKhU3X0XWjkqrhqCH/TETFKkqLt\nfJX/c9PTQ78CgYAEPek0grQJST7zVHLpNsS/pIOloWGbEOZt8CQ3KAV7P7mtov/G\nTJ6pj6hZhGjvtN8Pm0Aufgc3YZ11swaEY6nkRNr3bfkTpcORLoPDSgy9JB1feSdu\nE45vgI2LWQ34CQyT1jM7rpd6XVqeWos4SC2KB5UOh+ji40piG9TchT0fwwKBgA/M\nmpMTTvhGKSqzzLkbaeR6W11sI7tFmu7hdFN9Y/THTeO5l7vcy6ri9FMWEjBvnUEZ\nTG+HWG9CquzWoVWcgNPZ0anFV7+2Teo3j2E0cLKGJ4aKwhb1bcFAOpbaOxdxQ4BH\nYGDaeo7ucM4VJ4TzfAJs2stJjwlPzgknpoQddjJfAoGBAIFfnU8x/SrNhAqZrG9d\n3kpJ5LmbVswOYtj01KHM+KpEwOQVF+s2NOeHqyC7QUIWrue00+1MT88F9cNHDeWk\n0dEOJNWCfzcV85l8A+0p6/4qAW7h7RNiFqeA8GyVKCT8f7fu/7WpYw8D0aq8w5X/\nKZl+AjB+MzYFs71+SC4ohTlI\n-----END PRIVATE KEY-----`,\n    certificate: `-----BEGIN CERTIFICATE-----\nMIIDpDCCAoygAwIBAgIJAIUvym0uaBHbMA0GCSqGSIb3DQEBCwUAMD0xCzAJBgNV\nBAYTAlJVMQ8wDQYDVQQIDAZNT1NDT1cxCzAJBgNVBAoMAkNBMRAwDgYDVQQDDAdS\nT09UIENBMB4XDTIxMDczMDE1MTU0NVoXDTMxMDcyODE1MTU0NVowTDELMAkGA1UE\nBhMCQ0ExDTALBgNVBAgMBE5vbmUxCzAJBgNVBAcMAk5CMQ0wCwYDVQQKDAROb25l\nMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQDQ4E6U0vql4EST8o41TlHRz6MKmMhddVUjM2juTKjxv4WuB4T3z/wokznE\njQg4H7gfYEKeCJqelrfqtdOtbPsznSceMOXB5uA2Sc9WVKwk7owoRJxPd4LQeOca\nrVOFdIzudzkgSK/oV7ZaL8Y2hylsB4SX2cfbULtmW/WDePp3YZAL6zYV1fXJSnK+\nhL2iUSqikiViEGRta+47naTKZnnmSgojdshzsw0wlF/PgRJ/Anf9j9J8ratdJP81\nyAG5daU3L2NdJ3qx9UbVtKnSq2z2u4yx6xdb4t4WFQBKNjC6+YZN/gI5lp96p3FN\nTNS4PKYxAAUrnCwf0EE37dOR4eWlAgMBAAGjgZcwgZQwVwYDVR0jBFAwTqFBpD8w\nPTELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1PU0NPVzELMAkGA1UECgwCQ0ExEDAO\nBgNVBAMMB1JPT1QgQ0GCCQCectJTETy4lTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE\n8DAhBgNVHREEGjAYgglsb2NhbGhvc3SCCyoubG9jYWxob3N0MA0GCSqGSIb3DQEB\nCwUAA4IBAQBqzJcwygLsVCTPlReUpcKVn84aFqzfZA0m7hYvH+7PDH/FM8SbX3zg\nteBL/PgQAZw1amO8xjeMc2Pe2kvi9VrpfTeGqNia/9axhGu3q/NEP0tyDFXAE2bR\njBdGhd5gCmg+X4WdHigCgn51cz5r2k3fSOIWP+TQWHqc8Yt+vZXnkwnQkRA1Ki7N\nWOiJjj/ae5RWwma/kJNmShTZn754gbQn06bAjNbPjclsHRLkawmLqikd1rYUhIdk\nOr1Nrl+CWMx3CXg0TVVdJ6rH3dO31uyvb+3qEY7WnL+HhZyr08ay8gJsEKPuPFA2\nxvveXqt9ceU5qh+8T7mHwGALEUw96QcP\n-----END CERTIFICATE-----`,\n    certificateChain: `-----BEGIN CERTIFICATE-----\nMIIC9jCCAd4CCQCectJTETy4lTANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQGEwJS\nVTEPMA0GA1UECAwGTU9TQ09XMQswCQYDVQQKDAJDQTEQMA4GA1UEAwwHUk9PVCBD\nQTAeFw0yMTA3MzAxNTExMzVaFw0yNDA1MTkxNTExMzVaMD0xCzAJBgNVBAYTAlJV\nMQ8wDQYDVQQIDAZNT1NDT1cxCzAJBgNVBAoMAkNBMRAwDgYDVQQDDAdST09UIENB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo6tZ0NV6QIR/mvsqtAII\nzTTuBMrZR5OTwKvcGnhe4GVDwzJ/OgEWkghLAzOojcJvkfzJOtWwOXqwgphksc+7\n+vwIPTPt3iWjbQUzXK8pFLkjxrO8px/QxPuUrp+U6DTVvvgQesjMZ9jQRUFKOiCc\nu0st1N5Q/CJR4VOJxtYoLy1ZUlsABhwJ+6trkoOFTLRPlMUX1EIG57jYAotHvQFo\nc8UNx3KzvJsJJ56SniXCIkeu61IOt8aOXHU+3TLYhZnPiP311cMbXA0J3vGPRZwz\n25BZjF3IF/ShXlfzz76FjWUTAThc0+HA8lzx53xD4/n8HN+sGubGx9TvLyZimG/U\nGwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAnK8Wzw33fR6R6pqV05XI9Yu8J+BwC\nCn2bKxxYwwQWZyX1as+UIlGuvyBRJba9W2UGMj95FQfWVdDyFC98spUur+O/5yL+\nNHH+dxGnkxIRc6RMIy+GXJwPrLiB/t70hSvwgVa249zNJVcwYN/5SGX5wLaJKnim\neY99xm75nr03O/RJK/DR8HvWysH7zxvrMWs0ppfwxkxrwOcg0Cb9xODVkg/wyClw\nLiHWlmH/eyC8nkiLYJKmV7566VWCV+gy+hC/DRstVVjIMG6LsqaPq6ycm7N8EV8s\nBb5uXIVHW6w5a20c40+W9G4EDYiQjdgEaf0FoMAWGDnOEaPsvjQk2/z5\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIDPDCCAiQCCQDxA75ydLHVoTANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJS\nVTEPMA0GA1UECAwGTU9TQ09XMQ8wDQYDVQQHDAZNT1NDT1cxFTATBgNVBAoMDElO\nVEVSTUVESUFURTEYMBYGA1UEAwwPSU5URVJNRURJQVRFIENBMB4XDTIxMDczMDE1\nMTIyMloXDTI0MDUxOTE1MTIyMlowYDELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1P\nU0NPVzEPMA0GA1UEBwwGTU9TQ09XMRUwEwYDVQQKDAxJTlRFUk1FRElBVEUxGDAW\nBgNVBAMMD0lOVEVSTUVESUFURSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC\nAQoCggEBAKOrWdDVekCEf5r7KrQCCM007gTK2UeTk8Cr3Bp4XuBlQ8MyfzoBFpII\nSwMzqI3Cb5H8yTrVsDl6sIKYZLHPu/r8CD0z7d4lo20FM1yvKRS5I8azvKcf0MT7\nlK6flOg01b74EHrIzGfY0EVBSjognLtLLdTeUPwiUeFTicbWKC8tWVJbAAYcCfur\na5KDhUy0T5TFF9RCBue42AKLR70BaHPFDcdys7ybCSeekp4lwiJHrutSDrfGjlx1\nPt0y2IWZz4j99dXDG1wNCd7xj0WcM9uQWYxdyBf0oV5X88++hY1lEwE4XNPhwPJc\n8ed8Q+P5/BzfrBrmxsfU7y8mYphv1BsCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEA\ngOHvrh66+bQoG3Lo8bfp7D1Xvm/Md3gJq2nMotl2BH1TvNzMV93fCXygRX8J8rTL\n7xjUC2SbOrFDWFq2hNJQagdecAeuG+U55BY6Wi8SsHw+fhgxQyl9wtXWwotQPmsD\nuRhR1rL3vEphgPLbxNBzA7Lvj+P89Ar988Qy+o5AiUzHMUuqZbGOqs8UcKCQP7e/\nIX+zqqFwqyI8f90SVySGgs574jo8jQFy3l5fnp6yK0MPWg2cBCjpa5H1A+5DADF+\nnryV6Ie/m/wfxmitZZN+YCJu+8Bmmdl/FCwbmiH+HCLhrO8gonH3K21cQujMyFF5\nc7OFj86hvhqbr4kzz1J8lg==\n-----END CERTIFICATE-----`,\n    expiration: \"2025-12-28T19:14:44.213\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nlb_https = gcore.Secret(\"lb_https\",\n    region_id=1,\n    project_id=1,\n    name=\"test\",\n    private_key=\"\"\"-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDQ4E6U0vql4EST\n8o41TlHRz6MKmMhddVUjM2juTKjxv4WuB4T3z/wokznEjQg4H7gfYEKeCJqelrfq\ntdOtbPsznSceMOXB5uA2Sc9WVKwk7owoRJxPd4LQeOcarVOFdIzudzkgSK/oV7Za\nL8Y2hylsB4SX2cfbULtmW/WDePp3YZAL6zYV1fXJSnK+hL2iUSqikiViEGRta+47\nnaTKZnnmSgojdshzsw0wlF/PgRJ/Anf9j9J8ratdJP81yAG5daU3L2NdJ3qx9UbV\ntKnSq2z2u4yx6xdb4t4WFQBKNjC6+YZN/gI5lp96p3FNTNS4PKYxAAUrnCwf0EE3\n7dOR4eWlAgMBAAECggEBALPm3ge0h4li1e4PVYh4AmSRT74KxVgpfMCqwM+uWzyM\nVpkDhPTjwC06UOEHD3M3bqAninkOtA2vhoyzOrP+T4Wu70hDmUAemDJp9BhJKVNN\n2o28Olz/dD4WRAZoDq29Kr0hFqTFtiyJj1eyGihQ1c5j00HuowI0UJPi1Fz+T8uN\nPwukUtTPYwEds6SApii3v9VKjmvbRDmsbHU3KkUoaeqpRnRagyp1vtoLXigezUcK\nrQcoh6wlKtvj0YLR2lxq9Wmj1nn6m3F5Bom54X8o18tcOmFSRudRb+Fxjb0jnqSK\nAsyVlZg4alTBQUmx9gIKv0oSJAIh2nXdclECkGjs8WkCgYEA9xvdDWephsbv+X3k\nndnDG9JTxfrR6HMHPrUrTaZ8/VD+Qw4zuReoNGkcQbV3Cb26egprWQWfYc9+l6mU\nAWgOjFgeGie1uwOwkhv6CfhE/iVvotJ3hOOsC5pLEhz4vRpO75C9wSehjfTYkP1m\nXEAhRTRbgMnvzChWyh5CEjosX5sCgYEA2GRHrG0JVxsYSCugLPKf9fSK4CQDm0bK\nywBwZtAWX0xhiHO/BW6PeK1Mqx2nbiWl1hXNpZKJNS9bnrZWym/yUqOvg2XJKjb6\nhHBvwAD1MOQ8Ysby4JHGCrMBEwlcDpI2wpMpXkKhU3X0XWjkqrhqCH/TETFKkqLt\nfJX/c9PTQ78CgYAEPek0grQJST7zVHLpNsS/pIOloWGbEOZt8CQ3KAV7P7mtov/G\nTJ6pj6hZhGjvtN8Pm0Aufgc3YZ11swaEY6nkRNr3bfkTpcORLoPDSgy9JB1feSdu\nE45vgI2LWQ34CQyT1jM7rpd6XVqeWos4SC2KB5UOh+ji40piG9TchT0fwwKBgA/M\nmpMTTvhGKSqzzLkbaeR6W11sI7tFmu7hdFN9Y/THTeO5l7vcy6ri9FMWEjBvnUEZ\nTG+HWG9CquzWoVWcgNPZ0anFV7+2Teo3j2E0cLKGJ4aKwhb1bcFAOpbaOxdxQ4BH\nYGDaeo7ucM4VJ4TzfAJs2stJjwlPzgknpoQddjJfAoGBAIFfnU8x/SrNhAqZrG9d\n3kpJ5LmbVswOYtj01KHM+KpEwOQVF+s2NOeHqyC7QUIWrue00+1MT88F9cNHDeWk\n0dEOJNWCfzcV85l8A+0p6/4qAW7h7RNiFqeA8GyVKCT8f7fu/7WpYw8D0aq8w5X/\nKZl+AjB+MzYFs71+SC4ohTlI\n-----END PRIVATE KEY-----\"\"\",\n    certificate=\"\"\"-----BEGIN CERTIFICATE-----\nMIIDpDCCAoygAwIBAgIJAIUvym0uaBHbMA0GCSqGSIb3DQEBCwUAMD0xCzAJBgNV\nBAYTAlJVMQ8wDQYDVQQIDAZNT1NDT1cxCzAJBgNVBAoMAkNBMRAwDgYDVQQDDAdS\nT09UIENBMB4XDTIxMDczMDE1MTU0NVoXDTMxMDcyODE1MTU0NVowTDELMAkGA1UE\nBhMCQ0ExDTALBgNVBAgMBE5vbmUxCzAJBgNVBAcMAk5CMQ0wCwYDVQQKDAROb25l\nMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQDQ4E6U0vql4EST8o41TlHRz6MKmMhddVUjM2juTKjxv4WuB4T3z/wokznE\njQg4H7gfYEKeCJqelrfqtdOtbPsznSceMOXB5uA2Sc9WVKwk7owoRJxPd4LQeOca\nrVOFdIzudzkgSK/oV7ZaL8Y2hylsB4SX2cfbULtmW/WDePp3YZAL6zYV1fXJSnK+\nhL2iUSqikiViEGRta+47naTKZnnmSgojdshzsw0wlF/PgRJ/Anf9j9J8ratdJP81\nyAG5daU3L2NdJ3qx9UbVtKnSq2z2u4yx6xdb4t4WFQBKNjC6+YZN/gI5lp96p3FN\nTNS4PKYxAAUrnCwf0EE37dOR4eWlAgMBAAGjgZcwgZQwVwYDVR0jBFAwTqFBpD8w\nPTELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1PU0NPVzELMAkGA1UECgwCQ0ExEDAO\nBgNVBAMMB1JPT1QgQ0GCCQCectJTETy4lTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE\n8DAhBgNVHREEGjAYgglsb2NhbGhvc3SCCyoubG9jYWxob3N0MA0GCSqGSIb3DQEB\nCwUAA4IBAQBqzJcwygLsVCTPlReUpcKVn84aFqzfZA0m7hYvH+7PDH/FM8SbX3zg\nteBL/PgQAZw1amO8xjeMc2Pe2kvi9VrpfTeGqNia/9axhGu3q/NEP0tyDFXAE2bR\njBdGhd5gCmg+X4WdHigCgn51cz5r2k3fSOIWP+TQWHqc8Yt+vZXnkwnQkRA1Ki7N\nWOiJjj/ae5RWwma/kJNmShTZn754gbQn06bAjNbPjclsHRLkawmLqikd1rYUhIdk\nOr1Nrl+CWMx3CXg0TVVdJ6rH3dO31uyvb+3qEY7WnL+HhZyr08ay8gJsEKPuPFA2\nxvveXqt9ceU5qh+8T7mHwGALEUw96QcP\n-----END CERTIFICATE-----\"\"\",\n    certificate_chain=\"\"\"-----BEGIN CERTIFICATE-----\nMIIC9jCCAd4CCQCectJTETy4lTANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQGEwJS\nVTEPMA0GA1UECAwGTU9TQ09XMQswCQYDVQQKDAJDQTEQMA4GA1UEAwwHUk9PVCBD\nQTAeFw0yMTA3MzAxNTExMzVaFw0yNDA1MTkxNTExMzVaMD0xCzAJBgNVBAYTAlJV\nMQ8wDQYDVQQIDAZNT1NDT1cxCzAJBgNVBAoMAkNBMRAwDgYDVQQDDAdST09UIENB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo6tZ0NV6QIR/mvsqtAII\nzTTuBMrZR5OTwKvcGnhe4GVDwzJ/OgEWkghLAzOojcJvkfzJOtWwOXqwgphksc+7\n+vwIPTPt3iWjbQUzXK8pFLkjxrO8px/QxPuUrp+U6DTVvvgQesjMZ9jQRUFKOiCc\nu0st1N5Q/CJR4VOJxtYoLy1ZUlsABhwJ+6trkoOFTLRPlMUX1EIG57jYAotHvQFo\nc8UNx3KzvJsJJ56SniXCIkeu61IOt8aOXHU+3TLYhZnPiP311cMbXA0J3vGPRZwz\n25BZjF3IF/ShXlfzz76FjWUTAThc0+HA8lzx53xD4/n8HN+sGubGx9TvLyZimG/U\nGwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAnK8Wzw33fR6R6pqV05XI9Yu8J+BwC\nCn2bKxxYwwQWZyX1as+UIlGuvyBRJba9W2UGMj95FQfWVdDyFC98spUur+O/5yL+\nNHH+dxGnkxIRc6RMIy+GXJwPrLiB/t70hSvwgVa249zNJVcwYN/5SGX5wLaJKnim\neY99xm75nr03O/RJK/DR8HvWysH7zxvrMWs0ppfwxkxrwOcg0Cb9xODVkg/wyClw\nLiHWlmH/eyC8nkiLYJKmV7566VWCV+gy+hC/DRstVVjIMG6LsqaPq6ycm7N8EV8s\nBb5uXIVHW6w5a20c40+W9G4EDYiQjdgEaf0FoMAWGDnOEaPsvjQk2/z5\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIDPDCCAiQCCQDxA75ydLHVoTANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJS\nVTEPMA0GA1UECAwGTU9TQ09XMQ8wDQYDVQQHDAZNT1NDT1cxFTATBgNVBAoMDElO\nVEVSTUVESUFURTEYMBYGA1UEAwwPSU5URVJNRURJQVRFIENBMB4XDTIxMDczMDE1\nMTIyMloXDTI0MDUxOTE1MTIyMlowYDELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1P\nU0NPVzEPMA0GA1UEBwwGTU9TQ09XMRUwEwYDVQQKDAxJTlRFUk1FRElBVEUxGDAW\nBgNVBAMMD0lOVEVSTUVESUFURSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC\nAQoCggEBAKOrWdDVekCEf5r7KrQCCM007gTK2UeTk8Cr3Bp4XuBlQ8MyfzoBFpII\nSwMzqI3Cb5H8yTrVsDl6sIKYZLHPu/r8CD0z7d4lo20FM1yvKRS5I8azvKcf0MT7\nlK6flOg01b74EHrIzGfY0EVBSjognLtLLdTeUPwiUeFTicbWKC8tWVJbAAYcCfur\na5KDhUy0T5TFF9RCBue42AKLR70BaHPFDcdys7ybCSeekp4lwiJHrutSDrfGjlx1\nPt0y2IWZz4j99dXDG1wNCd7xj0WcM9uQWYxdyBf0oV5X88++hY1lEwE4XNPhwPJc\n8ed8Q+P5/BzfrBrmxsfU7y8mYphv1BsCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEA\ngOHvrh66+bQoG3Lo8bfp7D1Xvm/Md3gJq2nMotl2BH1TvNzMV93fCXygRX8J8rTL\n7xjUC2SbOrFDWFq2hNJQagdecAeuG+U55BY6Wi8SsHw+fhgxQyl9wtXWwotQPmsD\nuRhR1rL3vEphgPLbxNBzA7Lvj+P89Ar988Qy+o5AiUzHMUuqZbGOqs8UcKCQP7e/\nIX+zqqFwqyI8f90SVySGgs574jo8jQFy3l5fnp6yK0MPWg2cBCjpa5H1A+5DADF+\nnryV6Ie/m/wfxmitZZN+YCJu+8Bmmdl/FCwbmiH+HCLhrO8gonH3K21cQujMyFF5\nc7OFj86hvhqbr4kzz1J8lg==\n-----END CERTIFICATE-----\"\"\",\n    expiration=\"2025-12-28T19:14:44.213\")\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 lbHttps = new Gcore.Secret(\"lb_https\", new()\n    {\n        RegionId = 1,\n        ProjectId = 1,\n        Name = \"test\",\n        PrivateKey = @\"-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDQ4E6U0vql4EST\n8o41TlHRz6MKmMhddVUjM2juTKjxv4WuB4T3z/wokznEjQg4H7gfYEKeCJqelrfq\ntdOtbPsznSceMOXB5uA2Sc9WVKwk7owoRJxPd4LQeOcarVOFdIzudzkgSK/oV7Za\nL8Y2hylsB4SX2cfbULtmW/WDePp3YZAL6zYV1fXJSnK+hL2iUSqikiViEGRta+47\nnaTKZnnmSgojdshzsw0wlF/PgRJ/Anf9j9J8ratdJP81yAG5daU3L2NdJ3qx9UbV\ntKnSq2z2u4yx6xdb4t4WFQBKNjC6+YZN/gI5lp96p3FNTNS4PKYxAAUrnCwf0EE3\n7dOR4eWlAgMBAAECggEBALPm3ge0h4li1e4PVYh4AmSRT74KxVgpfMCqwM+uWzyM\nVpkDhPTjwC06UOEHD3M3bqAninkOtA2vhoyzOrP+T4Wu70hDmUAemDJp9BhJKVNN\n2o28Olz/dD4WRAZoDq29Kr0hFqTFtiyJj1eyGihQ1c5j00HuowI0UJPi1Fz+T8uN\nPwukUtTPYwEds6SApii3v9VKjmvbRDmsbHU3KkUoaeqpRnRagyp1vtoLXigezUcK\nrQcoh6wlKtvj0YLR2lxq9Wmj1nn6m3F5Bom54X8o18tcOmFSRudRb+Fxjb0jnqSK\nAsyVlZg4alTBQUmx9gIKv0oSJAIh2nXdclECkGjs8WkCgYEA9xvdDWephsbv+X3k\nndnDG9JTxfrR6HMHPrUrTaZ8/VD+Qw4zuReoNGkcQbV3Cb26egprWQWfYc9+l6mU\nAWgOjFgeGie1uwOwkhv6CfhE/iVvotJ3hOOsC5pLEhz4vRpO75C9wSehjfTYkP1m\nXEAhRTRbgMnvzChWyh5CEjosX5sCgYEA2GRHrG0JVxsYSCugLPKf9fSK4CQDm0bK\nywBwZtAWX0xhiHO/BW6PeK1Mqx2nbiWl1hXNpZKJNS9bnrZWym/yUqOvg2XJKjb6\nhHBvwAD1MOQ8Ysby4JHGCrMBEwlcDpI2wpMpXkKhU3X0XWjkqrhqCH/TETFKkqLt\nfJX/c9PTQ78CgYAEPek0grQJST7zVHLpNsS/pIOloWGbEOZt8CQ3KAV7P7mtov/G\nTJ6pj6hZhGjvtN8Pm0Aufgc3YZ11swaEY6nkRNr3bfkTpcORLoPDSgy9JB1feSdu\nE45vgI2LWQ34CQyT1jM7rpd6XVqeWos4SC2KB5UOh+ji40piG9TchT0fwwKBgA/M\nmpMTTvhGKSqzzLkbaeR6W11sI7tFmu7hdFN9Y/THTeO5l7vcy6ri9FMWEjBvnUEZ\nTG+HWG9CquzWoVWcgNPZ0anFV7+2Teo3j2E0cLKGJ4aKwhb1bcFAOpbaOxdxQ4BH\nYGDaeo7ucM4VJ4TzfAJs2stJjwlPzgknpoQddjJfAoGBAIFfnU8x/SrNhAqZrG9d\n3kpJ5LmbVswOYtj01KHM+KpEwOQVF+s2NOeHqyC7QUIWrue00+1MT88F9cNHDeWk\n0dEOJNWCfzcV85l8A+0p6/4qAW7h7RNiFqeA8GyVKCT8f7fu/7WpYw8D0aq8w5X/\nKZl+AjB+MzYFs71+SC4ohTlI\n-----END PRIVATE KEY-----\",\n        Certificate = @\"-----BEGIN CERTIFICATE-----\nMIIDpDCCAoygAwIBAgIJAIUvym0uaBHbMA0GCSqGSIb3DQEBCwUAMD0xCzAJBgNV\nBAYTAlJVMQ8wDQYDVQQIDAZNT1NDT1cxCzAJBgNVBAoMAkNBMRAwDgYDVQQDDAdS\nT09UIENBMB4XDTIxMDczMDE1MTU0NVoXDTMxMDcyODE1MTU0NVowTDELMAkGA1UE\nBhMCQ0ExDTALBgNVBAgMBE5vbmUxCzAJBgNVBAcMAk5CMQ0wCwYDVQQKDAROb25l\nMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQDQ4E6U0vql4EST8o41TlHRz6MKmMhddVUjM2juTKjxv4WuB4T3z/wokznE\njQg4H7gfYEKeCJqelrfqtdOtbPsznSceMOXB5uA2Sc9WVKwk7owoRJxPd4LQeOca\nrVOFdIzudzkgSK/oV7ZaL8Y2hylsB4SX2cfbULtmW/WDePp3YZAL6zYV1fXJSnK+\nhL2iUSqikiViEGRta+47naTKZnnmSgojdshzsw0wlF/PgRJ/Anf9j9J8ratdJP81\nyAG5daU3L2NdJ3qx9UbVtKnSq2z2u4yx6xdb4t4WFQBKNjC6+YZN/gI5lp96p3FN\nTNS4PKYxAAUrnCwf0EE37dOR4eWlAgMBAAGjgZcwgZQwVwYDVR0jBFAwTqFBpD8w\nPTELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1PU0NPVzELMAkGA1UECgwCQ0ExEDAO\nBgNVBAMMB1JPT1QgQ0GCCQCectJTETy4lTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE\n8DAhBgNVHREEGjAYgglsb2NhbGhvc3SCCyoubG9jYWxob3N0MA0GCSqGSIb3DQEB\nCwUAA4IBAQBqzJcwygLsVCTPlReUpcKVn84aFqzfZA0m7hYvH+7PDH/FM8SbX3zg\nteBL/PgQAZw1amO8xjeMc2Pe2kvi9VrpfTeGqNia/9axhGu3q/NEP0tyDFXAE2bR\njBdGhd5gCmg+X4WdHigCgn51cz5r2k3fSOIWP+TQWHqc8Yt+vZXnkwnQkRA1Ki7N\nWOiJjj/ae5RWwma/kJNmShTZn754gbQn06bAjNbPjclsHRLkawmLqikd1rYUhIdk\nOr1Nrl+CWMx3CXg0TVVdJ6rH3dO31uyvb+3qEY7WnL+HhZyr08ay8gJsEKPuPFA2\nxvveXqt9ceU5qh+8T7mHwGALEUw96QcP\n-----END CERTIFICATE-----\",\n        CertificateChain = @\"-----BEGIN CERTIFICATE-----\nMIIC9jCCAd4CCQCectJTETy4lTANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQGEwJS\nVTEPMA0GA1UECAwGTU9TQ09XMQswCQYDVQQKDAJDQTEQMA4GA1UEAwwHUk9PVCBD\nQTAeFw0yMTA3MzAxNTExMzVaFw0yNDA1MTkxNTExMzVaMD0xCzAJBgNVBAYTAlJV\nMQ8wDQYDVQQIDAZNT1NDT1cxCzAJBgNVBAoMAkNBMRAwDgYDVQQDDAdST09UIENB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo6tZ0NV6QIR/mvsqtAII\nzTTuBMrZR5OTwKvcGnhe4GVDwzJ/OgEWkghLAzOojcJvkfzJOtWwOXqwgphksc+7\n+vwIPTPt3iWjbQUzXK8pFLkjxrO8px/QxPuUrp+U6DTVvvgQesjMZ9jQRUFKOiCc\nu0st1N5Q/CJR4VOJxtYoLy1ZUlsABhwJ+6trkoOFTLRPlMUX1EIG57jYAotHvQFo\nc8UNx3KzvJsJJ56SniXCIkeu61IOt8aOXHU+3TLYhZnPiP311cMbXA0J3vGPRZwz\n25BZjF3IF/ShXlfzz76FjWUTAThc0+HA8lzx53xD4/n8HN+sGubGx9TvLyZimG/U\nGwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAnK8Wzw33fR6R6pqV05XI9Yu8J+BwC\nCn2bKxxYwwQWZyX1as+UIlGuvyBRJba9W2UGMj95FQfWVdDyFC98spUur+O/5yL+\nNHH+dxGnkxIRc6RMIy+GXJwPrLiB/t70hSvwgVa249zNJVcwYN/5SGX5wLaJKnim\neY99xm75nr03O/RJK/DR8HvWysH7zxvrMWs0ppfwxkxrwOcg0Cb9xODVkg/wyClw\nLiHWlmH/eyC8nkiLYJKmV7566VWCV+gy+hC/DRstVVjIMG6LsqaPq6ycm7N8EV8s\nBb5uXIVHW6w5a20c40+W9G4EDYiQjdgEaf0FoMAWGDnOEaPsvjQk2/z5\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIDPDCCAiQCCQDxA75ydLHVoTANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJS\nVTEPMA0GA1UECAwGTU9TQ09XMQ8wDQYDVQQHDAZNT1NDT1cxFTATBgNVBAoMDElO\nVEVSTUVESUFURTEYMBYGA1UEAwwPSU5URVJNRURJQVRFIENBMB4XDTIxMDczMDE1\nMTIyMloXDTI0MDUxOTE1MTIyMlowYDELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1P\nU0NPVzEPMA0GA1UEBwwGTU9TQ09XMRUwEwYDVQQKDAxJTlRFUk1FRElBVEUxGDAW\nBgNVBAMMD0lOVEVSTUVESUFURSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC\nAQoCggEBAKOrWdDVekCEf5r7KrQCCM007gTK2UeTk8Cr3Bp4XuBlQ8MyfzoBFpII\nSwMzqI3Cb5H8yTrVsDl6sIKYZLHPu/r8CD0z7d4lo20FM1yvKRS5I8azvKcf0MT7\nlK6flOg01b74EHrIzGfY0EVBSjognLtLLdTeUPwiUeFTicbWKC8tWVJbAAYcCfur\na5KDhUy0T5TFF9RCBue42AKLR70BaHPFDcdys7ybCSeekp4lwiJHrutSDrfGjlx1\nPt0y2IWZz4j99dXDG1wNCd7xj0WcM9uQWYxdyBf0oV5X88++hY1lEwE4XNPhwPJc\n8ed8Q+P5/BzfrBrmxsfU7y8mYphv1BsCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEA\ngOHvrh66+bQoG3Lo8bfp7D1Xvm/Md3gJq2nMotl2BH1TvNzMV93fCXygRX8J8rTL\n7xjUC2SbOrFDWFq2hNJQagdecAeuG+U55BY6Wi8SsHw+fhgxQyl9wtXWwotQPmsD\nuRhR1rL3vEphgPLbxNBzA7Lvj+P89Ar988Qy+o5AiUzHMUuqZbGOqs8UcKCQP7e/\nIX+zqqFwqyI8f90SVySGgs574jo8jQFy3l5fnp6yK0MPWg2cBCjpa5H1A+5DADF+\nnryV6Ie/m/wfxmitZZN+YCJu+8Bmmdl/FCwbmiH+HCLhrO8gonH3K21cQujMyFF5\nc7OFj86hvhqbr4kzz1J8lg==\n-----END CERTIFICATE-----\",\n        Expiration = \"2025-12-28T19:14:44.213\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewSecret(ctx, \"lb_https\", \u0026gcore.SecretArgs{\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tName:      pulumi.String(\"test\"),\n\t\t\tPrivateKey: pulumi.String(`-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDQ4E6U0vql4EST\n8o41TlHRz6MKmMhddVUjM2juTKjxv4WuB4T3z/wokznEjQg4H7gfYEKeCJqelrfq\ntdOtbPsznSceMOXB5uA2Sc9WVKwk7owoRJxPd4LQeOcarVOFdIzudzkgSK/oV7Za\nL8Y2hylsB4SX2cfbULtmW/WDePp3YZAL6zYV1fXJSnK+hL2iUSqikiViEGRta+47\nnaTKZnnmSgojdshzsw0wlF/PgRJ/Anf9j9J8ratdJP81yAG5daU3L2NdJ3qx9UbV\ntKnSq2z2u4yx6xdb4t4WFQBKNjC6+YZN/gI5lp96p3FNTNS4PKYxAAUrnCwf0EE3\n7dOR4eWlAgMBAAECggEBALPm3ge0h4li1e4PVYh4AmSRT74KxVgpfMCqwM+uWzyM\nVpkDhPTjwC06UOEHD3M3bqAninkOtA2vhoyzOrP+T4Wu70hDmUAemDJp9BhJKVNN\n2o28Olz/dD4WRAZoDq29Kr0hFqTFtiyJj1eyGihQ1c5j00HuowI0UJPi1Fz+T8uN\nPwukUtTPYwEds6SApii3v9VKjmvbRDmsbHU3KkUoaeqpRnRagyp1vtoLXigezUcK\nrQcoh6wlKtvj0YLR2lxq9Wmj1nn6m3F5Bom54X8o18tcOmFSRudRb+Fxjb0jnqSK\nAsyVlZg4alTBQUmx9gIKv0oSJAIh2nXdclECkGjs8WkCgYEA9xvdDWephsbv+X3k\nndnDG9JTxfrR6HMHPrUrTaZ8/VD+Qw4zuReoNGkcQbV3Cb26egprWQWfYc9+l6mU\nAWgOjFgeGie1uwOwkhv6CfhE/iVvotJ3hOOsC5pLEhz4vRpO75C9wSehjfTYkP1m\nXEAhRTRbgMnvzChWyh5CEjosX5sCgYEA2GRHrG0JVxsYSCugLPKf9fSK4CQDm0bK\nywBwZtAWX0xhiHO/BW6PeK1Mqx2nbiWl1hXNpZKJNS9bnrZWym/yUqOvg2XJKjb6\nhHBvwAD1MOQ8Ysby4JHGCrMBEwlcDpI2wpMpXkKhU3X0XWjkqrhqCH/TETFKkqLt\nfJX/c9PTQ78CgYAEPek0grQJST7zVHLpNsS/pIOloWGbEOZt8CQ3KAV7P7mtov/G\nTJ6pj6hZhGjvtN8Pm0Aufgc3YZ11swaEY6nkRNr3bfkTpcORLoPDSgy9JB1feSdu\nE45vgI2LWQ34CQyT1jM7rpd6XVqeWos4SC2KB5UOh+ji40piG9TchT0fwwKBgA/M\nmpMTTvhGKSqzzLkbaeR6W11sI7tFmu7hdFN9Y/THTeO5l7vcy6ri9FMWEjBvnUEZ\nTG+HWG9CquzWoVWcgNPZ0anFV7+2Teo3j2E0cLKGJ4aKwhb1bcFAOpbaOxdxQ4BH\nYGDaeo7ucM4VJ4TzfAJs2stJjwlPzgknpoQddjJfAoGBAIFfnU8x/SrNhAqZrG9d\n3kpJ5LmbVswOYtj01KHM+KpEwOQVF+s2NOeHqyC7QUIWrue00+1MT88F9cNHDeWk\n0dEOJNWCfzcV85l8A+0p6/4qAW7h7RNiFqeA8GyVKCT8f7fu/7WpYw8D0aq8w5X/\nKZl+AjB+MzYFs71+SC4ohTlI\n-----END PRIVATE KEY-----`),\n\t\t\tCertificate: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIDpDCCAoygAwIBAgIJAIUvym0uaBHbMA0GCSqGSIb3DQEBCwUAMD0xCzAJBgNV\nBAYTAlJVMQ8wDQYDVQQIDAZNT1NDT1cxCzAJBgNVBAoMAkNBMRAwDgYDVQQDDAdS\nT09UIENBMB4XDTIxMDczMDE1MTU0NVoXDTMxMDcyODE1MTU0NVowTDELMAkGA1UE\nBhMCQ0ExDTALBgNVBAgMBE5vbmUxCzAJBgNVBAcMAk5CMQ0wCwYDVQQKDAROb25l\nMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQDQ4E6U0vql4EST8o41TlHRz6MKmMhddVUjM2juTKjxv4WuB4T3z/wokznE\njQg4H7gfYEKeCJqelrfqtdOtbPsznSceMOXB5uA2Sc9WVKwk7owoRJxPd4LQeOca\nrVOFdIzudzkgSK/oV7ZaL8Y2hylsB4SX2cfbULtmW/WDePp3YZAL6zYV1fXJSnK+\nhL2iUSqikiViEGRta+47naTKZnnmSgojdshzsw0wlF/PgRJ/Anf9j9J8ratdJP81\nyAG5daU3L2NdJ3qx9UbVtKnSq2z2u4yx6xdb4t4WFQBKNjC6+YZN/gI5lp96p3FN\nTNS4PKYxAAUrnCwf0EE37dOR4eWlAgMBAAGjgZcwgZQwVwYDVR0jBFAwTqFBpD8w\nPTELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1PU0NPVzELMAkGA1UECgwCQ0ExEDAO\nBgNVBAMMB1JPT1QgQ0GCCQCectJTETy4lTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE\n8DAhBgNVHREEGjAYgglsb2NhbGhvc3SCCyoubG9jYWxob3N0MA0GCSqGSIb3DQEB\nCwUAA4IBAQBqzJcwygLsVCTPlReUpcKVn84aFqzfZA0m7hYvH+7PDH/FM8SbX3zg\nteBL/PgQAZw1amO8xjeMc2Pe2kvi9VrpfTeGqNia/9axhGu3q/NEP0tyDFXAE2bR\njBdGhd5gCmg+X4WdHigCgn51cz5r2k3fSOIWP+TQWHqc8Yt+vZXnkwnQkRA1Ki7N\nWOiJjj/ae5RWwma/kJNmShTZn754gbQn06bAjNbPjclsHRLkawmLqikd1rYUhIdk\nOr1Nrl+CWMx3CXg0TVVdJ6rH3dO31uyvb+3qEY7WnL+HhZyr08ay8gJsEKPuPFA2\nxvveXqt9ceU5qh+8T7mHwGALEUw96QcP\n-----END CERTIFICATE-----`),\n\t\t\tCertificateChain: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIC9jCCAd4CCQCectJTETy4lTANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQGEwJS\nVTEPMA0GA1UECAwGTU9TQ09XMQswCQYDVQQKDAJDQTEQMA4GA1UEAwwHUk9PVCBD\nQTAeFw0yMTA3MzAxNTExMzVaFw0yNDA1MTkxNTExMzVaMD0xCzAJBgNVBAYTAlJV\nMQ8wDQYDVQQIDAZNT1NDT1cxCzAJBgNVBAoMAkNBMRAwDgYDVQQDDAdST09UIENB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo6tZ0NV6QIR/mvsqtAII\nzTTuBMrZR5OTwKvcGnhe4GVDwzJ/OgEWkghLAzOojcJvkfzJOtWwOXqwgphksc+7\n+vwIPTPt3iWjbQUzXK8pFLkjxrO8px/QxPuUrp+U6DTVvvgQesjMZ9jQRUFKOiCc\nu0st1N5Q/CJR4VOJxtYoLy1ZUlsABhwJ+6trkoOFTLRPlMUX1EIG57jYAotHvQFo\nc8UNx3KzvJsJJ56SniXCIkeu61IOt8aOXHU+3TLYhZnPiP311cMbXA0J3vGPRZwz\n25BZjF3IF/ShXlfzz76FjWUTAThc0+HA8lzx53xD4/n8HN+sGubGx9TvLyZimG/U\nGwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAnK8Wzw33fR6R6pqV05XI9Yu8J+BwC\nCn2bKxxYwwQWZyX1as+UIlGuvyBRJba9W2UGMj95FQfWVdDyFC98spUur+O/5yL+\nNHH+dxGnkxIRc6RMIy+GXJwPrLiB/t70hSvwgVa249zNJVcwYN/5SGX5wLaJKnim\neY99xm75nr03O/RJK/DR8HvWysH7zxvrMWs0ppfwxkxrwOcg0Cb9xODVkg/wyClw\nLiHWlmH/eyC8nkiLYJKmV7566VWCV+gy+hC/DRstVVjIMG6LsqaPq6ycm7N8EV8s\nBb5uXIVHW6w5a20c40+W9G4EDYiQjdgEaf0FoMAWGDnOEaPsvjQk2/z5\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIDPDCCAiQCCQDxA75ydLHVoTANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJS\nVTEPMA0GA1UECAwGTU9TQ09XMQ8wDQYDVQQHDAZNT1NDT1cxFTATBgNVBAoMDElO\nVEVSTUVESUFURTEYMBYGA1UEAwwPSU5URVJNRURJQVRFIENBMB4XDTIxMDczMDE1\nMTIyMloXDTI0MDUxOTE1MTIyMlowYDELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1P\nU0NPVzEPMA0GA1UEBwwGTU9TQ09XMRUwEwYDVQQKDAxJTlRFUk1FRElBVEUxGDAW\nBgNVBAMMD0lOVEVSTUVESUFURSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC\nAQoCggEBAKOrWdDVekCEf5r7KrQCCM007gTK2UeTk8Cr3Bp4XuBlQ8MyfzoBFpII\nSwMzqI3Cb5H8yTrVsDl6sIKYZLHPu/r8CD0z7d4lo20FM1yvKRS5I8azvKcf0MT7\nlK6flOg01b74EHrIzGfY0EVBSjognLtLLdTeUPwiUeFTicbWKC8tWVJbAAYcCfur\na5KDhUy0T5TFF9RCBue42AKLR70BaHPFDcdys7ybCSeekp4lwiJHrutSDrfGjlx1\nPt0y2IWZz4j99dXDG1wNCd7xj0WcM9uQWYxdyBf0oV5X88++hY1lEwE4XNPhwPJc\n8ed8Q+P5/BzfrBrmxsfU7y8mYphv1BsCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEA\ngOHvrh66+bQoG3Lo8bfp7D1Xvm/Md3gJq2nMotl2BH1TvNzMV93fCXygRX8J8rTL\n7xjUC2SbOrFDWFq2hNJQagdecAeuG+U55BY6Wi8SsHw+fhgxQyl9wtXWwotQPmsD\nuRhR1rL3vEphgPLbxNBzA7Lvj+P89Ar988Qy+o5AiUzHMUuqZbGOqs8UcKCQP7e/\nIX+zqqFwqyI8f90SVySGgs574jo8jQFy3l5fnp6yK0MPWg2cBCjpa5H1A+5DADF+\nnryV6Ie/m/wfxmitZZN+YCJu+8Bmmdl/FCwbmiH+HCLhrO8gonH3K21cQujMyFF5\nc7OFj86hvhqbr4kzz1J8lg==\n-----END CERTIFICATE-----`),\n\t\t\tExpiration: pulumi.String(\"2025-12-28T19:14:44.213\"),\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.Secret;\nimport com.pulumi.gcore.SecretArgs;\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 lbHttps = new Secret(\"lbHttps\", SecretArgs.builder()\n            .regionId(1.0)\n            .projectId(1.0)\n            .name(\"test\")\n            .privateKey(\"\"\"\n-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDQ4E6U0vql4EST\n8o41TlHRz6MKmMhddVUjM2juTKjxv4WuB4T3z/wokznEjQg4H7gfYEKeCJqelrfq\ntdOtbPsznSceMOXB5uA2Sc9WVKwk7owoRJxPd4LQeOcarVOFdIzudzkgSK/oV7Za\nL8Y2hylsB4SX2cfbULtmW/WDePp3YZAL6zYV1fXJSnK+hL2iUSqikiViEGRta+47\nnaTKZnnmSgojdshzsw0wlF/PgRJ/Anf9j9J8ratdJP81yAG5daU3L2NdJ3qx9UbV\ntKnSq2z2u4yx6xdb4t4WFQBKNjC6+YZN/gI5lp96p3FNTNS4PKYxAAUrnCwf0EE3\n7dOR4eWlAgMBAAECggEBALPm3ge0h4li1e4PVYh4AmSRT74KxVgpfMCqwM+uWzyM\nVpkDhPTjwC06UOEHD3M3bqAninkOtA2vhoyzOrP+T4Wu70hDmUAemDJp9BhJKVNN\n2o28Olz/dD4WRAZoDq29Kr0hFqTFtiyJj1eyGihQ1c5j00HuowI0UJPi1Fz+T8uN\nPwukUtTPYwEds6SApii3v9VKjmvbRDmsbHU3KkUoaeqpRnRagyp1vtoLXigezUcK\nrQcoh6wlKtvj0YLR2lxq9Wmj1nn6m3F5Bom54X8o18tcOmFSRudRb+Fxjb0jnqSK\nAsyVlZg4alTBQUmx9gIKv0oSJAIh2nXdclECkGjs8WkCgYEA9xvdDWephsbv+X3k\nndnDG9JTxfrR6HMHPrUrTaZ8/VD+Qw4zuReoNGkcQbV3Cb26egprWQWfYc9+l6mU\nAWgOjFgeGie1uwOwkhv6CfhE/iVvotJ3hOOsC5pLEhz4vRpO75C9wSehjfTYkP1m\nXEAhRTRbgMnvzChWyh5CEjosX5sCgYEA2GRHrG0JVxsYSCugLPKf9fSK4CQDm0bK\nywBwZtAWX0xhiHO/BW6PeK1Mqx2nbiWl1hXNpZKJNS9bnrZWym/yUqOvg2XJKjb6\nhHBvwAD1MOQ8Ysby4JHGCrMBEwlcDpI2wpMpXkKhU3X0XWjkqrhqCH/TETFKkqLt\nfJX/c9PTQ78CgYAEPek0grQJST7zVHLpNsS/pIOloWGbEOZt8CQ3KAV7P7mtov/G\nTJ6pj6hZhGjvtN8Pm0Aufgc3YZ11swaEY6nkRNr3bfkTpcORLoPDSgy9JB1feSdu\nE45vgI2LWQ34CQyT1jM7rpd6XVqeWos4SC2KB5UOh+ji40piG9TchT0fwwKBgA/M\nmpMTTvhGKSqzzLkbaeR6W11sI7tFmu7hdFN9Y/THTeO5l7vcy6ri9FMWEjBvnUEZ\nTG+HWG9CquzWoVWcgNPZ0anFV7+2Teo3j2E0cLKGJ4aKwhb1bcFAOpbaOxdxQ4BH\nYGDaeo7ucM4VJ4TzfAJs2stJjwlPzgknpoQddjJfAoGBAIFfnU8x/SrNhAqZrG9d\n3kpJ5LmbVswOYtj01KHM+KpEwOQVF+s2NOeHqyC7QUIWrue00+1MT88F9cNHDeWk\n0dEOJNWCfzcV85l8A+0p6/4qAW7h7RNiFqeA8GyVKCT8f7fu/7WpYw8D0aq8w5X/\nKZl+AjB+MzYFs71+SC4ohTlI\n-----END PRIVATE KEY-----            \"\"\")\n            .certificate(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIDpDCCAoygAwIBAgIJAIUvym0uaBHbMA0GCSqGSIb3DQEBCwUAMD0xCzAJBgNV\nBAYTAlJVMQ8wDQYDVQQIDAZNT1NDT1cxCzAJBgNVBAoMAkNBMRAwDgYDVQQDDAdS\nT09UIENBMB4XDTIxMDczMDE1MTU0NVoXDTMxMDcyODE1MTU0NVowTDELMAkGA1UE\nBhMCQ0ExDTALBgNVBAgMBE5vbmUxCzAJBgNVBAcMAk5CMQ0wCwYDVQQKDAROb25l\nMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQDQ4E6U0vql4EST8o41TlHRz6MKmMhddVUjM2juTKjxv4WuB4T3z/wokznE\njQg4H7gfYEKeCJqelrfqtdOtbPsznSceMOXB5uA2Sc9WVKwk7owoRJxPd4LQeOca\nrVOFdIzudzkgSK/oV7ZaL8Y2hylsB4SX2cfbULtmW/WDePp3YZAL6zYV1fXJSnK+\nhL2iUSqikiViEGRta+47naTKZnnmSgojdshzsw0wlF/PgRJ/Anf9j9J8ratdJP81\nyAG5daU3L2NdJ3qx9UbVtKnSq2z2u4yx6xdb4t4WFQBKNjC6+YZN/gI5lp96p3FN\nTNS4PKYxAAUrnCwf0EE37dOR4eWlAgMBAAGjgZcwgZQwVwYDVR0jBFAwTqFBpD8w\nPTELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1PU0NPVzELMAkGA1UECgwCQ0ExEDAO\nBgNVBAMMB1JPT1QgQ0GCCQCectJTETy4lTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE\n8DAhBgNVHREEGjAYgglsb2NhbGhvc3SCCyoubG9jYWxob3N0MA0GCSqGSIb3DQEB\nCwUAA4IBAQBqzJcwygLsVCTPlReUpcKVn84aFqzfZA0m7hYvH+7PDH/FM8SbX3zg\nteBL/PgQAZw1amO8xjeMc2Pe2kvi9VrpfTeGqNia/9axhGu3q/NEP0tyDFXAE2bR\njBdGhd5gCmg+X4WdHigCgn51cz5r2k3fSOIWP+TQWHqc8Yt+vZXnkwnQkRA1Ki7N\nWOiJjj/ae5RWwma/kJNmShTZn754gbQn06bAjNbPjclsHRLkawmLqikd1rYUhIdk\nOr1Nrl+CWMx3CXg0TVVdJ6rH3dO31uyvb+3qEY7WnL+HhZyr08ay8gJsEKPuPFA2\nxvveXqt9ceU5qh+8T7mHwGALEUw96QcP\n-----END CERTIFICATE-----            \"\"\")\n            .certificateChain(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIC9jCCAd4CCQCectJTETy4lTANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQGEwJS\nVTEPMA0GA1UECAwGTU9TQ09XMQswCQYDVQQKDAJDQTEQMA4GA1UEAwwHUk9PVCBD\nQTAeFw0yMTA3MzAxNTExMzVaFw0yNDA1MTkxNTExMzVaMD0xCzAJBgNVBAYTAlJV\nMQ8wDQYDVQQIDAZNT1NDT1cxCzAJBgNVBAoMAkNBMRAwDgYDVQQDDAdST09UIENB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo6tZ0NV6QIR/mvsqtAII\nzTTuBMrZR5OTwKvcGnhe4GVDwzJ/OgEWkghLAzOojcJvkfzJOtWwOXqwgphksc+7\n+vwIPTPt3iWjbQUzXK8pFLkjxrO8px/QxPuUrp+U6DTVvvgQesjMZ9jQRUFKOiCc\nu0st1N5Q/CJR4VOJxtYoLy1ZUlsABhwJ+6trkoOFTLRPlMUX1EIG57jYAotHvQFo\nc8UNx3KzvJsJJ56SniXCIkeu61IOt8aOXHU+3TLYhZnPiP311cMbXA0J3vGPRZwz\n25BZjF3IF/ShXlfzz76FjWUTAThc0+HA8lzx53xD4/n8HN+sGubGx9TvLyZimG/U\nGwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAnK8Wzw33fR6R6pqV05XI9Yu8J+BwC\nCn2bKxxYwwQWZyX1as+UIlGuvyBRJba9W2UGMj95FQfWVdDyFC98spUur+O/5yL+\nNHH+dxGnkxIRc6RMIy+GXJwPrLiB/t70hSvwgVa249zNJVcwYN/5SGX5wLaJKnim\neY99xm75nr03O/RJK/DR8HvWysH7zxvrMWs0ppfwxkxrwOcg0Cb9xODVkg/wyClw\nLiHWlmH/eyC8nkiLYJKmV7566VWCV+gy+hC/DRstVVjIMG6LsqaPq6ycm7N8EV8s\nBb5uXIVHW6w5a20c40+W9G4EDYiQjdgEaf0FoMAWGDnOEaPsvjQk2/z5\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIDPDCCAiQCCQDxA75ydLHVoTANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJS\nVTEPMA0GA1UECAwGTU9TQ09XMQ8wDQYDVQQHDAZNT1NDT1cxFTATBgNVBAoMDElO\nVEVSTUVESUFURTEYMBYGA1UEAwwPSU5URVJNRURJQVRFIENBMB4XDTIxMDczMDE1\nMTIyMloXDTI0MDUxOTE1MTIyMlowYDELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1P\nU0NPVzEPMA0GA1UEBwwGTU9TQ09XMRUwEwYDVQQKDAxJTlRFUk1FRElBVEUxGDAW\nBgNVBAMMD0lOVEVSTUVESUFURSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC\nAQoCggEBAKOrWdDVekCEf5r7KrQCCM007gTK2UeTk8Cr3Bp4XuBlQ8MyfzoBFpII\nSwMzqI3Cb5H8yTrVsDl6sIKYZLHPu/r8CD0z7d4lo20FM1yvKRS5I8azvKcf0MT7\nlK6flOg01b74EHrIzGfY0EVBSjognLtLLdTeUPwiUeFTicbWKC8tWVJbAAYcCfur\na5KDhUy0T5TFF9RCBue42AKLR70BaHPFDcdys7ybCSeekp4lwiJHrutSDrfGjlx1\nPt0y2IWZz4j99dXDG1wNCd7xj0WcM9uQWYxdyBf0oV5X88++hY1lEwE4XNPhwPJc\n8ed8Q+P5/BzfrBrmxsfU7y8mYphv1BsCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEA\ngOHvrh66+bQoG3Lo8bfp7D1Xvm/Md3gJq2nMotl2BH1TvNzMV93fCXygRX8J8rTL\n7xjUC2SbOrFDWFq2hNJQagdecAeuG+U55BY6Wi8SsHw+fhgxQyl9wtXWwotQPmsD\nuRhR1rL3vEphgPLbxNBzA7Lvj+P89Ar988Qy+o5AiUzHMUuqZbGOqs8UcKCQP7e/\nIX+zqqFwqyI8f90SVySGgs574jo8jQFy3l5fnp6yK0MPWg2cBCjpa5H1A+5DADF+\nnryV6Ie/m/wfxmitZZN+YCJu+8Bmmdl/FCwbmiH+HCLhrO8gonH3K21cQujMyFF5\nc7OFj86hvhqbr4kzz1J8lg==\n-----END CERTIFICATE-----            \"\"\")\n            .expiration(\"2025-12-28T19:14:44.213\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  lbHttps:\n    type: gcore:Secret\n    name: lb_https\n    properties:\n      regionId: 1\n      projectId: 1\n      name: test\n      privateKey: |-\n        -----BEGIN PRIVATE KEY-----\n        MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDQ4E6U0vql4EST\n        8o41TlHRz6MKmMhddVUjM2juTKjxv4WuB4T3z/wokznEjQg4H7gfYEKeCJqelrfq\n        tdOtbPsznSceMOXB5uA2Sc9WVKwk7owoRJxPd4LQeOcarVOFdIzudzkgSK/oV7Za\n        L8Y2hylsB4SX2cfbULtmW/WDePp3YZAL6zYV1fXJSnK+hL2iUSqikiViEGRta+47\n        naTKZnnmSgojdshzsw0wlF/PgRJ/Anf9j9J8ratdJP81yAG5daU3L2NdJ3qx9UbV\n        tKnSq2z2u4yx6xdb4t4WFQBKNjC6+YZN/gI5lp96p3FNTNS4PKYxAAUrnCwf0EE3\n        7dOR4eWlAgMBAAECggEBALPm3ge0h4li1e4PVYh4AmSRT74KxVgpfMCqwM+uWzyM\n        VpkDhPTjwC06UOEHD3M3bqAninkOtA2vhoyzOrP+T4Wu70hDmUAemDJp9BhJKVNN\n        2o28Olz/dD4WRAZoDq29Kr0hFqTFtiyJj1eyGihQ1c5j00HuowI0UJPi1Fz+T8uN\n        PwukUtTPYwEds6SApii3v9VKjmvbRDmsbHU3KkUoaeqpRnRagyp1vtoLXigezUcK\n        rQcoh6wlKtvj0YLR2lxq9Wmj1nn6m3F5Bom54X8o18tcOmFSRudRb+Fxjb0jnqSK\n        AsyVlZg4alTBQUmx9gIKv0oSJAIh2nXdclECkGjs8WkCgYEA9xvdDWephsbv+X3k\n        ndnDG9JTxfrR6HMHPrUrTaZ8/VD+Qw4zuReoNGkcQbV3Cb26egprWQWfYc9+l6mU\n        AWgOjFgeGie1uwOwkhv6CfhE/iVvotJ3hOOsC5pLEhz4vRpO75C9wSehjfTYkP1m\n        XEAhRTRbgMnvzChWyh5CEjosX5sCgYEA2GRHrG0JVxsYSCugLPKf9fSK4CQDm0bK\n        ywBwZtAWX0xhiHO/BW6PeK1Mqx2nbiWl1hXNpZKJNS9bnrZWym/yUqOvg2XJKjb6\n        hHBvwAD1MOQ8Ysby4JHGCrMBEwlcDpI2wpMpXkKhU3X0XWjkqrhqCH/TETFKkqLt\n        fJX/c9PTQ78CgYAEPek0grQJST7zVHLpNsS/pIOloWGbEOZt8CQ3KAV7P7mtov/G\n        TJ6pj6hZhGjvtN8Pm0Aufgc3YZ11swaEY6nkRNr3bfkTpcORLoPDSgy9JB1feSdu\n        E45vgI2LWQ34CQyT1jM7rpd6XVqeWos4SC2KB5UOh+ji40piG9TchT0fwwKBgA/M\n        mpMTTvhGKSqzzLkbaeR6W11sI7tFmu7hdFN9Y/THTeO5l7vcy6ri9FMWEjBvnUEZ\n        TG+HWG9CquzWoVWcgNPZ0anFV7+2Teo3j2E0cLKGJ4aKwhb1bcFAOpbaOxdxQ4BH\n        YGDaeo7ucM4VJ4TzfAJs2stJjwlPzgknpoQddjJfAoGBAIFfnU8x/SrNhAqZrG9d\n        3kpJ5LmbVswOYtj01KHM+KpEwOQVF+s2NOeHqyC7QUIWrue00+1MT88F9cNHDeWk\n        0dEOJNWCfzcV85l8A+0p6/4qAW7h7RNiFqeA8GyVKCT8f7fu/7WpYw8D0aq8w5X/\n        KZl+AjB+MzYFs71+SC4ohTlI\n        -----END PRIVATE KEY-----\n      certificate: |-\n        -----BEGIN CERTIFICATE-----\n        MIIDpDCCAoygAwIBAgIJAIUvym0uaBHbMA0GCSqGSIb3DQEBCwUAMD0xCzAJBgNV\n        BAYTAlJVMQ8wDQYDVQQIDAZNT1NDT1cxCzAJBgNVBAoMAkNBMRAwDgYDVQQDDAdS\n        T09UIENBMB4XDTIxMDczMDE1MTU0NVoXDTMxMDcyODE1MTU0NVowTDELMAkGA1UE\n        BhMCQ0ExDTALBgNVBAgMBE5vbmUxCzAJBgNVBAcMAk5CMQ0wCwYDVQQKDAROb25l\n        MRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n        AoIBAQDQ4E6U0vql4EST8o41TlHRz6MKmMhddVUjM2juTKjxv4WuB4T3z/wokznE\n        jQg4H7gfYEKeCJqelrfqtdOtbPsznSceMOXB5uA2Sc9WVKwk7owoRJxPd4LQeOca\n        rVOFdIzudzkgSK/oV7ZaL8Y2hylsB4SX2cfbULtmW/WDePp3YZAL6zYV1fXJSnK+\n        hL2iUSqikiViEGRta+47naTKZnnmSgojdshzsw0wlF/PgRJ/Anf9j9J8ratdJP81\n        yAG5daU3L2NdJ3qx9UbVtKnSq2z2u4yx6xdb4t4WFQBKNjC6+YZN/gI5lp96p3FN\n        TNS4PKYxAAUrnCwf0EE37dOR4eWlAgMBAAGjgZcwgZQwVwYDVR0jBFAwTqFBpD8w\n        PTELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1PU0NPVzELMAkGA1UECgwCQ0ExEDAO\n        BgNVBAMMB1JPT1QgQ0GCCQCectJTETy4lTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE\n        8DAhBgNVHREEGjAYgglsb2NhbGhvc3SCCyoubG9jYWxob3N0MA0GCSqGSIb3DQEB\n        CwUAA4IBAQBqzJcwygLsVCTPlReUpcKVn84aFqzfZA0m7hYvH+7PDH/FM8SbX3zg\n        teBL/PgQAZw1amO8xjeMc2Pe2kvi9VrpfTeGqNia/9axhGu3q/NEP0tyDFXAE2bR\n        jBdGhd5gCmg+X4WdHigCgn51cz5r2k3fSOIWP+TQWHqc8Yt+vZXnkwnQkRA1Ki7N\n        WOiJjj/ae5RWwma/kJNmShTZn754gbQn06bAjNbPjclsHRLkawmLqikd1rYUhIdk\n        Or1Nrl+CWMx3CXg0TVVdJ6rH3dO31uyvb+3qEY7WnL+HhZyr08ay8gJsEKPuPFA2\n        xvveXqt9ceU5qh+8T7mHwGALEUw96QcP\n        -----END CERTIFICATE-----\n      certificateChain: |-\n        -----BEGIN CERTIFICATE-----\n        MIIC9jCCAd4CCQCectJTETy4lTANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQGEwJS\n        VTEPMA0GA1UECAwGTU9TQ09XMQswCQYDVQQKDAJDQTEQMA4GA1UEAwwHUk9PVCBD\n        QTAeFw0yMTA3MzAxNTExMzVaFw0yNDA1MTkxNTExMzVaMD0xCzAJBgNVBAYTAlJV\n        MQ8wDQYDVQQIDAZNT1NDT1cxCzAJBgNVBAoMAkNBMRAwDgYDVQQDDAdST09UIENB\n        MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo6tZ0NV6QIR/mvsqtAII\n        zTTuBMrZR5OTwKvcGnhe4GVDwzJ/OgEWkghLAzOojcJvkfzJOtWwOXqwgphksc+7\n        +vwIPTPt3iWjbQUzXK8pFLkjxrO8px/QxPuUrp+U6DTVvvgQesjMZ9jQRUFKOiCc\n        u0st1N5Q/CJR4VOJxtYoLy1ZUlsABhwJ+6trkoOFTLRPlMUX1EIG57jYAotHvQFo\n        c8UNx3KzvJsJJ56SniXCIkeu61IOt8aOXHU+3TLYhZnPiP311cMbXA0J3vGPRZwz\n        25BZjF3IF/ShXlfzz76FjWUTAThc0+HA8lzx53xD4/n8HN+sGubGx9TvLyZimG/U\n        GwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAnK8Wzw33fR6R6pqV05XI9Yu8J+BwC\n        Cn2bKxxYwwQWZyX1as+UIlGuvyBRJba9W2UGMj95FQfWVdDyFC98spUur+O/5yL+\n        NHH+dxGnkxIRc6RMIy+GXJwPrLiB/t70hSvwgVa249zNJVcwYN/5SGX5wLaJKnim\n        eY99xm75nr03O/RJK/DR8HvWysH7zxvrMWs0ppfwxkxrwOcg0Cb9xODVkg/wyClw\n        LiHWlmH/eyC8nkiLYJKmV7566VWCV+gy+hC/DRstVVjIMG6LsqaPq6ycm7N8EV8s\n        Bb5uXIVHW6w5a20c40+W9G4EDYiQjdgEaf0FoMAWGDnOEaPsvjQk2/z5\n        -----END CERTIFICATE-----\n        -----BEGIN CERTIFICATE-----\n        MIIDPDCCAiQCCQDxA75ydLHVoTANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJS\n        VTEPMA0GA1UECAwGTU9TQ09XMQ8wDQYDVQQHDAZNT1NDT1cxFTATBgNVBAoMDElO\n        VEVSTUVESUFURTEYMBYGA1UEAwwPSU5URVJNRURJQVRFIENBMB4XDTIxMDczMDE1\n        MTIyMloXDTI0MDUxOTE1MTIyMlowYDELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1P\n        U0NPVzEPMA0GA1UEBwwGTU9TQ09XMRUwEwYDVQQKDAxJTlRFUk1FRElBVEUxGDAW\n        BgNVBAMMD0lOVEVSTUVESUFURSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC\n        AQoCggEBAKOrWdDVekCEf5r7KrQCCM007gTK2UeTk8Cr3Bp4XuBlQ8MyfzoBFpII\n        SwMzqI3Cb5H8yTrVsDl6sIKYZLHPu/r8CD0z7d4lo20FM1yvKRS5I8azvKcf0MT7\n        lK6flOg01b74EHrIzGfY0EVBSjognLtLLdTeUPwiUeFTicbWKC8tWVJbAAYcCfur\n        a5KDhUy0T5TFF9RCBue42AKLR70BaHPFDcdys7ybCSeekp4lwiJHrutSDrfGjlx1\n        Pt0y2IWZz4j99dXDG1wNCd7xj0WcM9uQWYxdyBf0oV5X88++hY1lEwE4XNPhwPJc\n        8ed8Q+P5/BzfrBrmxsfU7y8mYphv1BsCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEA\n        gOHvrh66+bQoG3Lo8bfp7D1Xvm/Md3gJq2nMotl2BH1TvNzMV93fCXygRX8J8rTL\n        7xjUC2SbOrFDWFq2hNJQagdecAeuG+U55BY6Wi8SsHw+fhgxQyl9wtXWwotQPmsD\n        uRhR1rL3vEphgPLbxNBzA7Lvj+P89Ar988Qy+o5AiUzHMUuqZbGOqs8UcKCQP7e/\n        IX+zqqFwqyI8f90SVySGgs574jo8jQFy3l5fnp6yK0MPWg2cBCjpa5H1A+5DADF+\n        nryV6Ie/m/wfxmitZZN+YCJu+8Bmmdl/FCwbmiH+HCLhrO8gonH3K21cQujMyFF5\n        c7OFj86hvhqbr4kzz1J8lg==\n        -----END CERTIFICATE-----\n      expiration: 2025-12-28T19:14:44.213\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003csecret_id\u003e format\n\n```sh\n$ pulumi import gcore:index/secret:Secret secret_id 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"algorithm":{"type":"string"},"bitLength":{"type":"number"},"certificate":{"type":"string","description":"SSL certificate in PEM format\n"},"certificateChain":{"type":"string","description":"SSL certificate chain of intermediates and root certificates in PEM format\n"},"contentTypes":{"type":"object","additionalProperties":{"type":"string"}},"created":{"type":"string","description":"Datetime when the secret was created. The format is 2025-12-28T19:14:44.180394\n"},"expiration":{"type":"string","description":"Datetime when the secret will expire. The format is 2025-12-28T19:14:44\n"},"mode":{"type":"string"},"name":{"type":"string"},"privateKey":{"type":"string","description":"SSL private key in PEM format\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"secretId":{"type":"string","description":"The ID of this resource.\n"},"status":{"type":"string"}},"type":"object","required":["algorithm","bitLength","certificate","certificateChain","contentTypes","created","expiration","mode","name","privateKey","secretId","status"],"inputProperties":{"certificate":{"type":"string","description":"SSL certificate in PEM format\n"},"certificateChain":{"type":"string","description":"SSL certificate chain of intermediates and root certificates in PEM format\n"},"expiration":{"type":"string","description":"Datetime when the secret will expire. The format is 2025-12-28T19:14:44\n"},"name":{"type":"string"},"privateKey":{"type":"string","description":"SSL private key in PEM format\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"secretId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["certificate","certificateChain","privateKey"],"stateInputs":{"description":"Input properties used for looking up and filtering Secret resources.\n","properties":{"algorithm":{"type":"string"},"bitLength":{"type":"number"},"certificate":{"type":"string","description":"SSL certificate in PEM format\n"},"certificateChain":{"type":"string","description":"SSL certificate chain of intermediates and root certificates in PEM format\n"},"contentTypes":{"type":"object","additionalProperties":{"type":"string"}},"created":{"type":"string","description":"Datetime when the secret was created. The format is 2025-12-28T19:14:44.180394\n"},"expiration":{"type":"string","description":"Datetime when the secret will expire. The format is 2025-12-28T19:14:44\n"},"mode":{"type":"string"},"name":{"type":"string"},"privateKey":{"type":"string","description":"SSL private key in PEM format\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"secretId":{"type":"string","description":"The ID of this resource.\n"},"status":{"type":"string"}},"type":"object"}},"gcore:index/securitygroup:Securitygroup":{"description":"Represent SecurityGroups(Firewall)\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 sg = new gcore.Securitygroup(\"sg\", {\n    name: \"test sg\",\n    regionId: 1,\n    projectId: 1,\n    securityGroupRules: [\n        {\n            direction: \"egress\",\n            ethertype: \"IPv4\",\n            protocol: \"tcp\",\n            portRangeMin: 19990,\n            portRangeMax: 19990,\n        },\n        {\n            direction: \"ingress\",\n            ethertype: \"IPv4\",\n            protocol: \"tcp\",\n            portRangeMin: 19990,\n            portRangeMax: 19990,\n        },\n        {\n            direction: \"egress\",\n            ethertype: \"IPv4\",\n            protocol: \"vrrp\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nsg = gcore.Securitygroup(\"sg\",\n    name=\"test sg\",\n    region_id=1,\n    project_id=1,\n    security_group_rules=[\n        {\n            \"direction\": \"egress\",\n            \"ethertype\": \"IPv4\",\n            \"protocol\": \"tcp\",\n            \"port_range_min\": 19990,\n            \"port_range_max\": 19990,\n        },\n        {\n            \"direction\": \"ingress\",\n            \"ethertype\": \"IPv4\",\n            \"protocol\": \"tcp\",\n            \"port_range_min\": 19990,\n            \"port_range_max\": 19990,\n        },\n        {\n            \"direction\": \"egress\",\n            \"ethertype\": \"IPv4\",\n            \"protocol\": \"vrrp\",\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 sg = new Gcore.Securitygroup(\"sg\", new()\n    {\n        Name = \"test sg\",\n        RegionId = 1,\n        ProjectId = 1,\n        SecurityGroupRules = new[]\n        {\n            new Gcore.Inputs.SecuritygroupSecurityGroupRuleArgs\n            {\n                Direction = \"egress\",\n                Ethertype = \"IPv4\",\n                Protocol = \"tcp\",\n                PortRangeMin = 19990,\n                PortRangeMax = 19990,\n            },\n            new Gcore.Inputs.SecuritygroupSecurityGroupRuleArgs\n            {\n                Direction = \"ingress\",\n                Ethertype = \"IPv4\",\n                Protocol = \"tcp\",\n                PortRangeMin = 19990,\n                PortRangeMax = 19990,\n            },\n            new Gcore.Inputs.SecuritygroupSecurityGroupRuleArgs\n            {\n                Direction = \"egress\",\n                Ethertype = \"IPv4\",\n                Protocol = \"vrrp\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewSecuritygroup(ctx, \"sg\", \u0026gcore.SecuritygroupArgs{\n\t\t\tName:      pulumi.String(\"test sg\"),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tProjectId: pulumi.Float64(1),\n\t\t\tSecurityGroupRules: gcore.SecuritygroupSecurityGroupRuleArray{\n\t\t\t\t\u0026gcore.SecuritygroupSecurityGroupRuleArgs{\n\t\t\t\t\tDirection:    pulumi.String(\"egress\"),\n\t\t\t\t\tEthertype:    pulumi.String(\"IPv4\"),\n\t\t\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t\t\t\tPortRangeMin: pulumi.Float64(19990),\n\t\t\t\t\tPortRangeMax: pulumi.Float64(19990),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.SecuritygroupSecurityGroupRuleArgs{\n\t\t\t\t\tDirection:    pulumi.String(\"ingress\"),\n\t\t\t\t\tEthertype:    pulumi.String(\"IPv4\"),\n\t\t\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t\t\t\tPortRangeMin: pulumi.Float64(19990),\n\t\t\t\t\tPortRangeMax: pulumi.Float64(19990),\n\t\t\t\t},\n\t\t\t\t\u0026gcore.SecuritygroupSecurityGroupRuleArgs{\n\t\t\t\t\tDirection: pulumi.String(\"egress\"),\n\t\t\t\t\tEthertype: pulumi.String(\"IPv4\"),\n\t\t\t\t\tProtocol:  pulumi.String(\"vrrp\"),\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.Securitygroup;\nimport com.pulumi.gcore.SecuritygroupArgs;\nimport com.pulumi.gcore.inputs.SecuritygroupSecurityGroupRuleArgs;\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 sg = new Securitygroup(\"sg\", SecuritygroupArgs.builder()\n            .name(\"test sg\")\n            .regionId(1.0)\n            .projectId(1.0)\n            .securityGroupRules(            \n                SecuritygroupSecurityGroupRuleArgs.builder()\n                    .direction(\"egress\")\n                    .ethertype(\"IPv4\")\n                    .protocol(\"tcp\")\n                    .portRangeMin(19990.0)\n                    .portRangeMax(19990.0)\n                    .build(),\n                SecuritygroupSecurityGroupRuleArgs.builder()\n                    .direction(\"ingress\")\n                    .ethertype(\"IPv4\")\n                    .protocol(\"tcp\")\n                    .portRangeMin(19990.0)\n                    .portRangeMax(19990.0)\n                    .build(),\n                SecuritygroupSecurityGroupRuleArgs.builder()\n                    .direction(\"egress\")\n                    .ethertype(\"IPv4\")\n                    .protocol(\"vrrp\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  sg:\n    type: gcore:Securitygroup\n    properties:\n      name: test sg\n      regionId: 1\n      projectId: 1\n      securityGroupRules:\n        - direction: egress\n          ethertype: IPv4\n          protocol: tcp\n          portRangeMin: 19990\n          portRangeMax: 19990\n        - direction: ingress\n          ethertype: IPv4\n          protocol: tcp\n          portRangeMin: 19990\n          portRangeMax: 19990\n        - direction: egress\n          ethertype: IPv4\n          protocol: vrrp\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003csecuritygroup_id\u003e format\n\n```sh\n$ pulumi import gcore:index/securitygroup:Securitygroup securitygroup1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"description":{"type":"string"},"lastUpdated":{"type":"string"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"}},"metadataReadOnlies":{"type":"array","items":{"$ref":"#/types/gcore:index%2FSecuritygroupMetadataReadOnly:SecuritygroupMetadataReadOnly"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"securityGroupRules":{"type":"array","items":{"$ref":"#/types/gcore:index%2FSecuritygroupSecurityGroupRule:SecuritygroupSecurityGroupRule"},"description":"Firewall rules control what inbound(ingress) and outbound(egress) traffic is allowed to enter or leave a Instance. At least one 'egress' rule should be set\n"},"securitygroupId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["lastUpdated","metadataReadOnlies","name","securityGroupRules","securitygroupId"],"inputProperties":{"description":{"type":"string"},"lastUpdated":{"type":"string"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"securityGroupRules":{"type":"array","items":{"$ref":"#/types/gcore:index%2FSecuritygroupSecurityGroupRule:SecuritygroupSecurityGroupRule"},"description":"Firewall rules control what inbound(ingress) and outbound(egress) traffic is allowed to enter or leave a Instance. At least one 'egress' rule should be set\n"},"securitygroupId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["securityGroupRules"],"stateInputs":{"description":"Input properties used for looking up and filtering Securitygroup resources.\n","properties":{"description":{"type":"string"},"lastUpdated":{"type":"string"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"}},"metadataReadOnlies":{"type":"array","items":{"$ref":"#/types/gcore:index%2FSecuritygroupMetadataReadOnly:SecuritygroupMetadataReadOnly"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"securityGroupRules":{"type":"array","items":{"$ref":"#/types/gcore:index%2FSecuritygroupSecurityGroupRule:SecuritygroupSecurityGroupRule"},"description":"Firewall rules control what inbound(ingress) and outbound(egress) traffic is allowed to enter or leave a Instance. At least one 'egress' rule should be set\n"},"securitygroupId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"gcore:index/servergroup:Servergroup":{"description":"Represent server group resource\n\n## 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\nconst project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating basic server 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.Servergroup(\"servergroup\", {\n    name: \"my-servergroup\",\n    policy: \"affinity\",\n    projectId: project.id,\n    regionId: region.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nservergroup = gcore.Servergroup(\"servergroup\",\n    name=\"my-servergroup\",\n    policy=\"affinity\",\n    project_id=project[\"id\"],\n    region_id=region[\"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 servergroup = new Gcore.Servergroup(\"servergroup\", new()\n    {\n        Name = \"my-servergroup\",\n        Policy = \"affinity\",\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewServergroup(ctx, \"servergroup\", \u0026gcore.ServergroupArgs{\n\t\t\tName:      pulumi.String(\"my-servergroup\"),\n\t\t\tPolicy:    pulumi.String(\"affinity\"),\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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.Servergroup;\nimport com.pulumi.gcore.ServergroupArgs;\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 Servergroup(\"servergroup\", ServergroupArgs.builder()\n            .name(\"my-servergroup\")\n            .policy(\"affinity\")\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  servergroup:\n    type: gcore:Servergroup\n    properties:\n      name: my-servergroup\n      policy: affinity\n      projectId: ${project.id}\n      regionId: ${region.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating server group with two instances\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst ubuntu = gcore.getImage({\n    name: \"ubuntu-22.04-x64\",\n    regionId: region.id,\n    projectId: project.id,\n});\nconst bootVolume = new gcore.Volume(\"boot_volume\", {\n    name: \"my-boot-volume\",\n    typeName: \"ssd_hiiops\",\n    size: 5,\n    imageId: ubuntu.then(ubuntu =\u003e ubuntu.id),\n    projectId: project.id,\n    regionId: region.id,\n});\nconst bootVolume2 = new gcore.Volume(\"boot_volume2\", {\n    name: \"my-boot-volume2\",\n    typeName: \"ssd_hiiops\",\n    size: 5,\n    imageId: ubuntu.then(ubuntu =\u003e ubuntu.id),\n    projectId: project.id,\n    regionId: region.id,\n});\nconst instance = new gcore.Instancev2(\"instance\", {\n    flavorId: \"g1-standard-2-4\",\n    name: \"my-instance\",\n    volumes: [{\n        volumeId: bootVolume.volumeId,\n        bootIndex: 0,\n    }],\n    interfaces: [{\n        type: \"external\",\n        name: \"my-external-interface\",\n    }],\n    projectId: project.id,\n    regionId: region.id,\n});\nconst instance2 = new gcore.Instancev2(\"instance2\", {\n    flavorId: \"g1-standard-2-4\",\n    name: \"my-instance2\",\n    volumes: [{\n        volumeId: bootVolume2.volumeId,\n        bootIndex: 0,\n    }],\n    interfaces: [{\n        type: \"external\",\n        name: \"my-external-interface\",\n    }],\n    projectId: project.id,\n    regionId: region.id,\n});\nconst servergroup = new gcore.Servergroup(\"servergroup\", {\n    name: \"default\",\n    policy: \"affinity\",\n    projectId: project.id,\n    regionId: region.id,\n    instances: [\n        {\n            instanceId: instance.instancev2Id,\n        },\n        {\n            instanceId: instance2.instancev2Id,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nubuntu = gcore.get_image(name=\"ubuntu-22.04-x64\",\n    region_id=region[\"id\"],\n    project_id=project[\"id\"])\nboot_volume = gcore.Volume(\"boot_volume\",\n    name=\"my-boot-volume\",\n    type_name=\"ssd_hiiops\",\n    size=5,\n    image_id=ubuntu.id,\n    project_id=project[\"id\"],\n    region_id=region[\"id\"])\nboot_volume2 = gcore.Volume(\"boot_volume2\",\n    name=\"my-boot-volume2\",\n    type_name=\"ssd_hiiops\",\n    size=5,\n    image_id=ubuntu.id,\n    project_id=project[\"id\"],\n    region_id=region[\"id\"])\ninstance = gcore.Instancev2(\"instance\",\n    flavor_id=\"g1-standard-2-4\",\n    name=\"my-instance\",\n    volumes=[{\n        \"volume_id\": boot_volume.volume_id,\n        \"boot_index\": 0,\n    }],\n    interfaces=[{\n        \"type\": \"external\",\n        \"name\": \"my-external-interface\",\n    }],\n    project_id=project[\"id\"],\n    region_id=region[\"id\"])\ninstance2 = gcore.Instancev2(\"instance2\",\n    flavor_id=\"g1-standard-2-4\",\n    name=\"my-instance2\",\n    volumes=[{\n        \"volume_id\": boot_volume2.volume_id,\n        \"boot_index\": 0,\n    }],\n    interfaces=[{\n        \"type\": \"external\",\n        \"name\": \"my-external-interface\",\n    }],\n    project_id=project[\"id\"],\n    region_id=region[\"id\"])\nservergroup = gcore.Servergroup(\"servergroup\",\n    name=\"default\",\n    policy=\"affinity\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    instances=[\n        {\n            \"instance_id\": instance.instancev2_id,\n        },\n        {\n            \"instance_id\": instance2.instancev2_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    var ubuntu = Gcore.GetImage.Invoke(new()\n    {\n        Name = \"ubuntu-22.04-x64\",\n        RegionId = region.Id,\n        ProjectId = project.Id,\n    });\n\n    var bootVolume = new Gcore.Volume(\"boot_volume\", new()\n    {\n        Name = \"my-boot-volume\",\n        TypeName = \"ssd_hiiops\",\n        Size = 5,\n        ImageId = ubuntu.Apply(getImageResult =\u003e getImageResult.Id),\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n    var bootVolume2 = new Gcore.Volume(\"boot_volume2\", new()\n    {\n        Name = \"my-boot-volume2\",\n        TypeName = \"ssd_hiiops\",\n        Size = 5,\n        ImageId = ubuntu.Apply(getImageResult =\u003e getImageResult.Id),\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n    var instance = new Gcore.Instancev2(\"instance\", new()\n    {\n        FlavorId = \"g1-standard-2-4\",\n        Name = \"my-instance\",\n        Volumes = new[]\n        {\n            new Gcore.Inputs.Instancev2VolumeArgs\n            {\n                VolumeId = bootVolume.VolumeId,\n                BootIndex = 0,\n            },\n        },\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.Instancev2InterfaceArgs\n            {\n                Type = \"external\",\n                Name = \"my-external-interface\",\n            },\n        },\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n    var instance2 = new Gcore.Instancev2(\"instance2\", new()\n    {\n        FlavorId = \"g1-standard-2-4\",\n        Name = \"my-instance2\",\n        Volumes = new[]\n        {\n            new Gcore.Inputs.Instancev2VolumeArgs\n            {\n                VolumeId = bootVolume2.VolumeId,\n                BootIndex = 0,\n            },\n        },\n        Interfaces = new[]\n        {\n            new Gcore.Inputs.Instancev2InterfaceArgs\n            {\n                Type = \"external\",\n                Name = \"my-external-interface\",\n            },\n        },\n        ProjectId = project.Id,\n        RegionId = region.Id,\n    });\n\n    var servergroup = new Gcore.Servergroup(\"servergroup\", new()\n    {\n        Name = \"default\",\n        Policy = \"affinity\",\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Instances = new[]\n        {\n            new Gcore.Inputs.ServergroupInstanceArgs\n            {\n                InstanceId = instance.Instancev2Id,\n            },\n            new Gcore.Inputs.ServergroupInstanceArgs\n            {\n                InstanceId = instance2.Instancev2Id,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tubuntu, err := gcore.GetImage(ctx, \u0026gcore.GetImageArgs{\n\t\t\tName:      pulumi.StringRef(\"ubuntu-22.04-x64\"),\n\t\t\tRegionId:  pulumi.Float64Ref(region.Id),\n\t\t\tProjectId: pulumi.Float64Ref(project.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbootVolume, err := gcore.NewVolume(ctx, \"boot_volume\", \u0026gcore.VolumeArgs{\n\t\t\tName:      pulumi.String(\"my-boot-volume\"),\n\t\t\tTypeName:  pulumi.String(\"ssd_hiiops\"),\n\t\t\tSize:      pulumi.Float64(5),\n\t\t\tImageId:   pulumi.String(ubuntu.Id),\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbootVolume2, err := gcore.NewVolume(ctx, \"boot_volume2\", \u0026gcore.VolumeArgs{\n\t\t\tName:      pulumi.String(\"my-boot-volume2\"),\n\t\t\tTypeName:  pulumi.String(\"ssd_hiiops\"),\n\t\t\tSize:      pulumi.Float64(5),\n\t\t\tImageId:   pulumi.String(ubuntu.Id),\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := gcore.NewInstancev2(ctx, \"instance\", \u0026gcore.Instancev2Args{\n\t\t\tFlavorId: pulumi.String(\"g1-standard-2-4\"),\n\t\t\tName:     pulumi.String(\"my-instance\"),\n\t\t\tVolumes: gcore.Instancev2VolumeArray{\n\t\t\t\t\u0026gcore.Instancev2VolumeArgs{\n\t\t\t\t\tVolumeId:  bootVolume.VolumeId,\n\t\t\t\t\tBootIndex: pulumi.Float64(0),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInterfaces: gcore.Instancev2InterfaceArray{\n\t\t\t\t\u0026gcore.Instancev2InterfaceArgs{\n\t\t\t\t\tType: pulumi.String(\"external\"),\n\t\t\t\t\tName: pulumi.String(\"my-external-interface\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance2, err := gcore.NewInstancev2(ctx, \"instance2\", \u0026gcore.Instancev2Args{\n\t\t\tFlavorId: pulumi.String(\"g1-standard-2-4\"),\n\t\t\tName:     pulumi.String(\"my-instance2\"),\n\t\t\tVolumes: gcore.Instancev2VolumeArray{\n\t\t\t\t\u0026gcore.Instancev2VolumeArgs{\n\t\t\t\t\tVolumeId:  bootVolume2.VolumeId,\n\t\t\t\t\tBootIndex: pulumi.Float64(0),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInterfaces: gcore.Instancev2InterfaceArray{\n\t\t\t\t\u0026gcore.Instancev2InterfaceArgs{\n\t\t\t\t\tType: pulumi.String(\"external\"),\n\t\t\t\t\tName: pulumi.String(\"my-external-interface\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewServergroup(ctx, \"servergroup\", \u0026gcore.ServergroupArgs{\n\t\t\tName:      pulumi.String(\"default\"),\n\t\t\tPolicy:    pulumi.String(\"affinity\"),\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\n\t\t\tInstances: gcore.ServergroupInstanceArray{\n\t\t\t\t\u0026gcore.ServergroupInstanceArgs{\n\t\t\t\t\tInstanceId: instance.Instancev2Id,\n\t\t\t\t},\n\t\t\t\t\u0026gcore.ServergroupInstanceArgs{\n\t\t\t\t\tInstanceId: instance2.Instancev2Id,\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.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetImageArgs;\nimport com.pulumi.gcore.Volume;\nimport com.pulumi.gcore.VolumeArgs;\nimport com.pulumi.gcore.Instancev2;\nimport com.pulumi.gcore.Instancev2Args;\nimport com.pulumi.gcore.inputs.Instancev2VolumeArgs;\nimport com.pulumi.gcore.inputs.Instancev2InterfaceArgs;\nimport com.pulumi.gcore.Servergroup;\nimport com.pulumi.gcore.ServergroupArgs;\nimport com.pulumi.gcore.inputs.ServergroupInstanceArgs;\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 ubuntu = GcoreFunctions.getImage(GetImageArgs.builder()\n            .name(\"ubuntu-22.04-x64\")\n            .regionId(region.id())\n            .projectId(project.id())\n            .build());\n\n        var bootVolume = new Volume(\"bootVolume\", VolumeArgs.builder()\n            .name(\"my-boot-volume\")\n            .typeName(\"ssd_hiiops\")\n            .size(5.0)\n            .imageId(ubuntu.id())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        var bootVolume2 = new Volume(\"bootVolume2\", VolumeArgs.builder()\n            .name(\"my-boot-volume2\")\n            .typeName(\"ssd_hiiops\")\n            .size(5.0)\n            .imageId(ubuntu.id())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        var instance = new Instancev2(\"instance\", Instancev2Args.builder()\n            .flavorId(\"g1-standard-2-4\")\n            .name(\"my-instance\")\n            .volumes(Instancev2VolumeArgs.builder()\n                .volumeId(bootVolume.volumeId())\n                .bootIndex(0.0)\n                .build())\n            .interfaces(Instancev2InterfaceArgs.builder()\n                .type(\"external\")\n                .name(\"my-external-interface\")\n                .build())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        var instance2 = new Instancev2(\"instance2\", Instancev2Args.builder()\n            .flavorId(\"g1-standard-2-4\")\n            .name(\"my-instance2\")\n            .volumes(Instancev2VolumeArgs.builder()\n                .volumeId(bootVolume2.volumeId())\n                .bootIndex(0.0)\n                .build())\n            .interfaces(Instancev2InterfaceArgs.builder()\n                .type(\"external\")\n                .name(\"my-external-interface\")\n                .build())\n            .projectId(project.id())\n            .regionId(region.id())\n            .build());\n\n        var servergroup = new Servergroup(\"servergroup\", ServergroupArgs.builder()\n            .name(\"default\")\n            .policy(\"affinity\")\n            .projectId(project.id())\n            .regionId(region.id())\n            .instances(            \n                ServergroupInstanceArgs.builder()\n                    .instanceId(instance.instancev2Id())\n                    .build(),\n                ServergroupInstanceArgs.builder()\n                    .instanceId(instance2.instancev2Id())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bootVolume:\n    type: gcore:Volume\n    name: boot_volume\n    properties:\n      name: my-boot-volume\n      typeName: ssd_hiiops\n      size: 5\n      imageId: ${ubuntu.id}\n      projectId: ${project.id}\n      regionId: ${region.id}\n  bootVolume2:\n    type: gcore:Volume\n    name: boot_volume2\n    properties:\n      name: my-boot-volume2\n      typeName: ssd_hiiops\n      size: 5\n      imageId: ${ubuntu.id}\n      projectId: ${project.id}\n      regionId: ${region.id}\n  instance:\n    type: gcore:Instancev2\n    properties:\n      flavorId: g1-standard-2-4\n      name: my-instance\n      volumes:\n        - volumeId: ${bootVolume.volumeId}\n          bootIndex: 0\n      interfaces:\n        - type: external\n          name: my-external-interface\n      projectId: ${project.id}\n      regionId: ${region.id}\n  instance2:\n    type: gcore:Instancev2\n    properties:\n      flavorId: g1-standard-2-4\n      name: my-instance2\n      volumes:\n        - volumeId: ${bootVolume2.volumeId}\n          bootIndex: 0\n      interfaces:\n        - type: external\n          name: my-external-interface\n      projectId: ${project.id}\n      regionId: ${region.id}\n  servergroup:\n    type: gcore:Servergroup\n    properties:\n      name: default\n      policy: affinity\n      projectId: ${project.id}\n      regionId: ${region.id}\n      instances:\n        - instanceId: ${instance.instancev2Id}\n        - instanceId: ${instance2.instancev2Id}\nvariables:\n  ubuntu:\n    fn::invoke:\n      function: gcore:getImage\n      arguments:\n        name: ubuntu-22.04-x64\n        regionId: ${region.id}\n        projectId: ${project.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003cservergroup_id\u003e format\n\n```sh\n$ pulumi import gcore:index/servergroup:Servergroup servergroup1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"instances":{"type":"array","items":{"$ref":"#/types/gcore:index%2FServergroupInstance:ServergroupInstance"},"description":"Instances in this server group"},"name":{"type":"string","description":"Displayed server group name\n"},"policy":{"type":"string","description":"Server group policy. Available value is 'affinity' 'anti-affinity' 'soft-anti-affinity'.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"servergroupId":{"type":"string"}},"type":"object","required":["name","policy","servergroupId"],"inputProperties":{"instances":{"type":"array","items":{"$ref":"#/types/gcore:index%2FServergroupInstance:ServergroupInstance"},"description":"Instances in this server group"},"name":{"type":"string","description":"Displayed server group name\n"},"policy":{"type":"string","description":"Server group policy. Available value is 'affinity' 'anti-affinity' 'soft-anti-affinity'.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"servergroupId":{"type":"string"}},"requiredInputs":["policy"],"stateInputs":{"description":"Input properties used for looking up and filtering Servergroup resources.\n","properties":{"instances":{"type":"array","items":{"$ref":"#/types/gcore:index%2FServergroupInstance:ServergroupInstance"},"description":"Instances in this server group"},"name":{"type":"string","description":"Displayed server group name\n"},"policy":{"type":"string","description":"Server group policy. Available value is 'affinity' 'anti-affinity' 'soft-anti-affinity'.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"servergroupId":{"type":"string"}},"type":"object"}},"gcore:index/snapshot:Snapshot":{"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 snapshot = new gcore.Snapshot(\"snapshot\", {\n    projectId: 1,\n    regionId: 1,\n    name: \"snapshot example\",\n    volumeId: \"28e9edcb-1593-41fe-971b-da729c6ec301\",\n    description: \"snapshot example description\",\n    metadata: {\n        env: \"test\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nsnapshot = gcore.Snapshot(\"snapshot\",\n    project_id=1,\n    region_id=1,\n    name=\"snapshot example\",\n    volume_id=\"28e9edcb-1593-41fe-971b-da729c6ec301\",\n    description=\"snapshot example description\",\n    metadata={\n        \"env\": \"test\",\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 snapshot = new Gcore.Snapshot(\"snapshot\", new()\n    {\n        ProjectId = 1,\n        RegionId = 1,\n        Name = \"snapshot example\",\n        VolumeId = \"28e9edcb-1593-41fe-971b-da729c6ec301\",\n        Description = \"snapshot example description\",\n        Metadata = \n        {\n            { \"env\", \"test\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewSnapshot(ctx, \"snapshot\", \u0026gcore.SnapshotArgs{\n\t\t\tProjectId:   pulumi.Float64(1),\n\t\t\tRegionId:    pulumi.Float64(1),\n\t\t\tName:        pulumi.String(\"snapshot example\"),\n\t\t\tVolumeId:    pulumi.String(\"28e9edcb-1593-41fe-971b-da729c6ec301\"),\n\t\t\tDescription: pulumi.String(\"snapshot example description\"),\n\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\"env\": pulumi.String(\"test\"),\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.Snapshot;\nimport com.pulumi.gcore.SnapshotArgs;\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 snapshot = new Snapshot(\"snapshot\", SnapshotArgs.builder()\n            .projectId(1.0)\n            .regionId(1.0)\n            .name(\"snapshot example\")\n            .volumeId(\"28e9edcb-1593-41fe-971b-da729c6ec301\")\n            .description(\"snapshot example description\")\n            .metadata(Map.of(\"env\", \"test\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  snapshot:\n    type: gcore:Snapshot\n    properties:\n      projectId: 1\n      regionId: 1\n      name: snapshot example\n      volumeId: 28e9edcb-1593-41fe-971b-da729c6ec301\n      description: snapshot example description\n      metadata:\n        env: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003csnapshot_id\u003e format\n\n```sh\n$ pulumi import gcore:index/snapshot:Snapshot snapshot1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"description":{"type":"string"},"lastUpdated":{"type":"string"},"metadata":{"type":"object","additionalProperties":{"type":"string"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"size":{"type":"number"},"snapshotId":{"type":"string","description":"The ID of this resource.\n"},"status":{"type":"string"},"volumeId":{"type":"string"}},"type":"object","required":["lastUpdated","metadata","name","size","snapshotId","status","volumeId"],"inputProperties":{"description":{"type":"string"},"lastUpdated":{"type":"string"},"metadata":{"type":"object","additionalProperties":{"type":"string"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"snapshotId":{"type":"string","description":"The ID of this resource.\n"},"volumeId":{"type":"string"}},"requiredInputs":["volumeId"],"stateInputs":{"description":"Input properties used for looking up and filtering Snapshot resources.\n","properties":{"description":{"type":"string"},"lastUpdated":{"type":"string"},"metadata":{"type":"object","additionalProperties":{"type":"string"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"size":{"type":"number"},"snapshotId":{"type":"string","description":"The ID of this resource.\n"},"status":{"type":"string"},"volumeId":{"type":"string"}},"type":"object"}},"gcore:index/storageS3:StorageS3":{"description":"Represent s3 storage resource. https://storage.gcore.com/storage/list\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 exampleS3 = new gcore.StorageS3(\"example_s3\", {\n    name: \"example\",\n    location: \"s-region-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_s3 = gcore.StorageS3(\"example_s3\",\n    name=\"example\",\n    location=\"s-region-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 exampleS3 = new Gcore.StorageS3(\"example_s3\", new()\n    {\n        Name = \"example\",\n        Location = \"s-region-1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewStorageS3(ctx, \"example_s3\", \u0026gcore.StorageS3Args{\n\t\t\tName:     pulumi.String(\"example\"),\n\t\t\tLocation: pulumi.String(\"s-region-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.StorageS3;\nimport com.pulumi.gcore.StorageS3Args;\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 exampleS3 = new StorageS3(\"exampleS3\", StorageS3Args.builder()\n            .name(\"example\")\n            .location(\"s-region-1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleS3:\n    type: gcore:StorageS3\n    name: example_s3\n    properties:\n      name: example\n      location: s-region-1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"clientId":{"type":"number","description":"An client id of new storage resource.\n"},"generatedAccessKey":{"type":"string","description":"A s3 access key for new storage resource.\n"},"generatedEndpoint":{"type":"string","description":"A s3 entry point for new storage resource.\n"},"generatedHttpEndpoint":{"type":"string","description":"A http s3 entry point for new storage resource.\n"},"generatedS3Endpoint":{"type":"string","description":"A s3 endpoint for new storage resource.\n"},"generatedSecretKey":{"type":"string","description":"A s3 secret key for new storage resource.\n"},"location":{"type":"string","description":"A location of new storage resource.\n"},"name":{"type":"string","description":"A name of new storage resource.\n"},"storageId":{"type":"number","description":"An id of new storage resource.\n"},"storageS3Id":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["clientId","generatedAccessKey","generatedEndpoint","generatedHttpEndpoint","generatedS3Endpoint","generatedSecretKey","location","name","storageId","storageS3Id"],"inputProperties":{"clientId":{"type":"number","description":"An client id of new storage resource.\n"},"generatedAccessKey":{"type":"string","description":"A s3 access key for new storage resource.\n"},"generatedEndpoint":{"type":"string","description":"A s3 entry point for new storage resource.\n"},"generatedHttpEndpoint":{"type":"string","description":"A http s3 entry point for new storage resource.\n"},"generatedS3Endpoint":{"type":"string","description":"A s3 endpoint for new storage resource.\n"},"generatedSecretKey":{"type":"string","description":"A s3 secret key for new storage resource.\n"},"location":{"type":"string","description":"A location of new storage resource.\n"},"name":{"type":"string","description":"A name of new storage resource.\n"},"storageId":{"type":"number","description":"An id of new storage resource.\n"},"storageS3Id":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["location"],"stateInputs":{"description":"Input properties used for looking up and filtering StorageS3 resources.\n","properties":{"clientId":{"type":"number","description":"An client id of new storage resource.\n"},"generatedAccessKey":{"type":"string","description":"A s3 access key for new storage resource.\n"},"generatedEndpoint":{"type":"string","description":"A s3 entry point for new storage resource.\n"},"generatedHttpEndpoint":{"type":"string","description":"A http s3 entry point for new storage resource.\n"},"generatedS3Endpoint":{"type":"string","description":"A s3 endpoint for new storage resource.\n"},"generatedSecretKey":{"type":"string","description":"A s3 secret key for new storage resource.\n"},"location":{"type":"string","description":"A location of new storage resource.\n"},"name":{"type":"string","description":"A name of new storage resource.\n"},"storageId":{"type":"number","description":"An id of new storage resource.\n"},"storageS3Id":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"gcore:index/storageS3Bucket:StorageS3Bucket":{"description":"Represent s3 storage bucket resource. https://storage.gcore.com/storage/list\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 exampleS3Bucket = new gcore.StorageS3Bucket(\"example_s3_bucket\", {\n    name: \"example1bucket2name\",\n    storageId: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_s3_bucket = gcore.StorageS3Bucket(\"example_s3_bucket\",\n    name=\"example1bucket2name\",\n    storage_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 exampleS3Bucket = new Gcore.StorageS3Bucket(\"example_s3_bucket\", new()\n    {\n        Name = \"example1bucket2name\",\n        StorageId = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewStorageS3Bucket(ctx, \"example_s3_bucket\", \u0026gcore.StorageS3BucketArgs{\n\t\t\tName:      pulumi.String(\"example1bucket2name\"),\n\t\t\tStorageId: 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.StorageS3Bucket;\nimport com.pulumi.gcore.StorageS3BucketArgs;\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 exampleS3Bucket = new StorageS3Bucket(\"exampleS3Bucket\", StorageS3BucketArgs.builder()\n            .name(\"example1bucket2name\")\n            .storageId(1.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleS3Bucket:\n    type: gcore:StorageS3Bucket\n    name: example_s3_bucket\n    properties:\n      name: example1bucket2name\n      storageId: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"name":{"type":"string","description":"A name of new storage bucket resource.\n"},"storageId":{"type":"number","description":"An id of existing storage resource.\n"},"storageS3BucketId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["name","storageId","storageS3BucketId"],"inputProperties":{"name":{"type":"string","description":"A name of new storage bucket resource.\n"},"storageId":{"type":"number","description":"An id of existing storage resource.\n"},"storageS3BucketId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["storageId"],"stateInputs":{"description":"Input properties used for looking up and filtering StorageS3Bucket resources.\n","properties":{"name":{"type":"string","description":"A name of new storage bucket resource.\n"},"storageId":{"type":"number","description":"An id of existing storage resource.\n"},"storageS3BucketId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"gcore:index/storageSftp:StorageSftp":{"description":"Represent sftp storage resource. https://storage.gcore.com/storage/list\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 exampleSftp = new gcore.StorageSftp(\"example_sftp\", {\n    name: \"example\",\n    location: \"mia\",\n    sshKeyIds: [199],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_sftp = gcore.StorageSftp(\"example_sftp\",\n    name=\"example\",\n    location=\"mia\",\n    ssh_key_ids=[199])\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 exampleSftp = new Gcore.StorageSftp(\"example_sftp\", new()\n    {\n        Name = \"example\",\n        Location = \"mia\",\n        SshKeyIds = new[]\n        {\n            199,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewStorageSftp(ctx, \"example_sftp\", \u0026gcore.StorageSftpArgs{\n\t\t\tName:     pulumi.String(\"example\"),\n\t\t\tLocation: pulumi.String(\"mia\"),\n\t\t\tSshKeyIds: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(199),\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.StorageSftp;\nimport com.pulumi.gcore.StorageSftpArgs;\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 exampleSftp = new StorageSftp(\"exampleSftp\", StorageSftpArgs.builder()\n            .name(\"example\")\n            .location(\"mia\")\n            .sshKeyIds(199.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleSftp:\n    type: gcore:StorageSftp\n    name: example_sftp\n    properties:\n      name: example\n      location: mia\n      sshKeyIds:\n        - 199\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"clientId":{"type":"number","description":"An client id of new storage resource.\n"},"generatedHttpEndpoint":{"type":"string","description":"A http sftp entry point for new storage resource.\n"},"generatedPassword":{"type":"boolean","description":"An auto generated sftp password for new storage resource.\n"},"generatedSftpEndpoint":{"type":"string","description":"A ssh sftp entry point for new storage resource.\n"},"httpExpiresHeaderValue":{"type":"string","description":"A expires date of storage resource.\n"},"httpServernameAlias":{"type":"string","description":"An alias of storage resource.\n"},"location":{"type":"string","description":"A location of new storage resource. One of (ams, sin, fra, mia)\n"},"name":{"type":"string","description":"A name of new storage resource.\n"},"password":{"type":"string","description":"A sftp password for new storage resource.\n"},"sshKeyIds":{"type":"array","items":{"type":"number"},"description":"An ssh keys IDs to link with new sftp storage resource only. https://storage.gcore.com/ssh-key/list\n"},"storageId":{"type":"number","description":"An id of new storage resource.\n"},"storageSftpId":{"type":"string","description":"The ID of this resource.\n"},"updateAfterCreate":{"type":"boolean","description":"A temporary flag. An internal cheat, to skip update ssh keys. Skip it.\n"}},"type":"object","required":["clientId","generatedHttpEndpoint","generatedSftpEndpoint","location","name","storageId","storageSftpId","updateAfterCreate"],"inputProperties":{"clientId":{"type":"number","description":"An client id of new storage resource.\n"},"generatedHttpEndpoint":{"type":"string","description":"A http sftp entry point for new storage resource.\n"},"generatedPassword":{"type":"boolean","description":"An auto generated sftp password for new storage resource.\n"},"generatedSftpEndpoint":{"type":"string","description":"A ssh sftp entry point for new storage resource.\n"},"httpExpiresHeaderValue":{"type":"string","description":"A expires date of storage resource.\n"},"httpServernameAlias":{"type":"string","description":"An alias of storage resource.\n"},"location":{"type":"string","description":"A location of new storage resource. One of (ams, sin, fra, mia)\n"},"name":{"type":"string","description":"A name of new storage resource.\n"},"password":{"type":"string","description":"A sftp password for new storage resource.\n"},"sshKeyIds":{"type":"array","items":{"type":"number"},"description":"An ssh keys IDs to link with new sftp storage resource only. https://storage.gcore.com/ssh-key/list\n"},"storageId":{"type":"number","description":"An id of new storage resource.\n"},"storageSftpId":{"type":"string","description":"The ID of this resource.\n"},"updateAfterCreate":{"type":"boolean","description":"A temporary flag. An internal cheat, to skip update ssh keys. Skip it.\n"}},"requiredInputs":["location"],"stateInputs":{"description":"Input properties used for looking up and filtering StorageSftp resources.\n","properties":{"clientId":{"type":"number","description":"An client id of new storage resource.\n"},"generatedHttpEndpoint":{"type":"string","description":"A http sftp entry point for new storage resource.\n"},"generatedPassword":{"type":"boolean","description":"An auto generated sftp password for new storage resource.\n"},"generatedSftpEndpoint":{"type":"string","description":"A ssh sftp entry point for new storage resource.\n"},"httpExpiresHeaderValue":{"type":"string","description":"A expires date of storage resource.\n"},"httpServernameAlias":{"type":"string","description":"An alias of storage resource.\n"},"location":{"type":"string","description":"A location of new storage resource. One of (ams, sin, fra, mia)\n"},"name":{"type":"string","description":"A name of new storage resource.\n"},"password":{"type":"string","description":"A sftp password for new storage resource.\n"},"sshKeyIds":{"type":"array","items":{"type":"number"},"description":"An ssh keys IDs to link with new sftp storage resource only. https://storage.gcore.com/ssh-key/list\n"},"storageId":{"type":"number","description":"An id of new storage resource.\n"},"storageSftpId":{"type":"string","description":"The ID of this resource.\n"},"updateAfterCreate":{"type":"boolean","description":"A temporary flag. An internal cheat, to skip update ssh keys. Skip it.\n"}},"type":"object"}},"gcore:index/storageSftpKey:StorageSftpKey":{"description":"Represent storage key resource. https://storage.gcore.com/ssh-key/list\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 terraformTestKey = new gcore.StorageSftpKey(\"terraform_test_key\", {\n    name: \"terraform_test_key\",\n    key: \"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSUGPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XAt3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/EnmZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbxNrRFi9wrf+M7Q== schacon@mylaptop.local\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nterraform_test_key = gcore.StorageSftpKey(\"terraform_test_key\",\n    name=\"terraform_test_key\",\n    key=\"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSUGPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XAt3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/EnmZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbxNrRFi9wrf+M7Q== schacon@mylaptop.local\")\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 terraformTestKey = new Gcore.StorageSftpKey(\"terraform_test_key\", new()\n    {\n        Name = \"terraform_test_key\",\n        Key = \"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSUGPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XAt3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/EnmZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbxNrRFi9wrf+M7Q== schacon@mylaptop.local\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewStorageSftpKey(ctx, \"terraform_test_key\", \u0026gcore.StorageSftpKeyArgs{\n\t\t\tName: pulumi.String(\"terraform_test_key\"),\n\t\t\tKey:  pulumi.String(\"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSUGPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XAt3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/EnmZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbxNrRFi9wrf+M7Q== schacon@mylaptop.local\"),\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.StorageSftpKey;\nimport com.pulumi.gcore.StorageSftpKeyArgs;\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 terraformTestKey = new StorageSftpKey(\"terraformTestKey\", StorageSftpKeyArgs.builder()\n            .name(\"terraform_test_key\")\n            .key(\"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSUGPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XAt3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/EnmZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbxNrRFi9wrf+M7Q== schacon@mylaptop.local\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  terraformTestKey:\n    type: gcore:StorageSftpKey\n    name: terraform_test_key\n    properties:\n      name: terraform_test_key\n      key: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSUGPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XAt3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/EnmZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbxNrRFi9wrf+M7Q== schacon@mylaptop.local\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"key":{"type":"string","description":"A body of of new storage key resource.\n"},"keyId":{"type":"number","description":"An id of of new storage key resource.\n"},"name":{"type":"string","description":"A name of new storage key resource.\n"},"storageSftpKeyId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["key","keyId","name","storageSftpKeyId"],"inputProperties":{"key":{"type":"string","description":"A body of of new storage key resource.\n"},"keyId":{"type":"number","description":"An id of of new storage key resource.\n"},"name":{"type":"string","description":"A name of new storage key resource.\n"},"storageSftpKeyId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["key"],"stateInputs":{"description":"Input properties used for looking up and filtering StorageSftpKey resources.\n","properties":{"key":{"type":"string","description":"A body of of new storage key resource.\n"},"keyId":{"type":"number","description":"An id of of new storage key resource.\n"},"name":{"type":"string","description":"A name of new storage key resource.\n"},"storageSftpKeyId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"gcore:index/subnet:Subnet":{"description":"Represent subnets. Subnetwork is a range of IP addresses in a cloud network. Addresses from this range will be assigned to machines in the cloud.\n\n## Example Usage\n\n### Prerequisite\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nconst config = new pulumi.Config();\nconst dnsNameservers = config.getObject\u003cArray\u003cstring\u003e\u003e(\"dnsNameservers\") || [\n    \"8.8.4.4\",\n    \"1.1.1.1\",\n];\nconst hostRoutes = config.getObject\u003cArray\u003c{destination?: string, nexthop?: string}\u003e\u003e(\"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```\n```python\nimport pulumi\n\nconfig = pulumi.Config()\ndns_nameservers = config.get_object(\"dnsNameservers\")\nif dns_nameservers is None:\n    dns_nameservers = [\n        \"8.8.4.4\",\n        \"1.1.1.1\",\n    ]\nhost_routes = config.get_object(\"hostRoutes\")\nif host_routes is None:\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```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var dnsNameservers = config.GetObject\u003cstring[]\u003e(\"dnsNameservers\") ?? new[]\n    {\n        \"8.8.4.4\",\n        \"1.1.1.1\",\n    };\n    var hostRoutes = config.GetObject\u003cHostRoutes[]\u003e(\"hostRoutes\") ?? new[]\n    {\n        \n        {\n            { \"destination\", \"10.0.3.0/24\" },\n            { \"nexthop\", \"10.0.0.13\" },\n        },\n        \n        {\n            { \"destination\", \"10.0.4.0/24\" },\n            { \"nexthop\", \"10.0.0.14\" },\n        },\n    };\n});\n\npublic class HostRoutes\n{\n    public string destination { get; set; }\n    public string nexthop { get; set; }\n}\n```\n```go\npackage main\n\nimport (\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\tdnsNameservers := []string{\n\t\t\t\"8.8.4.4\",\n\t\t\t\"1.1.1.1\",\n\t\t}\n\t\tif param := cfg.GetObject(\"dnsNameservers\"); param != nil {\n\t\t\tdnsNameservers = param\n\t\t}\n\t\thostRoutes := []map[string]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"destination\": \"10.0.3.0/24\",\n\t\t\t\t\"nexthop\":     \"10.0.0.13\",\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"destination\": \"10.0.4.0/24\",\n\t\t\t\t\"nexthop\":     \"10.0.0.14\",\n\t\t\t},\n\t\t}\n\t\tif param := cfg.GetObject(\"hostRoutes\"); param != nil {\n\t\t\thostRoutes = param\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 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 dnsNameservers = config.get(\"dnsNameservers\").orElse(List.of(        \n            \"8.8.4.4\",\n            \"1.1.1.1\"));\n        final var hostRoutes = config.get(\"hostRoutes\").orElse(List.of(        \n            Map.ofEntries(\n                Map.entry(\"destination\", \"10.0.3.0/24\"),\n                Map.entry(\"nexthop\", \"10.0.0.13\")\n            ),\n            Map.ofEntries(\n                Map.entry(\"destination\", \"10.0.4.0/24\"),\n                Map.entry(\"nexthop\", \"10.0.0.14\")\n            )));\n    }\n}\n```\n```yaml\nconfiguration:\n  dnsNameservers:\n    type: list(string)\n    default:\n      - 8.8.4.4\n      - 1.1.1.1\n  hostRoutes:\n    type: list(object({destination = union(none, string), nexthop = union(none, string)}))\n    default:\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```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\nconst network = new gcore.Network(\"network\", {\n    projectId: project.then(project =\u003e project.id),\n    regionId: region.then(region =\u003e region.id),\n    name: \"network_example\",\n    type: \"vxlan\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\nnetwork = gcore.Network(\"network\",\n    project_id=project.id,\n    region_id=region.id,\n    name=\"network_example\",\n    type=\"vxlan\")\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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n    var network = new Gcore.Network(\"network\", new()\n    {\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n        Name = \"network_example\",\n        Type = \"vxlan\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tproject, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tregion, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewNetwork(ctx, \"network\", \u0026gcore.NetworkArgs{\n\t\t\tProjectId: pulumi.String(project.Id),\n\t\t\tRegionId:  pulumi.String(region.Id),\n\t\t\tName:      pulumi.String(\"network_example\"),\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\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.Network;\nimport com.pulumi.gcore.NetworkArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n        var network = new Network(\"network\", NetworkArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"network_example\")\n            .type(\"vxlan\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  network:\n    type: gcore:Network\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: network_example\n      type: vxlan\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### IPv4\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst subnetIpv4 = new gcore.Subnet(\"subnet_ipv4\", {\n    hostRoutes: Object.entries(hostRoutes).map(([k, v]) =\u003e ({key: k, value: v})).map(entry =\u003e ({\n        destination: entry.value.destination,\n        nexthop: entry.value.nexthop,\n    })),\n    projectId: project.id,\n    regionId: region.id,\n    name: \"subnet_ipv4\",\n    cidr: \"192.168.10.0/24\",\n    networkId: network.id,\n    dnsNameservers: dnsNameservers,\n    gatewayIp: \"192.168.10.1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nsubnet_ipv4 = gcore.Subnet(\"subnet_ipv4\",\n    host_routes=[{\n        \"destination\": entry[\"value\"][\"destination\"],\n        \"nexthop\": entry[\"value\"][\"nexthop\"],\n    } for entry in [{\"key\": k, \"value\": v} for k, v in host_routes]],\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"subnet_ipv4\",\n    cidr=\"192.168.10.0/24\",\n    network_id=network[\"id\"],\n    dns_nameservers=dns_nameservers,\n    gateway_ip=\"192.168.10.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 subnetIpv4 = new Gcore.Subnet(\"subnet_ipv4\", new()\n    {\n        HostRoutes = .Select(entry =\u003e \n        {\n            return new Gcore.Inputs.SubnetHostRouteArgs\n            {\n                Destination = entry.Value.Destination,\n                Nexthop = entry.Value.Nexthop,\n            };\n        }).ToList(),\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"subnet_ipv4\",\n        Cidr = \"192.168.10.0/24\",\n        NetworkId = network.Id,\n        DnsNameservers = dnsNameservers,\n        GatewayIp = \"192.168.10.1\",\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### IPv6\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcore from \"@pulumi/gcore\";\n\nconst subnetIpv6 = new gcore.Subnet(\"subnet_ipv6\", {\n    projectId: project.id,\n    regionId: region.id,\n    name: \"subnet_ipv6\",\n    cidr: \"fd00::/8\",\n    networkId: network.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nsubnet_ipv6 = gcore.Subnet(\"subnet_ipv6\",\n    project_id=project[\"id\"],\n    region_id=region[\"id\"],\n    name=\"subnet_ipv6\",\n    cidr=\"fd00::/8\",\n    network_id=network[\"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 subnetIpv6 = new Gcore.Subnet(\"subnet_ipv6\", new()\n    {\n        ProjectId = project.Id,\n        RegionId = region.Id,\n        Name = \"subnet_ipv6\",\n        Cidr = \"fd00::/8\",\n        NetworkId = network.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewSubnet(ctx, \"subnet_ipv6\", \u0026gcore.SubnetArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRegionId:  pulumi.Any(region.Id),\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})\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.Subnet;\nimport com.pulumi.gcore.SubnetArgs;\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 subnetIpv6 = new Subnet(\"subnetIpv6\", SubnetArgs.builder()\n            .projectId(project.id())\n            .regionId(region.id())\n            .name(\"subnet_ipv6\")\n            .cidr(\"fd00::/8\")\n            .networkId(network.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  subnetIpv6:\n    type: gcore:Subnet\n    name: subnet_ipv6\n    properties:\n      projectId: ${project.id}\n      regionId: ${region.id}\n      name: subnet_ipv6\n      cidr: fd00::/8\n      networkId: ${network.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003csubnet_id\u003e format\n\n```sh\n$ pulumi import gcore:index/subnet:Subnet subnet1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"cidr":{"type":"string","description":"Classless Inter-Domain Routing, can be IPv4 or IPv6.\n"},"connectToNetworkRouter":{"type":"boolean","description":"True if the network's router should get a gateway in this subnet. Must be explicitly 'false' when\u003cspan pulumi-lang-nodejs=\" gatewayIp \" pulumi-lang-dotnet=\" GatewayIp \" pulumi-lang-go=\" gatewayIp \" pulumi-lang-python=\" gateway_ip \" pulumi-lang-yaml=\" gatewayIp \" pulumi-lang-java=\" gatewayIp \"\u003e gateway_ip \u003c/span\u003eis null. Default true.\n"},"dnsNameservers":{"type":"array","items":{"type":"string"},"description":"List of strings contains DNS addresses, e.g. 95.85.95.85.\n"},"enableDhcp":{"type":"boolean","description":"Enable DHCP for this subnet.\n"},"gatewayIp":{"type":"string","description":"Desired IP address of the subnet's gateway. Use \u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\"\u003e`disable`\u003c/span\u003e value to disable gateway ip.\n"},"hostRoutes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FSubnetHostRoute:SubnetHostRoute"}},"lastUpdated":{"type":"string","description":"Datetime when subnet was updated at the last time.\n"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"},"description":"Metadata map to apply to the subnet.\n"},"metadataReadOnlies":{"type":"array","items":{"$ref":"#/types/gcore:index%2FSubnetMetadataReadOnly:SubnetMetadataReadOnly"},"description":"List of metadata items.\n"},"name":{"type":"string","description":"Name of the subnet.\n"},"networkId":{"type":"string","description":"ID of the desired network to create subnet in.\n"},"projectId":{"type":"number","description":"ID of the desired project to create subnet in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create subnet in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"regionId":{"type":"number","description":"ID of the desired region to create subnet in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create subnet in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"subnetId":{"type":"string","description":"The ID of this resource.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FSubnetTimeouts:SubnetTimeouts"}},"type":"object","required":["cidr","dnsNameservers","enableDhcp","gatewayIp","lastUpdated","metadataReadOnlies","name","networkId","subnetId"],"inputProperties":{"cidr":{"type":"string","description":"Classless Inter-Domain Routing, can be IPv4 or IPv6.\n"},"connectToNetworkRouter":{"type":"boolean","description":"True if the network's router should get a gateway in this subnet. Must be explicitly 'false' when\u003cspan pulumi-lang-nodejs=\" gatewayIp \" pulumi-lang-dotnet=\" GatewayIp \" pulumi-lang-go=\" gatewayIp \" pulumi-lang-python=\" gateway_ip \" pulumi-lang-yaml=\" gatewayIp \" pulumi-lang-java=\" gatewayIp \"\u003e gateway_ip \u003c/span\u003eis null. Default true.\n"},"dnsNameservers":{"type":"array","items":{"type":"string"},"description":"List of strings contains DNS addresses, e.g. 95.85.95.85.\n"},"enableDhcp":{"type":"boolean","description":"Enable DHCP for this subnet.\n"},"gatewayIp":{"type":"string","description":"Desired IP address of the subnet's gateway. Use \u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\"\u003e`disable`\u003c/span\u003e value to disable gateway ip.\n"},"hostRoutes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FSubnetHostRoute:SubnetHostRoute"}},"metadataMap":{"type":"object","additionalProperties":{"type":"string"},"description":"Metadata map to apply to the subnet.\n"},"name":{"type":"string","description":"Name of the subnet.\n"},"networkId":{"type":"string","description":"ID of the desired network to create subnet in.\n"},"projectId":{"type":"number","description":"ID of the desired project to create subnet in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create subnet in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"regionId":{"type":"number","description":"ID of the desired region to create subnet in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create subnet in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"subnetId":{"type":"string","description":"The ID of this resource.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FSubnetTimeouts:SubnetTimeouts"}},"requiredInputs":["cidr","networkId"],"stateInputs":{"description":"Input properties used for looking up and filtering Subnet resources.\n","properties":{"cidr":{"type":"string","description":"Classless Inter-Domain Routing, can be IPv4 or IPv6.\n"},"connectToNetworkRouter":{"type":"boolean","description":"True if the network's router should get a gateway in this subnet. Must be explicitly 'false' when\u003cspan pulumi-lang-nodejs=\" gatewayIp \" pulumi-lang-dotnet=\" GatewayIp \" pulumi-lang-go=\" gatewayIp \" pulumi-lang-python=\" gateway_ip \" pulumi-lang-yaml=\" gatewayIp \" pulumi-lang-java=\" gatewayIp \"\u003e gateway_ip \u003c/span\u003eis null. Default true.\n"},"dnsNameservers":{"type":"array","items":{"type":"string"},"description":"List of strings contains DNS addresses, e.g. 95.85.95.85.\n"},"enableDhcp":{"type":"boolean","description":"Enable DHCP for this subnet.\n"},"gatewayIp":{"type":"string","description":"Desired IP address of the subnet's gateway. Use \u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\"\u003e`disable`\u003c/span\u003e value to disable gateway ip.\n"},"hostRoutes":{"type":"array","items":{"$ref":"#/types/gcore:index%2FSubnetHostRoute:SubnetHostRoute"}},"lastUpdated":{"type":"string","description":"Datetime when subnet was updated at the last time.\n"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"},"description":"Metadata map to apply to the subnet.\n"},"metadataReadOnlies":{"type":"array","items":{"$ref":"#/types/gcore:index%2FSubnetMetadataReadOnly:SubnetMetadataReadOnly"},"description":"List of metadata items.\n"},"name":{"type":"string","description":"Name of the subnet.\n"},"networkId":{"type":"string","description":"ID of the desired network to create subnet in.\n"},"projectId":{"type":"number","description":"ID of the desired project to create subnet in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e. One of them should be specified.\n"},"projectName":{"type":"string","description":"Name of the desired project to create subnet in. Alternative for \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e. One of them should be specified.\n"},"regionId":{"type":"number","description":"ID of the desired region to create subnet in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionName`\" pulumi-lang-dotnet=\"`RegionName`\" pulumi-lang-go=\"`regionName`\" pulumi-lang-python=\"`region_name`\" pulumi-lang-yaml=\"`regionName`\" pulumi-lang-java=\"`regionName`\"\u003e`region_name`\u003c/span\u003e. One of them should be specified.\n"},"regionName":{"type":"string","description":"Name of the desired region to create subnet in. Alternative for \u003cspan pulumi-lang-nodejs=\"`regionId`\" pulumi-lang-dotnet=\"`RegionId`\" pulumi-lang-go=\"`regionId`\" pulumi-lang-python=\"`region_id`\" pulumi-lang-yaml=\"`regionId`\" pulumi-lang-java=\"`regionId`\"\u003e`region_id`\u003c/span\u003e. One of them should be specified.\n"},"subnetId":{"type":"string","description":"The ID of this resource.\n"},"timeouts":{"$ref":"#/types/gcore:index%2FSubnetTimeouts:SubnetTimeouts"}},"type":"object"}},"gcore:index/volume:Volume":{"description":"Represent volume. A volume is a file storage which is similar to SSD and HDD hard disks but located in the cloud\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 volume = new gcore.Volume(\"volume\", {\n    name: \"volume_example\",\n    typeName: \"standard\",\n    size: 1,\n    regionId: 1,\n    projectId: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nvolume = gcore.Volume(\"volume\",\n    name=\"volume_example\",\n    type_name=\"standard\",\n    size=1,\n    region_id=1,\n    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 volume = new Gcore.Volume(\"volume\", new()\n    {\n        Name = \"volume_example\",\n        TypeName = \"standard\",\n        Size = 1,\n        RegionId = 1,\n        ProjectId = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewVolume(ctx, \"volume\", \u0026gcore.VolumeArgs{\n\t\t\tName:      pulumi.String(\"volume_example\"),\n\t\t\tTypeName:  pulumi.String(\"standard\"),\n\t\t\tSize:      pulumi.Float64(1),\n\t\t\tRegionId:  pulumi.Float64(1),\n\t\t\tProjectId: 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.Volume;\nimport com.pulumi.gcore.VolumeArgs;\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 volume = new Volume(\"volume\", VolumeArgs.builder()\n            .name(\"volume_example\")\n            .typeName(\"standard\")\n            .size(1.0)\n            .regionId(1.0)\n            .projectId(1.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  volume:\n    type: gcore:Volume\n    properties:\n      name: volume_example\n      typeName: standard\n      size: 1\n      regionId: 1\n      projectId: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cproject_id\u003e:\u003cregion_id\u003e:\u003cvolume_id\u003e format\n\n```sh\n$ pulumi import gcore:index/volume:Volume volume1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"imageId":{"type":"string","description":"Mandatory if volume is created from image\n"},"lastUpdated":{"type":"string"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"}},"metadataReadOnlies":{"type":"array","items":{"$ref":"#/types/gcore:index%2FVolumeMetadataReadOnly:VolumeMetadataReadOnly"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"size":{"type":"number"},"snapshotId":{"type":"string","description":"Mandatory if volume is created from a snapshot\n"},"typeName":{"type":"string","description":"Available value is 'standard', 'ssd_hiiops', 'cold', 'ultra'. Defaults to standard\n"},"volumeId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["lastUpdated","metadataMap","metadataReadOnlies","name","volumeId"],"inputProperties":{"imageId":{"type":"string","description":"Mandatory if volume is created from image\n"},"lastUpdated":{"type":"string"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"size":{"type":"number"},"snapshotId":{"type":"string","description":"Mandatory if volume is created from a snapshot\n"},"typeName":{"type":"string","description":"Available value is 'standard', 'ssd_hiiops', 'cold', 'ultra'. Defaults to standard\n"},"volumeId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Volume resources.\n","properties":{"imageId":{"type":"string","description":"Mandatory if volume is created from image\n"},"lastUpdated":{"type":"string"},"metadataMap":{"type":"object","additionalProperties":{"type":"string"}},"metadataReadOnlies":{"type":"array","items":{"$ref":"#/types/gcore:index%2FVolumeMetadataReadOnly:VolumeMetadataReadOnly"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"size":{"type":"number"},"snapshotId":{"type":"string","description":"Mandatory if volume is created from a snapshot\n"},"typeName":{"type":"string","description":"Available value is 'standard', 'ssd_hiiops', 'cold', 'ultra'. Defaults to standard\n"},"volumeId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"gcore:index/waapAdvancedRule:WaapAdvancedRule":{"description":"Represent Advanced Rules for a specific WAAP domain\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 cdnResource = new gcore.CdnResource(\"cdn_resource\", {\n    cname: \"api.example.com\",\n    origin: \"origin.example.com\",\n    options: {\n        waap: {\n            value: true,\n        },\n    },\n});\nconst domain = new gcore.WaapDomain(\"domain\", {\n    name: cdnResource.cname,\n    status: \"monitor\",\n});\nconst advancedRule = new gcore.WaapAdvancedRule(\"advanced_rule\", {\n    domainId: domain.waapDomainId,\n    name: \"Advanced Rule\",\n    enabled: true,\n    action: {\n        block: {\n            statusCode: 403,\n            actionDuration: \"5m\",\n        },\n    },\n    source: \"request.ip == '117.20.32.55'\",\n    description: \"Description of the advanced rule\",\n    phase: \"access\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ncdn_resource = gcore.CdnResource(\"cdn_resource\",\n    cname=\"api.example.com\",\n    origin=\"origin.example.com\",\n    options={\n        \"waap\": {\n            \"value\": True,\n        },\n    })\ndomain = gcore.WaapDomain(\"domain\",\n    name=cdn_resource.cname,\n    status=\"monitor\")\nadvanced_rule = gcore.WaapAdvancedRule(\"advanced_rule\",\n    domain_id=domain.waap_domain_id,\n    name=\"Advanced Rule\",\n    enabled=True,\n    action={\n        \"block\": {\n            \"status_code\": 403,\n            \"action_duration\": \"5m\",\n        },\n    },\n    source=\"request.ip == '117.20.32.55'\",\n    description=\"Description of the advanced rule\",\n    phase=\"access\")\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 cdnResource = new Gcore.CdnResource(\"cdn_resource\", new()\n    {\n        Cname = \"api.example.com\",\n        Origin = \"origin.example.com\",\n        Options = new Gcore.Inputs.CdnResourceOptionsArgs\n        {\n            Waap = new Gcore.Inputs.CdnResourceOptionsWaapArgs\n            {\n                Value = true,\n            },\n        },\n    });\n\n    var domain = new Gcore.WaapDomain(\"domain\", new()\n    {\n        Name = cdnResource.Cname,\n        Status = \"monitor\",\n    });\n\n    var advancedRule = new Gcore.WaapAdvancedRule(\"advanced_rule\", new()\n    {\n        DomainId = domain.WaapDomainId,\n        Name = \"Advanced Rule\",\n        Enabled = true,\n        Action = new Gcore.Inputs.WaapAdvancedRuleActionArgs\n        {\n            Block = new Gcore.Inputs.WaapAdvancedRuleActionBlockArgs\n            {\n                StatusCode = 403,\n                ActionDuration = \"5m\",\n            },\n        },\n        Source = \"request.ip == '117.20.32.55'\",\n        Description = \"Description of the advanced rule\",\n        Phase = \"access\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tcdnResource, err := gcore.NewCdnResource(ctx, \"cdn_resource\", \u0026gcore.CdnResourceArgs{\n\t\t\tCname:  pulumi.String(\"api.example.com\"),\n\t\t\tOrigin: pulumi.String(\"origin.example.com\"),\n\t\t\tOptions: \u0026gcore.CdnResourceOptionsArgs{\n\t\t\t\tWaap: \u0026gcore.CdnResourceOptionsWaapArgs{\n\t\t\t\t\tValue: 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\tdomain, err := gcore.NewWaapDomain(ctx, \"domain\", \u0026gcore.WaapDomainArgs{\n\t\t\tName:   cdnResource.Cname,\n\t\t\tStatus: pulumi.String(\"monitor\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewWaapAdvancedRule(ctx, \"advanced_rule\", \u0026gcore.WaapAdvancedRuleArgs{\n\t\t\tDomainId: domain.WaapDomainId,\n\t\t\tName:     pulumi.String(\"Advanced Rule\"),\n\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\tAction: \u0026gcore.WaapAdvancedRuleActionArgs{\n\t\t\t\tBlock: \u0026gcore.WaapAdvancedRuleActionBlockArgs{\n\t\t\t\t\tStatusCode:     pulumi.Float64(403),\n\t\t\t\t\tActionDuration: pulumi.String(\"5m\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSource:      pulumi.String(\"request.ip == '117.20.32.55'\"),\n\t\t\tDescription: pulumi.String(\"Description of the advanced rule\"),\n\t\t\tPhase:       pulumi.String(\"access\"),\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.CdnResource;\nimport com.pulumi.gcore.CdnResourceArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsWaapArgs;\nimport com.pulumi.gcore.WaapDomain;\nimport com.pulumi.gcore.WaapDomainArgs;\nimport com.pulumi.gcore.WaapAdvancedRule;\nimport com.pulumi.gcore.WaapAdvancedRuleArgs;\nimport com.pulumi.gcore.inputs.WaapAdvancedRuleActionArgs;\nimport com.pulumi.gcore.inputs.WaapAdvancedRuleActionBlockArgs;\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 cdnResource = new CdnResource(\"cdnResource\", CdnResourceArgs.builder()\n            .cname(\"api.example.com\")\n            .origin(\"origin.example.com\")\n            .options(CdnResourceOptionsArgs.builder()\n                .waap(CdnResourceOptionsWaapArgs.builder()\n                    .value(true)\n                    .build())\n                .build())\n            .build());\n\n        var domain = new WaapDomain(\"domain\", WaapDomainArgs.builder()\n            .name(cdnResource.cname())\n            .status(\"monitor\")\n            .build());\n\n        var advancedRule = new WaapAdvancedRule(\"advancedRule\", WaapAdvancedRuleArgs.builder()\n            .domainId(domain.waapDomainId())\n            .name(\"Advanced Rule\")\n            .enabled(true)\n            .action(WaapAdvancedRuleActionArgs.builder()\n                .block(WaapAdvancedRuleActionBlockArgs.builder()\n                    .statusCode(403.0)\n                    .actionDuration(\"5m\")\n                    .build())\n                .build())\n            .source(\"request.ip == '117.20.32.55'\")\n            .description(\"Description of the advanced rule\")\n            .phase(\"access\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cdnResource:\n    type: gcore:CdnResource\n    name: cdn_resource\n    properties:\n      cname: api.example.com\n      origin: origin.example.com\n      options:\n        waap:\n          value: true\n  domain:\n    type: gcore:WaapDomain\n    properties:\n      name: ${cdnResource.cname}\n      status: monitor\n  advancedRule:\n    type: gcore:WaapAdvancedRule\n    name: advanced_rule\n    properties:\n      domainId: ${domain.waapDomainId}\n      name: Advanced Rule\n      enabled: true\n      action:\n        block:\n          statusCode: 403\n          actionDuration: 5m\n      source: request.ip == '117.20.32.55'\n      description: Description of the advanced rule\n      phase: access\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cdomain_id\u003e:\u003crule_id\u003e\n\n```sh\n$ pulumi import gcore:index/waapAdvancedRule:WaapAdvancedRule advanced_rule 10029:98347\n```\n\n","properties":{"action":{"$ref":"#/types/gcore:index%2FWaapAdvancedRuleAction:WaapAdvancedRuleAction","description":"The action that the rule takes when triggered.\n"},"description":{"type":"string","description":"The description assigned to the rule.\n"},"domainId":{"type":"number","description":"The WAAP domain ID for which the Advanced Rule is configured.\n"},"enabled":{"type":"boolean","description":"Whether the rule is enabled.\n"},"name":{"type":"string","description":"The name assigned to the rule.\n"},"phase":{"type":"string","description":"The WAAP request/response phase for applying the rule. The 'access' phase is responsible for modifying the request before it is sent to the origin server. The 'header*filter' phase is responsible for modifying the HTTP headers of a response before they are sent back to the client.The 'body*filter' phase is responsible for modifying the body of a response before it is sent back to the client. Default is 'access'.\n"},"source":{"type":"string","description":"A CEL syntax expression that contains the rule's conditions. Allowed objects are: request, whois, session, response, tags, user*defined*tags, user*agent, client*data. More info can be found here: https://gcore.com/docs/waap/waap-rules/advanced-rules\n"},"waapAdvancedRuleId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["action","domainId","enabled","name","source","waapAdvancedRuleId"],"inputProperties":{"action":{"$ref":"#/types/gcore:index%2FWaapAdvancedRuleAction:WaapAdvancedRuleAction","description":"The action that the rule takes when triggered.\n"},"description":{"type":"string","description":"The description assigned to the rule.\n"},"domainId":{"type":"number","description":"The WAAP domain ID for which the Advanced Rule is configured.\n"},"enabled":{"type":"boolean","description":"Whether the rule is enabled.\n"},"name":{"type":"string","description":"The name assigned to the rule.\n"},"phase":{"type":"string","description":"The WAAP request/response phase for applying the rule. The 'access' phase is responsible for modifying the request before it is sent to the origin server. The 'header*filter' phase is responsible for modifying the HTTP headers of a response before they are sent back to the client.The 'body*filter' phase is responsible for modifying the body of a response before it is sent back to the client. Default is 'access'.\n"},"source":{"type":"string","description":"A CEL syntax expression that contains the rule's conditions. Allowed objects are: request, whois, session, response, tags, user*defined*tags, user*agent, client*data. More info can be found here: https://gcore.com/docs/waap/waap-rules/advanced-rules\n"},"waapAdvancedRuleId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["action","domainId","enabled","source"],"stateInputs":{"description":"Input properties used for looking up and filtering WaapAdvancedRule resources.\n","properties":{"action":{"$ref":"#/types/gcore:index%2FWaapAdvancedRuleAction:WaapAdvancedRuleAction","description":"The action that the rule takes when triggered.\n"},"description":{"type":"string","description":"The description assigned to the rule.\n"},"domainId":{"type":"number","description":"The WAAP domain ID for which the Advanced Rule is configured.\n"},"enabled":{"type":"boolean","description":"Whether the rule is enabled.\n"},"name":{"type":"string","description":"The name assigned to the rule.\n"},"phase":{"type":"string","description":"The WAAP request/response phase for applying the rule. The 'access' phase is responsible for modifying the request before it is sent to the origin server. The 'header*filter' phase is responsible for modifying the HTTP headers of a response before they are sent back to the client.The 'body*filter' phase is responsible for modifying the body of a response before it is sent back to the client. Default is 'access'.\n"},"source":{"type":"string","description":"A CEL syntax expression that contains the rule's conditions. Allowed objects are: request, whois, session, response, tags, user*defined*tags, user*agent, client*data. More info can be found here: https://gcore.com/docs/waap/waap-rules/advanced-rules\n"},"waapAdvancedRuleId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"gcore:index/waapApiPath:WaapApiPath":{"description":"Represent API Paths for a specific WAAP domain\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 cdnResource = new gcore.CdnResource(\"cdn_resource\", {\n    cname: \"api.example.com\",\n    origin: \"origin.example.com\",\n    options: {\n        waap: {\n            value: true,\n        },\n    },\n});\nconst domain = new gcore.WaapDomain(\"domain\", {\n    name: cdnResource.cname,\n    status: \"monitor\",\n});\nconst apiPath = new gcore.WaapApiPath(\"api_path\", {\n    domainId: domain.waapDomainId,\n    path: \"/v1/items/{id}\",\n    method: \"GET\",\n    httpScheme: \"HTTPS\",\n    apiVersion: \"v1\",\n    tags: [\n        \"tag1\",\n        \"tag2\",\n    ],\n    apiGroups: [\n        \"group1\",\n        \"group2\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ncdn_resource = gcore.CdnResource(\"cdn_resource\",\n    cname=\"api.example.com\",\n    origin=\"origin.example.com\",\n    options={\n        \"waap\": {\n            \"value\": True,\n        },\n    })\ndomain = gcore.WaapDomain(\"domain\",\n    name=cdn_resource.cname,\n    status=\"monitor\")\napi_path = gcore.WaapApiPath(\"api_path\",\n    domain_id=domain.waap_domain_id,\n    path=\"/v1/items/{id}\",\n    method=\"GET\",\n    http_scheme=\"HTTPS\",\n    api_version=\"v1\",\n    tags=[\n        \"tag1\",\n        \"tag2\",\n    ],\n    api_groups=[\n        \"group1\",\n        \"group2\",\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 cdnResource = new Gcore.CdnResource(\"cdn_resource\", new()\n    {\n        Cname = \"api.example.com\",\n        Origin = \"origin.example.com\",\n        Options = new Gcore.Inputs.CdnResourceOptionsArgs\n        {\n            Waap = new Gcore.Inputs.CdnResourceOptionsWaapArgs\n            {\n                Value = true,\n            },\n        },\n    });\n\n    var domain = new Gcore.WaapDomain(\"domain\", new()\n    {\n        Name = cdnResource.Cname,\n        Status = \"monitor\",\n    });\n\n    var apiPath = new Gcore.WaapApiPath(\"api_path\", new()\n    {\n        DomainId = domain.WaapDomainId,\n        Path = \"/v1/items/{id}\",\n        Method = \"GET\",\n        HttpScheme = \"HTTPS\",\n        ApiVersion = \"v1\",\n        Tags = new[]\n        {\n            \"tag1\",\n            \"tag2\",\n        },\n        ApiGroups = new[]\n        {\n            \"group1\",\n            \"group2\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tcdnResource, err := gcore.NewCdnResource(ctx, \"cdn_resource\", \u0026gcore.CdnResourceArgs{\n\t\t\tCname:  pulumi.String(\"api.example.com\"),\n\t\t\tOrigin: pulumi.String(\"origin.example.com\"),\n\t\t\tOptions: \u0026gcore.CdnResourceOptionsArgs{\n\t\t\t\tWaap: \u0026gcore.CdnResourceOptionsWaapArgs{\n\t\t\t\t\tValue: 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\tdomain, err := gcore.NewWaapDomain(ctx, \"domain\", \u0026gcore.WaapDomainArgs{\n\t\t\tName:   cdnResource.Cname,\n\t\t\tStatus: pulumi.String(\"monitor\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewWaapApiPath(ctx, \"api_path\", \u0026gcore.WaapApiPathArgs{\n\t\t\tDomainId:   domain.WaapDomainId,\n\t\t\tPath:       pulumi.String(\"/v1/items/{id}\"),\n\t\t\tMethod:     pulumi.String(\"GET\"),\n\t\t\tHttpScheme: pulumi.String(\"HTTPS\"),\n\t\t\tApiVersion: pulumi.String(\"v1\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tag1\"),\n\t\t\t\tpulumi.String(\"tag2\"),\n\t\t\t},\n\t\t\tApiGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"group1\"),\n\t\t\t\tpulumi.String(\"group2\"),\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.CdnResource;\nimport com.pulumi.gcore.CdnResourceArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsWaapArgs;\nimport com.pulumi.gcore.WaapDomain;\nimport com.pulumi.gcore.WaapDomainArgs;\nimport com.pulumi.gcore.WaapApiPath;\nimport com.pulumi.gcore.WaapApiPathArgs;\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 cdnResource = new CdnResource(\"cdnResource\", CdnResourceArgs.builder()\n            .cname(\"api.example.com\")\n            .origin(\"origin.example.com\")\n            .options(CdnResourceOptionsArgs.builder()\n                .waap(CdnResourceOptionsWaapArgs.builder()\n                    .value(true)\n                    .build())\n                .build())\n            .build());\n\n        var domain = new WaapDomain(\"domain\", WaapDomainArgs.builder()\n            .name(cdnResource.cname())\n            .status(\"monitor\")\n            .build());\n\n        var apiPath = new WaapApiPath(\"apiPath\", WaapApiPathArgs.builder()\n            .domainId(domain.waapDomainId())\n            .path(\"/v1/items/{id}\")\n            .method(\"GET\")\n            .httpScheme(\"HTTPS\")\n            .apiVersion(\"v1\")\n            .tags(            \n                \"tag1\",\n                \"tag2\")\n            .apiGroups(            \n                \"group1\",\n                \"group2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cdnResource:\n    type: gcore:CdnResource\n    name: cdn_resource\n    properties:\n      cname: api.example.com\n      origin: origin.example.com\n      options:\n        waap:\n          value: true\n  domain:\n    type: gcore:WaapDomain\n    properties:\n      name: ${cdnResource.cname}\n      status: monitor\n  apiPath:\n    type: gcore:WaapApiPath\n    name: api_path\n    properties:\n      domainId: ${domain.waapDomainId}\n      path: /v1/items/{id}\n      method: GET\n      httpScheme: HTTPS\n      apiVersion: v1\n      tags:\n        - tag1\n        - tag2\n      apiGroups:\n        - group1\n        - group2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cdomain_id\u003e:\u003cpath_id\u003e\n\n```sh\n$ pulumi import gcore:index/waapApiPath:WaapApiPath api_path 83429:447d2959-8ae0-4ca0-8d47-9f050a3637d7\n```\n\n","properties":{"apiGroups":{"type":"array","items":{"type":"string"},"description":"An array of API groups associated with the API path.\n"},"apiVersion":{"type":"string","description":"The API version.\n"},"domainId":{"type":"number","description":"The WAAP domain ID for which the API Path is configured.\n"},"httpScheme":{"type":"string","description":"The different HTTP schemes an API path can have. It must be one of these values: HTTP, HTTPS.\n"},"method":{"type":"string","description":"The different methods an API path can have. It must be one of these values: GET, POST, PUT, PATCH, DELETE, TRACE, HEAD, OPTIONS.\n"},"path":{"type":"string","description":"The API path, locations that are saved for resource IDs will be put in curly brackets.\n"},"status":{"type":"string","description":"The status of the discovered API path. It must be one of these values: CONFIRMED*API, POTENTIAL*API, NOT*API, DELISTED*API\n"},"tags":{"type":"array","items":{"type":"string"},"description":"An array of tags associated with the API path.\n"},"waapApiPathId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["domainId","httpScheme","method","path","status","waapApiPathId"],"inputProperties":{"apiGroups":{"type":"array","items":{"type":"string"},"description":"An array of API groups associated with the API path.\n"},"apiVersion":{"type":"string","description":"The API version.\n"},"domainId":{"type":"number","description":"The WAAP domain ID for which the API Path is configured.\n"},"httpScheme":{"type":"string","description":"The different HTTP schemes an API path can have. It must be one of these values: HTTP, HTTPS.\n"},"method":{"type":"string","description":"The different methods an API path can have. It must be one of these values: GET, POST, PUT, PATCH, DELETE, TRACE, HEAD, OPTIONS.\n"},"path":{"type":"string","description":"The API path, locations that are saved for resource IDs will be put in curly brackets.\n"},"status":{"type":"string","description":"The status of the discovered API path. It must be one of these values: CONFIRMED*API, POTENTIAL*API, NOT*API, DELISTED*API\n"},"tags":{"type":"array","items":{"type":"string"},"description":"An array of tags associated with the API path.\n"},"waapApiPathId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["domainId","httpScheme","method","path"],"stateInputs":{"description":"Input properties used for looking up and filtering WaapApiPath resources.\n","properties":{"apiGroups":{"type":"array","items":{"type":"string"},"description":"An array of API groups associated with the API path.\n"},"apiVersion":{"type":"string","description":"The API version.\n"},"domainId":{"type":"number","description":"The WAAP domain ID for which the API Path is configured.\n"},"httpScheme":{"type":"string","description":"The different HTTP schemes an API path can have. It must be one of these values: HTTP, HTTPS.\n"},"method":{"type":"string","description":"The different methods an API path can have. It must be one of these values: GET, POST, PUT, PATCH, DELETE, TRACE, HEAD, OPTIONS.\n"},"path":{"type":"string","description":"The API path, locations that are saved for resource IDs will be put in curly brackets.\n"},"status":{"type":"string","description":"The status of the discovered API path. It must be one of these values: CONFIRMED*API, POTENTIAL*API, NOT*API, DELISTED*API\n"},"tags":{"type":"array","items":{"type":"string"},"description":"An array of tags associated with the API path.\n"},"waapApiPathId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"gcore:index/waapCustomPageSet:WaapCustomPageSet":{"description":"Represent WAAP custom page set\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 example = new gcore.CdnResource(\"example\", {\n    cname: \"api.example.com\",\n    origin: \"origin.example.com\",\n    options: {\n        waap: {\n            value: true,\n        },\n    },\n});\nconst mydomain = new gcore.WaapDomain(\"mydomain\", {name: example.cname});\nconst exampleWaapCustomPageSet = new gcore.WaapCustomPageSet(\"example\", {\n    name: \"example-custom-pages\",\n    domains: [mydomain.waapDomainId],\n    block: {\n        logo: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA0ElEQVQ4y62TMQ6DMAxFH1GlDkgsbJXYOAecowsnYO4F2DpxGdZeghEpS4+QqerS5YOiNEVtwZKl6Nvfib+dhM92BAqd78CDL60GBsABk9wJq9eIBugBCzRA6sVSYVY5JlagB25AtnJJppw+9mzrkU/BLUbYXMSG7Qx64kx+Aq0Xb4XNRRpxFrWd17MRofAKFMKMp4kTl1JK/2oTUB7YwcIWzkAXEbFT7K2FUMRcoxqBq3wUlsdEjI0RoAIu8irYBRvbyk2LtMsq//WZkq3f+QXg4Ta9dWcCCAAAAABJRU5ErkJggg==\",\n        header: \"Initial Block Header\",\n        title: \"Initial Block Title\",\n        text: \"This is the initial block page text.\",\n        enabled: true,\n    },\n    blockCsrf: {\n        header: \"Initial CSRF Headersss\",\n        title: \"Initial CSRF Title\",\n        text: \"This is the initial CSRF block page text.\",\n        enabled: true,\n    },\n    captcha: {\n        header: \"Initial Captcha Header\",\n        title: \"Initial Captcha Title\",\n        text: \"This is the initial captcha page texts.\",\n        error: \"Initial captcha error message.\",\n        enabled: true,\n    },\n    cookieDisabled: {\n        header: \"Initial Cookie Header\",\n        text: \"Initial cookie disabled text.\",\n        enabled: true,\n    },\n    handshake: {\n        header: \"Initial Handshake Header\",\n        title: \"Initial Handshake Title\",\n        enabled: true,\n    },\n    javascriptDisabled: {\n        header: \"Initial JS Header\",\n        text: \"Initial JavaScript disabled text.\",\n        enabled: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample = gcore.CdnResource(\"example\",\n    cname=\"api.example.com\",\n    origin=\"origin.example.com\",\n    options={\n        \"waap\": {\n            \"value\": True,\n        },\n    })\nmydomain = gcore.WaapDomain(\"mydomain\", name=example.cname)\nexample_waap_custom_page_set = gcore.WaapCustomPageSet(\"example\",\n    name=\"example-custom-pages\",\n    domains=[mydomain.waap_domain_id],\n    block={\n        \"logo\": \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA0ElEQVQ4y62TMQ6DMAxFH1GlDkgsbJXYOAecowsnYO4F2DpxGdZeghEpS4+QqerS5YOiNEVtwZKl6Nvfib+dhM92BAqd78CDL60GBsABk9wJq9eIBugBCzRA6sVSYVY5JlagB25AtnJJppw+9mzrkU/BLUbYXMSG7Qx64kx+Aq0Xb4XNRRpxFrWd17MRofAKFMKMp4kTl1JK/2oTUB7YwcIWzkAXEbFT7K2FUMRcoxqBq3wUlsdEjI0RoAIu8irYBRvbyk2LtMsq//WZkq3f+QXg4Ta9dWcCCAAAAABJRU5ErkJggg==\",\n        \"header\": \"Initial Block Header\",\n        \"title\": \"Initial Block Title\",\n        \"text\": \"This is the initial block page text.\",\n        \"enabled\": True,\n    },\n    block_csrf={\n        \"header\": \"Initial CSRF Headersss\",\n        \"title\": \"Initial CSRF Title\",\n        \"text\": \"This is the initial CSRF block page text.\",\n        \"enabled\": True,\n    },\n    captcha={\n        \"header\": \"Initial Captcha Header\",\n        \"title\": \"Initial Captcha Title\",\n        \"text\": \"This is the initial captcha page texts.\",\n        \"error\": \"Initial captcha error message.\",\n        \"enabled\": True,\n    },\n    cookie_disabled={\n        \"header\": \"Initial Cookie Header\",\n        \"text\": \"Initial cookie disabled text.\",\n        \"enabled\": True,\n    },\n    handshake={\n        \"header\": \"Initial Handshake Header\",\n        \"title\": \"Initial Handshake Title\",\n        \"enabled\": True,\n    },\n    javascript_disabled={\n        \"header\": \"Initial JS Header\",\n        \"text\": \"Initial JavaScript disabled text.\",\n        \"enabled\": 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 example = new Gcore.CdnResource(\"example\", new()\n    {\n        Cname = \"api.example.com\",\n        Origin = \"origin.example.com\",\n        Options = new Gcore.Inputs.CdnResourceOptionsArgs\n        {\n            Waap = new Gcore.Inputs.CdnResourceOptionsWaapArgs\n            {\n                Value = true,\n            },\n        },\n    });\n\n    var mydomain = new Gcore.WaapDomain(\"mydomain\", new()\n    {\n        Name = example.Cname,\n    });\n\n    var exampleWaapCustomPageSet = new Gcore.WaapCustomPageSet(\"example\", new()\n    {\n        Name = \"example-custom-pages\",\n        Domains = new[]\n        {\n            mydomain.WaapDomainId,\n        },\n        Block = new Gcore.Inputs.WaapCustomPageSetBlockArgs\n        {\n            Logo = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA0ElEQVQ4y62TMQ6DMAxFH1GlDkgsbJXYOAecowsnYO4F2DpxGdZeghEpS4+QqerS5YOiNEVtwZKl6Nvfib+dhM92BAqd78CDL60GBsABk9wJq9eIBugBCzRA6sVSYVY5JlagB25AtnJJppw+9mzrkU/BLUbYXMSG7Qx64kx+Aq0Xb4XNRRpxFrWd17MRofAKFMKMp4kTl1JK/2oTUB7YwcIWzkAXEbFT7K2FUMRcoxqBq3wUlsdEjI0RoAIu8irYBRvbyk2LtMsq//WZkq3f+QXg4Ta9dWcCCAAAAABJRU5ErkJggg==\",\n            Header = \"Initial Block Header\",\n            Title = \"Initial Block Title\",\n            Text = \"This is the initial block page text.\",\n            Enabled = true,\n        },\n        BlockCsrf = new Gcore.Inputs.WaapCustomPageSetBlockCsrfArgs\n        {\n            Header = \"Initial CSRF Headersss\",\n            Title = \"Initial CSRF Title\",\n            Text = \"This is the initial CSRF block page text.\",\n            Enabled = true,\n        },\n        Captcha = new Gcore.Inputs.WaapCustomPageSetCaptchaArgs\n        {\n            Header = \"Initial Captcha Header\",\n            Title = \"Initial Captcha Title\",\n            Text = \"This is the initial captcha page texts.\",\n            Error = \"Initial captcha error message.\",\n            Enabled = true,\n        },\n        CookieDisabled = new Gcore.Inputs.WaapCustomPageSetCookieDisabledArgs\n        {\n            Header = \"Initial Cookie Header\",\n            Text = \"Initial cookie disabled text.\",\n            Enabled = true,\n        },\n        Handshake = new Gcore.Inputs.WaapCustomPageSetHandshakeArgs\n        {\n            Header = \"Initial Handshake Header\",\n            Title = \"Initial Handshake Title\",\n            Enabled = true,\n        },\n        JavascriptDisabled = new Gcore.Inputs.WaapCustomPageSetJavascriptDisabledArgs\n        {\n            Header = \"Initial JS Header\",\n            Text = \"Initial JavaScript disabled text.\",\n            Enabled = true,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewCdnResource(ctx, \"example\", \u0026gcore.CdnResourceArgs{\n\t\t\tCname:  pulumi.String(\"api.example.com\"),\n\t\t\tOrigin: pulumi.String(\"origin.example.com\"),\n\t\t\tOptions: \u0026gcore.CdnResourceOptionsArgs{\n\t\t\t\tWaap: \u0026gcore.CdnResourceOptionsWaapArgs{\n\t\t\t\t\tValue: 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\tmydomain, err := gcore.NewWaapDomain(ctx, \"mydomain\", \u0026gcore.WaapDomainArgs{\n\t\t\tName: example.Cname,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewWaapCustomPageSet(ctx, \"example\", \u0026gcore.WaapCustomPageSetArgs{\n\t\t\tName: pulumi.String(\"example-custom-pages\"),\n\t\t\tDomains: pulumi.Float64Array{\n\t\t\t\tmydomain.WaapDomainId,\n\t\t\t},\n\t\t\tBlock: \u0026gcore.WaapCustomPageSetBlockArgs{\n\t\t\t\tLogo:    pulumi.String(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA0ElEQVQ4y62TMQ6DMAxFH1GlDkgsbJXYOAecowsnYO4F2DpxGdZeghEpS4+QqerS5YOiNEVtwZKl6Nvfib+dhM92BAqd78CDL60GBsABk9wJq9eIBugBCzRA6sVSYVY5JlagB25AtnJJppw+9mzrkU/BLUbYXMSG7Qx64kx+Aq0Xb4XNRRpxFrWd17MRofAKFMKMp4kTl1JK/2oTUB7YwcIWzkAXEbFT7K2FUMRcoxqBq3wUlsdEjI0RoAIu8irYBRvbyk2LtMsq//WZkq3f+QXg4Ta9dWcCCAAAAABJRU5ErkJggg==\"),\n\t\t\t\tHeader:  pulumi.String(\"Initial Block Header\"),\n\t\t\t\tTitle:   pulumi.String(\"Initial Block Title\"),\n\t\t\t\tText:    pulumi.String(\"This is the initial block page text.\"),\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t\tBlockCsrf: \u0026gcore.WaapCustomPageSetBlockCsrfArgs{\n\t\t\t\tHeader:  pulumi.String(\"Initial CSRF Headersss\"),\n\t\t\t\tTitle:   pulumi.String(\"Initial CSRF Title\"),\n\t\t\t\tText:    pulumi.String(\"This is the initial CSRF block page text.\"),\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t\tCaptcha: \u0026gcore.WaapCustomPageSetCaptchaArgs{\n\t\t\t\tHeader:  pulumi.String(\"Initial Captcha Header\"),\n\t\t\t\tTitle:   pulumi.String(\"Initial Captcha Title\"),\n\t\t\t\tText:    pulumi.String(\"This is the initial captcha page texts.\"),\n\t\t\t\tError:   pulumi.String(\"Initial captcha error message.\"),\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t\tCookieDisabled: \u0026gcore.WaapCustomPageSetCookieDisabledArgs{\n\t\t\t\tHeader:  pulumi.String(\"Initial Cookie Header\"),\n\t\t\t\tText:    pulumi.String(\"Initial cookie disabled text.\"),\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t\tHandshake: \u0026gcore.WaapCustomPageSetHandshakeArgs{\n\t\t\t\tHeader:  pulumi.String(\"Initial Handshake Header\"),\n\t\t\t\tTitle:   pulumi.String(\"Initial Handshake Title\"),\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t\tJavascriptDisabled: \u0026gcore.WaapCustomPageSetJavascriptDisabledArgs{\n\t\t\t\tHeader:  pulumi.String(\"Initial JS Header\"),\n\t\t\t\tText:    pulumi.String(\"Initial JavaScript disabled text.\"),\n\t\t\t\tEnabled: 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.CdnResource;\nimport com.pulumi.gcore.CdnResourceArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsWaapArgs;\nimport com.pulumi.gcore.WaapDomain;\nimport com.pulumi.gcore.WaapDomainArgs;\nimport com.pulumi.gcore.WaapCustomPageSet;\nimport com.pulumi.gcore.WaapCustomPageSetArgs;\nimport com.pulumi.gcore.inputs.WaapCustomPageSetBlockArgs;\nimport com.pulumi.gcore.inputs.WaapCustomPageSetBlockCsrfArgs;\nimport com.pulumi.gcore.inputs.WaapCustomPageSetCaptchaArgs;\nimport com.pulumi.gcore.inputs.WaapCustomPageSetCookieDisabledArgs;\nimport com.pulumi.gcore.inputs.WaapCustomPageSetHandshakeArgs;\nimport com.pulumi.gcore.inputs.WaapCustomPageSetJavascriptDisabledArgs;\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 CdnResource(\"example\", CdnResourceArgs.builder()\n            .cname(\"api.example.com\")\n            .origin(\"origin.example.com\")\n            .options(CdnResourceOptionsArgs.builder()\n                .waap(CdnResourceOptionsWaapArgs.builder()\n                    .value(true)\n                    .build())\n                .build())\n            .build());\n\n        var mydomain = new WaapDomain(\"mydomain\", WaapDomainArgs.builder()\n            .name(example.cname())\n            .build());\n\n        var exampleWaapCustomPageSet = new WaapCustomPageSet(\"exampleWaapCustomPageSet\", WaapCustomPageSetArgs.builder()\n            .name(\"example-custom-pages\")\n            .domains(mydomain.waapDomainId())\n            .block(WaapCustomPageSetBlockArgs.builder()\n                .logo(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA0ElEQVQ4y62TMQ6DMAxFH1GlDkgsbJXYOAecowsnYO4F2DpxGdZeghEpS4+QqerS5YOiNEVtwZKl6Nvfib+dhM92BAqd78CDL60GBsABk9wJq9eIBugBCzRA6sVSYVY5JlagB25AtnJJppw+9mzrkU/BLUbYXMSG7Qx64kx+Aq0Xb4XNRRpxFrWd17MRofAKFMKMp4kTl1JK/2oTUB7YwcIWzkAXEbFT7K2FUMRcoxqBq3wUlsdEjI0RoAIu8irYBRvbyk2LtMsq//WZkq3f+QXg4Ta9dWcCCAAAAABJRU5ErkJggg==\")\n                .header(\"Initial Block Header\")\n                .title(\"Initial Block Title\")\n                .text(\"This is the initial block page text.\")\n                .enabled(true)\n                .build())\n            .blockCsrf(WaapCustomPageSetBlockCsrfArgs.builder()\n                .header(\"Initial CSRF Headersss\")\n                .title(\"Initial CSRF Title\")\n                .text(\"This is the initial CSRF block page text.\")\n                .enabled(true)\n                .build())\n            .captcha(WaapCustomPageSetCaptchaArgs.builder()\n                .header(\"Initial Captcha Header\")\n                .title(\"Initial Captcha Title\")\n                .text(\"This is the initial captcha page texts.\")\n                .error(\"Initial captcha error message.\")\n                .enabled(true)\n                .build())\n            .cookieDisabled(WaapCustomPageSetCookieDisabledArgs.builder()\n                .header(\"Initial Cookie Header\")\n                .text(\"Initial cookie disabled text.\")\n                .enabled(true)\n                .build())\n            .handshake(WaapCustomPageSetHandshakeArgs.builder()\n                .header(\"Initial Handshake Header\")\n                .title(\"Initial Handshake Title\")\n                .enabled(true)\n                .build())\n            .javascriptDisabled(WaapCustomPageSetJavascriptDisabledArgs.builder()\n                .header(\"Initial JS Header\")\n                .text(\"Initial JavaScript disabled text.\")\n                .enabled(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: gcore:CdnResource\n    properties:\n      cname: api.example.com\n      origin: origin.example.com\n      options:\n        waap:\n          value: true\n  mydomain:\n    type: gcore:WaapDomain\n    properties:\n      name: ${example.cname}\n  exampleWaapCustomPageSet:\n    type: gcore:WaapCustomPageSet\n    name: example\n    properties:\n      name: example-custom-pages\n      domains:\n        - ${mydomain.waapDomainId}\n      block:\n        logo: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA0ElEQVQ4y62TMQ6DMAxFH1GlDkgsbJXYOAecowsnYO4F2DpxGdZeghEpS4+QqerS5YOiNEVtwZKl6Nvfib+dhM92BAqd78CDL60GBsABk9wJq9eIBugBCzRA6sVSYVY5JlagB25AtnJJppw+9mzrkU/BLUbYXMSG7Qx64kx+Aq0Xb4XNRRpxFrWd17MRofAKFMKMp4kTl1JK/2oTUB7YwcIWzkAXEbFT7K2FUMRcoxqBq3wUlsdEjI0RoAIu8irYBRvbyk2LtMsq//WZkq3f+QXg4Ta9dWcCCAAAAABJRU5ErkJggg==\n        header: Initial Block Header\n        title: Initial Block Title\n        text: This is the initial block page text.\n        enabled: true\n      blockCsrf:\n        header: Initial CSRF Headersss\n        title: Initial CSRF Title\n        text: This is the initial CSRF block page text.\n        enabled: true\n      captcha:\n        header: Initial Captcha Header\n        title: Initial Captcha Title\n        text: This is the initial captcha page texts.\n        error: Initial captcha error message.\n        enabled: true\n      cookieDisabled:\n        header: Initial Cookie Header\n        text: Initial cookie disabled text.\n        enabled: true\n      handshake:\n        header: Initial Handshake Header\n        title: Initial Handshake Title\n        enabled: true\n      javascriptDisabled:\n        header: Initial JS Header\n        text: Initial JavaScript disabled text.\n        enabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003ccustom_page_set_id\u003e\n\n```sh\n$ pulumi import gcore:index/waapCustomPageSet:WaapCustomPageSet example 12345\n```\n\n","properties":{"block":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetBlock:WaapCustomPageSetBlock"},"blockCsrf":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetBlockCsrf:WaapCustomPageSetBlockCsrf"},"captcha":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetCaptcha:WaapCustomPageSetCaptcha"},"cookieDisabled":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetCookieDisabled:WaapCustomPageSetCookieDisabled"},"domains":{"type":"array","items":{"type":"number"},"description":"List of domain IDs associated with this custom page set.\n"},"handshake":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetHandshake:WaapCustomPageSetHandshake"},"javascriptDisabled":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetJavascriptDisabled:WaapCustomPageSetJavascriptDisabled"},"name":{"type":"string","description":"Name of the custom page set.\n"},"waapCustomPageSetId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["name","waapCustomPageSetId"],"inputProperties":{"block":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetBlock:WaapCustomPageSetBlock"},"blockCsrf":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetBlockCsrf:WaapCustomPageSetBlockCsrf"},"captcha":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetCaptcha:WaapCustomPageSetCaptcha"},"cookieDisabled":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetCookieDisabled:WaapCustomPageSetCookieDisabled"},"domains":{"type":"array","items":{"type":"number"},"description":"List of domain IDs associated with this custom page set.\n"},"handshake":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetHandshake:WaapCustomPageSetHandshake"},"javascriptDisabled":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetJavascriptDisabled:WaapCustomPageSetJavascriptDisabled"},"name":{"type":"string","description":"Name of the custom page set.\n"},"waapCustomPageSetId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering WaapCustomPageSet resources.\n","properties":{"block":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetBlock:WaapCustomPageSetBlock"},"blockCsrf":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetBlockCsrf:WaapCustomPageSetBlockCsrf"},"captcha":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetCaptcha:WaapCustomPageSetCaptcha"},"cookieDisabled":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetCookieDisabled:WaapCustomPageSetCookieDisabled"},"domains":{"type":"array","items":{"type":"number"},"description":"List of domain IDs associated with this custom page set.\n"},"handshake":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetHandshake:WaapCustomPageSetHandshake"},"javascriptDisabled":{"$ref":"#/types/gcore:index%2FWaapCustomPageSetJavascriptDisabled:WaapCustomPageSetJavascriptDisabled"},"name":{"type":"string","description":"Name of the custom page set.\n"},"waapCustomPageSetId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"gcore:index/waapCustomRule:WaapCustomRule":{"description":"Represent Custom Rules for a specific WAAP domain\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 proxyNetwork = gcore.getWaapTag({\n    name: \"Proxy Network\",\n});\nconst cdnResource = new gcore.CdnResource(\"cdn_resource\", {\n    cname: \"api.example.com\",\n    origin: \"origin.example.com\",\n    options: {\n        waap: {\n            value: true,\n        },\n    },\n});\nconst domain = new gcore.WaapDomain(\"domain\", {\n    name: cdnResource.cname,\n    status: \"monitor\",\n});\nconst customRule = new gcore.WaapCustomRule(\"custom_rule\", {\n    domainId: domain.waapDomainId,\n    name: \"Custom Rule\",\n    enabled: true,\n    action: {\n        block: {\n            statusCode: 403,\n            actionDuration: \"5m\",\n        },\n    },\n    conditions: {\n        ips: [{\n            negation: true,\n            ipAddress: \"192.168.0.6\",\n        }],\n        httpMethods: [{\n            httpMethod: \"POST\",\n        }],\n        tags: [{\n            tags: [proxyNetwork.then(proxyNetwork =\u003e proxyNetwork.id)],\n        }],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproxy_network = gcore.get_waap_tag(name=\"Proxy Network\")\ncdn_resource = gcore.CdnResource(\"cdn_resource\",\n    cname=\"api.example.com\",\n    origin=\"origin.example.com\",\n    options={\n        \"waap\": {\n            \"value\": True,\n        },\n    })\ndomain = gcore.WaapDomain(\"domain\",\n    name=cdn_resource.cname,\n    status=\"monitor\")\ncustom_rule = gcore.WaapCustomRule(\"custom_rule\",\n    domain_id=domain.waap_domain_id,\n    name=\"Custom Rule\",\n    enabled=True,\n    action={\n        \"block\": {\n            \"status_code\": 403,\n            \"action_duration\": \"5m\",\n        },\n    },\n    conditions={\n        \"ips\": [{\n            \"negation\": True,\n            \"ip_address\": \"192.168.0.6\",\n        }],\n        \"http_methods\": [{\n            \"http_method\": \"POST\",\n        }],\n        \"tags\": [{\n            \"tags\": [proxy_network.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    var proxyNetwork = Gcore.GetWaapTag.Invoke(new()\n    {\n        Name = \"Proxy Network\",\n    });\n\n    var cdnResource = new Gcore.CdnResource(\"cdn_resource\", new()\n    {\n        Cname = \"api.example.com\",\n        Origin = \"origin.example.com\",\n        Options = new Gcore.Inputs.CdnResourceOptionsArgs\n        {\n            Waap = new Gcore.Inputs.CdnResourceOptionsWaapArgs\n            {\n                Value = true,\n            },\n        },\n    });\n\n    var domain = new Gcore.WaapDomain(\"domain\", new()\n    {\n        Name = cdnResource.Cname,\n        Status = \"monitor\",\n    });\n\n    var customRule = new Gcore.WaapCustomRule(\"custom_rule\", new()\n    {\n        DomainId = domain.WaapDomainId,\n        Name = \"Custom Rule\",\n        Enabled = true,\n        Action = new Gcore.Inputs.WaapCustomRuleActionArgs\n        {\n            Block = new Gcore.Inputs.WaapCustomRuleActionBlockArgs\n            {\n                StatusCode = 403,\n                ActionDuration = \"5m\",\n            },\n        },\n        Conditions = new Gcore.Inputs.WaapCustomRuleConditionsArgs\n        {\n            Ips = new[]\n            {\n                new Gcore.Inputs.WaapCustomRuleConditionsIpArgs\n                {\n                    Negation = true,\n                    IpAddress = \"192.168.0.6\",\n                },\n            },\n            HttpMethods = new[]\n            {\n                new Gcore.Inputs.WaapCustomRuleConditionsHttpMethodArgs\n                {\n                    HttpMethod = \"POST\",\n                },\n            },\n            Tags = new[]\n            {\n                new Gcore.Inputs.WaapCustomRuleConditionsTagArgs\n                {\n                    Tags = new[]\n                    {\n                        proxyNetwork.Apply(getWaapTagResult =\u003e getWaapTagResult.Id),\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tproxyNetwork, err := gcore.GetWaapTag(ctx, \u0026gcore.GetWaapTagArgs{\n\t\t\tName: \"Proxy Network\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcdnResource, err := gcore.NewCdnResource(ctx, \"cdn_resource\", \u0026gcore.CdnResourceArgs{\n\t\t\tCname:  pulumi.String(\"api.example.com\"),\n\t\t\tOrigin: pulumi.String(\"origin.example.com\"),\n\t\t\tOptions: \u0026gcore.CdnResourceOptionsArgs{\n\t\t\t\tWaap: \u0026gcore.CdnResourceOptionsWaapArgs{\n\t\t\t\t\tValue: 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\tdomain, err := gcore.NewWaapDomain(ctx, \"domain\", \u0026gcore.WaapDomainArgs{\n\t\t\tName:   cdnResource.Cname,\n\t\t\tStatus: pulumi.String(\"monitor\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewWaapCustomRule(ctx, \"custom_rule\", \u0026gcore.WaapCustomRuleArgs{\n\t\t\tDomainId: domain.WaapDomainId,\n\t\t\tName:     pulumi.String(\"Custom Rule\"),\n\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\tAction: \u0026gcore.WaapCustomRuleActionArgs{\n\t\t\t\tBlock: \u0026gcore.WaapCustomRuleActionBlockArgs{\n\t\t\t\t\tStatusCode:     pulumi.Float64(403),\n\t\t\t\t\tActionDuration: pulumi.String(\"5m\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tConditions: \u0026gcore.WaapCustomRuleConditionsArgs{\n\t\t\t\tIps: gcore.WaapCustomRuleConditionsIpArray{\n\t\t\t\t\t\u0026gcore.WaapCustomRuleConditionsIpArgs{\n\t\t\t\t\t\tNegation:  pulumi.Bool(true),\n\t\t\t\t\t\tIpAddress: pulumi.String(\"192.168.0.6\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tHttpMethods: gcore.WaapCustomRuleConditionsHttpMethodArray{\n\t\t\t\t\t\u0026gcore.WaapCustomRuleConditionsHttpMethodArgs{\n\t\t\t\t\t\tHttpMethod: pulumi.String(\"POST\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tTags: gcore.WaapCustomRuleConditionsTagArray{\n\t\t\t\t\t\u0026gcore.WaapCustomRuleConditionsTagArgs{\n\t\t\t\t\t\tTags: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(proxyNetwork.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})\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.GetWaapTagArgs;\nimport com.pulumi.gcore.CdnResource;\nimport com.pulumi.gcore.CdnResourceArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsWaapArgs;\nimport com.pulumi.gcore.WaapDomain;\nimport com.pulumi.gcore.WaapDomainArgs;\nimport com.pulumi.gcore.WaapCustomRule;\nimport com.pulumi.gcore.WaapCustomRuleArgs;\nimport com.pulumi.gcore.inputs.WaapCustomRuleActionArgs;\nimport com.pulumi.gcore.inputs.WaapCustomRuleActionBlockArgs;\nimport com.pulumi.gcore.inputs.WaapCustomRuleConditionsArgs;\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 proxyNetwork = GcoreFunctions.getWaapTag(GetWaapTagArgs.builder()\n            .name(\"Proxy Network\")\n            .build());\n\n        var cdnResource = new CdnResource(\"cdnResource\", CdnResourceArgs.builder()\n            .cname(\"api.example.com\")\n            .origin(\"origin.example.com\")\n            .options(CdnResourceOptionsArgs.builder()\n                .waap(CdnResourceOptionsWaapArgs.builder()\n                    .value(true)\n                    .build())\n                .build())\n            .build());\n\n        var domain = new WaapDomain(\"domain\", WaapDomainArgs.builder()\n            .name(cdnResource.cname())\n            .status(\"monitor\")\n            .build());\n\n        var customRule = new WaapCustomRule(\"customRule\", WaapCustomRuleArgs.builder()\n            .domainId(domain.waapDomainId())\n            .name(\"Custom Rule\")\n            .enabled(true)\n            .action(WaapCustomRuleActionArgs.builder()\n                .block(WaapCustomRuleActionBlockArgs.builder()\n                    .statusCode(403.0)\n                    .actionDuration(\"5m\")\n                    .build())\n                .build())\n            .conditions(WaapCustomRuleConditionsArgs.builder()\n                .ips(WaapCustomRuleConditionsIpArgs.builder()\n                    .negation(true)\n                    .ipAddress(\"192.168.0.6\")\n                    .build())\n                .httpMethods(WaapCustomRuleConditionsHttpMethodArgs.builder()\n                    .httpMethod(\"POST\")\n                    .build())\n                .tags(WaapCustomRuleConditionsTagArgs.builder()\n                    .tags(proxyNetwork.id())\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cdnResource:\n    type: gcore:CdnResource\n    name: cdn_resource\n    properties:\n      cname: api.example.com\n      origin: origin.example.com\n      options:\n        waap:\n          value: true\n  domain:\n    type: gcore:WaapDomain\n    properties:\n      name: ${cdnResource.cname}\n      status: monitor\n  customRule:\n    type: gcore:WaapCustomRule\n    name: custom_rule\n    properties:\n      domainId: ${domain.waapDomainId}\n      name: Custom Rule\n      enabled: true\n      action:\n        block:\n          statusCode: 403\n          actionDuration: 5m\n      conditions:\n        ips:\n          - negation: true\n            ipAddress: 192.168.0.6\n        httpMethods:\n          - httpMethod: POST\n        tags:\n          - tags:\n              - ${proxyNetwork.id}\nvariables:\n  proxyNetwork:\n    fn::invoke:\n      function: gcore:getWaapTag\n      arguments:\n        name: Proxy Network\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cdomain_id\u003e:\u003crule_id\u003e\n\n```sh\n$ pulumi import gcore:index/waapCustomRule:WaapCustomRule custom_rule 10029:98347\n```\n\n","properties":{"action":{"$ref":"#/types/gcore:index%2FWaapCustomRuleAction:WaapCustomRuleAction","description":"The action that the rule takes when triggered.\n"},"conditions":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditions:WaapCustomRuleConditions","description":"The conditions required for the WAAP engine to trigger the rule. Rules may have between 1 and 5 conditions. All conditions must pass for the rule to trigger.\n"},"description":{"type":"string","description":"The description assigned to the rule.\n"},"domainId":{"type":"number","description":"The WAAP domain ID for which the Custom Rule is configured.\n"},"enabled":{"type":"boolean","description":"Whether the rule is enabled.\n"},"name":{"type":"string","description":"The name assigned to the rule.\n"},"waapCustomRuleId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["action","conditions","domainId","enabled","name","waapCustomRuleId"],"inputProperties":{"action":{"$ref":"#/types/gcore:index%2FWaapCustomRuleAction:WaapCustomRuleAction","description":"The action that the rule takes when triggered.\n"},"conditions":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditions:WaapCustomRuleConditions","description":"The conditions required for the WAAP engine to trigger the rule. Rules may have between 1 and 5 conditions. All conditions must pass for the rule to trigger.\n"},"description":{"type":"string","description":"The description assigned to the rule.\n"},"domainId":{"type":"number","description":"The WAAP domain ID for which the Custom Rule is configured.\n"},"enabled":{"type":"boolean","description":"Whether the rule is enabled.\n"},"name":{"type":"string","description":"The name assigned to the rule.\n"},"waapCustomRuleId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["action","conditions","domainId","enabled"],"stateInputs":{"description":"Input properties used for looking up and filtering WaapCustomRule resources.\n","properties":{"action":{"$ref":"#/types/gcore:index%2FWaapCustomRuleAction:WaapCustomRuleAction","description":"The action that the rule takes when triggered.\n"},"conditions":{"$ref":"#/types/gcore:index%2FWaapCustomRuleConditions:WaapCustomRuleConditions","description":"The conditions required for the WAAP engine to trigger the rule. Rules may have between 1 and 5 conditions. All conditions must pass for the rule to trigger.\n"},"description":{"type":"string","description":"The description assigned to the rule.\n"},"domainId":{"type":"number","description":"The WAAP domain ID for which the Custom Rule is configured.\n"},"enabled":{"type":"boolean","description":"Whether the rule is enabled.\n"},"name":{"type":"string","description":"The name assigned to the rule.\n"},"waapCustomRuleId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"gcore:index/waapDomain:WaapDomain":{"description":"Represent WAAP domain\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 example = new gcore.CdnResource(\"example\", {\n    cname: \"api.example.com\",\n    origin: \"origin.example.com\",\n    options: {\n        waap: {\n            value: true,\n        },\n    },\n});\nconst domain = new gcore.WaapDomain(\"domain\", {\n    name: example.cname,\n    status: \"monitor\",\n    settings: {\n        ddos: {\n            globalThreshold: 2000,\n            burstThreshold: 1000,\n        },\n        api: {\n            apiUrls: [\n                \"https://api.example.com/v1\",\n                \"https://api.example.com/v2\",\n            ],\n        },\n    },\n    apiDiscoverySettings: {\n        descriptionFileLocation: \"https://api.example.com/v1/openapi.json\",\n        descriptionFileScanEnabled: true,\n        descriptionFileScanIntervalHours: 24,\n        trafficScanEnabled: true,\n        trafficScanIntervalHours: 6,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample = gcore.CdnResource(\"example\",\n    cname=\"api.example.com\",\n    origin=\"origin.example.com\",\n    options={\n        \"waap\": {\n            \"value\": True,\n        },\n    })\ndomain = gcore.WaapDomain(\"domain\",\n    name=example.cname,\n    status=\"monitor\",\n    settings={\n        \"ddos\": {\n            \"global_threshold\": 2000,\n            \"burst_threshold\": 1000,\n        },\n        \"api\": {\n            \"api_urls\": [\n                \"https://api.example.com/v1\",\n                \"https://api.example.com/v2\",\n            ],\n        },\n    },\n    api_discovery_settings={\n        \"description_file_location\": \"https://api.example.com/v1/openapi.json\",\n        \"description_file_scan_enabled\": True,\n        \"description_file_scan_interval_hours\": 24,\n        \"traffic_scan_enabled\": True,\n        \"traffic_scan_interval_hours\": 6,\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.CdnResource(\"example\", new()\n    {\n        Cname = \"api.example.com\",\n        Origin = \"origin.example.com\",\n        Options = new Gcore.Inputs.CdnResourceOptionsArgs\n        {\n            Waap = new Gcore.Inputs.CdnResourceOptionsWaapArgs\n            {\n                Value = true,\n            },\n        },\n    });\n\n    var domain = new Gcore.WaapDomain(\"domain\", new()\n    {\n        Name = example.Cname,\n        Status = \"monitor\",\n        Settings = new Gcore.Inputs.WaapDomainSettingsArgs\n        {\n            Ddos = new Gcore.Inputs.WaapDomainSettingsDdosArgs\n            {\n                GlobalThreshold = 2000,\n                BurstThreshold = 1000,\n            },\n            Api = new Gcore.Inputs.WaapDomainSettingsApiArgs\n            {\n                ApiUrls = new[]\n                {\n                    \"https://api.example.com/v1\",\n                    \"https://api.example.com/v2\",\n                },\n            },\n        },\n        ApiDiscoverySettings = new Gcore.Inputs.WaapDomainApiDiscoverySettingsArgs\n        {\n            DescriptionFileLocation = \"https://api.example.com/v1/openapi.json\",\n            DescriptionFileScanEnabled = true,\n            DescriptionFileScanIntervalHours = 24,\n            TrafficScanEnabled = true,\n            TrafficScanIntervalHours = 6,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewCdnResource(ctx, \"example\", \u0026gcore.CdnResourceArgs{\n\t\t\tCname:  pulumi.String(\"api.example.com\"),\n\t\t\tOrigin: pulumi.String(\"origin.example.com\"),\n\t\t\tOptions: \u0026gcore.CdnResourceOptionsArgs{\n\t\t\t\tWaap: \u0026gcore.CdnResourceOptionsWaapArgs{\n\t\t\t\t\tValue: 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.NewWaapDomain(ctx, \"domain\", \u0026gcore.WaapDomainArgs{\n\t\t\tName:   example.Cname,\n\t\t\tStatus: pulumi.String(\"monitor\"),\n\t\t\tSettings: \u0026gcore.WaapDomainSettingsArgs{\n\t\t\t\tDdos: \u0026gcore.WaapDomainSettingsDdosArgs{\n\t\t\t\t\tGlobalThreshold: pulumi.Float64(2000),\n\t\t\t\t\tBurstThreshold:  pulumi.Float64(1000),\n\t\t\t\t},\n\t\t\t\tApi: \u0026gcore.WaapDomainSettingsApiArgs{\n\t\t\t\t\tApiUrls: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"https://api.example.com/v1\"),\n\t\t\t\t\t\tpulumi.String(\"https://api.example.com/v2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tApiDiscoverySettings: \u0026gcore.WaapDomainApiDiscoverySettingsArgs{\n\t\t\t\tDescriptionFileLocation:          pulumi.String(\"https://api.example.com/v1/openapi.json\"),\n\t\t\t\tDescriptionFileScanEnabled:       pulumi.Bool(true),\n\t\t\t\tDescriptionFileScanIntervalHours: pulumi.Float64(24),\n\t\t\t\tTrafficScanEnabled:               pulumi.Bool(true),\n\t\t\t\tTrafficScanIntervalHours:         pulumi.Float64(6),\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.CdnResource;\nimport com.pulumi.gcore.CdnResourceArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsWaapArgs;\nimport com.pulumi.gcore.WaapDomain;\nimport com.pulumi.gcore.WaapDomainArgs;\nimport com.pulumi.gcore.inputs.WaapDomainSettingsArgs;\nimport com.pulumi.gcore.inputs.WaapDomainSettingsDdosArgs;\nimport com.pulumi.gcore.inputs.WaapDomainSettingsApiArgs;\nimport com.pulumi.gcore.inputs.WaapDomainApiDiscoverySettingsArgs;\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 CdnResource(\"example\", CdnResourceArgs.builder()\n            .cname(\"api.example.com\")\n            .origin(\"origin.example.com\")\n            .options(CdnResourceOptionsArgs.builder()\n                .waap(CdnResourceOptionsWaapArgs.builder()\n                    .value(true)\n                    .build())\n                .build())\n            .build());\n\n        var domain = new WaapDomain(\"domain\", WaapDomainArgs.builder()\n            .name(example.cname())\n            .status(\"monitor\")\n            .settings(WaapDomainSettingsArgs.builder()\n                .ddos(WaapDomainSettingsDdosArgs.builder()\n                    .globalThreshold(2000.0)\n                    .burstThreshold(1000.0)\n                    .build())\n                .api(WaapDomainSettingsApiArgs.builder()\n                    .apiUrls(                    \n                        \"https://api.example.com/v1\",\n                        \"https://api.example.com/v2\")\n                    .build())\n                .build())\n            .apiDiscoverySettings(WaapDomainApiDiscoverySettingsArgs.builder()\n                .descriptionFileLocation(\"https://api.example.com/v1/openapi.json\")\n                .descriptionFileScanEnabled(true)\n                .descriptionFileScanIntervalHours(24.0)\n                .trafficScanEnabled(true)\n                .trafficScanIntervalHours(6.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: gcore:CdnResource\n    properties:\n      cname: api.example.com\n      origin: origin.example.com\n      options:\n        waap:\n          value: true\n  domain:\n    type: gcore:WaapDomain\n    properties:\n      name: ${example.cname}\n      status: monitor\n      settings:\n        ddos:\n          globalThreshold: 2000\n          burstThreshold: 1000\n        api:\n          apiUrls:\n            - https://api.example.com/v1\n            - https://api.example.com/v2\n      apiDiscoverySettings:\n        descriptionFileLocation: https://api.example.com/v1/openapi.json\n        descriptionFileScanEnabled: true\n        descriptionFileScanIntervalHours: 24\n        trafficScanEnabled: true\n        trafficScanIntervalHours: 6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"apiDiscoverySettings":{"$ref":"#/types/gcore:index%2FWaapDomainApiDiscoverySettings:WaapDomainApiDiscoverySettings"},"name":{"type":"string","description":"Name of the domain.\n"},"settings":{"$ref":"#/types/gcore:index%2FWaapDomainSettings:WaapDomainSettings"},"status":{"type":"string","description":"Status of the domain. It must be one of these values {active, monitor}.\n"},"waapDomainId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["name","status","waapDomainId"],"inputProperties":{"apiDiscoverySettings":{"$ref":"#/types/gcore:index%2FWaapDomainApiDiscoverySettings:WaapDomainApiDiscoverySettings"},"name":{"type":"string","description":"Name of the domain.\n"},"settings":{"$ref":"#/types/gcore:index%2FWaapDomainSettings:WaapDomainSettings"},"status":{"type":"string","description":"Status of the domain. It must be one of these values {active, monitor}.\n"},"waapDomainId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering WaapDomain resources.\n","properties":{"apiDiscoverySettings":{"$ref":"#/types/gcore:index%2FWaapDomainApiDiscoverySettings:WaapDomainApiDiscoverySettings"},"name":{"type":"string","description":"Name of the domain.\n"},"settings":{"$ref":"#/types/gcore:index%2FWaapDomainSettings:WaapDomainSettings"},"status":{"type":"string","description":"Status of the domain. It must be one of these values {active, monitor}.\n"},"waapDomainId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"gcore:index/waapFirewallRule:WaapFirewallRule":{"description":"Represent WAAP Firewall Rule\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 example = new gcore.CdnResource(\"example\", {\n    cname: \"api.example.com\",\n    origin: \"origin.example.com\",\n    options: {\n        waap: {\n            value: true,\n        },\n    },\n});\nconst domain = new gcore.WaapDomain(\"domain\", {\n    name: cdnResource.cname,\n    status: \"monitor\",\n});\nconst firewallRule = new gcore.WaapFirewallRule(\"firewall_rule\", {\n    domainId: domain.waapDomainId,\n    name: \"Block IP Range\",\n    description: \"Block range of IP addresses\",\n    enabled: true,\n    action: {\n        block: {\n            statusCode: 403,\n            actionDuration: \"12h\",\n        },\n    },\n    conditions: {\n        ipRange: {\n            lowerBound: \"192.168.1.1\",\n            upperBound: \"192.168.1.7\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample = gcore.CdnResource(\"example\",\n    cname=\"api.example.com\",\n    origin=\"origin.example.com\",\n    options={\n        \"waap\": {\n            \"value\": True,\n        },\n    })\ndomain = gcore.WaapDomain(\"domain\",\n    name=cdn_resource[\"cname\"],\n    status=\"monitor\")\nfirewall_rule = gcore.WaapFirewallRule(\"firewall_rule\",\n    domain_id=domain.waap_domain_id,\n    name=\"Block IP Range\",\n    description=\"Block range of IP addresses\",\n    enabled=True,\n    action={\n        \"block\": {\n            \"status_code\": 403,\n            \"action_duration\": \"12h\",\n        },\n    },\n    conditions={\n        \"ip_range\": {\n            \"lower_bound\": \"192.168.1.1\",\n            \"upper_bound\": \"192.168.1.7\",\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.CdnResource(\"example\", new()\n    {\n        Cname = \"api.example.com\",\n        Origin = \"origin.example.com\",\n        Options = new Gcore.Inputs.CdnResourceOptionsArgs\n        {\n            Waap = new Gcore.Inputs.CdnResourceOptionsWaapArgs\n            {\n                Value = true,\n            },\n        },\n    });\n\n    var domain = new Gcore.WaapDomain(\"domain\", new()\n    {\n        Name = cdnResource.Cname,\n        Status = \"monitor\",\n    });\n\n    var firewallRule = new Gcore.WaapFirewallRule(\"firewall_rule\", new()\n    {\n        DomainId = domain.WaapDomainId,\n        Name = \"Block IP Range\",\n        Description = \"Block range of IP addresses\",\n        Enabled = true,\n        Action = new Gcore.Inputs.WaapFirewallRuleActionArgs\n        {\n            Block = new Gcore.Inputs.WaapFirewallRuleActionBlockArgs\n            {\n                StatusCode = 403,\n                ActionDuration = \"12h\",\n            },\n        },\n        Conditions = new Gcore.Inputs.WaapFirewallRuleConditionsArgs\n        {\n            IpRange = new Gcore.Inputs.WaapFirewallRuleConditionsIpRangeArgs\n            {\n                LowerBound = \"192.168.1.1\",\n                UpperBound = \"192.168.1.7\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.NewCdnResource(ctx, \"example\", \u0026gcore.CdnResourceArgs{\n\t\t\tCname:  pulumi.String(\"api.example.com\"),\n\t\t\tOrigin: pulumi.String(\"origin.example.com\"),\n\t\t\tOptions: \u0026gcore.CdnResourceOptionsArgs{\n\t\t\t\tWaap: \u0026gcore.CdnResourceOptionsWaapArgs{\n\t\t\t\t\tValue: 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\tdomain, err := gcore.NewWaapDomain(ctx, \"domain\", \u0026gcore.WaapDomainArgs{\n\t\t\tName:   pulumi.Any(cdnResource.Cname),\n\t\t\tStatus: pulumi.String(\"monitor\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewWaapFirewallRule(ctx, \"firewall_rule\", \u0026gcore.WaapFirewallRuleArgs{\n\t\t\tDomainId:    domain.WaapDomainId,\n\t\t\tName:        pulumi.String(\"Block IP Range\"),\n\t\t\tDescription: pulumi.String(\"Block range of IP addresses\"),\n\t\t\tEnabled:     pulumi.Bool(true),\n\t\t\tAction: \u0026gcore.WaapFirewallRuleActionArgs{\n\t\t\t\tBlock: \u0026gcore.WaapFirewallRuleActionBlockArgs{\n\t\t\t\t\tStatusCode:     pulumi.Float64(403),\n\t\t\t\t\tActionDuration: pulumi.String(\"12h\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tConditions: \u0026gcore.WaapFirewallRuleConditionsArgs{\n\t\t\t\tIpRange: \u0026gcore.WaapFirewallRuleConditionsIpRangeArgs{\n\t\t\t\t\tLowerBound: pulumi.String(\"192.168.1.1\"),\n\t\t\t\t\tUpperBound: pulumi.String(\"192.168.1.7\"),\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.CdnResource;\nimport com.pulumi.gcore.CdnResourceArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsWaapArgs;\nimport com.pulumi.gcore.WaapDomain;\nimport com.pulumi.gcore.WaapDomainArgs;\nimport com.pulumi.gcore.WaapFirewallRule;\nimport com.pulumi.gcore.WaapFirewallRuleArgs;\nimport com.pulumi.gcore.inputs.WaapFirewallRuleActionArgs;\nimport com.pulumi.gcore.inputs.WaapFirewallRuleActionBlockArgs;\nimport com.pulumi.gcore.inputs.WaapFirewallRuleConditionsArgs;\nimport com.pulumi.gcore.inputs.WaapFirewallRuleConditionsIpRangeArgs;\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 CdnResource(\"example\", CdnResourceArgs.builder()\n            .cname(\"api.example.com\")\n            .origin(\"origin.example.com\")\n            .options(CdnResourceOptionsArgs.builder()\n                .waap(CdnResourceOptionsWaapArgs.builder()\n                    .value(true)\n                    .build())\n                .build())\n            .build());\n\n        var domain = new WaapDomain(\"domain\", WaapDomainArgs.builder()\n            .name(cdnResource.cname())\n            .status(\"monitor\")\n            .build());\n\n        var firewallRule = new WaapFirewallRule(\"firewallRule\", WaapFirewallRuleArgs.builder()\n            .domainId(domain.waapDomainId())\n            .name(\"Block IP Range\")\n            .description(\"Block range of IP addresses\")\n            .enabled(true)\n            .action(WaapFirewallRuleActionArgs.builder()\n                .block(WaapFirewallRuleActionBlockArgs.builder()\n                    .statusCode(403.0)\n                    .actionDuration(\"12h\")\n                    .build())\n                .build())\n            .conditions(WaapFirewallRuleConditionsArgs.builder()\n                .ipRange(WaapFirewallRuleConditionsIpRangeArgs.builder()\n                    .lowerBound(\"192.168.1.1\")\n                    .upperBound(\"192.168.1.7\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: gcore:CdnResource\n    properties:\n      cname: api.example.com\n      origin: origin.example.com\n      options:\n        waap:\n          value: true\n  domain:\n    type: gcore:WaapDomain\n    properties:\n      name: ${cdnResource.cname}\n      status: monitor\n  firewallRule:\n    type: gcore:WaapFirewallRule\n    name: firewall_rule\n    properties:\n      domainId: ${domain.waapDomainId}\n      name: Block IP Range\n      description: Block range of IP addresses\n      enabled: true\n      action:\n        block:\n          statusCode: 403\n          actionDuration: 12h\n      conditions:\n        ipRange:\n          lowerBound: 192.168.1.1\n          upperBound: 192.168.1.7\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nimport using \u003cdomain_id\u003e:\u003crule_id\u003e\n\n```sh\n$ pulumi import gcore:index/waapFirewallRule:WaapFirewallRule firewall_rule 136578:912200\n```\n\n","properties":{"action":{"$ref":"#/types/gcore:index%2FWaapFirewallRuleAction:WaapFirewallRuleAction","description":"The action that the rule takes when triggered.\n"},"conditions":{"$ref":"#/types/gcore:index%2FWaapFirewallRuleConditions:WaapFirewallRuleConditions","description":"The condition required for the WAAP engine to trigger the rule.\n"},"description":{"type":"string","description":"Description of the firewall rule.\n"},"domainId":{"type":"number","description":"The WAAP domain ID for which the Firewall Rule is configured.\n"},"enabled":{"type":"boolean","description":"Whether the rule is enabled.\n"},"name":{"type":"string","description":"Name of the firewall rule.\n"},"waapFirewallRuleId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["action","conditions","domainId","enabled","name","waapFirewallRuleId"],"inputProperties":{"action":{"$ref":"#/types/gcore:index%2FWaapFirewallRuleAction:WaapFirewallRuleAction","description":"The action that the rule takes when triggered.\n"},"conditions":{"$ref":"#/types/gcore:index%2FWaapFirewallRuleConditions:WaapFirewallRuleConditions","description":"The condition required for the WAAP engine to trigger the rule.\n"},"description":{"type":"string","description":"Description of the firewall rule.\n"},"domainId":{"type":"number","description":"The WAAP domain ID for which the Firewall Rule is configured.\n"},"enabled":{"type":"boolean","description":"Whether the rule is enabled.\n"},"name":{"type":"string","description":"Name of the firewall rule.\n"},"waapFirewallRuleId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["action","conditions","domainId","enabled"],"stateInputs":{"description":"Input properties used for looking up and filtering WaapFirewallRule resources.\n","properties":{"action":{"$ref":"#/types/gcore:index%2FWaapFirewallRuleAction:WaapFirewallRuleAction","description":"The action that the rule takes when triggered.\n"},"conditions":{"$ref":"#/types/gcore:index%2FWaapFirewallRuleConditions:WaapFirewallRuleConditions","description":"The condition required for the WAAP engine to trigger the rule.\n"},"description":{"type":"string","description":"Description of the firewall rule.\n"},"domainId":{"type":"number","description":"The WAAP domain ID for which the Firewall Rule is configured.\n"},"enabled":{"type":"boolean","description":"Whether the rule is enabled.\n"},"name":{"type":"string","description":"Name of the firewall rule.\n"},"waapFirewallRuleId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"gcore:index/waapPolicy:WaapPolicy":{"description":"Represent WAAP Policy\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 cdnResource = new gcore.CdnResource(\"cdn_resource\", {\n    cname: \"api.example.com\",\n    origin: \"origin.example.com\",\n    options: {\n        waap: {\n            value: true,\n        },\n    },\n});\nconst domain = new gcore.WaapDomain(\"domain\", {\n    name: cdnResource.cname,\n    status: \"monitor\",\n});\nconst invalidUserAgent = domain.waapDomainId.apply(waapDomainId =\u003e gcore.getWaapDomainPolicyOutput({\n    domainId: waapDomainId,\n    name: \"Invalid user agent\",\n    group: \"PROTOCOL\",\n}));\nconst wafSqlInjection = domain.waapDomainId.apply(waapDomainId =\u003e gcore.getWaapDomainPolicyOutput({\n    domainId: waapDomainId,\n    name: \"SQL injection\",\n    group: \"WAF\",\n}));\nconst domainPolicy = new gcore.WaapPolicy(\"domain_policy\", {\n    domainId: domain.waapDomainId,\n    policies: pulumi.all([invalidUserAgent, wafSqlInjection]).apply(([invalidUserAgent, wafSqlInjection]) =\u003e {\n        [invalidUserAgent.id]: false,\n        [wafSqlInjection.id]: true,\n        S55075105: true,\n        S55075106: true,\n        S55075107: true,\n    }),\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\ncdn_resource = gcore.CdnResource(\"cdn_resource\",\n    cname=\"api.example.com\",\n    origin=\"origin.example.com\",\n    options={\n        \"waap\": {\n            \"value\": True,\n        },\n    })\ndomain = gcore.WaapDomain(\"domain\",\n    name=cdn_resource.cname,\n    status=\"monitor\")\ninvalid_user_agent = domain.waap_domain_id.apply(lambda waap_domain_id: gcore.get_waap_domain_policy_output(domain_id=waap_domain_id,\n    name=\"Invalid user agent\",\n    group=\"PROTOCOL\"))\nwaf_sql_injection = domain.waap_domain_id.apply(lambda waap_domain_id: gcore.get_waap_domain_policy_output(domain_id=waap_domain_id,\n    name=\"SQL injection\",\n    group=\"WAF\"))\ndomain_policy = gcore.WaapPolicy(\"domain_policy\",\n    domain_id=domain.waap_domain_id,\n    policies=pulumi.Output.all(\n        invalid_user_agent=invalid_user_agent,\n        waf_sql_injection=waf_sql_injection\n).apply(lambda resolved_outputs: {\n        resolved_outputs['invalid_user_agent']: False,\n        resolved_outputs['waf_sql_injection']: True,\n        \"S55075105\": True,\n        \"S55075106\": True,\n        \"S55075107\": 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 cdnResource = new Gcore.CdnResource(\"cdn_resource\", new()\n    {\n        Cname = \"api.example.com\",\n        Origin = \"origin.example.com\",\n        Options = new Gcore.Inputs.CdnResourceOptionsArgs\n        {\n            Waap = new Gcore.Inputs.CdnResourceOptionsWaapArgs\n            {\n                Value = true,\n            },\n        },\n    });\n\n    var domain = new Gcore.WaapDomain(\"domain\", new()\n    {\n        Name = cdnResource.Cname,\n        Status = \"monitor\",\n    });\n\n    var invalidUserAgent = Gcore.GetWaapDomainPolicy.Invoke(new()\n    {\n        DomainId = domain.WaapDomainId,\n        Name = \"Invalid user agent\",\n        Group = \"PROTOCOL\",\n    });\n\n    var wafSqlInjection = Gcore.GetWaapDomainPolicy.Invoke(new()\n    {\n        DomainId = domain.WaapDomainId,\n        Name = \"SQL injection\",\n        Group = \"WAF\",\n    });\n\n    var domainPolicy = new Gcore.WaapPolicy(\"domain_policy\", new()\n    {\n        DomainId = domain.WaapDomainId,\n        Policies = Output.Tuple(invalidUserAgent, wafSqlInjection).Apply(values =\u003e\n        {\n            var invalidUserAgent = values.Item1;\n            var wafSqlInjection = values.Item2;\n            return \n            {\n                { invalidUserAgent.Apply(getWaapDomainPolicyResult =\u003e getWaapDomainPolicyResult.Id), false },\n                { wafSqlInjection.Apply(getWaapDomainPolicyResult =\u003e getWaapDomainPolicyResult.Id), true },\n                { \"S55075105\", true },\n                { \"S55075106\", true },\n                { \"S55075107\", true },\n            };\n        }),\n    });\n\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.CdnResource;\nimport com.pulumi.gcore.CdnResourceArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsWaapArgs;\nimport com.pulumi.gcore.WaapDomain;\nimport com.pulumi.gcore.WaapDomainArgs;\nimport com.pulumi.gcore.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetWaapDomainPolicyArgs;\nimport com.pulumi.gcore.WaapPolicy;\nimport com.pulumi.gcore.WaapPolicyArgs;\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 cdnResource = new CdnResource(\"cdnResource\", CdnResourceArgs.builder()\n            .cname(\"api.example.com\")\n            .origin(\"origin.example.com\")\n            .options(CdnResourceOptionsArgs.builder()\n                .waap(CdnResourceOptionsWaapArgs.builder()\n                    .value(true)\n                    .build())\n                .build())\n            .build());\n\n        var domain = new WaapDomain(\"domain\", WaapDomainArgs.builder()\n            .name(cdnResource.cname())\n            .status(\"monitor\")\n            .build());\n\n        final var invalidUserAgent = domain.waapDomainId().applyValue(_waapDomainId -\u003e GcoreFunctions.getWaapDomainPolicy(GetWaapDomainPolicyArgs.builder()\n            .domainId(_waapDomainId)\n            .name(\"Invalid user agent\")\n            .group(\"PROTOCOL\")\n            .build()));\n\n        final var wafSqlInjection = domain.waapDomainId().applyValue(_waapDomainId -\u003e GcoreFunctions.getWaapDomainPolicy(GetWaapDomainPolicyArgs.builder()\n            .domainId(_waapDomainId)\n            .name(\"SQL injection\")\n            .group(\"WAF\")\n            .build()));\n\n        var domainPolicy = new WaapPolicy(\"domainPolicy\", WaapPolicyArgs.builder()\n            .domainId(domain.waapDomainId())\n            .policies(Output.tuple(invalidUserAgent, wafSqlInjection).applyValue(values -\u003e {\n                var invalidUserAgent = values.t1;\n                var wafSqlInjection = values.t2;\n                return Map.ofEntries(\n                    Map.entry(invalidUserAgent.id(), false),\n                    Map.entry(wafSqlInjection.id(), true),\n                    Map.entry(\"S55075105\", true),\n                    Map.entry(\"S55075106\", true),\n                    Map.entry(\"S55075107\", true)\n                );\n            }))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cdnResource:\n    type: gcore:CdnResource\n    name: cdn_resource\n    properties:\n      cname: api.example.com\n      origin: origin.example.com\n      options:\n        waap:\n          value: true\n  domain:\n    type: gcore:WaapDomain\n    properties:\n      name: ${cdnResource.cname}\n      status: monitor\n  domainPolicy:\n    type: gcore:WaapPolicy\n    name: domain_policy\n    properties:\n      domainId: ${domain.waapDomainId}\n      policies:\n        ${invalidUserAgent.id}: false\n        ${wafSqlInjection.id}: true\n        S55075105: true\n        S55075106: true\n        S55075107: true\nvariables:\n  invalidUserAgent:\n    fn::invoke:\n      function: gcore:getWaapDomainPolicy\n      arguments:\n        domainId: ${domain.waapDomainId}\n        name: Invalid user agent\n        group: PROTOCOL\n  wafSqlInjection:\n    fn::invoke:\n      function: gcore:getWaapDomainPolicy\n      arguments:\n        domainId: ${domain.waapDomainId}\n        name: SQL injection\n        group: WAF\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"domainId":{"type":"string","description":"The WAAP domain ID for which the Policy is configured.\n"},"policies":{"type":"object","additionalProperties":{"type":"boolean"},"description":"A map of policies where each key is a policy ID and the value is a boolean indicating whether the policy is enabled (true) or disabled (false). Policy IDs can be obtained from the API endpoint /v1/domains/{domain*id}/rule-sets (the 'rules' field) or you can use the gcore*waap*domain*policy data source.\n"},"waapPolicyId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["domainId","policies","waapPolicyId"],"inputProperties":{"domainId":{"type":"string","description":"The WAAP domain ID for which the Policy is configured.\n"},"policies":{"type":"object","additionalProperties":{"type":"boolean"},"description":"A map of policies where each key is a policy ID and the value is a boolean indicating whether the policy is enabled (true) or disabled (false). Policy IDs can be obtained from the API endpoint /v1/domains/{domain*id}/rule-sets (the 'rules' field) or you can use the gcore*waap*domain*policy data source.\n"},"waapPolicyId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["domainId","policies"],"stateInputs":{"description":"Input properties used for looking up and filtering WaapPolicy resources.\n","properties":{"domainId":{"type":"string","description":"The WAAP domain ID for which the Policy is configured.\n"},"policies":{"type":"object","additionalProperties":{"type":"boolean"},"description":"A map of policies where each key is a policy ID and the value is a boolean indicating whether the policy is enabled (true) or disabled (false). Policy IDs can be obtained from the API endpoint /v1/domains/{domain*id}/rule-sets (the 'rules' field) or you can use the gcore*waap*domain*policy data source.\n"},"waapPolicyId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"gcore:index/waapSecurityInsightSilence:WaapSecurityInsightSilence":{"description":"Represent Security Insight Silence for a specific WAAP domain\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 attackOnDisabledPolicy = gcore.getWaapSecurityInsightType({\n    name: \"Attack on disabled policy\",\n});\nconst cdnResource = new gcore.CdnResource(\"cdn_resource\", {\n    cname: \"api.example.com\",\n    origin: \"origin.example.com\",\n    options: {\n        waap: {\n            value: true,\n        },\n    },\n});\nconst domain = new gcore.WaapDomain(\"domain\", {\n    name: cdnResource.cname,\n    status: \"monitor\",\n});\nconst insightSilence = new gcore.WaapSecurityInsightSilence(\"insight_silence\", {\n    domainId: domain.waapDomainId,\n    insightType: attackOnDisabledPolicy.then(attackOnDisabledPolicy =\u003e attackOnDisabledPolicy.id),\n    comment: \"Example Insight Silence\",\n    author: \"Gcore\",\n    labels: {\n        attack_type: \"exmple\",\n    },\n    expireAt: \"2026-08-24T14:00:00Z\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nattack_on_disabled_policy = gcore.get_waap_security_insight_type(name=\"Attack on disabled policy\")\ncdn_resource = gcore.CdnResource(\"cdn_resource\",\n    cname=\"api.example.com\",\n    origin=\"origin.example.com\",\n    options={\n        \"waap\": {\n            \"value\": True,\n        },\n    })\ndomain = gcore.WaapDomain(\"domain\",\n    name=cdn_resource.cname,\n    status=\"monitor\")\ninsight_silence = gcore.WaapSecurityInsightSilence(\"insight_silence\",\n    domain_id=domain.waap_domain_id,\n    insight_type=attack_on_disabled_policy.id,\n    comment=\"Example Insight Silence\",\n    author=\"Gcore\",\n    labels={\n        \"attack_type\": \"exmple\",\n    },\n    expire_at=\"2026-08-24T14:00:00Z\")\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 attackOnDisabledPolicy = Gcore.GetWaapSecurityInsightType.Invoke(new()\n    {\n        Name = \"Attack on disabled policy\",\n    });\n\n    var cdnResource = new Gcore.CdnResource(\"cdn_resource\", new()\n    {\n        Cname = \"api.example.com\",\n        Origin = \"origin.example.com\",\n        Options = new Gcore.Inputs.CdnResourceOptionsArgs\n        {\n            Waap = new Gcore.Inputs.CdnResourceOptionsWaapArgs\n            {\n                Value = true,\n            },\n        },\n    });\n\n    var domain = new Gcore.WaapDomain(\"domain\", new()\n    {\n        Name = cdnResource.Cname,\n        Status = \"monitor\",\n    });\n\n    var insightSilence = new Gcore.WaapSecurityInsightSilence(\"insight_silence\", new()\n    {\n        DomainId = domain.WaapDomainId,\n        InsightType = attackOnDisabledPolicy.Apply(getWaapSecurityInsightTypeResult =\u003e getWaapSecurityInsightTypeResult.Id),\n        Comment = \"Example Insight Silence\",\n        Author = \"Gcore\",\n        Labels = \n        {\n            { \"attack_type\", \"exmple\" },\n        },\n        ExpireAt = \"2026-08-24T14:00:00Z\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tattackOnDisabledPolicy, err := gcore.GetWaapSecurityInsightType(ctx, \u0026gcore.GetWaapSecurityInsightTypeArgs{\n\t\t\tName: \"Attack on disabled policy\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcdnResource, err := gcore.NewCdnResource(ctx, \"cdn_resource\", \u0026gcore.CdnResourceArgs{\n\t\t\tCname:  pulumi.String(\"api.example.com\"),\n\t\t\tOrigin: pulumi.String(\"origin.example.com\"),\n\t\t\tOptions: \u0026gcore.CdnResourceOptionsArgs{\n\t\t\t\tWaap: \u0026gcore.CdnResourceOptionsWaapArgs{\n\t\t\t\t\tValue: 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\tdomain, err := gcore.NewWaapDomain(ctx, \"domain\", \u0026gcore.WaapDomainArgs{\n\t\t\tName:   cdnResource.Cname,\n\t\t\tStatus: pulumi.String(\"monitor\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewWaapSecurityInsightSilence(ctx, \"insight_silence\", \u0026gcore.WaapSecurityInsightSilenceArgs{\n\t\t\tDomainId:    domain.WaapDomainId,\n\t\t\tInsightType: pulumi.String(attackOnDisabledPolicy.Id),\n\t\t\tComment:     pulumi.String(\"Example Insight Silence\"),\n\t\t\tAuthor:      pulumi.String(\"Gcore\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"attack_type\": pulumi.String(\"exmple\"),\n\t\t\t},\n\t\t\tExpireAt: pulumi.String(\"2026-08-24T14:00:00Z\"),\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.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetWaapSecurityInsightTypeArgs;\nimport com.pulumi.gcore.CdnResource;\nimport com.pulumi.gcore.CdnResourceArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsArgs;\nimport com.pulumi.gcore.inputs.CdnResourceOptionsWaapArgs;\nimport com.pulumi.gcore.WaapDomain;\nimport com.pulumi.gcore.WaapDomainArgs;\nimport com.pulumi.gcore.WaapSecurityInsightSilence;\nimport com.pulumi.gcore.WaapSecurityInsightSilenceArgs;\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 attackOnDisabledPolicy = GcoreFunctions.getWaapSecurityInsightType(GetWaapSecurityInsightTypeArgs.builder()\n            .name(\"Attack on disabled policy\")\n            .build());\n\n        var cdnResource = new CdnResource(\"cdnResource\", CdnResourceArgs.builder()\n            .cname(\"api.example.com\")\n            .origin(\"origin.example.com\")\n            .options(CdnResourceOptionsArgs.builder()\n                .waap(CdnResourceOptionsWaapArgs.builder()\n                    .value(true)\n                    .build())\n                .build())\n            .build());\n\n        var domain = new WaapDomain(\"domain\", WaapDomainArgs.builder()\n            .name(cdnResource.cname())\n            .status(\"monitor\")\n            .build());\n\n        var insightSilence = new WaapSecurityInsightSilence(\"insightSilence\", WaapSecurityInsightSilenceArgs.builder()\n            .domainId(domain.waapDomainId())\n            .insightType(attackOnDisabledPolicy.id())\n            .comment(\"Example Insight Silence\")\n            .author(\"Gcore\")\n            .labels(Map.of(\"attack_type\", \"exmple\"))\n            .expireAt(\"2026-08-24T14:00:00Z\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cdnResource:\n    type: gcore:CdnResource\n    name: cdn_resource\n    properties:\n      cname: api.example.com\n      origin: origin.example.com\n      options:\n        waap:\n          value: true\n  domain:\n    type: gcore:WaapDomain\n    properties:\n      name: ${cdnResource.cname}\n      status: monitor\n  insightSilence:\n    type: gcore:WaapSecurityInsightSilence\n    name: insight_silence\n    properties:\n      domainId: ${domain.waapDomainId}\n      insightType: ${attackOnDisabledPolicy.id}\n      comment: Example Insight Silence\n      author: Gcore\n      labels:\n        attack_type: exmple\n      expireAt: 2026-08-24T14:00:00Z\nvariables:\n  attackOnDisabledPolicy:\n    fn::invoke:\n      function: gcore:getWaapSecurityInsightType\n      arguments:\n        name: Attack on disabled policy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"author":{"type":"string","description":"The author of the silence.\n"},"comment":{"type":"string","description":"A comment explaining the reason for the silence.\n"},"domainId":{"type":"number","description":"The WAAP domain ID for which the insight silence is configured.\n"},"expireAt":{"type":"string","description":"The date and time the silence expires in ISO 8601 format.\n"},"insightType":{"type":"string","description":"The slug of the insight type. The insight type can be obtained from the API endpoint /v1/security-insights/types or you can use the gcore*waap*security*insight*type data source.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"A hash table of label names and values that apply to the insight silence.\n"},"waapSecurityInsightSilenceId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["author","comment","domainId","insightType","labels","waapSecurityInsightSilenceId"],"inputProperties":{"author":{"type":"string","description":"The author of the silence.\n"},"comment":{"type":"string","description":"A comment explaining the reason for the silence.\n"},"domainId":{"type":"number","description":"The WAAP domain ID for which the insight silence is configured.\n"},"expireAt":{"type":"string","description":"The date and time the silence expires in ISO 8601 format.\n"},"insightType":{"type":"string","description":"The slug of the insight type. The insight type can be obtained from the API endpoint /v1/security-insights/types or you can use the gcore*waap*security*insight*type data source.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"A hash table of label names and values that apply to the insight silence.\n"},"waapSecurityInsightSilenceId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["author","comment","domainId","insightType","labels"],"stateInputs":{"description":"Input properties used for looking up and filtering WaapSecurityInsightSilence resources.\n","properties":{"author":{"type":"string","description":"The author of the silence.\n"},"comment":{"type":"string","description":"A comment explaining the reason for the silence.\n"},"domainId":{"type":"number","description":"The WAAP domain ID for which the insight silence is configured.\n"},"expireAt":{"type":"string","description":"The date and time the silence expires in ISO 8601 format.\n"},"insightType":{"type":"string","description":"The slug of the insight type. The insight type can be obtained from the API endpoint /v1/security-insights/types or you can use the gcore*waap*security*insight*type data source.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"A hash table of label names and values that apply to the insight silence.\n"},"waapSecurityInsightSilenceId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}}},"functions":{"gcore:index/getAiCluster:getAiCluster":{"description":"Represent GPU Cluster\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  c:\n    fn::invoke:\n      function: gcore:getAiCluster\n      arguments:\n        name: cluster1\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${c}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAiCluster.\n","properties":{"clusterId":{"type":"string","description":"AI Cluster ID\n"},"id":{"type":"string","description":"The ID of this resource.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object","required":["clusterId"]},"outputs":{"description":"A collection of values returned by getAiCluster.\n","properties":{"attachedInterfaces":{"description":"List of attached interfaces to all instances of the cluster.\n","items":{"$ref":"#/types/gcore:index%2FgetAiClusterAttachedInterface:getAiClusterAttachedInterface"},"type":"array"},"clusterId":{"description":"AI Cluster ID\n","type":"string"},"clusterMetadata":{"additionalProperties":{"type":"string"},"description":"Cluster metadata (simple key-value pairs)\n","type":"object"},"clusterName":{"description":"AI Cluster Name\n","type":"string"},"clusterStatus":{"description":"AI Cluster status\n","type":"string"},"createdAt":{"description":"Datetime when the cluster was created\n","type":"string"},"creatorTaskId":{"description":"Task that created this entity\n","type":"string"},"flavor":{"description":"Flavor ID (name)\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"imageId":{"description":"Image ID\n","type":"string"},"imageName":{"description":"Image name\n","type":"string"},"interfaces":{"description":"Networks managed by user and associated with the cluster\n","items":{"$ref":"#/types/gcore:index%2FgetAiClusterInterface:getAiClusterInterface"},"type":"array"},"keypairName":{"description":"Ssh keypair name\n","type":"string"},"password":{"description":"A password for baremetal instance. This parameter is used to set a password for the Admin user on a Windows instance, a default user or a new user on a Linux instance\n","type":"string"},"poplarServers":{"description":"GPU cluster servers list\n","items":{"$ref":"#/types/gcore:index%2FgetAiClusterPoplarServer:getAiClusterPoplarServer"},"type":"array"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"securityGroups":{"description":"Security groups attached to the cluster\n","items":{"$ref":"#/types/gcore:index%2FgetAiClusterSecurityGroup:getAiClusterSecurityGroup"},"type":"array"},"taskId":{"description":"Task ID associated with the cluster\n","type":"string"},"taskStatus":{"description":"Task status\n","type":"string"},"userData":{"description":"String in base64 format. Must not be passed together with 'username' or 'password'. Examples of the user_data: https://cloudinit.readthedocs.io/en/latest/topics/examples.html\n","type":"string"},"username":{"description":"A name of a new user in the Linux instance. It may be passed with a 'password' parameter\n","type":"string"},"volumes":{"description":"List of volumes attached to the cluster\n","items":{"$ref":"#/types/gcore:index%2FgetAiClusterVolume:getAiClusterVolume"},"type":"array"}},"required":["attachedInterfaces","clusterId","clusterMetadata","clusterName","clusterStatus","createdAt","creatorTaskId","flavor","id","imageId","imageName","interfaces","keypairName","password","poplarServers","securityGroups","taskId","taskStatus","userData","username","volumes"],"type":"object"}},"gcore:index/getCdnClient:getCdnClient":{"description":"Represent CDN account 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 myAccount = gcore.getCdnClient({});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nmy_account = gcore.get_cdn_client()\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 myAccount = Gcore.GetCdnClient.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.GetCdnClient(ctx, map[string]interface{}{}, 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 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 myAccount = GcoreFunctions.getCdnClient(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  myAccount:\n    fn::invoke:\n      function: gcore:getCdnClient\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getCdnClient.\n","properties":{"cname":{"description":"Domain zone to which a CNAME record of your CDN resources should be pointed.\n","type":"string"},"id":{"description":"ID of your CDN account.\n","type":"number"}},"required":["cname","id"],"type":"object"}},"gcore:index/getCdnPreset:getCdnPreset":{"description":"Represent presets data\n","inputs":{"description":"A collection of arguments for invoking getCdnPreset.\n","properties":{"id":{"type":"number","description":"ID of the CDN preset\n"},"name":{"type":"string","description":"Name of the CDN preset\n"}},"type":"object","required":["id","name"]},"outputs":{"description":"A collection of values returned by getCdnPreset.\n","properties":{"id":{"description":"ID of the CDN preset\n","type":"number"},"name":{"description":"Name of the CDN preset\n","type":"string"}},"required":["id","name"],"type":"object"}},"gcore:index/getCdnShieldingLocation:getCdnShieldingLocation":{"description":"Represent shielding locations 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 sl = gcore.getCdnShieldingLocation({\n    datacenter: \"am3\",\n});\nconst originShielding1 = new gcore.CdnOriginshielding(\"origin_shielding_1\", {\n    resourceId: 1,\n    shieldingPop: sl.then(sl =\u003e sl.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nsl = gcore.get_cdn_shielding_location(datacenter=\"am3\")\norigin_shielding1 = gcore.CdnOriginshielding(\"origin_shielding_1\",\n    resource_id=1,\n    shielding_pop=sl.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 sl = Gcore.GetCdnShieldingLocation.Invoke(new()\n    {\n        Datacenter = \"am3\",\n    });\n\n    var originShielding1 = new Gcore.CdnOriginshielding(\"origin_shielding_1\", new()\n    {\n        ResourceId = 1,\n        ShieldingPop = sl.Apply(getCdnShieldingLocationResult =\u003e getCdnShieldingLocationResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tsl, err := gcore.GetCdnShieldingLocation(ctx, \u0026gcore.GetCdnShieldingLocationArgs{\n\t\t\tDatacenter: \"am3\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.NewCdnOriginshielding(ctx, \"origin_shielding_1\", \u0026gcore.CdnOriginshieldingArgs{\n\t\t\tResourceId:   pulumi.Float64(1),\n\t\t\tShieldingPop: pulumi.String(sl.Id),\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.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetCdnShieldingLocationArgs;\nimport com.pulumi.gcore.CdnOriginshielding;\nimport com.pulumi.gcore.CdnOriginshieldingArgs;\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 sl = GcoreFunctions.getCdnShieldingLocation(GetCdnShieldingLocationArgs.builder()\n            .datacenter(\"am3\")\n            .build());\n\n        var originShielding1 = new CdnOriginshielding(\"originShielding1\", CdnOriginshieldingArgs.builder()\n            .resourceId(1.0)\n            .shieldingPop(sl.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  originShielding1:\n    type: gcore:CdnOriginshielding\n    name: origin_shielding_1\n    properties:\n      resourceId: 1\n      shieldingPop: ${sl.id}\nvariables:\n  sl:\n    fn::invoke:\n      function: gcore:getCdnShieldingLocation\n      arguments:\n        datacenter: am3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCdnShieldingLocation.\n","properties":{"datacenter":{"type":"string","description":"Displayed shielding location for point of present\n"},"id":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["datacenter"]},"outputs":{"description":"A collection of values returned by getCdnShieldingLocation.\n","properties":{"datacenter":{"description":"Displayed shielding location for point of present\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"}},"required":["datacenter","id"],"type":"object"}},"gcore:index/getDdosProfileTemplate:getDdosProfileTemplate":{"description":"Represents list of available DDoS protection profile templates\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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst template = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getDdosProfileTemplate({\n    templateId: 63,\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = template;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\ntemplate = gcore.get_ddos_profile_template(template_id=63,\n    region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", template)\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var template = Gcore.GetDdosProfileTemplate.Invoke(new()\n    {\n        TemplateId = 63,\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = template,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttemplate, err := gcore.GetDdosProfileTemplate(ctx, \u0026gcore.GetDdosProfileTemplateArgs{\n\t\t\tTemplateId: pulumi.Float64Ref(63),\n\t\t\tRegionId:   pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId:  pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", template)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetDdosProfileTemplateArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var template = GcoreFunctions.getDdosProfileTemplate(GetDdosProfileTemplateArgs.builder()\n            .templateId(63)\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", template);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  template:\n    fn::invoke:\n      function: gcore:getDdosProfileTemplate\n      arguments:\n        templateId: 63\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${template}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDdosProfileTemplate.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Template name\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"templateId":{"type":"number","description":"Template id\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDdosProfileTemplate.\n","properties":{"description":{"description":"Template description\n","type":"string"},"fields":{"description":"Additional fields\n","items":{"$ref":"#/types/gcore:index%2FgetDdosProfileTemplateField:getDdosProfileTemplateField"},"type":"array"},"id":{"description":"The ID of this resource.\n","type":"string"},"name":{"description":"Template name\n","type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"templateId":{"description":"Template id\n","type":"number"}},"required":["description","fields","id","name","templateId"],"type":"object"}},"gcore:index/getFaasFunction:getFaasFunction":{"description":"Represent FaaS function\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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst hello_world = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getFaasFunction({\n    name: \"hello-world\",\n    namespace: \"world-ns\",\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = hello_world;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\nhello_world = gcore.get_faas_function(name=\"hello-world\",\n    namespace=\"world-ns\",\n    region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", hello_world)\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var hello_world = Gcore.GetFaasFunction.Invoke(new()\n    {\n        Name = \"hello-world\",\n        Namespace = \"world-ns\",\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = hello_world,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thello_world, err := gcore.LookupFaasFunction(ctx, \u0026gcore.LookupFaasFunctionArgs{\n\t\t\tName:      \"hello-world\",\n\t\t\tNamespace: \"world-ns\",\n\t\t\tRegionId:  pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId: pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", hello_world)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetFaasFunctionArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var hello-world = GcoreFunctions.getFaasFunction(GetFaasFunctionArgs.builder()\n            .name(\"hello-world\")\n            .namespace(\"world-ns\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", hello_world);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  hello-world:\n    fn::invoke:\n      function: gcore:getFaasFunction\n      arguments:\n        name: hello-world\n        namespace: world-ns\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${[\"hello-world\"]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFaasFunction.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"namespace":{"type":"string","description":"Namespace of the function\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object","required":["name","namespace"]},"outputs":{"description":"A collection of values returned by getFaasFunction.\n","properties":{"buildMessage":{"type":"string"},"buildStatus":{"type":"string"},"codeText":{"type":"string"},"createdAt":{"type":"string"},"dependencies":{"description":"Function dependencies to install\n","type":"string"},"deployStatus":{"additionalProperties":{"type":"number"},"type":"object"},"description":{"type":"string"},"disabled":{"description":"Set to true if function is disabled\n","type":"boolean"},"enableApiKey":{"description":"Enable/Disable api key authorization\n","type":"boolean"},"endpoint":{"type":"string"},"envs":{"additionalProperties":{"type":"string"},"type":"object"},"flavor":{"type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"keys":{"description":"List of used api keys\n","items":{"type":"string"},"type":"array"},"mainMethod":{"description":"Main startup method name\n","type":"string"},"maxInstances":{"description":"Autoscaling max number of instances\n","type":"number"},"minInstances":{"description":"Autoscaling min number of instances\n","type":"number"},"name":{"type":"string"},"namespace":{"description":"Namespace of the function\n","type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"runtime":{"type":"string"},"status":{"type":"string"},"timeout":{"type":"number"}},"required":["buildMessage","buildStatus","codeText","createdAt","dependencies","deployStatus","description","disabled","enableApiKey","endpoint","envs","flavor","id","keys","mainMethod","maxInstances","minInstances","name","namespace","runtime","status","timeout"],"type":"object"}},"gcore:index/getFaasKey:getFaasKey":{"description":"Represent FaaS API 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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst key = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getFaasKey({\n    name: \"client-key\",\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = key;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\nkey = gcore.get_faas_key(name=\"client-key\",\n    region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", 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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var key = Gcore.GetFaasKey.Invoke(new()\n    {\n        Name = \"client-key\",\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = key,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkey, err := gcore.LookupFaasKey(ctx, \u0026gcore.LookupFaasKeyArgs{\n\t\t\tName:      \"client-key\",\n\t\t\tRegionId:  pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId: pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", key)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetFaasKeyArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var key = GcoreFunctions.getFaasKey(GetFaasKeyArgs.builder()\n            .name(\"client-key\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", key);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  key:\n    fn::invoke:\n      function: gcore:getFaasKey\n      arguments:\n        name: client-key\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${key}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFaasKey.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getFaasKey.\n","properties":{"createdAt":{"type":"string"},"description":{"type":"string"},"expire":{"type":"string"},"functions":{"items":{"$ref":"#/types/gcore:index%2FgetFaasKeyFunction:getFaasKeyFunction"},"type":"array"},"id":{"description":"The ID of this resource.\n","type":"string"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"status":{"type":"string"}},"required":["createdAt","description","expire","functions","id","name","status"],"type":"object"}},"gcore:index/getFaasNamespace:getFaasNamespace":{"description":"Represent FaaS namespace\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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst world_ns = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getFaasNamespace({\n    name: \"world-ns\",\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = world_ns;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\nworld_ns = gcore.get_faas_namespace(name=\"world-ns\",\n    region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", world_ns)\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var world_ns = Gcore.GetFaasNamespace.Invoke(new()\n    {\n        Name = \"world-ns\",\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = world_ns,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tworld_ns, err := gcore.LookupFaasNamespace(ctx, \u0026gcore.LookupFaasNamespaceArgs{\n\t\t\tName:      \"world-ns\",\n\t\t\tRegionId:  pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId: pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", world_ns)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetFaasNamespaceArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var world-ns = GcoreFunctions.getFaasNamespace(GetFaasNamespaceArgs.builder()\n            .name(\"world-ns\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", world_ns);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  world-ns:\n    fn::invoke:\n      function: gcore:getFaasNamespace\n      arguments:\n        name: world-ns\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${[\"world-ns\"]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFaasNamespace.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getFaasNamespace.\n","properties":{"createdAt":{"type":"string"},"description":{"type":"string"},"envs":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"description":"The ID of this resource.\n","type":"string"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"status":{"type":"string"}},"required":["createdAt","description","envs","id","name","status"],"type":"object"}},"gcore:index/getFileShare:getFileShare":{"description":"Get information about a file share (NFS) in Gcore Cloud.\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 project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\nconst standard = gcore.getFileShare({\n    name: \"tf-file-share-standard\",\n    regionId: rg.id,\n    projectId: pr.id,\n});\nexport const view = standard;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\nstandard = gcore.get_file_share(name=\"tf-file-share-standard\",\n    region_id=rg[\"id\"],\n    project_id=pr[\"id\"])\npulumi.export(\"view\", 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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n    var standard = Gcore.GetFileShare.Invoke(new()\n    {\n        Name = \"tf-file-share-standard\",\n        RegionId = rg.Id,\n        ProjectId = pr.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = standard,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstandard, err := gcore.LookupFileShare(ctx, \u0026gcore.LookupFileShareArgs{\n\t\t\tName:      \"tf-file-share-standard\",\n\t\t\tRegionId:  pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId: pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", standard)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetFileShareArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n        final var standard = GcoreFunctions.getFileShare(GetFileShareArgs.builder()\n            .name(\"tf-file-share-standard\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", standard);\n    }\n}\n```\n```yaml\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n  standard:\n    fn::invoke:\n      function: gcore:getFileShare\n      arguments:\n        name: tf-file-share-standard\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${standard}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFileShare.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the file share. It must be unique within the project and region.\n"},"projectId":{"type":"number","description":"Project ID, only one of project*id or project*name should be set\n"},"projectName":{"type":"string","description":"Project name, only one of project*id or project*name should be set\n"},"regionId":{"type":"number","description":"Region ID, only one of region*id or region*name should be set\n"},"regionName":{"type":"string","description":"Region name, only one of region*id or region*name should be set\n"},"shareSettings":{"$ref":"#/types/gcore:index%2FgetFileShareShareSettings:getFileShareShareSettings","description":"Share settings for the file share.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getFileShare.\n","properties":{"connectionPoint":{"description":"The connection point of the file share.\n","type":"string"},"createdAt":{"description":"The creation time of the file share in ISO 8601 format.\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"name":{"description":"The name of the file share. It must be unique within the project and region.\n","type":"string"},"networkId":{"description":"The ID of the network to which the file share will be connected.\n","type":"string"},"networkName":{"description":"The name of the network associated with the file share.\n","type":"string"},"projectId":{"description":"Project ID, only one of project*id or project*name should be set\n","type":"number"},"projectName":{"description":"Project name, only one of project*id or project*name should be set\n","type":"string"},"protocol":{"description":"The protocol used by the file share. Currently, only 'NFS' is supported.\n","type":"string"},"regionId":{"description":"Region ID, only one of region*id or region*name should be set\n","type":"number"},"regionName":{"description":"Region name, only one of region*id or region*name should be set\n","type":"string"},"shareNetworkName":{"description":"The name of the share network associated with the file share. This is only applicable for 'standard'.\n","type":"string"},"shareSettings":{"$ref":"#/types/gcore:index%2FgetFileShareShareSettings:getFileShareShareSettings","description":"Share settings for the file share.\n"},"size":{"description":"The size of the file share in GB. It must be a positive integer.\n","type":"number"},"status":{"description":"The status of the file share.\n","type":"string"},"subnetId":{"description":"The ID of the subnet within the network. This is optional and can be used to specify a particular subnet for the file share.\n","type":"string"},"subnetName":{"description":"The name of the subnet associated with the file share\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags associated with the file share. Tags are key-value pairs.\n","type":"object"},"typeName":{"description":"The type of the file share (standard or vast).\n","type":"string"}},"required":["connectionPoint","createdAt","id","name","networkId","networkName","protocol","shareNetworkName","size","status","subnetId","subnetName","tags","typeName"],"type":"object"}},"gcore:index/getFloatingip:getFloatingip":{"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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst ip = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getFloatingip({\n    floatingIpAddress: \"10.100.179.172\",\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nconst ipByFixedIp = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getFloatingip({\n    fixedIpAddress: \"192.168.42.12\",\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = ip;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\nip = gcore.get_floatingip(floating_ip_address=\"10.100.179.172\",\n    region_id=rg.id,\n    project_id=pr.id)\nip_by_fixed_ip = gcore.get_floatingip(fixed_ip_address=\"192.168.42.12\",\n    region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", ip)\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var ip = Gcore.GetFloatingip.Invoke(new()\n    {\n        FloatingIpAddress = \"10.100.179.172\",\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    var ipByFixedIp = Gcore.GetFloatingip.Invoke(new()\n    {\n        FixedIpAddress = \"192.168.42.12\",\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = ip,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tip, err := gcore.LookupFloatingip(ctx, \u0026gcore.LookupFloatingipArgs{\n\t\t\tFloatingIpAddress: pulumi.StringRef(\"10.100.179.172\"),\n\t\t\tRegionId:          pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId:         pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gcore.LookupFloatingip(ctx, \u0026gcore.LookupFloatingipArgs{\n\t\t\tFixedIpAddress: pulumi.StringRef(\"192.168.42.12\"),\n\t\t\tRegionId:       pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId:      pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", ip)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetFloatingipArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var ip = GcoreFunctions.getFloatingip(GetFloatingipArgs.builder()\n            .floatingIpAddress(\"10.100.179.172\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        final var ipByFixedIp = GcoreFunctions.getFloatingip(GetFloatingipArgs.builder()\n            .fixedIpAddress(\"192.168.42.12\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", ip);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  ip:\n    fn::invoke:\n      function: gcore:getFloatingip\n      arguments:\n        floatingIpAddress: 10.100.179.172\n        regionId: ${rg.id}\n        projectId: ${pr.id}\n  ipByFixedIp:\n    fn::invoke:\n      function: gcore:getFloatingip\n      arguments:\n        fixedIpAddress: 192.168.42.12\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${ip}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFloatingip.\n","properties":{"fixedIpAddress":{"type":"string"},"floatingIpAddress":{"type":"string"},"id":{"type":"string","description":"The ID of this resource.\n"},"metadataK":{"type":"string"},"metadataKv":{"type":"object","additionalProperties":{"type":"string"}},"portId":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getFloatingip.\n","properties":{"fixedIpAddress":{"type":"string"},"floatingIpAddress":{"type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"metadataK":{"type":"string"},"metadataKv":{"additionalProperties":{"type":"string"},"type":"object"},"metadataReadOnlies":{"items":{"$ref":"#/types/gcore:index%2FgetFloatingipMetadataReadOnly:getFloatingipMetadataReadOnly"},"type":"array"},"portId":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"routerId":{"type":"string"},"status":{"type":"string"},"tags":{"items":{"$ref":"#/types/gcore:index%2FgetFloatingipTag:getFloatingipTag"},"type":"array"}},"required":["fixedIpAddress","floatingIpAddress","id","metadataReadOnlies","routerId","status","tags"],"type":"object"}},"gcore:index/getImage:getImage":{"description":"Represent image 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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst ubuntu = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getImage({\n    name: \"ubuntu-22.04-x64\",\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = ubuntu;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\nubuntu = gcore.get_image(name=\"ubuntu-22.04-x64\",\n    region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", ubuntu)\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var ubuntu = Gcore.GetImage.Invoke(new()\n    {\n        Name = \"ubuntu-22.04-x64\",\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = ubuntu,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tubuntu, err := gcore.GetImage(ctx, \u0026gcore.GetImageArgs{\n\t\t\tName:      pulumi.StringRef(\"ubuntu-22.04-x64\"),\n\t\t\tRegionId:  pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId: pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", ubuntu)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetImageArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var ubuntu = GcoreFunctions.getImage(GetImageArgs.builder()\n            .name(\"ubuntu-22.04-x64\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", ubuntu);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  ubuntu:\n    fn::invoke:\n      function: gcore:getImage\n      arguments:\n        name: ubuntu-22.04-x64\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${ubuntu}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getImage.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"imageId":{"type":"string","description":"use 'image_id' if you know it, for example 'f4b1b1b1-1b1b-1b1b-1b1b-1b1b1b1b1b1b'\n"},"isBaremetal":{"type":"boolean","description":"set to true if you need to get baremetal image\n"},"metadataK":{"type":"string"},"metadataKv":{"type":"object","additionalProperties":{"type":"string"}},"name":{"type":"string","description":"use 'os-version', for example 'ubuntu-20.04'\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getImage.\n","properties":{"description":{"type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"imageId":{"description":"use 'image_id' if you know it, for example 'f4b1b1b1-1b1b-1b1b-1b1b-1b1b1b1b1b1b'\n","type":"string"},"isBaremetal":{"description":"set to true if you need to get baremetal image\n","type":"boolean"},"metadataK":{"type":"string"},"metadataKv":{"additionalProperties":{"type":"string"},"type":"object"},"metadataReadOnlies":{"items":{"$ref":"#/types/gcore:index%2FgetImageMetadataReadOnly:getImageMetadataReadOnly"},"type":"array"},"minDisk":{"type":"number"},"minRam":{"type":"number"},"name":{"description":"use 'os-version', for example 'ubuntu-20.04'\n","type":"string"},"osDistro":{"type":"string"},"osVersion":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"required":["description","id","metadataReadOnlies","minDisk","minRam","osDistro","osVersion"],"type":"object"}},"gcore:index/getInferenceFlavor:getInferenceFlavor":{"description":"Represent Inference flavor.\n","inputs":{"description":"A collection of arguments for invoking getInferenceFlavor.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getInferenceFlavor.\n","properties":{"cpu":{"type":"number"},"gpu":{"type":"number"},"gpuComputeCapability":{"type":"string"},"gpuMemory":{"type":"number"},"gpuModel":{"type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"isGpuShared":{"type":"boolean"},"memory":{"type":"number"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"}},"required":["cpu","gpu","gpuComputeCapability","gpuMemory","gpuModel","id","isGpuShared","memory","name"],"type":"object"}},"gcore:index/getInstance:getInstance":{"description":"Represent instance. Could be used with baremetal also\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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst vm = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getInstance({\n    name: \"test-vm\",\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = vm;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\nvm = gcore.get_instance(name=\"test-vm\",\n    region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", vm)\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var vm = Gcore.GetInstance.Invoke(new()\n    {\n        Name = \"test-vm\",\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = vm,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvm, err := gcore.LookupInstance(ctx, \u0026gcore.LookupInstanceArgs{\n\t\t\tName:      \"test-vm\",\n\t\t\tRegionId:  pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId: pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", vm)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetInstanceArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var vm = GcoreFunctions.getInstance(GetInstanceArgs.builder()\n            .name(\"test-vm\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", vm);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  vm:\n    fn::invoke:\n      function: gcore:getInstance\n      arguments:\n        name: test-vm\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${vm}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstance.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getInstance.\n","properties":{"addresses":{"items":{"$ref":"#/types/gcore:index%2FgetInstanceAddress:getInstanceAddress"},"type":"array"},"flavor":{"additionalProperties":{"type":"string"},"type":"object"},"flavorId":{"type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"interfaces":{"items":{"$ref":"#/types/gcore:index%2FgetInstanceInterface:getInstanceInterface"},"type":"array"},"metadatas":{"items":{"$ref":"#/types/gcore:index%2FgetInstanceMetadata:getInstanceMetadata"},"type":"array"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"securityGroups":{"description":"Firewalls list\n","items":{"$ref":"#/types/gcore:index%2FgetInstanceSecurityGroup:getInstanceSecurityGroup"},"type":"array"},"status":{"type":"string"},"vmState":{"type":"string"},"volumes":{"items":{"$ref":"#/types/gcore:index%2FgetInstanceVolume:getInstanceVolume"},"type":"array"}},"required":["addresses","flavor","flavorId","id","interfaces","metadatas","name","securityGroups","status","vmState","volumes"],"type":"object"}},"gcore:index/getK8sv2:getK8sv2":{"description":"Represent k8s cluster with one default pool.\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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst c = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getK8sv2({\n    name: \"cluster1\",\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = c;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\nc = gcore.get_k8sv2(name=\"cluster1\",\n    region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", c)\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var c = Gcore.GetK8sv2.Invoke(new()\n    {\n        Name = \"cluster1\",\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = c,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tc, err := gcore.LookupK8sv2(ctx, \u0026gcore.LookupK8sv2Args{\n\t\t\tName:      \"cluster1\",\n\t\t\tRegionId:  pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId: pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", c)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetK8sv2Args;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var c = GcoreFunctions.getK8sv2(GetK8sv2Args.builder()\n            .name(\"cluster1\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", c);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  c:\n    fn::invoke:\n      function: gcore:getK8sv2\n      arguments:\n        name: cluster1\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${c}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getK8sv2.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getK8sv2.\n","properties":{"authentications":{"description":"Cluster authentication configuration.\n","items":{"$ref":"#/types/gcore:index%2FgetK8sv2Authentication:getK8sv2Authentication"},"type":"array"},"autoscalerConfig":{"additionalProperties":{"type":"string"},"description":"Cluster autoscaler configuration params. Keys and values are expected to follow the cluster-autoscaler option format.\n","type":"object"},"cnis":{"description":"Cluster CNI configuration.\n","items":{"$ref":"#/types/gcore:index%2FgetK8sv2Cni:getK8sv2Cni"},"type":"array"},"createdAt":{"type":"string"},"creatorTaskId":{"type":"string"},"csis":{"description":"Container Storage Interface (CSI) driver settings.\n","items":{"$ref":"#/types/gcore:index%2FgetK8sv2Csi:getK8sv2Csi"},"type":"array"},"ddosProfiles":{"description":"DDoS profile configuration.\n","items":{"$ref":"#/types/gcore:index%2FgetK8sv2DdosProfile:getK8sv2DdosProfile"},"type":"array"},"fixedNetwork":{"type":"string"},"fixedSubnet":{"type":"string"},"flavorId":{"type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"isIpv6":{"description":"Enable public IPv6 address.\n","type":"boolean"},"isPublic":{"type":"boolean"},"keypair":{"type":"string"},"name":{"type":"string"},"nodeCount":{"type":"number"},"podsIpPool":{"description":"Pods IPv4 IP pool in CIDR notation.\n","type":"string"},"podsIpv6Pool":{"description":"Pods IPv6 IP pool in CIDR notation.\n","type":"string"},"pools":{"items":{"$ref":"#/types/gcore:index%2FgetK8sv2Pool:getK8sv2Pool"},"type":"array"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"servicesIpPool":{"description":"Services IPv4 IP pool in CIDR notation.\n","type":"string"},"servicesIpv6Pool":{"description":"Services IPv6 IP pool in CIDR notation.\n","type":"string"},"status":{"type":"string"},"taskId":{"type":"string"},"version":{"type":"string"}},"required":["authentications","autoscalerConfig","cnis","createdAt","creatorTaskId","csis","ddosProfiles","fixedNetwork","fixedSubnet","flavorId","id","isIpv6","isPublic","keypair","name","nodeCount","podsIpPool","podsIpv6Pool","pools","servicesIpPool","servicesIpv6Pool","status","taskId","version"],"type":"object"}},"gcore:index/getK8sv2Kubeconfig:getK8sv2Kubeconfig":{"description":"Represent k8s cluster's kubeconfig.\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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst config = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getK8sv2Kubeconfig({\n    clusterName: \"cluster1\",\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const kubeconfig = config.then(config =\u003e config.kubeconfig);\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\nconfig = gcore.get_k8sv2_kubeconfig(cluster_name=\"cluster1\",\n    region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"kubeconfig\", config.kubeconfig)\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var config = Gcore.GetK8sv2Kubeconfig.Invoke(new()\n    {\n        ClusterName = \"cluster1\",\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"kubeconfig\"] = config.Apply(getK8sv2KubeconfigResult =\u003e getK8sv2KubeconfigResult.Kubeconfig),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tconfig, err := gcore.GetK8sv2Kubeconfig(ctx, \u0026gcore.GetK8sv2KubeconfigArgs{\n\t\t\tClusterName: \"cluster1\",\n\t\t\tRegionId:    pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId:   pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"kubeconfig\", config.Kubeconfig)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetK8sv2KubeconfigArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var config = GcoreFunctions.getK8sv2Kubeconfig(GetK8sv2KubeconfigArgs.builder()\n            .clusterName(\"cluster1\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"kubeconfig\", config.kubeconfig());\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  config:\n    fn::invoke:\n      function: gcore:getK8sv2Kubeconfig\n      arguments:\n        clusterName: cluster1\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  # to store kubeconfig in a file pls use\n  # // terraform output -raw kubeconfig \u003e config.yaml\n  kubeconfig: ${config.kubeconfig}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getK8sv2Kubeconfig.\n","properties":{"clusterName":{"type":"string","description":"Cluster name to fetch kubeconfig\n"},"id":{"type":"string","description":"The ID of this resource.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object","required":["clusterName"]},"outputs":{"description":"A collection of values returned by getK8sv2Kubeconfig.\n","properties":{"clientCertificate":{"description":"String in base64 format. Cluster client certificate\n","type":"string"},"clientKey":{"description":"String in base64 format. Cluster client key\n","type":"string"},"clusterCaCertificate":{"description":"String in base64 format. Cluster ca certificate\n","type":"string"},"clusterName":{"description":"Cluster name to fetch kubeconfig\n","type":"string"},"host":{"description":"Cluster host\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"kubeconfig":{"description":"Raw kubeconfig file\n","type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"required":["clientCertificate","clientKey","clusterCaCertificate","clusterName","host","id","kubeconfig"],"type":"object"}},"gcore:index/getLaasHosts:getLaasHosts":{"description":"Represent LaaS hosts\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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst hosts = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getLaasHosts({\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = hosts;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\nhosts = gcore.get_laas_hosts(region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", hosts)\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var hosts = Gcore.GetLaasHosts.Invoke(new()\n    {\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = hosts,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thosts, err := gcore.GetLaasHosts(ctx, \u0026gcore.GetLaasHostsArgs{\n\t\t\tRegionId:  pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId: pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", hosts)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetLaasHostsArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var hosts = GcoreFunctions.getLaasHosts(GetLaasHostsArgs.builder()\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", hosts);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  hosts:\n    fn::invoke:\n      function: gcore:getLaasHosts\n      arguments:\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${hosts}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLaasHosts.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLaasHosts.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"kafkas":{"items":{"type":"string"},"type":"array"},"opensearches":{"items":{"type":"string"},"type":"array"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"required":["id","kafkas","opensearches"],"type":"object"}},"gcore:index/getLaasStatus:getLaasStatus":{"description":"Represent LaaS hosts\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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst status = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getLaasStatus({\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = status;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\nstatus = gcore.get_laas_status(region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", status)\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var status = Gcore.GetLaasStatus.Invoke(new()\n    {\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = status,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstatus, err := gcore.GetLaasStatus(ctx, \u0026gcore.GetLaasStatusArgs{\n\t\t\tRegionId:  pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId: pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", status)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetLaasStatusArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var status = GcoreFunctions.getLaasStatus(GetLaasStatusArgs.builder()\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", status);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  status:\n    fn::invoke:\n      function: gcore:getLaasStatus\n      arguments:\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${status}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLaasStatus.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLaasStatus.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"isInitialized":{"type":"boolean"},"namespace":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"required":["id","isInitialized","namespace"],"type":"object"}},"gcore:index/getLblistener:getLblistener":{"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 project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\nconst listener = Promise.all([region, project]).then(([region, project]) =\u003e gcore.getLblistener({\n    regionId: region.id,\n    projectId: project.id,\n    name: \"test-listener\",\n}));\nexport const view = listener;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\nlistener = gcore.get_lblistener(region_id=region.id,\n    project_id=project.id,\n    name=\"test-listener\")\npulumi.export(\"view\", listener)\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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n    var listener = Gcore.GetLblistener.Invoke(new()\n    {\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"test-listener\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = listener,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tproject, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tregion, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlistener, err := gcore.LookupLblistener(ctx, \u0026gcore.LookupLblistenerArgs{\n\t\t\tRegionId:  pulumi.Float64Ref(region.Id),\n\t\t\tProjectId: pulumi.Float64Ref(project.Id),\n\t\t\tName:      \"test-listener\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", listener)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetLblistenerArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n        final var listener = GcoreFunctions.getLblistener(GetLblistenerArgs.builder()\n            .regionId(region.id())\n            .projectId(project.id())\n            .name(\"test-listener\")\n            .build());\n\n        ctx.export(\"view\", listener);\n    }\n}\n```\n```yaml\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n  listener:\n    fn::invoke:\n      function: gcore:getLblistener\n      arguments:\n        regionId: ${region.id}\n        projectId: ${project.id}\n        name: test-listener\noutputs:\n  view: ${listener}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLblistener.\n","properties":{"allowedCidrs":{"type":"array","items":{"type":"string"},"description":"List of networks from which listener is accessible\n"},"connectionLimit":{"type":"number","description":"Number of simultaneous connections for this listener, between 1 and 1,000,000.\n"},"id":{"type":"string","description":"The ID of this resource.\n"},"loadbalancerId":{"type":"string","description":"ID of the load balancer to which listener was attached.\n"},"name":{"type":"string","description":"Name of the load balancer listener.\n"},"projectId":{"type":"number","description":"ID of the project in which load balancer listener was created.\n"},"projectName":{"type":"string","description":"Name of the project in which load balancer listener was created.\n"},"regionId":{"type":"number","description":"ID of the region in which load balancer listener was created.\n"},"regionName":{"type":"string","description":"Name of the region in which load balancer listener was created.\n"},"secretId":{"type":"string","description":"Secret ID to use with 'TERMINATED_HTTPS' protocol.\n"},"sniSecretIds":{"type":"array","items":{"type":"string"},"description":"List of additional Secret IDs to use with 'TERMINATED_HTTPS' protocol.\n"},"timeoutClientData":{"type":"number","description":"Frontend client inactivity timeout in milliseconds.\n"},"timeoutMemberConnect":{"type":"number","description":"Backend member connection timeout in milliseconds.\n"},"timeoutMemberData":{"type":"number","description":"Backend member inactivity timeout in milliseconds.\n"},"userLists":{"type":"array","items":{"$ref":"#/types/gcore:index%2FgetLblistenerUserList:getLblistenerUserList"},"description":"Load balancer listener list of username and encrypted password items.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getLblistener.\n","properties":{"allowedCidrs":{"description":"List of networks from which listener is accessible\n","items":{"type":"string"},"type":"array"},"connectionLimit":{"description":"Number of simultaneous connections for this listener, between 1 and 1,000,000.\n","type":"number"},"id":{"description":"The ID of this resource.\n","type":"string"},"loadbalancerId":{"description":"ID of the load balancer to which listener was attached.\n","type":"string"},"name":{"description":"Name of the load balancer listener.\n","type":"string"},"operatingStatus":{"description":"Operating status of this listener.\n","type":"string"},"poolCount":{"description":"Number of pools in this listener.\n","type":"number"},"projectId":{"description":"ID of the project in which load balancer listener was created.\n","type":"number"},"projectName":{"description":"Name of the project in which load balancer listener was created.\n","type":"string"},"protocol":{"description":"Available values are 'HTTP', 'HTTPS', 'TCP', 'UDP', 'TERMINATED_HTTPS', 'PROMETHEUS'\n","type":"string"},"protocolPort":{"description":"Port number to listen, between 1 and 65535.\n","type":"number"},"provisioningStatus":{"description":"Provisioning status of this listener.\n","type":"string"},"regionId":{"description":"ID of the region in which load balancer listener was created.\n","type":"number"},"regionName":{"description":"Name of the region in which load balancer listener was created.\n","type":"string"},"secretId":{"description":"Secret ID to use with 'TERMINATED_HTTPS' protocol.\n","type":"string"},"sniSecretIds":{"description":"List of additional Secret IDs to use with 'TERMINATED_HTTPS' protocol.\n","items":{"type":"string"},"type":"array"},"timeoutClientData":{"description":"Frontend client inactivity timeout in milliseconds.\n","type":"number"},"timeoutMemberConnect":{"description":"Backend member connection timeout in milliseconds.\n","type":"number"},"timeoutMemberData":{"description":"Backend member inactivity timeout in milliseconds.\n","type":"number"},"userLists":{"description":"Load balancer listener list of username and encrypted password items.\n","items":{"$ref":"#/types/gcore:index%2FgetLblistenerUserList:getLblistenerUserList"},"type":"array"}},"required":["id","loadbalancerId","name","operatingStatus","poolCount","protocol","protocolPort","provisioningStatus"],"type":"object"}},"gcore:index/getLbpool:getLbpool":{"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 project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\nconst pool = Promise.all([region, project]).then(([region, project]) =\u003e gcore.getLbpool({\n    regionId: region.id,\n    projectId: project.id,\n    name: \"test-pool\",\n}));\nexport const view = pool;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\npool = gcore.get_lbpool(region_id=region.id,\n    project_id=project.id,\n    name=\"test-pool\")\npulumi.export(\"view\", pool)\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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n    var pool = Gcore.GetLbpool.Invoke(new()\n    {\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"test-pool\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = pool,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tproject, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tregion, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool, err := gcore.LookupLbpool(ctx, \u0026gcore.LookupLbpoolArgs{\n\t\t\tRegionId:  pulumi.Float64Ref(region.Id),\n\t\t\tProjectId: pulumi.Float64Ref(project.Id),\n\t\t\tName:      \"test-pool\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", pool)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetLbpoolArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n        final var pool = GcoreFunctions.getLbpool(GetLbpoolArgs.builder()\n            .regionId(region.id())\n            .projectId(project.id())\n            .name(\"test-pool\")\n            .build());\n\n        ctx.export(\"view\", pool);\n    }\n}\n```\n```yaml\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n  pool:\n    fn::invoke:\n      function: gcore:getLbpool\n      arguments:\n        regionId: ${region.id}\n        projectId: ${project.id}\n        name: test-pool\noutputs:\n  view: ${pool}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLbpool.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"listenerId":{"type":"string","description":"ID of the load balancer listener to which pool was attached.\n"},"loadbalancerId":{"type":"string","description":"ID of the load balancer to which pool was attached.\n"},"name":{"type":"string","description":"Name of the load balancer pool.\n"},"projectId":{"type":"number","description":"ID of the project in which load balancer pool was created.\n"},"projectName":{"type":"string","description":"Name of the project in which load balancer pool was created.\n"},"regionId":{"type":"number","description":"ID of the region in which load balancer pool was created.\n"},"regionName":{"type":"string","description":"Name of the region in which load balancer pool was created.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getLbpool.\n","properties":{"healthMonitors":{"description":"Health Monitor settings for defining health state of members inside this pool.\n","items":{"$ref":"#/types/gcore:index%2FgetLbpoolHealthMonitor:getLbpoolHealthMonitor"},"type":"array"},"id":{"description":"The ID of this resource.\n","type":"string"},"lbAlgorithm":{"description":"Available values is 'ROUND*ROBIN', 'LEAST*CONNECTIONS', 'SOURCE_IP'\n","type":"string"},"listenerId":{"description":"ID of the load balancer listener to which pool was attached.\n","type":"string"},"loadbalancerId":{"description":"ID of the load balancer to which pool was attached.\n","type":"string"},"name":{"description":"Name of the load balancer pool.\n","type":"string"},"projectId":{"description":"ID of the project in which load balancer pool was created.\n","type":"number"},"projectName":{"description":"Name of the project in which load balancer pool was created.\n","type":"string"},"protocol":{"description":"Available values are 'HTTP', 'HTTPS', 'TCP', 'UDP', 'PROXY', 'PROXYV2'\n","type":"string"},"regionId":{"description":"ID of the region in which load balancer pool was created.\n","type":"number"},"regionName":{"description":"Name of the region in which load balancer pool was created.\n","type":"string"},"sessionPersistences":{"description":"Pool session persistence tells the load balancer to attempt to send future requests from a client to the same backend member as the initial request.\n","items":{"$ref":"#/types/gcore:index%2FgetLbpoolSessionPersistence:getLbpoolSessionPersistence"},"type":"array"}},"required":["healthMonitors","id","lbAlgorithm","listenerId","loadbalancerId","name","protocol","sessionPersistences"],"type":"object"}},"gcore:index/getLoadbalancer:getLoadbalancer":{"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 project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\nconst lb = Promise.all([region, project]).then(([region, project]) =\u003e gcore.getLoadbalancer({\n    regionId: region.id,\n    projectId: project.id,\n    name: \"test-lb\",\n}));\nexport const view = lb;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\nlb = gcore.get_loadbalancer(region_id=region.id,\n    project_id=project.id,\n    name=\"test-lb\")\npulumi.export(\"view\", lb)\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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n    var lb = Gcore.GetLoadbalancer.Invoke(new()\n    {\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"test-lb\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = lb,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tproject, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tregion, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlb, err := gcore.LookupLoadbalancer(ctx, \u0026gcore.LookupLoadbalancerArgs{\n\t\t\tRegionId:  pulumi.Float64Ref(region.Id),\n\t\t\tProjectId: pulumi.Float64Ref(project.Id),\n\t\t\tName:      \"test-lb\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", lb)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetLoadbalancerArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n        final var lb = GcoreFunctions.getLoadbalancer(GetLoadbalancerArgs.builder()\n            .regionId(region.id())\n            .projectId(project.id())\n            .name(\"test-lb\")\n            .build());\n\n        ctx.export(\"view\", lb);\n    }\n}\n```\n```yaml\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n  lb:\n    fn::invoke:\n      function: gcore:getLoadbalancer\n      arguments:\n        regionId: ${region.id}\n        projectId: ${project.id}\n        name: test-lb\noutputs:\n  view: ${lb}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLoadbalancer.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"metadataK":{"type":"string"},"metadataKv":{"type":"object","additionalProperties":{"type":"string"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getLoadbalancer.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"listeners":{"items":{"$ref":"#/types/gcore:index%2FgetLoadbalancerListener:getLoadbalancerListener"},"type":"array"},"metadataK":{"type":"string"},"metadataKv":{"additionalProperties":{"type":"string"},"type":"object"},"metadataReadOnlies":{"items":{"$ref":"#/types/gcore:index%2FgetLoadbalancerMetadataReadOnly:getLoadbalancerMetadataReadOnly"},"type":"array"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"vipAddress":{"type":"string"},"vipPortId":{"type":"string"}},"required":["id","listeners","metadataReadOnlies","name","vipAddress","vipPortId"],"type":"object"}},"gcore:index/getLoadbalancerv2:getLoadbalancerv2":{"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 project = gcore.getProject({\n    name: \"Default\",\n});\nconst region = gcore.getRegion({\n    name: \"Luxembourg-2\",\n});\nconst lb = Promise.all([region, project]).then(([region, project]) =\u003e gcore.getLoadbalancerv2({\n    regionId: region.id,\n    projectId: project.id,\n    name: \"test-lb\",\n}));\nexport const view = lb;\nexport const lbIp = lb.then(lb =\u003e lb.vipAddress);\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg-2\")\nlb = gcore.get_loadbalancerv2(region_id=region.id,\n    project_id=project.id,\n    name=\"test-lb\")\npulumi.export(\"view\", lb)\npulumi.export(\"lbIp\", 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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg-2\",\n    });\n\n    var lb = Gcore.GetLoadbalancerv2.Invoke(new()\n    {\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"test-lb\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = lb,\n        [\"lbIp\"] = lb.Apply(getLoadbalancerv2Result =\u003e getLoadbalancerv2Result.VipAddress),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tproject, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tregion, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlb, err := gcore.LookupLoadbalancerv2(ctx, \u0026gcore.LookupLoadbalancerv2Args{\n\t\t\tRegionId:  pulumi.Float64Ref(region.Id),\n\t\t\tProjectId: pulumi.Float64Ref(project.Id),\n\t\t\tName:      \"test-lb\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", lb)\n\t\tctx.Export(\"lbIp\", lb.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.GcoreFunctions;\nimport com.pulumi.gcore.inputs.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetLoadbalancerv2Args;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg-2\")\n            .build());\n\n        final var lb = GcoreFunctions.getLoadbalancerv2(GetLoadbalancerv2Args.builder()\n            .regionId(region.id())\n            .projectId(project.id())\n            .name(\"test-lb\")\n            .build());\n\n        ctx.export(\"view\", lb);\n        ctx.export(\"lbIp\", lb.vipAddress());\n    }\n}\n```\n```yaml\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg-2\n  lb:\n    fn::invoke:\n      function: gcore:getLoadbalancerv2\n      arguments:\n        regionId: ${region.id}\n        projectId: ${project.id}\n        name: test-lb\noutputs:\n  view: ${lb}\n  lbIp: ${lb.vipAddress}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLoadbalancerv2.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"metadataK":{"type":"string","description":"Metadata string of the load balancer.\n"},"metadataKv":{"type":"object","additionalProperties":{"type":"string"},"description":"Metadata map of the load balancer.\n"},"name":{"type":"string","description":"Name of the load balancer.\n"},"projectId":{"type":"number","description":"ID of the project in which load balancer was created.\n"},"projectName":{"type":"string","description":"Name of the project in which load balancer was created.\n"},"regionId":{"type":"number","description":"ID of the region in which load balancer was created.\n"},"regionName":{"type":"string","description":"Name of the region in which load balancer was created.\n"},"vipIpFamily":{"type":"string","description":"Available values are 'ipv4', 'ipv6', 'dual'\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getLoadbalancerv2.\n","properties":{"additionalVips":{"description":"Load Balancer additional VIPs\n","items":{"$ref":"#/types/gcore:index%2FgetLoadbalancerv2AdditionalVip:getLoadbalancerv2AdditionalVip"},"type":"array"},"id":{"description":"The ID of this resource.\n","type":"string"},"metadataK":{"description":"Metadata string of the load balancer.\n","type":"string"},"metadataKv":{"additionalProperties":{"type":"string"},"description":"Metadata map of the load balancer.\n","type":"object"},"metadataReadOnlies":{"description":"List of metadata items.\n","items":{"$ref":"#/types/gcore:index%2FgetLoadbalancerv2MetadataReadOnly:getLoadbalancerv2MetadataReadOnly"},"type":"array"},"name":{"description":"Name of the load balancer.\n","type":"string"},"preferredConnectivity":{"description":"Available values are 'L2', 'L3'\n","type":"string"},"projectId":{"description":"ID of the project in which load balancer was created.\n","type":"number"},"projectName":{"description":"Name of the project in which load balancer was created.\n","type":"string"},"regionId":{"description":"ID of the region in which load balancer was created.\n","type":"number"},"regionName":{"description":"Name of the region in which load balancer was created.\n","type":"string"},"vipAddress":{"description":"Load balancer IP address.\n","type":"string"},"vipIpFamily":{"description":"Available values are 'ipv4', 'ipv6', 'dual'\n","type":"string"},"vipPortId":{"description":"Load balancer Port ID.\n","type":"string"},"vrrpIps":{"items":{"$ref":"#/types/gcore:index%2FgetLoadbalancerv2VrrpIp:getLoadbalancerv2VrrpIp"},"type":"array"}},"required":["additionalVips","id","metadataReadOnlies","name","preferredConnectivity","vipAddress","vipIpFamily","vipPortId","vrrpIps"],"type":"object"}},"gcore:index/getNetwork:getNetwork":{"description":"Represent network. A network is a software-defined network in a cloud computing infrastructure\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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst tnw = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getNetwork({\n    name: \"example\",\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = tnw;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\ntnw = gcore.get_network(name=\"example\",\n    region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", tnw)\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var tnw = Gcore.GetNetwork.Invoke(new()\n    {\n        Name = \"example\",\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = tnw,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttnw, err := gcore.LookupNetwork(ctx, \u0026gcore.LookupNetworkArgs{\n\t\t\tName:      \"example\",\n\t\t\tRegionId:  pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId: pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", tnw)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetNetworkArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var tnw = GcoreFunctions.getNetwork(GetNetworkArgs.builder()\n            .name(\"example\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", tnw);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  tnw:\n    fn::invoke:\n      function: gcore:getNetwork\n      arguments:\n        name: example\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${tnw}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNetwork.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"metadataK":{"type":"string"},"metadataKv":{"type":"object","additionalProperties":{"type":"string"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getNetwork.\n","properties":{"external":{"type":"boolean"},"id":{"description":"The ID of this resource.\n","type":"string"},"metadataK":{"type":"string"},"metadataKv":{"additionalProperties":{"type":"string"},"type":"object"},"metadataReadOnlies":{"items":{"$ref":"#/types/gcore:index%2FgetNetworkMetadataReadOnly:getNetworkMetadataReadOnly"},"type":"array"},"mtu":{"type":"number"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"shared":{"type":"boolean"},"type":{"description":"'vlan' or 'vxlan' network type is allowed. Default value is 'vxlan'\n","type":"string"}},"required":["external","id","metadataReadOnlies","mtu","name","shared","type"],"type":"object"}},"gcore:index/getPostgresCluster:getPostgresCluster":{"description":"Get information about a PostgreSQL cluster in Gcore Cloud.\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\nexport = async () =\u003e {\n    const project = await gcore.getProject({\n        name: \"Default\",\n    });\n    const region = await gcore.getRegion({\n        name: \"Luxembourg Preprod\",\n    });\n    const postgresCluster = await gcore.getPostgresCluster({\n        name: \"poliveira-db\",\n        regionId: region.id,\n        projectId: project.id,\n    });\n    return {\n        postgresCluster: postgresCluster,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nproject = gcore.get_project(name=\"Default\")\nregion = gcore.get_region(name=\"Luxembourg Preprod\")\npostgres_cluster = gcore.get_postgres_cluster(name=\"poliveira-db\",\n    region_id=region.id,\n    project_id=project.id)\npulumi.export(\"postgresCluster\", postgres_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 project = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"Default\",\n    });\n\n    var region = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"Luxembourg Preprod\",\n    });\n\n    var postgresCluster = Gcore.GetPostgresCluster.Invoke(new()\n    {\n        Name = \"poliveira-db\",\n        RegionId = region.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"postgresCluster\"] = postgresCluster,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tproject, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"Default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tregion, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"Luxembourg Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpostgresCluster, err := gcore.LookupPostgresCluster(ctx, \u0026gcore.LookupPostgresClusterArgs{\n\t\t\tName:      \"poliveira-db\",\n\t\t\tRegionId:  pulumi.Float64Ref(region.Id),\n\t\t\tProjectId: pulumi.Float64Ref(project.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"postgresCluster\", postgresCluster)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetPostgresClusterArgs;\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 project = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Default\")\n            .build());\n\n        final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"Luxembourg Preprod\")\n            .build());\n\n        final var postgresCluster = GcoreFunctions.getPostgresCluster(GetPostgresClusterArgs.builder()\n            .name(\"poliveira-db\")\n            .regionId(region.id())\n            .projectId(project.id())\n            .build());\n\n        ctx.export(\"postgresCluster\", postgresCluster);\n    }\n}\n```\n```yaml\nvariables:\n  project:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: Default\n  region:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: Luxembourg Preprod\n  postgresCluster:\n    fn::invoke:\n      function: gcore:getPostgresCluster\n      arguments:\n        name: poliveira-db\n        regionId: ${region.id}\n        projectId: ${project.id}\noutputs:\n  postgresCluster: ${postgresCluster}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPostgresCluster.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the PostgreSQL cluster. It must be unique within the project and region.\n"},"projectId":{"type":"number","description":"Project ID, only one of project*id or project*name should be set\n"},"projectName":{"type":"string","description":"Project name, only one of project*id or project*name should be set\n"},"regionId":{"type":"number","description":"Region ID, only one of region*id or region*name should be set\n"},"regionName":{"type":"string","description":"Region name, only one of region*id or region*name should be set\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getPostgresCluster.\n","properties":{"createdAt":{"description":"Cluster creation date.\n","type":"string"},"databases":{"description":"List of databases in the cluster.\n","items":{"$ref":"#/types/gcore:index%2FgetPostgresClusterDatabase:getPostgresClusterDatabase"},"type":"array"},"flavors":{"description":"Flavor of the cluster instance.\n","items":{"$ref":"#/types/gcore:index%2FgetPostgresClusterFlavor:getPostgresClusterFlavor"},"type":"array"},"haReplicationMode":{"description":"Replication mode. Possible values are \u003cspan pulumi-lang-nodejs=\"`async`\" pulumi-lang-dotnet=\"`Async`\" pulumi-lang-go=\"`async`\" pulumi-lang-python=\"`async`\" pulumi-lang-yaml=\"`async`\" pulumi-lang-java=\"`async`\"\u003e`async`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`sync`\" pulumi-lang-dotnet=\"`Sync`\" pulumi-lang-go=\"`sync`\" pulumi-lang-python=\"`sync`\" pulumi-lang-yaml=\"`sync`\" pulumi-lang-java=\"`sync`\"\u003e`sync`\u003c/span\u003e.\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"name":{"description":"The name of the PostgreSQL cluster. It must be unique within the project and region.\n","type":"string"},"networks":{"description":"Network configuration.\n","items":{"$ref":"#/types/gcore:index%2FgetPostgresClusterNetwork:getPostgresClusterNetwork"},"type":"array"},"pgConfigs":{"description":"PostgreSQL cluster configuration.\n","items":{"$ref":"#/types/gcore:index%2FgetPostgresClusterPgConfig:getPostgresClusterPgConfig"},"type":"array"},"projectId":{"description":"Project ID, only one of project*id or project*name should be set\n","type":"number"},"projectName":{"description":"Project name, only one of project*id or project*name should be set\n","type":"string"},"regionId":{"description":"Region ID, only one of region*id or region*name should be set\n","type":"number"},"regionName":{"description":"Region name, only one of region*id or region*name should be set\n","type":"string"},"status":{"description":"Current status of the cluster.\n","type":"string"},"storages":{"description":"Storage configuration.\n","items":{"$ref":"#/types/gcore:index%2FgetPostgresClusterStorage:getPostgresClusterStorage"},"type":"array"},"users":{"description":"List of users in the cluster.\n","items":{"$ref":"#/types/gcore:index%2FgetPostgresClusterUser:getPostgresClusterUser"},"type":"array"}},"required":["createdAt","databases","flavors","haReplicationMode","id","name","networks","pgConfigs","status","storages","users"],"type":"object"}},"gcore:index/getProject:getProject":{"description":"Represent project 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 pr = gcore.getProject({\n    name: \"test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\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.GetProjectArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProject.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Displayed project name\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getProject.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"name":{"description":"Displayed project name\n","type":"string"}},"required":["id","name"],"type":"object"}},"gcore:index/getRegion:getRegion":{"description":"Represent region 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 rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nrg = gcore.get_region(name=\"ED-10 Preprod\")\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 rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\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.GetRegionArgs;\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 rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRegion.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Displayed region name\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getRegion.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"name":{"description":"Displayed region name\n","type":"string"}},"required":["id","name"],"type":"object"}},"gcore:index/getReservedfixedip:getReservedfixedip":{"description":"Represent reserved ips\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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst ip = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getReservedfixedip({\n    fixedIpAddress: \"192.168.0.66\",\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = ip;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\nip = gcore.get_reservedfixedip(fixed_ip_address=\"192.168.0.66\",\n    region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", ip)\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var ip = Gcore.GetReservedfixedip.Invoke(new()\n    {\n        FixedIpAddress = \"192.168.0.66\",\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = ip,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tip, err := gcore.LookupReservedfixedip(ctx, \u0026gcore.LookupReservedfixedipArgs{\n\t\t\tFixedIpAddress: \"192.168.0.66\",\n\t\t\tRegionId:       pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId:      pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", ip)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetReservedfixedipArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var ip = GcoreFunctions.getReservedfixedip(GetReservedfixedipArgs.builder()\n            .fixedIpAddress(\"192.168.0.66\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", ip);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  ip:\n    fn::invoke:\n      function: gcore:getReservedfixedip\n      arguments:\n        fixedIpAddress: 192.168.0.66\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${ip}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getReservedfixedip.\n","properties":{"fixedIpAddress":{"type":"string"},"id":{"type":"string","description":"The ID of this resource.\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object","required":["fixedIpAddress"]},"outputs":{"description":"A collection of values returned by getReservedfixedip.\n","properties":{"allowedAddressPairs":{"items":{"$ref":"#/types/gcore:index%2FgetReservedfixedipAllowedAddressPair:getReservedfixedipAllowedAddressPair"},"type":"array"},"fixedIpAddress":{"type":"string"},"fixedIpv6Address":{"type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"isVip":{"type":"boolean"},"networkId":{"type":"string"},"portId":{"description":"ID of the\u003cspan pulumi-lang-nodejs=\" portId \" pulumi-lang-dotnet=\" PortId \" pulumi-lang-go=\" portId \" pulumi-lang-python=\" port_id \" pulumi-lang-yaml=\" portId \" pulumi-lang-java=\" portId \"\u003e port_id \u003c/span\u003eunderlying the reserved fixed IP\n","type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"status":{"type":"string"},"subnetId":{"type":"string"},"subnetV6Id":{"type":"string"}},"required":["allowedAddressPairs","fixedIpAddress","fixedIpv6Address","id","isVip","networkId","portId","status","subnetId","subnetV6Id"],"type":"object"}},"gcore:index/getRouter:getRouter":{"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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst tr = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getRouter({\n    name: \"test_router\",\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = tr;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\ntr = gcore.get_router(name=\"test_router\",\n    region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", tr)\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var tr = Gcore.GetRouter.Invoke(new()\n    {\n        Name = \"test_router\",\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = tr,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttr, err := gcore.LookupRouter(ctx, \u0026gcore.LookupRouterArgs{\n\t\t\tName:      \"test_router\",\n\t\t\tRegionId:  pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId: pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", tr)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetRouterArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var tr = GcoreFunctions.getRouter(GetRouterArgs.builder()\n            .name(\"test_router\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", tr);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  tr:\n    fn::invoke:\n      function: gcore:getRouter\n      arguments:\n        name: test_router\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${tr}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRouter.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getRouter.\n","properties":{"externalGatewayInfos":{"items":{"$ref":"#/types/gcore:index%2FgetRouterExternalGatewayInfo:getRouterExternalGatewayInfo"},"type":"array"},"id":{"description":"The ID of this resource.\n","type":"string"},"interfaces":{"items":{"$ref":"#/types/gcore:index%2FgetRouterInterface:getRouterInterface"},"type":"array"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"routes":{"items":{"$ref":"#/types/gcore:index%2FgetRouterRoute:getRouterRoute"},"type":"array"},"status":{"type":"string"}},"required":["externalGatewayInfos","id","interfaces","name","routes","status"],"type":"object"}},"gcore:index/getSecret:getSecret":{"description":"Represent secret\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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst lbHttps = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getSecret({\n    name: \"lb_https\",\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = lbHttps;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\nlb_https = gcore.get_secret(name=\"lb_https\",\n    region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", lb_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    var pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var lbHttps = Gcore.GetSecret.Invoke(new()\n    {\n        Name = \"lb_https\",\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = lbHttps,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlbHttps, err := gcore.LookupSecret(ctx, \u0026gcore.LookupSecretArgs{\n\t\t\tName:      \"lb_https\",\n\t\t\tRegionId:  pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId: pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", lbHttps)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetSecretArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var lbHttps = GcoreFunctions.getSecret(GetSecretArgs.builder()\n            .name(\"lb_https\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", lbHttps);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  lbHttps:\n    fn::invoke:\n      function: gcore:getSecret\n      arguments:\n        name: lb_https\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${lbHttps}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSecret.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getSecret.\n","properties":{"algorithm":{"type":"string"},"bitLength":{"type":"number"},"contentTypes":{"additionalProperties":{"type":"string"},"type":"object"},"created":{"description":"Datetime when the secret was created. The format is 2025-12-28T19:14:44.180394\n","type":"string"},"expiration":{"description":"Datetime when the secret will expire. The format is 2025-12-28T19:14:44.180394\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"mode":{"type":"string"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"status":{"type":"string"}},"required":["algorithm","bitLength","contentTypes","created","expiration","id","mode","name","status"],"type":"object"}},"gcore:index/getSecuritygroup:getSecuritygroup":{"description":"Represent SecurityGroups(Firewall)\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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst _default = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getSecuritygroup({\n    name: \"default\",\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = _default;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\ndefault = gcore.get_securitygroup(name=\"default\",\n    region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", default)\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var @default = Gcore.GetSecuritygroup.Invoke(new()\n    {\n        Name = \"default\",\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = @default,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := gcore.LookupSecuritygroup(ctx, \u0026gcore.LookupSecuritygroupArgs{\n\t\t\tName:      \"default\",\n\t\t\tRegionId:  pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId: pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", _default)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetSecuritygroupArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var default = GcoreFunctions.getSecuritygroup(GetSecuritygroupArgs.builder()\n            .name(\"default\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", default_);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  default:\n    fn::invoke:\n      function: gcore:getSecuritygroup\n      arguments:\n        name: default\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${default}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSecuritygroup.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"metadataK":{"type":"string"},"metadataKv":{"type":"object","additionalProperties":{"type":"string"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getSecuritygroup.\n","properties":{"description":{"type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"metadataK":{"type":"string"},"metadataKv":{"additionalProperties":{"type":"string"},"type":"object"},"metadataReadOnlies":{"items":{"$ref":"#/types/gcore:index%2FgetSecuritygroupMetadataReadOnly:getSecuritygroupMetadataReadOnly"},"type":"array"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"securityGroupRules":{"description":"Firewall rules control what inbound(ingress) and outbound(egress) traffic is allowed to enter or leave a Instance. At least one 'egress' rule should be set\n","items":{"$ref":"#/types/gcore:index%2FgetSecuritygroupSecurityGroupRule:getSecuritygroupSecurityGroupRule"},"type":"array"}},"required":["description","id","metadataReadOnlies","name","securityGroupRules"],"type":"object"}},"gcore:index/getServergroup:getServergroup":{"description":"Represent server group 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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst _default = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getServergroup({\n    name: \"default\",\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = _default;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\ndefault = gcore.get_servergroup(name=\"default\",\n    region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", default)\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var @default = Gcore.GetServergroup.Invoke(new()\n    {\n        Name = \"default\",\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = @default,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := gcore.LookupServergroup(ctx, \u0026gcore.LookupServergroupArgs{\n\t\t\tName:      \"default\",\n\t\t\tRegionId:  pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId: pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", _default)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetServergroupArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var default = GcoreFunctions.getServergroup(GetServergroupArgs.builder()\n            .name(\"default\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", default_);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  default:\n    fn::invoke:\n      function: gcore:getServergroup\n      arguments:\n        name: default\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${default}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServergroup.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Displayed server group name\n"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getServergroup.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"instances":{"description":"Instances in this server group\n","items":{"$ref":"#/types/gcore:index%2FgetServergroupInstance:getServergroupInstance"},"type":"array"},"name":{"description":"Displayed server group name\n","type":"string"},"policy":{"description":"Server group policy. Available value is 'affinity', 'anti-affinity'\n","type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"required":["id","instances","name","policy"],"type":"object"}},"gcore:index/getStorageS3:getStorageS3":{"description":"Represent s3 storage resource. https://storage.gcore.com/storage/list\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 exampleS3 = gcore.getStorageS3({\n    name: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_s3 = gcore.get_storage_s3(name=\"example\")\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 exampleS3 = Gcore.GetStorageS3.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.LookupStorageS3(ctx, \u0026gcore.LookupStorageS3Args{\n\t\t\tName: pulumi.StringRef(\"example\"),\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.GetStorageS3Args;\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 exampleS3 = GcoreFunctions.getStorageS3(GetStorageS3Args.builder()\n            .name(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleS3:\n    fn::invoke:\n      function: gcore:getStorageS3\n      arguments:\n        name: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStorageS3.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"A name of new storage resource.\n"},"storageId":{"type":"number","description":"An id of new storage resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getStorageS3.\n","properties":{"clientId":{"description":"An client id of new storage resource.\n","type":"number"},"generatedEndpoint":{"description":"A s3 entry point for new storage resource.\n","type":"string"},"generatedHttpEndpoint":{"description":"A http s3 entry point for new storage resource.\n","type":"string"},"generatedS3Endpoint":{"description":"A s3 endpoint for new storage resource.\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"location":{"description":"A location of new storage resource.\n","type":"string"},"name":{"description":"A name of new storage resource.\n","type":"string"},"storageId":{"description":"An id of new storage resource.\n","type":"number"}},"required":["clientId","generatedEndpoint","generatedHttpEndpoint","generatedS3Endpoint","id","location"],"type":"object"}},"gcore:index/getStorageS3Bucket:getStorageS3Bucket":{"description":"Represent storage s3 bucket resource.\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 exampleS3Bucket = gcore.getStorageS3Bucket({\n    storageId: 1,\n    name: \"example1bucket2name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_s3_bucket = gcore.get_storage_s3_bucket(storage_id=1,\n    name=\"example1bucket2name\")\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 exampleS3Bucket = Gcore.GetStorageS3Bucket.Invoke(new()\n    {\n        StorageId = 1,\n        Name = \"example1bucket2name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.LookupStorageS3Bucket(ctx, \u0026gcore.LookupStorageS3BucketArgs{\n\t\t\tStorageId: 1,\n\t\t\tName:      \"example1bucket2name\",\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.GetStorageS3BucketArgs;\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 exampleS3Bucket = GcoreFunctions.getStorageS3Bucket(GetStorageS3BucketArgs.builder()\n            .storageId(1)\n            .name(\"example1bucket2name\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleS3Bucket:\n    fn::invoke:\n      function: gcore:getStorageS3Bucket\n      arguments:\n        storageId: 1\n        name: example1bucket2name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStorageS3Bucket.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"A name of storage bucket resource.\n"},"storageId":{"type":"number","description":"An id of existing storage resource.\n"}},"type":"object","required":["name","storageId"]},"outputs":{"description":"A collection of values returned by getStorageS3Bucket.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"name":{"description":"A name of storage bucket resource.\n","type":"string"},"storageId":{"description":"An id of existing storage resource.\n","type":"number"}},"required":["id","name","storageId"],"type":"object"}},"gcore:index/getStorageSftp:getStorageSftp":{"description":"Represent sftp storage resource. https://storage.gcore.com/storage/list\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 exampleSftp = gcore.getStorageSftp({\n    name: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_sftp = gcore.get_storage_sftp(name=\"example\")\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 exampleSftp = Gcore.GetStorageSftp.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.LookupStorageSftp(ctx, \u0026gcore.LookupStorageSftpArgs{\n\t\t\tName: pulumi.StringRef(\"example\"),\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.GetStorageSftpArgs;\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 exampleSftp = GcoreFunctions.getStorageSftp(GetStorageSftpArgs.builder()\n            .name(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleSftp:\n    fn::invoke:\n      function: gcore:getStorageSftp\n      arguments:\n        name: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStorageSftp.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"A name of storage resource.\n"},"storageId":{"type":"number","description":"An id of storage resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getStorageSftp.\n","properties":{"clientId":{"description":"An client id of storage resource.\n","type":"number"},"generatedHttpEndpoint":{"description":"A http sftp entry point for new storage resource.\n","type":"string"},"generatedSftpEndpoint":{"description":"A ssh sftp entry point for new storage resource.\n","type":"string"},"httpExpiresHeaderValue":{"description":"A expires date of storage resource.\n","type":"string"},"httpServernameAlias":{"description":"An alias of storage resource.\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"location":{"description":"A location of new storage resource. One of (ams, sin, fra, mia)\n","type":"string"},"name":{"description":"A name of storage resource.\n","type":"string"},"sshKeyIds":{"description":"An ssh keys IDs to link with new sftp storage resource only. https://storage.gcore.com/ssh-key/list\n","items":{"type":"number"},"type":"array"},"storageId":{"description":"An id of storage resource.\n","type":"number"}},"required":["clientId","generatedHttpEndpoint","generatedSftpEndpoint","httpExpiresHeaderValue","httpServernameAlias","id","location","sshKeyIds"],"type":"object"}},"gcore:index/getStorageSftpKey:getStorageSftpKey":{"description":"Represent storage key resource. https://storage.gcore.com/ssh-key/list\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 exampleKey = gcore.getStorageSftpKey({\n    name: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nexample_key = gcore.get_storage_sftp_key(name=\"example\")\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 exampleKey = Gcore.GetStorageSftpKey.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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.LookupStorageSftpKey(ctx, \u0026gcore.LookupStorageSftpKeyArgs{\n\t\t\tName: \"example\",\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.GetStorageSftpKeyArgs;\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 exampleKey = GcoreFunctions.getStorageSftpKey(GetStorageSftpKeyArgs.builder()\n            .name(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleKey:\n    fn::invoke:\n      function: gcore:getStorageSftpKey\n      arguments:\n        name: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStorageSftpKey.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"A name of storage key resource.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getStorageSftpKey.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"keyId":{"description":"An id of of storage key resource.\n","type":"number"},"name":{"description":"A name of storage key resource.\n","type":"string"}},"required":["id","keyId","name"],"type":"object"}},"gcore:index/getSubnet:getSubnet":{"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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst tsn = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getSubnet({\n    name: \"subtest\",\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = tsn;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\ntsn = gcore.get_subnet(name=\"subtest\",\n    region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", tsn)\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var tsn = Gcore.GetSubnet.Invoke(new()\n    {\n        Name = \"subtest\",\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = tsn,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttsn, err := gcore.LookupSubnet(ctx, \u0026gcore.LookupSubnetArgs{\n\t\t\tName:      \"subtest\",\n\t\t\tRegionId:  pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId: pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", tsn)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetSubnetArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var tsn = GcoreFunctions.getSubnet(GetSubnetArgs.builder()\n            .name(\"subtest\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", tsn);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  tsn:\n    fn::invoke:\n      function: gcore:getSubnet\n      arguments:\n        name: subtest\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${tsn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSubnet.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"metadataK":{"type":"string"},"metadataKv":{"type":"object","additionalProperties":{"type":"string"}},"name":{"type":"string"},"networkId":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getSubnet.\n","properties":{"cidr":{"type":"string"},"connectToNetworkRouter":{"type":"boolean"},"dnsNameservers":{"items":{"type":"string"},"type":"array"},"enableDhcp":{"type":"boolean"},"gatewayIp":{"type":"string"},"hostRoutes":{"items":{"$ref":"#/types/gcore:index%2FgetSubnetHostRoute:getSubnetHostRoute"},"type":"array"},"id":{"description":"The ID of this resource.\n","type":"string"},"metadataK":{"type":"string"},"metadataKv":{"additionalProperties":{"type":"string"},"type":"object"},"metadataReadOnlies":{"items":{"$ref":"#/types/gcore:index%2FgetSubnetMetadataReadOnly:getSubnetMetadataReadOnly"},"type":"array"},"name":{"type":"string"},"networkId":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"required":["cidr","connectToNetworkRouter","dnsNameservers","enableDhcp","gatewayIp","hostRoutes","id","metadataReadOnlies","name","networkId"],"type":"object"}},"gcore:index/getVolume:getVolume":{"description":"Represent volume. A volume is a file storage which is similar to SSD and HDD hard disks\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 pr = gcore.getProject({\n    name: \"test\",\n});\nconst rg = gcore.getRegion({\n    name: \"ED-10 Preprod\",\n});\nconst tv = Promise.all([rg, pr]).then(([rg, pr]) =\u003e gcore.getVolume({\n    name: \"test-hd\",\n    regionId: rg.id,\n    projectId: pr.id,\n}));\nexport const view = tv;\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\npr = gcore.get_project(name=\"test\")\nrg = gcore.get_region(name=\"ED-10 Preprod\")\ntv = gcore.get_volume(name=\"test-hd\",\n    region_id=rg.id,\n    project_id=pr.id)\npulumi.export(\"view\", tv)\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 pr = Gcore.GetProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var rg = Gcore.GetRegion.Invoke(new()\n    {\n        Name = \"ED-10 Preprod\",\n    });\n\n    var tv = Gcore.GetVolume.Invoke(new()\n    {\n        Name = \"test-hd\",\n        RegionId = rg.Apply(getRegionResult =\u003e getRegionResult.Id),\n        ProjectId = pr.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"view\"] = tv,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tpr, err := gcore.GetProject(ctx, \u0026gcore.GetProjectArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := gcore.GetRegion(ctx, \u0026gcore.GetRegionArgs{\n\t\t\tName: \"ED-10 Preprod\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttv, err := gcore.LookupVolume(ctx, \u0026gcore.LookupVolumeArgs{\n\t\t\tName:      \"test-hd\",\n\t\t\tRegionId:  pulumi.Float64Ref(rg.Id),\n\t\t\tProjectId: pulumi.Float64Ref(pr.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"view\", tv)\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.GetProjectArgs;\nimport com.pulumi.gcore.inputs.GetRegionArgs;\nimport com.pulumi.gcore.inputs.GetVolumeArgs;\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 pr = GcoreFunctions.getProject(GetProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var rg = GcoreFunctions.getRegion(GetRegionArgs.builder()\n            .name(\"ED-10 Preprod\")\n            .build());\n\n        final var tv = GcoreFunctions.getVolume(GetVolumeArgs.builder()\n            .name(\"test-hd\")\n            .regionId(rg.id())\n            .projectId(pr.id())\n            .build());\n\n        ctx.export(\"view\", tv);\n    }\n}\n```\n```yaml\nvariables:\n  pr:\n    fn::invoke:\n      function: gcore:getProject\n      arguments:\n        name: test\n  rg:\n    fn::invoke:\n      function: gcore:getRegion\n      arguments:\n        name: ED-10 Preprod\n  tv:\n    fn::invoke:\n      function: gcore:getVolume\n      arguments:\n        name: test-hd\n        regionId: ${rg.id}\n        projectId: ${pr.id}\noutputs:\n  view: ${tv}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVolume.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"metadataK":{"type":"string"},"metadataKv":{"type":"object","additionalProperties":{"type":"string"}},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getVolume.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"metadataK":{"type":"string"},"metadataKv":{"additionalProperties":{"type":"string"},"type":"object"},"metadataReadOnlies":{"items":{"$ref":"#/types/gcore:index%2FgetVolumeMetadataReadOnly:getVolumeMetadataReadOnly"},"type":"array"},"name":{"type":"string"},"projectId":{"type":"number"},"projectName":{"type":"string"},"regionId":{"type":"number"},"regionName":{"type":"string"},"size":{"type":"number"},"typeName":{"description":"Available value is 'standard', 'ssd_hiiops', 'cold', 'ultra'. Defaults to standard\n","type":"string"}},"required":["id","metadataReadOnlies","name","size","typeName"],"type":"object"}},"gcore:index/getWaapDomainPolicy:getWaapDomainPolicy":{"description":"Represent WAAP domain policy\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 wafSqlInjection = gcore.getWaapDomainPolicy({\n    domainId: 12345,\n    name: \"SQL injection\",\n    group: \"WAF\",\n});\nexport const wafSqlInjectionId = wafSqlInjection.then(wafSqlInjection =\u003e wafSqlInjection.id);\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nwaf_sql_injection = gcore.get_waap_domain_policy(domain_id=12345,\n    name=\"SQL injection\",\n    group=\"WAF\")\npulumi.export(\"wafSqlInjectionId\", waf_sql_injection.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 wafSqlInjection = Gcore.GetWaapDomainPolicy.Invoke(new()\n    {\n        DomainId = 12345,\n        Name = \"SQL injection\",\n        Group = \"WAF\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"wafSqlInjectionId\"] = wafSqlInjection.Apply(getWaapDomainPolicyResult =\u003e getWaapDomainPolicyResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\twafSqlInjection, err := gcore.GetWaapDomainPolicy(ctx, \u0026gcore.GetWaapDomainPolicyArgs{\n\t\t\tDomainId: 12345,\n\t\t\tName:     \"SQL injection\",\n\t\t\tGroup:    \"WAF\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"wafSqlInjectionId\", wafSqlInjection.Id)\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.GetWaapDomainPolicyArgs;\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 wafSqlInjection = GcoreFunctions.getWaapDomainPolicy(GetWaapDomainPolicyArgs.builder()\n            .domainId(12345)\n            .name(\"SQL injection\")\n            .group(\"WAF\")\n            .build());\n\n        ctx.export(\"wafSqlInjectionId\", wafSqlInjection.id());\n    }\n}\n```\n```yaml\nvariables:\n  wafSqlInjection:\n    fn::invoke:\n      function: gcore:getWaapDomainPolicy\n      arguments:\n        domainId: 12345\n        name: SQL injection\n        group: WAF\noutputs:\n  wafSqlInjectionId: ${wafSqlInjection.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getWaapDomainPolicy.\n","properties":{"domainId":{"type":"number","description":"The WAAP domain ID\n"},"group":{"type":"string","description":"The policy group name to which the policy belongs\n"},"name":{"type":"string","description":"The name of the Domain Policy\n"}},"type":"object","required":["domainId","group","name"]},"outputs":{"description":"A collection of values returned by getWaapDomainPolicy.\n","properties":{"domainId":{"description":"The WAAP domain ID\n","type":"number"},"group":{"description":"The policy group name to which the policy belongs\n","type":"string"},"id":{"description":"The ID of the Domain Policy\n","type":"string"},"name":{"description":"The name of the Domain Policy\n","type":"string"}},"required":["domainId","group","id","name"],"type":"object"}},"gcore:index/getWaapSecurityInsightType:getWaapSecurityInsightType":{"description":"Represent WAAP security insight type\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 attackOnDisabledPolicy = gcore.getWaapSecurityInsightType({\n    name: \"Attack on disabled policy\",\n});\nexport const insightType = attackOnDisabledPolicy.then(attackOnDisabledPolicy =\u003e attackOnDisabledPolicy.id);\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nattack_on_disabled_policy = gcore.get_waap_security_insight_type(name=\"Attack on disabled policy\")\npulumi.export(\"insightType\", attack_on_disabled_policy.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 attackOnDisabledPolicy = Gcore.GetWaapSecurityInsightType.Invoke(new()\n    {\n        Name = \"Attack on disabled policy\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"insightType\"] = attackOnDisabledPolicy.Apply(getWaapSecurityInsightTypeResult =\u003e getWaapSecurityInsightTypeResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tattackOnDisabledPolicy, err := gcore.GetWaapSecurityInsightType(ctx, \u0026gcore.GetWaapSecurityInsightTypeArgs{\n\t\t\tName: \"Attack on disabled policy\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"insightType\", attackOnDisabledPolicy.Id)\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.GetWaapSecurityInsightTypeArgs;\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 attackOnDisabledPolicy = GcoreFunctions.getWaapSecurityInsightType(GetWaapSecurityInsightTypeArgs.builder()\n            .name(\"Attack on disabled policy\")\n            .build());\n\n        ctx.export(\"insightType\", attackOnDisabledPolicy.id());\n    }\n}\n```\n```yaml\nvariables:\n  attackOnDisabledPolicy:\n    fn::invoke:\n      function: gcore:getWaapSecurityInsightType\n      arguments:\n        name: Attack on disabled policy\noutputs:\n  insightType: ${attackOnDisabledPolicy.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getWaapSecurityInsightType.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the insight type\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getWaapSecurityInsightType.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"name":{"description":"The name of the insight type\n","type":"string"}},"required":["id","name"],"type":"object"}},"gcore:index/getWaapTag:getWaapTag":{"description":"Represent WAAP tag\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 abnormalTrafficVolumeTag = gcore.getWaapTag({\n    name: \"Abnormal Traffic Volume\",\n});\nexport const abnormalTrafficVolumeTagId = abnormalTrafficVolumeTag.then(abnormalTrafficVolumeTag =\u003e abnormalTrafficVolumeTag.id);\n```\n```python\nimport pulumi\nimport pulumi_gcore as gcore\n\nabnormal_traffic_volume_tag = gcore.get_waap_tag(name=\"Abnormal Traffic Volume\")\npulumi.export(\"abnormalTrafficVolumeTagId\", abnormal_traffic_volume_tag.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 abnormalTrafficVolumeTag = Gcore.GetWaapTag.Invoke(new()\n    {\n        Name = \"Abnormal Traffic Volume\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"abnormalTrafficVolumeTagId\"] = abnormalTrafficVolumeTag.Apply(getWaapTagResult =\u003e getWaapTagResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/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\tabnormalTrafficVolumeTag, err := gcore.GetWaapTag(ctx, \u0026gcore.GetWaapTagArgs{\n\t\t\tName: \"Abnormal Traffic Volume\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"abnormalTrafficVolumeTagId\", abnormalTrafficVolumeTag.Id)\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.GetWaapTagArgs;\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 abnormalTrafficVolumeTag = GcoreFunctions.getWaapTag(GetWaapTagArgs.builder()\n            .name(\"Abnormal Traffic Volume\")\n            .build());\n\n        ctx.export(\"abnormalTrafficVolumeTagId\", abnormalTrafficVolumeTag.id());\n    }\n}\n```\n```yaml\nvariables:\n  abnormalTrafficVolumeTag:\n    fn::invoke:\n      function: gcore:getWaapTag\n      arguments:\n        name: Abnormal Traffic Volume\noutputs:\n  abnormalTrafficVolumeTagId: ${abnormalTrafficVolumeTag.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getWaapTag.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the tag.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getWaapTag.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"name":{"description":"The name of the tag.\n","type":"string"}},"required":["id","name"],"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":"eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2ctY29yZS9nY29yZSIsInZlcnNpb24iOiIwLjMyLjgifX0="}}